:root{--bg: #f6f7fb;--surface: #ffffff;--surface-2: #fafbfe;--border: #e9eaf2;--border-strong: #c6c8d8;--text: #17171f;--muted: #7a7d8f;--accent: #6366f1;--accent-hover: #4f46e5;--accent-soft: rgba(99, 102, 241, .1);--danger: #ef4444;--success: #22c55e;--warn: #f59e0b;--radius: 14px;--radius-sm: 10px;--sidebar-bg: #171721;--sidebar-text: rgba(255,255,255,.68);--sidebar-text-strong: #ffffff;--sidebar-muted: rgba(255,255,255,.34);--sidebar-border: rgba(255,255,255,.08);--sidebar-hover: rgba(255,255,255,.07);--sidebar-active: rgba(99,102,241,.28);--topbar-bg: rgba(246,247,251,.85);--hover-bg: #f3f4fa;--input-bg: #f6f7fb;--input-bg-focus:#ffffff;--shadow-card: 0 1px 2px rgba(23,23,31,.04), 0 4px 16px rgba(23,23,31,.05);--shadow-lift: 0 4px 8px rgba(23,23,31,.06), 0 12px 28px rgba(23,23,31,.1);--shadow-btn: 0 2px 8px rgba(99,102,241,.35);--shadow-modal: 0 24px 70px rgba(23,23,31,.25)}:root[data-theme=dark]{--bg: #0e0e14;--surface: #17171f;--surface-2: #1b1b25;--border: #262635;--border-strong: #4a4a5e;--text: #f2f2f8;--muted: #9a9daf;--accent: #818cf8;--accent-hover: #6366f1;--accent-soft: rgba(129, 140, 248, .14);--sidebar-bg: #0a0a10;--sidebar-text: rgba(255,255,255,.62);--sidebar-muted: rgba(255,255,255,.3);--sidebar-border: rgba(255,255,255,.07);--sidebar-hover: rgba(255,255,255,.06);--sidebar-active: rgba(129,140,248,.24);--topbar-bg: rgba(14,14,20,.85);--hover-bg: #1f1f2b;--input-bg: #1f1f2b;--input-bg-focus:#262635;--shadow-card: 0 1px 2px rgba(0,0,0,.35), 0 4px 18px rgba(0,0,0,.3);--shadow-lift: 0 6px 14px rgba(0,0,0,.45), 0 16px 36px rgba(0,0,0,.4);--shadow-btn: 0 2px 10px rgba(129,140,248,.35);--shadow-modal: 0 24px 70px rgba(0,0,0,.65)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased}body.app{display:flex}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}::-webkit-scrollbar-track{background:transparent}.sidebar{width:224px;flex-shrink:0;background:var(--sidebar-bg);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}.sidebar-logo{padding:22px 20px 18px;font-size:1.22rem;font-weight:800;letter-spacing:-.5px;border-bottom:1px solid var(--sidebar-border)}.sidebar-logo span{color:#a5b4fc}.sidebar-section{padding:16px 12px 6px;font-size:.66rem;font-weight:700;color:var(--sidebar-muted);letter-spacing:.1em;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 14px;margin:1px 8px;border-radius:10px;color:var(--sidebar-text);text-decoration:none;font-size:.875rem;font-weight:500;transition:background .15s ease,color .15s ease}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-strong)}.nav-item.active{background:var(--sidebar-active);color:var(--sidebar-text-strong);font-weight:600;box-shadow:inset 3px 0 #a5b4fc}.nav-icon{width:18px;text-align:center;opacity:.75}.sidebar-bottom{margin-top:auto;padding:14px 12px;border-top:1px solid var(--sidebar-border)}.user-chip{display:flex;align-items:center;gap:10px;padding:9px;border-radius:12px;background:#ffffff0f}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;flex-shrink:0}.user-info{flex:1;min-width:0}.user-info strong{display:block;font-size:.8rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info span{font-size:.7rem;color:var(--sidebar-muted)}.logout-link{font-size:.72rem;color:var(--sidebar-muted);text-decoration:none;display:block;text-align:center;margin-top:8px}.logout-link:hover{color:#fff}.theme-toggle{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:8px;padding:8px;background:#ffffff0d;border:1px solid var(--sidebar-border);border-radius:10px;color:var(--sidebar-text);font-size:.75rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s}.theme-toggle:hover{background:#ffffff1a;color:#fff}.version-tag{text-align:center;margin-top:10px;font-size:.65rem;color:#ffffff40}.main{margin-left:224px;flex:1;display:flex;flex-direction:column;min-height:100vh}.topbar{position:sticky;top:0;z-index:50;background:var(--topbar-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:13px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar h1{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-btn{display:none;background:none;border:1px solid var(--border-strong);border-radius:9px;color:var(--text);font-size:1.05rem;line-height:1;padding:6px 10px;cursor:pointer;flex-shrink:0}.sidebar-backdrop{display:none}.content{padding:32px;flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-card);transition:box-shadow .2s ease,transform .2s ease}.card-title{font-size:.9rem;font-weight:700;color:var(--text);letter-spacing:-.01em;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:.825rem;font-weight:600;text-decoration:none;transition:all .15s ease;white-space:nowrap;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-btn)}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--hover-bg);border-color:var(--border-strong)}.btn-danger{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.btn-danger:hover{background:#ef44442e}.btn-sm{padding:5px 12px;font-size:.775rem}.btn-xs{padding:3px 9px;font-size:.72rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:.75rem;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea{padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem;font-family:inherit;color:var(--text);background:var(--input-bg);transition:border-color .15s,background .15s,box-shadow .15s;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:var(--input-bg-focus);box-shadow:0 0 0 3px var(--accent-soft)}.field textarea{resize:vertical;min-height:72px}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse}table.data th{text-align:left;font-size:.7rem;font-weight:700;color:var(--muted);padding:10px 14px;border-bottom:2px solid var(--border);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}table.data td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr{transition:background .12s}table.data tbody tr:hover td{background:var(--hover-bg)}table.data th.sortable{cursor:pointer;user-select:none;transition:color .15s}table.data th.sortable:hover{color:var(--accent)}table.data th.sorted-asc:after{content:" ▲";font-size:.6rem;color:var(--accent)}table.data th.sorted-desc:after{content:" ▼";font-size:.6rem;color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:.7rem;font-weight:700;letter-spacing:.01em}.badge-green{background:#22c55e24;color:#16a34a}.badge-blue{background:#3b82f624;color:#2563eb}.badge-yellow{background:#eab30829;color:#a16207}.badge-red{background:#ef444424;color:#ef4444}.badge-gray{background:#7a7d8f24;color:var(--muted)}.badge-indigo{background:var(--accent-soft);color:var(--accent)}.progress{background:var(--border);border-radius:99px;height:6px;overflow:hidden;width:100%}.progress-bar{height:100%;border-radius:99px;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width .4s ease}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:20px;font-weight:500}.alert-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.35);color:#16a34a}.alert-error{background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:#ef4444}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-card);position:relative;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}.stat-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6366f1,#8b5cf6);opacity:.85}.stat-label{font-size:.75rem;color:var(--muted);margin-bottom:8px;font-weight:600;letter-spacing:.02em}.stat-value{font-size:1.75rem;font-weight:800;line-height:1;letter-spacing:-.03em}.stat-sub{font-size:.75rem;color:var(--muted);margin-top:6px}.seg{display:inline-flex;gap:4px;background:var(--bg);border-radius:10px;padding:3px}.seg a,.seg button{padding:5px 12px;border-radius:7px;font-size:.78rem;font-weight:500;text-decoration:none;color:var(--muted);border:none;background:none;cursor:pointer;font-family:inherit;transition:all .15s}.seg .on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a;font-weight:600}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-box{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:38px 34px;width:min(400px,95vw);box-shadow:var(--shadow-modal)}.auth-logo{font-size:1.45rem;font-weight:800;letter-spacing:-.5px;margin-bottom:4px}.auth-logo span{color:var(--accent)}.auth-sub{font-size:.85rem;color:var(--muted);margin-bottom:26px}@media(max-width:768px){.sidebar{transform:translate(-100%);transition:transform .2s}body.sidebar-open .sidebar{transform:translate(0)}body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:#00000073;z-index:90}.menu-btn{display:inline-flex}.main{margin-left:0}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.topbar{padding:10px 16px}.content{padding:16px}}
