:root{--bg:#f4f7fb;--card:#fff;--ink:#172033;--muted:#697386;--line:#e4e9f2;--brand:#0a5c36;--brand2:#0d7344;--warn:#ad6b00;--danger:#b42318;--ok:#067647;--info:#175cd3}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh;align-items:stretch}.side{background:#10261d;color:#fff;padding:24px 18px;position:relative;min-height:100vh;height:auto;align-self:stretch;overflow:visible}.brand{font-weight:800;font-size:18px;line-height:1.25;margin-bottom:28px}.brand small{display:block;font-weight:500;color:#b9d0c5;margin-top:5px}.nav a{display:block;color:#dfece6;padding:11px 12px;border-radius:9px;margin:5px 0}.nav a.active,.nav a:hover{background:#1d4937;color:#fff;text-decoration:none}.main{padding:28px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar h1{margin:0;font-size:27px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 2px 8px rgba(16,24,40,.03)}.metric .value{font-size:29px;font-weight:800;margin-top:8px}.metric .label{color:var(--muted);font-size:13px}.panel{margin-top:18px}.panel h2{margin:0 0 12px;font-size:18px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}table{border-collapse:collapse;width:100%;min-width:900px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}th{background:#f8fafc;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#475467}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}.verified{background:#ecfdf3;color:var(--ok)}.warning{background:#fffaeb;color:var(--warn)}.info{background:#eff8ff;color:var(--info)}.danger{background:#fef3f2;color:var(--danger)}.btn{display:inline-block;border:0;border-radius:9px;padding:10px 14px;background:var(--brand);color:#fff;font-weight:700;cursor:pointer}.btn:hover{background:var(--brand2);text-decoration:none}.btn.secondary{background:#eef2f6;color:#344054}.form-card{max-width:460px;margin:8vh auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px}.form-card h1{margin-top:0}label{display:block;font-weight:700;font-size:13px;margin:14px 0 6px}input,select{width:100%;padding:11px 12px;border:1px solid #cfd6e2;border-radius:9px;background:#fff;font:inherit}.alert{padding:12px 14px;border-radius:9px;margin:12px 0}.alert.danger{background:#fef3f2;color:#912018}.alert.ok{background:#ecfdf3;color:#05603a}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.footer{margin-top:28px;color:var(--muted);font-size:12px}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.check{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.check strong{display:block}.dot{width:10px;height:10px;border-radius:50%;background:var(--ok);margin-top:5px;flex:none}.dot.warn{background:var(--warn)}
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)}.shell{grid-template-columns:1fr}.side{height:auto;position:relative}.nav{display:flex;gap:5px;flex-wrap:wrap}.nav a{display:inline-block}.two{grid-template-columns:1fr}}
@media(max-width:600px){.grid{grid-template-columns:1fr}.main{padding:18px}.topbar{align-items:flex-start;gap:12px;flex-direction:column}.form-card{margin:3vh 14px}}
/* Stage 2 - business onboarding and company secretary */
textarea{width:100%;padding:11px 12px;border:1px solid #cfd6e2;border-radius:9px;background:#fff;font:inherit;resize:vertical}input[type=checkbox],input[type=radio]{width:auto;padding:0}.btn.small{padding:7px 10px;font-size:12px}.nav-heading{margin:20px 12px 6px;color:#86a597;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-head h2{margin:0}.form-wide{max-width:980px}.form-wide h2{margin-top:0}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:18px}.help{display:block;color:var(--muted);font-size:12px;margin-top:5px}.crumbs{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px;margin:-8px 0 16px}.wizard{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:18px}.wizard-step{display:flex;align-items:center;gap:8px;padding:11px 10px;border:1px solid var(--line);background:#fff;border-radius:10px;color:#475467;font-size:12px;font-weight:700}.wizard-step span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#eef2f6;flex:none}.wizard-step.active{border-color:#70b68f;background:#effaf4;color:#064e32}.wizard-step.active span,.wizard-step.done span{background:var(--brand);color:#fff}.wizard-step:hover{text-decoration:none;border-color:#95c9aa}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.check-grid.compact{margin-top:18px}.check-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);padding:12px;border-radius:10px;margin:0;font-weight:400}.check-option input{margin-top:4px}.check-option strong,.check-option small{display:block}.check-option small{color:var(--muted);margin-top:3px}.inline-check{display:flex;align-items:center;gap:8px;font-weight:600;margin:14px 0}.registration-box{border:1px solid var(--line);border-radius:12px;padding:15px;margin:12px 0;background:#fbfcfe}.registration-box h3{margin:0}.cards-list{display:grid;gap:14px}.business-card h2{margin:0}.business-card p{margin:4px 0 0}.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.mini-grid>div{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:11px}.mini-grid span,.mini-grid strong{display:block}.mini-grid span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.mini-grid strong{margin-top:5px}.business-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);color:var(--ink)}.business-row:hover{text-decoration:none}.business-row strong,.business-row span{display:block}.business-row div span{color:var(--muted);font-size:12px;margin-top:3px}.empty{text-align:center;padding:34px}.profile-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.profile-head h2{font-size:26px;margin:3px 0}.profile-head p{margin:0;color:var(--muted)}.eyebrow{font-size:11px;color:var(--brand);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.details{display:grid;grid-template-columns:170px 1fr;gap:10px 14px;margin:0}.details dt{color:var(--muted)}.details dd{margin:0;font-weight:650}.reg-cards{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.mini-card{padding:13px}.mini-card span,.mini-card strong,.mini-card small{display:block}.mini-card span{font-size:11px;color:var(--muted);font-weight:800}.mini-card strong{font-size:14px;margin:5px 0}.mini-card small{color:var(--muted)}details{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}details summary{cursor:pointer;font-weight:750;color:var(--brand);margin-bottom:10px}.record-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line)}.record-row strong,.record-row span,.record-row small{display:block}.record-row span{font-size:12px;color:var(--muted);margin-top:3px}.nested{margin:0 0 8px;padding:7px 0 11px 16px;border-top:0;border-bottom:1px dashed var(--line)}.nested summary{font-size:12px}.due-hint{color:var(--warn);margin-top:4px}.notice{background:#eff8ff;border:1px solid #b2ddff;padding:12px 14px;border-radius:10px;color:#1849a9}.sensitive{border-left:4px solid #b42318}.review-list{display:grid;gap:0;margin:10px 0 18px}.review-list>div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}.obligations{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.obligations>div{border:1px solid var(--line);border-radius:9px;padding:11px}.obligations span,.obligations strong,.obligations small{display:block}.obligations strong{margin:4px 0}.obligations small{color:var(--muted)}
@media(max-width:1200px){.reg-cards{grid-template-columns:repeat(4,1fr)}.wizard{grid-template-columns:repeat(3,1fr)}.mini-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.three,.check-grid,.obligations{grid-template-columns:1fr}.reg-cards{grid-template-columns:repeat(2,1fr)}.profile-head,.section-head{align-items:flex-start;flex-direction:column}.wizard{grid-template-columns:repeat(2,1fr)}.details{grid-template-columns:1fr}.details dt{margin-top:8px}}
.btn:disabled{opacity:.5;cursor:not-allowed}
/* Stage 3 - Compliance Dashboard + Calendar */
.badge.action{background:#fff4e5;color:#b54708}.badge.large{font-size:14px;padding:7px 11px}.danger-text{color:#b42318}.action-text{color:#b54708}.warning-text{color:#ad6b00}.ok-text{color:#067647}.metric-link{color:inherit}.metric-link:hover{text-decoration:none;border-color:#b8c6d8;box-shadow:0 6px 18px rgba(16,24,40,.07)}.metric small{display:block;color:var(--muted);margin-top:4px}.status-card{border-top:5px solid #98a2b3}.status-card.red{border-top-color:#d92d20}.status-card.orange{border-top-color:#f79009}.status-card.yellow{border-top-color:#fdb022}.status-card.green{border-top-color:#12b76a}.filter-card{margin-bottom:18px}.compliance-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink)}.compliance-row:hover{text-decoration:none;background:#fbfcfd}.due-box{width:58px;min-width:58px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:7px}.due-box strong,.due-box small{display:block}.due-box small{color:var(--muted);font-size:11px}.grow{flex:1;min-width:0}.grow strong,.grow span{display:block}.grow span{color:var(--muted);font-size:12px;margin-top:3px}.business-status{text-align:right}.business-status b,.business-status small{display:block}.business-status small{color:var(--muted);font-size:11px;margin-top:3px}.progress{height:8px;background:#eef2f6;border-radius:999px;overflow:hidden;min-width:110px;margin-bottom:4px}.progress span{display:block;height:100%;background:var(--brand);border-radius:999px}.row-overdue{background:#fff8f7}.row-due_today,.row-action_required{background:#fffaf3}.calendar-toolbar{margin-bottom:18px}.calendar-actions{align-self:end;margin-top:0}.calendar-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 10px}.calendar-title h2{margin:0}.legend{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 4px 0 10px}.legend.green{background:#12b76a}.legend.yellow{background:#fdb022}.legend.orange{background:#f79009}.legend.red{background:#d92d20}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);background:#fff}.cal-head{padding:10px;text-align:center;font-size:12px;font-weight:800;color:#475467;background:#f8fafc;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cal-day{min-height:135px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.cal-day.blank{background:#f8fafc}.cal-number{font-size:12px;font-weight:800;color:#667085;margin-bottom:7px}.cal-event{display:block;border-left:4px solid #98a2b3;background:#f8fafc;color:#344054;border-radius:6px;padding:6px 7px;margin:5px 0;font-size:11px;line-height:1.25}.cal-event:hover{text-decoration:none}.cal-event strong,.cal-event span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event span{font-size:10px;margin-top:2px;color:#667085}.cal-event.verified{border-left-color:#12b76a;background:#ecfdf3}.cal-event.warning{border-left-color:#fdb022;background:#fffaeb}.cal-event.action{border-left-color:#f79009;background:#fff4e5}.cal-event.danger{border-left-color:#d92d20;background:#fef3f2}.danger-btn{background:#b42318}.danger-btn:hover{background:#912018}hr{border:0;border-top:1px solid var(--line);margin:22px 0}
@media(max-width:900px){.calendar-grid{grid-template-columns:1fr}.cal-head{display:none}.cal-day{min-height:auto}.cal-day.blank{display:none}.cal-day:has(.cal-event){display:block}.cal-day:not(:has(.cal-event)){min-height:52px}.calendar-title{align-items:flex-start;flex-direction:column}}
/* Stage 4 - double-entry accounting */
.accounting-business-picker{margin-bottom:18px;max-width:560px}.journal-lines{min-width:980px}.journal-lines input,.journal-lines select{min-width:130px}.journal-lines td:first-child select{min-width:310px}.journal-lines tfoot th{background:#f8fafc}.accounting-lock{border-left:4px solid #b42318}.money-positive{font-variant-numeric:tabular-nums}.money-negative{font-variant-numeric:tabular-nums;color:#b42318}.accounting-source-key{word-break:break-all}.btn.danger-btn{background:#b42318}.btn.danger-btn:hover{background:#912018}

/* Stage 5 Sales + POS */
.four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.sales-summary{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.sales-summary>div{min-width:130px}.sales-summary strong,.sales-summary span{display:block}.sales-summary span{font-size:12px;color:var(--muted)}#sales-lines input,#sales-lines select{min-width:110px}.copy-mark{font-weight:900;letter-spacing:.18em;color:#667085}
@media(max-width:1000px){.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.four{grid-template-columns:1fr}}
