/* AHTA Business Advisory Desk 360 - Ashish H T & Associates
   Palette: firm blue (structure, primary action), firm green (completion / FINAL only),
   cool paper, slate ink; amber and red reserved for risk. One typeface, tabular figures. */
@font-face{font-family:"Libre Franklin";src:url(../fonts/libre-franklin-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(../fonts/libre-franklin-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(../fonts/libre-franklin-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(../fonts/libre-franklin-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --blue:#095584; --blue-2:#0b6aa3; --blue-soft:#e3eef6; --green:#7cb642; --green-ink:#3f6f17; --green-soft:#ecf5e2;
  --paper:#f6f8f9; --surface:#ffffff; --ink:#1e2a36; --ink-2:#4a5a6a; --muted:#6b7b8b; --rule:#d9dee3; --rule-2:#eceff2;
  --amber:#b45309; --amber-soft:#fdf1e2; --red:#b42318; --red-soft:#fdeceb; --focus:#2b8ad8;
  --side:#0a3d5f; --side-ink:#d8e6f0; --side-dim:#8fb0c6;
  --r-s:4px; --r-m:8px; --shadow:0 1px 2px rgba(15,35,55,.06),0 1px 1px rgba(15,35,55,.04);
  --font:"Libre Franklin",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --blue:#5aa9df; --blue-2:#7cbbe6; --blue-soft:#14324a; --green:#8fca55; --green-ink:#a9d97b; --green-soft:#1b3015;
  --paper:#0e1a24; --surface:#15232f; --ink:#e3eaf1; --ink-2:#b6c3cf; --muted:#8a9aab; --rule:#2a3a48; --rule-2:#1f2e3b;
  --amber:#f0a654; --amber-soft:#3a2810; --red:#f08a80; --red-soft:#3c1916; --side:#08141d; --side-ink:#d8e6f0; --side-dim:#7f9bb0;
  --shadow:none}}
:root[data-theme="dark"]{
  --blue:#5aa9df; --blue-2:#7cbbe6; --blue-soft:#14324a; --green:#8fca55; --green-ink:#a9d97b; --green-soft:#1b3015;
  --paper:#0e1a24; --surface:#15232f; --ink:#e3eaf1; --ink-2:#b6c3cf; --muted:#8a9aab; --rule:#2a3a48; --rule-2:#1f2e3b;
  --amber:#f0a654; --amber-soft:#3a2810; --red:#f08a80; --red-soft:#3c1916; --side:#08141d; --side-ink:#d8e6f0; --side-dim:#7f9bb0;
  --shadow:none}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--font);font-size:15px;line-height:1.5;color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"lnum" 1}
a{color:var(--blue);text-underline-offset:2px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1,h2,h3,h4{margin:0;line-height:1.25;font-weight:600;color:var(--ink)}
h1{font-size:1.6rem;letter-spacing:-.01em} h2{font-size:1.2rem} h3{font-size:1.02rem} h4{font-size:.95rem}
p{margin:.4rem 0}
.num,td.num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .small{font-size:.85rem} .tiny{font-size:.78rem}
.hidden{display:none!important}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.side{background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:10px;align-items:center;padding:16px 16px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.brand img{width:40px;height:31px;background:#fff;border-radius:3px;padding:2px}
.brand b{display:block;font-size:.92rem;letter-spacing:.01em}
.brand span{display:block;font-size:.72rem;color:var(--side-dim)}
.nav{padding:10px 8px;overflow:auto;flex:1}
.nav a{display:flex;align-items:center;gap:10px;color:var(--side-ink);text-decoration:none;padding:8px 10px;border-radius:6px;font-size:.92rem}
.nav a:hover{background:rgba(255,255,255,.06)}
.nav a.on{background:rgba(124,182,66,.16);color:#fff;box-shadow:inset 3px 0 0 var(--green)}
.nav .grp{font-size:.74rem;color:var(--side-dim);padding:14px 10px 4px}
.nav svg{width:18px;height:18px;flex:none;opacity:.9}
.side-foot{padding:12px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:.78rem;color:var(--side-dim)}
.side-foot button{color:var(--side-ink);background:none;border:1px solid rgba(255,255,255,.2)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--rule);
  display:flex;gap:10px;align-items:center;padding:8px 20px;flex-wrap:wrap}
.ctx{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;flex:1}
.ctx label{display:flex;flex-direction:column;font-size:.72rem;color:var(--muted);gap:2px}
.ctx select,.ctx input{min-width:130px}
.ctx .grow{min-width:220px}
.top-actions{display:flex;gap:8px;align-items:center}
.content{padding:22px 24px 80px;max-width:1440px;width:100%}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.page-head p{color:var(--ink-2);margin:.2rem 0 0}
.crumbs{font-size:.82rem;color:var(--muted);margin-bottom:6px}
.crumbs a{color:var(--muted)}
.demo-flag{background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber);border-radius:var(--r-s);padding:1px 6px;font-size:.72rem;font-weight:600}

/* ---------- controls ---------- */
button,.btn{font:inherit;font-size:.9rem;border-radius:6px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);
  padding:7px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none;white-space:nowrap}
button:hover,.btn:hover{border-color:var(--blue)}
button.primary,.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
button.primary:hover{background:var(--blue-2)}
button.final{background:var(--green-ink);border-color:var(--green-ink);color:#fff}
button.danger{color:var(--red);border-color:var(--red)}
button.ghost{border-color:transparent;background:none}
button:disabled{opacity:.5;cursor:not-allowed}
button.sm{padding:4px 9px;font-size:.82rem}
input,select,textarea{font:inherit;font-size:.92rem;color:var(--ink);background:var(--surface);border:1px solid var(--rule);
  border-radius:6px;padding:7px 9px;max-width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px var(--blue-soft)}
textarea{min-height:70px;width:100%;resize:vertical}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.field>span{font-size:.82rem;color:var(--ink-2)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--rule);border-radius:16px;padding:4px 11px;font-size:.85rem;cursor:pointer;background:var(--surface)}
.chip.on{background:var(--blue);border-color:var(--blue);color:#fff}

/* ---------- panels ---------- */
.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-m);box-shadow:var(--shadow);margin-bottom:18px}
.panel>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--rule-2);flex-wrap:wrap}
.panel>header p{margin:0}
.panel .body{padding:14px 16px}
.cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px;align-items:start}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}

