*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fafafa;--bg-card: #ffffff;--bg-sidebar: rgba(255,255,255,.7);--text: #18181b;--text-muted: #71717a;--text-light: #a1a1aa;--border: #e4e4e7;--border-light: #f4f4f5;--accent: #18181b;--accent-hover: #27272a;--emerald: #10b981;--emerald-light: #ecfdf5;--red: #ef4444;--red-light: #fef2f2;--blue: #3b82f6;--blue-light: #eff6ff;--amber: #f59e0b;--amber-light: #fffbeb;--radius: 12px;--radius-lg: 16px;--shadow: 0 1px 3px rgba(0,0,0,.04), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.04), 0 10px 15px rgba(0,0,0,.06);--spring: cubic-bezier(.34, 1.56, .64, 1)}html{font-size:14px}body{font-family:Inter,-apple-system,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--bg-sidebar);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid var(--border);padding:20px 12px;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:40}.main{flex:1;margin-left:240px;padding:32px;min-height:100vh}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;border:none;transition:all .2s var(--spring)}.btn:active{transform:scale(.96)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-outline{background:transparent;border:1.5px solid var(--border);color:var(--text)}.btn-outline:hover{border-color:var(--text)}.btn-danger{background:var(--red-light);color:var(--red);border:1px solid transparent}.btn-danger:hover{background:var(--red);color:#fff}.btn-success{background:var(--emerald-light);color:var(--emerald);border:1px solid transparent}.btn-success:hover{background:var(--emerald);color:#fff}.btn-sm{padding:6px 12px;font-size:12px}.stat-card{text-align:center}.stat-card .value{font-size:28px;font-weight:800;letter-spacing:-.03em}.stat-card .label{font-size:12px;color:var(--text-muted);margin-top:4px;font-weight:500}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border)}.data-table td{padding:12px;border-bottom:1px solid var(--border-light);font-size:13px}.data-table tr:hover td{background:var(--border-light)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:100px;font-size:11px;font-weight:600}.badge-green{background:var(--emerald-light);color:var(--emerald)}.badge-red{background:var(--red-light);color:var(--red)}.badge-amber{background:var(--amber-light);color:var(--amber)}.badge-blue{background:var(--blue-light);color:var(--blue)}.input{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s;background:var(--bg)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #18181b0f}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:50;opacity:0;transition:opacity .3s;pointer-events:none}.drawer-overlay.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:-480px;bottom:0;width:480px;background:var(--bg-card);border-left:1px solid var(--border);z-index:51;transition:right .35s var(--spring);overflow-y:auto;padding:28px}.drawer.open{right:0}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;font-size:13px;font-weight:500;color:var(--text-muted);transition:all .15s;margin-bottom:2px}.nav-item:hover{background:var(--border-light);color:var(--text)}.nav-item.active{background:var(--accent);color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}
