/* Ashgrove Tax & Accounting: ledger paper, evergreen ink, mono figures, horizontal tabs. */
@font-face { font-family:"Plex Sans"; src:url("/shared/fonts/plexsans-var.woff2") format("woff2"); font-weight:100 700; font-stretch:85% 100%; font-display:swap; }
@font-face { font-family:"Plex Mono"; src:url("/shared/fonts/plexmono-400.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Plex Mono"; src:url("/shared/fonts/plexmono-600.woff2") format("woff2"); font-weight:600; font-display:swap; }
:root {
  --ever:#16382b; --green:#1f5c45; --green-2:#2f7a5d; --mint:#e4efe8; --paper:#f8f7f2; --rule:#d9e3dc; --rule2:#e9eee9; --ink:#17221d; --muted:#4f5d56;
  --amber:#8a4b06; --amber-bg:#fdf0dc; --red:#9b2c2c; --blue:#2b4f7e;
  --sans:"Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"Plex Mono",ui-monospace,Menlo,monospace;
  --ai-bg:#f3f6fb; --ai-line:#cfd9e8; --ai-ink:#2b4f7e; --ai-r:2px;
  --m-accent:#1f5c45; --m-line:#d9e3dc; --m-soft:#eef3ef; --m-sel:#e4efe8; --m-r:2px; --m-muted:#4f5d56; --m-ink:#17221d; --m-link:#1f5c45;
}
body { font-family:var(--sans); color:var(--ink); background:var(--paper); font-size:15px; line-height:1.5; }
a { color:var(--green); }
:focus-visible { outline:2px solid var(--green-2); outline-offset:2px; }
.boot { padding:30vh 0; text-align:center; color:var(--muted); }
.mono { font-family:var(--mono); font-variant-numeric:tabular-nums; }
.muted { color:var(--muted); } .sm { font-size:13.5px; } .r { text-align:right; }

.top { background:#fff; border-bottom:1px solid var(--rule); }
.top-in { max-width:1200px; margin:0 auto; padding:14px 16px 10px; display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
.firm { display:flex; align-items:center; gap:12px; }
.seal { width:42px; height:42px; display:grid; place-items:center; border:2px solid var(--green); border-radius:50%; color:var(--green); font:600 20px var(--mono); box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 4px var(--green); }
.firm b { display:block; font-size:22px; font-weight:600; letter-spacing:-.01em; color:var(--ever); line-height:1.1; }
.firm small { color:var(--muted); font-size:12.5px; }
.glance { display:flex; gap:0; margin:0 0 0 auto; border:1px solid var(--rule); border-radius:2px; }
.glance div { padding:6px 14px; border-left:1px solid var(--rule); }
.glance div:first-child { border-left:0; }
.glance dt { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.glance dd { margin:0; font:600 20px/1.2 var(--mono); color:var(--ever); }
.glance dd small { font:400 12px var(--sans); color:var(--muted); }
@media (max-width:640px) { .glance { margin:0; width:100%; } .glance div { flex:1; padding:6px 10px; } .glance dd { font-size:17px; } }
.tabs { position:sticky; top:44px; z-index:30; background:#fff; border-top:1px solid var(--rule2); box-shadow:0 1px 0 var(--rule); }
.tabs-in { max-width:1200px; margin:0 auto; display:flex; overflow-x:auto; scrollbar-width:none; padding:0 8px; }
.tabs a { flex:none; position:relative; padding:13px 12px 11px; text-decoration:none; color:var(--muted); font-weight:500; font-size:14.5px; border-bottom:3px solid transparent; white-space:nowrap; }
.tabs a:hover { color:var(--ink); }
.tabs a[aria-current="page"] { color:var(--ever); font-weight:600; border-bottom-color:var(--green); }
.n { display:inline-block; margin-left:6px; min-width:20px; padding:0 6px; border-radius:2px; background:var(--green); color:#fff; font:600 11.5px/18px var(--mono); text-align:center; }
.main { max-width:1200px; margin:0 auto; padding:22px 16px 8px; outline:none; }
.foot-wrap { padding:0 16px 24px; }
.head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:12px 20px; margin-bottom:18px; padding-bottom:14px; border-bottom:3px double var(--rule); }
.head h1 { margin:0 0 4px; font-size:26px; line-height:1.15; font-weight:600; letter-spacing:-.015em; color:var(--ever); }
.head p { margin:0; color:var(--muted); max-width:66ch; }
@media (min-width:900px) { .head h1 { font-size:32px; } }
.back { display:inline-block; margin-bottom:10px; font-weight:600; }

.btn { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 16px; border-radius:2px; font-weight:600; font-size:14px; text-decoration:none; border:1px solid var(--green); background:#fff; color:var(--green); }
.btn.pri { background:var(--green); color:#fff; } .btn.pri:hover { background:var(--ever); }
.btn.line:hover { background:var(--mint); }
.btn.sm { min-height:34px; font-size:13px; padding:0 12px; }
.panel { background:#fff; border:1px solid var(--rule); border-radius:2px; padding:16px; margin-bottom:16px; }
.ph { display:flex; align-items:baseline; gap:10px; margin:0 0 12px; font-size:12.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--green); }
.ph span { color:var(--muted); letter-spacing:0; }
.kind { display:inline-block; margin-left:8px; padding:1px 7px; font-size:11.5px; font-weight:600; border:1px solid currentColor; border-radius:2px; vertical-align:2px; }
.k-individual { color:var(--blue); } .k-business { color:#6b3f8f; } .k-bookkeeping { color:var(--amber); }
.new, .sent { margin-left:8px; font:600 11px var(--mono); text-transform:uppercase; padding:1px 6px; background:var(--green); color:#fff; border-radius:2px; }
.sent { background:var(--mint); color:var(--ever); }
.flag { display:inline-block; margin:8px 4px 0 0; padding:2px 8px; background:var(--amber-bg); color:var(--amber); font-size:12.5px; font-weight:600; border-radius:2px; }
.empty { color:var(--muted); padding:12px 0; }
.two { display:grid; gap:16px; } .stack { display:grid; gap:16px; align-content:start; } .stack .panel, .stack .ai { margin:0; }
@media (min-width:960px) { .two { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); } }

/* Intake queue: ledger rows */
.queue { list-style:none; margin:0; padding:0; counter-reset:q; }
.qrow { display:grid; grid-template-columns:1fr; gap:4px; padding:14px 4px 14px 40px; border-top:1px solid var(--rule2); text-decoration:none; color:inherit; position:relative; }
.qrow::before { counter-increment:q; content:counter(q,decimal-leading-zero); position:absolute; left:4px; top:15px; font:400 13px var(--mono); color:#8aa094; }
.qrow:hover { background:#fbfcfa; }
.qrow.st-new { box-shadow:inset 3px 0 0 var(--green); }
.q-name b { font-size:16.5px; font-weight:600; }
.q-sum { color:var(--muted); font-size:14px; }
.q-meta { display:flex; gap:14px; font-size:13px; color:var(--muted); }
.q-meta .mono { color:var(--ever); font-weight:600; }
@media (min-width:900px) { .qrow { grid-template-columns:minmax(260px,1fr) minmax(0,1.6fr) 170px; align-items:center; gap:16px; } .q-meta { flex-direction:column; gap:0; text-align:right; } }
.answers { margin:0; }
.answers div { display:grid; grid-template-columns:1fr; gap:2px; padding:9px 0; border-bottom:1px dotted var(--rule); }
.answers dt { font-size:12.5px; color:var(--muted); }
.answers dd { margin:0; font-weight:500; }
@media (min-width:560px) { .answers div { grid-template-columns:200px 1fr; gap:12px; } }
.ledger { width:100%; border-collapse:collapse; font-size:14px; }
.ledger td, .ledger th { padding:8px 4px; border-bottom:1px solid var(--rule2); text-align:left; vertical-align:top; }
.ledger thead th { font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); border-bottom:1px solid var(--ink); }
.ledger td.r, .ledger th.r { text-align:right; white-space:nowrap; }
.ledger tfoot th, .ledger tfoot td { border-top:1px solid var(--ink); border-bottom:3px double var(--ink); font-weight:600; }
.acts { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.seg { display:inline-flex; border:1px solid var(--green); border-radius:2px; margin:6px 0 10px; }
.seg button { border:0; background:#fff; padding:7px 14px; font-weight:600; color:var(--green); }
.seg button[aria-selected="true"] { background:var(--green); color:#fff; }
.qlist { margin:0; padding-left:22px; } .qlist li { padding:5px 0; border-bottom:1px dotted var(--rule); }

/* Clients */
.funnel { display:flex; gap:4px; margin-bottom:12px; }
.fseg { min-width:0; flex:none; display:grid; padding:10px 12px; text-decoration:none; color:var(--ever); background:var(--mint); border-radius:2px; }
.fseg b { font:600 22px/1 var(--mono); } .fseg span { font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fseg.s-inquiry { background:#eef2f8; color:var(--blue); } .fseg.s-progress { background:#d8eadf; } .fseg.s-filed { background:var(--ever); color:#fff; }
.fseg.on { outline:2px solid var(--ink); outline-offset:-2px; }
.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chips button { border:1px solid var(--rule); background:#fff; border-radius:2px; padding:5px 11px; font-size:13.5px; font-weight:500; }
.chips button[aria-pressed="true"] { border-color:var(--green); background:var(--mint); color:var(--ever); font-weight:600; }
.grid { width:100%; border-collapse:collapse; }
.grid th { text-align:left; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding:8px; border-bottom:1px solid var(--ink); }
.grid td { padding:12px 8px; border-bottom:1px solid var(--rule2); vertical-align:middle; }
.grid td a { text-decoration:none; color:var(--ink); } .grid td a:hover b { text-decoration:underline; }
.grid small { color:var(--muted); }
.stage { font-size:12.5px; font-weight:600; padding:2px 8px; border-radius:2px; background:var(--mint); color:var(--ever); white-space:nowrap; }
.stage.s-progress { background:#e6eefa; color:var(--blue); } .stage.s-filed { background:var(--ever); color:#fff; }
.docbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13px; }
.bar { display:block; width:90px; height:8px; background:var(--rule2); border-radius:1px; overflow:hidden; }
.bar i { display:block; height:100%; background:var(--amber); }
.bar i.full { background:var(--green-2); }
.bar.big { width:100%; height:10px; margin-bottom:12px; }
.miss { color:var(--amber); font-weight:600; } .ok { color:var(--green); font-weight:600; }
@media (max-width:760px) {
  .grid thead { display:none; } .grid, .grid tbody, .grid tr, .grid td { display:block; }
  .grid tr { padding:10px 0; border-bottom:1px solid var(--rule); } .grid td { border:0; padding:3px 0; display:grid; grid-template-columns:110px 1fr; align-items:center; }
  .grid td::before { content:attr(data-l); font-size:12px; color:var(--muted); } .grid td:first-child { grid-template-columns:1fr; } .grid td:first-child::before { display:none; }
}
.stage-sel { display:flex; align-items:center; gap:8px; font-weight:600; font-size:14px; }
.stage-sel select { min-height:40px; border:1px solid var(--green); border-radius:2px; padding:0 8px; background:#fff; }
.checks { list-style:none; margin:0; padding:0; }
.checks li { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 2px; border-bottom:1px dotted var(--rule); }
.checks label { display:flex; gap:10px; align-items:flex-start; cursor:pointer; }
.checks input { width:18px; height:18px; margin-top:2px; accent-color:var(--green); flex:none; }
.checks .when { font:400 12.5px var(--mono); white-space:nowrap; color:var(--green); }
.checks li.out .when { color:var(--amber); font-weight:600; }
.checks li.got span:not(.when) { color:var(--muted); }
.ta { width:100%; border:1px solid var(--rule); border-radius:2px; padding:10px 12px; line-height:1.55; background:#fdfdfb; font-size:14px; }
.ok-note { color:var(--green); font-weight:600; }

/* Deadlines */
.dl { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.dl-item { display:grid; grid-template-columns:72px 1fr; gap:14px; background:#fff; border:1px solid var(--rule); padding:14px; border-radius:2px; }
.dl-item.soon { border-left:4px solid var(--amber); }
.dl-date { display:grid; justify-items:center; align-content:start; border:1px solid var(--ink); padding:4px 0 6px; border-radius:2px; background:#fff; }
.dl-date span { font:600 11.5px var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--green); }
.dl-date b { font:600 28px/1 var(--mono); } .dl-date small { font:400 11px var(--mono); color:var(--muted); }
.dl-body h2 { margin:0; font-size:17px; font-weight:600; } .dl-body p { margin:2px 0 8px; color:var(--muted); font-size:14px; }
.who { display:flex; flex-wrap:wrap; gap:6px; } .who a { font-size:13px; padding:2px 8px; background:var(--mint); color:var(--ever); text-decoration:none; border-radius:2px; }
.dl-side { grid-column:2; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.count { font-weight:600; color:var(--ever); }
.dl-item.soon .count { color:var(--amber); }
@media (min-width:860px) { .dl-item { grid-template-columns:80px 1fr 220px; align-items:center; } .dl-side { grid-column:auto; flex-direction:column; align-items:flex-end; } }

/* Engagement */
.eng { display:grid; gap:16px; }
@media (min-width:1000px) { .eng { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; } .letter-wrap { position:sticky; top:110px; } }
.fld { display:grid; gap:4px; font-weight:600; font-size:13.5px; margin-bottom:12px; }
.fld select { min-height:40px; border:1px solid var(--rule); border-radius:2px; padding:0 8px; background:#fff; font-weight:400; }
fieldset { border:0; border-top:1px solid var(--rule); margin:0; padding:8px 0 4px; }
legend { font-size:11.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); padding-right:8px; }
.fee { display:grid; grid-template-columns:1fr auto auto; gap:8px; align-items:center; padding:6px 0; }
.fee-l { display:flex; gap:8px; align-items:flex-start; font-size:14px; cursor:pointer; } .fee-l input { width:17px; height:17px; margin-top:2px; accent-color:var(--green); flex:none; }
.fee-q input { width:52px; } .fee-p { font:400 13px var(--mono); white-space:nowrap; } .fee-p input { width:70px; } .fee-p small { color:var(--muted); display:none; }
.fee input[type=number] { padding:4px 6px; border:1px solid var(--rule); border-radius:2px; font:400 13.5px var(--mono); text-align:right; }
.fee input:disabled { background:#f3f3ef; color:#9aa59f; }
@media (min-width:1100px) { .fee-p small { display:inline; } }
.letter { background:#fff; border:1px solid var(--rule); padding:28px 26px; box-shadow:0 18px 40px -24px rgba(22,56,43,.35); font-size:14.5px; position:relative; }
.letter::before { content:""; position:absolute; inset:0 0 auto 0; height:5px; background:var(--green); }
.letter header { display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--rule); }
.letter header b { font-size:18px; color:var(--ever); } .letter header span { font:400 12.5px var(--mono); color:var(--muted); }
.sig { display:grid; grid-template-columns:2fr 1fr; gap:20px; margin-top:26px; } .sig span { border-top:1px solid var(--ink); padding-top:4px; font-size:12px; color:var(--muted); }
.fee { grid-template-columns:minmax(0,1fr) 56px 170px; }
.fee-p { justify-self:end; }
@media (max-width:760px) {
  .grid td { justify-items:start; }
  .grid td:first-child { display:flex; flex-wrap:wrap; align-items:center; gap:4px 0; }
  .fseg { flex:1 1 0; width:auto !important; padding:8px; }
  .fee { grid-template-columns:minmax(0,1fr) 50px 96px; }
}
@media (max-width:640px) { .tabs a { padding:13px 9px 11px; font-size:14px; } }