/* figures row - not card soup: one bordered band split by rules */
.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));background:var(--surface);border:1px solid var(--rule);
  border-radius:var(--r-m);margin-bottom:18px;overflow:hidden}
.fig{padding:12px 16px;border-right:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2);text-decoration:none;color:inherit;display:block}
.fig .v{font-size:1.55rem;font-weight:600;line-height:1.2}
.fig .l{font-size:.82rem;color:var(--ink-2)}
.fig .d{font-size:.78rem;margin-top:2px}
.fig.alert .v{color:var(--red)} .fig.warn .v{color:var(--amber)} .fig.good .v{color:var(--green-ink)}
a.fig:hover{background:var(--blue-soft)}

/* ---------- status badges ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:600;padding:2px 8px;border-radius:10px;border:1px solid transparent;white-space:nowrap}
.b-final{background:var(--green-soft);color:var(--green-ink);border-color:color-mix(in srgb,var(--green-ink) 30%,transparent)}
.b-reviewed{background:var(--blue-soft);color:var(--blue)}
.b-draft{background:var(--surface);color:var(--blue);border-color:var(--blue)}
.b-pending{background:var(--amber-soft);color:var(--amber)}
.b-hold,.b-failed,.b-critical{background:var(--red-soft);color:var(--red)}
.b-high{background:var(--red-soft);color:var(--red)}
.b-important{background:var(--blue-soft);color:var(--blue)}
.b-watch{background:var(--rule-2);color:var(--ink-2)}
.b-positive{background:var(--green-soft);color:var(--green-ink)}
.b-none{background:var(--rule-2);color:var(--muted)}
.b-medium{background:var(--amber-soft);color:var(--amber)}
.b-low{background:var(--rule-2);color:var(--ink-2)}

/* ---------- signature: the period ledger strip ---------- */
.ledger{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
.ledger.q{grid-template-columns:repeat(4,minmax(0,1fr))} .ledger.y{grid-template-columns:minmax(0,1fr)}
.cell{border-radius:5px;padding:8px 8px 9px;min-height:66px;cursor:pointer;border:1px solid var(--rule);background:var(--surface);
  display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;color:var(--ink);position:relative}
.cell .m{font-weight:600;font-size:.86rem}
.cell .s{font-size:.7rem;color:var(--ink-2)}
.cell.FINAL{background:var(--green-ink);border-color:var(--green-ink);color:#fff} .cell.FINAL .s{color:#e8f3dd}
.cell.REVIEWED{background:var(--blue);border-color:var(--blue);color:#fff} .cell.REVIEWED .s{color:#d6e8f5}
.cell.DRAFT{border:2px solid var(--blue)}
.cell.DATA_PENDING{background:repeating-linear-gradient(135deg,var(--amber-soft) 0 6px,var(--surface) 6px 12px);border-color:var(--amber)}
.cell.HOLD{background:var(--red-soft);border-color:var(--red)}
.cell.NOT_STARTED{border-style:dashed;color:var(--muted)}
.cell.sel{outline:3px solid var(--focus);outline-offset:1px}
.cell .v{position:absolute;top:6px;right:7px;font-size:.66rem;opacity:.85}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.76rem;color:var(--ink-2);margin-top:8px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px;border:1px solid var(--rule)}

/* ---------- tables ---------- */
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{text-align:left;font-weight:600;color:var(--ink-2);font-size:.8rem;padding:8px 10px;border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0}
td{padding:8px 10px;border-bottom:1px solid var(--rule-2);vertical-align:top}
tr.click{cursor:pointer} tr.click:hover td{background:var(--blue-soft)}
table.grid-edit td{padding:2px} table.grid-edit input{border-radius:3px;padding:4px 6px;width:100%;min-width:90px;font-size:.85rem}
.tbl-tools{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}

/* ---------- questionnaire ---------- */
.qlayout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;align-items:start}
.qnav{position:sticky;top:76px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-m);padding:8px}
.qnav a{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:5px;color:var(--ink);text-decoration:none;font-size:.86rem}
.qnav a:hover,.qnav a.on{background:var(--blue-soft)}
.qnav .cnt{font-size:.74rem;color:var(--muted)}
.qnav .cnt.done{color:var(--green-ink);font-weight:600}
.progress{height:6px;background:var(--rule-2);border-radius:3px;overflow:hidden}
.progress>i{display:block;height:100%;background:var(--green)}
.qitem{border-bottom:1px solid var(--rule-2);padding:14px 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,380px);gap:16px}
.qitem:last-child{border-bottom:none}
.qitem .q{font-weight:500}
.qitem .term{font-size:.8rem;color:var(--muted);margin-left:6px;font-weight:400}
.qitem .why{font-size:.83rem;color:var(--ink-2);margin-top:3px}
.qitem details{margin-top:6px;font-size:.82rem}
.qitem summary{cursor:pointer;color:var(--blue)}
.hint{display:grid;grid-template-columns:110px 1fr;gap:4px 10px;margin-top:6px;padding:8px 10px;background:var(--paper);border-radius:5px}
.hint b{font-weight:600;color:var(--ink-2)}
.ans{display:flex;flex-direction:column;gap:6px}
.ans .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:6px}
.ans .cols label{font-size:.72rem;color:var(--muted);display:flex;flex-direction:column;gap:2px}
.ans input.amt{text-align:right}
.src{font-size:.74rem;color:var(--muted)}
.src.imp{color:var(--blue)} .src.conf{color:var(--green-ink)}
.qitem.na{opacity:.55}
.qitem.dirty{background:linear-gradient(90deg,var(--amber-soft),transparent 40%)}
.savebar{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--rule);padding:10px 16px;display:flex;gap:10px;align-items:center;z-index:5}

