:root{--bg:#0b1220;--bg-alt:#111a2e;--bg-card:#162033;--border:#2d3748;--text:#e6edf3;--text-dim:#a0aec0;--text-muted:#718096;--primary:#4a90e2;--accent:#e86a33;--success:#7ee787;--warning:#f5d76e;--danger:#fc8181}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{color:var(--accent)}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-card);color:var(--text);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;transition:all .15s}button.primary,button:hover{border-color:var(--primary)}button.primary{background:linear-gradient(90deg,#1f3a5f 0,var(--primary) 100%);color:#fff}button.primary:hover{filter:brightness(1.15)}input,select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;font-size:.9rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary)}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;color:var(--text-dim);font-weight:500}td,th{padding:.75rem .5rem;border-bottom:1px solid var(--border)}tr:hover td{background:rgba(74,144,226,.05)}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--bg-alt);border-right:1px solid var(--border);padding:1.5rem 1rem;display:flex;flex-direction:column}.brand{font-size:1.5rem;font-weight:700;background:linear-gradient(90deg,var(--primary) 0,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.25rem}.brand-sub{font-size:.7rem;color:var(--text-muted);margin-bottom:2rem}.nav{display:flex;flex-direction:column;gap:.25rem}.nav a{color:var(--text-dim);padding:.6rem .75rem;border-radius:6px;font-size:.9rem}.nav a.active,.nav a:hover{background:var(--bg-card);color:var(--text)}.nav a.active{border-left:3px solid var(--primary);padding-left:.5rem}.user-box{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border);font-size:.85rem}.user-box .name{color:var(--text)}.user-box .role{color:var(--text-muted);font-size:.75rem}.main{padding:2rem 2.5rem;max-width:1400px;margin:0 auto;width:100%}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{margin:0;font-size:1.75rem}.page-header p{margin:.25rem 0 0;color:var(--text-dim);font-size:.9rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.card h2{margin:0 0 1rem;font-size:1.1rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:2rem}.kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.kpi .label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.kpi .value{font-size:2rem;font-weight:600;margin-top:.5rem}.kpi .sub{color:var(--text-dim);font-size:.8rem;margin-top:.25rem}.badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.7rem;font-weight:500}.badge.success{background:#1a3d23;color:var(--success)}.badge.warning{background:#3d2f1a;color:var(--warning)}.badge.danger{background:#3d1a1a;color:var(--danger)}.badge.info{background:#1a2c3d;color:var(--primary)}.badge.muted{background:#2a3343;color:var(--text-dim)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.tabs button{background:transparent;color:var(--text-dim);padding:.75rem 1.25rem;border:none;border-bottom:2px solid transparent;border-radius:0}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--text);border-bottom-color:var(--primary)}.empty{padding:3rem 1rem;text-align:center;color:var(--text-muted)}.toolbar{display:flex;gap:.75rem;margin-bottom:1rem;align-items:center}.toolbar input{flex:1 1}.bar{height:6px;background:var(--bg);border-radius:999px;overflow:hidden;margin-top:.25rem}.bar>div{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent))}@media (max-width:800px){.layout{grid-template-columns:1fr}.main{padding:1rem;overflow-x:hidden}.kpi-grid{grid-template-columns:1fr 1fr;gap:.75rem}.kpi-card{padding:.9rem}.kpi-card .label{font-size:.7rem}.kpi-card .value{font-size:1.4rem}.panels{grid-template-columns:1fr;gap:1rem}table{font-size:.82rem}table td,table th{padding:.4rem .5rem}.toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.toolbar input,.toolbar select{width:100%}h1{font-size:1.5rem}.welcome{padding:1rem .5rem}.welcome-hero h1{font-size:1.6rem}.welcome-steps li{flex-direction:column;padding:1rem;gap:.7rem}.welcome-code{font-size:.75rem;word-break:break-all}}@media (max-width:480px){.kpi-grid{grid-template-columns:1fr}}.welcome{max-width:880px;margin:0 auto;padding:2rem 1rem}.welcome-hero{text-align:center;padding:2.5rem 0 1.5rem}.welcome-eyebrow{display:inline-block;padding:.4rem .85rem;border-radius:999px;background:rgba(74,144,226,.12);color:var(--primary,#4a90e2);font-size:.82rem;font-weight:600;margin-bottom:1rem}.welcome-hero h1{font-size:2.2rem;font-weight:800;margin-bottom:.6rem}.welcome-hero h1 strong{background:linear-gradient(120deg,#4a90e2,#22d3ee);-webkit-background-clip:text;background-clip:text;color:transparent}.welcome-hero p{color:var(--text-dim,#9ca3af);font-size:1.05rem;margin-bottom:1.5rem}.welcome-steps{list-style:none;padding:0;margin:2rem 0;display:flex;flex-direction:column;gap:1.2rem}.welcome-steps li{display:flex;gap:1.2rem;align-items:flex-start;padding:1.5rem;border:1px solid var(--border,#243049);border-radius:16px;background:rgba(14,23,41,.5)}.welcome-step-num{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:linear-gradient(120deg,#4a90e2,#22d3ee);color:#0b1120;font-weight:800;font-size:1.1rem;display:grid;place-items:center}.welcome-step-body{flex:1 1}.welcome-step-body h3{font-size:1.15rem;font-weight:700;margin-bottom:.4rem}.welcome-step-body p{color:var(--text-dim,#9ca3af);margin-bottom:.7rem;line-height:1.55}.welcome-code{background:#0b1120;border:1px solid var(--border,#243049);border-radius:10px;padding:.85rem 1rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.85rem;overflow-x:auto;color:#c5d1e6;margin:.6rem 0}.welcome-note{font-size:.88rem;color:var(--text-muted,#6b7280)}.welcome-help{margin-top:2.5rem;padding:1.5rem;border:1px dashed var(--border,#243049);border-radius:12px}.welcome-help h2{font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.welcome-help p{color:var(--text-dim,#9ca3af)}.sidebar-backdrop,.sidebar-toggle{display:none}@media (max-width:800px){.sidebar-toggle{display:flex;flex-direction:column;gap:4px;justify-content:center;position:fixed;top:12px;right:12px;z-index:30;width:44px;height:44px;padding:0;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;cursor:pointer;align-items:center}.sidebar-toggle span{display:block;width:18px;height:2px;background:var(--text);border-radius:2px}.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;transform:translateX(-100%);transition:transform .25s ease;z-index:60;overflow-y:auto}.sidebar.is-open{transform:translateX(0);box-shadow:8px 0 32px rgba(0,0,0,.6)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:55}.page-header{flex-direction:column;align-items:flex-start;gap:.5rem;padding-right:60px}.badge{font-size:.7rem;max-width:calc(100vw - 80px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.dash-empty{text-align:center;padding:3rem 1.5rem;border:1px dashed var(--border);border-radius:16px;background:rgba(74,144,226,.04);margin-top:1rem}.dash-empty h2{font-size:1.4rem;margin-bottom:.6rem}.dash-empty p{color:var(--text-dim);max-width:520px;margin:0 auto 1.5rem;line-height:1.55}.dash-empty .btn{display:inline-block;padding:.75rem 1.4rem;border-radius:10px;background:linear-gradient(120deg,var(--primary),var(--accent));color:#fff;font-weight:700;text-decoration:none}.dash-empty .btn:hover{opacity:.92}.os-tabs{display:flex;gap:.4rem;margin:.6rem 0}.os-tabs button{padding:.5rem 1rem;background:rgba(14,23,41,.6);border:1px solid var(--border);border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:.88rem}.os-tabs button.active{background:rgba(74,144,226,.15);border-color:var(--primary,#4a90e2);color:var(--text)}