:root{--ink: #14181c;--ink-soft: #4b5563;--surface: #f2f4f3;--panel: #ffffff;--line: #dce1de;--line-strong: #c3cac6;--brand: #0e6e5c;--brand-strong: #0a5245;--brand-tint: #e3f1ed;--signal: #c6641a;--signal-tint: #fbeadb;--critical: #b3261e;--critical-tint: #fbeaea;--warning: #9a6b00;--warning-tint: #fbf1da;--muted: #8b9490;--muted-tint: #eef0ef;--font-ui: "IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius-sm: 6px;--radius-md: 10px;--shadow-panel: 0 1px 2px rgba(20, 24, 28, .06), 0 1px 1px rgba(20, 24, 28, .04)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}a{color:var(--brand)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.page{padding:var(--space-6);max-width:1100px}.page-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.page-header h1{font-size:1.375rem}.page-subtitle{color:var(--ink-soft);margin:var(--space-1) 0 0;font-size:.9rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-size:.9rem;font-weight:600;padding:.55rem 1rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color .12s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-secondary{background:var(--panel);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:var(--surface)}.btn-danger{background:var(--critical-tint);color:var(--critical)}.btn-danger:hover:not(:disabled){background:#f5d7d5}.btn-sm{padding:.35rem .7rem;font-size:.82rem}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field label{font-size:.82rem;font-weight:600;color:var(--ink)}.field-hint{font-size:.78rem;color:var(--ink-soft)}.input{font-family:var(--font-ui);font-size:.92rem;padding:.55rem .7rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink)}.input:focus-visible{border-color:var(--brand)}.input-error{border-color:var(--critical)}.error-text{color:var(--critical);font-size:.82rem;margin:var(--space-1) 0 0}.data-table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.88rem}.data-table th{text-align:start;font-weight:600;color:var(--ink-soft);font-size:.78rem;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);vertical-align:middle}.data-table tbody tr:hover{background:var(--surface)}.data-table tbody tr:last-child td{border-bottom:none}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.text-end{text-align:end}.badge{display:inline-flex;align-items:center;gap:.35em;padding:.2rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-active{background:var(--brand-tint);color:var(--brand-strong)}.badge-warning{background:var(--warning-tint);color:var(--warning)}.badge-critical{background:var(--critical-tint);color:var(--critical)}.badge-muted{background:var(--muted-tint);color:var(--muted)}.state-block{padding:var(--space-8) var(--space-5);text-align:center;color:var(--ink-soft)}.state-block h3{color:var(--ink);font-size:1rem;margin-bottom:var(--space-1)}.skeleton-row{height:1rem;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--surface) 25%,var(--line) 37%,var(--surface) 63%);background-size:400% 100%;animation:skeleton-shine 1.4s ease infinite}@media (prefers-reduced-motion: reduce){.skeleton-row{animation:none}}@keyframes skeleton-shine{0%{background-position:100% 0}to{background-position:-100% 0}}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat{padding:var(--space-4) var(--space-5)}.stat-label{font-size:.8rem;color:var(--ink-soft);margin:0 0 var(--space-2)}.stat-value{font-family:var(--font-mono);font-size:1.75rem;font-weight:600}.pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);font-size:.85rem;color:var(--ink-soft)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-5);position:relative}.login-page-topbar{position:absolute;top:var(--space-5);inset-inline-end:var(--space-5)}.login-card{width:100%;max-width:360px;padding:var(--space-6) var(--space-5)}.login-mark{width:36px;height:36px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-strong) 100%);margin-bottom:var(--space-4)}.login-card .page-subtitle{margin-bottom:var(--space-5)}.login-submit{width:100%;justify-content:center;margin-top:var(--space-2)}.app-shell{display:flex;min-height:100%}.sidebar{width:240px;flex:none;background:var(--ink);color:#cdd3d0;padding:var(--space-5) var(--space-3);overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:var(--space-2);font-weight:600;font-size:.92rem;color:#fff;padding:0 var(--space-2) var(--space-5)}.sidebar-brand-mark{width:20px;height:20px;border-radius:5px;background:linear-gradient(135deg,var(--brand) 0%,#1ea083 100%);flex:none}.sidebar-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:.5rem var(--space-3);border-radius:var(--radius-sm);font-size:.86rem;color:#b6bdb9;text-decoration:none}.sidebar-link:hover{background:#ffffff0f;color:#fff}.sidebar-link-active{background:#0e6e5c59;color:#fff}.app-main{flex:1;display:flex;flex-direction:column;min-width:0}.app-topbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem var(--space-6);border-bottom:1px solid var(--line);background:var(--panel)}.app-topbar-user{display:flex;align-items:center;gap:var(--space-4);font-size:.86rem;color:var(--ink-soft)}.app-content{flex:1;overflow-y:auto}
