@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}.billing-mode-switch{background:#ffffffb8;border:1px solid #b9deff;border-radius:14px;flex-wrap:wrap;grid-column:1/-1;gap:.55rem;padding:.7rem;display:flex}.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}.entity-dropdown-label{gap:.4rem;display:grid}.entity-dropdown{position:relative}.entity-dropdown summary{color:#0e3c63;cursor:pointer;background:#fafdff;border:1px solid #afd9fb;border-radius:10px;min-height:42px;padding:.55rem 2rem .55rem .65rem;list-style:none}.entity-dropdown summary::-webkit-details-marker{display:none}.entity-dropdown summary:after{content:"v";color:#0e3c63;font-weight:700;position:absolute;top:.55rem;right:.75rem}.entity-dropdown[open] summary{border-color:#5aa3dc;outline:2px solid #67bcff}.entity-dropdown-menu{z-index:8;inset-inline:0;background:#fff;border:1px solid #a8d7fa;border-radius:12px;gap:.25rem;max-height:230px;padding:.55rem;display:grid;position:absolute;top:calc(100% + .35rem);overflow:auto;box-shadow:0 16px 35px #145e962e}.entity-dropdown-menu .check{border-radius:8px;padding:.35rem .25rem}.entity-dropdown-menu .check:hover{background:#eef8ff}.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;margin-right:.35rem;padding:.35rem .7rem;font-size:.82rem}.document-list{color:#28658f;background:#f7fcff;border:1px solid #b7def8;border-radius:12px;gap:.35rem;padding:.75rem;font-size:.86rem;display:grid}.vendor-search{color:#2b5d81;gap:.4rem;max-width:640px;font-size:.9rem;display:grid}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0832526b;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.document-modal{background:#fafdff;border:1px solid #a8d7fa;border-radius:18px;width:min(900px,100%);max-height:min(720px,100vh - 2rem);padding:1rem;overflow:auto;box-shadow:0 24px 70px #073a604d}.modal-head{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:.85rem;display:flex}.modal-head h3,.modal-head p{margin:0}.modal-head p{color:#6286a2;margin-top:.25rem;font-size:.9rem}.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}}button.table-action{white-space:nowrap;border-radius:8px;padding:.4rem .7rem;font-size:.82rem}
