@charset "UTF-8";@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/inter-cyrillic-ext-wght-normal-IYF56FF6.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/inter-cyrillic-wght-normal-JEOLYBOO.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/inter-greek-ext-wght-normal-EOVOK2B5.woff2") format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/inter-greek-wght-normal-IRE366VL.woff2") format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/inter-vietnamese-wght-normal-CE5GGD3W.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/inter-latin-ext-wght-normal-HA22NDSG.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./media/inter-latin-wght-normal-NRMW37G5.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}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:transparent;opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors:active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:0 auto auto 0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}:root{--c-bg: #f5f6fa;--c-surface: #ffffff;--c-surface-muted: #f1f3f8;--c-surface-sunken: #e9ecf3;--c-border: #e2e6ee;--c-border-strong: #c9d0dc;--c-text: #0f172a;--c-text-muted: #475569;--c-text-subtle: #5a6478;--c-text-inverse: #ffffff;--c-primary: #4f46e5;--c-primary-hover: #4338ca;--c-primary-active: #3730a3;--c-primary-soft: #eef0ff;--c-primary-border: #c7cbfb;--c-focus: #4f46e5;--c-focus-ring: rgba(79, 70, 229, .3);--c-nav-bg: #0f172a;--c-nav-bg-2: #171c3a;--c-nav-text: #cbd5e1;--c-nav-text-strong: #f8fafc;--c-nav-label: #94a3b8;--c-nav-hover: rgba(148, 163, 184, .12);--c-nav-active: rgba(129, 140, 248, .2);--c-nav-indicator: #818cf8;--c-nav-border: rgba(148, 163, 184, .14);--c-nav-focus: #a5b4fc;--c-success: #047857;--c-success-soft: #ecfdf5;--c-success-border: #a7f3d0;--c-warning: #b45309;--c-warning-soft: #fffbeb;--c-warning-border: #fcd34d;--c-danger: #b91c1c;--c-danger-soft: #fef2f2;--c-danger-border: #fecaca;--c-info: #0369a1;--c-info-soft: #f0f9ff;--c-info-border: #bae6fd;--c-neutral: #475569;--c-neutral-soft: #f1f5f9;--c-neutral-border: #cbd5e1;--c-planned: #6d28d9;--c-planned-soft: #f5f3ff;--c-planned-border: #ddd6fe;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.25rem;--fs-2xl: 1.625rem;--fs-3xl: 2rem;--lh-tight: 1.25;--lh-normal: 1.55;--font-sans: "Inter Variable", "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono: "Cascadia Code", "JetBrains Mono", "SFMono-Regular", Consolas, Menlo, monospace;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 2.5rem;--sp-8: 3rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 6px 16px -4px rgba(15, 23, 42, .1), 0 2px 4px -2px rgba(15, 23, 42, .06);--shadow-lg: 0 20px 40px -12px rgba(15, 23, 42, .22), 0 6px 12px -6px rgba(15, 23, 42, .08);--ease: cubic-bezier(.2, 0, 0, 1);--nav-width: 260px;--topbar-height: 60px}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--topbar-height) + 1rem)}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--c-text);background:var(--c-bg);font-feature-settings:"cv11" 1,"ss01" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0 0 var(--sp-3);line-height:var(--lh-tight);font-weight:650;color:var(--c-text);letter-spacing:-.011em}h1{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.022em}h2{font-size:var(--fs-lg);letter-spacing:-.016em}h3{font-size:var(--fs-md)}h4{font-size:var(--fs-sm)}p{margin:0 0 var(--sp-3)}a{color:var(--c-primary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--c-primary) 35%,transparent);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .12s var(--ease),text-decoration-color .12s var(--ease)}a:hover{color:var(--c-primary-hover);text-decoration-color:currentColor}strong,b{font-weight:600}code,pre,.mono{font-family:var(--font-mono);font-size:.85em}:not(pre)>code{padding:.1em .4em;border-radius:5px;background:var(--c-surface-muted);border:1px solid var(--c-border);color:var(--c-text);overflow-wrap:break-word}pre{margin:0;padding:var(--sp-3) var(--sp-4);background:var(--c-surface-muted);border:1px solid var(--c-border);border-radius:var(--radius-md);overflow:auto;max-height:24rem;line-height:1.5}hr{border:0;border-top:1px solid var(--c-border);margin:var(--sp-5) 0}ul,ol{padding-left:1.25rem}::selection{background:color-mix(in srgb,var(--c-primary) 22%,transparent)}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--sp-3);top:-4rem;z-index:1000;padding:var(--sp-2) var(--sp-3);background:var(--c-primary);color:var(--c-text-inverse);border-radius:var(--radius-md);text-decoration:none;font-weight:600;box-shadow:var(--shadow-md);transition:top .12s ease}.skip-link:focus{top:var(--sp-3);color:var(--c-text-inverse)}.text-muted{color:var(--c-text-muted)}.text-subtle{color:var(--c-text-subtle);font-size:var(--fs-sm)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.stack>*+*{margin-top:var(--sp-5)}.stack-sm>*+*{margin-top:var(--sp-3)}.row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.row-between{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;justify-content:space-between}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--sp-4)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{--btn-bg: var(--c-surface);--btn-bg-hover: var(--c-surface-muted);--btn-fg: var(--c-text);--btn-border: var(--c-border-strong);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:2.375rem;padding:0 .95rem;font:inherit;font-size:var(--fs-sm);font-weight:600;line-height:1;letter-spacing:-.005em;color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);cursor:pointer;text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background .14s var(--ease),border-color .14s var(--ease),box-shadow .14s var(--ease),color .14s var(--ease),transform 80ms var(--ease)}.btn:hover:not(:disabled):not([aria-disabled=true]){background:var(--btn-bg-hover);color:var(--btn-fg)}.btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;box-shadow:0 0 0 4px var(--c-focus-ring)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;box-shadow:none}.btn.btn-primary{--btn-bg: var(--c-primary);--btn-bg-hover: var(--c-primary-hover);--btn-fg: var(--c-text-inverse);--btn-border: var(--c-primary);box-shadow:0 1px 2px #312e8140,inset 0 1px #ffffff1f}.btn.btn-primary:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--c-primary-hover)}.btn.btn-primary:active:not(:disabled):not([aria-disabled=true]){background:var(--c-primary-active)}.btn.btn-secondary{--btn-bg: var(--c-primary-soft);--btn-bg-hover: #e2e5ff;--btn-fg: var(--c-primary-hover);--btn-border: var(--c-primary-border);box-shadow:none}.btn.btn-danger{--btn-bg: var(--c-danger);--btn-bg-hover: #991b1b;--btn-fg: var(--c-text-inverse);--btn-border: var(--c-danger);box-shadow:0 1px 2px #7f1d1d40}.btn.btn-danger:hover:not(:disabled):not([aria-disabled=true]){border-color:#991b1b}.btn.btn-ghost{--btn-bg: transparent;--btn-bg-hover: var(--c-surface-muted);--btn-fg: var(--c-text-muted);--btn-border: transparent;box-shadow:none}.btn.btn-ghost:hover:not(:disabled):not([aria-disabled=true]){color:var(--c-text)}.btn.btn-sm{min-height:1.875rem;padding:0 .7rem;font-size:var(--fs-xs);border-radius:var(--radius-sm)}.btn.btn-lg{min-height:2.75rem;padding:0 1.25rem;font-size:var(--fs-base)}.btn.btn-block{width:100%}.btn.btn-icon{padding:0;width:2.375rem}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--sp-5)}.card>h2:first-child,.card>h3:first-child{margin-top:0}.card>h2{font-size:var(--fs-md)}.card>h3{font-size:var(--fs-sm)}.card.card-interactive{transition:box-shadow .16s var(--ease),border-color .16s var(--ease),transform .16s var(--ease)}.card.card-interactive:hover{border-color:var(--c-border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin:calc(-1 * var(--sp-5)) calc(-1 * var(--sp-5)) var(--sp-4);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border)}.card-header h2,.card-header h3,.card-header .card-title{margin:0}.card-title{margin:0 0 var(--sp-1);font-size:var(--fs-md);font-weight:650;letter-spacing:-.011em}.card-subtitle{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--c-text-muted)}.card-footer{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin:var(--sp-4) calc(-1 * var(--sp-5)) calc(-1 * var(--sp-5));padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--c-border);background:var(--c-surface-muted);border-radius:0 0 var(--radius-lg) var(--radius-lg);font-size:var(--fs-sm)}.card-muted{background:var(--c-surface-muted);box-shadow:none}.panel-aside{background:var(--c-surface-muted);border:1px solid var(--c-border);border-radius:var(--radius-md);padding:var(--sp-4);font-size:var(--fs-sm)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));gap:var(--sp-4)}.stat{position:relative;display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;padding:var(--sp-4) var(--sp-5);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.stat:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--stat-accent, var(--c-primary));opacity:.9}.stat.stat-success{--stat-accent: var(--c-success)}.stat.stat-warning{--stat-accent: var(--c-warning)}.stat.stat-danger{--stat-accent: var(--c-danger)}.stat.stat-info{--stat-accent: var(--c-info)}.stat.stat-neutral{--stat-accent: var(--c-border-strong)}.stat>*{margin:0}.stat a{font-size:var(--fs-sm);font-weight:500}.stat-label{margin:0;font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-subtle)}.stat-value,.metric{margin:0 0 var(--sp-1);font-size:var(--fs-3xl);font-weight:700;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--c-text)}.stat-value .text-sm,.stat-value small,.metric .text-sm,.metric small{font-size:var(--fs-sm);font-weight:500;letter-spacing:0;color:var(--c-text-muted)}.stat-meta{margin:0;font-size:var(--fs-sm);color:var(--c-text-muted)}.badge{display:inline-flex;align-items:center;gap:.4em;padding:.18em .65em;font-size:var(--fs-xs);font-weight:600;letter-spacing:.01em;line-height:1.5;border-radius:var(--radius-pill);border:1px solid var(--badge-border, var(--c-neutral-border));white-space:nowrap;color:var(--c-neutral);background:var(--c-neutral-soft)}.badge:before{content:"";width:.45em;height:.45em;border-radius:50%;background:currentColor;flex:none}.badge.badge-success{color:var(--c-success);background:var(--c-success-soft);--badge-border: var(--c-success-border)}.badge.badge-warning{color:var(--c-warning);background:var(--c-warning-soft);--badge-border: var(--c-warning-border)}.badge.badge-danger{color:var(--c-danger);background:var(--c-danger-soft);--badge-border: var(--c-danger-border)}.badge.badge-info{color:var(--c-info);background:var(--c-info-soft);--badge-border: var(--c-info-border)}.badge.badge-planned{color:var(--c-planned);background:var(--c-planned-soft);--badge-border: var(--c-planned-border)}.badge.badge-neutral{color:var(--c-neutral);background:var(--c-neutral-soft);--badge-border: var(--c-neutral-border)}.badge.badge-outline{background:transparent;border-color:currentColor}.field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:var(--sp-4)}.field label{font-size:var(--fs-sm);font-weight:600;color:var(--c-text)}.field .hint{font-size:var(--fs-xs);color:var(--c-text-subtle)}.field .error-text{font-size:var(--fs-xs);color:var(--c-danger);font-weight:600}.field.is-invalid .input{border-color:var(--c-danger);box-shadow:0 0 0 3px #b91c1c1f}.field.is-valid .input{border-color:var(--c-success)}fieldset{min-width:0}legend{font-weight:600}.input,select.input,textarea.input{width:100%;min-height:2.375rem;padding:0 var(--sp-3);font:inherit;font-size:var(--fs-sm);color:var(--c-text);background-color:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.input::placeholder,select.input::placeholder,textarea.input::placeholder{color:#6b7588}.input:hover:not(:disabled):not(:focus),select.input:hover:not(:disabled):not(:focus),textarea.input:hover:not(:disabled):not(:focus){border-color:#b3bccb}.input:focus,.input:focus-visible,select.input:focus,select.input:focus-visible,textarea.input:focus,textarea.input:focus-visible{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-focus-ring)}.input:disabled,.input[readonly],select.input:disabled,select.input[readonly],textarea.input:disabled,textarea.input[readonly]{background-color:var(--c-surface-muted);color:var(--c-text-muted)}.input:disabled,select.input:disabled,textarea.input:disabled{cursor:not-allowed}.input[aria-invalid=true],select.input[aria-invalid=true],textarea.input[aria-invalid=true]{border-color:var(--c-danger)}select.input:not([multiple]){appearance:none;padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center;background-size:1rem;cursor:pointer}select.input[multiple]{padding:var(--sp-1)}textarea.input{padding:var(--sp-2) var(--sp-3);min-height:5rem;line-height:1.5}input[type=checkbox],input[type=radio]{accent-color:var(--c-primary);width:1rem;height:1rem}.search{position:relative;display:flex;align-items:center}.search .input{padding-left:2.25rem}.search:before{content:"";position:absolute;left:.75rem;width:1rem;height:1rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235a6478' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat center/contain;pointer-events:none;z-index:1}.checkbox-row{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm)}.table-wrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-surface);box-shadow:var(--shadow-xs)}table.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}table.table th,table.table td{text-align:left;padding:.75rem var(--sp-4);border-bottom:1px solid var(--c-border);vertical-align:top}table.table thead th{position:sticky;top:0;padding-top:.625rem;padding-bottom:.625rem;background:var(--c-surface-muted);font-size:.6875rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-muted);white-space:nowrap;z-index:1;vertical-align:middle}table.table tbody tr{transition:background .1s var(--ease)}table.table tbody tr:hover{background:#f8f9fd}table.table tbody tr.clickable,table.table tbody tr[tabindex]{cursor:pointer}table.table tbody tr:last-child td,table.table tbody tr:last-child th{border-bottom:0}table.table tfoot td,table.table tfoot th{background:var(--c-surface-muted);font-weight:600;border-bottom:0;border-top:1px solid var(--c-border)}table.table .th-sort{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-1);font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}table.table .th-sort:hover{color:var(--c-text)}table.table .th-sort:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:2px}table.table .th-sort .sort-indicator{font-size:.9em;color:var(--c-text-subtle)}table.table td.num,table.table th.num{text-align:right;font-variant-numeric:tabular-nums}table.table td>code,table.table td>a>code{white-space:nowrap}.banner{--banner-accent: var(--c-info);display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3) var(--sp-4) var(--sp-3) calc(var(--sp-4) + 2px);border:1px solid;border-left-width:4px;border-left-color:var(--banner-accent);border-radius:var(--radius-md);font-size:var(--fs-sm);line-height:1.55}.banner p:last-child{margin-bottom:0}.banner .banner-title{font-weight:650;margin:0 0 var(--sp-1);color:var(--banner-accent)}.banner.banner-danger{--banner-accent: var(--c-danger);color:var(--c-danger);background:var(--c-danger-soft);border-color:var(--c-danger-border);border-left-color:var(--c-danger)}.banner.banner-warning{--banner-accent: var(--c-warning);color:var(--c-warning);background:var(--c-warning-soft);border-color:var(--c-warning-border);border-left-color:var(--c-warning)}.banner.banner-info{--banner-accent: var(--c-info);color:var(--c-info);background:var(--c-info-soft);border-color:var(--c-info-border);border-left-color:var(--c-info)}.banner.banner-success{--banner-accent: var(--c-success);color:var(--c-success);background:var(--c-success-soft);border-color:var(--c-success-border);border-left-color:var(--c-success)}.banner .banner-body{flex:1;min-width:0;color:var(--c-text)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-5);border:1px dashed var(--c-border-strong);border-radius:var(--radius-lg);color:var(--c-text-muted);background:radial-gradient(ellipse at top,rgba(79,70,229,.05),transparent 60%),var(--c-surface)}.empty-state .empty-icon{width:3rem;height:3rem;border-radius:var(--radius-lg);background:var(--c-primary-soft);border:1px solid var(--c-primary-border);display:grid;place-items:center;font-size:1.35rem;color:var(--c-primary);box-shadow:var(--shadow-xs)}.empty-state h3{margin:var(--sp-2) 0 0;font-size:var(--fs-md);color:var(--c-text)}.empty-state p{max-width:36rem;margin:0;font-size:var(--fs-sm)}.empty-state .empty-actions{margin-top:var(--sp-3);display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:center}.empty-state .empty-actions:empty{display:none}.skeleton{display:block;background:linear-gradient(90deg,var(--c-surface-muted) 25%,var(--c-surface-sunken) 37%,var(--c-surface-muted) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite;border-radius:var(--radius-sm);min-height:1em}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.cdk-overlay-container{z-index:2000}.cdk-overlay-backdrop.app-dialog-backdrop{background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.app-dialog-panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--sp-6);width:min(32rem,100vw - 2rem);max-height:calc(100vh - 2rem);overflow:auto;outline:none;animation:dialog-in .16s var(--ease)}.app-dialog-panel h2:first-child,.app-dialog-panel [role=document]>h2:first-child{font-size:var(--fs-xl);margin-bottom:var(--sp-2)}@keyframes dialog-in{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:.5rem var(--sp-5);margin:0;font-size:var(--fs-sm)}dl.kv dt{color:var(--c-text-subtle);font-weight:500}dl.kv dd{margin:0;overflow-wrap:anywhere;color:var(--c-text);font-weight:500}@media(max-width:520px){dl.kv{grid-template-columns:1fr;gap:.125rem}dl.kv dd+dt{margin-top:var(--sp-2)}}.demo-ribbon{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:.375rem var(--sp-3);font-size:var(--fs-xs);font-weight:650;letter-spacing:.04em;text-transform:uppercase;text-align:center;color:#92400e;background:linear-gradient(90deg,#fef3c7,#fffbeb 50%,#fef3c7);border-bottom:1px solid var(--c-warning-border)}.pagination{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-2) 0;font-size:var(--fs-sm);color:var(--c-text-muted)}.pagination>span:first-child{margin-right:auto}.pagination label{display:inline-flex;align-items:center;gap:var(--sp-2)}.pagination select.input{width:auto;min-height:1.875rem;font-size:var(--fs-xs)}details.expander{border:1px solid var(--c-border);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);background:var(--c-surface)}details.expander summary{cursor:pointer;font-weight:600;color:var(--c-text)}details.expander[open] summary{margin-bottom:var(--sp-2)}details>summary{cursor:pointer}.page{padding:var(--sp-6) var(--sp-7) var(--sp-8);max-width:1440px;margin:0 auto}@media(max-width:1100px){.page{padding:var(--sp-5) var(--sp-5) var(--sp-7)}}@media(max-width:640px){.page{padding:var(--sp-4) var(--sp-3) var(--sp-6)}}.page>section>h2,.page>section>.row-between>h2{font-size:var(--fs-lg)}.divider{height:1px;background:var(--c-border);border:0;margin:var(--sp-4) 0}.pill{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.25rem .75rem;border-radius:var(--radius-pill);background:var(--c-surface-muted);border:1px solid var(--c-border);font-size:var(--fs-xs);font-weight:600;color:var(--c-text-muted)}.text-danger{color:var(--c-danger);font-weight:600}.text-warning{color:var(--c-warning);font-weight:600}.text-success{color:var(--c-success);font-weight:600}app-shell .shell{display:grid;grid-template-columns:var(--nav-width) minmax(0,1fr);grid-template-rows:auto auto auto 1fr;grid-template-areas:"nav demo" "nav support" "nav topbar" "nav content";min-height:100vh}app-shell .demo-ribbon{grid-area:demo}app-shell svg.nav-icon,app-shell svg.ui-icon{flex:none;width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}app-shell .brand-mark{flex:none;width:2.125rem;height:2.125rem;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,#818cf8,#4f46e5 55%,#3730a3);color:#fff;font-weight:800;font-size:1.0625rem;box-shadow:0 4px 12px -2px #4f46e58c,inset 0 1px #ffffff40}app-shell .sidenav{grid-area:nav;position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;background:radial-gradient(120% 60% at 0% 0%,rgba(99,102,241,.2),transparent 60%),linear-gradient(180deg,var(--c-nav-bg-2) 0%,var(--c-nav-bg) 45%);color:var(--c-nav-text);z-index:25}app-shell .sidenav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}app-shell .sidenav a{color:var(--c-nav-text);text-decoration:none}app-shell .sidenav a:focus-visible{outline:2px solid var(--c-nav-focus);outline-offset:1px}app-shell .brand{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);min-height:var(--topbar-height);border-bottom:1px solid var(--c-nav-border)}app-shell .brand:hover{color:var(--c-nav-text-strong)}app-shell .brand-text{display:flex;flex-direction:column;gap:2px;min-width:0}app-shell .brand-name{color:var(--c-nav-text-strong);font-weight:650;font-size:var(--fs-sm);line-height:1.25;letter-spacing:-.01em}app-shell .brand-phase{font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--c-nav-label)}app-shell .nav-scroll{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-3) var(--sp-6);scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.3) transparent}app-shell .nav-section+.nav-section{margin-top:var(--sp-3)}app-shell .nav-section-title{margin:0;padding:var(--sp-3) var(--sp-3) var(--sp-2);font-size:.6875rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--c-nav-label)}app-shell .nav-section li a{display:flex;align-items:center;gap:var(--sp-3);padding:.5rem var(--sp-3);border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:500;line-height:1.3;transition:background .12s var(--ease),color .12s var(--ease)}app-shell .nav-section li a .nav-icon{opacity:.8}app-shell .nav-section li a:hover{background:var(--c-nav-hover);color:var(--c-nav-text-strong)}app-shell .nav-section li a.active{background:var(--c-nav-active);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--c-nav-indicator)}app-shell .nav-section li a.active .nav-icon{opacity:1;color:#c7d2fe}app-shell .nav-section li a .badge-planned{color:#ddd6fe;background:#a78bfa29;--badge-border: rgba(167, 139, 250, .38);font-size:.625rem}app-shell .nav-label{flex:1;min-width:0}app-shell .nav-backdrop{display:none}app-shell .topbar{grid-area:topbar;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--sp-3);min-height:var(--topbar-height);padding:var(--sp-2) var(--sp-7);background:#ffffffd1;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--c-border)}app-shell .nav-toggle,app-shell .brand-compact{display:none}app-shell .brand-compact{text-decoration:none}app-shell .brand-compact .brand-mark{width:2rem;height:2rem}app-shell .context-badge{flex:1;display:flex;align-items:center;gap:var(--sp-4);min-width:0}app-shell .context-main{display:flex;align-items:center;gap:var(--sp-2);margin-right:auto;min-width:0}app-shell .context-pill{overflow:hidden;display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;height:2.25rem;padding:0 0 0 .8rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-pill);box-shadow:var(--shadow-xs);color:var(--c-text-subtle);transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}app-shell .context-pill:hover{border-color:var(--c-border-strong)}app-shell .context-pill:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-focus-ring)}app-shell .context-pill .ui-icon{width:1rem;height:1rem}app-shell .context-pill-static{padding-right:.9rem;font-size:.8125rem;font-weight:600;color:var(--c-text)}app-shell select.context-select{width:auto;max-width:17rem;min-height:2.125rem;padding-left:0;border:0;background-color:transparent;box-shadow:none;border-radius:var(--radius-pill);font-size:.8125rem;font-weight:600;text-overflow:ellipsis}app-shell select.context-select:focus,app-shell select.context-select:focus-visible{box-shadow:none}app-shell .user-chip{display:flex;align-items:center;gap:var(--sp-3);min-width:0;padding-left:var(--sp-4);border-left:1px solid var(--c-border)}app-shell .avatar{flex:none;width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#6366f1,#4338ca);color:#fff;font-size:.8125rem;font-weight:650;letter-spacing:.02em}app-shell .user-meta{display:flex;flex-direction:column;min-width:0;line-height:1.25}app-shell .context-name{font-weight:600;font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-shell .context-roles{max-width:16rem;font-size:var(--fs-xs);color:var(--c-text-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-shell .context-roles span+span:before{content:" \b7  "}app-shell .support-ribbon{grid-area:support;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);font-weight:650;color:#fff;background:linear-gradient(90deg,#991b1b,var(--c-danger));position:sticky;top:0;z-index:31}app-shell .content{grid-area:content;min-width:0}app-shell .content:focus{outline:none}@media(max-width:1100px){app-shell .topbar{padding-inline:var(--sp-5)}app-shell .context-roles{max-width:9rem}}@media(max-width:900px){app-shell .shell{grid-template-columns:minmax(0,1fr);grid-template-areas:"demo" "support" "topbar" "content"}app-shell .nav-toggle{display:inline-flex}app-shell .brand-compact{display:inline-flex}app-shell .topbar{padding-inline:var(--sp-3);gap:var(--sp-2)}app-shell .sidenav{position:fixed;top:0;left:0;bottom:0;height:auto;width:min(18rem,86vw);z-index:50;box-shadow:var(--shadow-lg);transform:translate(-100%);visibility:hidden;transition:transform .2s var(--ease),visibility 0s linear .2s}app-shell .sidenav.open{transform:none;visibility:visible;transition:transform .2s var(--ease)}app-shell .nav-backdrop{display:block;position:fixed;inset:0;z-index:45;border:0;padding:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer}app-shell .user-chip{padding-left:0;border-left:0}app-shell .user-meta{display:none}app-shell select.context-select{max-width:8.5rem}}@media(max-width:560px){app-shell .context-pill .ui-icon,app-shell .brand-compact,app-shell .user-chip{display:none}app-shell .context-pill{padding-left:.6rem}app-shell select.context-select{max-width:6.5rem}app-shell .sign-out-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}
