:root{--ink:#142033;--muted:#667085;--line:#e4e7ec;--surface:#fff;--bg:#f5f7fa;--navy:#102a43;--blue:#2563eb;--green:#067647;--amber:#b54708;--red:#b42318;--radius:12px;--shadow:0 8px 24px rgba(16,42,67,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px}.topbar{height:68px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 32px;gap:32px;position:sticky;top:0;z-index:10}.brand{font-size:18px;font-weight:800;color:#fff;text-decoration:none;white-space:nowrap}.brand span{color:#8fb7ff}.topbar nav{display:flex;gap:4px;flex:1}.topbar nav a{color:#d9e2ec;text-decoration:none;padding:10px 12px;border-radius:8px}.topbar nav a:hover{background:#173f5f;color:#fff}.user-menu{display:flex;align-items:center;gap:12px;color:#bcccdc;font-size:12px}.user-menu form{margin:0}.link-button{border:0;background:transparent;color:#fff;text-decoration:underline;cursor:pointer}.page{max-width:1480px;margin:0 auto;padding:32px}.auth-page{min-height:100vh;display:grid;place-items:center}.login-card{width:min(430px,92vw);background:#fff;padding:40px;border-radius:16px;box-shadow:var(--shadow)}.login-card h1{margin:8px 0;font-size:32px}.login-card p{color:var(--muted);margin:0 0 24px}.eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.15em}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{margin:5px 0 0;font-size:28px}.button-row{display:flex;gap:8px;align-items:center}.button-row form{margin:0}.button,button{border:1px solid #cbd5e1;background:#fff;color:var(--ink);border-radius:8px;padding:9px 13px;font:inherit;font-weight:650;text-decoration:none;cursor:pointer}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stat{background:var(--surface);border:1px solid var(--line);border-top:4px solid #98a2b3;border-radius:var(--radius);padding:20px;box-shadow:0 2px 10px rgba(16,42,67,.04)}.stat span{display:block;color:var(--muted);font-weight:600}.stat strong{font-size:30px;display:block;margin-top:7px}.stat.success{border-top-color:#12b76a}.stat.warning{border-top-color:#f79009}.stat.danger{border-top-color:#f04438}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 10px rgba(16,42,67,.04);margin-bottom:22px}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.panel h2,.panel-heading h2{font-size:17px;margin:0}.panel-heading a{color:var(--blue)}.form-panel{padding:20px}.form-panel summary{font-size:16px;font-weight:750;cursor:pointer}.form-panel[open] summary{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px;margin-top:16px}.inline-form{display:flex;align-items:end;gap:16px;margin-top:18px}.stack-form{display:grid;gap:16px}.mini-form{display:grid;gap:6px;margin-top:8px;min-width:180px}.form-grid label,.inline-form label,.stack-form label{display:grid;gap:6px;color:#475467;font-size:12px;font-weight:700}.wide{grid-column:span 2}.check{display:flex!important;align-items:center;gap:8px!important}.check input{width:auto}.form-actions{display:flex;align-items:end}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);font:inherit}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #dbeafe;border-color:var(--blue)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{background:#f8fafc;color:#475467;font-size:11px;text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}td{padding:13px 14px;border-bottom:1px solid #eef1f5;vertical-align:top}tbody tr:hover{background:#fbfdff}td a{color:var(--blue);text-decoration:none}td small{display:block;color:var(--muted);margin-top:4px}code{font-size:12px}.money{text-align:right;white-space:nowrap}.empty{text-align:center;color:var(--muted);padding:32px}.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:750;text-transform:capitalize;background:#eef2f6;color:#344054}.badge.active,.badge.paid{background:#dcfae6;color:var(--green)}.badge.suspended,.badge.part_paid{background:#fef0c7;color:var(--amber)}.badge.terminated,.badge.void{background:#fee4e2;color:var(--red)}.badge.draft,.badge.pending{background:#e0edff;color:#1849a9}.row-action{margin-top:7px;font-size:12px}.row-action summary{cursor:pointer;color:var(--blue)}.flash{padding:13px 16px;margin-bottom:18px;border-radius:9px;background:#dcfae6;color:var(--green);font-weight:650}.flash.error{background:#fee4e2;color:var(--red)}.notice{padding:14px 16px;border-left:4px solid #f79009;background:#fffaeb;color:#7a2e0e}.invoice-sheet{background:#fff;padding:42px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.invoice-header{display:flex;justify-content:space-between;gap:32px;border-bottom:2px solid var(--navy);padding-bottom:22px}.invoice-header h2{font-size:25px;margin:6px 0}.invoice-header p,.bill-to p{color:var(--muted);white-space:pre-line}.invoice-meta{display:grid;gap:5px;text-align:right}.invoice-meta strong{font-size:21px}.invoice-meta span{color:var(--muted)}.bill-to{padding:24px 0;display:grid}.bill-to>span{color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:750}.bill-to>strong{font-size:18px;margin-top:5px}.invoice-lines th{background:var(--navy);color:#fff}.invoice-totals{display:flex;justify-content:flex-end;gap:80px;padding:28px 0}.invoice-totals>div{display:grid;grid-template-columns:auto auto;gap:9px 24px;min-width:280px}.invoice-totals span{color:var(--muted)}.invoice-totals strong{text-align:right}.grand-total{font-size:18px;color:var(--navy)}.invoice-sheet footer{border-top:1px solid var(--line);padding-top:18px;color:var(--muted);white-space:pre-line}
@media(max-width:900px){.topbar{height:auto;align-items:flex-start;flex-direction:column;padding:18px;gap:12px}.topbar nav{flex-wrap:wrap}.user-menu{width:100%;justify-content:space-between}.page{padding:20px}.form-grid{grid-template-columns:1fr 1fr}.inline-form{align-items:stretch;flex-direction:column}.invoice-header{flex-direction:column}.invoice-meta{text-align:left}.invoice-totals{flex-direction:column;gap:24px}.wide{grid-column:span 2}}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}.wide{grid-column:span 1}.page-heading{align-items:flex-start;flex-direction:column}.button-row{flex-wrap:wrap}.invoice-sheet{padding:22px}}
@media print{body{background:#fff}.topbar,.print-hidden,.flash{display:none!important}.page{max-width:none;padding:0}.invoice-sheet{border:0;box-shadow:none;padding:0}.invoice-lines{font-size:10px}.invoice-lines th,.invoice-lines td{padding:7px}.invoice-sheet footer{page-break-inside:avoid}}
.locked-field{background:#f2f4f7;color:#667085}

/* Business dashboard and navigation refresh (v0.1.3) */
:root{--dashboard-navy:#0b2138;--dashboard-blue:#2f6fed;--dashboard-cyan:#17a2b8;--dashboard-purple:#7756e3;--dashboard-mint:#16a36a;--dashboard-rose:#e64b5d;--dashboard-orange:#ef8d32}
body{background:#f3f6fa;color:#132238}
.topbar{height:74px;padding:0 28px;background:linear-gradient(112deg,#0a2037 0%,#102f50 72%,#12395f 100%);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 8px 24px rgba(7,25,45,.12)}
.brand{display:flex;align-items:center;gap:11px;font-size:16px;letter-spacing:-.01em}.brand span{color:inherit}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#4f8cff,#62d0df);color:#fff!important;font-size:13px;font-weight:900;box-shadow:0 7px 18px rgba(60,139,235,.32)}.brand-copy{display:flex;gap:4px;align-items:baseline}.brand-copy b{color:#8dd8e6;font-weight:800}
.topbar nav{height:100%;align-items:center;gap:5px}.topbar nav a{position:relative;padding:10px 13px;color:#c8d6e5;font-weight:650;font-size:13px;transition:background .18s,color .18s}.topbar nav a:hover{background:rgba(255,255,255,.08)}.topbar nav a.active{background:rgba(79,140,255,.17);color:#fff}.topbar nav a.active:after{content:"";position:absolute;left:13px;right:13px;bottom:-8px;height:3px;border-radius:3px 3px 0 0;background:#69d1df}
.user-menu{gap:10px;color:#d6e2ee}.user-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#fff;font-weight:800}.user-identity{display:grid;line-height:1.18}.user-identity strong{font-size:12px;color:#fff}.user-identity small{font-size:10px;color:#9eb4c9;text-transform:capitalize}.link-button{padding:6px 4px;font-size:11px;text-decoration:none;color:#9eb4c9}.link-button:hover{color:#fff}
.page{max-width:1540px;padding:34px 32px 50px}

.dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:22px;padding:26px 30px;border-radius:18px;color:#fff;background:linear-gradient(118deg,#0d2945 0%,#174c7d 66%,#2378a4 100%);box-shadow:0 14px 35px rgba(15,54,88,.18);overflow:hidden;position:relative}.dashboard-hero:after{content:"";position:absolute;width:340px;height:340px;right:-110px;top:-190px;border:56px solid rgba(255,255,255,.06);border-radius:50%}.dashboard-hero>div{position:relative;z-index:1}.dashboard-hero .eyebrow{color:#82e6ef}.dashboard-hero h1{font-size:30px;line-height:1.1;margin:7px 0 7px;letter-spacing:-.025em}.dashboard-hero p{margin:0;color:#c8d8e8}.hero-actions{display:flex;gap:10px;align-items:center}.dashboard-hero .button{padding:11px 16px;border-radius:10px}.dashboard-hero .button.primary{background:#4f82f3;border-color:#4f82f3;box-shadow:0 7px 18px rgba(20,60,130,.28)}.dashboard-hero .button.soft{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.23);color:#fff;backdrop-filter:blur(4px)}

.business-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:14px;margin-bottom:20px}.business-stat{position:relative;min-height:152px;padding:18px;background:#fff;border:1px solid #e0e7ef;border-radius:15px;box-shadow:0 5px 18px rgba(20,43,72,.055);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}.business-stat:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,43,72,.09)}.business-stat:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--accent,#94a3b8)}.business-stat.revenue{--accent:var(--dashboard-blue);--tint:#eaf1ff}.business-stat.customers{--accent:var(--dashboard-mint);--tint:#e8f8f1}.business-stat.risk{--accent:var(--dashboard-rose);--tint:#fff0f2}.business-stat.arpu{--accent:var(--dashboard-purple);--tint:#f1edff}.business-stat.outstanding{--accent:var(--dashboard-orange);--tint:#fff3e8}.business-stat.readiness{--accent:var(--dashboard-cyan);--tint:#eaf8fa}.metric-top{display:flex;align-items:center;gap:9px}.metric-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--tint);color:var(--accent)}.metric-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.metric-label{color:#5f6f82;font-size:12px;font-weight:750}.business-stat>strong{display:block;margin:16px 0 6px;font-size:25px;line-height:1;letter-spacing:-.025em;color:#122238}.business-stat small{color:#718096;font-size:11px;line-height:1.35}.positive{color:#16865b!important}.negative{color:#cc334b!important}.mini-progress{height:5px;margin:11px 0 8px;border-radius:10px;background:#e9eef4;overflow:hidden}.mini-progress span{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#2d7fee,#24b1c5)}

.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(310px,.85fr);gap:20px;margin-bottom:20px}.dashboard-layout.secondary{grid-template-columns:minmax(0,1.5fr) minmax(330px,.7fr)}.dashboard-layout .panel,.recent-invoices-panel{margin-bottom:0;border-radius:15px;border-color:#dfe7f0;box-shadow:0 5px 18px rgba(20,43,72,.05)}.dashboard-panel-heading{padding:20px 22px;align-items:flex-start}.dashboard-panel-heading h2{margin:4px 0 0;font-size:18px;letter-spacing:-.01em}.dashboard-panel-heading p{margin:6px 0 0;color:#748397;font-size:12px}.panel-kicker{color:#4d77d8;font-size:9px;font-weight:850;letter-spacing:.14em}.chart-summary{display:flex;gap:22px}.chart-summary span{display:grid;gap:4px;color:#7c8999;font-size:10px;text-align:right}.chart-summary strong{color:#132238;font-size:16px}.provider-count{padding:5px 9px;border-radius:99px;background:#edf3ff;color:#315da8;font-size:10px;font-weight:750}

.revenue-chart{height:290px;display:grid;grid-template-columns:repeat(6,minmax(68px,1fr));align-items:end;gap:16px;padding:24px 28px 15px;background:linear-gradient(to bottom,rgba(226,233,242,.55) 1px,transparent 1px);background-size:100% 25%}.chart-column{height:100%;display:grid;grid-template-rows:24px 1fr 35px 17px;gap:5px;text-align:center;min-width:0}.chart-value{font-size:10px;color:#5f6f82;font-weight:750;white-space:nowrap}.chart-track{height:100%;display:flex;align-items:end;justify-content:center;border-bottom:1px solid #dce4ed}.chart-bar{width:min(50px,68%);min-height:0;border-radius:9px 9px 3px 3px;background:linear-gradient(180deg,#4a82f0,#2f62cb);box-shadow:0 8px 15px rgba(47,98,203,.16);transition:height .25s ease}.chart-column.forecast .chart-bar{background:repeating-linear-gradient(135deg,#b8c8dc 0,#b8c8dc 7px,#d4deea 7px,#d4deea 14px);box-shadow:none}.chart-column.drop .chart-bar{background:linear-gradient(180deg,#f07584,#d8465b)}.chart-label{display:grid;gap:1px}.chart-label strong{font-size:11px}.chart-label span{font-size:9px;color:#8b98a8}.chart-column em{font-size:8px;font-style:normal;color:#7b899b;text-transform:uppercase;font-weight:750;letter-spacing:.05em}.chart-insight{display:flex;align-items:center;gap:7px;padding:13px 22px;border-top:1px solid #e6ebf1;background:#fafbfd;color:#617084;font-size:11px}.chart-insight strong{color:#24364b}.insight-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.insight-dot.success{background:#19a66d;box-shadow:0 0 0 4px #e5f7ef}.insight-dot.danger{background:#db3f55;box-shadow:0 0 0 4px #fdecef}

.provider-mix-list{display:grid;gap:20px;padding:24px 22px}.provider-mix-row{display:grid;gap:9px}.provider-mix-meta{display:flex;justify-content:space-between;gap:20px}.provider-mix-meta>span{display:grid;gap:3px}.provider-mix-meta strong{font-size:12px}.provider-mix-meta small{font-size:10px;color:#8190a2}.provider-bar{height:8px;border-radius:99px;background:#e9eef4;overflow:hidden}.provider-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#426fe1,#45b8c7)}.provider-mix-row:nth-child(2n) .provider-bar span{background:linear-gradient(90deg,#7957df,#aa72dc)}.empty-state{padding:30px 0;text-align:center;color:#7c8999}

.movement-pills{display:flex;gap:6px}.movement-pills span{padding:5px 8px;border-radius:99px;font-size:9px;font-weight:800}.movement-pills .gain{background:#e6f7ef;color:#157954}.movement-pills .loss{background:#fdecee;color:#b82c42}.dashboard-table th{background:#f8fafc;padding:11px 14px;font-size:9px}.dashboard-table td{padding:12px 14px;font-size:12px}.dashboard-table td strong{font-size:12px}.dashboard-table td small{font-size:10px}.action-list{display:grid;padding:8px 16px 15px}.action-list a{display:grid;grid-template-columns:9px 1fr auto;gap:11px;align-items:center;padding:15px 5px;border-bottom:1px solid #edf1f5;color:#24364b;text-decoration:none}.action-list a:last-child{border-bottom:0}.action-list a:hover{background:#fafcff}.action-list a>span:nth-child(2){display:grid;gap:3px}.action-list strong{font-size:11px}.action-list small{font-size:9px;color:#8290a1}.action-list b{min-width:30px;padding:5px 8px;border-radius:8px;background:#f1f4f8;text-align:center;font-size:11px}.action-indicator{width:8px;height:8px;border-radius:50%}.action-indicator.red{background:#e04a5d}.action-indicator.amber{background:#ec9136}.action-indicator.blue{background:#3979e7}.action-indicator.slate{background:#7c8999}.recent-invoices-panel{margin-top:0}.recent-invoices-panel .panel-heading a{font-size:11px;text-decoration:none}

@media(max-width:1280px){.business-stat-grid{grid-template-columns:repeat(3,1fr)}.dashboard-layout,.dashboard-layout.secondary{grid-template-columns:1fr}.provider-mix-list{grid-template-columns:1fr 1fr}.provider-mix-row:nth-child(2){border-left:1px solid #e6ebf1;padding-left:22px}}
@media(max-width:900px){.topbar{height:auto;padding:16px 18px}.topbar nav{height:auto}.topbar nav a.active:after{display:none}.page{padding:20px}.dashboard-hero{align-items:flex-start;flex-direction:column}.hero-actions{width:100%;flex-wrap:wrap}.business-stat-grid{grid-template-columns:repeat(2,1fr)}.revenue-chart{gap:8px;padding-left:14px;padding-right:14px}.chart-value{font-size:9px}.provider-mix-list{grid-template-columns:1fr}.provider-mix-row:nth-child(2){border-left:0;padding-left:0}.dashboard-panel-heading{gap:14px}.chart-summary{gap:12px}}
@media(max-width:560px){.brand-copy{display:none}.dashboard-hero{padding:22px}.dashboard-hero h1{font-size:25px}.hero-actions .button{flex:1;text-align:center}.business-stat-grid{grid-template-columns:1fr}.business-stat{min-height:135px}.revenue-chart{overflow-x:auto;grid-template-columns:repeat(6,82px);justify-content:start}.chart-summary{display:none}.dashboard-panel-heading{flex-direction:column}.movement-pills{margin-top:4px}.customer-loss-panel .dashboard-table th:nth-child(2),.customer-loss-panel .dashboard-table td:nth-child(2){display:none}}
@media print{.dashboard-hero,.business-stat-grid,.dashboard-layout{break-inside:avoid}.hero-actions{display:none}}
