:root {
  color-scheme: light;
  --paper: #f3f0e9; --white: #fffffc; --ink: #232b28; --muted: #5b6661;
  --line: #dedfd6; --field: #7e8781; --green: #17694f; --green-soft: #e6f0e8;
  --amber: #875c19; --amber-soft: #fbf0d4; --nav: #1e3029; --nav-text: #c0d0c5;
  --blue: #315f82;
  /* A8: owner-approved global main-view width; Classic has its own sheet. */
  --sidebar-width: 255px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Segoe UI", Arial, sans-serif;
  --ease: cubic-bezier(.2,.8,.2,1);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 14px/1.55 var(--sans); }
button, input { font: inherit; color: inherit; }
button, a, input { touch-action: manipulation; }
a { color: var(--green); text-decoration-thickness: 1px; text-underline-offset: 4px; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .65; }
:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
h1 { font-size: 36px; line-height: 1.18; letter-spacing: -.025em; }
h2 { font-size: 28px; line-height: 1.22; letter-spacing: -.015em; }
h3 { font-size: 24px; line-height: 1.3; }
.skip { position: fixed; top: -80px; left: 24px; padding: 12px 20px; background: var(--white); z-index: 10; }
.skip:focus { top: 12px; }
.workspace { display: grid; grid-template-columns: var(--sidebar-width) minmax(0,1fr); min-height: 100dvh; }
.sidebar { position: sticky; top: 0; height: 100dvh; background: var(--nav); color: var(--nav-text); padding: 24px 17px; overflow-y: auto; display: flex; flex-direction: column; }
.wordmark { font: 30px/1 var(--serif); letter-spacing: -.05em; text-decoration: none; color: #fff9ea; padding: 0 11px 28px; display: block; }
.wordmark span { color: #8bd6b4; }
.wordmark sup { font: 9px var(--sans); vertical-align: top; margin: 5px 0 0 3px; display: inline-block; }
.identity { margin: 0 10px 24px; padding-top: 24px; border-top: 1px solid #526a5c; }
.identity strong { color: #f4f7f0; font-weight: 500; display: block; overflow-wrap: anywhere; }
.identity small, .sidebar-footer { font-size: 13px; }
.nav-item { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 12px; margin: 4px 0; border-radius: 6px; color: inherit; text-decoration: none; transition: background 120ms var(--ease); }
.nav-item:hover { background: #2c4638; color: white; }
.nav-item[aria-current] { color: white; background: #365244; box-shadow: inset 3px 0 #8bd6b4; }
.bridge-tag { font: 11px/1.4 var(--sans); white-space: nowrap; }
.nav-item:has(.bridge-tag) { flex-wrap: wrap; gap: 2px 8px; }
.sidebar :focus-visible { outline-color: #8bd6b4; }
.sidebar-footer { margin-top: auto; padding: 24px 12px 0; display: grid; gap: 12px; }
.sidebar-footer a { color: inherit; }
.main-shell { min-width: 0; }
.topbar { min-height: 64px; background: #faf9f4; border-bottom: 1px solid var(--line); padding: 8px 36px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--muted); font-size: 13px; }
.top-actions { display: flex; align-items: center; gap: 20px; }
.version { font-size: 11px; border: 1px solid var(--line); padding: 2px 8px; border-radius: 20px; }
.content { max-width: 1500px; padding: 36px 36px 64px; margin: auto; }
.eyebrow { font: 11px/1.5 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 12px; }
.subtitle { margin-top: 16px; color: var(--muted); max-width: 65ch; }
.page-heading { margin-bottom: 40px; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 32px 0 20px; }
.section-heading .title { display: flex; align-items: baseline; gap: 16px; }
.count, .small { font-size: 13px; color: var(--muted); }
.count, time { font-variant-numeric: tabular-nums lining-nums; }
.search { display: flex; align-items: center; gap: 12px; max-width: 340px; width: 100%; }
.search svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; color: var(--muted); }
.search input { min-width: 0; width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--field); border-radius: 0; padding: 10px 0; }
input::placeholder { color: var(--muted); opacity: 1; }
.button, .quiet { display: inline-flex; justify-content: center; align-items: center; gap: 16px; min-height: 44px; padding: 10px 16px; border: 1px solid var(--field); border-radius: 6px; background: var(--white); text-decoration: none; font-size: 13px; font-weight: 500; transition: background 120ms var(--ease), box-shadow 120ms var(--ease); }
.button:hover { background: var(--green-soft); }
.button.primary { background: var(--green); color: white; border-color: var(--green); }
.button.primary:hover { background: #11573f; }
.quiet { background: transparent; border-color: transparent; color: var(--green); }
.quiet:hover { background: var(--green-soft); }
.actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.section-heading + .actions { margin-bottom: 20px; }
.project-list { display: grid; gap: 16px; }
.project-card { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr); border: 1px solid var(--line); border-radius: 10px; background: var(--white); overflow: hidden; }

.project-main { padding: 32px; min-width: 0; }
.project-main h3 { font-size: 30px; overflow-wrap: anywhere; }
.project-main h3 a { color: var(--ink); text-decoration: none; }
.project-main h3 a:hover { text-decoration: underline; }
.project-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 24px; color: var(--muted); font-size: 13px; }
.project-next { padding: 28px 32px; border-left: 1px solid var(--line); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 16px; }
.status { font-size: 13px; display: flex; align-items: center; gap: 9px; color: var(--ink); }
.status.unknown, .status.attention { color: var(--amber); }
.status.waiting { color: var(--blue); }
.status.done { color: var(--green); }
.skeleton-line { background: var(--line); border-radius: 4px; height: 16px; width: 100%; }
.skeleton-line.short { max-width: 120px; height: 12px; margin-bottom: 12px; }
.skeleton-line.title { max-width: 330px; height: 39px; }
.skeleton-line.meta { max-width: 260px; margin-top: 24px; height: 21px; }
.skeleton-line.action { max-width: 200px; height: 44px; }
.note { color: var(--muted); font-size: 13px; margin: 20px 0; }
.notice { background: var(--amber-soft); border: 1px solid #c5a25d; border-radius: 6px; padding: 16px 20px; margin-bottom: 24px; color: #65420f; overflow-wrap: anywhere; }
.notice p + p { margin-top: 8px; }
.notice .actions { margin-top: 12px; }
.empty { border: 1px solid var(--line); background: var(--white); padding: 40px 32px; border-radius: 10px; }
.empty p { margin: 12px 0 24px; max-width: 60ch; color: var(--muted); }
.access { max-width: 460px; margin: 8vh auto 0; }
.access .page-heading { margin-bottom: 32px; }
.signed-out .workspace { display: block; }
.signed-out .sidebar, .signed-out .topbar { display: none; }
.access .wordmark { color: var(--ink); padding: 0 0 40px; }
.access .wordmark span { color: var(--green); }
.refresh-notice, .closed-refresh { margin-top: 20px; }
.form { display: grid; gap: 20px; }
.field { display: grid; gap: 8px; }
.field input { width: 100%; border: 1px solid var(--field); border-radius: 6px; background: var(--white); padding: 12px 14px; min-height: 48px; }
.form .button { width: 100%; min-height: 48px; }
.text-link { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 4px 0; min-height: 32px; }
.closed-list { display: grid; gap: 12px; }
.closed-record { padding: 24px; border: 1px solid var(--line); border-radius: 6px; }
.closed-record p { color: var(--muted); font-size: 13px; margin-top: 12px; }
.closed-record code { font: 12px/1.6 ui-monospace, Consolas, monospace; overflow-wrap: anywhere; }
.menu-sheet { width: min(360px, 100%); height: 100dvh; max-height: 100dvh; margin: 0; border: 0; padding: 24px; background: var(--nav); color: var(--nav-text); }
.menu-sheet::backdrop { background: #18281e80; }
.menu-sheet :focus-visible { outline-color: #8bd6b4; }
.menu-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 32px; }
.menu-heading h2 { font-size: 24px; }
.menu-heading .quiet { color: white; }
.menu-heading .quiet:hover { background: #365244; }
.mobile-only { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 1050px) {
  .workspace { --sidebar-width: 209px; grid-template-columns: var(--sidebar-width) minmax(0,1fr); }
  .content { padding: 32px 24px 48px; }
  .topbar { padding-inline: 24px; }
  .project-card { grid-template-columns: 1fr; }
  .project-next { border-left: 0; border-top: 1px solid var(--line); padding: 24px; }
  .project-main { padding: 24px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 16px; }
  .search { max-width: none; }
}
@media (max-width: 650px) {
  .workspace { display: block; }
  .sidebar { display: none; }
  .mobile-only { display: inline-flex; }
  .topbar { padding: 8px 12px; gap: 8px; }
  .top-actions { gap: 8px; }
  .content { padding: 28px 20px 48px; }
  h1 { font-size: 36px; }
  h2 { font-size: 26px; }
  .page-heading { margin-bottom: 32px; }
  .project-main h3 { font-size: 27px; }
  .project-main, .project-next { padding: 24px; }
  .access { margin-top: 24px; }
  .empty { padding: 28px 24px; }
}
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  .project-list { animation: appear 200ms var(--ease); }
  .skeleton-line { animation: pulse 1800ms ease-in-out infinite alternate; }
  @keyframes pulse { from { opacity: .55; } to { opacity: 1; } }
  @keyframes appear { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Shared B4 chrome. State and content still belong to the mounted controllers. */
.identity { display:flex; align-items:center; gap:10px; margin:0 10px 27px; padding-top:23px; border-top-color:#3e5147; font-size:13px; }
.identity-avatar { width:33px; height:33px; flex:none; display:grid; place-items:center; border-radius:50%; background:#d8e4d5; color:#284939; font:13px var(--serif); }
.identity-label { min-width:0; }
.identity small { display:block; font-size:11px; }
.nav-item { width:100%; gap:9px; padding:9px 10px; border:1px solid #3b554a; border-radius:8px; margin:0 0 7px; color:#e8eee9; font-size:13px; font-weight:500; }
.nav-item:hover { background:#2a4038; }
.nav-item[aria-current] { background:#2f4a40; box-shadow:inset 3px 0 #7fd3a8; color:#fffffc; }
.nav-item svg { width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.nav-item[aria-current] svg { color:#7fd3a8; }
.nav-label { font-size:11px; color:#b4c4b9; margin:24px 10px 12px; overflow-wrap:anywhere; }
.journey-rail { border-left:1px solid #526a5c; padding-left:9px; margin:12px 0 20px 5px; }
.next-step { display:grid; gap:6px; border:1px solid #ffd600; border-radius:10px; padding:12px; margin-top:16px; background:#2b3a2a; color:#f8f4e9; font-size:13px; text-decoration:none; }
.next-step .eyebrow, .next-step small { color:#ffe94d; margin:0; }
.next-step:hover { background:#344633; text-decoration:none; }
.topbar { min-height:64px; padding:8px 36px; font-size:12px; }
.top-actions { flex-wrap:wrap; justify-content:flex-end; gap:16px; }
#classic-entry { padding:4px 0; font-size:11px; min-height:32px; color:var(--muted); }
.typeface-control { display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12px; }
.typeface-control button { font:inherit; color:var(--green); border:0; background:transparent; padding:6px 0; min-height:32px; }
.typeface-control button + button::before { content:'·'; color:var(--muted); padding-right:6px; }
.typeface-control button[aria-pressed='true'] { text-decoration:underline; text-underline-offset:3px; font-weight:600; }
.typeface-status { font-size:11px; color:var(--muted); }
.typeface-status:empty { display:none; }
.content { padding:37px 36px 52px; }
.page-heading { margin-bottom:30px; }
.subtitle { margin-top:15px; font-size:13px; }
.eyebrow { font-size:10px; letter-spacing:1.5px; margin-bottom:12px; }
body:has(#projects) .section-heading { flex-direction:column; align-items:stretch; gap:8px; margin:0 0 14px; }
body:has(#projects) .section-heading .title { justify-content:flex-end; }
body:has(#projects) .search { max-width:none; padding:0 12px; border:1px solid var(--line); border-radius:10px; background:transparent; }
body:has(#projects) .search input { border:0; padding:10px 0; font-size:12px; }
.project-list { display:block; border:1px solid var(--line); border-radius:12px; background:var(--white); overflow:hidden; padding:0 24px; }
.project-card { border:0; border-bottom:1px solid var(--line); border-radius:0; grid-template-columns:minmax(0,1fr) minmax(210px,.65fr); gap:28px; background:transparent; padding:23px 0; align-items:center; }
.project-card:last-child { border-bottom:0; }
.project-main { padding:0; }
.project-main .eyebrow { font-size:10px; margin-bottom:6px; }
.project-main h3 { font:24px/1.3 var(--serif); letter-spacing:-.25px; }
.project-title::after { content:'→'; margin-left:10px; color:var(--muted); font:20px var(--serif); }
.project-filters { display:flex; gap:20px; font-size:12px; }
.project-filters [aria-current='true'] { font-weight:600; text-decoration:underline; }
.project-meta { margin-top:9px; font-size:11px; gap:6px 18px; }
.project-next { border:0; padding:0; align-items:flex-end; gap:8px; text-align:right; }
.project-next .primary { font-weight:400; font-size:12px; }
.project-next .small { font-size:11px; }
.project-next .status { font-size:12px; }
.project-list .empty { border:0; }
.closed-record { background:var(--white); }
@media (max-width:1000px) and (min-width:761px) {
  .workspace { --sidebar-width:209px; grid-template-columns:var(--sidebar-width) minmax(0,1fr); }
  .sidebar { padding:20px 10px; }
  .content { padding:30px 27px 42px; }
  .topbar { padding-inline:27px; }
}
@media (max-width:760px) {
  .workspace { display:block; }
  .sidebar { display:none; }
  .mobile-only { display:inline-flex; }
  .content { padding:27px 19px 40px; }
  .topbar { padding:8px 12px; gap:8px; flex-wrap:wrap; }
  .top-actions { gap:8px 14px; }
  .typeface-control { font-size:11px; }
  h1 { font-size:32px; }
  .project-list { padding:0 18px; }
  .project-card { grid-template-columns:1fr; gap:14px; padding:23px 0; }
  .project-main,.project-next { padding:0; }
  .project-main h3 { font-size:24px; }
  .project-next { align-items:flex-start; text-align:left; }
  .menu-sheet { overflow-y:auto; }
}

@font-face { font-family:"TaxSig Source Serif"; src:url("/ui/fonts/source-serif/SourceSerif4Variable-Roman.ttf.woff2?v=940a76eda1388de3") format("woff2"); font-style:normal; font-weight:200 900; font-display:swap; }

@font-face { font-family:"TaxSig Source Serif"; src:url("/ui/fonts/source-serif/SourceSerif4Variable-Italic.ttf.woff2?v=9d28b5749a1ad096") format("woff2"); font-style:italic; font-weight:200 900; font-display:swap; }

@font-face { font-family:"TaxSig Source Sans"; src:url("/ui/fonts/source-sans/SourceSans3VF-Upright.ttf.woff2?v=5f16566f7a40d39b") format("woff2"); font-style:normal; font-weight:200 900; font-display:swap; }

@font-face { font-family:"TaxSig Source Sans"; src:url("/ui/fonts/source-sans/SourceSans3VF-Italic.ttf.woff2?v=b4959abc0569392f") format("woff2"); font-style:italic; font-weight:200 900; font-display:swap; }

:root[data-typeface='source'] { --serif:"TaxSig Source Serif",Georgia,serif; --sans:"TaxSig Source Sans","Segoe UI",Arial,sans-serif; font-optical-sizing:none; font-variation-settings:"opsz" 20; }
