@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap");:root{--accent:#2563eb;--accent-2:#1d4ed8;--accent-3:#1e40af;--glow:#60a5fa;--soft:#e8effd;--soft-2:#c7d7fa;--bg:#eef2f8;--card:#fff;--ink:#0f1b2d;--ink-2:#475569;--ink-3:#8a98ac;--line:#e7ecf3;--ok:#16a34a;--ok-bg:#dcfce7;--warn:#ea580c;--warn-bg:#ffedd5;--danger:#dc2626;--danger-bg:#fee2e2;--gray-bg:#eef1f6;--gray-fg:#64748b;--grad-hero:linear-gradient(135deg,#2563eb,#1e40af);--grad-warn:linear-gradient(135deg,#fb923c,#dc2626);--grad-blue:linear-gradient(135deg,#2563eb,#3b82f6);--sidebar-w:240px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:Be Vietnam Pro,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;letter-spacing:-.01em;font-size:14px}button{cursor:pointer;border:none;background:none;font-family:inherit;letter-spacing:inherit}a{text-decoration:none;color:inherit}input,select,textarea{font-family:inherit}.admin-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:var(--card);border-right:1px solid var(--line);position:fixed;top:0;left:0;bottom:0;flex-direction:column;z-index:100}.main-content,.sidebar{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-w);flex:1 1;flex-direction:column}.page-header{background:var(--card);border-bottom:1px solid var(--line);padding:18px 28px;display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:50}.page-body{padding:24px 28px;flex:1 1}.sidebar-logo{padding:20px 20px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px}.sidebar-logo-icon{width:38px;height:38px;border-radius:11px;background:var(--grad-hero);display:grid;place-items:center;color:#fff;flex:none}.sidebar-logo-text .name{font-weight:800;font-size:15px;color:var(--ink)}.sidebar-logo-text .sub{font-size:11px;color:var(--ink-3);font-weight:500;margin-top:1px}.nav-section{padding:12px 12px 4px}.nav-section-label{font-size:10.5px;font-weight:700;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;padding:0 8px;margin-bottom:4px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;font-size:13.5px;font-weight:600;color:var(--ink-2);transition:background .12s,color .12s;margin-bottom:2px;width:100%;text-align:left;position:relative}.nav-item:hover{background:var(--bg);color:var(--ink)}.nav-item.active{background:var(--soft)}.nav-item.active,.nav-item.active svg{color:var(--accent)}.nav-item .badge{margin-left:auto;min-width:20px;height:20px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;padding:0 5px}.sidebar-footer{margin-top:auto;padding:12px;border-top:1px solid var(--line)}.h1{font-size:22px;font-weight:800;color:var(--ink)}.h2{font-size:17px}.h2,.h3{font-weight:700;color:var(--ink)}.h3{font-size:15px}.muted{color:var(--ink-2);font-weight:500}.tiny{font-size:12px}.row{display:flex;align-items:center}.divline{height:1px;background:var(--line)}.card{border-radius:18px;box-shadow:0 2px 12px rgba(15,27,45,.06);padding:20px}.card,.card-sm{background:var(--card)}.card-sm{border-radius:14px;box-shadow:0 2px 8px rgba(15,27,45,.05)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:24px}.stat-card{background:var(--card);border-radius:18px;padding:20px;box-shadow:0 2px 12px rgba(15,27,45,.06)}.stat-card .label{font-size:12.5px;font-weight:600;color:var(--ink-3);margin-bottom:10px;display:flex;align-items:center;gap:7px}.stat-card .value{font-size:28px;font-weight:800;color:var(--ink);line-height:1}.stat-card .sub{font-size:12px;color:var(--ink-3);margin-top:6px;font-weight:500}.stat-card.accent{background:var(--grad-hero);color:#fff}.stat-card.accent .label,.stat-card.accent .sub,.stat-card.accent .value{color:hsla(0,0%,100%,.9)}.stat-card.accent .value{color:#fff}.tbl-wrap{background:var(--card);border-radius:18px;box-shadow:0 2px 12px rgba(15,27,45,.06);overflow:hidden}table{width:100%;border-collapse:collapse}thead th{padding:13px 16px;text-align:left;font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;background:var(--bg)}tbody td,thead th{border-bottom:1px solid var(--line)}tbody td{padding:14px 16px;font-size:13.5px;color:var(--ink);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:rgba(238,242,248,.5)}.chip{height:24px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.live{background:var(--soft);color:var(--accent)}.chip.gray{background:var(--gray-bg);color:var(--gray-fg)}.chip.danger{background:var(--danger-bg);color:var(--danger)}.btn{height:40px;border-radius:11px;font-size:13.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 18px;transition:transform .1s,opacity .15s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 6px 16px -6px var(--accent)}.btn.soft{background:var(--soft);color:var(--accent-2)}.btn.ghost{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(15,27,45,.08)}.btn.danger{background:var(--danger);color:#fff}.btn[disabled]{opacity:.4;pointer-events:none}.btn.lg{height:48px;border-radius:13px;font-size:15px}.btn.sm{height:32px;border-radius:9px;font-size:12.5px;padding:0 12px}.field{margin-bottom:16px}.lbl{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px;display:block}.input,.select,.textarea{width:100%;background:var(--bg);border:1.5px solid var(--line);border-radius:11px;padding:11px 14px;font-size:14px;font-weight:500;color:var(--ink);font-family:inherit;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}.textarea{resize:vertical;min-height:80px;line-height:1.5}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A98AC' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-color:var(--bg);padding-right:36px}.prog{height:8px;background:var(--gray-bg);overflow:hidden}.prog,.prog>i{border-radius:999px}.prog>i{display:block;height:100%;background:linear-gradient(90deg,var(--glow),var(--accent))}.av{border-radius:12px;display:grid;place-items:center;font-weight:800;color:#fff;flex:none;overflow:hidden;background:var(--grad-blue);font-size:14px}.av.round{border-radius:50%}.av-sm{width:34px;height:34px;font-size:12px;border-radius:10px}.av-md{width:42px;height:42px;font-size:15px;border-radius:13px}.sec-hd{justify-content:space-between;margin-bottom:14px}.sec-hd,.sec-hd .title{display:flex;align-items:center}.sec-hd .title{font-size:15.5px;font-weight:700;color:var(--ink);gap:8px}.sec-hd .title:before{content:"";display:block;width:4px;height:16px;border-radius:2px;background:var(--accent)}.filter-bar{gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}.filter-bar,.search-input{display:flex;align-items:center}.search-input{gap:8px;background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13.5px;color:var(--ink-2);min-width:220px}.search-input input{border:none;background:none;outline:none;font-size:13.5px;color:var(--ink);font-family:inherit;width:100%}.icon-btn{width:34px;height:34px;border-radius:9px;background:var(--bg);display:grid;place-items:center;color:var(--ink-2);transition:background .12s,color .12s}.icon-btn:hover{background:var(--soft);color:var(--accent)}.empty{text-align:center;padding:48px 24px;color:var(--ink-3)}.empty .icon{margin-bottom:12px;opacity:.4}.empty .msg{font-size:14px;font-weight:600}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-body>*{animation:fadeUp .22s ease both}.page-body>:first-child{animation-delay:.02s}.page-body>:nth-child(2){animation-delay:.06s}.page-body>:nth-child(3){animation-delay:.1s}.page-body>:nth-child(4){animation-delay:.14s}.page-body>:nth-child(5){animation-delay:.18s}