/* ---------- exceptions ---------- */
.exc{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--rule-2)}
.exc:last-child{border-bottom:none}
.exc .what{font-weight:600}
.exc dl{display:grid;grid-template-columns:120px 1fr;gap:3px 10px;margin:6px 0 0;font-size:.85rem}
.exc dt{color:var(--muted)} .exc dd{margin:0}
.headline{font-size:1.05rem;line-height:1.55;padding:14px 16px;border-left:4px solid var(--blue);background:var(--surface);border-radius:0 var(--r-m) var(--r-m) 0;margin-bottom:18px}

/* ---------- misc ---------- */
.empty{padding:28px;text-align:center;color:var(--ink-2)}
.empty b{display:block;color:var(--ink);margin-bottom:4px}
.toast-wrap{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:100}
.toast{background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:6px;max-width:420px;font-size:.9rem;box-shadow:0 4px 18px rgba(0,0,0,.2);white-space:pre-line}
.toast.err{background:var(--red);color:#fff} .toast.ok{background:var(--green-ink);color:#fff}
.modal-bg{position:fixed;inset:0;background:rgba(10,25,40,.45);display:flex;align-items:flex-start;justify-content:center;z-index:90;padding:6vh 12px;overflow:auto}
.modal{background:var(--surface);border-radius:10px;max-width:720px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.modal>header{padding:14px 18px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center}
.modal .body{padding:16px 18px;max-height:70vh;overflow:auto}
.modal>footer{padding:12px 18px;border-top:1px solid var(--rule);display:flex;justify-content:flex-end;gap:8px}
.drop{border:2px dashed var(--rule);border-radius:var(--r-m);padding:22px;text-align:center;color:var(--ink-2);background:var(--paper)}
.drop.over{border-color:var(--blue);background:var(--blue-soft)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--rule);margin-bottom:16px;overflow-x:auto}
.tabs a{padding:9px 14px;text-decoration:none;color:var(--ink-2);border-bottom:2px solid transparent;white-space:nowrap;font-size:.92rem}
.tabs a.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}
.kv{display:grid;grid-template-columns:170px 1fr;gap:6px 14px;font-size:.9rem}
.kv dt{color:var(--muted)} .kv dd{margin:0}
.health{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0}
.health>div{padding:9px 14px;border-bottom:1px solid var(--rule-2)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.dot.OK{background:var(--green)} .dot.WARN{background:var(--amber)} .dot.FAIL{background:var(--red)}
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login .art{background:var(--side);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}
.login .art h1{color:#fff;font-size:2.1rem;max-width:12ch;line-height:1.15}
.login .art p{color:var(--side-ink);max-width:46ch}
.login .art .firm{font-size:.9rem;color:var(--side-dim)}
.login form{align-self:center;justify-self:center;width:min(360px,90vw)}
.chart-box{position:relative;height:260px}
.bottomnav{display:none}
.mobile-menu{display:none}
.ctx-toggle{display:none}
.qlayout>*{min-width:0}
.list-plain{list-style:none;padding:0;margin:0}
.list-plain li{padding:8px 0;border-bottom:1px solid var(--rule-2);overflow-wrap:anywhere;min-width:0}
.list-plain li>span{min-width:0}
td.ref,.nowrap{white-space:nowrap}

/* ---------- responsive ---------- */
@media (max-width:1100px){.cols,.cols2{grid-template-columns:minmax(0,1fr)}.qlayout{grid-template-columns:1fr}.qnav{position:static;display:flex;overflow-x:auto;gap:4px}
  .qnav a{flex:none}}
@media (max-width:820px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;left:-260px;width:250px;z-index:60;transition:left .2s}
  .side.open{left:0}
  .mobile-menu{display:inline-flex}
  .content{padding:16px 16px 90px}
  .topbar{padding:8px 16px}
  .ctx label{flex:1 1 140px} .ctx select,.ctx input{min-width:0;width:100%}
  .ctx:not(.open)>label:not(:first-of-type){display:none}
  .topbar{flex-wrap:nowrap;align-items:flex-start;gap:8px}
  .savebar{bottom:calc(58px + env(safe-area-inset-bottom))}
  .ctx-toggle{display:inline-flex;align-self:flex-start;margin-top:18px}
  .mobile-menu{align-self:flex-start;margin-top:16px;min-height:40px;padding:0 6px}
  .mobile-menu svg{width:22px;height:22px}
  div.num{white-space:normal;text-align:left}
  .health{grid-template-columns:minmax(0,1fr) minmax(0,40%)}
  .qitem{grid-template-columns:minmax(0,1fr)}
  .grid2,.grid3{grid-template-columns:minmax(0,1fr)}
  .grid2>*,.grid3>*{min-width:0}
  select{max-width:100%}
  .ledger{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cell .v{position:static;margin-left:4px}
  .login{grid-template-columns:1fr} .login .art{padding:28px 20px;min-height:auto}
  .bottomnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;background:var(--surface);
    border-top:1px solid var(--rule);z-index:50;padding-bottom:env(safe-area-inset-bottom)}
  .bottomnav a{display:flex;flex-direction:column;align-items:center;font-size:.68rem;padding:7px 0;color:var(--ink-2);text-decoration:none}
  .bottomnav a.on{color:var(--blue)} .bottomnav svg{width:20px;height:20px}
  .exc{grid-template-columns:1fr} .exc dl{grid-template-columns:100px 1fr}
  .kv{grid-template-columns:1fr} .kv dt{margin-top:6px}
  h1{font-size:1.35rem}
  table{font-size:.84rem}
}
@media print{.side,.topbar,.bottomnav,.savebar,button{display:none!important}.shell{display:block}.content{padding:0}}
