@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";:root{color:#123f66;background:radial-gradient(circle at 15% -10%,#d9f2ff 0%,#0000 50%),radial-gradient(circle at 95% 15%,#c6e8ff 0%,#0000 40%),linear-gradient(#f6fcff 0%,#edf7ff 100%);font-family:Sora,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}.app-shell{max-width:1400px;margin:0 auto;padding:1.2rem 1.2rem 2.2rem}.top-bar{background:linear-gradient(120deg,#ebf8ff 0%,#d4efff 45%,#bce4ff 100%);border:1px solid #9cd5ff;border-radius:18px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.2rem 1.4rem;display:flex;box-shadow:0 12px 28px #3fa4ed2e}.top-bar h1{color:#074377;margin:0;font-size:clamp(1.35rem,3vw,1.9rem);font-weight:700}.top-bar p{color:#2a5f89;margin:.35rem 0 0}.header-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;display:flex}.role-chip,.user-chip{color:#0d4c7d;background:#f7fcff;border:1px solid #93cfff;border-radius:999px;padding:.35rem .75rem;font-size:.8rem}.header-right button{color:#fff;cursor:pointer;background:linear-gradient(145deg,#1f8fff,#0f78db);border:none;border-radius:10px;padding:.55rem 1rem;font-weight:600}.tabs{flex-wrap:wrap;gap:.55rem;margin:1rem 0;display:flex}.tab{color:#1f5683;cursor:pointer;background:#f0f9ff;border:1px solid #abd9ff;border-radius:999px;padding:.55rem 1rem;font-weight:600}.tab.active{color:#fff;background:linear-gradient(145deg,#2ca4ff,#1385e8);border-color:#1a87e6}.alert{border-radius:12px;margin:.8rem 0;padding:.8rem 1rem;font-weight:600}.alert.success{color:#1e6640;background:#eafff2;border:1px solid #95e2b7}.alert.error{color:#8f2626;background:#fff2f2;border:1px solid #ffc3c3}.dashboard-grid{grid-template-columns:repeat(12,1fr);gap:.9rem;display:grid}.kpi-card{background:#f8fdff;border:1px solid #bbdfff;border-radius:14px;grid-column:span 6;padding:.95rem}.kpi-card h3{color:#38709d;margin:0;font-size:.9rem}.kpi-card strong{color:#0d4f86;margin-top:.4rem;font-size:1.35rem;display:block}.panel{background:#ffffffd6;border:1px solid #b9deff;border-radius:16px;padding:1rem;box-shadow:0 10px 20px #348ed41a}.panel h2{color:#13588f;margin:0 0 .75rem;font-size:1.05rem}.panel.wide{grid-column:span 8}.bars{flex-direction:column;gap:.65rem;display:flex}.bar-row{grid-template-columns:180px 1fr 140px;align-items:center;gap:.6rem;display:grid}.bar-row label{color:#245d89;font-weight:600}.bar-track{background:#d9eeff;border-radius:999px;height:10px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,#25a4ff,#007cd5);border-radius:999px;height:100%}.bar-row span{text-align:right;color:#286793;font-weight:700}.donut-wrap{align-items:center;gap:1rem;display:flex}.donut{aspect-ratio:1;border-radius:50%;width:130px;position:relative}.donut:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:22px}.legend-list{flex-direction:column;gap:.45rem;width:100%;margin:0;padding:0;list-style:none;display:flex}.legend-list li{color:#23587d;border-bottom:1px dashed #c4e2f7;justify-content:space-between;padding-bottom:.35rem;display:flex}.form-grid{gap:.8rem;display:grid}.form-grid.compact{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}.form-grid label,fieldset{color:#2b5d81;gap:.4rem;min-width:0;font-size:.9rem;display:grid}input,select,textarea{color:#0e3c63;background:#fafdff;border:1px solid #afd9fb;border-radius:10px;width:100%;min-width:0;padding:.55rem .65rem;font-family:inherit;font-size:.95rem}.form-grid.compact>*{min-width:0}input:focus,select:focus,textarea:focus{border-color:#5aa3dc;outline:2px solid #67bcff}.form-actions{flex-wrap:wrap;align-items:end;gap:.5rem;display:flex}.form-actions.split{gap:.5rem}button{color:#fff;cursor:pointer;background:linear-gradient(145deg,#1f93ff,#0b78da);border:none;border-radius:11px;padding:.6rem 1rem;font-size:.95rem;font-weight:600}button.secondary{background:linear-gradient(145deg,#29b5d3,#0885a8)}button:disabled{opacity:.65;cursor:not-allowed}.billing-layout{grid-template-columns:1.15fr 1fr;gap:.9rem;display:grid}.table-wrap{border:1px solid #c7e5ff;border-radius:10px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid #e0f1ff;padding:.6rem .55rem}th{color:#28638e;background:#ecf8ff}tbody tr{cursor:pointer}tbody tr:hover{background:#f5fbff}tbody tr.selected{background:#dff2ff}.empty-cell{text-align:center;color:#6d90ab}.summary-chip{color:#28658f;background:#e7f6ff;border:1px solid #b7def8;border-radius:999px;margin-bottom:.65rem;padding:.45rem .7rem;font-size:.85rem;display:inline-block}.inline-stat{color:#225a83;align-items:center;gap:.4rem;display:flex}.inline-stat strong{color:#0f4f85}.master-grid{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.check-grid{gap:.4rem;display:grid}.check{align-items:center;gap:.45rem;display:flex}.check input{width:16px;height:16px}.mini-note{color:#6286a2;margin:0;font-size:.84rem}.empty{color:#5d82a0;margin:.65rem 0}.footer{color:#567b98;flex-wrap:wrap;gap:.75rem;margin-top:1rem;font-size:.82rem;display:flex}.report-panel{gap:.85rem;display:grid}.report-head{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.report-actions{flex-wrap:wrap;gap:.5rem;display:flex}.report-filters{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem;display:grid}.report-summary{flex-wrap:wrap;gap:.6rem;display:flex}.report-summary span{color:#28658f;background:#e7f6ff;border:1px solid #b7def8;border-radius:999px;padding:.4rem .7rem;font-size:.85rem;font-weight:600}.top-gap{margin-top:.8rem}.table-btn{border-radius:8px;padding:.35rem .7rem;font-size:.82rem}.auth-shell{place-items:center;min-height:100vh;padding:1.2rem;display:grid}.auth-card{background:#fff;border:1px solid #b4deff;border-radius:18px;width:min(480px,100%);padding:1.4rem;box-shadow:0 18px 35px #2f8acf33}.auth-card h1{color:#0f4f80;margin:0}.auth-card p{color:#416e90}@media (width<=1024px){.panel.wide{grid-column:span 12}.dashboard-grid{grid-template-columns:repeat(12,1fr)}.kpi-card{grid-column:span 4}.billing-layout,.master-grid,.bar-row{grid-template-columns:1fr}}@media (width<=700px){.kpi-card{grid-column:span 12}.top-bar{flex-direction:column}.header-right{justify-content:flex-start}}
