:root{
  --navy:#0b1f3a;--blue:#2563eb;--blue-d:#1d4ed8;--blue2:#eaf1ff;--sky:#0ea5e9;
  --green:#16a34a;--green-d:#15803d;--green2:#e8f7ee;--teal:#0d9488;--teal2:#e6f6f4;
  --purple:#7c3aed;--purple2:#f1ebff;--amber:#b76a00;--amber2:#fff4e0;--red:#c83b3b;--red2:#fdecec;
  --ink:#172033;--muted:#5f6b80;--line:#e3e9f3;--bg:#f3f6fb;
  --shadow:0 1px 2px rgba(16,32,64,.04),0 4px 16px rgba(16,32,64,.06);
}
body{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px}
a{color:var(--blue)}
a:hover{color:var(--blue-d)}

/* Top bar */
.al-top{background:#fff;height:60px;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(11,31,58,.06)}
/* Brand: logo + "Sign Ready" in Montserrat ExtraBold, navy #002352 / blue #0085FF */
.al-brand{font-family:Montserrat,Inter,sans-serif;font-weight:800;color:#002352;text-decoration:none;font-size:20px;letter-spacing:-.3px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.al-brand:hover{color:#002352}
.al-brand .logo-img{width:32px;height:32px;display:block}
.al-brand span{color:#0085FF}
.al-brand .wm{color:#002352}
.al-top .usage-pill{background:#f3f6fb;border:1px solid var(--line);color:#33415c}
.al-top .dropdown-toggle{color:var(--ink)!important}
.al-top .btn-subscribe{background:#22c55e;border:0;color:#fff;font-weight:600}
.al-top .btn-subscribe:hover{background:#16a34a;color:#fff}
.al-top-public{background:#fff;border-bottom:1px solid var(--line)}

/* Sidebar */
.al-side{width:252px;flex:0 0 252px;background:linear-gradient(180deg,#ffffff 0%,#f5f9ff 100%);border-right:1px solid var(--line);min-height:calc(100vh - 60px);padding:20px 14px}
.al-side a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;color:#33415c;text-decoration:none;font-size:14px;line-height:1.3;margin-bottom:3px;border-left:3px solid transparent}
.al-side a i{font-size:16px;width:18px;flex-shrink:0;text-align:center;color:#7a879c}
.al-side a:hover{background:#eef4ff;color:var(--blue)}
.al-side a:hover i{color:var(--blue)}
.al-side a.active{background:var(--blue2);color:var(--blue-d);font-weight:600;border-left-color:var(--blue)}
.al-side a.active i{color:var(--blue)}
.al-side a.new-audit{background:linear-gradient(90deg,#16a34a,#22c55e);color:#fff;font-weight:600;margin:4px 0 14px;padding:11px 14px;box-shadow:0 3px 10px rgba(22,163,74,.25)}
.al-side a.new-audit i{color:#fff}
.al-side a.new-audit:hover{filter:brightness(1.05);color:#fff}
/* Section headings (Firm, Help): clear gap above, a hairline to separate them */
.al-side .sec{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:#8a96ab;margin:22px 12px 8px;padding-top:14px;border-top:1px solid #e7ecf3;font-weight:700}
/* Stage headings: a comfortable row each, with the stage % at the right */
.al-side .sec-toggle{display:flex;align-items:center;gap:8px;width:100%;margin:2px 0;padding:10px 12px;background:none;border:0;border-radius:9px;text-align:left;cursor:pointer;color:#475569;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;line-height:1.35}
.al-side .sec-toggle:hover{background:#eef4ff;color:var(--blue)}
.al-side .sec-toggle .sec-chev{font-size:11px;transition:transform .15s;flex-shrink:0}
.al-side .sec-toggle[aria-expanded="true"]{color:#1e293b}
.al-side .sec-toggle[aria-expanded="true"] .sec-chev{transform:rotate(90deg)}
.al-side .sec-toggle .sec-pct{font-size:11.5px;letter-spacing:0;flex-shrink:0}
/* Pages of an open stage: indented under it, with a thin guide line */
.al-side .sec-items{margin:2px 0 10px 17px;padding-left:8px;border-left:2px solid #e3e8f0}
.al-side .sec-items a{padding:8px 10px;font-size:13.5px}
.al-side .sec.client{color:var(--teal);letter-spacing:.3px;text-transform:none;font-size:12.5px;background:var(--teal2);padding:8px 10px;border-radius:8px;margin:6px 0 12px;border-top:0}

/* Main */
.al-main{flex:1;min-width:0;padding:28px 32px 60px}
.al-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow)}
.al-card h2,.al-card h3{font-size:17px;font-weight:700;margin-bottom:12px;color:#12203a}
.al-card.accent-blue{border-top:4px solid var(--blue)}
.al-card.accent-green{border-top:4px solid var(--green)}
.page-title{font-size:24px;font-weight:800;letter-spacing:-.4px;margin-bottom:4px;color:#0f1f3d}
.page-sub{color:var(--muted);margin-bottom:20px}

/* Workings: paperclip per area, files grouped by area */
.wk-clip{margin-left:6px;color:#94a3b8;text-decoration:none;font-size:13px;white-space:nowrap}
.wk-clip:hover{color:var(--blue)}
.wk-clip.has{color:var(--blue);font-weight:600}
.wk-area{padding-top:6px}
.wk-area.wk-sel{background:#f5f8ff;border-radius:10px;padding:8px 10px}

/* First finalisation: start with a small, familiar client */
.first-tip{display:flex;gap:12px;align-items:flex-start;background:#fffbeb;border:1px solid #fcd34d;border-left:5px solid #f59e0b;border-radius:12px;padding:14px 16px;margin-bottom:18px;color:#78350f;font-size:14.5px;line-height:1.5}
.first-tip>i{font-size:22px;color:#f59e0b;line-height:1}
.first-tip b{color:#92400e}

/* Due dates: chip on the finalisation page and the home list */
.due-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:13.5px;text-decoration:none;border:1px solid}
.due-chip.due-ok{background:#f1f5fb;border-color:#dbe3ef;color:#334155}
.due-chip.due-soon{background:#fff7e6;border-color:#f5c56b;color:#92400e}
.due-chip.due-over{background:#fef2f2;border-color:#f3a5a5;color:#991b1b}
.due-ok-text{color:#475569}.due-soon-text{color:#b45309;font-weight:600}.due-over-text{color:#b91c1c;font-weight:600}

/* Ledger mapping: one row per Tally group, its ledgers indented below */
.map-table tr.map-group td{background:#f5f8fd;border-top:2px solid var(--line)}
.map-table tr.map-child td:first-child{padding-left:26px}
details.al-card>summary{cursor:pointer}

/* A confirmed note folded to one line */
.scope-done summary{cursor:pointer;list-style:none}
.scope-done summary::-webkit-details-marker{display:none}
.scope-done[open] summary .text-primary{display:none}

/* Buttons */
.btn-primary{background:var(--blue);border-color:var(--blue)}
.btn-primary:hover{background:var(--blue-d);border-color:var(--blue-d)}
.btn-success{background:var(--green);border-color:var(--green)}
.btn-success:hover{background:var(--green-d);border-color:var(--green-d)}
.btn-outline-primary{color:var(--blue);border-color:#b9cdfa}
.btn-outline-primary:hover{background:var(--blue);border-color:var(--blue)}

/* Tool tiles */
.tool-tile{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;text-decoration:none;color:var(--ink);height:100%;transition:transform .15s,border-color .15s,box-shadow .15s;box-shadow:var(--shadow);position:relative}
.tool-tile:hover{transform:translateY(-2px);border-color:#b9cdfa;box-shadow:0 10px 24px rgba(37,99,235,.12);color:var(--ink)}
.tool-tile .ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:20px;margin-bottom:12px}
.tool-tile .t{font-weight:700;font-size:15px;margin-bottom:4px}
.tool-tile .d{color:var(--muted);font-size:13px}
.tool-tile .go{position:absolute;right:16px;top:18px;color:#b3bfd3;transition:color .15s,transform .15s}
.tool-tile:hover .go{color:var(--blue);transform:translateX(2px)}
.tint-blue .ic{background:var(--blue2);color:var(--blue)}
.tint-green .ic{background:var(--green2);color:var(--green)}
.tint-teal .ic{background:var(--teal2);color:var(--teal)}
.tint-purple .ic{background:var(--purple2);color:var(--purple)}
.tint-amber .ic{background:var(--amber2);color:var(--amber)}
.tint-sky .ic{background:#e0f2fe;color:#0284c7}
.tool-tile.compact{padding:14px 16px;display:flex;gap:12px;align-items:center}
.tool-tile.compact .ic{margin:0;flex:0 0 38px;width:38px;height:38px;font-size:18px}
.tool-tile.compact .go{top:50%;transform:translateY(-50%)}
.tool-tile.compact:hover .go{transform:translate(2px,-50%)}

/* Badges */
.badge-high{background:var(--red2);color:var(--red)}
.badge-review{background:var(--amber2);color:var(--amber)}
.badge-info{background:var(--blue2);color:var(--blue)}
.badge-pass{background:var(--green2);color:var(--green)}
.badge-default{background:#f3e8ff;color:#7c3aed}
.badge-error{background:var(--red2);color:var(--red)}
.badge-soft{font-weight:600;padding:4px 9px;border-radius:20px;font-size:12px;white-space:nowrap}

/* Stats */
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);border-left:5px solid var(--blue);height:100%}
.stat .v{font-size:28px;font-weight:800;line-height:1.1;color:#12203a}
.stat .l{color:var(--muted);font-size:13px;margin-top:2px}
.stat.s-blue{border-left-color:var(--blue);background:linear-gradient(90deg,#f3f7ff,#fff 60%)}
.stat.s-green{border-left-color:var(--green);background:linear-gradient(90deg,#f0fbf4,#fff 60%)}
.stat.s-green .v{color:var(--green)}
.stat.s-amber{border-left-color:#f59e0b;background:linear-gradient(90deg,#fff8eb,#fff 60%)}
.stat.s-amber .v{color:var(--amber)}
.stat.s-red{border-left-color:var(--red);background:linear-gradient(90deg,#fff3f3,#fff 60%)}
.stat.s-red .v{color:var(--red)}
.stat.s-teal{border-left-color:var(--teal);background:linear-gradient(90deg,#effaf8,#fff 60%)}
.stat.s-teal .v{color:var(--teal)}

/* Tables */
table.al{width:100%;font-size:14px}
table.al th{font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:#3b5b99;font-weight:700;border-bottom:1px solid #d6e2f7;padding:9px 10px;white-space:nowrap;background:#eef4ff}
table.al tr:first-child th:first-child{border-top-left-radius:8px}
table.al tr:first-child th:last-child{border-top-right-radius:8px}
table.al td{border-bottom:1px solid var(--line);padding:9px 10px;vertical-align:top}
table.al tr:hover td{background:#f8fbff}
table.al td.num,table.al th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.up{color:var(--green);font-weight:600}.down{color:var(--red);font-weight:600}
.flag-row td{background:#fffaf0}
.muted{color:var(--muted)}
.small-note{font-size:12.5px;color:var(--muted)}
.table-wrap{overflow-x:auto}

/* Misc */
.alert-info{background:#eaf3ff;border-color:#cfe0ff;color:#1e3a8a}
.alert-success{background:var(--green2);border-color:#c6ebd4;color:#14532d}
.alert-warning{background:#fff7e6;border-color:#fde2a8;color:#7a4b00}
.alert{border-radius:12px}
.nav-tabs .nav-link.active{color:var(--blue);font-weight:600;border-bottom-color:#fff}
.nav-tabs .nav-link{color:var(--muted)}
.usage-pill{font-size:13px;border-radius:20px;padding:4px 12px;display:inline-flex;align-items:center;gap:6px}
.form-control:focus,.form-select:focus{border-color:#93b4f8;box-shadow:0 0 0 .2rem rgba(37,99,235,.12)}
.al-auth{max-width:440px;margin:50px auto;padding:0 16px}
.al-auth .al-card{border-top:4px solid var(--blue)}
.dropdown-menu{border-radius:12px;border-color:var(--line);box-shadow:var(--shadow)}
@media (max-width: 900px){.al-side{display:none}.al-main{padding:18px 14px 50px}}
@media print{.al-top,.al-side,.no-print{display:none!important}.al-main{padding:0}}

/* Placeholders are suggestions, not entries: light grey and italic */
.form-control::placeholder,textarea::placeholder,input::placeholder{color:#b3bccb;font-style:italic;opacity:1}

/* Links to a section (e.g. fs.php#stock) land below the fixed top bar */
.al-card[id]{scroll-margin-top:84px}
/* Log-in / sign-up: form on the left, reasons to finish on the right */
.al-authwrap{display:grid;grid-template-columns:1fr 1fr;max-width:1080px;margin:24px auto;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 18px 50px rgba(20,35,70,.10);border:1px solid #e5eaf1}
.al-authwrap .al-auth{margin:0 auto;padding:40px 34px;max-width:470px;width:100%;align-self:center}
.al-authwrap .al-auth .al-card{border-top:0;box-shadow:none;padding:0;border:0}
.al-authside{background:radial-gradient(circle at 85% 8%,rgba(37,99,235,.55) 0,rgba(37,99,235,0) 45%),linear-gradient(160deg,#0b1f3a 0%,#10306a 60%,#1d4ed8 130%);color:#dbe4f0;padding:44px 40px;display:flex;flex-direction:column;gap:16px}
.al-authside h2{color:#fff;font-size:30px;line-height:1.15;font-weight:800;margin:0}
.al-authside .lead-s{color:#c7d3e3;font-size:15.5px;margin:0 0 4px}
.al-authside .aitem{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;font-size:14px;color:#b9c7da}
.al-authside .aitem b{color:#fff;font-size:15.5px;display:block;margin-bottom:2px}
.al-authside .aicon{width:42px;height:42px;border-radius:11px;background:rgba(37,99,235,.35);border:1px solid rgba(143,179,255,.35);display:grid;place-items:center;font-size:19px;color:#fff}
.al-authside .astats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;border-top:1px solid rgba(255,255,255,.15);padding-top:16px;margin-top:4px;text-align:center}.al-authside .astats>div{padding:0 4px}.al-authside .astats>div+div{border-left:1px solid rgba(255,255,255,.12)}
.al-authside .astats b{display:block;color:#fff;font-size:24px;font-weight:800}
.al-authside .astats span{display:block;font-size:12.5px;line-height:1.35;color:#aab8cc;margin-top:2px}
.al-authside blockquote{margin:4px 0 0;background:rgba(255,255,255,.08);border-left:3px solid var(--blue);border-radius:12px;padding:14px 16px;font-style:italic;color:#e6edf7;font-size:14.5px}
.al-authside cite{display:block;margin-top:8px;font-style:normal;font-size:12.5px;color:#aab8cc}
@media(max-width:900px){.al-authwrap{grid-template-columns:1fr;margin:10px auto}.al-authside{padding:30px 24px}.al-authside h2{font-size:24px}}
.al-authlogo{display:flex;align-items:center;gap:12px;text-decoration:none;margin:0 0 26px}
.al-authlogo img{width:52px;height:52px;display:block}
.al-authlogo .wm{display:block;font-family:Montserrat,Inter,sans-serif;font-weight:800;font-size:28px;letter-spacing:-.4px;line-height:1.05;color:#002352}
.al-authlogo .wm span{color:#0085FF}
.al-authlogo small{display:block;font-size:12.5px;color:var(--muted);margin-top:3px}
.al-authwrap .al-auth .text-center.mb-4{text-align:left!important}
/* What applies: questions sit under the result they decide */
.app-facts{margin:6px 0 2px 158px;padding:10px 12px;background:#f7f9fc;border:1px solid var(--line);border-radius:10px}
.qchip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;padding:3px 9px;border-radius:999px;text-decoration:none;border:1px solid}
.qchip.ok{background:#e8f7ee;border-color:#b7e2c7;color:#14532d}.qchip.todo{background:#fff4e0;border-color:#f3c77a;color:#7c4a03}
.qchip .muted{font-weight:400}
.form-select.q-done{border-color:#7fc89a;background-color:#f6fcf8}
@media(max-width:768px){.app-facts{margin-left:0}}
.app-dec{border-top:1px dashed #e5c98f;padding-top:8px;margin-top:4px}.app-dec .form-select{max-width:360px}.app-dec input{max-width:520px}
.src-link{text-decoration:none;border-bottom:1px dotted currentColor;white-space:nowrap}.src-link:hover{border-bottom-style:solid}.src-link i{font-size:.75em;margin-left:2px;opacity:.75}
.help-btn{display:inline-flex;align-items:center;gap:4px;text-decoration:none;font-size:14px;font-weight:600;color:var(--blue);border:1px solid #c9d8fb;background:var(--blue2);border-radius:999px;padding:4px 12px}
.help-btn:hover{background:#dbe7ff}
.help-tip{color:var(--blue);text-decoration:none;font-size:.95em}.help-tip:hover{color:var(--blue-d)}
.help-panel{width:440px!important;max-width:100vw}.help-panel .offcanvas-title{font-weight:700;color:var(--navy)}
.help-sec{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:10px;background:#fff}
.help-sec summary{cursor:pointer;font-weight:700;color:var(--navy)}.help-sec p,.help-sec li{font-size:14.5px;line-height:1.55}
