:root{--ink:#000;--ink-2:#161616;--ink-3:#262626;--gold:#000;--gold-2:#262626;--bg:#f4f4f4;--card:#fff;--text:#111;--muted:#6b6b6b;--muted-2:#9c9c9c;--border:#e3e3e3;--green:#0e9f6e;--green-bg:#e7f8f2;--amber:#d97706;--amber-bg:#fef3e2;--red:#dc2626;--red-bg:#fdeaea;--blue:#2a5cdb;--blue-bg:#eaf0fe;--slate-bg:#efefef;--radius:10px;--shadow:0 1px 2px #1018280a, 0 1px 3px #1018280f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Mundial,Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}.app{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);color:#fff;z-index:40;flex-direction:column;width:236px;transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:22px 20px 18px;display:flex}.sidebar-brand .mark{background:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.sidebar-brand .mark svg{width:16px;height:16px}.sidebar-brand .word{letter-spacing:1.5px;font-size:17px;font-weight:700}.sidebar-brand .sub{color:#ffffff80;letter-spacing:.3px;margin-top:3px;font-size:9.5px;line-height:1.35}.nav{flex:1;padding:14px 10px;overflow-y:auto}.nav-group-label{text-transform:uppercase;letter-spacing:.8px;color:#ffffff59;padding:14px 12px 6px;font-size:10.5px}.nav-item{color:#ffffffbf;cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:9px 12px;font-size:13.5px;font-weight:500;display:flex}.nav-item svg{opacity:.85;flex:none;width:17px;height:17px}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;background:#ffffff1f;border-color:#ffffff38}.nav-item.active svg{opacity:1}.nav-item .count{color:#ffffffd9;background:#ffffff1f;border-radius:20px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.sidebar-footer{border-top:1px solid #ffffff14;align-items:center;gap:10px;padding:14px 16px 18px;display:flex}.avatar{width:32px;height:32px;color:var(--ink);background:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.sidebar-footer .who{flex:1;min-width:0;line-height:1.25}.sidebar-footer .who .name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.sidebar-footer .who .role{color:#ffffff80;font-size:11px}.sidebar-footer .signout{color:#ffffffb3;background:0 0;border:1px solid #ffffff24;border-radius:8px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.sidebar-footer .signout:hover{color:#fff;background:#ffffff1a}.main{flex-direction:column;flex:1;min-width:0;margin-left:236px;display:flex}.topbar{z-index:30;border-bottom:1px solid var(--border);background:#fff;align-items:center;gap:16px;padding:14px 28px;display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:19px;font-weight:700}.topbar .crumb{color:var(--muted);margin-top:2px;font-size:12.5px}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.search-box{background:var(--slate-bg);border:1px solid var(--border);width:230px;color:var(--muted-2);border-radius:8px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.search-box input{width:100%;color:var(--text);background:0 0;border:none;outline:none}.icon-btn{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);background:#fff;border-radius:8px;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--slate-bg)}.menu-toggle{display:none}.content{width:100%;max-width:1360px;padding:24px 28px 60px}.btn{white-space:nowrap;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:9px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.btn-gold{color:var(--ink);border-color:var(--ink);background:#fff}.btn-gold:hover{background:var(--slate-bg)}.btn-navy{background:var(--ink);color:#fff}.btn-navy:hover{background:var(--ink-3)}.btn-outline{border-color:var(--border);color:var(--text);background:#fff}.btn-outline:hover{background:var(--slate-bg)}.btn-ghost{color:var(--muted);background:0 0;border:none;padding:6px 8px}.btn-ghost:hover{color:var(--text);background:var(--slate-bg);border-radius:6px}.btn-danger-ghost{color:var(--red);background:0 0;border:none;padding:6px 8px}.btn-danger-ghost:hover{background:var(--red-bg);border-radius:6px}.btn-sm{padding:6px 10px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:not-allowed}.section-title{justify-content:space-between;align-items:center;margin:26px 0 12px;font-size:15px;font-weight:700;display:flex}.section-title .hint{color:var(--muted-2);font-size:12px;font-weight:500}.command-bar{background:linear-gradient(120deg, var(--ink) 0%, var(--ink-3) 100%);color:#fff;box-shadow:var(--shadow);border-radius:14px;flex-wrap:wrap;align-items:center;gap:0;margin-bottom:6px;padding:20px 26px;display:flex}.command-bar .cb-title{letter-spacing:1.6px;color:#fff9;width:100%;margin-bottom:14px;font-size:11px;font-weight:700}.cb-item{border-right:1px solid #ffffff24;padding:0 22px}.cb-item:first-of-type{padding-left:0}.cb-item:last-of-type{border-right:none}.cb-item .cb-label{letter-spacing:.8px;color:#ffffff8c;font-size:10.5px;font-weight:700}.cb-item .cb-value{margin-top:3px;font-size:20px;font-weight:800}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.kpi-card .kpi-label{color:var(--muted);font-size:12px;font-weight:600}.kpi-card .kpi-value{letter-spacing:-.3px;margin-top:6px;font-size:24px;font-weight:800}.kpi-card .kpi-sub{color:var(--muted-2);margin-top:4px;font-size:11.5px}.kpi-card.accent-green .kpi-value{color:var(--green)}.kpi-card.accent-amber .kpi-value{color:var(--amber)}.kpi-card.accent-red .kpi-value{color:var(--red)}.kpi-card.accent-blue .kpi-value{color:var(--blue)}.kpi-card.accent-gold{background:var(--ink);border-color:var(--ink)}.kpi-card.accent-gold .kpi-label{color:#fff9}.kpi-card.accent-gold .kpi-value{color:#fff}.kpi-card.accent-gold .kpi-sub{color:#ffffff80}.quick-actions{flex-wrap:wrap;gap:10px;margin:18px 0 8px;display:flex}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:16px 18px;display:flex}.panel-head h2{margin:0;font-size:15.5px;font-weight:700}.panel-head .spacer{flex:1}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.filter-row select,.filter-row input{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:7px;padding:7px 10px;font-size:12.5px}table{border-collapse:collapse;width:100%}thead th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:var(--slate-bg);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:700}tbody td{border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:12px 16px;font-size:13px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafbfd}.table-wrap{overflow-x:auto}.cell-strong{font-weight:700}.cell-muted{color:var(--muted)}.row-actions{gap:2px;display:flex}.badge{border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.badge-dot{border-radius:50%;width:6px;height:6px}.badge-green{background:var(--green-bg);color:var(--green)}.badge-green .badge-dot{background:var(--green)}.badge-amber{background:var(--amber-bg);color:var(--amber)}.badge-amber .badge-dot{background:var(--amber)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-red .badge-dot{background:var(--red)}.badge-blue{background:var(--blue-bg);color:var(--blue)}.badge-blue .badge-dot{background:var(--blue)}.badge-slate{background:var(--slate-bg);color:var(--muted)}.badge-slate .badge-dot{background:var(--muted-2)}.badge-gold{background:var(--ink);color:#fff}.badge-gold .badge-dot{background:#fff}.empty-state{text-align:center;color:var(--muted-2);padding:60px 20px}.empty-state .es-icon{margin-bottom:8px;font-size:34px}.empty-state .es-title{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:700}.pill-tabs{background:var(--slate-bg);border-radius:9px;gap:6px;width:fit-content;padding:4px;display:flex}.pill-tab{color:var(--muted);border-radius:7px;padding:7px 14px;font-size:12.5px;font-weight:600}.pill-tab.active{color:var(--ink);box-shadow:var(--shadow);background:#fff}.overlay{z-index:100;background:#0f141e80;justify-content:center;align-items:flex-start;padding:40px 20px;display:none;position:fixed;inset:0;overflow-y:auto}.overlay.open{display:flex}.modal{background:#fff;border-radius:14px;width:100%;max-width:720px;animation:.15s pop;box-shadow:0 20px 60px #0a0f1e59}.modal.modal-wide{max-width:920px}.modal.modal-sm{max-width:480px}@keyframes pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.modal-head{border-bottom:1px solid var(--border);background:#fff;border-radius:14px 14px 0 0;align-items:center;gap:12px;padding:18px 22px;display:flex;position:sticky;top:0}.modal-head h3{margin:0;font-size:16px;font-weight:700}.modal-head .sub{color:var(--muted);margin-top:2px;font-size:12px}.modal-close{border:1px solid var(--border);width:30px;height:30px;color:var(--muted);background:#fff;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;font-size:15px;display:flex}.modal-close:hover{background:var(--slate-bg)}.modal-body{max-height:66vh;padding:20px 22px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 22px;display:flex}.form-section{margin-bottom:22px}.form-section:last-child{margin-bottom:0}.form-section-title{text-transform:uppercase;letter-spacing:.7px;color:#fff;background:var(--ink);border-radius:5px;margin-bottom:12px;padding:3px 10px;font-size:11.5px;font-weight:800;display:inline-block}.form-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.form-grid.cols-3{grid-template-columns:1fr 1fr 1fr}.field{flex-direction:column;gap:6px;display:flex}.field.full{grid-column:1/-1}.field label{color:var(--text);font-size:12.5px;font-weight:600}.field label .opt{color:var(--muted-2);font-size:11px;font-weight:400}.field input,.field select,.field textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;outline:none;padding:9px 11px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink-3)}.field textarea{resize:vertical;min-height:64px}.checkbox-grid{grid-template-columns:repeat(3,1fr);gap:8px 10px;display:grid}.chk{border:1px solid var(--border);border-radius:7px;align-items:center;gap:7px;padding:6px 8px;font-size:12.5px;display:flex}.chk input{margin:0}.file-btn{border:1.5px dashed var(--border);text-align:center;color:var(--muted);background:var(--slate-bg);border-radius:8px;padding:14px;font-size:12.5px}label.file-btn{cursor:pointer;display:block}label.file-btn:hover{background:#e8e8e8}.file-list{flex-direction:column;gap:4px;margin-top:6px;display:flex}.file-item{border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.file-item a{color:var(--blue);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-item button{cursor:pointer;color:var(--muted);background:0 0;border:0}.gallery{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;display:grid}.gallery img{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:100%;height:90px}.helper-text{color:var(--muted-2);margin-top:6px;font-size:11.5px}.toast{background:var(--ink);color:#fff;z-index:200;opacity:0;pointer-events:none;border-radius:9px;align-items:center;gap:8px;padding:12px 18px;font-size:13px;font-weight:600;transition:all .2s;display:flex;position:fixed;bottom:22px;right:22px;transform:translateY(20px);box-shadow:0 10px 30px #00000040}.toast.show{opacity:1;transform:translateY(0)}.progress-track{background:var(--slate-bg);border-radius:6px;width:90px;height:6px;overflow:hidden}.progress-fill{background:var(--green);height:100%}.two-col{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}.mini-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.mini-panel h3{margin:0 0 12px;font-size:13.5px}.rank-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:9px 0;font-size:12.5px;display:flex}.rank-row:last-child{border-bottom:none}.rank-badge{background:var(--slate-bg);width:22px;height:22px;color:var(--muted);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.rank-badge.gold{background:var(--gold);color:#fff}.rank-name{flex:1;font-weight:600}.rank-val{color:var(--ink);font-weight:700}.dev-note{color:#8a6a0f;background:#fff8e8;border:1px solid #f0dfae;border-radius:8px;margin-bottom:18px;padding:10px 14px;font-size:12px}@media (max-width:980px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main{margin-left:0}.menu-toggle{display:flex}.kpi-grid{grid-template-columns:repeat(2,1fr)}.form-grid,.form-grid.cols-3,.two-col{grid-template-columns:1fr}.search-box{display:none}}.login-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--border);border-radius:14px;width:100%;max-width:380px;padding:30px 28px;box-shadow:0 20px 60px #0a0f1e1f}.login-brand{align-items:center;gap:10px;margin-bottom:26px;display:flex}.login-brand .mark{background:var(--ink);border-radius:9px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.login-brand .mark svg{width:18px;height:18px}.login-brand .word{letter-spacing:1.5px;color:var(--ink);font-size:19px;font-weight:700}.login-brand .sub{color:var(--muted-2);letter-spacing:.3px;margin-top:2px;font-size:10px}.login-title{margin:0 0 4px;font-size:16px;font-weight:700}.login-desc{color:var(--muted);margin:0 0 20px;font-size:12.5px}.login-error{background:var(--red-bg);color:var(--red);border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:12.5px;font-weight:600}.login-field{margin-bottom:14px}.badge-toggle{cursor:pointer;background:0 0;border:none;padding:0}.switch{flex:none;width:38px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch .track{background:var(--border);border-radius:20px;transition:all .15s;position:absolute;inset:0}.switch .track:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch input:checked+.track{background:var(--green)}.switch input:checked+.track:before{transform:translate(16px)}.perm-grid{border-collapse:collapse;width:100%}.perm-grid th,.perm-grid td{border-bottom:1px solid var(--border);padding:9px 12px;font-size:12.5px}.perm-grid thead th{background:var(--slate-bg);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:10.5px;font-weight:700}.perm-grid td.module-name{font-weight:600}.perm-radio-group{gap:14px;display:flex}.perm-radio{color:var(--text);align-items:center;gap:5px;font-size:12.5px;display:flex}.access-restricted{text-align:center;color:var(--muted);padding:80px 20px}.access-restricted .ar-icon{margin-bottom:10px;font-size:38px}.access-restricted .ar-title{color:var(--text);margin-bottom:6px;font-size:15px;font-weight:700}
