:root{
  --navy:#0b1f3a;--blue:#0f7b6c;--blue-d:#0b5f54;--blue2:#e2f2ef;--sky:#3cc2ad;
  --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:#f3f6f9;
  --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:#0b1f3a;text-decoration:none;font-size:20px;letter-spacing:-.3px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.al-brand:hover{color:#0b1f3a}
.al-brand .logo-img{width:32px;height:32px;display:block}
.al-brand span{color:#0f9b88}
.al-brand .wm{color:#0b1f3a}
.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%,#f2f8f7 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:#eaf5f3;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:#eaf5f3;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:#0b1f3a}
.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}
/* The client a finalisation page is for: pinned under the top bar */
.client-bar{position:sticky;top:60px;z-index:15;background:#f0f6ff;border:1px solid #cfe0ff;border-left:5px solid #2563eb;border-radius:12px;padding:10px 16px;margin:-8px 0 18px;box-shadow:0 4px 12px rgba(11,31,58,.06)}
.client-bar .bi-building{color:#2563eb;font-size:20px}
.client-bar .cb-name{font-size:20px;font-weight:800;color:#0b1f3a;letter-spacing:-.2px}
.client-bar .cb-name:hover{color:#2563eb}
.client-bar .cb-meta{font-size:14px;color:#4b5b78;font-weight:600}
.client-bar .cb-pct{font-size:13px;font-weight:700;background:#fff;border:1px solid #dbe5f5;border-radius:999px;padding:2px 10px}
.client-bar .cb-switch{font-size:13px;font-weight:600;color:#2563eb}
@media (max-width: 900px){.client-bar{top:60px;margin-top:-4px}.client-bar .cb-name{font-size:17px}}
@media print{.client-bar{display:none!important}}

/* Feedback panel (lib/Feedback.php) and its tab on the right edge */
.fb-tab{position:fixed;right:0;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;z-index:1030;border:0;border-radius:0 8px 8px 0;background:var(--navy);color:#fff;font-size:13px;font-weight:600;padding:12px 7px;box-shadow:0 2px 10px rgba(11,31,58,.25);cursor:pointer}
.fb-tab:hover{background:var(--blue)}.fb-tab i{transform:rotate(90deg);display:inline-block;margin-bottom:6px}
.fb-panel{width:460px!important;max-width:100vw;box-shadow:-8px 0 30px rgba(11,31,58,.18)}.fb-panel .offcanvas-title{font-weight:700;color:var(--navy)}
.fb-q{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:#fff}
.fb-label{font-weight:700;color:var(--navy);margin-bottom:10px;font-size:15.5px}
.fb-opts{display:flex;flex-wrap:wrap;gap:8px}
.fb-opts button{flex:1 1 0;min-width:96px;border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font-weight:600;color:var(--ink)}
.fb-opts button:hover{border-color:var(--blue)}.fb-opts button.on{border-color:var(--blue);background:var(--blue2);color:var(--blue-d)}
.fb-help{border:1px solid var(--blue);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:var(--blue2)}
.fb-video{display:block;position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000}
.fb-video img,.fb-video iframe{width:100%;height:100%;object-fit:cover;border:0;display:block}
.fb-play{position:absolute;inset:0;margin:auto;width:64px;height:44px;border-radius:12px;background:#f00;color:#fff;display:grid;place-items:center;font-size:28px}
.fb-thanks{color:#15803d;font-weight:600;padding:6px 2px}
.fb-status{font-weight:600;padding:6px 2px;color:var(--muted)}
.fb-tab{right:env(safe-area-inset-right,0px)}
@media (max-width:576px){.fb-tab{top:auto;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:rotate(180deg);font-size:12px;padding:10px 6px}.fb-panel{width:100vw!important;padding-right:env(safe-area-inset-right,0px)}}
@media print{.fb-tab,.fb-panel{display:none!important}}

/* First-time tips (first_tip / assets/tips.js): hidden until the script decides to show them */
.sr-tip[hidden]{display:none!important}

/* Forms: a question and its answer read as one pair — the label sits close to its field, with clear space before the
   next question (Bootstrap's default spaces both the same) */
.form-label{margin-bottom:.2rem;margin-top:.95rem;font-weight:500;color:#334155}
.form-label.mb-0{margin-top:.95rem}
.form-text,.form-control + .small:not(label),.form-select + .small:not(label),.form-control + .small-note{margin-top:.15rem}
/* A group heading inside a form (e.g. "This year's audit", "Share capital", "Signing partner") starts a new block */
.al-card .small.fw-semibold.mt-2{margin-top:1.25rem!important}

/* Table headings stay in view while a long table scrolls: pinned below the top bar and the client bar
   (--sr-sticky, set by assets/loader.js). Only the heading row (first row / thead), not headings further down. */
table.al tr:first-child th,.table > thead > tr > th{position:sticky;top:var(--sr-sticky,60px);z-index:5}
.table > thead > tr > th{background:#fff;box-shadow:inset 0 -1px 0 #dee2e6}
table.sr-inbox tr:first-child th,table.sr-inbox > thead > tr > th{top:0}
/* Inside a sideways-scrolling box (.table-wrap) the box itself is the sticky frame, so the page offset put the heading
   row in the middle of the table: there the heading stays in place */
.table-wrap table.al tr:first-child th,.table-wrap .table > thead > tr > th{position:static}
@media print{table.al tr:first-child th,.table > thead > tr > th{position:static}}
/* Floating copy of a form's main button when the real one has scrolled out of view (assets/loader.js) */
.sr-actbar{position:fixed;right:28px;bottom:20px;z-index:1030;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;padding:8px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(11,31,58,.18);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .15s,transform .15s;max-width:calc(100vw - 56px)}
.sr-actbar.show{opacity:1;transform:none;pointer-events:auto}
@media (max-width:767px){.sr-actbar{left:12px;right:12px;bottom:12px;max-width:none}.sr-actbar .btn{flex:1}}
@media print{.sr-actbar{display:none!important}}

/* CFOPartner additions */
.al-brand small{display:block;font-family:Inter,sans-serif;font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0f9b88;margin-top:-2px}
.cp-mark{width:32px;height:32px;border-radius:8px;background:#0b1f3a;color:#3cc2ad;display:grid;place-items:center;font:800 14px Montserrat,Inter,sans-serif;letter-spacing:-.5px}
.num{font-variant-numeric:tabular-nums}
.stat-tile{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.stat-tile .l{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}
.stat-tile .v{font-size:24px;font-weight:800;color:#0f1f3d;font-variant-numeric:tabular-nums}
.flag-row{border-left:4px solid var(--amber);background:#fbfcfe;border-radius:8px;padding:10px 14px;margin-bottom:10px}
.flag-row.high{border-left-color:var(--red)}
.flag-row.cleared{border-left-color:var(--green);opacity:.75}
.score-g{color:var(--green)}.score-a{color:var(--amber)}.score-r{color:var(--red)}
.auth-wrap{max-width:440px;margin:48px auto;padding:0 16px}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow)}
.paper-prev{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(11,31,58,.12);max-width:820px}
@media (max-width:767px){.al-side{display:none}.al-main{padding:18px 14px 50px}}
.al-authside{background:radial-gradient(circle at 85% 8%,rgba(60,194,173,.45) 0,rgba(60,194,173,0) 45%),linear-gradient(160deg,#0b1f3a 0%,#0f3550 60%,#0f7b6c 130%)}
.al-authside .aicon{background:rgba(60,194,173,.25);border-color:rgba(120,220,200,.35)}
.al-authlogo .wm{color:#0b1f3a}.al-authlogo .wm span{color:#0f9b88}
.btn-primary{--bs-btn-bg:#0f7b6c;--bs-btn-border-color:#0f7b6c;--bs-btn-hover-bg:#0b5f54;--bs-btn-hover-border-color:#0b5f54;--bs-btn-active-bg:#0b5f54;--bs-btn-active-border-color:#0b5f54;--bs-btn-disabled-bg:#0f7b6c;--bs-btn-disabled-border-color:#0f7b6c}
.btn-outline-primary{--bs-btn-color:#0f7b6c;--bs-btn-border-color:#0f7b6c;--bs-btn-hover-bg:#0f7b6c;--bs-btn-hover-border-color:#0f7b6c;--bs-btn-active-bg:#0b5f54}
.form-control:focus,.form-select:focus{border-color:#3cc2ad;box-shadow:0 0 0 .2rem rgba(15,123,108,.15)}
.form-check-input:checked{background-color:#0f7b6c;border-color:#0f7b6c}
.nav-pills .nav-link.active{background:#0f7b6c}
/* CFOPartner: teal where SignReady had blue */
.al-authlogo .wm span{color:#0f9b88}
.al-authlogo .cp-mark{width:52px;height:52px;border-radius:12px;font-size:20px}
.client-bar{background:#eef8f6;border-color:#cde9e3;border-left-color:#0f7b6c}
.client-bar .bi-building,.client-bar .cb-name:hover,.client-bar .cb-switch{color:#0f7b6c}
.client-bar .cb-pill{font-size:13px;font-weight:600;background:#fff;border:1px solid #cde9e3;border-radius:999px;padding:2px 10px;color:#0b5f54}
.month-pick{display:inline-flex;align-items:center;gap:6px}
.month-pick select{width:auto}
.paper{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px 32px;box-shadow:var(--shadow)}
.paper h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#0b1f3a;border-bottom:2px solid #0f7b6c;padding-bottom:4px;margin:22px 0 10px}
.paper h1.mtitle{font-size:22px;font-weight:800;color:#0b1f3a}
.paper table.t{width:100%;font-size:14px}.paper table.t th{background:#f4f7fb;font-size:12px;text-transform:uppercase;color:#5b6678;padding:6px 8px}.paper table.t td{border-bottom:1px solid #e5eaf1;padding:6px 8px}
.paper .r,.paper td.r{text-align:right}
.step-dot{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;font-size:13px;font-weight:700;background:#e2e8f0;color:#475569;flex-shrink:0}
.step-dot.done{background:#16a34a;color:#fff}.step-dot.now{background:#0f7b6c;color:#fff}
.journey-row{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.journey-row:last-child{border-bottom:0}
.watermark{position:absolute;top:40%;left:10%;font-size:90px;font-weight:800;color:rgba(193,59,59,.08);transform:rotate(-25deg);pointer-events:none}
.paper .kp{width:100%;border-collapse:separate;border-spacing:8px 0;margin:0 -8px 8px}
.paper .kp td{background:#f4f7fb;padding:10px 12px;width:25%;vertical-align:top;border-radius:8px}
.paper .kp span{display:block;font-size:11px;color:#5b6678;text-transform:uppercase;letter-spacing:.04em}
.paper .kp b{display:block;font-size:20px;color:#0b1f3a}
.paper .kp em{font-style:normal;font-size:12px}
.paper .up{color:#16845b}.paper .dn{color:#c13b3b}
.paper .flag{border-left:3px solid #b76a00;padding:4px 0 4px 10px;margin-bottom:8px}
.paper .flag.high{border-left-color:#c13b3b}
.paper .score{font-size:30px}.paper .g{color:#16845b}.paper .a{color:#b76a00}.paper .rd{color:#c13b3b}
.paper .draft{background:#fdf1dc;color:#7a4a00;padding:6px 10px;font-weight:700;border-radius:6px;margin-bottom:12px;display:inline-block}
.paper tr.b td{font-weight:700;color:#0b1f3a}
.paper .muted{color:#5b6678}
.trend-bar{height:8px;background:#0f7b6c;border-radius:4px}
.trend-bar.neg{background:#c13b3b}
@media (max-width:700px){.paper{padding:16px}.paper .kp,.paper .kp tbody,.paper .kp tr,.paper .kp td{display:block;width:auto}.paper .kp td{margin-bottom:6px}}
.table-responsive .table > thead > tr > th{top:0}
@media (max-width:700px){.paper .kp td{width:auto!important}.al-top .gap-3{gap:.6rem!important}}

/* ===================================================================================================
   CFOPartner theme (v2, 11 Nov 2026): its own look, same screens as SignReady.
   Fonts: Fraunces (headings, brand) + Plus Jakarta Sans (text). Colours: forest green, gold, warm paper.
   =================================================================================================== */
:root{
  --cp-forest:#0f2e26;--cp-forest2:#173f34;--cp-primary:#1f6f54;--cp-primary-d:#175942;--cp-primary2:#e3efe8;
  --cp-gold:#c9952b;--cp-gold-d:#a67a1d;--cp-gold2:#fbf3e2;--cp-paper:#f5f3ec;
  --blue:#1f6f54;--blue-d:#175942;--blue2:#e3efe8;--teal:#a67a1d;--teal2:#fbf3e2;
  --ink:#1e2a25;--muted:#68716b;--line:#e6e1d4;--bg:#f5f3ec;
  --shadow:0 1px 2px rgba(15,46,38,.04),0 6px 18px rgba(15,46,38,.06);
}
body{font-family:"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
.page-title,.al-card h2,.al-card h3,.paper h1.mtitle,.al-authside h2,.al-auth .page-title,.cb-name,.stat-tile .v{font-family:Fraunces,Georgia,serif}
.page-title{font-weight:600;font-size:28px;letter-spacing:-.2px;color:var(--cp-forest)}
.al-card h2,.al-card h3{font-weight:600;color:var(--cp-forest)}
.stat-tile .v{font-weight:600;color:var(--cp-forest)}
.stat-tile,.al-card{border-color:var(--line);border-radius:12px}
.text-bg-primary{background:var(--cp-primary)!important;color:#fff!important}
.text-bg-info{background:#2f7f8a!important;color:#fff!important}
.text-bg-warning{background:#f3d38e!important;color:#5a3d00!important}
.progress-bar{background:var(--cp-primary)!important}

/* Top bar: paper white, gold underline */
.al-top{background:#fffdf8;border-bottom:1px solid var(--line);box-shadow:inset 0 -2px 0 var(--cp-gold)}
.al-brand,.al-authlogo .wm{font-family:Fraunces,Georgia,serif;font-weight:700;letter-spacing:-.2px}
.al-brand .wm,.al-authlogo .wm{color:var(--cp-forest)}
.al-brand .wm span,.al-authlogo .wm span{color:var(--cp-gold-d)}
.al-brand small,.al-authlogo small{color:var(--cp-gold-d)}
.cp-mark{background:var(--cp-forest);color:#e9c46a;font-family:Fraunces,Georgia,serif;font-weight:700;border-radius:50%}
.al-top .usage-pill{background:var(--cp-paper);border-color:var(--line);color:#3b463f}
.al-top .btn-subscribe{background:var(--cp-gold);color:#1e1606}
.al-top .btn-subscribe:hover{background:var(--cp-gold-d);color:#fff}

/* Sidebar: dark forest */
.al-side{background:var(--cp-forest);border-right:0}
.al-side a{color:#cbdad3}
.al-side a i{color:#86ad9e}
.al-side a:hover{background:rgba(255,255,255,.06);color:#fff}
.al-side a:hover i{color:#e9c46a}
.al-side a.active{background:var(--cp-forest2);color:#fff;border-left-color:var(--cp-gold)}
.al-side a.active i{color:#e9c46a}
.al-side a.new-audit{background:var(--cp-gold);color:#1e1606;box-shadow:0 4px 14px rgba(201,149,43,.3)}
.al-side a.new-audit i{color:#1e1606}
.al-side a.new-audit:hover{background:#d8a63b;color:#1e1606}
.al-side .sec{color:#7fa294;border-top-color:rgba(255,255,255,.09)}
.al-side .sec-toggle{color:#a9c2b8}
.al-side .sec-toggle:hover{background:rgba(255,255,255,.06);color:#fff}
.al-side .sec-toggle[aria-expanded="true"]{color:#fff}
.al-side .sec-items{border-left-color:rgba(255,255,255,.12)}
.al-side .sec.client{background:rgba(201,149,43,.16);color:#f0d9a6}

/* Client bar, buttons, links */
.client-bar{background:var(--cp-gold2);border-color:#efdcae;border-left-color:var(--cp-gold)}
.client-bar .bi-building,.client-bar .cb-switch,.client-bar .cb-name:hover{color:var(--cp-gold-d)}
.client-bar .cb-name{color:var(--cp-forest);font-weight:600}
.client-bar .cb-pill{border-color:#efdcae;color:var(--cp-gold-d)}
a{color:var(--cp-primary)}a:hover{color:var(--cp-primary-d)}
.btn-primary{--bs-btn-bg:#1f6f54;--bs-btn-border-color:#1f6f54;--bs-btn-hover-bg:#175942;--bs-btn-hover-border-color:#175942;--bs-btn-active-bg:#175942;--bs-btn-active-border-color:#175942;--bs-btn-disabled-bg:#1f6f54;--bs-btn-disabled-border-color:#1f6f54}
.btn-outline-primary{--bs-btn-color:#1f6f54;--bs-btn-border-color:#1f6f54;--bs-btn-hover-bg:#1f6f54;--bs-btn-hover-border-color:#1f6f54;--bs-btn-active-bg:#175942;--bs-btn-active-border-color:#175942}
.form-control:focus,.form-select:focus{border-color:#7fb29d;box-shadow:0 0 0 .2rem rgba(31,111,84,.18)}
.form-check-input:checked{background-color:#1f6f54;border-color:#1f6f54}
.step-dot.now{background:var(--cp-gold);color:#1e1606}
.trend-bar{background:var(--cp-primary)}
.table > thead > tr > th{background:#faf8f2;color:#5d665f}

/* Report preview */
.paper{border-color:var(--line)}
.paper h2{font-family:Fraunces,Georgia,serif;font-weight:600;text-transform:none;letter-spacing:0;font-size:18px;color:var(--cp-forest);border-bottom-color:var(--cp-gold)}
.paper h1.mtitle{color:var(--cp-forest);font-weight:600}
.paper .kp td{background:var(--cp-paper)}
.paper .kp b{color:var(--cp-forest)}

/* Log-in / sign-up */
.al-authwrap{border-color:var(--line)}
.al-authside{background:radial-gradient(circle at 85% 8%,rgba(201,149,43,.35) 0,rgba(201,149,43,0) 45%),linear-gradient(160deg,#0f2e26 0%,#143b31 60%,#1f6f54 140%)}
.al-authside h2{font-weight:600}
.al-authside .aicon{background:rgba(201,149,43,.18);border-color:rgba(233,196,106,.35);color:#e9c46a}
.al-authside .astats b{font-family:Fraunces,Georgia,serif;color:#e9c46a}

/* Smaller overall type (Nov 2026): the whole app at 90% on tablet and desktop. Phones stay at 100% so iOS does not zoom into form fields. */
@media (min-width:768px){
  body{zoom:.9}
  .al-side{min-height:calc(100vh / .9 - 60px)}
}
