@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color:#17243b;font-synthesis:none;text-rendering:optimizelegibility;--blue:#4267e8;--muted:#7c8798;--line:#e8edf4;--green:#0f9b70;--red:#df5262;--purple:#8766dc;background:#f5f7fb;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:#f5f7fb;min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}.boot{text-align:center;color:#607087;padding:40px}.app-shell{min-height:100vh}.sidebar{border-right:1px solid var(--line);z-index:10;background:#fff;flex-direction:column;width:252px;padding:25px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand,.brand-lock{align-items:center;gap:11px;padding:0 9px 28px;display:flex}.brand b,.brand-lock b{letter-spacing:-.3px;font:800 16px Manrope,sans-serif;display:block}.brand small,.brand-lock small{color:#98a2b1;letter-spacing:1.25px;margin-top:3px;font-size:9px;font-weight:700;display:block}.brand-icon{color:#fff;background:linear-gradient(145deg,#5479f5,#3456d7);border-radius:13px;place-items:center;width:40px;height:40px;font:800 15px Manrope;display:grid;box-shadow:0 7px 16px #4267e833}.nav-caption{letter-spacing:1.3px;color:#a4adba;padding:5px 12px 12px;font-size:10px;font-weight:700}.nav-list{gap:5px;display:grid}.nav-item{text-align:left;color:#667287;background:0 0;border:0;border-radius:10px;align-items:center;gap:13px;padding:12px 13px;font-weight:600;display:flex}.nav-item span{text-align:center;color:#8490a3;width:19px;font-size:18px}.nav-item:hover{color:#3456d7;background:#f6f8ff}.nav-item.active{color:#3456d7;background:#edf1ff}.nav-item.active span{color:#3456d7}.sidebar-user{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:17px 7px 0;display:flex}.avatar{color:#4267e8;background:#edf1ff;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.sidebar-user b{font-size:12px;display:block}.sidebar-user small{color:#8a95a5;margin-top:3px;font-size:11px;display:block}.main-area{flex-direction:column;min-height:100vh;margin-left:252px;display:flex}.topbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;justify-content:space-between;align-items:center;height:78px;padding:0 34px;display:flex;position:sticky;top:0}.top-title{font:800 17px Manrope,sans-serif}.top-subtitle{color:#9aa4b2;margin-top:3px;font-size:11px}.top-actions{align-items:center;gap:10px;display:flex}.period-select{border:1px solid var(--line);color:#43516a;background:#fff;border-radius:9px;min-width:140px;padding:9px 12px}.live-dot{background:#1ab887;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #1ab88720}.btn{border:0;border-radius:9px;padding:10px 15px;font-size:12px;font-weight:700}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 5px 13px #4267e82b}.btn.primary:hover{background:#3558d8}.btn.ghost{color:#5f6b7d;background:#f5f7fb}.btn.small{padding:9px 11px}.btn.full{width:100%;padding:13px}.page-content{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:29px 34px}.footer-note{text-align:center;color:#a4adba;padding:15px;font-size:10px}.welcome-row{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.eyebrow{letter-spacing:1.5px;color:#8d9aae;font-size:9px;font-weight:800}.welcome-row h1{letter-spacing:-.8px;margin:6px 0;font:800 25px Manrope,sans-serif}.welcome-row p{color:#8792a3;margin:0;font-size:12px}.period-chip,.role-chip{color:#52617a;background:#fff;border:1px solid #e4e9f4;border-radius:20px;padding:8px 12px;font-size:11px;font-weight:700}.role-chip{color:#4267e8;background:#edf1ff;border:0}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:19px;display:grid}.metric-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{border:1px solid var(--line);background:#fff;border-radius:13px;min-height:130px;padding:18px 19px;box-shadow:0 3px 12px #23365705}.metric-top{color:#8590a1;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;display:flex}.metric-icon{border-radius:10px;place-items:center;width:33px;height:33px;font-size:17px;font-style:normal;display:grid}.metric-icon.blue{color:var(--blue);background:#edf1ff}.metric-icon.green{color:var(--green);background:#e8f8f1}.metric-icon.red{color:var(--red);background:#fff0f1}.metric-icon.violet{color:var(--purple);background:#f2edff}.metric-card strong{letter-spacing:-.6px;margin-top:15px;font:800 21px Manrope,sans-serif;display:block}.metric-card small{color:#a0a9b6;margin-top:5px;font-size:10px;display:block}.dashboard-grid{grid-template-columns:1.1fr 1fr;gap:17px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:13px;min-width:0;margin-bottom:17px;padding:20px;box-shadow:0 3px 12px #23365705}.panel-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.panel-head h2{margin:0;font:800 14px Manrope,sans-serif}.panel-head p{color:#9aa4b2;margin:4px 0 0;font-size:10px}.text-btn{color:var(--blue);background:0 0;border:0;font-size:11px;font-weight:700}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:11px}th{text-align:left;color:#94a0b1;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--line);background:#fafbfd;padding:10px 9px;font-size:9px}td{color:#59677c;border-bottom:1px solid #f0f2f6;padding:12px 9px}tbody tr:last-child td{border-bottom:0}.positive{color:var(--green)}.negative{color:var(--red)}.total-card{background:#eef2ff;border:1px solid #dfe6ff;border-radius:13px;justify-content:space-between;align-items:center;gap:15px;padding:20px 23px;display:flex}.total-card span{color:#5369bd;letter-spacing:.8px;font-size:11px;font-weight:800;display:block}.total-card small{color:#8391c8;margin-top:5px;font-size:10px;display:block}.total-card strong{color:#3456d7;font:800 25px Manrope}.empty-state{text-align:center;color:#9ca7b5;padding:35px 15px;font-size:12px}.empty-state span{margin-bottom:8px;font-size:23px;display:block}.status{color:#778396;background:#f1f3f7;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:700;display:inline-block}.status.ok{color:#138a67;background:#e8f8f1}.status.off{color:#cf4d5b;background:#fff0f1}.status.neutral{color:#778396;background:#f1f3f7}.inline-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;display:grid}.inline-form label,.form-stack label{color:#65738a;gap:6px;font-size:10px;font-weight:700;display:grid}.inline-form input,.inline-form select,.form-stack input{color:#344157;background:#fff;border:1px solid #e5eaf2;border-radius:8px;outline:none;min-width:0;padding:10px 11px;font-size:11px}.inline-form input:focus,.inline-form select:focus,.form-stack input:focus{border-color:#8da4fb;box-shadow:0 0 0 3px #4267e811}.permission-grid{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.permission{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;align-items:center;gap:9px;padding:10px;display:flex!important}.permission input{width:15px;height:15px;accent-color:var(--blue)}.permission span{font-size:11px}.tabs{gap:8px;margin-bottom:15px;display:flex}.tab{border:1px solid var(--line);color:#65738a;background:#fff;border-radius:9px;padding:9px 16px;font-size:11px;font-weight:700}.tab.active{color:#3456d7;background:#edf1ff;border-color:#e0e7ff}.loading-card{text-align:center;color:#8692a4;border:1px solid var(--line);background:#fff;border-radius:13px;padding:40px}.spinner{vertical-align:middle;border:2px solid #dce4fa;border-top-color:#4267e8;border-radius:50%;width:15px;height:15px;margin-right:9px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.alert{border-radius:9px;margin-bottom:14px;padding:12px 14px;font-size:11px}.alert.error{color:#b93c4c;background:#fff0f1;border:1px solid #ffd9dd}.footer-note{margin-top:auto}.setup-shell,.login-shell{background:radial-gradient(circle at 15% 15%,#edf2ff,#0000 34%),#f5f7fb;place-items:center;min-height:100vh;padding:25px;display:grid}.setup-card,.login-card{border:1px solid var(--line);background:#fff;border-radius:18px;width:min(100%,470px);padding:35px;box-shadow:0 18px 55px #1f37600f}.setup-card .brand-lock,.login-card .brand-lock{padding:0 0 28px}.login-heading{margin:14px 0 21px}.login-heading h1,.setup-card h1{letter-spacing:-.7px;margin:7px 0;font:800 25px Manrope,sans-serif}.login-heading p,.setup-card p{color:#8b96a7;font-size:12px;line-height:1.7}.form-stack{gap:14px;display:grid}.form-stack input{padding:12px;font-size:13px}.login-foot{border-top:1px solid var(--line);text-align:center;color:#9ba5b3;margin-top:22px;padding-top:16px;font-size:10px}.alert.error{line-height:1.55}.notice-icon{color:#4267e8;background:#edf1ff;border-radius:12px;place-items:center;width:48px;height:48px;margin:8px 0 18px;font-size:25px;display:grid}.setup-steps{color:#5f6e82;background:#f7f9fc;border-radius:11px;padding:15px;font-size:11px}.setup-steps ol{padding-left:19px;line-height:2}.small{font-size:10px}.muted{color:#9aa4b2}.mobile-only{display:none}.icon-btn{background:#f4f6fa;border:0;border-radius:8px;padding:7px 10px}.toast{color:#fff;z-index:50;background:#18243a;border-radius:10px;padding:12px 16px;font-size:12px;position:fixed;bottom:22px;right:22px;box-shadow:0 8px 30px #16243a25}.toast.error{background:#b93c4c}@media (width<=1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.inline-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.sidebar{transition:transform .2s;transform:translate(-100%);box-shadow:0 15px 45px #16243a18}.sidebar.open{transform:translate(0)}.main-area{margin-left:0}.topbar{height:68px;padding:0 15px}.mobile-only{display:inline-block}.top-subtitle,.top-actions .btn{display:none}.page-content{padding:20px 14px}.welcome-row{align-items:flex-start}.welcome-row h1{font-size:21px}.metric-grid,.metric-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric-card{min-height:115px;padding:13px}.metric-card strong{font-size:17px}.metric-card small{font-size:9px}.inline-form{grid-template-columns:1fr}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:15px}.period-select{min-width:115px}.total-card{flex-direction:column;align-items:flex-start}.total-card strong{font-size:22px}.setup-card,.login-card{padding:25px 20px}}
