@charset "UTF-8";
:root{--ink:#172c2a;--muted:#687b78;--line:#dfe7e3;--paper:#f5f7f3;--white:#fff;--green:#146b5e;--green-dark:#0d5147;--lime:#d8ee92;--soft:#e8f2ed;--red:#a03c32;--radius:16px;--shadow:0 10px 35px #132e2510;--side:238px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;line-height:1.5;font-size:14px}button,input,select,textarea{font:inherit}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}:focus-visible{outline:3px solid #88b5ec;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,3vw,36px);line-height:1.18;letter-spacing:-1.2px;font-weight:650;margin-bottom:10px}h2{font-size:19px;line-height:1.3;letter-spacing:-.35px;font-weight:650;margin-bottom:8px}h3{font-size:15px;margin-bottom:8px}p{color:var(--muted);margin-bottom:18px}small{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;left:15px;top:-100px;background:#fff;padding:12px;z-index:100}.skip-link:focus{top:12px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:24px;font-weight:750;letter-spacing:-.8px;color:inherit}.brand:hover{text-decoration:none}.brand-mark{width:33px;height:33px;background:var(--lime);color:var(--ink);border-radius:10px;display:grid;place-items:center;font-size:24px;line-height:1;font-weight:800}.brand-mark span{transform:rotate(-9deg);display:block}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;border:1px solid transparent;border-radius:9px;padding:10px 17px;background:var(--green);color:#fff;font-weight:600;font-size:13px;line-height:1.35;text-decoration:none;white-space:normal;text-align:center}.btn:hover{background:var(--green-dark);text-decoration:none}.btn.secondary{background:white;color:var(--ink);border-color:var(--line)}.btn.secondary:hover{background:#f3f6f1}.btn.ghost{background:transparent;color:var(--muted);padding:8px 10px}.btn.ghost:hover{background:var(--soft);color:var(--green)}.btn.danger{background:#fff3f1;color:var(--red);border-color:#e8c5bf}.btn.small{min-height:34px;padding:7px 11px;font-size:12px}.btn.full{width:100%}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.actions.end{justify-content:flex-end}.actions form{margin:0}.alert{padding:15px 18px;border:1px solid #bbd9c9;border-radius:11px;background:#eaf5ed;margin-bottom:22px;color:#285f42}.alert.error{background:#fff0ed;border-color:#efcbc2;color:#8c3428}.alert.notice{background:#fff7df;border-color:#ebdfb7;color:#6b5623}.alert p{color:inherit;margin:5px 0 0}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:650;padding:4px 8px;border-radius:6px;white-space:nowrap;background:#edf0ec;color:#596b64}.badge.good{background:#e4f2e9;color:#28704d}.badge.waiting{background:#fff0cd;color:#8a650e}.badge.muted{background:#f1e9e6;color:#8b5c51}.badge.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill{background:#eef2ed;color:#5c7066;padding:5px 9px;border-radius:20px;font-size:11px}.rule{height:1px;background:var(--line);margin:24px 0}.empty{text-align:center;padding:42px 22px}.empty-icon{width:52px;height:52px;border-radius:16px;background:var(--soft);color:var(--green);display:grid;place-items:center;margin:0 auto 16px;font-size:22px}.empty p{max-width:420px;margin:0 auto 20px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:19px;font-weight:550;font-size:13px;min-width:0}.field>span{display:flex;gap:7px;align-items:center}.field small{font-weight:400;line-height:1.5}.field input,.field select,.field textarea,.search-input{display:block;min-width:0;width:100%;height:44px;border:1px solid #cfdbd5;border-radius:8px;background:white;padding:10px 12px;color:var(--ink);box-shadow:0 1px 2px #102e1f04;font-weight:400}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);outline:3px solid #146b5e14}.field textarea{height:112px;resize:vertical}.field input[type=color]{height:44px;padding:5px;width:100px}.field input[readonly]{background:#f6f8f5}.field input::placeholder{color:#97a49d}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.form-grid .wide{grid-column:1/-1}.check{display:flex;gap:10px;align-items:flex-start;margin:12px 0 20px;font-size:13px;cursor:pointer}.check input{accent-color:var(--green);width:17px;height:17px;flex:none;margin:2px 0 0}.check small{display:block;margin-top:3px}.hint{font-size:12px;line-height:1.6;color:var(--muted)}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
/* A consistent workspace; the owner and tenant identities have separate hosts and sessions. */
.sidebar{position:fixed;top:0;bottom:0;left:0;width:var(--side);background:#142e2b;color:#e4eee6;padding:30px 20px;display:flex;flex-direction:column;z-index:40}.sidebar .brand{padding-left:8px}.workspace-label{color:#9ab1a5;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;margin:24px 9px 20px}.sidebar nav{flex:1;overflow-y:auto}.nav-group{margin:24px 9px 8px;color:#89a196;text-transform:uppercase;font-size:10px;letter-spacing:1.6px;font-weight:650}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;color:#b9cdc0;border-radius:9px;font-size:13px;font-weight:500;margin:4px 0;min-height:43px}.nav-item:hover{background:#ffffff0b;color:#fff;text-decoration:none}.nav-item.active{background:var(--lime);color:#193e2e;font-weight:650}.nav-icon{font-size:17px;line-height:1;width:19px;text-align:center;opacity:.9}.sidebar-bottom{padding:18px 8px 0;border-top:1px solid #ffffff15}.sidebar-bottom p{color:#92ac9f;font-size:11px;margin:8px 0 0}.topbar{height:78px;position:sticky;top:0;margin-left:var(--side);padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#f5f7f3f5;border-bottom:1px solid var(--line);z-index:30;backdrop-filter:blur(12px)}.breadcrumb{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.breadcrumb strong{font-weight:550;color:var(--ink)}.top-user{display:flex;gap:11px;align-items:center;font-size:12px}.top-user small{display:block;font-size:10px}.avatar{width:34px;height:34px;display:grid;place-items:center;background:#e4e9de;border:1px solid #d9e0d2;border-radius:50%;font-weight:650;color:#587348}.menu-button{display:none;background:transparent;border:0;color:var(--ink);font-size:22px;min-width:44px;min-height:44px}.main{margin-left:var(--side);padding:36px 40px 64px;max-width:1780px;min-height:calc(100vh - 78px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading p{margin:0;font-size:13px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-width:0;margin-bottom:22px}.panel.no-pad{padding:0;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.panel-head h2,.panel-head p{margin:0}.panel-head p{margin-top:4px;font-size:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.grid-main{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:22px;align-items:start}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:26px}.stat{padding:22px;background:white;border:1px solid var(--line);border-radius:13px;min-width:0}.stat .label{font-size:11px;font-weight:550;color:var(--muted);display:flex;justify-content:space-between;gap:5px}.stat .number{font-size:clamp(21px,2vw,29px);font-weight:650;letter-spacing:-1px;margin:13px 0 9px;overflow-wrap:anywhere}.stat .number .unit{font-size:11px;letter-spacing:0;font-weight:500;color:var(--muted);margin-right:6px}.stat small{font-size:10px;display:block}.stat.emphasis{background:var(--green);color:#fff;border-color:var(--green)}.stat.emphasis .label,.stat.emphasis small,.stat.emphasis .number .unit{color:#c1d9cb}.table-wrap{overflow:auto;width:100%;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.data-table th{font-size:10px;letter-spacing:.65px;text-transform:uppercase;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:12px 15px;background:#fafbf8;white-space:nowrap}.data-table td{padding:15px;border-bottom:1px solid #edf1eb;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table td strong{font-weight:600}.data-table td small{display:block;margin-top:3px;font-size:10px}.data-table .amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.data-table a{font-weight:550}.table-head-pad{padding:24px 24px 0}.list-row{display:flex;gap:14px;padding:15px 0;border-bottom:1px solid #edf1eb;align-items:center}.list-row:last-child{border-bottom:0;padding-bottom:0}.list-row:first-child{padding-top:0}.list-row .grow{flex:1;min-width:0}.list-row h3{font-size:13px;margin:0 0 3px}.list-row p{font-size:11px;margin:0}.step-number{width:29px;height:29px;border:1px solid #d9e2d9;background:#f7f9f5;color:#89988a;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:650;flex:none}.step-number.done{background:#e4f2e9;color:#28704d;border-color:#e4f2e9}.setup-panel{background:#f9fbf3;border-color:#dfe7ce}.setup-progress{height:5px;border-radius:5px;background:#e1e9d8;display:flex;gap:4px;margin:20px 0}.setup-progress i{flex:1;background:#e1e9d8;border-radius:4px}.setup-progress i.done{background:#4b8163}.chart{height:185px;display:flex;gap:14px;align-items:flex-end;padding:20px 8px 0;border-bottom:1px solid var(--line);margin-bottom:35px}.chart-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;position:relative;align-items:center}.chart-bar{width:100%;max-width:48px;background:#d6e9de;border-radius:5px 5px 0 0;min-height:3px}.chart-col:last-child .chart-bar{background:var(--green)}.chart-label{font-size:10px;color:var(--muted);position:absolute;bottom:-24px}.chart-value{font-size:9px;color:var(--muted);margin-bottom:5px;white-space:nowrap}.support-banner{margin-left:var(--side);background:#f2e8bd;color:#61501f;padding:11px 40px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px}.support-banner form{margin:0}.support-banner .btn{background:#ffffff7a;color:#61501f;border-color:#dacd9d;min-height:32px;padding:5px 10px}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:10px}.tabs a{padding:7px 12px;border-radius:7px;font-size:12px;color:var(--muted)}.tabs a.active{background:var(--soft);color:var(--green);font-weight:650}.tabs a:hover{text-decoration:none;background:var(--soft)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.detail-grid dt{font-size:11px;color:var(--muted);margin-bottom:5px}.detail-grid dd{margin:0;font-size:13px;font-weight:550;overflow-wrap:anywhere}.callout{padding:18px;background:var(--soft);border-radius:10px;font-size:12px;margin:20px 0}.callout p{margin:5px 0 0}.copy-block{display:flex;align-items:center;gap:8px;min-width:0}.copy-block code{padding:12px;background:#f2f5ef;border:1px solid var(--line);border-radius:7px;overflow-wrap:anywhere;min-width:0;flex:1;font-size:12px}.code-block{white-space:pre-wrap;overflow-wrap:anywhere;background:#152d2a;color:#dce8da;padding:20px;border-radius:10px;max-height:400px;overflow:auto;font-size:11px;line-height:1.7}.provider-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0 28px}.provider-choice{padding:17px;border:1px solid var(--line);border-radius:11px;color:var(--ink)}.provider-choice.active{border-color:var(--green);box-shadow:0 0 0 1px var(--green);background:#f3f9f4}.provider-choice:hover{text-decoration:none;border-color:var(--green)}.provider-choice strong{display:block;margin-bottom:5px}.provider-choice small{font-size:10px}.footer-note{font-size:11px;color:#93a198;padding-top:10px}
/* Sign-in and registration use a calm two-column layout, with one clear primary action. */
.auth-page{min-height:100vh;background:#fff;display:grid;grid-template-columns:42% 58%}.auth-story{background:#142e2b;color:#f4f6ed;padding:42px 56px;display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-story .brand{position:relative;z-index:1}.auth-story .eyebrow{color:#9bb79e;margin:0 0 20px}.auth-story-content{margin:auto 0;position:relative;z-index:1;padding:60px 0}.auth-story h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(38px,4vw,57px);letter-spacing:-1.7px;line-height:1.1;max-width:420px;margin-bottom:24px}.auth-story h1 em{color:var(--lime);font-style:normal}.auth-story p{font-size:14px;line-height:1.8;color:#a8bdb0;max-width:360px}.auth-story-bottom{color:#8ea999;font-size:11px}.auth-orbit{position:absolute;bottom:-160px;right:-220px;width:570px;height:570px;border:1px solid #b2d68c10;border-radius:50%;box-shadow:0 0 0 65px #b2d68c06,0 0 0 130px #b2d68c04}.auth-main{padding:40px 8%;display:flex;flex-direction:column;min-width:0}.auth-top{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:12px;color:var(--muted)}.auth-form{max-width:400px;width:100%;margin:auto; padding:60px 0}.auth-form.wide{max-width:530px;padding:38px 0}.auth-form h2{font-size:28px;letter-spacing:-.9px;margin-bottom:10px}.auth-form>p{font-size:13px;margin-bottom:30px}.auth-form .field{margin-bottom:20px}.auth-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;margin-bottom:24px}.auth-meta .check{margin:0}.auth-form .btn.full{min-height:47px;margin-top:5px}.auth-foot{text-align:center;font-size:11px;color:#83948b}.auth-status{max-width:540px;text-align:center;margin:auto;padding:45px 0}.auth-status .empty-icon{width:65px;height:65px;font-size:26px}.auth-status p{line-height:1.8}.auth-mobile-brand{display:none}.form-note{font-size:11px;line-height:1.7;margin:20px 0 0}.auth-form .form-grid .field{margin-bottom:18px}.mobile-mask{display:none}.invoice-sheet{max-width:850px;margin:auto;background:white;border:1px solid var(--line);padding:45px;border-radius:15px}.invoice-top{display:flex;justify-content:space-between;gap:20px;margin-bottom:40px}.invoice-top .eyebrow{margin-top:14px}.invoice-total{padding:20px 0;text-align:right;font-size:20px;font-weight:650}.invoice-total small{font-weight:400;display:block;font-size:11px}.invoice-instructions{padding:22px;background:#f6f8f3;border-radius:10px;white-space:pre-line;color:var(--muted);font-size:12px}
@media(min-width:1800px){.main{padding-right:60px;padding-left:60px}.topbar{padding-left:60px;padding-right:60px}}
@media(max-width:1200px){:root{--side:212px}.main{padding:28px}.topbar{padding:0 28px}.stats{gap:12px}.stat{padding:18px}.grid-main{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr)}.auth-story{padding:38px}.auth-main{padding:34px 7%}}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-main{grid-template-columns:1fr}.auth-page{grid-template-columns:38% 62%}.auth-story{padding:32px}.auth-story h1{font-size:40px}.auth-story p{font-size:13px}.grid-2{gap:18px}}
@media(max-width:760px){:root{--side:0px}.sidebar{width:250px;transform:translateX(-100%);transition:transform .18s ease}.nav-open .sidebar{transform:translateX(0)}.nav-open .mobile-mask{display:block;position:fixed;inset:0;z-index:39;background:#071e1b70}.topbar{height:66px;padding:0 17px;gap:5px}.menu-button{display:block}.breadcrumb{flex:1;font-size:11px;gap:8px}.breadcrumb .brand-crumb{display:none}.top-user .user-text{display:none}.main{padding:25px 18px 45px}.page-heading{align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:23px}.page-heading h1{font-size:28px}.page-heading .actions{gap:8px}.stats{gap:11px}.stat{padding:17px}.stat .number{font-size:25px;margin:12px 0 7px}.stat .label{font-size:10px}.stat small{font-size:9px}.panel{padding:20px;margin-bottom:18px}.panel-head{margin-bottom:18px}.grid-2{grid-template-columns:1fr;gap:0}.grid-main{gap:0}.form-grid{gap:0 14px}.data-table td{padding:13px 12px}.data-table th{padding:11px 12px}.support-banner{padding:10px 18px;font-size:11px}.support-banner strong{display:block}.topbar .btn.ghost{font-size:11px}.auth-page{display:block}.auth-story{display:none}.auth-main{min-height:100vh;padding:26px 24px}.auth-mobile-brand{display:block;margin-bottom:24px}.auth-top{justify-content:flex-start;margin-bottom:10px}.auth-form,.auth-form.wide{padding:34px 0 40px;max-width:480px}.auth-form h2{font-size:29px}.auth-foot{padding-bottom:10px}.provider-grid{gap:8px}.provider-choice{padding:12px}.provider-choice small{font-size:9px}.invoice-sheet{padding:24px 20px}.invoice-top{gap:15px}.detail-grid{gap:14px}.chart{gap:8px}.chart-value{font-size:8px}.copy-block{flex-wrap:wrap}.copy-block code{flex-basis:100%}.table-head-pad{padding:20px 20px 0}}
@media(max-width:380px){.form-grid{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:13px}.stat .number{font-size:22px}.stat .number .unit{font-size:9px}.main{padding:22px 14px}.auth-main{padding:24px 20px}.provider-grid{grid-template-columns:1fr}.provider-choice small{font-size:11px}.provider-choice{padding:13px 16px;display:flex;align-items:center;justify-content:space-between}.provider-choice strong{margin:0}.topbar{padding:0 10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{body{background:#fff}.sidebar,.topbar,.support-banner,.page-heading,.no-print{display:none!important}.main{margin:0;padding:0}.invoice-sheet{border:0;max-width:none;padding:20px}.invoice-instructions{background:#fff;border-top:1px solid #ccc}.invoice-top{margin-bottom:30px}}
.code-block{background:#142e2b;color:#e3f0e8;border-radius:12px;padding:20px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.65;max-height:540px;overflow:auto}.numbered-list{padding-left:22px;line-height:1.8}.numbered-list li{margin-bottom:12px}.detail-list{margin:20px 0}.detail-list>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;text-align:right;overflow-wrap:anywhere}.detail-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:20px 0}.detail-hero h2{font-size:28px;margin:6px 0}.detail-hero p{color:var(--muted)}
.setup-item{display:flex;align-items:center;gap:15px;padding:18px 0;border-bottom:1px solid var(--line);color:var(--ink)}.setup-item>span:nth-child(2){flex:1}.setup-item strong,.setup-item small{display:block}.setup-item small{margin-top:5px;color:var(--muted);font-size:12px}.helper{font-size:12px;color:var(--muted)}.search-form{display:flex;gap:10px;margin:18px 0}.search-form input{min-width:0;flex:1}.back-link{display:inline-flex;align-items:center;gap:6px;min-height:30px;margin:-6px 0 6px;font-size:12px;font-weight:600;letter-spacing:.2px;color:var(--muted);text-decoration:none}.back-link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.back-link span{font-size:14px;line-height:1}.empty-symbol{font-size:30px;color:var(--green)}

.menu-close{display:none}@media(max-width:760px){.sidebar{visibility:hidden}.nav-open .sidebar{visibility:visible}.nav-open{overflow:hidden}.menu-close{display:block;position:absolute;right:10px;top:14px;border:0;background:transparent;color:#d9e6dc;font-size:28px;width:44px;height:44px}}

/* Keep nested business panels within narrow grid tracks. */
.grid-main>*{min-width:0}.grid-2>*{min-width:0}
@media(max-width:380px){.panel-head{flex-wrap:wrap}.panel-head>.btn{flex-shrink:0}}

.login-options{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 20px;margin-top:20px;font-size:12px}.login-options details{flex:1 1 120px}.login-options summary{cursor:pointer;color:var(--green)}.login-options details p{margin:10px 0 0;font-size:12px;line-height:1.6}

/* Quiet, shared visual language for business and platform workspaces. */
:root{--ink:#18332c;--muted:#586e64;--paper:#f3f5f0;--line:#dce4db;--green:#216b54;--green-dark:#17543f;--lime:#e1edb6;--soft:#edf3e8;--radius:18px;--shadow:0 1px 2px #17352b04,0 8px 28px #17352b05;--side:246px}
body{-webkit-font-smoothing:antialiased;line-height:1.55;text-rendering:optimizeLegibility}
h1{font-size:clamp(28px,2.7vw,38px);font-weight:600;letter-spacing:-1.25px}h2{font-weight:600;letter-spacing:-.45px}h3{font-weight:600}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.btn{min-height:44px;border-radius:10px;padding:11px 18px;box-shadow:0 1px 2px #112f2510;transition:background .14s,border-color .14s,box-shadow .14s}
.btn:hover{box-shadow:0 3px 9px #112f2514}.btn.secondary{border-color:#cbd8cb;background:#fff}.btn.ghost{box-shadow:none}.btn.ghost:hover{box-shadow:none}.btn.small{min-height:36px}.btn.danger{background:#fff2ef;color:#98372e;border-color:#d9aba3}
.brand{font-weight:700;letter-spacing:-.9px}.brand-mark{border-radius:11px;box-shadow:inset 0 0 0 1px #ffffff40}
.sidebar{background:linear-gradient(165deg,#19362e 0%,#132d26 74%);padding:32px 18px 24px;border-right:1px solid #10241d}
.sidebar .brand{padding-left:12px}.workspace-label{font-size:10px;letter-spacing:1.8px;margin:28px 13px 16px;color:#acc1b3}
.nav-group{color:#a5bbac;margin:30px 13px 10px;letter-spacing:1.7px}.nav-item{min-height:46px;padding:12px 13px;margin:5px 0;border-radius:10px;gap:12px;color:#c5d6ca;font-size:12.5px}
.nav-item.active{color:#233b27;box-shadow:inset 0 1px 0 #ffffff65,0 2px 5px #071b1920}.nav-item:hover{background:#ffffff0d}.nav-item.active:hover{background:var(--lime)}
.nav-icon{width:20px;height:20px;flex:0 0 20px;display:grid;place-items:center;opacity:1}.nav-icon svg{width:20px;height:20px;display:block}.menu-button svg,.menu-close svg{width:22px;height:22px}.menu-close{align-items:center;justify-content:center}
.sidebar :focus-visible{outline-color:var(--lime)}.sidebar .nav-item.active:focus-visible{outline-color:#fff}.sidebar-bottom{padding:20px 12px 0}.sidebar-bottom p{color:#afc2b4}
.topbar{height:76px;padding:0 38px;background:#f3f5f0f5;border-bottom-color:#dde5dc;backdrop-filter:none}
.breadcrumb{min-width:0;flex:1;gap:10px}.breadcrumb strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:12px}.breadcrumb .brand-crumb{flex:none;color:var(--muted)}
.top-user{flex:none;gap:12px}.top-user .user-text{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-user .user-text small{font-size:11px}.avatar{width:35px;height:35px;background:#e5eddd;border-color:#d4dfcd;color:#3f6245;font-size:12px}.top-user form{margin:0}
.main{padding:38px 38px 64px;max-width:1680px}.page-heading{margin-bottom:30px;gap:22px}.page-heading>div{min-width:0}.page-heading .eyebrow{font-size:10px;letter-spacing:1.8px;margin-bottom:10px}.page-heading h1,.page-heading .eyebrow{overflow-wrap:anywhere}.page-heading p{font-size:13px;max-width:780px;line-height:1.6}.page-heading>.btn{flex-shrink:0}
.panel{padding:26px;border-color:var(--line);box-shadow:var(--shadow);margin-bottom:24px}.panel-head{gap:18px;margin-bottom:24px}.panel-head>div{min-width:0}.panel-head h2{overflow-wrap:anywhere}.panel-head p{line-height:1.6}.panel-head>a{flex-shrink:0;font-size:12px;font-weight:600}
.grid-2,.grid-main{gap:24px}.stats{gap:16px;margin-bottom:28px}.stat{border-radius:16px;padding:23px 22px;box-shadow:var(--shadow)}.stat .label{font-size:10px;font-weight:600;letter-spacing:.85px;line-height:1.6;min-height:32px;align-items:flex-start}.stat .number{font-size:clamp(24px,2.15vw,33px);font-weight:600;letter-spacing:-1px;line-height:1.25;margin:11px 0 10px;font-variant-numeric:tabular-nums}.stat .number .unit{font-size:10px;font-weight:600;letter-spacing:.5px;margin-right:7px}.stat small{font-size:11px;line-height:1.6}.stat.emphasis{background:linear-gradient(140deg,#23674f,#18513e);border-color:#205c47;box-shadow:0 5px 18px #164b3512}.stat.emphasis .label,.stat.emphasis small,.stat.emphasis .number .unit{color:#e2ecd8}
.table-wrap{border-radius:11px}.data-table{font-size:13px}.data-table th{font-size:10px;letter-spacing:.8px;background:#f5f7f2;color:#50664e;padding:14px 16px}.data-table td{padding:17px 16px;border-bottom-color:#e9eee6}.data-table td small{font-size:11px;line-height:1.6}.data-table tbody tr:hover{background:#f9fbf6}.data-table td.amount{font-weight:600}.data-table a{font-weight:600}.table-head-pad{padding:26px 26px 0}.panel.no-pad .table-wrap{border-radius:0 0 var(--radius) var(--radius)}
.badge{padding:4px 9px;border-radius:7px;font-size:11px;font-weight:600}.badge.good{background:#eaf3e6;color:#32623b}.badge.waiting{background:#f9efcf;color:#775916}.badge.muted{background:#f5e9e4;color:#895043}.pill{background:#edf2e6;color:#526844;font-weight:550}
.list-row{padding:17px 0;border-bottom-color:#e7ede2}.list-row h3{font-weight:600}.list-row p{font-size:12px;line-height:1.6}.list-row h3,.list-row p{overflow-wrap:anywhere}.list-row>form{flex-shrink:0}.step-number{border-color:#cddac4;background:#f4f7ee;color:#617454}.step-number.done{background:#e3efd9;border-color:#d6e4cc;color:#3a683d}
.setup-panel{background:#f7f9f0;border-color:#dbe4cd}.setup-progress{height:5px;background:#dde7d4}.setup-progress i.done{background:#638352}.setup-item{border-bottom-color:#e1e8da}.setup-item>span:nth-child(2){min-width:0}.setup-item strong,.setup-item small{overflow-wrap:anywhere}
.chart{height:198px;gap:18px;margin-bottom:38px;border-color:#dfe7d9;padding-top:18px;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#e9eee680 49px,#e9eee680 50px)}.chart-bar{background:#d2e4c4;border-radius:6px 6px 0 0}.chart-col:last-child .chart-bar{background:#39714f}.chart-value{font-size:10px;color:#506848;font-variant-numeric:tabular-nums}.chart-label{font-size:11px;color:#556d51}
.tabs{gap:4px;padding:0 0 12px;margin-bottom:24px;border-color:#d8e1d4}.tabs a{min-height:40px;display:inline-flex;align-items:center;padding:9px 15px;border-radius:9px;font-size:12px}.tabs a.active{background:#e4eddc;color:#335d37;box-shadow:inset 0 0 0 1px #d6e2ca}.tabs a:hover{background:#ebf1e5}
.field{font-size:13px;margin-bottom:20px;gap:8px}.field>span,.field>label{font-weight:600}.field input,.field select,.field textarea,.search-input{height:46px;border-color:#8f9f91;border-radius:9px;padding:11px 13px;background:#fdfefb;box-shadow:inset 0 1px 2px #21392a03}.field textarea{height:112px}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:var(--green);outline:2px solid var(--green);outline-offset:2px;box-shadow:none}.field input::placeholder{color:#697d6b}.field input[readonly]{background:#f1f4ec}.field small{color:var(--muted)}.form-grid{gap:0 22px}.check{line-height:1.6}.check input{margin-top:3px}.hint,.helper{font-size:12px;color:var(--muted)}
details>summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--green);padding:2px 0}details[open]>summary{margin-bottom:18px}details.panel>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px}details.panel>summary::-webkit-details-marker{display:none}details.panel>summary::after{content:'+';font-size:20px;font-weight:400;line-height:1}details.panel[open]>summary::after{content:'−'}
.support-banner{background:#faf0d6;color:#625024;border-bottom:1px solid #e9d9b1;padding:12px 38px;gap:20px}.support-banner>span{min-width:0;overflow-wrap:anywhere}.support-banner strong{font-weight:650}.support-banner .btn{min-height:38px;background:#fffaf0;color:#5d4b23;border-color:#c9b883;border-radius:8px;white-space:nowrap}.support-banner form{flex-shrink:0}
.callout{background:#edf3e6;border:1px solid #dfe8d4;border-radius:12px;padding:18px 20px}.alert{border-radius:12px}.alert.error{background:#fff3ef;border-color:#dda89b;color:#8b3324}.alert.notice{background:#fff7e1;border-color:#ddc98d;color:#6a5420}.code-block{border:1px solid #274a3b}.copy-block code{background:#f5f7f0;border-color:#d3dfca}.detail-list dt{font-size:12px}.detail-list dd{font-variant-numeric:tabular-nums}.footer-note{font-size:11px;color:#60715f;padding-top:12px}
.auth-page{grid-template-columns:44% 56%;background:#fafbf7}.auth-story{background:linear-gradient(150deg,#1c3c30,#112a22);padding:44px 54px}.auth-story h1{font-size:clamp(39px,4.1vw,60px);line-height:1.13;letter-spacing:-1.8px}.auth-story p{color:#c0d1c0;line-height:1.8}.auth-story .eyebrow{color:#b8cda6}.auth-story-bottom{color:#b3c5b2}.auth-orbit{border-color:#d2e6a811;box-shadow:0 0 0 65px #cfdf9a05,0 0 0 130px #cfdf9a03}.auth-main{padding:42px 8%;background:linear-gradient(150deg,#ffffff,#fafbf7)}.auth-form{max-width:410px}.auth-form.wide{max-width:550px}.auth-form h2{font-size:31px;letter-spacing:-1px;font-weight:600}.auth-form>p{font-size:13px;margin-bottom:30px}.auth-form .eyebrow{font-size:10px;letter-spacing:1.8px}.auth-form .btn.full{min-height:48px}.auth-form .field{margin-bottom:23px}.auth-foot{color:#60715f;font-size:11px}.auth-top{flex-wrap:wrap;line-height:1.7}.password-control{position:relative}.password-control input{padding-right:68px}.password-control .btn{position:absolute;right:5px;top:5px;min-height:36px;padding:7px 10px;font-size:12px}.login-options{font-size:12px;gap:12px 18px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.login-options summary{font-size:12px;font-weight:500;padding:0}.login-options details[open]>summary{margin-bottom:0}
.invoice-sheet{border-radius:18px;box-shadow:var(--shadow);padding:42px}.invoice-total{font-variant-numeric:tabular-nums;font-weight:600}.invoice-instructions{border:1px solid #e0e7d8;background:#f7f9f1}
@media(min-width:1800px){.main,.topbar{padding-left:54px;padding-right:54px}}
@media(max-width:1200px){:root{--side:218px}.sidebar{padding-left:13px;padding-right:13px}.nav-item{font-size:12px;gap:10px;padding-left:11px;padding-right:11px}.main{padding:30px 26px 52px}.topbar{padding:0 26px}.panel{padding:22px}.stat{padding:20px 18px}.stat .number{font-size:28px}.table-head-pad{padding:22px 22px 0}.auth-story{padding:38px}.auth-main{padding:34px 7%}}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat .label{min-height:0}.grid-main{grid-template-columns:1fr;gap:0}.auth-page{grid-template-columns:38% 62%}.auth-story{padding:30px}.auth-story h1{font-size:40px}.auth-story p{font-size:13px}.grid-2{gap:18px}.panel-head{flex-wrap:wrap}.top-user .user-text{max-width:110px}}
@media(max-width:760px){:root{--side:0px}.sidebar{width:258px;padding:28px 18px 22px}.menu-close{display:flex}.nav-item{font-size:13px;min-height:47px;padding:13px}.topbar{height:68px;padding:0 14px;gap:8px}.menu-button{display:grid;place-items:center;flex:0 0 44px}.breadcrumb{gap:0}.breadcrumb strong{font-size:11px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;line-height:1.4}.top-user{gap:7px}.top-user .avatar{width:30px;height:30px;font-size:11px}.topbar .btn.ghost{padding:8px;min-height:40px}.main{padding:28px 18px 44px}.page-heading{margin-bottom:25px;gap:16px}.page-heading h1{font-size:29px}.page-heading p{font-size:12px}.page-heading>.btn{min-height:42px}.stats{gap:12px;margin-bottom:22px}.stat{padding:18px 16px;border-radius:14px}.stat .label{font-size:10px;letter-spacing:.5px;min-height:32px}.stat .number{font-size:25px;margin:11px 0 8px}.stat .number .unit{display:block;font-size:10px;line-height:1;margin:0 0 7px}.stat small{font-size:11px;line-height:1.5}.panel{padding:21px;margin-bottom:20px;border-radius:15px}.panel-head{gap:12px;margin-bottom:20px;flex-wrap:wrap}.panel-head h2{font-size:18px}.panel-head p{font-size:12px}.panel-head>a{min-height:36px;display:inline-flex;align-items:center}.grid-2,.grid-main{gap:0}.form-grid{gap:0 16px}.table-head-pad{padding:21px 21px 0}.data-table th{padding:12px;font-size:10px}.data-table td{padding:15px 12px;font-size:12px}.data-table td small{font-size:11px}.tabs{gap:2px;padding-bottom:10px;margin-bottom:22px}.tabs a{font-size:12px;padding:9px 11px}.chart{gap:10px;height:176px}.chart-value{font-size:9px}.chart-label{font-size:10px}.support-banner{padding:12px 18px;gap:12px;flex-wrap:wrap;font-size:11px}.support-banner .btn{min-height:40px;font-size:11px}.auth-page{display:block}.auth-story{display:none}.auth-main{padding:28px 24px;min-height:100vh}.auth-mobile-brand{margin-bottom:28px}.auth-form,.auth-form.wide{max-width:480px;padding:32px 0 40px}.auth-form h2{font-size:30px}.auth-form .field input,.auth-form .field select{font-size:16px}.auth-top{justify-content:flex-start}.invoice-sheet{padding:26px 21px}.invoice-top{flex-wrap:wrap;gap:16px}.provider-choice small{font-size:11px}.provider-choice{padding:14px}.detail-grid{gap:16px}.detail-hero{flex-wrap:wrap;gap:14px}.list-row>form{max-width:100%}}
@media(max-width:380px){.main{padding:24px 14px 40px}.stats{gap:9px}.stat{padding:16px 13px}.stat .number{font-size:23px;letter-spacing:-.7px}.stat .label{font-size:9.5px;min-height:32px}.stat small{font-size:10.5px}.panel{padding:18px}.table-head-pad{padding:18px 18px 0}.auth-main{padding:25px 20px}.form-grid{grid-template-columns:1fr}.provider-grid{grid-template-columns:1fr}.topbar{padding:0 8px;gap:4px}.top-user .avatar{display:none}.tabs a{padding:8px 9px}.detail-grid{grid-template-columns:1fr}.list-row{flex-wrap:wrap}.list-row .grow{flex:1 1 120px}.chart{gap:6px}.chart-value{font-size:8.5px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{body{background:#fff}.main{padding:0;max-width:none}.panel,.stat,.invoice-sheet{box-shadow:none}.invoice-sheet{border:0;padding:20px}.invoice-instructions{background:#fff}.stat.emphasis{background:#fff;color:var(--ink)}.stat.emphasis .label,.stat.emphasis small,.stat.emphasis .number .unit{color:var(--muted)}}
/* Keep controls and keyboard focus distinct on every surface. */
.field input,.field select,.field textarea,.search-input{border-color:#819383}.field input::placeholder{color:var(--muted)}.auth-story :focus-visible{outline-color:var(--lime)}
.detail-hero>div{min-width:0;max-width:100%}.detail-hero h2,.detail-hero p{overflow-wrap:anywhere}
.field small,.footer-note{overflow-wrap:anywhere}
.chart-bar{background:#719567}
@media(min-width:761px) and (max-width:1120px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Compact overview figures; financial cards retain their existing layout. */
.overview-presence{display:flex;align-items:flex-start;gap:26px;margin:0;flex:none}.overview-presence>div{min-width:116px}.overview-presence>div+div{border-left:1px solid var(--line);padding-left:26px}.overview-presence dt{font-size:11px;color:var(--muted);font-weight:500;white-space:nowrap;margin:0 0 5px}.overview-presence dd{margin:0;font-size:27px;line-height:1.12;letter-spacing:-.8px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink)}.overview-presence small{display:block;font-size:10px;line-height:1.4;margin-top:5px;max-width:150px;color:var(--muted)}.presence-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#98a59e;margin-right:5px;vertical-align:middle}.overview-presence [data-online-count]{min-height:30px}
@media(max-width:760px){.page-heading.has-presence{flex-wrap:wrap}.overview-presence{width:100%;padding-top:2px;gap:22px}.overview-presence>div{min-width:120px}.overview-presence>div+div{padding-left:22px}.overview-presence dd{font-size:25px}.overview-presence small{font-size:10px}}

.overview-presence.is-current .presence-dot{background:#497361}
.panel-details{margin:18px 0 22px}.panel-details>summary{color:var(--green);font-weight:500;cursor:pointer}.panel-details[open]>summary{margin-bottom:18px}.outage-dismiss{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.tabs.compact{margin:0;padding:0}

/* R1 (2026-09-17): phone-first shell — a four-item bottom bar; the drawer stays for everything else */
.bottom-bar{display:none}
@media(max-width:760px){.bottom-bar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:38;background:#fff;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 24px #132e2512}.bottom-bar a,.bottom-bar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:48px;padding:6px 2px;border:0;background:none;border-radius:12px;font:inherit;font-size:11px;font-weight:600;color:var(--muted);text-decoration:none;cursor:pointer}.bottom-bar .nav-icon{width:20px;height:20px}.bottom-bar .nav-icon svg{width:20px;height:20px}.bottom-bar a.active{color:var(--green);background:var(--soft)}.bottom-bar a:focus-visible,.bottom-bar button:focus-visible{outline:2px solid var(--green);outline-offset:2px}.main{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.footer-note{margin-bottom:12px}}
/* R1: per-business feature switches (owner console) */
.feature-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.feature-row:first-of-type{border-top:0;padding-top:4px}.feature-row strong{display:block;font-size:14px}.feature-row small{display:block;color:var(--muted);margin-top:3px;font-size:12px}.feature-row .btn{flex:0 0 auto}
label.check small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
/* R2: plans as rows */
.plans-panel .panel-head{margin-bottom:4px}.plans-panel .tabs{margin:0}.plan-table td{vertical-align:middle}.plan-table th:last-child,.plan-table td:last-child{text-align:right}
.plan-name{display:flex;align-items:center;gap:8px;min-width:170px}.name-input{font:inherit;font-weight:600;font-size:14px;color:inherit;border:1px solid transparent;border-radius:8px;padding:6px 8px;margin-left:-9px;background:transparent;min-width:0;width:100%;max-width:220px;transition:border-color .14s,background .14s}.name-input:hover{border-color:#d7e0d3;background:#fff}.name-input:focus{border-color:#8fb59a;background:#fff;outline:none;box-shadow:0 0 0 3px #88b5ec33}.plan-name .btn{display:none}.plan-name.dirty .btn{display:inline-flex}
.row-actions{white-space:nowrap}.row-actions form{display:inline}.row-actions>a,.row-actions .link-btn{margin-left:14px}.link-btn{background:none;border:0;padding:0;color:var(--green);cursor:pointer;font:inherit;font-weight:600;font-size:13px}.link-btn:hover{text-decoration:underline}.link-btn.quiet{color:#6b7f6a}.link-btn.strong{color:#98372e}.badge.bad{background:#fff0ec;color:#98372e}
tr.hl{animation:rowhl 2.6s ease-out}@keyframes rowhl{0%,60%{background:#eaf5ed}100%{background:transparent}}.plans-hint{margin:14px 0 0}
.alert.has-undo{display:flex;align-items:center;justify-content:space-between;gap:14px}.alert .undo{margin:0}
.field-pair>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field .static{margin:0;padding:10px 0;font-weight:600}.check-row{display:flex;gap:22px;flex-wrap:wrap;margin:4px 0 14px}.plan-form .actions{margin-top:6px}.plan-form .actions+.hint{margin-top:10px}
@media(max-width:760px){.plan-table thead{display:none}.plan-table,.plan-table tbody,.plan-table tr,.plan-table td{display:block}.plan-table tr{padding:14px 16px;border-bottom:1px solid #e9eee6;display:grid;grid-template-columns:1fr 1fr;gap:3px 12px}.plan-table td,.plan-table td:last-child{padding:0;border:0;text-align:left}.plans-panel>.panel-head+.table-wrap{margin-top:4px}.plan-table td[data-label=Plan]{margin-bottom:2px}.plan-table td[data-label=Price]{text-align:right;font-weight:600;align-self:center}.plan-table td[data-label=Status]{grid-column:1/-1;margin-top:6px}.plan-table td[data-label=Time]::before,.plan-table td[data-label=Speed]::before,.plan-table td[data-label=Devices]::before,.plan-table td[data-label=Where]::before{content:attr(data-label) " · ";color:#6b7f6a}.plan-table td.row-actions{grid-column:1/-1;white-space:normal;margin-top:8px;display:flex;gap:16px;flex-wrap:wrap}.plan-table td.row-actions>a,.plan-table .row-actions .link-btn{margin-left:0}.plan-name{min-width:0}.name-input{max-width:none;margin-left:-9px}}
/* R3: one Settings page, workspace before approval, guided Connect */
.section-nav{display:flex;gap:6px;flex-wrap:wrap;margin:-6px 0 18px;position:sticky;top:78px;z-index:5;background:var(--paper);padding:8px 0}.section-nav a{padding:7px 12px;border-radius:999px;border:1px solid #d7e0d3;background:#fff;font-size:12px;font-weight:600;color:#33503a}.section-nav a:hover{text-decoration:none;border-color:#9fb8a4}
.panel[id]{scroll-margin-top:140px}.sheet{border:1px solid #e3e9df;border-radius:12px;padding:0 16px;margin-top:14px;background:#fbfcf9}.sheet>summary{cursor:pointer;padding:12px 0;font-weight:600;list-style:none;display:flex;align-items:center;gap:8px}.sheet>summary::before{content:"";width:7px;height:7px;border-right:2px solid #6b7f6a;border-bottom:2px solid #6b7f6a;transform:rotate(-45deg);transition:transform .15s}.sheet[open]>summary::before{transform:rotate(45deg)}.sheet[open]{padding-bottom:16px}.sheet.danger{border-color:#e6c4bd;background:#fff8f6}.sheet .list-row:last-of-type{border-bottom:0}
.prefixed{display:flex;align-items:stretch;border:1px solid #cfd8cc;border-radius:10px;overflow:hidden;background:#fff}.prefixed .prefix{display:flex;align-items:center;padding:0 0 0 12px;color:#6b7f6a;font-size:13px;white-space:nowrap}.prefixed input{border:0!important;border-radius:0!important;flex:1;min-width:0;padding-left:2px!important;background:transparent}.prefixed:focus-within{border-color:#8fb59a;box-shadow:0 0 0 3px #88b5ec33}
.colour-row{display:flex;align-items:center;gap:10px}.colour-row input{width:52px;height:40px;padding:2px;border-radius:8px}.colour-row code{font-size:12px;color:#50664e}
.check-line{margin:0 0 12px;font-size:13px;font-weight:600}.check-line.ok{color:#2f6a3f}.check-line.warn{color:#98372e}.form-grid.three{grid-template-columns:repeat(3,1fr)}.copy-block.inline{display:inline-flex;margin:4px 0 0;vertical-align:middle}.inline-check{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.member-row h3{display:flex;align-items:center;gap:8px}.role-chip{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:#eef3ea;color:#4f6a53}.member-row .actions{gap:14px}.approval-banner{background:#fff7e1;border-color:#e6d59a;color:#5f4a12}
@media(max-width:760px){.section-nav{top:66px;overflow-x:auto;flex-wrap:nowrap;margin-left:-18px;margin-right:-18px;padding:8px 18px}.section-nav a{flex:0 0 auto}.form-grid.three{grid-template-columns:1fr}.panel[id]{scroll-margin-top:124px}}
/* R4: owner attention list, once-shown sign-in */
.attention .panel-head{margin-bottom:6px}.attention-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #edf1eb;color:inherit}.attention-row:hover{text-decoration:none;background:#f9fbf6}.attention-row:last-child{border-bottom:0}.attention-row h3{margin:0;font-size:14px;font-weight:600}.attention-row p{margin:2px 0 0;font-size:12px;color:var(--muted)}.attention .dot{width:9px;height:9px;border-radius:50%;background:#c9b45a;flex:0 0 auto}.attention .dot.bad{background:#c0463a}.attention .dot.good{background:#4a8a5c}
.alert .copy-block{margin:10px 0 0;flex-basis:100%}.alert.has-undo{flex-wrap:wrap}
/* R5: subscription — levels on passes, paid after you sell */
.sub-status .balance{font-size:34px;letter-spacing:-1px;margin:4px 0 8px}.sub-status .eyebrow{margin-bottom:6px}.sub-status.overdue .balance,.sub-status.paused .balance{color:#98372e}
.meter{height:8px;border-radius:999px;background:#e6ede4;overflow:hidden;margin:12px 0 10px}.meter i{display:block;height:100%;background:linear-gradient(90deg,#2f6a3f,#4a8a5c);border-radius:999px;transition:width .4s ease}
a.panel.level-meter{display:block;color:inherit;margin-bottom:22px}a.panel.level-meter:hover{text-decoration:none;box-shadow:0 10px 35px #132e2518}a.panel.level-meter .panel-head{margin-bottom:0}a.panel.level-meter h2{font-size:16px}a.panel.level-meter .meter{margin:12px 0 0}
.level-row.current h3::after{content:"you";display:inline-block;margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#2f6a3f;background:#e3efd9;padding:2px 7px;border-radius:999px}
.pay-sheet{margin-top:14px}.topup-wait{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.topup-wait .payment-status{color:#6a5420}
.policy-line{font-size:13px;color:#33503a;margin:0 0 6px;line-height:1.7}.default-mark{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#4f6a53;background:#eef3ea;padding:2px 7px;border-radius:999px;vertical-align:middle;margin-left:6px}
.levels-edit td{padding:6px 8px}.levels-edit .input{width:100%;min-height:36px;padding:6px 10px;border:1px solid #cfd8cc;border-radius:8px}.levels-edit .input.num{max-width:max(120px,12ch)}
.alert.billing-banner{display:flex;align-items:center;justify-content:space-between;gap:14px}
@media(max-width:760px){.sub-status .balance{font-size:28px}.levels-edit .input.num{max-width:none}}

/* R7: correct a sale / end access */
details.sheet.correction{margin-top:14px;max-width:560px}details.sheet.correction:target{border-color:#146b5e}details.sheet.correction .check{margin:6px 0 10px}.correction-link{display:inline-block;margin-top:8px;font-size:13px;font-weight:600;white-space:nowrap}.data-table tr.voided td{color:var(--muted,#6b7a72)}.data-table tr.voided s{text-decoration-color:#98372e}

/* R8: PINs for agents, delete sheets */
.link-btn.danger{color:#98372e}.btn.ghost.danger{color:#98372e}.btn.ghost.danger:hover{background:#fff2ef;color:#98372e}.pin-link{font-size:13px;font-weight:600}details.sheet.pin-sheet{max-width:520px}details.sheet.pin-sheet:not([open]){display:none}details.sheet.customer-delete{max-width:560px;margin-bottom:8px}[data-role-field][hidden]{display:none}

/* R12: sales by business */.sales-table th.num,.sales-table td.num{text-align:right}.sales-table td.num small{font-weight:500;color:var(--muted);white-space:nowrap}.sales-table tfoot td{border-top:2px solid var(--line);background:#fafbf8;padding-top:14px;padding-bottom:14px}.sales-table tfoot td small{font-weight:500}.data-table td small .badge{font-size:10px;padding:2px 8px}.sales-table td a strong{color:inherit}@media(max-width:759px){.sales-table .hide-sm{display:none}.sales-table td.num small{white-space:normal}}

/* R15: mobile money health (owner Home) and payment-request funnel (business Reports) */.health-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.health-tile{border:1px solid var(--line);border-radius:12px;padding:15px 17px;background:#fafbf8;min-width:0}.health-tile .label{display:block;font-size:11px;font-weight:550;color:var(--muted)}.health-tile strong{display:block;font-size:24px;letter-spacing:-.8px;font-weight:650;margin:8px 0 4px;font-variant-numeric:tabular-nums}.health-tile small{display:block;font-size:10.5px;line-height:1.5}.health-table th.num,.health-table td.num{text-align:right}.health-table td.num small{font-weight:500;color:var(--muted);white-space:nowrap}.health-table tfoot td{border-top:2px solid var(--line);background:#fafbf8;padding-top:14px;padding-bottom:14px}.health-table tr.alerting td:first-child strong{color:var(--red)}.meter.tiny{height:5px;margin:7px 0 5px;min-width:70px;background:#e6ede4}.meter.tiny i{background:linear-gradient(90deg,#2f6a3f,#4a8a5c)}.delta{font-weight:600;white-space:nowrap}.delta.up{color:#28704d}.delta.down{color:var(--red)}.delta.same{color:var(--muted);font-weight:500}.reasons-line{padding-bottom:20px}.reasons-line p{font-size:12px;margin:0 0 6px;line-height:1.65}.reasons-line p:last-child{margin-bottom:0}.funnel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.funnel-step{min-width:0}.funnel-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12px;color:var(--muted);font-weight:550}.funnel-head strong{font-size:20px;letter-spacing:-.6px;color:var(--ink);font-variant-numeric:tabular-nums}.funnel-head strong em{font-style:normal;font-size:12px;color:var(--muted);font-weight:550;margin-left:4px}.funnel .meter{margin:10px 0 8px}.funnel small{display:block;font-size:10.5px;line-height:1.5}.reasons-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;padding-bottom:24px}.reasons-grid h3{margin-bottom:6px}.reason-row{padding:12px 0}.reason-row h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reason-row .pill{font-size:10px;padding:3px 8px}.reason-row p{line-height:1.6}.reason-row p strong{font-weight:600;color:var(--ink)}@media(max-width:1000px){.health-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.reasons-grid{grid-template-columns:1fr;gap:14px}}@media(max-width:759px){.health-table .hide-sm{display:none}.health-strip{gap:10px}.health-tile{padding:12px 13px}.health-tile strong{font-size:20px}.funnel{grid-template-columns:1fr;gap:14px}.health-table td.num small{white-space:normal}}@media(max-width:480px){.health-table .hide-xs{display:none}.meter.tiny{min-width:52px}.health-table td.num small{font-size:9.5px}}
/* R24: customer messages (business Messages tab, composer, owner rules) */
.kind-badge{display:inline-flex;align-items:center;font-size:10.5px;font-weight:650;line-height:1.5;padding:1px 8px;border-radius:999px;letter-spacing:.2px;vertical-align:1px;white-space:nowrap}.kind-badge.offer{background:#fff1d6;color:#7d520b}.kind-badge.notice{background:#e7eefa;color:#2b4f86}
.msg-blocked{margin:0 0 22px;background:#fff7e1;border:1px solid #ebdfb7;color:#5f4a12}.msg-blocked p{margin:6px 0 0}.msg-blocked a{font-weight:600}
.msg-excerpt{font-weight:550}.msg-note{color:#7d520b}.msg-groups td.row-actions,.msg-sends td.row-actions{text-align:right;white-space:nowrap;width:1%}.msg-groups .show-sm,.msg-sends .show-sm{display:none}
.msg-rules ul{margin:0 0 4px;padding-left:18px;line-height:1.7}.msg-rules li{margin:5px 0}.msg-rules li strong{color:var(--ink);font-weight:600}
.msg-compose-grid .panel{margin-bottom:22px}.msg-write h2,.msg-review h2{margin-bottom:4px}.msg-write .hint{margin-bottom:18px}
.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.tpl-section{grid-column:1/-1;margin:10px 0 0;font-size:10.5px;font-weight:650;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}.tpl-section:first-child{margin-top:0}
.tpl-card{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:10px 12px;min-height:58px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s,background .15s}.tpl-card:hover{border-color:#aac4b6;text-decoration:none;background:#fbfdfa}.tpl-card.active{border-color:var(--green);box-shadow:0 0 0 1px var(--green);background:#f3f9f4}.tpl-card strong{font-size:13px;font-weight:600;line-height:1.3}.tpl-card span{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.msg-form textarea{font-size:14px;line-height:1.55;height:auto;min-height:120px}[data-sms-count]{font-variant-numeric:tabular-nums}[data-sms-count].bad{color:var(--red);font-weight:600}.msg-brackets{color:#7d520b;font-weight:550}
.msg-phone{position:sticky;top:98px}.phone{background:linear-gradient(180deg,#f3f6f1,#eef2ec);border:1px solid var(--line);border-radius:24px;padding:14px 14px 18px;margin:4px 0 12px;min-height:230px}.phone-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:2px 6px 12px;border-bottom:1px solid #e1e8df;margin-bottom:14px;font-size:12.5px;font-weight:650}.phone-top small{font-weight:500}
.sms-bubble{background:#fff;border:1px solid #e1e8e3;border-radius:18px 18px 18px 5px;padding:12px 14px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 1px 2px #102e1f0d;max-width:94%}
.msg-facts{margin:16px 0 20px}.msg-facts>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid #edf1eb}.msg-facts>div:last-child{border-bottom:1px solid #edf1eb}.msg-facts dt{font-size:12px;color:var(--muted);font-weight:600}.msg-facts dd{margin:0;font-size:13px;line-height:1.6}
.hk-group{margin:18px 0 10px;font-size:12px;color:var(--muted);font-weight:650;letter-spacing:.5px;text-transform:uppercase}
.tpl-edit{border:1px solid var(--line);border-radius:12px;padding:12px 16px 0;margin:0 0 14px;min-width:0}.tpl-edit legend{padding:0 6px;font-weight:650;font-size:13px;display:flex;gap:8px;align-items:center}.tpl-edit textarea{height:auto;min-height:92px;font-size:13px;line-height:1.5}.msg-save{margin-top:6px}
.msg-groups .row-actions .btn{white-space:nowrap}.msg-groups td small.msg-counts{color:var(--ink);font-weight:550}
@media(max-width:1000px){.msg-phone{position:static}}
@media(max-width:760px){.msg-facts>div{grid-template-columns:1fr;gap:3px}.msg-groups .hide-sm,.msg-sends .hide-sm{display:none}.msg-groups .show-sm{display:block}.msg-sends .show-sm{display:inline}.tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.msg-review-actions .btn{width:100%}.msg-review-actions form{flex:1 1 100%}
 .msg-groups thead,.msg-sends thead{display:none}.msg-groups,.msg-groups tbody,.msg-sends,.msg-sends tbody{display:block}
 .msg-groups tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid #e9eee6}.msg-groups td{padding:0;border:0}
 .msg-sends tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 16px;border-bottom:1px solid #e9eee6}.msg-sends td{padding:0;border:0}.msg-sends td.msg-cell{grid-column:1/-1}.msg-sends td.msg-result .meter.tiny{max-width:220px}.msg-sends td.row-actions{align-self:start}}
/* R29: the SMS note under Check connection */
.sms-terms-note{margin:14px 0 0}
/* R26: what happened after a message */
.msg-won{display:block;margin-top:5px;font-size:11.5px;color:var(--ink)}.msg-won strong{font-weight:650;color:#28704d}.msg-won span{color:var(--muted)}
/* R27: a router's own health line (router page), the business's Needs attention list, the owner's defaults note */
.detail-hero p.router-health{display:flex;align-items:center;gap:8px}.detail-hero p.router-health:before{content:"";width:8px;height:8px;border-radius:50%;background:#b8c2b5;flex:0 0 auto}.detail-hero p.router-health.up:before{background:#4a8a5c}.detail-hero p.router-health.down:before{background:#c0463a}
#needs-attention .attention-row p{max-width:72ch;line-height:1.55}#needs-attention .dot{align-self:flex-start;margin-top:6px}.defaults-note{margin:16px 0 0}
/* R28: plans sold at one location only -> one action to sell them everywhere */
.callout.share-all{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px}.callout.share-all p{margin:4px 0 0;max-width:70ch}.callout.share-all form{margin:0;flex:0 0 auto}
@media(max-width:759px){.callout.share-all{flex-direction:column;align-items:stretch}.callout.share-all .btn{width:100%;min-height:44px}}
/* R28: a field's "Optional" never breaks mid-word; Settings -> Business is one column on phones (the page address needs the width) */
.field>span{flex-wrap:wrap}.field>span small{white-space:nowrap}
@media(max-width:560px){#business .form-grid{grid-template-columns:1fr}}
/* R30: discounts on offers (the composer's choice, the badge, the results line) and on payments */
.msg-discount{border:0;padding:0;margin:0 0 18px;min-width:0}.msg-discount legend{font-size:13px;font-weight:600;margin:0 0 8px;padding:0}.msg-discount legend small{font-weight:400;color:var(--muted);margin-left:4px}
.msg-discount>small{display:block;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.5}
.seg{display:inline-flex;flex-wrap:wrap;justify-self:start;align-self:start;width:max-content;max-width:100%;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.seg label{position:relative;display:inline-flex;cursor:pointer}
.seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.seg span{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:40px;padding:0 14px;font-size:13px;font-weight:600;color:var(--muted);border-left:1px solid var(--line);transition:background .15s,color .15s}
.seg label:first-child span{border-left:0}.seg label:hover span{background:#f5f8f4;color:var(--ink)}.seg input:checked+span{background:var(--green);color:#fff}.seg input:focus-visible+span{outline:3px solid #88b5ec;outline-offset:-3px}
.kind-badge.discount{background:#e2f4e8;color:#1d6b3f}.msg-codes strong{color:#1d6b3f}td.amount small{font-weight:400}
.detail-grid dd small{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--muted)}
/* R31: the discount picker (an amount in TZS, one plan) and the automatic win-back with its switch */
.disc-more{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:10px}.disc-more[hidden],.disc-amount[hidden]{display:none}
.disc-amount,.disc-plan{display:inline-flex;align-items:center;gap:8px;min-height:40px;margin:0;font-size:13px;font-weight:600;color:var(--muted)}
.disc-amount input{width:104px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;background:#fff}
.disc-plan select{height:40px;max-width:100%;padding:0 34px 0 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-weight:550;background-color:#fff}
.disc-amount input:focus,.disc-plan select:focus{border-color:var(--green);outline:0;box-shadow:0 0 0 3px #146b5e24}
.kind-badge.auto{background:#ece8fb;color:#4b3a8f}
.msg-auto{scroll-margin-top:90px}.msg-auto-head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;row-gap:4px;align-items:start}.msg-auto-head h2{margin:0;grid-column:1}
.msg-auto-head p{grid-column:1;margin:0;max-width:70ch;color:var(--muted);line-height:1.6}.msg-auto-head .switch{grid-column:2;grid-row:1/span 2;margin-top:-6px}
.msg-auto.is-on{border-color:#b9dcc7;box-shadow:0 0 0 1px #d4eadc inset}.msg-auto-wait{margin:14px 0 0;font-weight:550}.msg-auto-stats{margin:12px 0 0;font-size:13px}.msg-auto-stats strong{font-weight:650}
.msg-auto-form{margin:0}.msg-auto-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:22px 32px;align-items:start;margin-top:18px}.msg-auto-grid .msg-discount{margin-bottom:12px}.msg-auto-grid .actions{margin:0}.msg-auto-grid .hint{margin:0}
.msg-auto-sms .eyebrow{margin-bottom:8px}.msg-auto-sms .sms-bubble{max-width:100%;background:#fbfcfa}.msg-auto-sms small{display:block;margin-top:8px;font-size:12px;color:var(--muted)}
.switch{flex:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 4px;border:0;background:none;color:var(--ink);font-weight:650;font-size:13px;border-radius:12px}
.switch-track{position:relative;width:46px;height:28px;border-radius:999px;background:#c9d4cf;transition:background .18s}.switch-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f2a2233;transition:transform .18s}
.switch[aria-checked=true] .switch-track{background:var(--green)}.switch[aria-checked=true] .switch-thumb{transform:translateX(18px)}.switch:hover .switch-track{filter:brightness(.96)}.switch:focus-visible{outline:3px solid #88b5ec;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.switch-track,.switch-thumb{transition:none}}
@media(max-width:760px){.msg-auto-grid{grid-template-columns:1fr}.msg-auto-head{row-gap:8px}.msg-auto-head .switch{grid-row:1;align-self:center;margin-top:0}.msg-auto-head p{grid-column:1/-1}
.msg-discount .seg{display:flex;width:100%}.msg-discount .seg label{flex:1 1 0}.msg-discount .seg span{min-width:0;width:100%;min-height:44px;padding:0 6px}.disc-amount input,.disc-plan select{height:44px}
.disc-plan,.disc-plan select{width:100%}.msg-auto-grid .actions .btn{width:100%}}
/* R33: bar charts (Sales overview, a router's health). One series colour, #2b7a4f, and the unfinished period a lighter step,
   #86b596 (both validated against the white panel: lightness band, chroma floor, contrast). Bars at most 24px wide with a
   4px rounded top, square at the baseline; solid hairline grid; direct labels on the peak and the latest bar only. */
.bc{position:relative;margin:6px 0 0}
.bc-plot{position:relative;height:178px;margin-left:44px;border-bottom:1px solid #d5ddd2}
.bc-grid{position:absolute;inset:22px 0 0;pointer-events:none}
.bc-tick{position:absolute;left:-44px;right:0;height:0;border-top:1px solid #e9eee7}
.bc-tick.t2{top:0}.bc-tick.t1{top:50%}.bc-tick.t0{top:100%;border-top:0}
.bc-tick em{position:absolute;left:0;top:0;width:37px;transform:translateY(-50%);text-align:right;font-style:normal;font-size:10px;line-height:1;color:#6b7d74;font-variant-numeric:tabular-nums;white-space:nowrap}
.bc-cols{position:absolute;inset:22px 0 0;display:flex}
.bc-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-radius:6px 6px 0 0;outline:none;cursor:default;-webkit-tap-highlight-color:transparent}
.bc-col.is-hot{background:#eef3ec}
.bc-col:focus-visible{box-shadow:inset 0 0 0 2px #2b7a4f}
.bc-bar{display:block;flex:0 0 auto;width:min(24px,64%);height:0;background:#2b7a4f;border-radius:4px 4px 0 0;transition:height .5s cubic-bezier(.2,.75,.25,1),background-color .15s}
.bc-col.is-partial .bc-bar{background:#86b596}
.bc-col.is-hot .bc-bar{background:#22663f}
.bc-col.is-partial.is-hot .bc-bar{background:#72a583}
.bc-none{display:block;flex:0 0 auto;width:min(24px,64%);height:2px;border-radius:1px;background:#dfe6dc}
.bc-col:first-child .bc-lab{align-self:flex-start}.bc-col:last-child .bc-lab{align-self:flex-end}
.bc-lab{flex:0 0 auto;margin-bottom:5px;font-size:10.5px;font-weight:600;line-height:1;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none}
.bc-x{display:flex;margin-left:44px;padding-top:8px}
.bc-x span{flex:1 1 0;min-width:0;text-align:center;font-size:10.5px;line-height:1.2;color:#6b7d74;white-space:nowrap}
.bc-x span.now{color:var(--ink);font-weight:650}
.bc-x b{font-weight:inherit}.bc-x i{display:none;font-style:normal}
.bc-tip{position:absolute;z-index:6;left:0;top:0;pointer-events:none;padding:8px 11px;border-radius:10px;background:#13271f;color:#fff;box-shadow:0 10px 30px #0e231a38;font-size:11px;line-height:1.35;transform:translate(-50%,-100%);white-space:nowrap}
.bc-tip strong{display:block;font-size:13px;font-weight:650;letter-spacing:-.1px}
.bc-tip span{display:block;color:#bfd2c6}
.bc-tip[hidden]{display:none}
@media(max-width:430px){.trend-grid .bc-x b{display:none}.trend-grid .bc-x i{display:inline}.bc-plot,.bc-x{margin-left:38px}.bc-tick{left:-38px}.bc-tick em{width:32px}}
@media(prefers-reduced-motion:reduce){.bc-bar{transition:none}}
@media print{.bc-tip{display:none}}
/* R33: Sales overview */
.trend-bar{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;flex-wrap:wrap;margin:-4px 0 18px}
.trend-bar .hint{margin:0}
.year-switch{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:11px;background:#fff}
.year-switch a{min-height:32px;display:inline-flex;align-items:center;padding:0 13px;border-radius:8px;font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.year-switch a:hover{text-decoration:none;background:#eef3ec;color:var(--ink)}
.year-switch a.active{background:#e4eddc;color:#335d37;box-shadow:inset 0 0 0 1px #d6e2ca}
.chart-panel{padding-bottom:20px}
.chart-head{margin-bottom:12px}
.chart-head .eyebrow{margin-bottom:8px}
.chart-total{font-size:clamp(26px,2.4vw,34px);font-weight:600;letter-spacing:-1px;line-height:1.15;overflow-wrap:anywhere}
.chart-total .unit{font-size:11px;font-weight:600;letter-spacing:.5px;color:var(--muted);margin-right:7px;vertical-align:middle}
.chart-sub{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.delta{font-weight:600}
.delta.up{color:#2d6a3f}.delta.down{color:#98372e}
.trend-table tr.current td{background:#f7faf4}
.trend-table th.num,.trend-table td.num,.number-history th.num,.number-history td.num{text-align:right}
@media(max-width:759px){.trend-table .hide-sm{display:none}}
.trend-table td small{display:block}
.chart-links{display:flex;gap:18px;flex-wrap:wrap}
@media(max-width:760px){.trend-grid .chart-panel+.chart-panel{margin-top:14px}}
/* R33: a router's health */
.router-health .health-strip{margin:4px 0 24px}
.health-charts{gap:28px}
.health-charts h3{margin:0 0 2px;font-size:14px}
.health-charts .hint{margin:0 0 4px}
.days-head{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap;margin-bottom:12px}
.days-head h3{margin:0;font-size:14px}
.days-key{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.days-key i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.day-strip{position:relative;display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px}
.day{display:flex;flex-direction:column;align-items:center;gap:6px;padding:3px 0;border-radius:7px;outline:none;cursor:default;-webkit-tap-highlight-color:transparent}
.day i{display:block;width:100%;height:26px;border-radius:4px}
.day span{font-size:10.5px;line-height:1;color:#6b7d74;font-variant-numeric:tabular-nums}
.day.ok i,.days-key .ok{background:#3f8a5a}
.day.warn i,.days-key .warn{background:#d39a2c}
.day.none i,.days-key .none{background:#e2e8df}
.day.is-hot{background:#eef3ec}
.day:focus-visible{box-shadow:0 0 0 2px #2b7a4f}
.outages-title{margin:24px 0 4px;font-size:14px}
.health-numbers{margin-top:18px}
.health-numbers .grid-2{margin-top:12px}
.outage-list .dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;align-self:flex-start;margin-top:5px;background:#d39a2c}
.outage-list .dot.bad{background:#c0463a}
.routers-health td small{display:block;margin-top:3px}
a.list-row{color:inherit}a.list-row:hover{text-decoration:none;background:#f9fbf6}
/* R33: a customer's number */
.number-stats .stat .number{overflow-wrap:anywhere}
.number-history .muted-row td{color:var(--muted)}
.number-history td small{display:block}
.number-history td.nowrap{white-space:nowrap}
/* R38: the language sheets; what missed sales means */
.sheet .seg+.hint{margin-top:10px}
.router-health .missed-note{margin:14px 0 0}
/* R42: the owner's Server page. Tiles with the last hour under each figure; line charts (one 2px line a series: #2b7a4f,
   and #2f6db3 for a second one, both validated against the white panel and against each other for colour-blind readers;
   the highest in each period as an 11% wash of the same green); ranked bars; the same dots and badges as the rest of the
   console for state, always with words. Bars and lines are SVG, so nothing here needs an inline style. */
.sv-nav{margin-top:-10px}
.sv-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:#c9b45a}
.sv-dot.good{background:#4a8a5c}
.sv-dot.bad{background:#c0463a}
.sv-dot.none{background:#cfd8d0}
[data-server] .panel[id]{scroll-margin-top:136px}
.sv-status{padding:22px 26px}
.sv-status.is-ok{background:linear-gradient(100deg,#fff 55%,#f3f8ee)}
.sv-status.is-warn{background:linear-gradient(100deg,#fff 55%,#fdf6e3);border-color:#e6d6a4}
.sv-status.is-bad{background:linear-gradient(100deg,#fff 55%,#fdf0ec);border-color:#e3b9b0}
.sv-verdict{display:flex;align-items:center;gap:16px}
.sv-verdict .grow{flex:1;min-width:0}
.sv-verdict h2{margin:0;font-size:20px;letter-spacing:-.4px}
.sv-verdict p{margin:3px 0 0;font-size:12px;line-height:1.6}
.sv-pulse{position:relative;width:12px;height:12px;border-radius:50%;background:#3f8a5a;flex:none;margin:0 4px}
.sv-pulse::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid #3f8a5a;opacity:0;animation:sv-pulse 2.6s ease-out infinite}
@keyframes sv-pulse{0%{transform:scale(.45);opacity:.6}70%{opacity:0}100%{transform:scale(1.2);opacity:0}}
.sv-status.is-warn .sv-pulse{background:#d39a2c}
.sv-status.is-warn .sv-pulse::after{border-color:#d39a2c}
.sv-status.is-bad .sv-pulse{background:#c0463a}
.sv-status.is-bad .sv-pulse::after{border-color:#c0463a}
.sv-status.is-wait .sv-pulse{background:#9aa9a0}
.sv-status.is-wait .sv-pulse::after{border-color:#9aa9a0}
.sv-live{flex:none;font-size:11px;font-weight:600;line-height:1.3;color:#526844;white-space:nowrap;padding:6px 11px;border-radius:999px;background:#edf2e6}
.sv-live.is-live{background:#e4f2e9;color:#28704d}
.sv-live.is-live::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#3f8a5a;margin-right:7px;vertical-align:1px}
.sv-live.is-stale{background:#fff0ec;color:#98372e;white-space:normal}
.sv-need{margin-top:0}
.sv-need .grow{flex:1;min-width:0}
.sv-verdict+.sv-need{margin-top:16px;border-top:1px solid #edf1eb}
.sv-need h3{font-size:14px}
.sv-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
.sv-tile{display:flex;flex-direction:column;min-width:0;padding:19px 21px 0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.sv-tile.is-warn{border-color:#e0cd92}
.sv-tile.is-bad{border-color:#dfaea6}
.sv-tile-head{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:23px}
.sv-tile .label{font-size:11px;font-weight:600;letter-spacing:.2px;color:var(--muted)}
.sv-tile strong{display:block;font-size:clamp(24px,2.1vw,31px);font-weight:600;letter-spacing:-1px;line-height:1.2;margin:9px 0 5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.sv-tile small{display:block;font-size:11px;line-height:1.55;min-height:34px}
.sv-tile small span{font-variant-numeric:tabular-nums}
.sv-tile .spark{display:block;width:calc(100% + 42px);height:44px;margin:10px -21px 0}
.sv-tile-bar{margin-top:auto;padding:16px 0 20px}
.spark,.sbar{display:block;overflow:visible}
.sbar-track{fill:#e6ede4}
.sbar-fill{fill:#2b7a4f}
.sbar.warn .sbar-track{fill:#f6ecd2}
.sbar.warn .sbar-fill{fill:#c98f1c}
.sbar.bad .sbar-track{fill:#f6dfdb}
.sbar.bad .sbar-fill{fill:#c0463a}
.sv-history-head{align-items:flex-start}
.sv-history .year-switch{flex:none}
.lc-legend{white-space:nowrap}
.lc-legend i{display:inline-block;vertical-align:middle;margin:0 5px 0 9px}
.lc-legend .k-line{width:14px;height:2px;border-radius:1px;background:#2b7a4f}
.lc-legend .k-band{width:12px;height:9px;border-radius:2px;background:#2b7a4f;opacity:.2}
.lc-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 36px;transition:opacity .15s}
.sv-history.is-loading .lc-group{opacity:.5}
.lc{position:relative;margin:0;min-width:0}
.lc-wide{grid-column:1/-1}
.lc-head{margin-bottom:12px}
.lc-title{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:2px 14px}
.lc-title h3{margin:0;font-size:14px}
.lc-head .hint{margin:3px 0 0}
.lc-read{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px 14px;font-size:12px;color:var(--muted)}
.lc-key{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.lc-key i{width:12px;height:2px;border-radius:1px;background:#2b7a4f}
.lc-key.s2 i{background:#2f6db3}
.lc-key em{font-style:normal}
.lc-key b{font-size:13px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}
.lc-plot{position:relative;height:128px;margin-left:46px;border-bottom:1px solid #d5ddd2;outline:none;cursor:crosshair;touch-action:pan-y;-webkit-tap-highlight-color:transparent}
.lc-wide .lc-plot{height:164px}
.lc-plot:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #2b7a4f;border-radius:3px}
.lc-grid{position:absolute;inset:0;pointer-events:none}
.lc-tick{position:absolute;left:-46px;right:0;height:0;border-top:1px solid #e9eee7}
.lc-tick.t2{top:0}
.lc-tick.t1{top:50%}
.lc-tick.t0{top:100%;border-top:0}
.lc-tick em{position:absolute;left:0;top:0;width:40px;transform:translateY(-50%);text-align:right;font-style:normal;font-size:10px;line-height:1;color:#6b7d74;font-variant-numeric:tabular-nums;white-space:nowrap}
.lc-ax,.lc-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.lc-ax line{stroke:#eff3ed;stroke-width:1}
.lc-line{fill:none;stroke:#2b7a4f;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.lc-line.s2{stroke:#2f6db3}
.lc-band{fill:#2b7a4f;fill-opacity:.11;stroke:none}
.lc-x{display:block;margin-left:46px;width:calc(100% - 46px);overflow:visible}
.lc-x text{font-size:10.5px;fill:#6b7d74;font-variant-numeric:tabular-nums}
.lc-none{position:absolute;inset:0;display:grid;place-items:center;margin:0;font-size:12px;color:var(--muted)}
.lc-cross{position:absolute;top:0;bottom:0;width:1px;margin-left:-.5px;background:#7b9086;pointer-events:none}
.lc-dot{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#2b7a4f;box-shadow:0 0 0 2px #fff;pointer-events:none}
.lc-dot.s2{background:#2f6db3}
.lc-cross[hidden],.lc-dot[hidden]{display:none}
.lc-tip{top:-9px}
.lc-tip strong{display:flex;align-items:center;gap:7px}
.lc-tip .k{flex:none;width:10px;height:2px;border-radius:1px;background:#7fd0a0}
.lc-tip .k.s2{background:#8fbdf2}
.sv-links{margin-top:22px}
.sv-numbers{margin-top:26px;padding-top:22px;border-top:1px solid #edf1eb}
.sv-numbers h3{margin:0 0 4px;font-size:14px}
.sv-numbers .hint{margin:0 0 14px;max-width:86ch}
.sv-table td,.sv-table th{padding-top:10px;padding-bottom:10px;white-space:nowrap}
.sv-table td{font-variant-numeric:tabular-nums}
.sv-table td small{font-weight:500;color:var(--muted)}
.sv-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 36px}
.sv-cols>div{min-width:0}
.sv-cols h3{margin:0 0 3px;font-size:14px}
.sv-cols .hint{margin:0 0 14px;min-height:38px}
.sv-rank{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.sv-rank li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:baseline}
.sv-rank-name{font-size:12.5px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv-rank-val{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.sv-rank .sbar{grid-column:1/-1}
.sv-svc code{font-size:11px;padding:1px 6px;border:1px solid #e1e8dc;border-radius:5px;background:#f4f7f0;color:#47604e}
.sv-svc form,.sv-prot form{margin:0;flex:none}
.sv-svc .badge,.sv-prot .badge{flex:none}
.sv-prot{align-items:flex-start}
.sv-prot>.sv-dot,.sv-ev>.sv-dot{margin-top:5px;align-self:flex-start}
.sv-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;align-items:start}
.sv-pair .list-row{padding:13px 0}
.sv-pair .list-row:first-of-type{padding-top:0}
.sv-result{margin:7px 0 0;font-size:12px;font-weight:550;line-height:1.5}
.list-row .sv-result{font-size:12px}
.sv-result.ok{color:#2f6a3f}
.sv-result.bad{color:#98372e}
.list-row .sv-note,.sv-note{margin:7px 0 0;font-size:12px;line-height:1.55;color:#775916}
.sv-busy::before{content:"";width:9px;height:9px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:sv-spin .8s linear infinite}
@keyframes sv-spin{to{transform:rotate(360deg)}}
.sv-foot{margin:16px 0 0}
.sv-certs{margin-top:10px;max-width:520px}
.sv-diskbar{margin:0 0 4px}
.sv-diskbar-ends{display:flex;justify-content:space-between;gap:12px;margin-top:7px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.callout.sv-grow{margin:18px 0 0;background:#f1f7ea;border-color:#cfe0c4}
.sv-grow strong{font-size:14px}
.sv-grow p{font-size:12px;line-height:1.6}
.sv-grow.is-busy strong::before{content:"";display:inline-block;width:10px;height:10px;margin-right:9px;border-radius:50%;border:2px solid #2b7a4f;border-right-color:transparent;animation:sv-spin .8s linear infinite;vertical-align:-1px}
.sv-grow-sheet{background:#fff;margin-top:14px}
.sv-grow-sheet .actions{margin-top:4px}
.sv-steps{margin:0;padding-left:20px;display:grid;gap:11px;font-size:13px;line-height:1.6;color:var(--muted)}
.sv-steps strong{color:var(--ink);font-weight:600}
.sv-ev time{flex:none;font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.sv-earlier,.sv-about{margin-top:16px}
.sv-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;margin:0}
.sv-facts dt{font-size:11px;color:var(--muted)}
.sv-facts dd{margin:2px 0 0;font-size:13px;font-weight:550;overflow-wrap:anywhere}
@media(max-width:1180px){.sv-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.sv-cols{grid-template-columns:1fr;gap:26px}.sv-cols .hint{min-height:0}.sv-pair{grid-template-columns:1fr}}
@media(max-width:1000px){.lc-group{grid-template-columns:1fr;gap:28px}}
@media(max-width:760px){.sv-status{padding:18px}.sv-verdict{flex-wrap:wrap;gap:12px 14px}.sv-verdict .grow{flex:1 1 200px}.sv-live{order:3}.sv-tiles{gap:12px}.sv-tile{padding:14px 14px 0;border-radius:14px}.sv-tile strong{font-size:22px}.sv-tile small{min-height:50px}.sv-tile .spark{width:calc(100% + 28px);margin:8px -14px 0}.sv-tile-bar{padding:12px 0 16px}
.lc-plot{margin-left:40px;height:120px}.lc-wide .lc-plot{height:140px}.lc-x{margin-left:40px;width:calc(100% - 40px)}.lc-tick{left:-40px}.lc-tick em{width:34px}.lc-read{justify-content:flex-start}
.sv-svc,.sv-prot{flex-wrap:wrap}.sv-svc .grow,.sv-prot .grow{flex:1 1 180px}.sv-facts{grid-template-columns:1fr}.sv-table .hide-sm{display:none}.sv-history .year-switch a{padding:0 11px}}
@media(max-width:380px){.section-nav{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}}
@media(max-width:480px){.lc-x text:nth-of-type(even){display:none}.lc-legend{display:block;margin-top:4px}.lc-legend i:first-child{margin-left:0}}
@media(prefers-reduced-motion:reduce){.sv-pulse::after,.sv-busy::before,.sv-grow.is-busy strong::before{animation:none}.lc-group{transition:none}}
@media print{.sv-nav,.sv-live,.sv-range,.lc-cross,.lc-dot{display:none}}
/* ── R44 (2026-10-02): the levels have names and an emblem (the level's initial in a roundel toned by its place on the
   ladder, never colour alone: the name is always beside it); the owner records a payment by hand; invoices. ── */
.lv{--a:#eef4dc;--b:#d3e3ae;--t:#3a5a2c;display:inline-grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:50%;font-size:12px;font-weight:700;letter-spacing:0;line-height:1;color:var(--t);background:radial-gradient(circle at 32% 26%,#ffffffd9 0,#ffffff00 48%),linear-gradient(145deg,var(--a),var(--b));box-shadow:inset 0 0 0 1px #ffffff8c,inset 0 -2px 3px #00000012,0 0 0 1px #0000001a,0 1px 2px #00000014}
.lv.big{width:46px;height:46px;font-size:18px}
.lv.inline{width:20px;height:20px;font-size:10px;vertical-align:-5px;margin-right:3px}
/* the entry level is a ring, not a metal: it is the one a business starts on */
.lv-0{color:#3f6a3a;background:#fbfdf7;box-shadow:inset 0 0 0 1.5px #a5c38b,0 1px 2px #0000000d}
.lv-1{--a:#edc8a2;--b:#b8763f;--t:#4a2810}
.lv-2{--a:#f2f4f6;--b:#aeb7c1;--t:#353f4a}
.lv-3{--a:#f9e9ad;--b:#d0a02f;--t:#553e06}
.lv-4{--a:#fafcfe;--b:#b9c9dc;--t:#28384b;box-shadow:inset 0 0 0 1px #ffffffb3,inset 0 -2px 3px #00000010,0 0 0 1px #5b789a66,0 0 0 3px #e3ebf5,0 1px 2px #00000014}
.lv-5{--a:#e2f5f7;--b:#8fcbd6;--t:#17454f}
.lv-6{--a:#646b76;--b:#22252b;--t:#f3f5f7}
.lv-7{--a:#c9ecd6;--b:#3f9a6b;--t:#0e3a24}
.lv-cell{display:flex;align-items:center;gap:10px;min-width:0}
.lv-cell>span:last-child{display:block;font-weight:600;min-width:0}
.lv-cell small{display:block;font-weight:400;color:var(--muted)}
.lv-tally{display:flex;flex-wrap:wrap;gap:8px 14px;margin:11px 0 10px;min-height:42px;align-items:center}
.lv-count{display:inline-flex;align-items:center;gap:6px}
.lv-count b{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.bill-table td{vertical-align:middle}
.bill-table .row-actions{white-space:nowrap;text-align:right}
.bill-table .row-actions .btn{margin-right:16px}
.bill-table tr.is-current td{background:#f3f7ec}
.amt-owes{color:#98372e;font-weight:600}
small.amt-owes,.lv-cell small.amt-owes{display:block;font-weight:500;color:#98372e}
/* a tidy grid of switches with their one-line explanations */
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 28px;margin:6px 0 12px}
.check-grid .check{margin:8px 0}
@media(max-width:760px){.check-grid{grid-template-columns:1fr}}
.pay-record .panel-head{align-items:flex-start}
.pay-owes{margin:0 0 18px;font-size:13px;color:var(--muted)}
.pay-owes strong{color:#98372e}
.pay-record-form .form-grid{margin-bottom:4px}
.chips{border:0;padding:0;margin:6px 0 18px;min-width:0;display:flex;flex-wrap:wrap;gap:8px}
.chips legend{float:left;width:100%;padding:0;margin:0 0 9px;font-size:12px;font-weight:600;color:var(--ink)}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:40px;padding:8px 15px;border:1px solid #cfd8cc;border-radius:999px;font-size:13px;background:#fff;transition:background .12s,border-color .12s,color .12s}
.chip:hover span{border-color:#9fb39c}
.chip input:checked+span{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.chip input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.pay-after{margin:0 0 14px;font-size:13px;font-weight:600;color:#2f6a3f}
.pay-after.left{color:#8a650e}
.other-ways{margin-top:18px;padding-top:15px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.other-ways strong{color:var(--ink);font-size:13px}
.other-ways p{margin:4px 0 0;line-height:1.65}
.level-head{display:flex;align-items:center;gap:14px;margin-bottom:8px}
.level-head .grow,.ladder-step .grow{flex:1 1 auto;min-width:0}
.level-meter .panel-head{flex-wrap:nowrap}
.level-meter .grow{flex:1 1 0;min-width:0}
/* this month's passes on the ladder: one segment per level, a 3px surface gap between them, the names underneath */
.lv-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;margin:18px 0 14px}
.lv-track.bare{margin:14px 0 0}
.lv-seg{min-width:0}
.lv-seg-bar{display:block;height:8px;background:#e6ede4;overflow:hidden;border-radius:2px}
.lv-seg:first-child .lv-seg-bar{border-radius:999px 2px 2px 999px}
.lv-seg:last-child .lv-seg-bar{border-radius:2px 999px 999px 2px}
.lv-seg-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2f6a3f,#4a8a5c);border-radius:0 4px 4px 0;transition:width .4s ease}
.lv-seg-label{display:flex;align-items:center;gap:5px;margin-top:9px;min-width:0;font-size:11.5px;color:var(--muted)}
.lv-seg-label .lv.inline{margin:0;vertical-align:0}
.lv-seg-label b{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lv-seg.current .lv-seg-label b{font-weight:700;color:var(--ink)}
@media(max-width:620px){.lv-seg-label b{display:none}.lv-seg-label{justify-content:center}}
.level-head h2{margin:0}
.level-head .eyebrow{margin:0 0 3px}
.level-head p{margin:2px 0 0;color:var(--muted);font-size:13px}
.level-price{font-size:17px;white-space:nowrap;text-align:right}
.level-price small{display:block;font-size:11px;font-weight:500;color:var(--muted)}
.level-next{margin:2px 0 10px;font-size:13px}
.level-meter .panel-head{align-items:center;justify-content:flex-start;gap:14px}
.level-meter .panel-head>span:last-child{margin-left:auto}
.ladder{margin:8px 0 4px}
.ladder-step{display:flex;align-items:center;gap:12px;padding:12px 10px;margin:0 -10px;border-radius:12px}
.ladder-step+.ladder-step{box-shadow:0 -1px 0 #edf1eb}
.ladder-step.current,.ladder-step.current+.ladder-step{box-shadow:none}
.ladder-step.current{background:#f1f6ea}
.ladder-step h3{margin:0;font-size:14px}
.ladder-step p{margin:2px 0 0;font-size:12px;color:var(--muted)}
.ladder-step strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.ladder-step .you{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#2f6a3f;background:#e3efd9;padding:2px 7px;border-radius:999px;vertical-align:1px}
.end-col{display:flex;flex-direction:column;align-items:flex-end;gap:5px;white-space:nowrap}
.ledger-row{align-items:flex-start}
.undo{margin-top:6px;font-size:12px}
.undo>summary{cursor:pointer;color:var(--green);font-weight:600;list-style:none;display:inline-block}
.undo>summary::-webkit-details-marker{display:none}
.undo form{margin-top:8px;display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.undo .field{margin:0;flex:1 1 170px}
.bill-panel .detail-list{margin:14px 0 6px}
aside .bill-panel .form-grid{grid-template-columns:1fr;gap:0}
.bill-panel .sheet h3{margin:16px 0 4px;font-size:13px}
.bill-panel .sheet h3:first-of-type{margin-top:4px}
/* on a phone each business is a card: who and what they owe, their level and status, then the two actions. Nothing to scroll sideways for. */
@media(max-width:760px){.bill-table thead{display:none}.bill-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:15px 16px;border-bottom:1px solid #edf1eb}
.bill-table tbody tr:last-child{border-bottom:0}.bill-table td{display:block;padding:0;border:0}
.bill-table td:nth-child(1){grid-column:1;grid-row:1}.bill-table td:nth-child(3){grid-column:2;grid-row:1;text-align:right}
.bill-table td:nth-child(2){grid-column:1;grid-row:2}.bill-table td:nth-child(4){grid-column:2;grid-row:2;text-align:right;align-self:center}
.bill-table td:nth-child(5),.bill-table .nil{display:none}.bill-table td.row-actions{grid-column:1/-1;grid-row:3;white-space:normal;text-align:left;display:flex;align-items:center;gap:18px;padding-top:2px}
.bill-table .row-actions .btn{margin:0}.bill-table .row-actions a{min-height:36px;display:inline-flex;align-items:center}
.level-head{flex-wrap:wrap}.level-price{text-align:left;margin-left:60px}}
.hint code{overflow-wrap:anywhere}
.inv-table td small.only-sm{display:none}
@media(max-width:760px){.inv-table .hide-sm{display:none}.inv-table td small.only-sm{display:block}.inv-table td,.inv-table th{padding-left:14px;padding-right:10px}}
/* the level names are edited in this table: it fits a phone */
@media(max-width:760px){.levels-edit{table-layout:fixed}.levels-edit th{white-space:normal;padding:8px 6px;line-height:1.35}.levels-edit th:first-child{width:40%}.levels-edit td{padding:5px 4px}.levels-edit .input{padding:6px 7px;min-width:0}}
@media print{.lv{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* R46: a control that reads as a sentence: "After [1] GB, slow the pass to [1] Mbps" */
.field-sentence>div{display:flex;flex-wrap:wrap;align-items:center;gap:9px 10px;font-weight:450;line-height:1.4}.field-sentence>div input{width:92px;flex:none}
@media(max-width:760px){.plan-table td small.plan-extra{display:block}.plan-table td small.plan-extra .sep{display:none}}
/* R55: a plan's hours: two times in the plan form's sentence (wide enough for "11:00 PM" where a browser writes it so), and
   under a plan's time in the list, on a line of their own that never breaks in the middle */
.field-sentence>div input[type=time]{width:148px}
.plan-table td small.plan-hours{display:block;white-space:nowrap}.plan-table td small.plan-hours .sep{display:none}
/* R55: the plans list no longer lets the whole page scroll sideways on a laptop: the table's hidden "Actions" heading stays
   inside the table's own scroll box */
.plans-panel .table-wrap{position:relative}
/* R47: yesterday in one line under the cards; the alerts panel */
.morning-line{margin:-10px 0 24px;font-size:13px;color:var(--muted);line-height:1.6}.morning-line::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lime);margin:0 9px 1px 2px;vertical-align:middle;box-shadow:0 0 0 3px #d8ee9240}
.alerts-panel p{margin-bottom:14px}.alerts-on{display:flex;align-items:center;gap:10px;font-weight:550}.alerts-on .badge{font-size:11px}.alerts-kinds{margin:2px 0 8px}.alerts-kinds .check{margin:8px 0}
@media(max-width:760px){.morning-line{margin:-6px 0 20px;font-size:12px}}
/* R48: the poster for the wall, voucher cards, the monthly card */
.poster-tools-row{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:flex-end;justify-content:space-between}.poster-tools-row+.poster-tools-row{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.poster-tools .hint{margin:0}.poster-tools .grow{flex:1;min-width:220px}
.poster-pick{display:flex;gap:10px;align-items:flex-end;margin:0}.poster-pick .field,.poster-wifi-form .field{margin:0}.poster-wifi-form{display:flex;gap:10px;align-items:flex-start;flex:1;min-width:280px;margin:0}.poster-wifi-form .field{flex:1}.poster-wifi-form .btn{margin-top:24px}.poster-foot-form{margin:0}
.sheet-wrap{display:flex;justify-content:center;padding:0 0 30px}.sheet.poster{width:min(100%,720px);background:#fff;border-radius:18px;box-shadow:var(--shadow);padding:48px 52px;position:relative;overflow:hidden;color:var(--ink)}
.poster-head{position:relative;padding:26px 30px 30px;margin:-48px -52px 30px;min-height:170px;display:flex;flex-direction:column;justify-content:flex-end}.poster-band{position:absolute;inset:0;width:100%;height:100%}
.poster-business{position:relative;font-size:clamp(34px,6vw,56px);letter-spacing:-1.5px;line-height:1.05;margin:0;font-weight:800;color:#fff;overflow-wrap:anywhere;text-shadow:0 1px 0 #0000001f}.poster-tag{position:relative;margin:6px 0 0;font-size:15px;letter-spacing:3px;text-transform:uppercase;color:#fff;opacity:.85;font-weight:700}
.poster-wifi{display:flex;gap:28px;align-items:center;padding:4px 0 26px;border-bottom:1px solid var(--line)}.poster-qr{width:150px;flex:0 0 150px}.poster-qr svg,.vc-qr svg{width:100%;height:auto;display:block}.poster-qr svg{border:1px solid var(--line);border-radius:12px;padding:6px;background:#fff}
.poster-wifi-words{min-width:0}.poster-join{margin:0;font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:700}.poster-ssid{margin:4px 0 6px;font-size:clamp(26px,4.5vw,40px);font-weight:800;letter-spacing:-.8px;overflow-wrap:anywhere;color:var(--ink);line-height:1.1}.poster-scan{margin:0;color:var(--muted);font-size:15px}
.poster h2{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:0 0 14px;font-weight:700}.poster-plans{padding:24px 0 18px;border-bottom:1px solid var(--line)}.poster-plans table{width:100%;border-collapse:collapse}.poster-plans td{padding:9px 0;border-top:1px dashed #e4ebe6;font-size:19px;vertical-align:baseline}.poster-plans tr:first-child td{border-top:0}
.pp-name{font-weight:650}.pp-name small{display:block;font-size:13px;color:var(--muted);font-weight:500}.pp-price{text-align:right;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:22px;padding-left:16px}
.poster-how{padding:22px 0 8px}.poster-how ol{margin:0;padding:0 0 0 24px;font-size:17px;line-height:1.5;color:var(--ink)}.poster-how li{margin:0 0 8px}.poster-how li::marker{font-weight:800;color:var(--green)}
.poster-foot{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-top:26px;padding-top:16px;border-top:1px solid var(--line);font-size:14px}.poster-help{font-weight:700;font-size:17px}.poster-brand{color:var(--muted);font-size:12px;letter-spacing:.3px;margin-left:auto}
.vcards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;width:min(100%,760px)}.vcard{position:relative;background:#fff;border:1px dashed #b9c6bf;border-radius:12px;padding:14px 16px 12px;min-height:150px;display:flex;flex-direction:column;break-inside:avoid;page-break-inside:avoid;color:var(--ink)}
.vcard header{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.vc-business{font-weight:800;letter-spacing:-.3px;font-size:14px;overflow-wrap:anywhere}.vc-price{font-weight:800;font-size:15px;white-space:nowrap}.vc-plan{margin:2px 0 8px;font-size:13px;color:var(--muted)}.vc-plan small{font-size:12px}
.vc-body{display:flex;justify-content:space-between;align-items:center;gap:10px}.vc-code{display:block;font-size:30px;font-weight:800;letter-spacing:2px;font-variant-numeric:tabular-nums;line-height:1}.vc-code-word{display:block;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:5px;font-weight:700}.vc-qr{width:62px;flex:0 0 62px}
.vc-steps{margin:10px 0 0;font-size:11px;line-height:1.4;color:var(--muted);padding-right:60px}.vc-brand{position:absolute;right:16px;bottom:10px;font-size:9px;color:#9aa8a3;letter-spacing:.3px}
.month-card .panel-head{align-items:flex-start}.month-nav{display:flex;gap:4px}.month-nav .btn{min-height:34px;padding:4px 12px;font-size:20px;line-height:1}.month-nav .is-off{opacity:.3;cursor:default}
.mc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px 28px;margin:4px 0 18px}.mc-num{font-size:34px;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1.1}.mc-num .unit{font-size:14px;font-weight:600;color:var(--muted);margin-right:6px;letter-spacing:0;vertical-align:8px}.mc-num.small{font-size:22px;letter-spacing:-.4px}.mc-lbl{font-size:13px;color:var(--muted);margin-top:4px}.mc-level{display:flex;align-items:center;gap:14px}
.mc-facts{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px;color:var(--muted)}.mc-facts strong{color:var(--ink);font-weight:650}.mc-actions{margin-top:14px}.mc-note{flex-basis:100%;color:var(--muted)}
@media(max-width:760px){.sheet.poster{padding:28px 20px}.poster-head{margin:-28px -20px 22px;padding:22px 20px;min-height:140px}.poster-wifi{flex-direction:column;align-items:flex-start;gap:16px}.vcards{grid-template-columns:1fr}.poster-wifi-form{flex-wrap:wrap}.poster-wifi-form .btn{margin-top:0}.poster-tools-row .actions{width:100%}.poster-tools-row .actions .btn{flex:1}.mc-num{font-size:28px}}
@media print{.bottom-bar,.footer-note,.skip-link,.mobile-mask,.poster-tools{display:none!important}.main{margin:0;padding:0;max-width:none}body{background:#fff}
.sheet-wrap{padding:0;display:block}.sheet.poster{width:100%;max-width:none;box-shadow:none;border-radius:0;padding:0 0 4mm}.poster-head{margin:0 0 7mm;padding:7mm 9mm 8mm;min-height:40mm;border-radius:0}.poster-business{font-size:40pt;letter-spacing:-1pt}.poster-tag{font-size:10pt}
.poster-wifi{flex-direction:row;align-items:center;gap:9mm;padding:0 0 6mm}.poster-qr{width:46mm;flex:0 0 46mm}.poster-qr svg{padding:2mm;border-radius:3mm}.poster-join{font-size:9pt}.poster-ssid{font-size:26pt;margin:1mm 0 2mm}.poster-scan{font-size:11pt}
.poster h2{font-size:9pt;margin:0 0 3mm}.poster-plans{padding:5mm 0 4mm}.poster-plans td{font-size:14pt;padding:2.2mm 0}.pp-name small{font-size:9.5pt}.pp-price{font-size:15pt}.poster-how{padding:5mm 0 2mm}.poster-how ol{font-size:12pt;line-height:1.4}.poster-how li{margin:0 0 1.5mm}
.poster-foot{margin-top:5mm;padding-top:4mm;font-size:10pt}.poster-help{font-size:13pt}.poster-brand{font-size:8.5pt}
.vcards{grid-template-columns:repeat(2,1fr);gap:6mm 8mm;width:100%}.vcard{min-height:60mm;border-color:#888;border-radius:3mm;padding:5mm 6mm;break-inside:avoid;page-break-inside:avoid}.vc-code{font-size:26pt}.vc-qr{width:22mm;flex-basis:22mm}.month-card .mc-actions{display:none}
.poster-band,.poster-business,.poster-tag,.vcard,.qr{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
