@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-cyrillic-ext-wght-normal-RO72NYA2.woff2") format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-cyrillic-wght-normal-CK2XY27K.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-vietnamese-wght-normal-Y2R7JZKV.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-latin-ext-wght-normal-XEQ56JUF.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-latin-wght-normal-T72VVCUW.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-mono-cyrillic-ext-wght-normal-QXKVIKFD.woff2") format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-mono-cyrillic-wght-normal-GOIAQAGU.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-mono-symbols2-wght-normal-WZJJVLQO.woff2") format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-mono-vietnamese-wght-normal-KW5NM6YV.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-mono-latin-ext-wght-normal-HU3ZAWN6.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/geist-mono-latin-wght-normal-CJNQKXUG.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--radius: .625rem;--background: oklch(.985 .002 230);--foreground: oklch(.155 .015 230);--card: oklch(1 0 0);--card-foreground: oklch(.155 .015 230);--primary: oklch(.55 .19 160);--primary-foreground: oklch(.985 .002 230);--secondary: oklch(.96 .005 230);--muted: oklch(.96 .005 230);--muted-foreground: oklch(.556 .015 230);--accent: oklch(.96 .005 230);--destructive: oklch(.577 .245 27.325);--success: oklch(.62 .17 145);--warning: oklch(.75 .175 75);--border: oklch(.895 .005 230);--input: oklch(.86 .005 230);--ring: oklch(.55 .19 160);--chart-1: oklch(.55 .19 160);--chart-2: oklch(.58 .14 195);--chart-3: oklch(.6 .16 250);--chart-4: oklch(.7 .15 75);--chart-5: oklch(.6 .16 320);--sidebar: oklch(.14 .015 170);--sidebar-foreground: oklch(.87 .005 230);--sidebar-muted: oklch(.55 .01 200);--sidebar-accent: oklch(.2 .015 170);--sidebar-accent-foreground: oklch(.95 .005 230);--sidebar-border: oklch(.22 .015 170);--sidebar-primary: oklch(.55 .19 160);--sidebar-primary-foreground: oklch(.985 .002 230);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--card-ring: color-mix(in srgb, var(--foreground) 10%, transparent);--font-sans: "Geist Variable", "Geist Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono Variable", "Geist Mono", ui-monospace, SFMono-Regular, monospace}html.dark{--background: oklch(.075 0 0);--foreground: oklch(.922 .005 230);--card: oklch(.19 0 0);--card-foreground: oklch(.922 .005 230);--primary: oklch(.65 .19 160);--primary-foreground: oklch(.075 0 0);--secondary: oklch(.235 0 0);--muted: oklch(.235 0 0);--muted-foreground: oklch(.556 .015 230);--accent: oklch(.235 0 0);--border: oklch(.28 0 0);--input: oklch(.28 0 0);--ring: oklch(.65 .19 160);--chart-1: oklch(.65 .19 160);--chart-3: oklch(.62 .16 250);--sidebar: oklch(.11 0 0);--sidebar-foreground: oklch(.9 .005 230);--sidebar-accent: oklch(.2 0 0);--sidebar-accent-foreground: oklch(.95 .005 230);--sidebar-border: oklch(.26 0 0);--sidebar-primary: oklch(.65 .19 160);--sidebar-primary-foreground: oklch(.075 0 0);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .2);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font-sans);background:var(--background);color:var(--foreground);font-size:14px;line-height:1.4286;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{line-height:1.333}small{font-size:.75rem;line-height:1rem}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}lucide-icon{display:inline-flex;flex-shrink:0}.mono{font-family:var(--font-mono)}.card{background:var(--card);color:var(--card-foreground);border-radius:calc(var(--radius) + 4px);box-shadow:0 0 0 1px var(--card-ring),var(--shadow-sm)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:2.75rem 1.25rem 1.25rem}.card-header h3{font-size:1rem;line-height:1.5rem;font-weight:600}.card-header p{font-size:.75rem;line-height:1rem;color:var(--muted-foreground);margin-top:2px}.card-body{padding:1.5rem 1.25rem 2.75rem}.card.card-body{padding:2.75rem 1.25rem}.btn{display:inline-flex;align-items:center;gap:.375rem;height:2.25rem;padding:0 .625rem;border-radius:calc(var(--radius) - 2px);border:1px solid transparent;font-size:.875rem;line-height:1.25rem;font-weight:500;background:transparent;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.btn.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn.btn-primary:hover{background:color-mix(in srgb,var(--primary) 80%,transparent)}.btn.btn-ghost:hover{background:var(--accent)}.btn.btn-icon{width:2rem;height:2rem;padding:0;border-radius:var(--radius);justify-content:center;color:var(--muted-foreground)}.btn.btn-icon:hover{background:var(--accent);color:var(--foreground)}.link{display:inline-flex;align-items:center;gap:4px;color:var(--primary);font-size:.75rem;line-height:1rem;font-weight:500}.link:hover{color:color-mix(in srgb,var(--primary) 80%,transparent)}.badge{display:inline-flex;align-items:center;height:1.25rem;padding:0 .5rem;border-radius:999px;font-size:11px;font-weight:500;line-height:1;white-space:nowrap}.badge.success{background:color-mix(in oklch,var(--success) 15%,transparent);color:var(--success)}.badge.info{background:color-mix(in oklch,var(--primary) 15%,transparent);color:var(--primary)}.badge.warning{background:color-mix(in oklch,var(--warning) 15%,transparent);color:var(--warning)}.badge.danger{background:color-mix(in oklch,var(--destructive) 15%,transparent);color:var(--destructive)}.avatar{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:999px;font-size:.6875rem;font-weight:600;color:#fff;flex-shrink:0}.text-success{color:var(--success)}.text-danger{color:var(--destructive)}.text-muted{color:var(--muted-foreground)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:color-mix(in oklch,var(--muted-foreground) 35%,transparent);border-radius:8px}::-webkit-scrollbar-track{background:transparent}@media print{app-sidebar,app-topbar,app-toaster{display:none!important}.main{margin-left:0!important}.card{box-shadow:none;break-inside:avoid}}.boot-loader{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.875rem;background:var(--background);color:var(--muted-foreground);font-family:var(--font-sans);font-size:.875rem}.boot-spinner{width:2rem;height:2rem;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:boot-spin .8s linear infinite}@keyframes boot-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.boot-spinner{animation-duration:2.4s}}.btn:focus-visible{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklch,var(--ring) 30%,transparent)}.btn:disabled,.btn.disabled{opacity:.5;pointer-events:none}.btn.btn-secondary{background:var(--secondary);color:var(--foreground)}.btn.btn-secondary:hover{background:color-mix(in oklch,var(--secondary) 80%,var(--foreground) 8%)}.btn.btn-outline{background:var(--background);border-color:var(--border);box-shadow:0 1px 2px #0000000a}.btn.btn-outline:hover{background:var(--muted)}.btn.btn-ghost{color:var(--foreground)}.btn.btn-link{color:var(--primary);padding-inline:.5rem}.btn.btn-link:hover{text-decoration:underline;text-underline-offset:3px}.btn.btn-destructive{background:color-mix(in oklch,var(--destructive) 12%,transparent);color:var(--destructive)}.btn.btn-destructive:hover{background:color-mix(in oklch,var(--destructive) 20%,transparent)}.btn.btn-sm{height:2rem;padding:0 .625rem;gap:.25rem}.btn.btn-lg{height:2.5rem;padding:0 1rem}.btn.btn-icon.btn-primary{color:var(--primary-foreground)}.badge{gap:4px}.badge.default{background:var(--primary);color:var(--primary-foreground)}.badge.secondary{background:var(--secondary);color:var(--foreground)}.badge.outline{border:1px solid var(--border);color:var(--foreground)}.badge.destructive{background:color-mix(in oklch,var(--destructive) 14%,transparent);color:var(--destructive)}.badge.muted{background:var(--muted);color:var(--foreground)}.badge .dot{width:6px;height:6px;border-radius:999px;background:var(--success)}.avatar.tint{background:color-mix(in oklch,var(--c, var(--primary)) 15%,transparent);color:var(--c, var(--primary))}.avatar.sm{width:2rem;height:2rem;font-size:.75rem}.avatar.md{width:2.5rem;height:2.5rem;font-size:.875rem}.avatar.lg{width:3rem;height:3rem;font-size:1rem}.avatar.xl{width:3.5rem;height:3.5rem;font-size:1.125rem}.avatar-group{display:flex}.avatar-group .avatar{border:2px solid var(--background)}.avatar-group .avatar+.avatar{margin-left:-.5rem}.field{display:block}.field>span{display:block;margin-bottom:.375rem;font-size:.875rem;font-weight:500}.input,.select,.textarea{width:100%;height:2.25rem;padding:0 .75rem;border:1px solid var(--input);border-radius:.5rem;background:var(--background);color:var(--foreground);font:inherit;font-size:.875rem;transition:box-shadow .15s,border-color .15s}.input::placeholder,.select::placeholder,.textarea::placeholder{color:color-mix(in oklch,var(--muted-foreground) 50%,transparent)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 1px var(--ring)}.textarea{height:auto;padding:.5rem .75rem;resize:vertical}.check{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem}.check input{width:1rem;height:1rem;margin:0;accent-color:var(--primary)}.switch{position:relative;display:inline-flex;align-items:center;width:2.25rem;height:1.25rem;padding:0;border:0;border-radius:999px;background:var(--input);transition:background .2s}.switch:after{content:"";width:1rem;height:1rem;margin-left:2px;border-radius:999px;background:var(--background);box-shadow:0 1px 3px #0003;transition:transform .2s}.switch.on{background:var(--primary)}.switch.on:after{transform:translate(1rem)}.range{width:100%;accent-color:var(--primary)}.progress{height:.5rem;border-radius:999px;background:var(--muted);overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:var(--c, var(--primary));transition:width .5s ease}.dots-loader{display:inline-flex;align-items:center;gap:.75rem}.dots-loader i{width:.625rem;height:.625rem;border-radius:999px;background:var(--primary);animation:bounce 1s infinite}.dots-loader i:nth-child(2){animation-delay:.15s}.dots-loader i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.skeleton{display:block;height:.75rem;border-radius:.25rem;background:var(--muted);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.skeleton.circle{border-radius:999px}@keyframes pulse{50%{opacity:.5}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;border:1px dashed var(--border);border-radius:var(--radius);text-align:center}.empty-state .empty-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:999px;background:var(--muted);color:var(--muted-foreground)}.empty-state .empty-icon.primary{background:color-mix(in oklch,var(--primary) 15%,transparent);color:var(--primary)}.empty-state strong{display:block;font-weight:500}.empty-state p{font-size:.75rem;color:var(--muted-foreground)}code{font-family:var(--font-mono);font-size:.8125em;padding:1px 5px;border-radius:4px;background:var(--muted)}.empty-state.none{border:0}.badge.out{background:color-mix(in oklch,var(--chart-3) 15%,transparent);color:var(--chart-3)}.list-page{display:block;min-width:0}.list-page .page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.list-page .page-head h1{font-size:1.5rem;line-height:2rem;font-weight:700;letter-spacing:-.025em}.list-page .page-head p{margin-top:4px;font-size:.875rem;color:var(--muted-foreground)}.list-page .list-card{padding:2.75rem 1.25rem}.list-page .toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.list-page .tabs{display:flex;flex-wrap:wrap;gap:4px;padding:2px;border-radius:.5rem;background:var(--muted)}.list-page .tabs button{padding:.375rem .75rem;border:0;border-radius:.375rem;background:none;font-size:.75rem;font-weight:500;color:var(--muted-foreground);transition:background .15s,color .15s}.list-page .tabs button:hover{color:var(--foreground)}.list-page .tabs button.active{background:var(--background);color:var(--foreground);box-shadow:0 1px 2px #00000014}.list-page .search{position:relative;display:flex;align-items:center;width:100%;max-width:20rem}.list-page .search lucide-icon{position:absolute;left:.75rem;color:color-mix(in oklch,var(--muted-foreground) 60%,transparent)}.list-page .search .input{padding-left:2.25rem;background:color-mix(in oklch,var(--muted) 40%,transparent)}.list-page .table-wrap{position:relative;overflow-x:auto}.list-page table{width:100%;border-collapse:collapse}.list-page th{padding:0 .5rem .75rem;text-align:left;font-size:.75rem;font-weight:500;color:var(--muted-foreground);border-bottom:1px solid var(--border);white-space:nowrap}.list-page td{padding:.75rem .5rem;font-size:.875rem;line-height:1.25rem;border-bottom:1px solid color-mix(in oklch,var(--border) 50%,transparent)}.list-page th:first-child,.list-page td:first-child{padding-left:0}.list-page th:last-child,.list-page td:last-child{padding-right:0}.list-page tbody tr{cursor:pointer;transition:background .15s}.list-page tbody tr:hover{background:color-mix(in oklch,var(--muted) 30%,transparent)}.list-page tbody tr:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.list-page tbody tr:last-child td{border-bottom:0}.list-page .person{display:flex;align-items:center;gap:.625rem}.list-page .person .avatar{--c: var(--primary);background:color-mix(in oklch,var(--primary) 10%,transparent)}.list-page .person div{display:flex;flex-direction:column;min-width:0;line-height:1.35}.list-page .person strong{font-weight:500;white-space:nowrap}.list-page .person .text-muted{font-size:.75rem}.list-page .badge{white-space:nowrap}.list-page .end{text-align:right}.list-page .strong-num{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.list-page .none{border:0}.list-page .count{margin-top:1rem;font-size:.75rem;color:var(--muted-foreground)}@media(max-width:1023.98px){.list-page .lg{display:none}}@media(max-width:639.98px){.list-page .sm{display:none}.list-page .toolbar{flex-direction:column;align-items:stretch}.list-page .search{max-width:none}.list-page .person .text-muted,.list-page .person .avatar{display:none}.list-page .person strong{white-space:normal}.list-page .list-card{padding:1.5rem .75rem}.list-page td{font-size:.8125rem}.list-page td,.list-page th{padding-left:.375rem;padding-right:.375rem}}.badge.inactive{background:var(--muted);color:var(--muted-foreground)}.dash{display:flex;flex-direction:column;gap:1.5rem;min-width:0}.dash>*{min-width:0}.dash .page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.dash .page-head h1{font-size:1.5rem;line-height:2rem;font-weight:700;letter-spacing:-.025em}.dash .page-head p{margin-top:.25rem;font-size:.875rem;color:var(--muted-foreground)}.dash .kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.dash .row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;align-items:start}.dash .row>:first-child{grid-column:span 8}.dash .row>:last-child{grid-column:span 4}.dash .row-even{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.dash .card-header h3{font-weight:600}.dash .stretch{align-self:stretch}.dash .segmented{display:inline-flex;padding:3px;border-radius:.5rem;background:var(--muted);flex-shrink:0}.dash .segmented button{border:0;background:none;padding:.3rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;color:var(--muted-foreground);transition:background .15s,color .15s}.dash .segmented button.active{background:var(--card);color:var(--foreground);box-shadow:0 1px 3px #00000014}.dash .table-wrap{overflow-x:auto}.dash .data-table{width:100%;border-collapse:collapse;font-size:.875rem;line-height:1.25rem}.dash .data-table th{padding:0 .75rem .75rem 0;text-align:left;font-size:.75rem;font-weight:500;color:var(--muted-foreground);border-bottom:1px solid var(--border);white-space:nowrap}.dash .data-table td{padding:.875rem .75rem .875rem 0;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);white-space:nowrap}.dash .data-table th:last-child,.dash .data-table td:last-child{padding-right:0}.dash .data-table tbody tr{transition:background .15s}.dash .data-table tbody tr:hover{background:color-mix(in srgb,var(--muted) 30%,transparent)}.dash .data-table tbody tr:last-child td{border-bottom:0}.dash .data-table .end{text-align:right}.dash .data-table .num{font-weight:600;font-variant-numeric:tabular-nums}.dash .data-table.caps th{padding-block:.5rem;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.dash .data-table .rank{width:1.5rem;color:var(--muted-foreground)}.dash .who{display:flex;align-items:center;gap:.625rem}.dash .who div{display:flex;flex-direction:column;line-height:1.3}.dash .who strong{font-weight:500}.dash .who small{font-size:.75rem;line-height:1rem;color:var(--muted-foreground)}.dash .who .avatar{width:1.75rem;height:1.75rem;font-size:.625rem;background:var(--muted);color:var(--foreground)}.dash .mini-bar.stretch{display:flex;width:100%}.dash .mini-bar.stretch i{flex:1;width:auto}.dash .mini-bar{display:inline-flex;align-items:center;gap:.5rem}.dash .mini-bar i{position:relative;display:block;width:4.5rem;height:5px;border-radius:999px;background:var(--muted);overflow:hidden}.dash .mini-bar b{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--c, var(--primary))}.dash .mini-bar span{min-width:2rem;text-align:right;font-size:.75rem;color:var(--muted-foreground)}@media(max-width:1279.98px){.dash .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash .row{grid-template-columns:minmax(0,1fr)}.dash .row>:first-child,.dash .row>:last-child{grid-column:auto}}@media(max-width:767.98px){.dash .row-even{grid-template-columns:minmax(0,1fr)}.dash .card-header{flex-wrap:wrap}}@media(max-width:480px){.dash .kpi-grid{grid-template-columns:minmax(0,1fr)}}
