.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--canvas)}.topbar{height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-7);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.topbar-left{display:flex;align-items:center;gap:var(--space-5)}.topbar-logo{height:24px;width:auto}.topbar-title{font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--text-strong)}.topbar-right{display:flex;align-items:center;gap:var(--space-5)}.topbar-user{font-size:var(--fs-small);color:var(--text-muted)}.topbar-logout{display:flex;align-items:center;justify-content:center;width:var(--control-sm);height:var(--control-sm);border:none;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer}.topbar-logout:hover{background:var(--border);color:var(--text-strong)}.app-body{display:flex;flex:1}.sidenav{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);padding:var(--space-6) 0;overflow-y:auto;position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h))}.sidenav-section{padding:var(--space-3) var(--space-5)}.sidenav-section+.sidenav-section{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border)}.sidenav-heading{display:block;font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-3) var(--space-4)}.sidenav-link{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--fs-small);color:var(--text-body);text-decoration:none;transition:background .1s ease}.sidenav-link:hover{background:var(--canvas)}.sidenav-link.active{background:var(--accent-subtle);color:var(--accent);font-weight:var(--fw-medium)}.main-content{flex:1;padding:var(--space-8);max-width:var(--content-max);width:100%}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-500.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-600.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-sans-700.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600.woff2) format("woff2")}:root{--slate-0: #ffffff;--slate-25: #f8fafc;--slate-50: #f1f5f9;--slate-100: #e8eef5;--slate-150: #dde6f0;--slate-200: #d4dde8;--slate-300: #b6c2d2;--slate-400: #8b9bb0;--slate-500: #647488;--slate-600: #485568;--slate-700: #33404f;--slate-800: #1e2937;--slate-900: #0f1a2b;--slate-950: #08111d;--blue-50: #eaf1ff;--blue-100: #d6e4ff;--blue-200: #adc8ff;--blue-300: #7da5ff;--blue-400: #4d86ff;--blue-500: #0858ff;--blue-600: #0848d6;--blue-700: #0a3aad;--blue-800: #0b3186;--blue-900: #0c2a6b;--sky-50: #e6f6ff;--sky-100: #cceeff;--sky-300: #66c4ff;--sky-500: #0098ff;--sky-600: #0a7fd6;--sky-700: #0a66ad;--green-50: #e7f6ed;--green-500: #12915a;--green-600: #0f7a4c;--green-700: #0c5f3c;--amber-50: #fdf3e2;--amber-500: #c07b14;--amber-600: #a3690f;--amber-700: #82530b;--red-50: #fdecea;--red-500: #d92d20;--red-600: #b91c14;--red-700: #8f1610;--info-50: #e6f4ff;--info-500: #0a7fd6;--info-600: #0a66ad;--canvas: var(--slate-50);--surface: var(--slate-0);--surface-raised: var(--slate-0);--surface-subtle: var(--slate-50);--surface-inset: var(--slate-100);--surface-hover: var(--slate-50);--border: var(--slate-200);--border-subtle: var(--slate-150);--border-strong: var(--slate-300);--text-strong: var(--slate-900);--text-body: var(--slate-700);--text-muted: var(--slate-500);--text-subtle: var(--slate-400);--text-on-accent: #ffffff;--text-link: var(--blue-600);--accent: var(--blue-500);--accent-hover: var(--blue-600);--accent-active: var(--blue-700);--accent-subtle: var(--blue-50);--accent-subtle-border: var(--blue-100);--accent-text: var(--blue-700);--success: var(--green-600);--success-subtle: var(--green-50);--success-text: var(--green-700);--warning: var(--amber-600);--warning-subtle: var(--amber-50);--warning-text: var(--amber-700);--danger: var(--red-600);--danger-subtle: var(--red-50);--danger-text: var(--red-700);--info: var(--info-600);--info-subtle: var(--info-50);--info-text: var(--info-600);--class-internal: var(--slate-600);--class-internal-bg: var(--slate-100);--class-confidential: var(--amber-600);--class-confidential-bg: var(--amber-50);--class-restricted: var(--red-600);--class-restricted-bg: var(--red-50);--focus-ring: var(--sky-500);--overlay: color-mix(in srgb, var(--slate-950) 55%, transparent)}[data-theme=dark]{--canvas: #07101d;--surface: #0f1b2d;--surface-raised: #142440;--surface-subtle: #0c1626;--surface-inset: #0a1322;--surface-hover: #16243c;--border: #243349;--border-subtle: #18253a;--border-strong: #324767;--text-strong: #f1f5f9;--text-body: #c8d3e0;--text-muted: #8ea0b8;--text-subtle: #5f7188;--text-on-accent: #ffffff;--text-link: #7da5ff;--accent: var(--blue-400);--accent-hover: #6c9cff;--accent-active: #84acff;--accent-subtle: rgba(61, 120, 255, .14);--accent-subtle-border: rgba(61, 120, 255, .32);--accent-text: #9ebcff;--success: #2bb673;--success-subtle: rgba(43, 182, 115, .14);--success-text: #5fd39a;--warning: #e0a23b;--warning-subtle: rgba(224, 162, 59, .14);--warning-text: #f0bd64;--danger: #f0584b;--danger-subtle: rgba(240, 88, 75, .15);--danger-text: #ff8077;--info: #3aa6e8;--info-subtle: rgba(58, 166, 232, .14);--info-text: #6cc0f0;--class-internal: #9aa9bd;--class-internal-bg: rgba(154, 169, 189, .12);--class-confidential: #e0a23b;--class-confidential-bg: rgba(224, 162, 59, .14);--class-restricted: #f0584b;--class-restricted-bg: rgba(240, 88, 75, .15);--focus-ring: var(--sky-500);--overlay: color-mix(in srgb, #000 64%, transparent)}:root{--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", "Cascadia Code", monospace;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fs-display: 34px;--lh-display: 40px;--ls-display: -.02em;--fs-h1: 26px;--lh-h1: 32px;--ls-h1: -.015em;--fs-h2: 21px;--lh-h2: 28px;--ls-h2: -.01em;--fs-h3: 17px;--lh-h3: 24px;--ls-h3: -.005em;--fs-body-lg: 16px;--lh-body-lg: 24px;--ls-body-lg: 0;--fs-body: 14px;--lh-body: 20px;--ls-body: 0;--fs-small: 13px;--lh-small: 18px;--ls-small: 0;--fs-caption: 12px;--lh-caption: 16px;--ls-caption: .005em;--fs-overline: 11px;--lh-overline: 14px;--ls-overline: .06em;--fs-mono: 13px;--lh-mono: 20px;--ls-mono: 0;--fs-mono-sm: 12px;--lh-mono-sm: 16px}:root{--space-0: 0;--space-1: 2px;--space-2: 4px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 20px;--space-7: 24px;--space-8: 32px;--space-9: 40px;--space-10: 48px;--space-11: 64px;--space-12: 80px;--control-sm: 28px;--control-md: 36px;--control-lg: 44px;--sidebar-w: 256px;--sidebar-w-collapsed: 64px;--topbar-h: 56px;--content-max: 1280px}:root{--radius-xs: 3px;--radius-sm: 5px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 26, 43, .06);--shadow-sm: 0 1px 3px rgba(15, 26, 43, .08), 0 1px 2px rgba(15, 26, 43, .04);--shadow-md: 0 4px 12px rgba(15, 26, 43, .1), 0 2px 4px rgba(15, 26, 43, .05);--shadow-lg: 0 12px 28px rgba(15, 26, 43, .14), 0 4px 8px rgba(15, 26, 43, .06);--shadow-xl: 0 24px 56px rgba(15, 26, 43, .2);--focus-ring-width: 2px;--focus-ring-offset: 2px;--focus-shadow: 0 0 0 var(--focus-ring-offset) var(--surface), 0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring);--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .12s;--dur-med: .2s;--dur-slow: .32s}[data-theme=dark]{--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .55), 0 2px 4px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 28px rgba(0, 0, 0, .6), 0 4px 8px rgba(0, 0, 0, .4);--shadow-xl: 0 24px 56px rgba(0, 0, 0, .7)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-regular);color:var(--text-body);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,p{margin:0}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}code,kbd,samp,pre{font-family:var(--font-mono);font-size:var(--fs-mono-sm)}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-xs)}.nb-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.nb-skip-link{position:absolute;left:-9999px;top:var(--space-3);z-index:1000;padding:var(--space-3) var(--space-5);background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-sm);font-weight:var(--fw-semibold);font-size:var(--fs-small);text-decoration:none}.nb-skip-link:focus{left:var(--space-3)}@keyframes nb-spin{to{transform:rotate(360deg)}}@keyframes nb-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent);color:var(--text-on-accent);border:0;padding:.625rem 1.25rem;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--fw-semibold);font-size:var(--fs-body);transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text-body);border:1px solid var(--border);padding:.5rem 1rem;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--fw-medium);font-size:var(--fs-small);transition:border-color .15s}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.login-shell,.app-shell{min-height:100vh;padding:2rem;max-width:1200px;margin:0 auto}.login-shell{display:grid;place-items:center}.app-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.app-header h1{font-size:var(--fs-h1);font-weight:var(--fw-bold);letter-spacing:-.02em}.header-right{display:flex;align-items:center;gap:.75rem}.user-badge{background:var(--accent-subtle);color:var(--accent);padding:.375rem .75rem;border-radius:20px;font-size:var(--fs-small);font-weight:var(--fw-semibold)}.card{background:var(--surface);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.75rem}.card-header{display:flex;align-items:center;gap:.625rem}.card-header h3{font-size:var(--fs-body-lg);font-weight:var(--fw-bold)}.card-icon{font-size:var(--fs-h2);width:2rem;height:2rem;display:grid;place-items:center;background:var(--surface-subtle);border-radius:var(--radius-md)}.card-desc{color:var(--text-muted);font-size:var(--fs-body);line-height:1.5}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1.25rem}@media(max-width:768px){.card-grid{grid-template-columns:1fr}}.profile-card{flex-direction:row;flex-wrap:wrap;gap:1.5rem}.profile-card .card-header,.groups-section{width:100%}.groups-section .subtle{font-size:var(--fs-small);margin-bottom:.375rem}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group label{font-weight:var(--fw-semibold);font-size:var(--fs-small);color:var(--text-muted)}.form-group input,.form-group textarea{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--fs-body);font-family:inherit;background:var(--surface-subtle);transition:border-color .15s;resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);background:var(--surface)}.result-box{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;border-radius:var(--radius-md);font-size:var(--fs-small)}.result-box.success{background:var(--success-subtle);color:var(--success)}.result-box.error{background:var(--danger-subtle);color:var(--danger)}.result-box.loading{background:var(--accent-subtle);color:var(--accent)}.result-badge{font-weight:var(--fw-bold);white-space:nowrap}.result-message{overflow:hidden;text-overflow:ellipsis}.detail-row{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-small)}.detail-label{color:var(--text-muted);font-weight:var(--fw-semibold)}.detail-row code{background:var(--surface-subtle);padding:.25rem .5rem;border-radius:4px;font-size:var(--fs-small);color:var(--text-body);word-break:break-all}.ai-response{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem;font-size:var(--fs-body);line-height:1.6;white-space:pre-wrap;max-height:200px;overflow-y:auto}.demo-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.demo-table th{text-align:left;padding:.5rem;color:var(--text-muted);font-weight:var(--fw-semibold);border-bottom:2px solid var(--border)}.demo-table td{padding:.5rem;border-bottom:1px solid var(--border-subtle)}.demo-table tr:last-child td{border-bottom:none}.user-info{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0}.user-info dt{font-weight:var(--fw-semibold);color:var(--text-muted);font-size:var(--fs-small)}.user-info dd{margin:0;font-size:var(--fs-body)}.group-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.375rem}.group-list li{background:var(--accent-subtle);color:var(--accent);padding:.25rem .625rem;border-radius:6px;font-size:var(--fs-caption);font-weight:var(--fw-medium)}.hero-card{background:var(--surface);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-lg);max-width:420px;width:100%}.hero-card h1{font-size:var(--fs-h1);margin-bottom:.25rem}.hero-card p{color:var(--text-muted);margin-bottom:.5rem}.login-form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.login-form label{font-weight:var(--fw-semibold);font-size:var(--fs-small);color:var(--text-muted)}.login-form input{padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--fs-body-lg);background:var(--surface-subtle)}.login-form input:focus{outline:none;border-color:var(--accent);background:var(--surface)}.login-form button{margin-top:.25rem}button:not([class]){background:var(--accent);color:var(--text-on-accent);border:0;padding:.625rem 1.25rem;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--fw-semibold);font-size:var(--fs-body)}.error-text{color:var(--danger);font-size:var(--fs-body);margin:0}.subtle{color:var(--text-muted);font-size:var(--fs-body)}.page-title{font-size:var(--fs-h1);font-weight:var(--fw-bold);color:var(--text-strong);margin-bottom:var(--space-7)}.summary-strip{display:flex;gap:var(--space-5);margin-bottom:var(--space-7)}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;min-width:120px}.summary-value{font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--text-strong)}.summary-label{font-size:var(--fs-caption);color:var(--text-muted);text-transform:uppercase}.summary-healthy .summary-value{color:var(--success)}.summary-unhealthy .summary-value{color:var(--danger)}.summary-sunset .summary-value{color:var(--warning)}.toolbar{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-6)}.search-box{display:flex;align-items:center;gap:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);flex:1;max-width:400px}.search-input{border:none;outline:none;background:transparent;font-size:var(--fs-body);width:100%;color:var(--text-body)}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-small);background:var(--surface);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.data-table th{text-align:left;padding:var(--space-4) var(--space-5);font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--canvas);border-bottom:1px solid var(--border)}.data-table td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);color:var(--text-body)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--canvas)}.app-name-link{color:var(--accent);text-decoration:none;font-weight:var(--fw-medium)}.app-name-link:hover{text-decoration:underline}.status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:var(--fs-caption);font-weight:var(--fw-medium)}.badge-success{background:var(--success-subtle);color:var(--success)}.badge-danger{background:var(--danger-subtle);color:var(--danger)}.badge-warning{background:var(--warning-subtle);color:var(--warning)}.badge-info{background:var(--info-subtle);color:var(--info)}.badge-default{background:var(--canvas);color:var(--text-muted)}.tier-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--fs-caption);font-weight:var(--fw-semibold)}.tier-low{background:var(--success-subtle);color:var(--success)}.tier-medium{background:var(--warning-subtle);color:var(--warning)}.tier-high{background:var(--danger-subtle);color:var(--danger)}.class-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--fs-caption);font-weight:var(--fw-medium);background:var(--info-subtle);color:var(--info)}.health-pass{color:var(--success);font-weight:var(--fw-medium)}.health-fail{color:var(--danger);font-weight:var(--fw-medium)}.scan-recent{color:var(--success)}.scan-stale{color:var(--danger)}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-5);margin-top:var(--space-7)}.pagination-info{font-size:var(--fs-small);color:var(--text-muted)}.loading-state,.empty-state{text-align:center;padding:var(--space-9);color:var(--text-muted);font-size:var(--fs-body)}.error-banner{background:var(--danger-subtle);color:var(--danger);padding:var(--space-4) var(--space-5);border-radius:var(--radius-sm);margin-bottom:var(--space-5);font-size:var(--fs-small)}.breadcrumb{font-size:var(--fs-small);color:var(--text-muted);margin-bottom:var(--space-5)}.breadcrumb a{color:var(--accent);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.detail-header{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-6)}.detail-header h1{font-size:var(--fs-h2);font-weight:var(--fw-bold)}.detail-badges{display:flex;gap:var(--space-3)}.tab-nav{display:flex;gap:var(--space-2);border-bottom:1px solid var(--border);margin-bottom:var(--space-6)}.tab-btn{padding:var(--space-4) var(--space-5);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:var(--fs-small);color:var(--text-muted);font-weight:var(--fw-medium)}.tab-btn:hover{color:var(--text-strong)}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.detail-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-7)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}.detail-grid dt{font-size:var(--fs-caption);color:var(--text-muted);font-weight:var(--fw-semibold)}.detail-grid dd{margin:0;font-size:var(--fs-body);color:var(--text-body)}.detail-grid a{color:var(--accent)}.usage-summary{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-5);font-size:var(--fs-body)}.trend-badge{padding:2px 8px;border-radius:12px;font-size:var(--fs-caption);font-weight:var(--fw-medium)}.trend-growing{background:var(--success-subtle);color:var(--success)}.trend-stable{background:var(--info-subtle);color:var(--info)}.trend-declining{background:var(--danger-subtle);color:var(--danger)}.services-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-3)}.service-item{background:var(--info-subtle);color:var(--info);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--fs-small);font-weight:var(--fw-medium)}.login-page{min-height:100vh;display:grid;place-items:center;background:var(--canvas);padding:var(--space-6)}.login-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-9);box-shadow:var(--shadow-sm);max-width:400px;width:100%;text-align:center}.login-logo{height:32px;margin-bottom:var(--space-5)}.login-title{font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--text-strong);margin-bottom:var(--space-3)}.login-subtitle{font-size:var(--fs-small);color:var(--text-muted);margin-bottom:var(--space-7)}.login-form{display:flex;flex-direction:column;gap:var(--space-5);text-align:left}.login-label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--text-body)}.login-input{height:var(--control-md);padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-body);background:var(--canvas)}.login-input:focus{outline:none;border-color:var(--accent);background:var(--surface)}.login-button{height:var(--control-lg);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-size:var(--fs-body);font-weight:var(--fw-semibold);cursor:pointer;margin-top:var(--space-3)}.login-button:hover:not(:disabled){background:var(--accent-hover)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-error{background:var(--danger-subtle);color:var(--danger);padding:var(--space-4);border-radius:var(--radius-sm);font-size:var(--fs-small)}.admin-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-6);margin-bottom:var(--space-6)}.admin-form h2{font-size:var(--fs-body-lg);margin-bottom:var(--space-5)}.form-row{display:flex;gap:var(--space-4);align-items:end;margin-bottom:var(--space-4)}.form-field{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.form-field label{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text-muted)}.form-field input,.form-field select,.form-field textarea{height:var(--control-md);padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-body);background:var(--canvas)}.form-field textarea{height:auto;min-height:80px;padding:var(--space-4)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--accent)}.btn-action{height:var(--control-md);padding:0 var(--space-5);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-size:var(--fs-small);font-weight:var(--fw-medium);cursor:pointer}.btn-action:hover{background:var(--accent-hover)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:#b91c1c}.btn-sm{height:var(--control-sm);padding:0 var(--space-4);font-size:var(--fs-caption)}.success-message{color:var(--success);font-size:var(--fs-small);margin-top:var(--space-3)}.btn-warning{display:inline-flex;align-items:center;gap:.5rem;background:var(--warning);color:var(--text-strong);border:0;padding:.5rem 1rem;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--fw-medium);font-size:var(--fs-small)}.btn-warning:hover{opacity:.9}.detail-actions{display:flex;gap:var(--space-3);margin-left:auto}.detail-header{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}
