:root{--bg: #fafafa;--surface: #ffffff;--border: #e4e4e7;--border-strong: #d4d4d8;--text: #18181b;--text-2: #52525b;--text-3: #a1a1aa;--ink: #18181b;--ink-hover: #2e2e33;--ink-tint: #f4f4f5;--danger: #b42318;--danger-tint: #fef3f2;--sidebar: #0c0c0d;--radius: 8px;--radius-lg: 12px;--shadow-pop: 0 16px 48px rgba(9, 9, 11, .12), 0 2px 8px rgba(9, 9, 11, .04);--font: "Geist", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}@media(max-width:768px){html{font-size:15px}}@media(min-width:1536px){html{font-size:17px}}@media(min-width:1920px){html{font-size:18px}}@media(min-width:2160px){html{font-size:19px}}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:1rem}button,input,select,textarea{font-family:inherit}::selection{background:#e4e4e7}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes drawerIn{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{display:inline-block;border-radius:6px;background:linear-gradient(90deg,#f0f0f1 25%,#e6e6e8,#f0f0f1 75%);background-size:200% 100%;animation:shimmer 1.4s ease infinite}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:.56rem .94rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;line-height:1;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .1s;white-space:nowrap}.btn:hover{background:var(--ink-tint);border-color:var(--border-strong)}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fafafa;font-weight:500}.btn-primary:hover{background:var(--ink-hover);border-color:var(--ink-hover)}.btn-danger{color:var(--danger);border-color:#f0d5d2}.btn-danger:hover{background:var(--danger-tint);border-color:#e3b8b3}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:500}.btn-danger-solid:hover{background:#9c1f15}.btn-sm{padding:.38rem .69rem;font-size:.8125rem;border-radius:6px}.input{padding:.56rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;background:var(--surface);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--text-3)}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--ink);box-shadow:0 0 0 3px #18181b14}.field-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.stat-cell{padding:18px 22px;position:relative}.stat-cell+.stat-cell{border-left:1px solid var(--border)}.stat-cell .stat-label{font-size:.75rem;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.07em}.stat-cell .stat-value{font-size:1.875rem;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:6px;color:var(--text)}.stat-cell .stat-hint{font-size:.75rem;color:var(--text-3);margin-top:3px}.stat-cell.stat-accent{background:var(--ink)}.stat-cell.stat-accent .stat-label{color:#a1a1aa}.stat-cell.stat-accent .stat-value{color:#fafafa}.stat-cell.stat-accent .stat-hint{color:#71717a}@media(max-width:720px){.stat-strip{grid-template-columns:repeat(2,1fr)}.stat-cell:nth-child(3){border-left:none}.stat-cell:nth-child(n+3){border-top:1px solid var(--border)}}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table thead th{padding:11px 14px;text-align:left;font-size:.75rem;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);background:#fafafa;white-space:nowrap}.table tbody td{padding:13px 14px;border-bottom:1px solid #f0f0f1}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background .1s}.table tbody tr.row-click{cursor:pointer}.table tbody tr.row-click:hover{background:#f8f8f8}.table tbody tr.row-checked{background:var(--ink-tint)}input[type=checkbox]{accent-color:var(--ink);cursor:pointer;width:14px;height:14px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:500;color:var(--text-2);padding:4px 11px;border:1px solid var(--border);border-radius:999px;background:var(--surface);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:999px;flex-shrink:0}.badge .dot.dot-hollow{background:transparent!important;border:1.5px solid var(--text-3);width:7px;height:7px}.badge.badge-inverted{background:var(--ink);border-color:var(--ink);color:#fafafa}.repeat-badge{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;line-height:1;padding:3px 7px;border-radius:999px;border:1px solid var(--border-strong);background:var(--ink-tint);color:var(--text-2);cursor:pointer;font-variant-numeric:tabular-nums;transition:background .12s,color .12s,border-color .12s}.repeat-badge:hover{background:var(--ink);border-color:var(--ink);color:#fafafa}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#09090b66;z-index:60;animation:fadeIn .15s ease}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);border-radius:var(--radius-lg);padding:24px;z-index:70;width:380px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-pop);animation:slideUp .18s ease}.drawer{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:100vw;background:var(--surface);z-index:70;border-left:1px solid var(--border);box-shadow:-24px 0 64px #09090b1a;display:flex;flex-direction:column;overflow:hidden;animation:drawerIn .2s ease}.toast{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fafafa;padding:12px 15px;border-radius:10px;font-size:.875rem;font-weight:500;box-shadow:0 8px 28px #0003;min-width:220px;max-width:360px;animation:slideUp .2s ease;border-left:3px solid #71717a}.toast.toast-error{border-left-color:#e2604d}.toast button{background:none;border:none;color:#a1a1aa;cursor:pointer;font-size:.94rem;line-height:1;padding:0}.toast button:hover{color:#fafafa}.app-shell{display:flex;min-height:100vh}.sidebar{width:14rem;background:var(--sidebar);display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;bottom:0;left:0;z-index:10}.sidebar-brand{padding:22px 24px 18px;border-bottom:1px solid rgba(255,255,255,.07)}.sidebar-nav{flex:1;padding:10px 0}.sidebar-foot{padding:10px;border-top:1px solid rgba(255,255,255,.07)}.app-main{flex:1;margin-left:14rem;min-height:100vh;background:var(--bg)}@media(max-width:860px){.app-shell{flex-direction:column}.sidebar{position:static;width:100%;flex-direction:row;align-items:center;bottom:auto}.sidebar-brand{border-bottom:none;border-right:1px solid rgba(255,255,255,.07);padding:14px 18px}.sidebar-nav{display:flex;flex:1;padding:6px 8px;gap:2px;overflow-x:auto}.sidebar-foot{border-top:none;padding:8px 10px}.app-main{margin-left:0}}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 14px;margin:1px 10px;border-radius:var(--radius);text-decoration:none;font-size:.875rem;font-weight:500;color:#8b8b92;transition:color .15s,background .15s}.nav-item svg{flex-shrink:0;opacity:.75}.nav-item:hover{color:#e4e4e7;background:#ffffff0d}.nav-item.active{color:#fafafa;background:#ffffff17}.nav-item.active svg{opacity:1}.page-btn{min-width:34px;height:34px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius);background:none;font-size:.875rem;color:var(--text-2);cursor:pointer;transition:background .12s,color .12s;font-variant-numeric:tabular-nums}.page-btn:hover{background:#ededee;color:var(--text)}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-btn.current{background:var(--ink);color:#fafafa;font-weight:600;cursor:default}
