:root {
  color-scheme: light;
  --ink: #172019;
  --muted: #626c64;
  --dim: #899189;
  --lime: #66821d;
  --lime-ink: #ffffff;
  --night: #f7f6ef;
  --panel: #fffefa;
  --panel-2: #f0f2e8;
  --hairline: rgba(23, 32, 25, 0.1);
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Aptos", "Avenir Next", "Segoe UI Variable", sans-serif;
  --curve: cubic-bezier(0.32, 0.72, 0, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--night);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }

.ambient { position: fixed; width: 48rem; height: 48rem; border-radius: 50%; pointer-events: none; opacity: .13; filter: blur(110px); }
.ambient-one { top: -24rem; right: -14rem; background: #d7ef8b; opacity: .28; }
.ambient-two { top: 40rem; left: -32rem; background: #b9d7c8; opacity: .2; }
.grain { position: fixed; inset: 0; pointer-events: none; opacity: .025; z-index: 8; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }

.nav-shell { position: absolute; z-index: 6; top: 1.25rem; left: 0; right: 0; display: flex; justify-content: center; padding: 0 1rem; }
.nav { width: min(78rem, 100%); min-height: 4.25rem; display: flex; align-items: center; gap: 1.5rem; padding: .55rem .6rem .55rem 1.1rem; border-radius: 999px; background: rgba(255, 254, 250, .86); box-shadow: inset 0 1px rgba(255,255,255,.9), 0 18px 60px rgba(55,70,48,.12); outline: 1px solid var(--hairline); backdrop-filter: blur(22px); }
.brand { position: relative; z-index: 7; display: inline-flex; align-items: center; gap: .65rem; font-weight: 700; letter-spacing: -.03em; }
.brand-mark { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border-radius: .55rem; color: var(--lime-ink); background: var(--lime); font-family: var(--serif); font-style: italic; }
.nav-links { display: flex; gap: 1.35rem; margin: auto; color: var(--muted); font-size: .82rem; }
.nav-links a { transition: color .55s var(--curve), transform .55s var(--curve); }
.nav-links a:hover { color: var(--ink); transform: translateY(-1px); }
.nav-links a[aria-current="page"] { color: var(--ink); font-weight: 700; }
.nav-links a[aria-current="page"]::after { content: ""; display: block; width: 1.1rem; height: 2px; margin: .28rem auto 0; border-radius: 2px; background: var(--lime); }
.nav-cta { display: inline-flex; align-items: center; gap: .75rem; padding: .65rem .7rem .65rem 1rem; border-radius: 999px; background: var(--ink); color: #fff; font-size: .84rem; font-weight: 700; }
.nav-cta span { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: rgba(255,255,255,.14); transition: transform .65s var(--curve); }
.nav-cta:hover span { transform: translate(2px, 2px); }
.menu-button { display: none; }

.section-pad { width: min(76rem, calc(100% - 3rem)); margin-inline: auto; padding-block: 8rem; }
.hero { min-height: 100dvh; display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: 4rem; padding-top: 9rem; }
.eyebrow { display: inline-flex; align-items: center; gap: .65rem; color: var(--muted); font-size: .66rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow > span { width: 1.6rem; height: 1px; background: var(--lime); }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 10ch; margin: 1.6rem 0 1.75rem; font-size: clamp(4rem, 7vw, 7.3rem); line-height: .88; letter-spacing: -.07em; font-weight: 680; }
h1 em, h2 em { color: var(--lime); font-family: var(--serif); font-weight: 400; }
.hero-lede { max-width: 34rem; color: var(--muted); font-size: 1.08rem; line-height: 1.7; }
.hero-actions { display: flex; align-items: center; gap: 1.5rem; margin: 2.5rem 0; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.1rem; min-height: 3.45rem; padding: .45rem .5rem .45rem 1.35rem; border: 0; border-radius: 999px; cursor: pointer; font-weight: 750; transition: transform .7s var(--curve), box-shadow .7s var(--curve); }
.button:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(70,98,37,.18); }
.button:active { transform: scale(.98); }
.button-primary { background: var(--lime); color: var(--lime-ink); }
.button-icon { width: 2.45rem; height: 2.45rem; display: grid; place-items: center; border-radius: 50%; background: rgba(17,19,11,.1); font-size: 1.05rem; transition: transform .7s var(--curve); }
.button:hover .button-icon { transform: translate(3px, 2px) scale(1.05); }
.text-button { border: 0; padding: .75rem 0; color: var(--ink); background: transparent; cursor: pointer; font-size: .85rem; border-bottom: 1px solid rgba(23,32,25,.18); }
.text-button span { margin-left: .65rem; color: var(--dim); font-size: .66rem; }
.trust-row { display: flex; flex-wrap: wrap; gap: 1.15rem; color: var(--dim); font-size: .72rem; }
.trust-row span { display: inline-flex; align-items: center; gap: .45rem; }
.trust-row i { width: .35rem; height: .35rem; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 4px rgba(215,255,99,.08); }

.hero-visual { position: relative; min-height: 42rem; display: grid; place-items: center; }
.device-shell, .form-shell, .result-shell { padding: .45rem; border-radius: 2rem; background: rgba(74,91,66,.06); box-shadow: 0 42px 100px rgba(56,72,50,.14); outline: 1px solid rgba(23,32,25,.08); }
.device-shell { width: min(34rem, 100%); transform: rotate(2deg); }
.device-core, .form-core, .result-core { border-radius: calc(2rem - .45rem); background: var(--panel); box-shadow: inset 0 1px rgba(255,255,255,.9); }
.device-core { min-height: 35rem; padding: 1.4rem; }
.device-topbar, .form-topline, .result-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.mini-brand { display: flex; align-items: center; gap: .55rem; font-size: .75rem; color: var(--muted); }
.mini-brand b { width: 1.45rem; height: 1.45rem; display: grid; place-items: center; border-radius: .4rem; color: var(--lime-ink); background: var(--lime); font-family: var(--serif); font-style: italic; }
.status-pill { padding: .45rem .7rem; border-radius: 999px; color: #4f6814; background: #eef5d8; outline: 1px solid rgba(102,130,29,.15); font-size: .64rem; }
.brief-preview { margin: 2.5rem 0 1.35rem; padding: 1.4rem; border-radius: 1.25rem; background: #f1f3e9; box-shadow: inset 0 1px rgba(255,255,255,.8); }
.preview-label { margin-bottom: .8rem; color: var(--lime); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.brief-preview p { margin-bottom: 0; color: #39443b; line-height: 1.6; font-size: .9rem; }
.map-line { display: grid; grid-template-columns: 2rem 1fr auto; gap: .85rem; align-items: center; padding: 1.15rem .4rem; border-bottom: 1px solid rgba(23,32,25,.07); color: var(--dim); }
.map-line > span { font-family: var(--serif); font-style: italic; }
.map-line b, .map-line small { display: block; }
.map-line b { color: #344036; font-size: .82rem; }
.map-line small { margin-top: .3rem; font-size: .67rem; }
.map-line i { font-style: normal; font-size: .66rem; }
.map-line.active { margin-inline: -.4rem; padding-inline: .8rem; border-radius: 1rem; color: #526b14; background: #f0f6dc; border-bottom-color: transparent; }
.device-footer { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; margin-top: 1.5rem; color: var(--dim); font-size: .65rem; }
.device-footer strong { color: var(--lime); }
.home-preview { min-height: 31rem; }
.home-score { margin: 2.4rem 0 1rem; padding: 1.4rem; border-radius: 1.25rem; background: #e7efcb; }
.home-score span, .home-score strong, .home-score small { display: block; }
.home-score span { color: #64742d; font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.home-score strong { margin: .3rem 0; color: #34430f; font-family: var(--serif); font-size: 3.4rem; font-style: italic; line-height: 1; }
.home-score small { color: #69725f; }
.product-story { display: grid; grid-template-columns: .78fr 1.22fr; gap: 7rem; align-items: start; padding-top: 10rem; }
.story-intro { position: sticky; top: 8rem; }
.story-intro h2 { max-width: 10ch; margin: 1.4rem 0 1.7rem; font-size: clamp(3.7rem, 6vw, 6.6rem); line-height: .91; letter-spacing: -.065em; }
.story-intro p { max-width: 29rem; color: var(--muted); line-height: 1.75; }
.story-stack { display: grid; gap: 1.2rem; padding-top: 7rem; }
.story-panel { position: relative; min-height: 25rem; display: grid; grid-template-columns: 1fr .9fr; align-items: end; gap: 2rem; overflow: hidden; padding: 2.3rem; border-radius: 2.3rem; background: var(--panel); box-shadow: 0 30px 90px rgba(70,86,57,.09), inset 0 1px rgba(255,255,255,.9); }
.story-panel:nth-child(2) { margin-left: -3rem; background: #e8eed3; }
.story-panel:nth-child(3) { margin-left: 2rem; background: #eef0e9; }
.story-panel > div:first-child > span { color: var(--lime); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.story-panel h3 { max-width: 14ch; margin: 1rem 0; font-size: 2rem; line-height: 1.05; letter-spacing: -.04em; }
.story-panel p { color: var(--muted); font-size: .78rem; line-height: 1.65; }
.story-ui { align-self: center; padding: 1.3rem; border-radius: 1.2rem; background: #f2f4eb; box-shadow: inset 0 1px rgba(255,255,255,.9); }
.story-ui small, .story-ui b, .story-ui i { display: block; }
.story-ui small { color: var(--lime); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.story-ui b { margin: 1.2rem 0 2.2rem; font-family: var(--serif); font-size: 1.25rem; font-weight: 400; font-style: italic; line-height: 1.35; }
.story-ui i { color: var(--dim); font-size: .62rem; font-style: normal; }
.mini-scorecard { align-self: center; display: grid; gap: .5rem; }
.mini-scorecard span { display: grid; grid-template-columns: .6rem 1fr auto; align-items: center; gap: .55rem; padding: .8rem; border-radius: .8rem; background: rgba(255,255,255,.65); font-size: .64rem; }
.mini-scorecard b { font-size: .56rem; text-transform: uppercase; }
.dot { width: .42rem; height: .42rem; border-radius: 50%; }
.dot.met { background: #71976a; }.dot.partial { background: #c99b45; }.dot.missing { background: #b45a4c; }
.story-panel ol { align-self: center; margin: 0; padding: 0; list-style: none; }
.story-panel li { display: grid; grid-template-columns: 2rem 1fr; gap: .8rem; padding: .8rem 0; border-bottom: 1px solid rgba(23,32,25,.08); color: #4d5850; font-size: .66rem; line-height: 1.5; }
.story-panel li b { color: var(--lime); font-family: var(--serif); font-style: italic; }
.progress { height: 3px; overflow: hidden; background: #dde1d6; }
.progress i { display: block; width: 73%; height: 100%; background: var(--lime); }
.floating-note { position: absolute; width: 13.5rem; padding: 1rem 1.1rem; border-radius: 1rem; background: rgba(255,254,250,.96); box-shadow: 0 25px 70px rgba(55,70,48,.16), inset 0 1px rgba(255,255,255,.9); outline: 1px solid rgba(23,32,25,.08); }
.floating-note span, .floating-note b, .floating-note small { display: block; }
.floating-note span { color: var(--lime); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.floating-note b { margin: .55rem 0 .25rem; font-size: .78rem; }
.floating-note small { color: var(--dim); font-size: .65rem; line-height: 1.45; }
.note-one { top: 8%; right: -3%; transform: rotate(-4deg); }
.note-two { bottom: 9%; left: -5%; transform: rotate(3deg); }

.proof-strip { width: 100%; overflow: hidden; display: flex; justify-content: center; align-items: center; gap: 2rem; padding: 1.35rem 1rem; color: #788178; background: #ecefe5; border-block: 1px solid rgba(23,32,25,.06); font-size: .67rem; letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; }
.proof-strip i { width: .25rem; height: .25rem; border-radius: 50%; background: #a6afa5; }
.product-truth-strip { width: min(76rem, calc(100% - 3rem)); display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 7.25rem auto 1.25rem; padding: .9rem 1rem; border-block: 1px solid rgba(23,32,25,.08); color: #59635b; background: rgba(255,254,250,.72); }
.product-truth-strip strong { display: block; color: var(--ink); font-size: .72rem; }
.product-truth-strip p { max-width: 48rem; margin: .18rem 0 0; font-size: .66rem; line-height: 1.45; }
.product-truth-chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.product-truth-chip { display: inline-flex; align-items: center; min-height: 1.75rem; padding: .35rem .6rem; border-radius: 999px; background: #edf2dd; color: #4d6516; font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }

.section-heading { display: grid; grid-template-columns: 1.15fr .55fr; gap: 5rem; align-items: end; margin-bottom: 3.5rem; }
.section-heading h2, .how h2, .integrity h2, .closing h2 { max-width: 11ch; margin: 1.3rem 0 0; font-size: clamp(3.2rem, 6vw, 6.5rem); line-height: .94; letter-spacing: -.06em; }
.section-heading > p, .how-intro > p { color: var(--muted); line-height: 1.7; }
.home-workflow { padding-top: 9rem; }
.workflow-grid { display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 1rem; }
.workflow-card { min-height: 20rem; display: flex; flex-direction: column; padding: 2rem; border-radius: 2rem; background: var(--panel); box-shadow: 0 25px 65px rgba(55,70,48,.08), inset 0 1px rgba(255,255,255,.9); outline: 1px solid rgba(23,32,25,.06); }
.workflow-card.featured { background: #e3edc0; }
.workflow-card > span { color: var(--lime); font-family: var(--serif); font-style: italic; }
.workflow-card h3 { margin: auto 0 .8rem; font-size: 1.4rem; }
.workflow-card p { margin-bottom: 0; color: var(--muted); font-size: .8rem; line-height: 1.65; }
.capability-bento { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: auto auto auto; gap: 1rem; }
.capability-card { min-height: 15rem; display: flex; flex-direction: column; padding: 1.8rem; border-radius: 1.8rem; background: var(--panel); box-shadow: 0 24px 70px rgba(55,70,48,.07), inset 0 1px rgba(255,255,255,.9); transition: transform .6s var(--curve), background .6s var(--curve); }
.capability-card:hover { transform: translateY(-4px); background: #f9fbf1; }
.capability-card > span { color: var(--lime); font-size: .57rem; letter-spacing: .12em; text-transform: uppercase; }
.capability-card h3 { max-width: 18ch; margin: auto 0 .7rem; font-size: 1.45rem; line-height: 1.08; }
.capability-card p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.6; }
.capability-card > b { margin-top: 1.2rem; font-size: .68rem; }
.capability-large { grid-row: span 2; min-height: 31rem; padding: 2.3rem; background: #e2edbb; }
.capability-large h3 { max-width: 11ch; font-size: 2.5rem; }
.capability-wide { grid-column: 1 / -1; min-height: 12rem; }
.pricing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.pricing-grid article { min-height: 12rem; padding: 1.4rem; border: 1px solid rgba(23,32,25,.1); border-radius: 1rem; background: rgba(255,255,255,.62); }
.pricing-grid span { color: var(--lime-ink); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pricing-grid h3 { margin: 1.1rem 0 .7rem; font-size: 1.25rem; }
.pricing-grid p { color: var(--muted); font-size: .74rem; line-height: 1.65; }
.tool-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 1rem; align-items: stretch; }
.form-shell, .result-shell { box-shadow: none; }
.form-core, .result-core { min-height: 48rem; padding: 1.65rem; }
.workspace-main { padding-top: 2rem; }
.workspace-heading { display: grid; grid-template-columns: 1.15fr .55fr; align-items: end; gap: 5rem; padding-top: 10rem; padding-bottom: 2.5rem; }
.workspace-heading h1 { max-width: 12ch; margin-bottom: 0; font-size: clamp(3.6rem, 6vw, 6.5rem); }
.workspace-heading > p { max-width: 32rem; margin-bottom: .5rem; color: var(--muted); line-height: 1.7; }
.workspace-tool { width: min(88rem, calc(100% - 3rem)); padding-top: 1rem; }
.workspace-page .form-core, .workspace-page .result-core { min-height: 58rem; }
.workspace-product-grid { display: grid; grid-template-columns: 12rem minmax(25rem, .9fr) minmax(29rem, 1.1fr); gap: 1rem; align-items: start; }
.workspace-product-grid > * { min-width: 0; }
.workspace-rail { position: sticky; top: 7rem; display: grid; gap: .35rem; padding: 1rem .45rem; }
.rail-label { margin: 0 .75rem .65rem; color: var(--dim); font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; }
.workspace-rail > a { display: grid; grid-template-columns: 1.5rem 1fr; gap: .55rem; align-items: start; padding: .75rem; border-radius: .85rem; color: var(--dim); font-size: .65rem; transition: color .35s ease, background .35s ease; }
.workspace-rail > a:hover, .workspace-rail > a.active { color: var(--ink); background: rgba(255,255,255,.62); }
.workspace-rail > a > b { color: var(--lime); font-family: var(--serif); font-style: italic; }
.workspace-rail > a span, .workspace-rail > a small { display: block; }
.workspace-rail > a small { margin-top: .2rem; color: var(--dim); font-size: .54rem; }
.rail-privacy { display: grid; grid-template-columns: .6rem 1fr; gap: .55rem; margin: 1.3rem .65rem 0; padding-top: 1rem; border-top: 1px solid var(--hairline); color: var(--dim); font-size: .56rem; line-height: 1.45; }
.rail-privacy i { width: .48rem; height: .48rem; margin-top: .12rem; border-radius: 50%; background: #789748; box-shadow: 0 0 0 4px rgba(120,151,72,.1); }
.rail-privacy b { display: block; margin-top: .2rem; color: #626c64; font-weight: 500; }
.workspace-input .form-core { padding: 1.2rem; }
.input-stage { padding: .65rem .35rem 1.5rem; }
.input-stage + .input-stage { margin-top: .8rem; padding-top: 1.7rem; border-top: 1px solid var(--hairline); }
.stage-heading { display: grid; grid-template-columns: 2.4rem 1fr; gap: .8rem; align-items: center; margin-bottom: 1.2rem; }
.stage-heading > span { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: .7rem; color: #526819; background: #e5edcb; font-family: var(--serif); font-size: .68rem; font-style: italic; }
.stage-heading h2 { margin: 0; font-size: 1rem; letter-spacing: -.02em; }
.stage-heading p { margin: .25rem 0 0; color: var(--dim); font-size: .6rem; }
.workspace-output { position: sticky; top: 6.5rem; padding: .45rem; border-radius: 2rem; background: rgba(223,229,211,.72); outline: 1px solid rgba(23,32,25,.06); }
.workspace-output .result-core { border-radius: calc(2rem - .45rem); }
.output-topline { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem .85rem 1rem; color: #667066; font-size: .62rem; }
.output-topline small { color: var(--dim); }

.catalog-main { min-height: 100dvh; padding-top: 11rem; }
.catalog-hero { display: grid; grid-template-columns: 1.2fr .55fr; align-items: end; gap: 5rem; }
.catalog-hero h1 { max-width: 11ch; margin-bottom: 0; font-size: clamp(4rem, 7vw, 7.2rem); }
.catalog-hero > p { max-width: 32rem; margin-bottom: .7rem; color: var(--muted); line-height: 1.75; }
.catalog-filters { display: flex; flex-wrap: wrap; gap: .45rem; margin: 4rem 0 1.4rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--hairline); }
.catalog-filters button { border: 0; padding: .65rem 1rem; border-radius: 999px; color: var(--muted); background: transparent; cursor: pointer; font-size: .68rem; }
.catalog-filters button.active { color: #fff; background: var(--ink); }
.template-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-flow: dense; gap: 1rem; }
.template-card { min-height: 20rem; display: flex; flex-direction: column; padding: 1.6rem; border-radius: 1.7rem; background: var(--panel); box-shadow: 0 22px 65px rgba(55,70,48,.07); }
.template-card.large { grid-row: span 2; min-height: 41rem; background: #e2edbb; }
.template-card.wide { grid-column: span 2; }
.template-card[hidden], .resource-list article[hidden] { display: none; }
.template-card > span, .resource-list article > span, .resource-layout aside > span { color: var(--lime); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.template-card h2 { margin: auto 0 .7rem; font-size: 1.5rem; line-height: 1.08; }
.template-card.large h2 { max-width: 10ch; font-size: 2.7rem; }
.template-card p { color: var(--muted); font-size: .72rem; line-height: 1.6; }
.template-card ul { padding-left: 1rem; color: #59635b; font-size: .66rem; line-height: 1.7; }
.template-card a { margin-top: 1.2rem; font-size: .68rem; font-weight: 700; }
.resource-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 1rem; }
.resource-layout > aside { position: sticky; top: 7rem; align-self: start; min-height: 29rem; display: flex; flex-direction: column; padding: 2rem; border-radius: 2rem; background: #e2edbb; }
.resource-layout aside h2 { max-width: 12ch; margin: auto 0 .9rem; font-size: 2.3rem; line-height: 1.04; }
.resource-layout aside p { color: #64705f; font-size: .76rem; line-height: 1.65; }
.resource-layout aside a { margin-top: 1.3rem; font-size: .7rem; font-weight: 700; }
.resource-list { display: grid; gap: .75rem; }
.resource-list article { border-radius: 1.4rem; background: var(--panel); box-shadow: 0 18px 55px rgba(55,70,48,.05); overflow: hidden; }
.resource-article summary { min-height: 10rem; display: grid; grid-template-columns: .65fr 1.4fr 2.2rem; gap: 2rem; align-items: center; padding: 1.5rem; cursor: pointer; list-style: none; }
.resource-article summary::-webkit-details-marker { display: none; }
.resource-article summary:focus-visible { outline: 2px solid var(--lime); outline-offset: -4px; }
.resource-summary-copy strong, .resource-summary-copy small { display: block; }
.resource-summary-copy strong { font-family: var(--serif); font-size: 1.3rem; line-height: 1.15; }
.resource-summary-copy small { margin-top: .55rem; color: var(--muted); font-size: .7rem; line-height: 1.65; }
.resource-toggle { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--ink); font-size: 1.1rem; transition: transform .35s var(--curve), background .35s var(--curve); }
.resource-article[open] .resource-toggle { transform: rotate(45deg); background: var(--lime); }
.resource-article[open] summary { border-bottom: 1px solid var(--hairline); }
.resource-body { padding: clamp(1.5rem, 4vw, 3rem); }
.resource-body > * { max-width: 46rem; margin-inline: auto; }
.resource-body p, .resource-body li { color: var(--muted); font-size: .78rem; line-height: 1.75; }
.resource-body h3 { margin-top: 2rem; font-size: 1.15rem; }
.resource-body ul, .resource-body ol { padding-left: 1.25rem; }
.resource-lead { color: var(--ink) !important; font-family: var(--serif); font-size: 1.25rem !important; line-height: 1.5 !important; }
.resource-example, .resource-check { margin-top: 2rem; padding: 1.4rem; border-radius: 1.2rem; }
.resource-example { background: #f0f2e9; }
.resource-check { background: #e2edbb; }
.resource-example > span, .resource-check > strong { display: block; margin-bottom: .7rem; color: #536317; font-size: .6rem; letter-spacing: .09em; text-transform: uppercase; }
.resource-example p:last-child, .resource-check ul { margin-bottom: 0; }
.resource-action { display: block; margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--hairline); font-size: .72rem; font-weight: 700; }
.resource-learning-center { scroll-margin-top: 7rem; }
.resource-action-row { display: flex; flex-wrap: wrap; gap: .55rem; margin: 2rem 0 1.2rem; }
.resource-action-row a { display: inline-flex; align-items: center; min-height: 2.4rem; padding: .65rem .9rem; border: 1px solid var(--hairline); border-radius: 8px; background: var(--panel); color: var(--ink); font-size: .66rem; font-weight: 700; text-decoration: none; }
.resource-start-grid, .resource-guide-grid, .resource-frame-grid, .resource-pitfall-grid, .resource-trust-grid, .knowledge-library-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.resource-guide-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: .8rem; }
.resource-start-grid > article, .resource-guide-grid > article, .resource-frame-grid > article, .resource-pitfall-grid > article, .resource-trust-grid > article, .knowledge-library-grid > article { min-width: 0; padding: 1.2rem; border-radius: 1.2rem; background: var(--panel); box-shadow: 0 18px 50px rgba(55,70,48,.05); }
.resource-start-grid > article > span, .resource-guide-grid > article > span { color: var(--lime); font-size: .54rem; letter-spacing: .09em; text-transform: uppercase; }
.resource-start-grid h3, .resource-guide-grid h3, .resource-frame-section h3, .resource-pitfall-section h3, .resource-trust-grid h3, .knowledge-library-grid h3 { margin: .65rem 0; font-size: 1.2rem; line-height: 1.15; }
.resource-start-grid p, .resource-start-grid li, .resource-guide-grid p, .resource-guide-grid li, .resource-pitfall-grid p, .resource-trust-grid p, .knowledge-library-grid p, .knowledge-library-grid li { color: var(--muted); font-size: .68rem; line-height: 1.6; }
.resource-guide-grid ul, .resource-start-grid ul { padding-left: 1.05rem; }
.resource-guide-grid a { display: inline-block; margin-top: .8rem; font-size: .66rem; font-weight: 700; }
.resource-frame-section, .resource-pitfall-section { margin-top: 2rem; }
.knowledge-library-section { margin-top: 2rem; scroll-margin-top: 7rem; }
.knowledge-library-grid { margin-top: .8rem; }
.knowledge-library-grid section { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--hairline); }
.knowledge-library-grid h4 { margin: 0 0 .4rem; font-size: .86rem; line-height: 1.25; }
.resource-frame-section > div:first-child, .resource-pitfall-section > div:first-child { max-width: 46rem; }
.resource-frame-section p, .resource-pitfall-section p { color: var(--muted); font-size: .72rem; line-height: 1.6; }
.resource-frame-grid code { display: block; margin-top: .7rem; padding: .85rem; border-radius: .75rem; background: #f0f3e5; white-space: normal; overflow-wrap: anywhere; font-family: inherit; font-size: .68rem; line-height: 1.6; }
.library-section { margin-top: clamp(5rem, 10vw, 9rem); scroll-margin-top: 7rem; }
.library-heading { display: grid; grid-template-columns: 1.1fr .65fr; align-items: end; gap: 4rem; }
.library-kicker { display: block; margin-bottom: 1rem; color: var(--lime); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.library-heading h2 { max-width: 13ch; margin: 0; font-size: clamp(2.7rem, 5vw, 5rem); line-height: .98; }
.library-heading > p { margin: 0 0 .4rem; color: var(--muted); font-size: .76rem; line-height: 1.7; }
.citation-tool { display: grid; grid-template-columns: 1.15fr .85fr; gap: .8rem; margin-top: 2.5rem; }
.citation-format-note { margin-top: 2rem; padding: 1rem 1.2rem; border-radius: 1rem; background: #e2edbb; }
.citation-format-note b, .citation-format-note p { display: inline; }
.citation-format-note b { margin-right: .55rem; font-size: .66rem; }
.citation-format-note p { color: #59635b; font-size: .66rem; line-height: 1.55; }
.citation-tool form, .citation-output, .citation-list-panel { padding: 1.4rem; border-radius: 1.35rem; background: var(--panel); box-shadow: 0 18px 50px rgba(55,70,48,.05); }
.citation-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.citation-form-grid label { display: grid; gap: .38rem; color: #53605a; font-size: .62rem; font-weight: 700; }
.citation-form-grid label[hidden] { display: none; }
.citation-form-grid input, .citation-form-grid select { width: 100%; border: 1px solid var(--hairline); border-radius: .75rem; padding: .8rem; color: var(--ink); background: #f7f8f2; font: inherit; font-weight: 400; }
.citation-form-grid small { color: var(--muted); font-size: .56rem; font-weight: 400; line-height: 1.45; }
.citation-span-two { grid-column: 1 / -1; }
.citation-actions { display: flex; gap: .6rem; margin-top: 1rem; }
.citation-actions button, .citation-output button, .citation-list-panel button { border: 0; border-radius: 999px; padding: .75rem 1rem; cursor: pointer; font-size: .64rem; font-weight: 700; }
.citation-actions .primary-button { color: #fff; background: var(--ink); }
.citation-actions .secondary-button, .citation-output button, .citation-list-panel button { color: var(--ink); background: #e9ece2; }
.citation-errors { min-height: 1.2em; margin: .7rem 0 0; color: #9b3427; font-size: .64rem; }
.citation-output > span { color: var(--lime); font-size: .56rem; letter-spacing: .09em; text-transform: uppercase; }
.citation-output > div { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--hairline); }
.citation-output small { color: var(--muted); font-size: .58rem; text-transform: uppercase; letter-spacing: .06em; }
.citation-output p { margin: .45rem 0 0; font-family: var(--serif); font-size: 1rem; line-height: 1.55; }
.citation-output em { font-family: inherit; }
.citation-output button { margin-top: .75rem; }
.citation-output .citation-note { color: var(--muted); font-family: inherit; font-size: .6rem; line-height: 1.5; }
.citation-output-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.citation-list-panel { grid-column: 1 / -1; }
.citation-list-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.citation-list-heading span { color: var(--lime); font-size: .56rem; letter-spacing: .09em; text-transform: uppercase; }
.citation-list-heading h3 { margin: .35rem 0 0; font-size: 1.45rem; }
.citation-list-heading b { color: var(--muted); font-size: .64rem; }
.citation-list-empty, #citation-list-status { color: var(--muted); font-size: .64rem; line-height: 1.55; }
#citation-list { display: grid; gap: .6rem; margin: 1rem 0 0; padding: 0; list-style: none; }
#citation-list[hidden] { display: none; }
#citation-list li { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .8rem; padding: .9rem; border-radius: .9rem; background: #f1f3e9; }
#citation-list li p { min-width: 0; margin: 0; padding-left: 1.5rem; text-indent: -1.5rem; overflow-wrap: anywhere; font-family: var(--serif); font-size: .78rem; line-height: 1.55; }
#citation-list li button { padding: .5rem .7rem; }
.citation-list-item-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.citation-list-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.citation-file-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.citation-import-preview { margin-top: .75rem; padding: .85rem; border: 1px solid var(--hairline); border-radius: .85rem; background: #f7f8f2; }
.citation-import-preview[hidden] { display: none; }
.citation-import-preview p { margin: 0; color: var(--muted); font-size: .64rem; line-height: 1.55; }
.citation-import-preview div { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .65rem; }
.citation-import-preview .citation-import-details { display: grid; gap: .65rem; }
.citation-import-details section { min-width: 0; }
.citation-import-details h4 { margin: 0 0 .35rem; font-size: .64rem; }
.citation-import-details ul { display: grid; gap: .4rem; margin: 0; padding-left: 1rem; }
.citation-import-details li { min-width: 0; overflow-wrap: anywhere; color: var(--ink); font-family: var(--serif); font-size: .68rem; line-height: 1.5; }
.citation-import-details li span { display: block; }
.citation-list-panel button.danger { color: #8a4039; }
.citation-list-panel button:disabled { cursor: not-allowed; opacity: .45; }
.citation-list-note { display: block; margin-top: .65rem; color: var(--muted); font-size: .58rem; line-height: 1.5; }
#citation-list-status { min-height: 1.2em; margin: .65rem 0 0; }
.library-filters { display: flex; flex-wrap: wrap; gap: .45rem; margin: 2.5rem 0 1.2rem; }
.library-filters button { border: 0; padding: .6rem .9rem; border-radius: 999px; color: var(--muted); background: #eceee5; cursor: pointer; font-size: .66rem; }
.library-filters button.active { color: #fff; background: var(--ink); }
.loss-point-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.loss-point-card { min-height: 19rem; display: flex; flex-direction: column; padding: 1.35rem; border-radius: 1.35rem; background: var(--panel); box-shadow: 0 18px 50px rgba(55,70,48,.05); }
.loss-point-card[hidden] { display: none; }
.loss-point-card > span { color: var(--lime); font-size: .54rem; letter-spacing: .09em; text-transform: uppercase; }
.loss-point-card h3 { margin: 1.2rem 0 .65rem; font-size: 1.2rem; line-height: 1.12; }
.loss-point-card > p, .loss-point-card div p { color: var(--muted); font-size: .68rem; line-height: 1.6; }
.loss-point-card > div { margin-top: auto; padding: .85rem; border-radius: .8rem; background: #f0f2e9; }
.loss-point-card div b { color: #536317; font-size: .56rem; letter-spacing: .07em; text-transform: uppercase; }
.loss-point-card div p { margin: .4rem 0 0; }
.phrase-library { padding-bottom: 2rem; }
.phrase-notice { margin: 2.5rem 0 1rem; padding: 1.15rem 1.3rem; border-radius: 1rem; background: #e2edbb; }
.phrase-notice b, .phrase-notice p { display: inline; }
.phrase-notice b { margin-right: .6rem; font-size: .68rem; }
.phrase-notice p { color: #59635b; font-size: .68rem; line-height: 1.55; }
.sentence-pattern-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.sentence-pattern { border-radius: 1.25rem; background: var(--panel); overflow: hidden; }
.sentence-pattern summary { display: grid; grid-template-columns: 2rem 1fr; gap: .3rem .8rem; padding: 1.25rem; cursor: pointer; list-style: none; }
.sentence-pattern summary::-webkit-details-marker { display: none; }
.sentence-pattern summary:focus-visible { outline: 2px solid var(--lime); outline-offset: -4px; }
.sentence-pattern summary > span { grid-row: 1 / 3; color: var(--lime); font-family: var(--serif); font-style: italic; }
.sentence-pattern summary strong { font-family: var(--serif); font-size: 1.2rem; }
.sentence-pattern summary small { color: var(--muted); font-size: .64rem; line-height: 1.5; }
.sentence-pattern[open] summary { border-bottom: 1px solid var(--hairline); }
.sentence-pattern > div { padding: 1.25rem; }
.sentence-pattern code { display: block; padding: 1rem; border-radius: .8rem; color: #33410f; background: #f0f3e5; font-family: inherit; font-size: .74rem; line-height: 1.7; white-space: normal; }
.sentence-pattern > div p { margin: .8rem 0 0; color: var(--muted); font-size: .66rem; line-height: 1.55; }
.form-topline { margin-bottom: 2rem; color: var(--muted); font-size: .74rem; }
.sample-button { border: 0; border-bottom: 1px solid rgba(23,32,25,.18); padding: .35rem 0; color: var(--lime); background: transparent; cursor: pointer; font-size: .68rem; }
.document-upload { margin-bottom: 1.5rem; }
.unified-upload-intake {
  margin-bottom: 1.5rem;
  padding: 1rem;
  border: 1px solid rgba(23,32,25,.1);
  border-radius: 1.2rem;
  background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(244,247,234,.72));
}
.unified-upload-intake > span,
.commentary-heading span {
  color: var(--lime-ink);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.unified-upload-intake h2 { margin: .35rem 0 .45rem; font-size: 1.05rem; }
.unified-upload-intake p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.55; }
.material-type-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: .9rem; }
.material-type-grid a { display: block; min-height: 5rem; padding: .75rem; border: 1px solid rgba(23,32,25,.09); border-radius: .9rem; color: var(--ink); background: rgba(255,255,255,.7); transition: transform .2s var(--curve), border-color .2s var(--curve), background .2s var(--curve); }
.material-type-grid a:hover { border-color: rgba(100,122,36,.4); background: #fff; transform: translateY(-1px); }
.material-type-grid b, .material-type-grid small { display: block; }
.material-type-grid b { font-size: .72rem; }
.material-type-grid small { margin-top: .3rem; color: var(--dim); font-size: .58rem; line-height: 1.4; }
.document-upload input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.document-upload-button { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; padding: 1rem 1.1rem; border: 1px dashed rgba(23,32,25,.18); border-radius: 1rem; color: #354037; background: rgba(255,255,255,.48); cursor: pointer; transition: border-color .25s ease, background .25s ease; }
.document-upload-button:hover { border-color: #81943e; background: #f4f7ea; }
.document-upload input:focus-visible + .document-upload-button { outline: 2px solid #647a24; outline-offset: 3px; }
.document-upload-button span { font-size: .74rem; font-weight: 700; }
.document-upload-button b { color: var(--dim); font-size: .56rem; font-weight: 500; letter-spacing: .04em; }
.document-upload p { margin: .55rem .2rem 0; color: var(--dim); font-size: .6rem; line-height: 1.45; }
.document-upload p[data-state="loading"] { color: #6b7b36; }
.document-upload p[data-state="success"] { color: #4f6814; }
.document-upload p[data-state="error"] { color: #a44737; }
.assignment-analysis-mock-panel { margin-bottom: 1.5rem; padding: 1rem; border: 1px solid rgba(23,32,25,.12); border-radius: 1rem; background: #eef4db; }
.assignment-analysis-mock-panel h2 { margin: .3rem 0 .45rem; font-size: 1.1rem; letter-spacing: 0; }
.assignment-analysis-mock-panel p { margin: 0 0 .9rem; color: var(--dim); font-size: .68rem; line-height: 1.55; }
.mock-preview-kicker { color: #607122; font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.assignment-analysis-mock-status { margin-top: .75rem !important; color: #4f6814 !important; }
.assignment-analysis-file-picker { margin: 1rem 0; }
.assignment-analysis-file-picker input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.assignment-analysis-file-picker input:focus-visible + .document-upload-button { outline: 2px solid #647a24; outline-offset: 3px; }
.assignment-analysis-selected-files { margin: .9rem 0; padding: .8rem; border: 1px solid rgba(23,32,25,.08); border-radius: .9rem; background: rgba(255,255,255,.48); }
.assignment-analysis-selected-files[data-state="ready-for-future-upload"] { border-color: rgba(79,104,20,.28); background: #f4f8e7; }
.assignment-analysis-selected-files[data-state="selected-invalid"] { border-color: rgba(164,71,55,.28); background: #fff3ec; }
.assignment-analysis-file-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.assignment-analysis-file-toolbar p { margin: 0; }
.assignment-analysis-file-toolbar .text-button:disabled { cursor: default; opacity: .45; }
#assignment-analysis-file-list { display: grid; gap: .5rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.assignment-analysis-file-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; align-items: start; padding: .65rem; border-radius: .7rem; background: rgba(255,255,255,.7); }
.assignment-analysis-file-row b, .assignment-analysis-file-row small { display: block; min-width: 0; overflow-wrap: anywhere; }
.assignment-analysis-file-row b { color: #2f3a31; font-size: .66rem; }
.assignment-analysis-file-row small { margin-top: .2rem; color: var(--dim); font-size: .54rem; }
.assignment-analysis-file-row > span { border-radius: 999px; padding: .25rem .45rem; color: #4f6814; background: #e7efcb; font-size: .52rem; font-weight: 800; text-transform: uppercase; }
.assignment-analysis-file-row.file-error > span { color: #9a3e2f; background: #f8d9ce; }
.assignment-analysis-file-row p { grid-column: 1 / -1; margin: 0; color: #9a3e2f; font-size: .58rem; }
.assignment-analysis-future-state { padding: .7rem .8rem; border-radius: .8rem; color: #596541 !important; background: #edf3d5; }
.assignment-analysis-request-actions { display: grid; gap: .6rem; margin: .9rem 0 1rem; }
.assignment-analysis-request-actions .button:disabled { cursor: default; opacity: .48; }
.assignment-analysis-request-actions p { margin: 0; color: #5f685f; font-size: .62rem; line-height: 1.45; }
.assignment-analysis-mock-panel[data-request-state="analyzing"] .assignment-analysis-request-actions p { color: #6b7b36; }
.assignment-analysis-mock-panel[data-request-state="success"] .assignment-analysis-request-actions p { color: #4f6814; }
.assignment-analysis-mock-panel[data-request-state="route-disabled"] .assignment-analysis-request-actions p,
.assignment-analysis-mock-panel[data-request-state="authentication-required"] .assignment-analysis-request-actions p,
.assignment-analysis-mock-panel[data-request-state="permission-denied"] .assignment-analysis-request-actions p,
.assignment-analysis-mock-panel[data-request-state="rate-limited"] .assignment-analysis-request-actions p,
.assignment-analysis-mock-panel[data-request-state="error"] .assignment-analysis-request-actions p { color: #9a3e2f; }
.chart-upload { margin-bottom: 1rem; }
.chart-upload input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.chart-upload input:focus-visible + .document-upload-button { outline: 2px solid #647a24; outline-offset: 3px; }
.chart-upload p { margin: .55rem .2rem 0; color: var(--dim); font-size: .6rem; line-height: 1.45; }
.chart-upload p[data-state="success"] { color: #4f6814; }
.chart-upload p[data-state="error"] { color: #a44737; }
.chart-preview { overflow: hidden; margin: 1rem 0 1.2rem; border: 1px solid rgba(23,32,25,.08); border-radius: 1rem; background: #eef0e8; }
.chart-preview img { display: block; width: 100%; max-height: 22rem; object-fit: contain; }
.draft-divider { display: flex; align-items: center; gap: .8rem; margin: 1.8rem 0 1rem; color: #697269; font-size: .62rem; letter-spacing: .09em; text-transform: uppercase; }
.draft-divider i { flex: 1; height: 1px; background: rgba(23,32,25,.1); }
.compact-upload { margin-bottom: .8rem; }
label { display: flex; justify-content: space-between; margin: 1.35rem 0 .65rem; color: #354037; font-size: .78rem; }
label b { color: var(--lime); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }
label .optional { color: var(--dim); }
input[type="text"], textarea { width: 100%; resize: vertical; border: 0; border-radius: 1.2rem; outline: 1px solid rgba(23,32,25,.1); padding: 1rem; color: var(--ink); background: #f5f5ef; line-height: 1.55; transition: outline-color .55s var(--curve), background .55s var(--curve); }
input[type="text"]:focus, textarea:focus { outline-color: rgba(102,130,29,.48); background: #fffefa; }
input[type="text"]::placeholder, textarea::placeholder { color: #929991; }
.field-meta { display: flex; justify-content: space-between; gap: .8rem; margin-top: .55rem; color: #8c948c; font-size: .59rem; }
#code, #result-table { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: .72rem; line-height: 1.55; tab-size: 2; }
.form-error { min-height: 1.15rem; margin-top: 1rem; color: #ff9d88; font-size: .72rem; }
.form-actions { display: flex; align-items: center; gap: 1rem; margin-top: .6rem; }
.submit-button { flex: 1; }
.reset-button { border: 0; padding: .75rem; color: var(--dim); background: transparent; cursor: pointer; }
.result-core { position: relative; overflow: hidden; background: #f1f3e9; }
.empty-result { display: grid; place-content: center; justify-items: center; text-align: center; }
.empty-orbit { position: relative; width: 11rem; height: 11rem; display: grid; place-items: center; margin-bottom: 2rem; border-radius: 50%; border: 1px solid rgba(23,32,25,.1); }
.empty-orbit::before { content: ""; position: absolute; inset: 1.4rem; border-radius: 50%; border: 1px dashed rgba(215,255,99,.24); animation: spin 18s linear infinite; }
.empty-orbit b { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: .9rem; color: var(--lime-ink); background: var(--lime); font-family: var(--serif); font-size: 1.4rem; font-style: italic; }
.empty-orbit span { position: absolute; color: #899189; font-family: var(--serif); font-size: .7rem; font-style: italic; }
.empty-orbit span:nth-child(1) { top: 1.2rem; left: 2rem; }
.empty-orbit span:nth-child(2) { right: .9rem; bottom: 3rem; }
.empty-orbit span:nth-child(3) { left: 1.2rem; bottom: 2rem; }
.empty-result h3 { margin-bottom: .8rem; font-size: 1.25rem; }
.empty-result > p { max-width: 25rem; color: var(--muted); font-size: .82rem; line-height: 1.65; }
.centered { margin-top: 1rem; }
.result-ready { animation: resultIn .8s var(--curve) both; }
.result-kicker { color: var(--lime); font-size: .58rem; letter-spacing: .13em; text-transform: uppercase; }
.result-header h3 { margin: .4rem 0 0; font-size: 1.5rem; letter-spacing: -.03em; }
.result-summary { margin: 1.4rem 0; padding: 1.1rem; border-radius: 1rem; color: #59635b; background: rgba(255,255,255,.62); line-height: 1.6; font-size: .78rem; }
.context-card { margin-top: 1.35rem; padding: 1rem 1.1rem; border-radius: 1rem; color: #253128; background: #dfe9bd; }
.context-card span { color: #5f741f; font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.context-card p { margin: .55rem 0 0; font-size: .76rem; line-height: 1.55; }
.result-tabs { display: flex; gap: .45rem; padding-bottom: 1.1rem; border-bottom: 1px solid rgba(23,32,25,.08); }
.result-tabs { overflow-x: auto; scrollbar-width: none; }
.result-tabs::-webkit-scrollbar { display: none; }
.result-tabs button { white-space: nowrap; }
.result-tabs button { border: 0; padding: .5rem .75rem; border-radius: 999px; color: var(--dim); background: transparent; cursor: pointer; font-size: .68rem; transition: color .5s var(--curve), background .5s var(--curve); }
.result-tabs button.active { color: var(--lime-ink); background: var(--lime); }
.result-view { display: none; padding-top: .35rem; }
.result-view.active { display: block; animation: resultIn .55s var(--curve) both; }
.result-item { display: grid; grid-template-columns: 2rem 1fr; gap: .9rem; padding: 1rem 0; border-bottom: 1px solid rgba(23,32,25,.07); }
.result-item > span { color: var(--lime); font-family: var(--serif); font-size: .75rem; font-style: italic; }
.result-item b { font-size: .78rem; }
.result-item p { margin: .35rem 0 0; color: var(--dim); font-size: .68rem; line-height: 1.5; }
.structure-list { list-style: none; margin: 0; padding: 0; }
.structure-list li { display: grid; grid-template-columns: 1rem 1fr; gap: .75rem; padding: .9rem 0; }
.structure-list li > span { width: .45rem; height: .45rem; margin-top: .25rem; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 5px rgba(215,255,99,.06); }
.structure-list b, .structure-list small { display: block; }
.structure-list b { font-size: .78rem; }
.structure-list small { margin-top: .3rem; color: var(--dim); line-height: 1.5; }
.risk-list, .next-list { padding-left: 1.1rem; color: var(--muted); font-size: .72rem; line-height: 1.65; }
.result-view h4 { margin: 1.6rem 0 .7rem; font-size: .8rem; }
.assignment-explanation-panel,
.comment-style-feedback {
  display: grid;
  gap: .85rem;
  padding: 1rem;
  border: 1px solid rgba(23,32,25,.1);
  border-radius: 1rem;
  background: rgba(255,255,255,.58);
}
.commentary-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.commentary-heading b { font-size: .68rem; }
.commentary-lede { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.65; }
.explanation-list { display: grid; gap: .55rem; }
.explanation-row { display: grid; grid-template-columns: 2rem 1fr; gap: .75rem; padding: .75rem; border-radius: .85rem; background: rgba(241,243,233,.78); }
.explanation-row > span,
.comment-pin { color: var(--lime); font-family: var(--serif); font-style: italic; }
.explanation-row b { font-size: .72rem; }
.explanation-row p,
.rubric-decoding-list p,
.method-explanation-list p { margin: .3rem 0 0; color: var(--dim); font-size: .66rem; line-height: 1.5; }
.rubric-decoding-list,
.method-explanation-list { display: grid; gap: .55rem; padding: 0; list-style: none; }
.rubric-decoding-list li,
.method-explanation-list li { padding: .75rem; border-radius: .85rem; background: rgba(241,243,233,.78); }
.rubric-decoding-list span { display: inline-block; margin-left: .5rem; color: var(--dim); font-size: .62rem; }
.comment-list { display: grid; gap: .7rem; }
.comment-card { display: grid; grid-template-columns: 2rem 1fr; gap: .8rem; padding: .85rem; border-left: 3px solid var(--lime); border-radius: .8rem; background: #fff; }
.comment-card span { display: block; margin-bottom: .45rem; font-size: .68rem; font-weight: 800; }
.comment-card p { margin: .45rem 0 0; color: var(--dim); font-size: .66rem; line-height: 1.5; }
.comment-card strong { display: block; color: var(--ink); font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; }
.constraint-list, .evidence-list { margin: 0; padding: 0; list-style: none; }
.constraint-list li, .evidence-list li { position: relative; margin-bottom: .55rem; padding: .8rem .85rem .8rem 2rem; border-radius: .8rem; color: #59635b; background: rgba(255,255,255,.64); font-size: .68rem; line-height: 1.5; }
.constraint-list li::before, .evidence-list li::before { content: ""; position: absolute; left: .85rem; top: 1.05rem; width: .38rem; height: .38rem; border-radius: 50%; background: var(--lime); }
.task-map-item { display: grid; grid-template-columns: 2rem 1fr; gap: .9rem; padding: 1rem 0; border-bottom: 1px solid rgba(23,32,25,.07); }
.task-map-item > span { color: var(--lime); font-family: var(--serif); font-size: .75rem; font-style: italic; }
.task-map-item b, .task-map-item small { display: block; }
.task-map-item b { font-size: .74rem; line-height: 1.45; }
.task-map-item small { width: max-content; margin-top: .5rem; padding: .25rem .45rem; border-radius: .4rem; color: #536317; background: #e4ecc8; font-size: .55rem; text-transform: uppercase; }
.task-progress { margin: .6rem 0 1rem; padding: 1rem; border-radius: 1rem; background: rgba(255,255,255,.72); }
.task-progress > div:first-child { display: flex; justify-content: space-between; gap: 1rem; color: var(--dim); font-size: .62rem; }
.task-progress strong { color: var(--ink); font-size: .64rem; }
.task-progress-track { height: .35rem; margin-top: .75rem; overflow: hidden; border-radius: 999px; background: #e3e8da; }
.task-progress-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--lime); transition: width .45s var(--curve); }
.task-group, .task-section { border-radius: 1rem; }
.task-group { margin-bottom: .7rem; border: 1px solid rgba(23,32,25,.08); background: rgba(255,255,255,.48); }
.task-section { margin-top: .55rem; background: rgba(255,255,255,.7); }
.task-group summary, .task-section summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.task-group summary::-webkit-details-marker, .task-section summary::-webkit-details-marker { display: none; }
.task-group > summary { padding: 1rem; font-weight: 700; font-size: .78rem; }
.task-section > summary { padding: .8rem .9rem; color: #445044; font-size: .7rem; }
.task-group summary::after, .task-section summary::after { content: "+"; order: 3; color: var(--dim); font-size: .9rem; }
.task-group[open] > summary::after, .task-section[open] > summary::after { content: "−"; }
.task-group summary small, .task-section summary small { margin-left: auto; color: var(--dim); font-size: .55rem; font-weight: 500; }
.task-group-body { padding: 0 .65rem .65rem; }
.task-section-body { padding: 0 .75rem .4rem; }
.hierarchy-task { position: relative; display: grid; grid-template-columns: 1.2rem 1fr; gap: .7rem; padding: .8rem 0; border-top: 1px solid rgba(23,32,25,.06); cursor: pointer; }
.hierarchy-task input { position: absolute; opacity: 0; pointer-events: none; }
.task-check { width: 1rem; height: 1rem; margin-top: .12rem; border: 1px solid #bbc5b4; border-radius: .3rem; background: #fff; transition: background .25s ease, border-color .25s ease; }
.hierarchy-task input:checked + .task-check { border-color: var(--lime-ink); background: var(--lime); box-shadow: inset 0 0 0 3px #fff; }
.hierarchy-task input:focus-visible + .task-check { outline: 2px solid #647a24; outline-offset: 2px; }
.task-copy b { display: block; font-size: .68rem; line-height: 1.45; }
.hierarchy-task input:checked ~ .task-copy b { color: var(--dim); text-decoration: line-through; }
.task-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .45rem; }
.task-tags small { padding: .22rem .4rem; border-radius: .35rem; color: #536317; background: #e4ecc8; font-size: .5rem; text-transform: uppercase; }
.task-tags small + small { color: #5d665d; background: #edf0e9; }
.empty-section { margin: .6rem 0; color: var(--dim); font-size: .65rem; }
.rubric-signals { display: grid; gap: .55rem; }
.rubric-signal { padding: .9rem; border-radius: .85rem; background: rgba(255,255,255,.64); }
.rubric-signal b { font-size: .72rem; }
.rubric-signal p { margin: .35rem 0 0; color: var(--dim); font-size: .65rem; line-height: 1.5; }
.rubric-breakdown { display: grid; gap: .55rem; }
.rubric-criterion { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .85rem 1rem; border-radius: .9rem; background: #f1f3e9; }
.rubric-criterion b { font-size: .72rem; }
.rubric-criterion span { flex: 0 0 auto; color: #526819; font-family: var(--serif); font-size: .72rem; font-style: italic; }
.rubric-bands { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: .8rem 0 1.8rem; color: var(--dim); font-size: .62rem; }
.rubric-bands strong { margin-right: .25rem; color: var(--muted); }
.rubric-bands span { padding: .35rem .55rem; border-radius: 999px; background: #e7efcb; color: #526819; }
.integrity-note { display: grid; grid-template-columns: 1.5rem 1fr; gap: .7rem; margin-top: 1rem; padding: .9rem; border-radius: .9rem; background: #e9efd8; }
.integrity-note > span { width: 1.35rem; height: 1.35rem; display: grid; place-items: center; border-radius: 50%; color: var(--lime); outline: 1px solid rgba(215,255,99,.25); font-family: var(--serif); font-style: italic; }
.integrity-note p { margin: 0; color: #657060; font-size: .62rem; line-height: 1.5; }
.assignment-analysis-result-core { overflow: auto; }
.assignment-analysis-result { display: grid; gap: 1rem; }
.assignment-analysis-hero { padding: 1.1rem; border-radius: 1rem; background: #dfe9bd; }
.assignment-analysis-hero h3 { margin: .5rem 0 .35rem; font-size: 1.45rem; letter-spacing: 0; }
.assignment-analysis-hero p, .assignment-analysis-copy { margin: 0; color: #5b675d; font-size: .72rem; line-height: 1.6; }
.source-confirmation-notice { padding: 1rem; border: 1px solid rgba(94,117,22,.22); border-radius: 1rem; background: rgba(255,255,255,.68); }
.source-confirmation-notice b { display: block; color: #344036; font-size: .78rem; }
.source-confirmation-notice p { margin: .4rem 0 0; color: #61705b; font-size: .66rem; line-height: 1.55; }
.assignment-analysis-section { padding-top: .5rem; }
.assignment-analysis-section h4 { margin: 0 0 .75rem; font-size: .86rem; }
.assignment-analysis-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-bottom: .8rem; }
.assignment-analysis-summary-grid article, .assignment-analysis-card, .assignment-analysis-candidate { padding: .85rem; border: 1px solid rgba(23,32,25,.08); border-radius: .8rem; background: rgba(255,255,255,.62); }
.assignment-analysis-summary-grid span, .assignment-analysis-card span { display: block; margin-bottom: .35rem; color: var(--dim); font-size: .56rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.assignment-analysis-summary-grid b, .assignment-analysis-card h5, .assignment-analysis-candidate h5 { display: block; margin: 0; color: #28332b; font-size: .74rem; line-height: 1.35; }
.assignment-analysis-card-grid, .assignment-analysis-candidate-list { display: grid; gap: .65rem; }
.assignment-analysis-card p, .assignment-analysis-candidate p { margin: .45rem 0 0; color: var(--dim); font-size: .64rem; line-height: 1.5; }
.assignment-analysis-card small, .assignment-analysis-candidate small { display: block; margin-top: .55rem; color: #6f7a70; font-size: .56rem; line-height: 1.4; }
.explicit-requirement-card { border-color: rgba(94,117,22,.18); }
.candidate-only-badge, .source-confirmation-badge { display: inline-flex; align-items: center; min-height: 1.35rem; margin: 0 .35rem .55rem 0; padding: .25rem .5rem; border-radius: 999px; background: #d7ff63; color: #253128; font-size: .55rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.source-confirmation-badge { background: #edf3d5; color: #596541; outline: 1px solid rgba(23,32,25,.08); }
.warning-section { padding: .9rem; border-radius: 1rem; background: #fff3d8; }
.assignment-analysis-warning-list { margin: 0; padding-left: 1.1rem; color: #7a5b24; font-size: .64rem; line-height: 1.55; }
.assignment-analysis-empty { margin: 0; color: var(--dim); font-size: .64rem; }
.assignment-analysis-processing { display: flex; flex-wrap: wrap; gap: .45rem; }
.assignment-analysis-processing span { padding: .35rem .55rem; border-radius: 999px; color: #64705f; background: rgba(255,255,255,.66); font-size: .55rem; }
.assignment-analysis-product-flow { display: grid; gap: .85rem; padding: 1rem; border: 1px solid rgba(58,69,47,.12); border-radius: .9rem; background: #f8f5ea; }
.assignment-analysis-product-heading { display: grid; gap: .25rem; }
.assignment-analysis-product-heading span, .assignment-analysis-product-flow article > span, .assignment-analysis-product-flow h5 span, .assignment-analysis-dashboard-grid article > span, .assignment-analysis-readiness > span { color: var(--dim); font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.assignment-analysis-product-heading h4 { margin: 0; color: #28332b; font-size: .9rem; letter-spacing: 0; }
.assignment-analysis-product-heading p { margin: 0; color: #5f685f; font-size: .66rem; line-height: 1.55; }
.assignment-analysis-readiness { display: grid; gap: .45rem; padding: .85rem; border: 1px solid rgba(69,84,48,.16); border-radius: .65rem; background: #eef4dc; color: #3d473b; }
.assignment-analysis-readiness h3, .assignment-analysis-readiness h5 { margin: 0; color: #273328; font-size: .86rem; letter-spacing: 0; }
.assignment-analysis-readiness p { margin: 0; color: #53614e; font-size: .64rem; line-height: 1.5; }
.assignment-analysis-readiness ul { margin: 0; padding-left: 1rem; color: #53614e; font-size: .62rem; line-height: 1.5; }
.assignment-analysis-mode-status { display: grid; gap: .7rem; margin: .9rem 0; padding: .85rem; border: 1px solid rgba(29,53,87,.14); border-radius: .75rem; background: #f8fbff; }
.assignment-analysis-mode-status span, .assignment-analysis-mode-grid article > span { color: var(--dim); font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.assignment-analysis-mode-status h3 { margin: .25rem 0; color: #253149; font-size: .9rem; letter-spacing: 0; }
.assignment-analysis-mode-status p { margin: 0; color: #526071; font-size: .64rem; line-height: 1.5; }
.assignment-analysis-mode-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.assignment-analysis-mode-grid article { min-width: 0; padding: .7rem; border: 1px solid rgba(29,53,87,.1); border-radius: .65rem; background: rgba(255,255,255,.72); }
.assignment-analysis-mode-grid h5 { margin: .3rem 0; color: #253149; font-size: .68rem; line-height: 1.35; letter-spacing: 0; }
.assignment-analysis-mode-grid small { display: block; margin-top: .45rem; color: #627086; font-size: .54rem; line-height: 1.4; overflow-wrap: anywhere; }
.assignment-analysis-flow-steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .5rem; margin: 0; padding: 0; list-style: none; }
.assignment-analysis-flow-steps li { min-width: 0; padding: .65rem; border: 1px solid rgba(23,32,25,.08); border-radius: .55rem; background: #fffdf8; color: #394339; font-size: .58rem; font-weight: 800; line-height: 1.35; }
.assignment-analysis-flow-steps b { display: block; margin-bottom: .25rem; color: #667b28; font-family: var(--serif); font-size: .62rem; font-style: italic; }
.assignment-analysis-flow-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.assignment-analysis-flow-grid article, .assignment-analysis-next-card { min-width: 0; padding: .85rem; border: 1px solid rgba(23,32,25,.08); border-radius: .75rem; background: rgba(255,255,255,.72); }
.assignment-analysis-flow-grid h5, .assignment-analysis-next-card h5 { margin: .35rem 0 .45rem; color: #28332b; font-size: .74rem; line-height: 1.35; letter-spacing: 0; }
.assignment-analysis-flow-grid p, .assignment-analysis-flow-grid li, .assignment-analysis-next-card li { color: var(--dim); font-size: .62rem; line-height: 1.5; }
.assignment-analysis-flow-grid p { margin: .35rem 0 0; }
.assignment-analysis-flow-grid ul, .assignment-analysis-flow-grid ol, .assignment-analysis-next-card ul, .assignment-analysis-next-card ol { margin: .55rem 0 0; padding-left: 1rem; }
.assignment-analysis-save-panel, .assignment-analysis-saved { display: grid; gap: .85rem; padding: 1rem; border: 1px solid rgba(58,69,47,.12); border-radius: .9rem; background: #fffdf8; }
.assignment-analysis-save-panel { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.assignment-analysis-save-panel span, .assignment-analysis-saved > span { color: var(--dim); font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.assignment-analysis-save-panel h4, .assignment-analysis-saved h3 { margin: .25rem 0; color: #28332b; font-size: .88rem; letter-spacing: 0; }
.assignment-analysis-save-panel p, .assignment-analysis-saved p { margin: 0; color: #5f685f; font-size: .64rem; line-height: 1.5; }
.assignment-analysis-action-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.assignment-analysis-action-row a { display: inline-flex; align-items: center; min-height: 2rem; padding: .45rem .65rem; border-radius: .55rem; color: #344036; background: #e9efd8; font-size: .6rem; font-weight: 800; text-decoration: none; }
.assignment-analysis-safety-note { margin: 0; padding: .75rem .85rem; border-radius: .7rem; color: #5c634f; background: #edf3d5; font-size: .62rem; line-height: 1.5; }
.copy-button { width: 100%; display: flex; justify-content: space-between; margin-top: 1rem; border: 0; border-radius: 999px; padding: .8rem 1rem; color: #344036; background: rgba(255,255,255,.72); cursor: pointer; }
.report-export-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; margin-top: 1rem; padding: .9rem; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.58); }
.report-export-button { border: 1px solid var(--ink); border-radius: 999px; background: transparent; color: var(--ink); padding: .65rem .9rem; font: inherit; font-weight: 700; cursor: pointer; }
.report-export-button:disabled { cursor: wait; opacity: .55; }
.report-export-actions small { flex-basis: 100%; color: var(--muted); }
.guidance-panel, .gating-panel { margin-top: 1rem; padding: 1rem; border: 1px solid rgba(23,32,25,.08); border-radius: 10px; background: rgba(255,255,255,.62); }
.guidance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.guidance-card { min-width: 0; padding: .75rem; border: 1px solid rgba(23,32,25,.08); border-radius: 8px; background: rgba(241,243,233,.72); }
.guidance-card span, .gating-panel span { display: block; color: var(--dim); font-size: .54rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.guidance-card h4, .gating-panel h4 { margin: .35rem 0 .25rem; font-size: .74rem; letter-spacing: 0; }
.guidance-card p, .guidance-card small, .gating-panel p, .gating-panel li span { color: var(--dim); font-size: .62rem; line-height: 1.5; }
.gating-panel ul { display: grid; gap: .55rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.gating-panel li { display: grid; gap: .18rem; padding: .65rem; border-radius: 8px; background: rgba(241,243,233,.7); }
.chart-verification { display: grid; gap: .65rem; margin-top: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.5); }
.chart-verification legend { padding: 0 .35rem; font-weight: 800; color: var(--ink); }
.chart-verification p { margin: 0 0 .2rem; color: var(--muted); font-size: .9rem; }
.chart-verification > label:not([for]) { display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: start; margin: 0; font-size: .9rem; }
.chart-verification input[type="checkbox"] { margin-top: .18rem; }
.score-band-card { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-top: .8rem; }
.score-band-card > div { padding: 1.1rem; border-radius: 1rem; background: rgba(255,255,255,.72); }
.score-band-card span, .risk-card > span, .missing-card > span, .action-card small { display: block; color: var(--dim); font-size: .54rem; letter-spacing: .09em; text-transform: uppercase; }
.score-band-card strong { display: block; margin-top: .35rem; color: #33410f; font-family: var(--serif); font-size: 2.2rem; font-style: italic; font-variant-numeric: tabular-nums; }
.risk-label { display: inline-block; margin-top: .65rem; padding: .35rem .55rem; border-radius: 999px; font-size: .66rem; text-transform: capitalize; }
.risk-low { color: #35623c; background: #e2f0df; }
.risk-medium { color: #7b5b1f; background: #f3e9c8; }
.risk-high { color: #8d3d31; background: #f4ddd7; }
.score-disclaimer { margin: .7rem 0 0; color: var(--dim); font-size: .6rem; line-height: 1.5; }
.score-basis { margin: 0; padding-left: 1rem; color: #59635b; font-size: .66rem; line-height: 1.65; }
.risk-grid, .missing-grid, .scorecard-list, .action-list { display: grid; gap: .6rem; }
.risk-card, .missing-card, .scorecard-row { padding: .9rem; border-radius: .9rem; background: rgba(255,255,255,.68); }
.risk-card b, .missing-card b { display: block; margin-top: .35rem; font-size: .72rem; }
.risk-card p, .missing-card p, .scorecard-row p, .action-card p { margin: .35rem 0 0; color: var(--dim); font-size: .62rem; line-height: 1.5; }
.scorecard-row > div { display: flex; align-items: center; gap: .6rem; }
.scorecard-row b { font-size: .7rem; }
.scorecard-row p strong { display: block; margin-bottom: .15rem; color: #445044; font-size: .56rem; text-transform: uppercase; }
.coverage-status { padding: .25rem .4rem; border-radius: 999px; font-size: .5rem; text-transform: uppercase; }
.status-met { color: #35623c; background: #e2f0df; }
.status-partial { color: #7b5b1f; background: #f3e9c8; }
.status-missing { color: #8d3d31; background: #f4ddd7; }
.action-card { position: relative; display: grid; grid-template-columns: 2rem 1fr; gap: .7rem; margin: 0; padding: .9rem; border-radius: .9rem; background: rgba(255,255,255,.68); cursor: pointer; }
.action-card input { position: absolute; opacity: 0; }
.action-number { width: 1.65rem; height: 1.65rem; display: grid; place-items: center; border-radius: .5rem; color: #536317; background: #e4ecc8; font-family: var(--serif); font-size: .62rem; }
.action-card input:checked + .action-number { color: #fff; background: #667b28; }
.action-card input:checked ~ span:last-child b { color: var(--dim); text-decoration: line-through; }
.action-card b { display: block; margin-top: .22rem; font-size: .7rem; }
.review-empty { padding: 1rem; border-radius: .9rem; color: var(--dim); background: rgba(255,255,255,.68); font-size: .66rem; line-height: 1.5; }
.code-review-panel { margin-top: 1.2rem; padding: 1.1rem; border: 1px solid rgba(23,32,25,.08); border-radius: 1rem; background: rgba(241,243,233,.72); }
.code-review-heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .7rem; }
.code-review-heading span { color: var(--dim); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.code-review-heading b { padding: .3rem .55rem; border-radius: 999px; color: var(--lime-ink); background: var(--lime); font-size: .62rem; }
.code-review-panel > p, .code-review-panel li { color: var(--dim); font-size: .66rem; line-height: 1.55; }
.code-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1rem 0; }
.code-review-grid > div { padding: .8rem; border-radius: .8rem; background: rgba(255,255,255,.68); }
.code-review-panel ul, .code-review-panel ol { margin: .5rem 0 0; padding-left: 1.15rem; }
.code-review-panel small { display: block; margin-top: .8rem; color: #777f78; font-size: .58rem; }
.table-review-panel { margin-top: 1.2rem; padding: 1.1rem; border: 1px solid rgba(23,32,25,.08); border-radius: 1rem; background: rgba(238,240,247,.76); }
.table-review-heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .7rem; }
.table-review-heading span { color: var(--dim); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.table-review-heading b { color: #485166; font-size: .64rem; }
.table-review-panel > p, .table-review-panel li { color: var(--dim); font-size: .66rem; line-height: 1.55; }
.table-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1rem 0; }
.table-review-grid > div { padding: .8rem; border-radius: .8rem; background: rgba(255,255,255,.72); }
.table-review-panel ul { margin: .5rem 0 0; padding-left: 1.15rem; }
.coverage-checks { list-style: none; padding-left: 0 !important; }
.coverage-checks li { display: flex; align-items: center; gap: .5rem; }
.coverage-checks span { min-width: 2rem; font-weight: 700; }
.coverage-met span { color: #50712b; }
.coverage-missing span { color: #a05245; }
.table-values li { display: flex; justify-content: space-between; gap: .7rem; }
.table-review-panel small { display: block; margin-top: .8rem; color: #777f78; font-size: .58rem; }
.table-review-error { background: rgba(249,232,226,.7); }
.chart-review-panel { margin-top: 1.2rem; padding: 1.1rem; border: 1px solid rgba(23,32,25,.08); border-radius: 1rem; background: rgba(239,235,247,.76); }
.chart-review-heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .7rem; }
.chart-review-heading span { color: var(--dim); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.chart-review-heading b { color: #655276; font-size: .64rem; }
.chart-review-panel > p, .chart-review-panel li { color: var(--dim); font-size: .66rem; line-height: 1.55; }
.chart-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1rem 0; }
.chart-review-grid > div { padding: .8rem; border-radius: .8rem; background: rgba(255,255,255,.72); }
.chart-review-panel ul { margin: .5rem 0 0; padding-left: 1.15rem; }
.chart-review-panel small { display: block; margin-top: .8rem; color: #777f78; font-size: .58rem; }
.consistency-review-panel { margin-top: 1.2rem; padding: 1.1rem; border: 1px solid rgba(23,32,25,.1); border-radius: 1rem; background: rgba(232,239,235,.82); }
.consistency-review-heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .8rem; }
.consistency-review-heading > span { color: var(--dim); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.consistency-status { padding: .3rem .55rem; border-radius: 999px; font-size: .6rem; text-transform: capitalize; }
.consistency-status.status-consistent { color: #35623c; background: #dcebdc; }
.consistency-status.status-needs-review { color: #7b5b1f; background: #f3e9c8; }
.consistency-status.status-conflict { color: #8d3d31; background: #f4ddd7; }
.consistency-relationships { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.consistency-relationships > li { display: grid; grid-template-columns: 4.4rem 1fr; gap: .7rem; padding: .75rem; border-radius: .8rem; background: rgba(255,255,255,.72); }
.consistency-relationships > li > span { align-self: start; padding: .25rem .4rem; border-radius: 999px; text-align: center; font-size: .55rem; text-transform: capitalize; }
.consistency-consistent > span { color: #35623c; background: #e2f0df; }
.consistency-missing > span, .consistency-manual > span { color: #7b5b1f; background: #f3e9c8; }
.consistency-conflict > span { color: #8d3d31; background: #f4ddd7; }
.consistency-relationships b { display: block; font-size: .67rem; }
.consistency-relationships p, .consistency-issues li { margin: .25rem 0 0; color: var(--dim); font-size: .62rem; line-height: 1.5; }
.consistency-issues { margin-top: .8rem; padding: .75rem; border-radius: .8rem; background: rgba(255,255,255,.72); }
.consistency-issues ul { margin: .45rem 0 0; padding-left: 1.1rem; }
.consistency-review-panel small { display: block; margin-top: .8rem; color: #777f78; font-size: .58rem; }

.projects-main { min-height: 100dvh; padding-top: 10rem; }
.projects-heading { display: grid; grid-template-columns: 1.2fr .65fr; align-items: end; gap: 5rem; }
.projects-heading h1 { max-width: 11ch; margin-bottom: 0; font-size: clamp(4rem, 7vw, 7rem); }
.projects-heading > p { max-width: 34rem; margin-bottom: .7rem; color: var(--muted); line-height: 1.7; }
.projects-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin: 4rem 0 1.3rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--hairline); }
.projects-toolbar span, .projects-toolbar small { display: block; }
.projects-toolbar span { font-weight: 700; }
.projects-toolbar small { margin-top: .25rem; color: var(--dim); font-size: .65rem; }
.projects-controls { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(11rem, .7fr) auto; gap: .7rem; margin-bottom: 1.2rem; }
.projects-controls label { display: grid; gap: .35rem; }
.projects-controls label > span { color: var(--dim); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
.projects-controls input, .projects-controls select { width: 100%; min-height: 3rem; border: 1px solid var(--hairline); border-radius: .8rem; padding: 0 .9rem; color: var(--ink); background: var(--panel); outline: none; }
.projects-controls input:focus, .projects-controls select:focus { border-color: rgba(102,130,29,.55); box-shadow: 0 0 0 3px rgba(102,130,29,.1); }
.project-status-filter { align-self: end; display: flex; gap: .25rem; padding: .25rem; border-radius: .9rem; background: #eceee5; }
.project-status-filter button { min-height: 2.5rem; border: 0; border-radius: .65rem; padding: 0 .85rem; color: var(--muted); background: transparent; cursor: pointer; font-size: .66rem; }
.project-status-filter button.active { color: #fff; background: var(--ink); }
.project-data-panel { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(17rem, .75fr); gap: 2rem; margin: 1.4rem 0 2.2rem; padding: 1.5rem; border: 1px solid var(--hairline); border-radius: 1.4rem; background: rgba(248,249,242,.82); }
.project-data-copy { max-width: 48rem; }
.project-data-kicker { color: var(--lime); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.project-data-copy h2 { margin: .45rem 0 .7rem; font-size: 1.45rem; }
.project-data-copy p { max-width: 58rem; margin: .35rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.6; }
.project-data-actions { align-self: center; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.project-data-button { min-height: 2.8rem; border: 1px solid var(--hairline); border-radius: .75rem; padding: 0 .85rem; color: var(--ink); background: var(--panel); cursor: pointer; font-size: .65rem; font-weight: 700; }
.project-data-button:hover:not(:disabled), .project-data-button:focus-visible { border-color: rgba(102,130,29,.55); background: #f1f4e6; outline: none; box-shadow: 0 0 0 3px rgba(102,130,29,.1); }
.project-data-button.danger { color: #8a4039; }
.project-data-button.danger:hover:not(:disabled), .project-data-button.danger:focus-visible { border-color: rgba(138,64,57,.45); background: #f8ece8; box-shadow: 0 0 0 3px rgba(138,64,57,.08); }
.project-data-button:disabled { opacity: .45; cursor: not-allowed; }
#project-data-status { grid-column: 1 / -1; margin: .2rem 0 0; color: var(--dim); font-size: .58rem; line-height: 1.5; }
#project-data-status[data-tone="success"] { color: #526d2d; }
#project-data-status[data-tone="error"] { color: #9a463e; }
.projects-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.project-card { min-height: 22rem; display: flex; flex-direction: column; padding: 1.5rem; border-radius: 1.6rem; background: var(--panel); box-shadow: 0 22px 60px rgba(55,70,48,.08); outline: 1px solid var(--hairline); }
.project-card-top, .project-card-footer, .project-metrics { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.project-card-top > span { color: var(--lime); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.project-card-actions { display: flex; gap: .35rem; }
.project-card-top button { width: 1.8rem; height: 1.8rem; border: 0; border-radius: 50%; color: var(--dim); background: #f0f2e8; cursor: pointer; font-size: .85rem; }
.project-card-top button:hover { color: var(--ink); background: #e4e8d8; }
.project-card h2 { margin: 2rem 0 .7rem; font-size: 1.35rem; line-height: 1.15; }
.project-card > p { color: var(--muted); font-size: .72rem; line-height: 1.6; }
.project-metrics { margin-top: auto; padding: 1rem; border-radius: 1rem; background: #f1f3e9; }
.project-metrics span { flex: 1; }
.project-metrics small, .project-metrics b { display: block; }
.project-metrics small { color: var(--dim); font-size: .52rem; text-transform: uppercase; }
.project-metrics b { margin-top: .3rem; font-size: .72rem; text-transform: capitalize; }
.project-card-footer { margin-top: 1rem; color: var(--dim); font-size: .62rem; }
.project-card-footer a { color: var(--ink); font-weight: 700; }
.projects-empty { display: grid; place-items: center; max-width: 40rem; margin: 5rem auto; text-align: center; }
.projects-empty[hidden], .projects-grid[hidden] { display: none; }
.empty-project-mark { width: 4rem; height: 4rem; display: grid; place-items: center; border-radius: 1.2rem; color: #fff; background: var(--lime); font-family: var(--serif); font-size: 1.7rem; font-style: italic; }
.projects-empty h2 { margin: 1.5rem 0 .6rem; font-size: 2rem; }
.projects-empty p { max-width: 30rem; color: var(--muted); line-height: 1.65; }

.how { display: grid; grid-template-columns: .8fr 1.2fr; gap: 5rem; }
.how-intro { position: sticky; top: 8rem; align-self: start; }
.steps { display: grid; gap: 1rem; }
.step-card { position: relative; min-height: 18rem; padding: 2rem; border-radius: 2rem; background: var(--panel); box-shadow: 0 25px 65px rgba(55,70,48,.08), inset 0 1px rgba(255,255,255,.9); outline: 1px solid rgba(23,32,25,.06); }
.step-card > span { color: var(--dim); font-family: var(--serif); font-style: italic; }
.step-card:nth-child(2) { margin-left: 4rem; background: #eef1e7; }
.step-card:nth-child(3) { margin-left: 1.5rem; }
.step-icon { width: 3.5rem; height: 3.5rem; display: grid; place-items: center; margin: 3rem 0 1.4rem; border-radius: 1.1rem; color: var(--lime); background: rgba(215,255,99,.07); outline: 1px solid rgba(215,255,99,.09); font-family: var(--serif); font-size: 1.5rem; }
.step-card h3 { margin-bottom: .65rem; font-size: 1.2rem; }
.step-card p { max-width: 28rem; margin-bottom: 0; color: var(--muted); line-height: 1.65; font-size: .82rem; }

.integrity-card { display: grid; grid-template-columns: 1fr .85fr; gap: 5rem; padding: clamp(2rem, 6vw, 5rem); border-radius: 3rem; background: #dfeea9; color: #172019; box-shadow: 0 50px 140px rgba(82,107,41,.12); }
.eyebrow.light { color: rgba(17,19,11,.62); }
.eyebrow.light > span { background: var(--lime-ink); }
.integrity h2 { max-width: 10ch; }
.integrity-copy > p { max-width: 35rem; margin-top: 1.8rem; color: rgba(17,19,11,.68); line-height: 1.7; }
.boundary-list { display: grid; align-content: center; gap: .8rem; }
.boundary-list > div { display: grid; grid-template-columns: 2rem 1fr; gap: .8rem; padding: 1.2rem; border-radius: 1.25rem; background: rgba(17,19,11,.08); }
.boundary-list > div.muted { background: rgba(255,255,255,.34); }
.boundary-list > div > span { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border-radius: 50%; background: rgba(17,19,11,.1); }
.boundary-list p span { width: auto; height: auto; display: inline; border-radius: 0; background: transparent; }
.boundary-list p { margin: 0; color: rgba(17,19,11,.7); font-size: .78rem; line-height: 1.55; }
.boundary-list b { display: block; margin-bottom: .3rem; color: #172019; }

.closing { min-height: 42rem; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.closing h2 { max-width: 12ch; margin-bottom: 2.5rem; }
footer { width: min(76rem, calc(100% - 3rem)); margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 2rem 0 3rem; color: var(--dim); border-top: 1px solid rgba(23,32,25,.08); font-size: .7rem; }
footer p { margin: 0; }
.site-footer { flex-wrap: wrap; }
.site-footer-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem .85rem; min-width: 0; }
.site-footer-links a { color: inherit; font-weight: 700; text-decoration: none; }
.site-footer-links a:hover, .site-footer-links a:focus-visible { color: var(--ink); text-decoration: underline; text-underline-offset: .2rem; }

.reveal { opacity: 1; transform: none; filter: none; }
.reveal.visible { animation: revealIn .9s var(--curve) both; }
.reveal-delay.visible { animation-delay: .12s; }
.reveal-delay-2.visible { animation-delay: .22s; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes resultIn { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: translateY(0); } }
@keyframes revealIn { from { opacity: 0; transform: translateY(3rem); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }

@media (max-width: 900px) {
  .section-pad { width: min(100% - 2rem, 42rem); padding-block: 6rem; }
  .nav-links, .nav-cta { display: none; }
  .nav { justify-content: space-between; }
  .menu-button { position: relative; z-index: 7; display: block; width: 2.7rem; height: 2.7rem; border: 0; border-radius: 50%; background: rgba(23,32,25,.06); }
  .menu-button span { position: absolute; left: .8rem; width: 1.1rem; height: 1px; background: var(--ink); transition: transform .65s var(--curve), opacity .65s var(--curve); }
  .menu-button span:first-child { transform: translateY(-3px); }
  .menu-button span:last-child { transform: translateY(3px); }
  .menu-open .menu-button span:first-child { transform: rotate(45deg); }
  .menu-open .menu-button span:last-child { transform: rotate(-45deg); }
  .menu-open .nav-links { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.6rem; z-index: 5; background: rgba(247,246,239,.96); backdrop-filter: blur(24px); font-family: var(--serif); font-size: 2.4rem; }
  .hero, .section-heading, .tool-layout, .how, .integrity-card, .workspace-heading, .projects-heading, .product-story, .catalog-hero, .resource-layout, .pricing-grid { grid-template-columns: 1fr; }
  .story-intro, .resource-layout > aside { position: static; }
  .story-stack { padding-top: 1rem; }
  .story-panel:nth-child(2), .story-panel:nth-child(3) { margin-left: 0; }
  .workspace-product-grid { grid-template-columns: minmax(0, 1fr); }
  .workspace-rail { position: static; grid-template-columns: repeat(4, 1fr); padding: .5rem; overflow-x: auto; }
  .workspace-rail .rail-label, .rail-privacy { display: none; }
  .workspace-output { position: static; }
  .template-grid { grid-template-columns: repeat(2, 1fr); }
  .loss-point-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .citation-tool { grid-template-columns: 1fr; }
  .workflow-grid { grid-template-columns: 1fr; }
  .workflow-card { min-height: 15rem; }
  .projects-grid { grid-template-columns: repeat(2, 1fr); }
  .projects-controls { grid-template-columns: minmax(0, 1fr) minmax(11rem, .65fr); }
  .project-status-filter { grid-column: 1 / -1; justify-self: start; }
  .project-data-panel { grid-template-columns: 1fr; }
  .hero { gap: 1rem; padding-top: 8rem; }
  h1 { font-size: clamp(3.8rem, 17vw, 6.2rem); }
  .hero-visual { min-height: 38rem; }
  .note-one { right: 0; }
  .note-two { left: 0; }
  .section-heading { gap: 1.5rem; }
  .section-heading > p { max-width: 34rem; }
  .form-core, .result-core { min-height: auto; }
  .result-core { min-height: 42rem; }
  .how-intro { position: static; }
  .step-card:nth-child(2), .step-card:nth-child(3) { margin-left: 0; }
  .integrity-card { gap: 2.5rem; }
}

@media (max-width: 620px) {
  .section-pad { width: calc(100% - 1.5rem); padding-block: 5rem; }
  .nav-shell { top: .7rem; }
  .nav { min-height: 3.7rem; }
  h1 { font-size: 3.7rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-visual { min-height: 31rem; }
  .device-shell { transform: none; }
  .device-core { min-height: 30rem; padding: 1rem; }
  .floating-note { display: none; }
  .proof-strip { justify-content: flex-start; }
  .section-heading h2, .how h2, .integrity h2, .closing h2 { font-size: 3.2rem; }
  .field-meta span:first-child { display: none; }
  .field-meta { justify-content: flex-end; }
  .form-actions { align-items: stretch; flex-direction: column; }
  .reset-button { order: 2; }
  .integrity-card { padding: 2rem 1.25rem; border-radius: 2rem; }
  footer { width: calc(100% - 1.5rem); align-items: flex-start; flex-direction: column; }
  .site-footer-links { width: 100%; justify-content: flex-start; }
  .projects-grid { grid-template-columns: 1fr; }
  .projects-toolbar { align-items: flex-start; flex-direction: column; }
  .projects-controls { grid-template-columns: 1fr; }
  .project-status-filter { grid-column: auto; width: 100%; }
  .project-status-filter button { flex: 1; }
  .project-data-panel { padding: 1.1rem; }
  .project-data-actions { grid-template-columns: 1fr; }
  #project-data-status { grid-column: auto; }
  .score-band-card { grid-template-columns: 1fr; }
  .product-story { gap: 2rem; }
  .story-panel { grid-template-columns: 1fr; min-height: auto; }
  .capability-bento, .template-grid { grid-template-columns: 1fr; }
  .capability-large, .capability-wide, .template-card.large, .template-card.wide { grid-column: auto; grid-row: auto; min-height: 17rem; }
  .resource-article summary { min-height: auto; grid-template-columns: 1fr 2.2rem; gap: .7rem; }
  .resource-meta { grid-column: 1 / -1; }
  .resource-body { padding: 1.25rem; }
  .resource-lead { font-size: 1.08rem !important; }
  .library-heading { grid-template-columns: 1fr; gap: 1rem; }
  .loss-point-grid, .sentence-pattern-grid, .resource-start-grid, .resource-guide-grid, .resource-frame-grid, .resource-pitfall-grid, .resource-trust-grid, .knowledge-library-grid { grid-template-columns: 1fr; }
  .citation-form-grid { grid-template-columns: 1fr; }
  .citation-span-two { grid-column: auto; }
  .citation-actions { align-items: stretch; flex-direction: column; }
  .loss-point-card { min-height: 16rem; }
  .workspace-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
  .material-type-grid { grid-template-columns: 1fr; }
  .code-review-grid { grid-template-columns: 1fr; }
  .table-review-grid { grid-template-columns: 1fr; }
  .chart-review-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; filter: none; }
}
.draft-version-block {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgba(30, 42, 38, 0.13);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.48);
}

.draft-version-block.current-version {
  border-color: rgba(62, 107, 87, 0.28);
}

.draft-version-heading,
.draft-comparison-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.draft-version-heading span,
.draft-comparison-heading span {
  font-weight: 750;
}

.draft-version-heading small {
  color: var(--muted);
}

.draft-comparison-panel {
  margin: 1.25rem 0;
  padding: 1.1rem;
  border: 1px solid rgba(62, 107, 87, 0.24);
  border-radius: 18px;
  background: rgba(236, 245, 240, 0.72);
}

.comparison-status {
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  text-transform: capitalize;
  background: rgba(30, 42, 38, 0.08);
}

.draft-comparison-metrics,
.draft-comparison-grid {
  display: grid;
  gap: 0.75rem;
}

.draft-comparison-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.draft-comparison-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0.9rem;
}

.draft-comparison-metrics > div,
.draft-comparison-grid > div {
  padding: 0.8rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.66);
}

.draft-comparison-metrics span,
.draft-comparison-metrics small {
  display: block;
  color: var(--muted);
}

.draft-comparison-grid ul,
.rubric-change-list {
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
}

.rubric-change-list li {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
}

@media (max-width: 720px) {
  .draft-comparison-metrics,
  .draft-comparison-grid {
    grid-template-columns: 1fr;
  }
}

.language-toggle {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  min-height: 2.35rem;
  padding: 0 .75rem;
  border: 1px solid rgba(23,32,25,.12);
  border-radius: 999px;
  color: var(--ink);
  background: rgba(255,255,255,.72);
  font-size: .62rem;
  font-weight: 800;
  cursor: pointer;
}
.language-toggle i { color: var(--dim); font-style: normal; font-weight: 600; }
.language-toggle[aria-pressed="true"] { border-color: rgba(126,153,37,.45); background: #f6f9ea; }
.pricing-page { padding-top: 9rem; }
.pricing-hero { margin-bottom: 4rem; }
.pricing-plan-grid article {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 24rem;
  padding: 2rem;
}
.pricing-plan-grid article[data-plan="paid"] {
  background: #f2f7df;
  border-color: rgba(126,153,37,.34);
  box-shadow: 0 24px 70px rgba(84,105,51,.12);
}
.pricing-plan-grid h2 {
  margin: .4rem 0 0;
  font-size: clamp(2rem, 4vw, 3.8rem);
  line-height: .98;
  letter-spacing: -.04em;
}
.pricing-plan-grid .button,
.pricing-plan-grid .text-button { margin-top: auto; align-self: flex-start; }
.plan-feature-list {
  display: grid;
  gap: .55rem;
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
  color: var(--ink);
  font-size: .78rem;
  line-height: 1.55;
}
.plan-feature-list li { position: relative; padding-left: 1.3rem; }
.plan-feature-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55rem;
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--lime);
}
.pricing-boundary {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 3rem;
  margin-top: 6rem;
  padding: 2rem;
  border-radius: 1.4rem;
  background: rgba(255,255,255,.68);
  outline: 1px solid rgba(23,32,25,.08);
}
.pricing-boundary h2 {
  max-width: 11ch;
  margin: 1.2rem 0 0;
  font-size: clamp(2.6rem, 5vw, 5rem);
  line-height: .95;
  letter-spacing: -.05em;
}
@media (max-width: 820px) {
  .language-toggle { position: relative; z-index: 7; }
  .pricing-plan-grid,
  .pricing-boundary { grid-template-columns: 1fr; }
}

/* Modern Academic Portal visual system */
:root {
  --color-ink: #101828;
  --color-navy: #1E293B;
  --color-academic-blue: #1D3557;
  --color-parchment: #F7F2E8;
  --color-paper: #FFFDF8;
  --color-burgundy: #7F1D1D;
  --color-gold: #B7791F;
  --color-slate: #475569;
  --color-muted: #667085;
  --color-border: #E5E0D6;
  --color-soft-border: #ECE7DD;
  --color-success: #0F766E;
  --color-warning: #B7791F;
  --color-danger: #B42318;
  --shadow-card: 0 8px 24px rgba(16, 24, 40, 0.06);
  --font-en-heading: "Source Serif 4", Georgia, serif;
  --font-en-body: "Hanken Grotesk", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-zh-heading: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --font-zh-body: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", system-ui, sans-serif;
  --font-heading: var(--font-en-heading);
  --font-body: var(--font-en-body);
  --ink: var(--color-ink);
  --muted: var(--color-muted);
  --dim: var(--color-slate);
  --lime: var(--color-academic-blue);
  --lime-ink: #ffffff;
  --night: var(--color-parchment);
  --panel: var(--color-paper);
  --panel-2: #F4EFE5;
  --hairline: rgba(30, 41, 59, 0.12);
  --serif: var(--font-heading);
  --sans: var(--font-body);
}

:lang(zh),
html[lang="zh-CN"],
html[lang="zh"],
html[lang="zh-Hans"] {
  --font-heading: var(--font-zh-heading);
  --font-body: var(--font-zh-body);
  --serif: var(--font-heading);
  --sans: var(--font-body);
  letter-spacing: 0;
}

body {
  background:
    linear-gradient(180deg, rgba(255,253,248,0.74), rgba(247,242,232,0.96)),
    var(--color-parchment);
  color: var(--color-ink);
  font-family: var(--font-body);
  line-height: 1.55;
}

:lang(zh) body,
html[lang="zh-Hans"] body {
  line-height: 1.78;
}

h1,
h2,
h3,
.hero-title,
.section-title,
.brand-mark {
  font-family: var(--font-heading);
  letter-spacing: 0;
}

button,
input,
textarea,
select {
  font-family: var(--font-body);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(183, 121, 31, 0.42);
  outline-offset: 3px;
}

.academic-portal-page .ambient,
.academic-workspace-page .ambient {
  display: none;
}

.academic-portal-page .grain,
.academic-workspace-page .grain {
  opacity: 0.018;
}

.nav-shell {
  position: sticky;
  top: 0;
  padding: 0;
  background: rgba(255, 253, 248, 0.94);
  border-bottom: 1px solid var(--color-border);
  backdrop-filter: blur(16px);
}

.nav {
  width: min(72rem, calc(100% - 2rem));
  min-height: 4rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  outline: 0;
}

.brand {
  letter-spacing: 0;
  color: var(--color-ink);
}

.brand-mark {
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 6px;
  background: var(--color-academic-blue);
}

.nav-links {
  gap: 1.15rem;
  font-size: 0.82rem;
  color: var(--color-slate);
}

.nav-links a[aria-current="page"]::after {
  background: var(--color-burgundy);
}

.nav-cta {
  min-height: 2.35rem;
  padding: 0.58rem 0.9rem;
  border: 1px solid var(--color-academic-blue);
  border-radius: 8px;
  background: var(--color-academic-blue);
  color: #fff;
  font-size: 0.8rem;
}

.nav-cta span {
  display: none;
}

.language-toggle {
  min-height: 2.35rem;
  border-color: var(--color-border);
  border-radius: 8px;
  background: var(--color-paper);
  color: var(--color-navy);
}

.section-pad {
  width: min(72rem, calc(100% - 2rem));
  padding-block: 4.75rem;
}

.academic-card {
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  padding: 24px;
  box-shadow: var(--shadow-card);
}

.primary-button,
.button-primary {
  background: var(--color-academic-blue);
  color: white;
  border-radius: 8px;
  font-weight: 600;
}

.secondary-button {
  background: transparent;
  color: var(--color-academic-blue);
  border: 1px solid #CBD5E1;
  border-radius: 8px;
  font-weight: 600;
}

.button {
  min-height: 3rem;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  box-shadow: none;
}

.button:hover {
  box-shadow: var(--shadow-card);
}

.button-icon {
  display: none;
}

.eyebrow {
  color: var(--color-burgundy);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
}

.eyebrow > span {
  background: var(--color-gold);
}

.academic-hero {
  min-height: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.85fr);
  gap: 2rem;
  align-items: stretch;
  padding-top: 5.25rem;
  padding-bottom: 3.5rem;
}

.academic-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: rgba(255, 253, 248, 0.72);
}

.portal-context {
  margin: 1.1rem 0 0;
  color: var(--color-slate);
  font-weight: 700;
}

.academic-hero h1 {
  max-width: 13ch;
  margin: 0.75rem 0 1.25rem;
  font-size: clamp(3.1rem, 6.2vw, 5.8rem);
  line-height: 0.96;
  font-weight: 580;
  letter-spacing: 0;
}

.academic-hero .hero-lede {
  max-width: 43rem;
  color: var(--color-slate);
  font-size: 1.02rem;
  line-height: 1.75;
}

.academic-hero .hero-actions {
  margin: 1.75rem 0 1.25rem;
  gap: 1rem;
}

.secondary-link {
  border-bottom-color: var(--color-border);
  color: var(--color-academic-blue);
}

.academic-trust-row {
  color: var(--color-slate);
  font-size: 0.74rem;
}

.academic-trust-row i {
  background: var(--color-success);
  box-shadow: none;
}

.portal-intake {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.panel-kicker {
  color: var(--color-burgundy);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.portal-intake h2 {
  margin: 0;
  color: var(--color-academic-blue);
  font-size: clamp(1.8rem, 3vw, 2.7rem);
  line-height: 1.08;
}

.portal-intake p {
  margin: 0;
  color: var(--color-slate);
  line-height: 1.65;
}

.submission-dropzone {
  display: grid;
  gap: 0.35rem;
  padding: 1.1rem;
  border: 1px dashed #B8B0A3;
  border-radius: 8px;
  background: #FBF7EE;
}

.submission-dropzone span {
  color: var(--color-academic-blue);
  font-weight: 800;
}

.submission-dropzone b {
  color: var(--color-ink);
  font-size: 0.85rem;
}

.submission-dropzone small {
  color: var(--color-muted);
}

.portal-file-list {
  display: grid;
  gap: 0.65rem;
  margin: 0;
}

.portal-file-list div {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--color-soft-border);
}

.portal-file-list dt {
  color: var(--color-academic-blue);
  font-weight: 800;
}

.portal-file-list dd {
  margin: 0;
  color: var(--color-slate);
  font-size: 0.82rem;
}

.academic-proof-strip {
  background: #EFE8DA;
  border-block-color: var(--color-border);
  color: var(--color-navy);
  letter-spacing: 0.08em;
}

.academic-section-heading {
  grid-template-columns: minmax(0, 0.9fr) minmax(18rem, 0.55fr);
  gap: 2.5rem;
  margin-bottom: 1.5rem;
}

.academic-section-heading h2,
.integrity h2,
.closing h2 {
  max-width: 16ch;
  margin-top: 0.8rem;
  color: var(--color-ink);
  font-size: clamp(2.15rem, 4vw, 3.8rem);
  line-height: 1.05;
  letter-spacing: 0;
}

.academic-section-heading > p,
.academic-section-heading p {
  color: var(--color-slate);
  line-height: 1.7;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.8rem;
}

.process-card {
  min-height: 14rem;
}

.process-card span {
  display: inline-flex;
  margin-bottom: 2rem;
  color: var(--color-gold);
  font-family: var(--font-heading);
  font-size: 1.4rem;
}

.process-card h3,
.subject-card h3,
.feature-card h3 {
  margin: 0 0 0.65rem;
  color: var(--color-academic-blue);
  font-size: 1.15rem;
  line-height: 1.2;
}

.process-card p,
.subject-card p,
.feature-card p {
  margin: 0;
  color: var(--color-slate);
  font-size: 0.83rem;
  line-height: 1.65;
}

.subject-grid,
.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.subject-card,
.feature-card {
  min-height: 10.5rem;
}

.academic-boundary {
  padding-top: 3.5rem;
}

.academic-boundary-card {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 2rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid #D9CDBD;
  border-radius: 12px;
  background: var(--color-navy);
  box-shadow: none;
}

.academic-boundary-card h2,
.academic-boundary-card p,
.academic-boundary-card b {
  color: #fff;
}

.academic-boundary-card p {
  opacity: 0.86;
}

.academic-boundary-list {
  display: grid;
  gap: 0.75rem;
}

.academic-boundary-list div {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 8px;
  background: rgba(255,255,255,0.06);
}

.academic-boundary-list span {
  color: #F6D38B;
  font-size: 0.72rem;
  font-weight: 900;
}

.academic-closing {
  text-align: left;
}

.academic-closing h2 {
  max-width: 18ch;
}

.academic-footer {
  border-top: 1px solid var(--color-border);
}

.workspace-heading {
  padding-top: 5rem;
  padding-bottom: 2rem;
}

.workspace-heading h1 {
  max-width: 15ch;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  line-height: 1.02;
  letter-spacing: 0;
}

.workspace-tool {
  width: min(88rem, calc(100% - 2rem));
}

.workspace-rail,
.form-shell,
.workspace-output,
.device-shell,
.result-shell {
  border-radius: 10px;
  background: transparent;
  box-shadow: none;
  outline: 0;
}

.workspace-rail {
  padding: 1rem 0.75rem;
  border: 1px solid var(--color-border);
  background: rgba(255,253,248,0.72);
}

.workspace-rail > a {
  border-radius: 8px;
}

.workspace-rail > a:hover,
.workspace-rail > a.active {
  background: #EFE8DA;
}

.workspace-rail > a > b,
.stage-heading > span {
  color: var(--color-burgundy);
}

.workspace-input .form-core,
.workspace-output .result-core,
.form-core,
.result-core {
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-paper);
  box-shadow: var(--shadow-card);
}

.unified-upload-intake,
.assignment-analysis-mock-panel,
.document-upload,
.draft-version-block,
.chart-verification {
  border-color: var(--color-border);
  border-radius: 8px;
  background: #FBF7EE;
}

.academic-file-intake {
  border: 1px dashed #B8B0A3;
}

.academic-file-intake h2 {
  color: var(--color-academic-blue);
}

.material-type-grid a {
  border-radius: 8px;
  border-color: var(--color-soft-border);
  background: var(--color-paper);
}

.document-upload-button,
.sample-button,
.reset-button,
.catalog-filters button,
.citation-actions button,
.citation-output button,
.citation-list-panel button {
  border-radius: 8px;
}

textarea,
input,
select,
.citation-form-grid input,
.citation-form-grid select {
  border-color: var(--color-border);
  border-radius: 8px;
  background: #FFFDF8;
  color: var(--color-ink);
}

.stage-heading > span {
  border-radius: 8px;
  background: #EFE8DA;
}

.workspace-output {
  position: sticky;
  top: 5.5rem;
}

.academic-workspace-checklist {
  margin: 0 0 0.75rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: #FBF7EE;
}

.academic-workspace-checklist h2 {
  margin: 0 0 0.65rem;
  color: var(--color-academic-blue);
  font-size: 1.05rem;
}

.academic-workspace-checklist ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--color-slate);
  font-size: 0.8rem;
  line-height: 1.65;
}

@media (max-width: 980px) {
  .academic-hero,
  .academic-section-heading,
  .workspace-heading,
  .academic-boundary-card {
    grid-template-columns: 1fr;
  }

  .process-grid,
  .subject-grid,
  .feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workspace-output {
    position: static;
  }
}

@media (max-width: 620px) {
  .section-pad {
    width: calc(100% - 1.25rem);
    padding-block: 3.5rem;
  }

  .nav-shell {
    padding: 0 0.5rem;
  }

  .nav {
    min-width: 0;
    gap: 0.5rem;
    padding: 0.45rem 0.45rem 0.45rem 0.55rem;
    border-radius: 10px;
  }

  .brand {
    min-width: 0;
    flex: 1 1 auto;
    gap: 0.45rem;
  }

  .brand span:not(.brand-mark) {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .language-toggle {
    flex: 0 0 auto;
    padding: 0.45rem 0.55rem;
    font-size: 0.68rem;
  }

  .menu-button {
    flex: 0 0 2.4rem;
    width: 2.4rem;
    height: 2.4rem;
  }

  .nav {
    width: calc(100% - 1.25rem);
  }

  .academic-hero {
    padding-top: 3.75rem;
  }

  .academic-hero-copy {
    padding: 1.2rem;
  }

  .academic-hero h1,
  .workspace-heading h1 {
    font-size: 2.75rem;
  }

  .process-grid,
  .subject-grid,
  .feature-grid {
    grid-template-columns: 1fr;
  }

  .portal-file-list div,
  .academic-boundary-list div {
    grid-template-columns: 1fr;
  }
}

/* Site-wide academic coverage pass */
.academic-site-page {
  background: var(--color-parchment);
  color: var(--color-ink);
  font-family: var(--font-body);
}

.academic-site-page .ambient {
  display: none;
}

.academic-main-nav {
  border-bottom: 1px solid var(--color-border);
}

.academic-main-nav .nav-links,
.academic-nav-links {
  gap: 1rem;
}

.academic-main-nav a {
  text-wrap: nowrap;
}

.academic-main-nav .nav-links a,
.academic-main-nav .nav-cta,
.academic-main-nav .language-toggle {
  transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.academic-main-nav .nav-links a:hover,
.academic-main-nav .nav-links a:focus-visible {
  color: var(--color-academic-blue);
}

.academic-main-nav .nav-links a[aria-current="page"] {
  color: var(--color-academic-blue);
  font-weight: 800;
}

.academic-main-nav .nav-links a[aria-current="page"]::after,
.academic-main-nav .nav-cta[aria-current="page"]::after {
  background: var(--color-burgundy);
}

.academic-main-nav .nav-cta[aria-current="page"] {
  border-color: var(--color-burgundy);
  background: var(--color-burgundy);
}

.detail-backlinks {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  padding-top: 7rem;
  padding-bottom: 0;
}

.detail-backlinks a {
  border: 1px solid var(--color-border);
  border-radius: 999px;
  padding: .55rem .8rem;
  background: rgba(255, 253, 248, .8);
  color: var(--color-academic-blue);
  font-weight: 800;
  text-decoration: none;
}

.academic-site-page .catalog-main,
.academic-site-page .projects-main,
.academic-site-page .pricing-page {
  padding-top: 4.75rem;
}

.catalog-page {
  background: var(--color-parchment);
}

.catalog-hero,
.projects-heading,
.pricing-hero {
  gap: 2.5rem;
}

.catalog-hero h1,
.projects-heading h1,
.pricing-hero h1 {
  max-width: 15ch;
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-size: clamp(2.6rem, 5vw, 4.8rem);
  line-height: 1.02;
  letter-spacing: 0;
}

.catalog-hero h1 em,
.projects-heading h1 em {
  color: var(--color-burgundy);
}

.catalog-hero > p,
.projects-heading > p,
.pricing-hero > p {
  color: var(--color-slate);
  font-size: 0.96rem;
  line-height: 1.72;
}

.template-card,
.resource-list article,
.resource-layout > aside,
.resource-start-grid > article,
.resource-guide-grid > article,
.resource-frame-grid > article,
.resource-pitfall-grid > article,
.resource-trust-grid > article,
.project-card,
.project-data-panel,
.projects-empty,
.pricing-plan-grid article,
.pricing-boundary,
.loss-point-card,
.sentence-pattern,
.citation-tool form,
.citation-output,
.citation-list-panel,
.citation-format-note,
.phrase-notice {
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-paper);
  box-shadow: var(--shadow-card);
}

.template-card.large,
.template-card.wide,
.resource-layout > aside,
.pricing-plan-grid article[data-plan="paid"],
.resource-check,
.phrase-notice,
.citation-format-note {
  background: #FBF7EE;
}

.template-card > span,
.resource-list article > span,
.resource-layout aside > span,
.library-kicker,
.project-data-kicker,
.project-card-top > span,
.citation-output > span,
.citation-list-heading span,
.loss-point-card > span {
  color: var(--color-burgundy);
}

.template-card h2,
.resource-layout aside h2,
.resource-summary-copy strong,
.resource-start-grid h3,
.resource-guide-grid h3,
.resource-frame-section h3,
.resource-pitfall-section h3,
.resource-trust-grid h3,
.library-heading h2,
.project-card h2,
.projects-empty h2,
.pricing-plan-grid h2,
.pricing-boundary h2,
.loss-point-card h3,
.sentence-pattern summary strong {
  color: var(--color-academic-blue);
  font-family: var(--font-heading);
  letter-spacing: 0;
}

.template-card p,
.template-card li,
.resource-layout aside p,
.resource-body p,
.resource-body li,
.resource-start-grid p,
.resource-start-grid li,
.resource-guide-grid p,
.resource-guide-grid li,
.resource-frame-section p,
.resource-pitfall-section p,
.resource-pitfall-grid p,
.resource-trust-grid p,
.project-card > p,
.projects-empty p,
.pricing-grid p,
.plan-feature-list,
.loss-point-card p,
.sentence-pattern p,
.citation-note,
.citation-list-note {
  color: var(--color-slate);
}

.catalog-filters,
.library-filters,
.projects-controls,
.projects-toolbar {
  border-color: var(--color-border);
}

.catalog-filters button,
.library-filters button,
.project-status-filter button,
.project-data-button,
.citation-actions button,
.citation-output button,
.citation-list-panel button {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-paper);
  color: var(--color-academic-blue);
}

.catalog-filters button.active,
.library-filters button.active,
.project-status-filter button.active,
.citation-actions .primary-button {
  border-color: var(--color-academic-blue);
  background: var(--color-academic-blue);
  color: #fff;
}

.project-data-button.danger,
.citation-list-actions .danger,
.project-data-actions .danger {
  border-color: rgba(180, 35, 24, 0.28);
  color: var(--color-danger);
  background: #FFF5F2;
}

.projects-controls input,
.projects-controls select,
.citation-form-grid input,
.citation-form-grid select {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-paper);
}

.projects-controls input:focus,
.projects-controls select:focus,
.citation-form-grid input:focus,
.citation-form-grid select:focus {
  border-color: var(--color-gold);
  box-shadow: 0 0 0 3px rgba(183, 121, 31, 0.14);
}

.resource-article summary:focus-visible,
.sentence-pattern summary:focus-visible {
  outline: 3px solid rgba(183, 121, 31, 0.36);
  outline-offset: -3px;
}

.resource-toggle,
.empty-project-mark {
  border-radius: 8px;
  background: var(--color-academic-blue);
}

.resource-article[open] .resource-toggle {
  background: var(--color-burgundy);
}

.resource-example,
.resource-check,
.loss-point-card > div,
.sentence-pattern > div,
.citation-import-preview {
  border: 1px solid var(--color-soft-border);
  border-radius: 8px;
  background: #FBF7EE;
}

.result-tabs button,
.report-export-button,
.copy-button,
.candidate-only-badge,
.source-confirmation-badge,
.coverage-status,
.risk-label,
.consistency-status,
.consistency-relationships > li > span,
.rubric-bands span,
.assignment-analysis-file-row > span,
.assignment-analysis-processing span {
  border-radius: 8px;
}

.result-tabs button.active,
.copy-button,
.report-export-button:hover {
  background: var(--color-academic-blue);
  color: #fff;
}

.comment-card,
.risk-card,
.missing-card,
.scorecard-row,
.action-card,
.code-review-panel,
.table-review-panel,
.chart-review-panel,
.consistency-review-panel,
.rubric-criterion,
.rubric-signal,
.explanation-row,
.constraint-list li,
.evidence-list li,
.task-map-item,
.hierarchy-task {
  border-color: var(--color-border);
  border-radius: 8px;
  background: var(--color-paper);
}

@media (max-width: 820px) {
  .menu-open .nav-links {
    background: rgba(255, 253, 248, 0.98);
    color: var(--color-academic-blue);
    font-family: var(--font-heading);
  }

  .academic-main-nav .nav-links a {
    max-width: min(18rem, calc(100vw - 3rem));
    text-align: center;
    white-space: normal;
  }
}

.product-shell-main {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
  padding: 116px 0 72px;
}

.product-dashboard-hero,
.auth-layout,
.settings-grid,
.faq-grid,
.legal-grid,
.product-state-grid {
  display: grid;
  gap: 18px;
}

.product-dashboard-hero {
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  align-items: end;
  margin-bottom: 24px;
}

.product-dashboard-hero span,
.state-card > span,
.auth-card > span,
.settings-panel > span {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 10px;
  color: var(--color-burgundy);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-dashboard-hero h1,
.auth-card h1,
.state-card h1,
.state-card h2 {
  margin: 0 0 10px;
  color: var(--color-academic-blue);
}

.product-dashboard-hero p,
.auth-card p,
.state-card p {
  margin: 0;
  color: var(--color-muted);
  line-height: 1.65;
}

.auth-layout {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
  align-items: start;
}

.auth-card,
.state-card,
.settings-panel,
.contact-card {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-paper);
  box-shadow: var(--shadow-soft);
  padding: 24px;
}

.auth-tabs,
.state-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 18px 0;
}

.auth-tabs button,
.state-actions a,
.state-actions button {
  min-height: 40px;
}

.auth-tabs button[aria-selected="true"],
.success-state {
  border-color: rgba(45, 111, 91, 0.4);
  background: rgba(45, 111, 91, 0.08);
}

.auth-card form,
.contact-card {
  display: grid;
  gap: 14px;
}

.auth-card label,
.contact-card label {
  display: grid;
  gap: 6px;
  color: var(--color-academic-blue);
  font-weight: 700;
}

.auth-card input,
.auth-card select,
.contact-card textarea {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: #fffdf8;
  color: var(--color-ink);
  font: inherit;
  padding: 11px 12px;
}

.form-status {
  color: var(--color-muted);
  font-size: 0.92rem;
}

.settings-grid,
.faq-grid,
.legal-grid,
.product-state-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.project-list,
.account-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.project-list a,
.account-list li,
.faq-grid details {
  border: 1px solid var(--color-soft-border);
  border-radius: 8px;
  background: #fbf7ee;
  padding: 14px;
}

.project-list a {
  display: grid;
  gap: 4px;
  color: inherit;
  text-decoration: none;
}

.empty-state,
.loading-state,
.error-state,
.locked-state,
.upgrade-state,
.not-found-state {
  border-style: dashed;
}

.loading-state {
  background: rgba(38, 80, 115, 0.07);
}

.error-state {
  border-color: rgba(139, 51, 51, 0.35);
  background: rgba(139, 51, 51, 0.07);
}

.locked-state,
.upgrade-state {
  border-color: rgba(183, 121, 31, 0.42);
  background: rgba(183, 121, 31, 0.09);
}

.not-found-state {
  margin: 96px auto;
  width: min(720px, calc(100% - 40px));
}

@media (max-width: 820px) {
  .product-shell-main {
    width: min(100% - 28px, 680px);
    padding-top: 96px;
  }

  .product-dashboard-hero,
  .auth-layout,
  .settings-grid,
  .faq-grid,
  .legal-grid,
  .product-state-grid {
    grid-template-columns: 1fr;
  }

  .assignment-analysis-dashboard-grid,
  .assignment-analysis-flow-grid {
    grid-template-columns: 1fr;
  }

  .assignment-analysis-flow-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .pricing-boundary {
    gap: 1.5rem;
    padding: 1rem;
  }

  .pricing-boundary h2 {
    max-width: none;
    font-size: clamp(2rem, 12vw, 3rem);
    line-height: 1;
  }

  .boundary-list > div {
    grid-template-columns: 2rem minmax(0, 1fr);
    padding: 1rem;
  }

  .detail-backlinks {
    padding-top: 6rem;
  }
}

.project-onboarding,
.project-wizard-shell {
  position: relative;
  z-index: 3;
}

.project-onboarding[hidden],
.project-wizard-shell[hidden] {
  display: none;
}

.onboarding-actions,
.project-context-actions,
.form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.project-wizard {
  max-width: 980px;
  margin: 0 auto;
}

.project-wizard-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.wizard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.25rem 0;
}

.boundary-confirmation {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
}

.project-context-banner {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  border: 1px solid var(--border, #d8d2c4);
  border-radius: 8px;
  padding: 1rem;
  background: rgba(255, 255, 255, 0.78);
}

.project-context-banner > * {
  min-width: 0;
}

.project-context-banner.standalone {
  border-style: dashed;
}

.workspace-guided-checklist {
  padding-top: 0;
}

.workspace-guided-checklist,
.workspace-guided-checklist * {
  min-width: 0;
}

.workspace-guided-shell {
  display: grid;
  gap: 1rem;
  border: 1px solid var(--border, #d8d2c4);
  border-radius: 8px;
  padding: 1rem;
  background: rgba(255, 253, 248, 0.82);
  box-shadow: var(--shadow-soft);
}

.account-readiness-note,
.account-readiness-banner,
.project-storage-summary {
  color: var(--color-muted);
  font-size: 0.9rem;
  line-height: 1.55;
}

.account-readiness-banner,
.project-storage-summary {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  padding: 14px 16px;
  margin-bottom: 16px;
}

.account-readiness-banner span,
.project-storage-summary span {
  display: block;
  color: var(--color-ink);
  font-weight: 800;
  margin-bottom: 4px;
}

.account-readiness-banner p,
.project-storage-summary p,
.account-readiness-note {
  margin: 0;
}

.workspace-guided-heading span,
.workspace-guided-summary span,
.workspace-guided-grid h3 {
  color: var(--color-burgundy);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.workspace-guided-heading h2,
.workspace-guided-summary h3 {
  margin: 0.2rem 0 0.35rem;
  color: var(--color-academic-blue);
}

.workspace-guided-heading p,
.workspace-guided-summary p,
.workspace-guided-boundaries p {
  margin: 0;
  color: var(--color-muted);
  line-height: 1.55;
}

.workspace-guided-summary,
.workspace-guided-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.workspace-guided-summary article,
.workspace-guided-grid section {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 0.85rem;
  background: rgba(255, 255, 255, 0.56);
}

.workspace-guided-grid section:first-child {
  grid-row: span 2;
}

.workspace-guided-materials,
.workspace-guided-steps,
.workspace-guided-missing {
  display: grid;
  gap: 0.45rem;
  margin: 0.7rem 0 0;
  padding: 0;
  list-style: none;
}

.workspace-guided-material {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
  border-bottom: 1px solid rgba(32, 45, 58, 0.08);
  padding-bottom: 0.45rem;
  color: var(--color-ink);
}

.workspace-guided-material b {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 0.18rem 0.5rem;
  background: rgba(32, 45, 58, 0.08);
  color: var(--color-muted);
  font-size: 0.72rem;
}

.workspace-guided-material.is-detected b {
  background: rgba(96, 128, 76, 0.14);
  color: #48683b;
}

.workspace-guided-material.is-recommended b {
  background: rgba(151, 117, 59, 0.14);
  color: #795723;
}

.workspace-guided-steps li {
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0.55rem;
  align-items: start;
}

.workspace-guided-steps span {
  color: var(--color-burgundy);
  font-family: var(--serif);
}

.workspace-guided-steps p,
.workspace-guided-missing span {
  margin: 0;
  color: var(--color-muted);
  line-height: 1.5;
}

.workspace-guided-steps small {
  display: block;
  margin-top: 0.2rem;
}

.workspace-guided-missing li {
  display: grid;
  gap: 0.18rem;
}

.workspace-guided-boundaries {
  display: grid;
  gap: 0.35rem;
  border-top: 1px solid var(--color-border);
  padding-top: 0.85rem;
}

.workspace-guided-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}

.project-lifecycle-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 1rem 0;
}

.project-lifecycle-summary span,
.project-metrics span {
  min-width: 0;
}

.project-activity-summary {
  margin-bottom: 0.75rem;
}

@media (max-width: 720px) {
  .wizard-grid,
  .project-lifecycle-summary {
    grid-template-columns: 1fr;
  }

  .project-context-banner,
  .project-wizard-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .workspace-guided-summary,
  .workspace-guided-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .workspace-guided-grid section:first-child {
    grid-row: auto;
  }

  .workspace-guided-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

.project-detail-main {
  display: grid;
  gap: 1.25rem;
}

.project-detail-hero,
.project-detail-panel {
  border: 1px solid rgba(20, 32, 52, 0.12);
  background: rgba(255, 255, 255, 0.84);
  border-radius: 8px;
  padding: clamp(1rem, 2vw, 1.5rem);
  box-shadow: 0 18px 44px rgba(20, 32, 52, 0.08);
}

.project-detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
}

.project-detail-hero h1,
.project-detail-panel h2 {
  margin: 0.25rem 0;
}

.project-detail-hero span,
.project-detail-panel-heading span,
.material-status-item span,
.project-detail-history span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.project-detail-actions,
.project-card-footer-actions,
.dashboard-project-actions,
.project-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
}

.demo-badge {
  display: inline-flex;
  width: fit-content;
  border: 1px solid rgba(38, 117, 85, 0.28);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
  background: rgba(226, 246, 236, 0.82);
  color: #1f6b4c;
  font-size: 0.72rem;
  font-weight: 800;
}

.sample-library-panel {
  width: min(1120px, 100%);
  margin: 1.25rem auto;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: rgba(255, 255, 255, .72);
  box-shadow: var(--shadow-soft);
  min-width: 0;
}

.sample-library-heading {
  display: grid;
  gap: .3rem;
  margin-bottom: .9rem;
}

.sample-library-heading span,
.sample-library-card span {
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--color-academic-blue);
  letter-spacing: 0;
}

.sample-library-heading h2,
.sample-library-card h3 {
  margin: 0;
  overflow-wrap: anywhere;
}

.sample-library-heading p,
.sample-library-card p,
.sample-library-safety {
  margin: 0;
  color: var(--color-muted);
  overflow-wrap: anywhere;
}

.sample-library-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: .75rem;
  min-width: 0;
}

.sample-library-card {
  display: grid;
  gap: .45rem;
  min-width: 0;
  padding: .85rem;
  border: 1px solid rgba(29, 53, 87, .12);
  border-radius: 8px;
  background: #fff;
}

.sample-library-card .text-button {
  width: fit-content;
}

.sample-library-safety {
  margin-top: .85rem;
  font-size: .82rem;
}

.assignment-analysis-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
  gap: .8rem;
  margin-bottom: .9rem;
}

.assignment-analysis-dashboard-grid article {
  min-width: 0;
  padding: .9rem;
  border: 1px solid rgba(29, 53, 87, .12);
  border-radius: 8px;
  background: #fff;
}

.assignment-analysis-dashboard-grid ol {
  display: grid;
  gap: .35rem;
  margin: .55rem 0 0;
  padding-left: 1.1rem;
  color: var(--color-slate);
  font-size: .9rem;
}

.assignment-analysis-dashboard-grid p {
  margin: .7rem 0 0;
  color: var(--color-muted);
  font-size: .86rem;
  line-height: 1.55;
}

.assignment-analysis-material-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .55rem;
}

.assignment-analysis-material-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  padding: .3rem .55rem;
  border-radius: 999px;
  background: #EFE8DA;
  color: var(--color-academic-blue);
  font-size: .78rem;
  font-weight: 800;
}

.assignment-project-mini {
  display: grid;
  gap: .35rem;
  margin: .85rem 0;
  padding: .75rem;
  border: 1px solid rgba(29, 53, 87, .12);
  border-radius: 8px;
  background: #fbf7ee;
  color: var(--color-slate);
  overflow-wrap: anywhere;
}

.assignment-project-mini b {
  color: var(--color-academic-blue);
}

.assignment-project-mini span,
.assignment-project-mini small,
.assignment-project-mini p,
.assignment-project-boundary {
  color: var(--color-muted);
  font-size: .84rem;
  line-height: 1.5;
}

.assignment-project-mini.large {
  margin-top: 1rem;
}

.assignment-continuation-panel {
  display: grid;
  gap: .9rem;
}

.assignment-continuation-panel > div > span {
  color: var(--color-burgundy);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.assignment-continuation-steps {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.assignment-continuation-steps li {
  min-width: 0;
  padding: .8rem;
  border: 1px solid rgba(29, 53, 87, .12);
  border-radius: 8px;
  background: #fffdf8;
}

.assignment-continuation-steps .text-button {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.assignment-continuation-steps span {
  display: block;
  margin-top: .35rem;
  color: var(--color-muted);
  font-size: .88rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.project-revision-workflow {
  display: grid;
  gap: 1rem;
  min-width: 0;
  border: 1px solid rgba(20, 32, 52, 0.12);
  background: rgba(255, 255, 255, 0.84);
  border-radius: 10px;
  padding: 1rem;
}

.revision-workflow-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  min-width: 0;
}

.revision-workflow-panel {
  display: grid;
  gap: .85rem;
  min-width: 0;
  padding: .95rem;
  border: 1px solid rgba(20, 32, 52, 0.1);
  border-radius: 8px;
  background: rgba(255, 253, 248, .72);
}

.revision-workflow-panel.full-width {
  grid-column: 1 / -1;
}

.revision-workflow-heading,
.revision-workflow-form,
.revision-workflow-list {
  display: grid;
  gap: .65rem;
  min-width: 0;
}

.revision-workflow-heading span,
.revision-workflow-card span,
.revision-action-row span {
  color: var(--color-burgundy);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.revision-workflow-heading h3,
.revision-workflow-card h4 {
  margin: 0;
  color: var(--color-academic-blue);
}

.revision-workflow-heading p,
.revision-workflow-card p,
.revision-action-row small,
.revision-workflow-empty {
  margin: 0;
  color: var(--color-muted);
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.revision-workflow-form input,
.revision-workflow-form select,
.revision-workflow-form textarea,
.revision-action-row select {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(20, 32, 52, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, .92);
  color: var(--ink);
}

.revision-workflow-card,
.revision-action-row {
  min-width: 0;
  padding: .8rem;
  border: 1px solid rgba(20, 32, 52, 0.09);
  border-radius: 8px;
  background: rgba(255, 255, 255, .68);
}

.revision-action-list {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.revision-action-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(8rem, .28fr);
  gap: .85rem;
  align-items: start;
}

.revision-action-row div {
  display: grid;
  gap: .3rem;
  min-width: 0;
}

.rubric-breakdown-panel,
.draft-review-preparation-panel {
  display: grid;
  gap: 1rem;
  min-width: 0;
  border: 1px solid rgba(20, 32, 52, 0.12);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.84);
  padding: 1rem;
}

.draft-review-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  min-width: 0;
}

.rubric-criterion-form,
.rubric-criteria-list,
.rubric-criterion-card,
.rubric-inline-form,
.rubric-checklist-list,
.draft-review-section-card {
  display: grid;
  gap: .75rem;
  min-width: 0;
}

.rubric-criterion-card,
.draft-review-section-card {
  padding: .9rem;
  border: 1px solid rgba(20, 32, 52, 0.1);
  border-radius: 8px;
  background: rgba(255, 253, 248, .72);
}

.rubric-criterion-heading {
  display: grid;
  gap: .35rem;
  min-width: 0;
}

.rubric-criterion-heading span,
.draft-review-section-card > span {
  color: var(--color-burgundy);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.rubric-criterion-heading h3,
.draft-review-section-card h3,
.rubric-criterion-columns h4 {
  margin: 0;
  color: var(--color-academic-blue);
}

.rubric-criterion-heading p,
.draft-review-section-card p,
.rubric-criterion-columns li,
.rubric-checklist-row small {
  margin: 0;
  color: var(--color-muted);
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.rubric-criterion-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  min-width: 0;
}

.rubric-criterion-columns ul,
.rubric-checklist-list {
  margin: 0;
  padding-left: 1.1rem;
}

.rubric-inline-form {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  align-items: end;
}

.rubric-inline-form input,
.rubric-criterion-actions select,
.rubric-checklist-row select {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(20, 32, 52, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, .92);
  color: var(--ink);
}

.rubric-criterion-actions,
.rubric-checklist-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: start;
  min-width: 0;
}

.rubric-checklist-row {
  padding: .75rem;
  border: 1px solid rgba(20, 32, 52, 0.09);
  border-radius: 8px;
  background: rgba(255, 255, 255, .68);
}

.rubric-checklist-row div {
  display: grid;
  gap: .25rem;
  min-width: 0;
}

.assignment-project-progress {
  margin: .35rem 0;
  color: var(--color-muted);
  font-size: .84rem;
}

.sample-safety-note {
  max-width: 68ch;
  margin: .65rem 0 0;
  color: var(--color-muted);
  overflow-wrap: anywhere;
}

.project-detail-summary-grid,
.project-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.project-detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.project-detail-meta,
.material-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 1rem 0 0;
}

.project-detail-meta div,
.material-status-item {
  min-width: 0;
  border: 1px solid rgba(20, 32, 52, 0.1);
  border-radius: 8px;
  padding: 0.85rem;
  background: rgba(248, 247, 242, 0.72);
}

.project-detail-meta dt {
  color: var(--muted);
  font-size: 0.78rem;
}

.project-detail-meta dd {
  margin: 0.2rem 0 0;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.project-detail-meta.compact {
  grid-template-columns: minmax(0, 1fr);
}

.material-status-item b {
  display: block;
  margin-top: 0.3rem;
}

.material-status-item[data-material-state="detected"] {
  border-color: rgba(38, 117, 85, 0.3);
}

.project-detail-history {
  display: grid;
  gap: 0.75rem;
  padding-left: 1.25rem;
}

.project-detail-history li {
  padding: 0.85rem;
  border: 1px solid rgba(20, 32, 52, 0.1);
  border-radius: 8px;
  background: rgba(248, 247, 242, 0.72);
}

.project-detail-history div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}

.project-detail-note {
  color: var(--muted);
  font-size: 0.9rem;
}

.version-pair-grid,
.version-change-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}

.version-pair-grid article,
.version-change-row {
  min-width: 0;
  border: 1px solid rgba(20, 32, 52, 0.1);
  border-radius: 8px;
  padding: 0.85rem;
  background: rgba(248, 247, 242, 0.72);
}

.version-change-row p {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .project-detail-hero,
  .project-detail-summary-grid,
  .project-detail-grid,
  .project-detail-meta,
  .material-status-grid,
  .version-pair-grid,
  .version-change-grid,
  .revision-workflow-grid,
  .draft-review-grid,
  .revision-action-row,
  .rubric-criterion-columns,
  .rubric-inline-form,
  .rubric-criterion-actions,
  .rubric-checklist-row {
    grid-template-columns: minmax(0, 1fr);
  }
}

.error-page-main {
  min-height: 100dvh;
  display: grid;
  align-items: center;
  padding-top: 10rem;
}

.error-page-main .error-state {
  max-width: 48rem;
  margin: 0 auto;
  padding: 2.4rem;
  border-radius: 1.6rem;
  background: rgba(255, 254, 250, .92);
  box-shadow: 0 28px 90px rgba(55,70,48,.1), inset 0 1px rgba(255,255,255,.9);
}

.error-page-main .error-state > span {
  color: var(--lime);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.error-page-main .error-state h1 {
  max-width: 11ch;
  margin: 1rem 0 1.1rem;
  font-size: clamp(3.4rem, 6vw, 5.8rem);
  line-height: .92;
}

.error-page-main .error-state p {
  max-width: 40rem;
  color: var(--muted);
  line-height: 1.7;
}

.error-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .85rem 1rem;
  margin-top: 1.8rem;
}

@media (max-width: 620px) {
  .error-page-main {
    padding-top: 8rem;
  }

  .error-page-main .error-state {
    padding: 1.5rem;
  }

  .error-actions {
    align-items: stretch;
  }

  .error-actions .button,
  .error-actions .text-button {
    width: 100%;
    justify-content: center;
  }
}

/* Product UI / CSS design-system cleanup */
:root {
  --space-page-inline: clamp(16px, 4vw, 40px);
  --space-section-block: clamp(56px, 8vw, 96px);
  --space-card: clamp(18px, 2.4vw, 26px);
  --radius-card: 10px;
  --shadow-card-soft: 0 12px 30px rgba(16, 24, 40, 0.06);
  --type-hero: clamp(2.75rem, 4.6vw, 4.75rem);
  --type-page-title: clamp(2.25rem, 4vw, 4rem);
  --type-section-title: clamp(1.75rem, 3vw, 2.8rem);
  --type-mobile-title: clamp(2rem, 10vw, 2.75rem);
}

.academic-site-page {
  overflow-x: clip;
  line-height: 1.65;
}

:lang(zh) .academic-site-page,
html[lang="zh-CN"] .academic-site-page,
html[lang="zh-Hans"] .academic-site-page {
  line-height: 1.75;
  letter-spacing: 0;
}

.academic-site-page :is(.hero h1,
.academic-hero h1,
.workspace-heading h1,
.catalog-hero h1,
.projects-heading h1,
.pricing-hero h1,
.product-dashboard-hero h1,
.auth-card h1,
.state-card h1,
.project-detail-hero h1,
.error-page-main .error-state h1) {
  max-width: min(16ch, 100%);
  color: var(--color-academic-blue);
  font-family: var(--font-heading);
  font-size: var(--type-page-title);
  line-height: 1.05;
  letter-spacing: 0;
}

.academic-site-page .hero h1,
.academic-site-page .academic-hero h1 {
  font-size: var(--type-hero);
}

.academic-site-page :is(.story-intro h2,
.section-heading h2,
.how h2,
.integrity h2,
.closing h2,
.pricing-boundary h2,
.project-detail-panel h2,
.state-card h2) {
  max-width: min(18ch, 100%);
  font-size: var(--type-section-title);
  line-height: 1.08;
  letter-spacing: 0;
}

:lang(zh) .academic-site-page :is(.hero h1,
.academic-hero h1,
.workspace-heading h1,
.catalog-hero h1,
.projects-heading h1,
.pricing-hero h1,
.product-dashboard-hero h1,
.auth-card h1,
.state-card h1,
.project-detail-hero h1,
.error-page-main .error-state h1) {
  max-width: 18ch;
  line-height: 1.16;
  letter-spacing: 0;
}

.academic-site-page :is(.section-pad,
.workspace-tool,
.product-shell-main,
.catalog-main,
.projects-main,
.pricing-page,
.project-detail-main,
.error-page-main) {
  width: min(1120px, calc(100% - (var(--space-page-inline) * 2)));
}

.academic-site-page :is(.section-pad,
.home-workflow,
.product-story) {
  padding-block: var(--space-section-block);
}

.product-ui-card,
.academic-card,
.workflow-card,
.capability-card,
.template-card,
.resource-list article,
.resource-layout > aside,
.resource-start-grid > article,
.resource-guide-grid > article,
.resource-frame-grid > article,
.resource-pitfall-grid > article,
.resource-trust-grid > article,
.knowledge-library-grid > article,
.project-card,
.projects-empty,
.pricing-plan-grid article,
.pricing-boundary,
.auth-card,
.state-card,
.settings-panel,
.contact-card,
.faq-grid details,
.legal-grid article,
.account-readiness-banner,
.project-storage-summary,
.workspace-guided-shell,
.workspace-guided-summary article,
.workspace-guided-grid section,
.sample-library-panel,
.project-detail-hero,
.project-detail-panel {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-paper);
  box-shadow: var(--shadow-card-soft);
}

.product-ui-card,
.academic-card,
.auth-card,
.state-card,
.settings-panel,
.contact-card,
.project-detail-hero,
.project-detail-panel {
  padding: var(--space-card);
}

.primary-button,
.button-primary,
.secondary-button,
.project-data-button,
.citation-actions button,
.citation-output button,
.citation-list-panel button,
.catalog-filters button,
.library-filters button,
.project-status-filter button,
.state-actions a,
.state-actions button,
.auth-tabs button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  border-radius: 8px;
  padding: 0.68rem 1rem;
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
  text-wrap: balance;
}

.primary-button,
.button-primary,
.auth-tabs button[aria-selected="true"] {
  border: 1px solid var(--color-academic-blue);
  background: var(--color-academic-blue);
  color: #fff;
}

.secondary-button,
.project-data-button,
.catalog-filters button,
.library-filters button,
.project-status-filter button,
.auth-tabs button,
.state-actions a,
.state-actions button {
  border: 1px solid var(--color-border);
  background: var(--color-paper);
  color: var(--color-academic-blue);
}

.text-button,
.secondary-link {
  min-height: 36px;
  color: var(--color-academic-blue);
  line-height: 1.25;
  text-wrap: balance;
}

.danger,
.project-data-button.danger,
.citation-list-actions .danger,
.project-data-actions .danger {
  border-color: rgba(180, 35, 24, 0.28);
  background: #fff5f2;
  color: var(--color-danger);
}

.account-deletion-shell {
  display: grid;
  gap: .8rem;
}

.account-deletion-panel {
  display: grid;
  gap: .75rem;
  min-width: 0;
}

.account-deletion-panel h4,
.account-deletion-panel p {
  overflow-wrap: anywhere;
}

.account-deletion-panel .text-button {
  width: fit-content;
  max-width: 100%;
}

.account-deletion-boundary-list,
.account-deletion-dates {
  display: grid;
  gap: .5rem;
  margin: 0;
  padding: 0;
}

.account-deletion-boundary-list {
  padding-left: 1.1rem;
  color: var(--color-muted);
  font-size: .72rem;
  line-height: 1.55;
}

.account-deletion-dates div {
  display: grid;
  gap: .15rem;
  padding: .65rem;
  border: 1px solid rgba(16, 24, 40, .1);
  border-radius: 8px;
  background: rgba(255, 255, 255, .65);
}

.account-deletion-dates dt {
  color: var(--color-muted);
  font-size: .62rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.account-deletion-dates dd {
  margin: 0;
  color: var(--color-academic-blue);
  font-weight: 700;
}

.account-deletion-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

.account-deletion-confirmation input {
  width: min(100%, 28rem);
}

.primary-button:disabled,
.button:disabled,
.secondary-button:disabled,
.project-data-button:disabled,
.state-actions button:disabled,
.auth-tabs button:disabled {
  cursor: not-allowed;
  opacity: 0.52;
  transform: none;
  box-shadow: none;
}

.product-truth-chip,
.status-pill,
.demo-badge {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  border: 1px solid rgba(29, 53, 87, 0.12);
  border-radius: 999px;
  padding: 0.28rem 0.65rem;
  background: #fbf7ee;
  color: var(--color-academic-blue);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.candidate-only-badge,
.source-confirmation-badge,
.coverage-status,
.risk-label,
.consistency-status,
.assignment-analysis-file-row > span,
.assignment-analysis-processing span {
  min-height: 28px;
  border-radius: 999px;
  line-height: 1.2;
}

@media (max-width: 820px) {
  .academic-site-page :is(.catalog-hero,
  .projects-heading,
  .pricing-hero,
  .workspace-heading,
  .product-dashboard-hero,
  .auth-layout,
  .project-detail-hero) {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 620px) {
  .product-shell-main,
  .academic-site-page :is(.section-pad,
  .workspace-tool,
  .catalog-main,
  .projects-main,
  .pricing-page,
  .project-detail-main,
  .error-page-main) {
    width: min(100% - 24px, 680px);
    padding-top: 88px;
  }

  .academic-site-page :is(.hero h1,
  .academic-hero h1,
  .workspace-heading h1,
  .catalog-hero h1,
  .projects-heading h1,
  .pricing-hero h1,
  .product-dashboard-hero h1,
  .auth-card h1,
  .state-card h1,
  .project-detail-hero h1,
  .error-page-main .error-state h1) {
    font-size: var(--type-mobile-title);
    line-height: 1.08;
  }

  .academic-site-page :is(.story-intro h2,
  .section-heading h2,
  .how h2,
  .integrity h2,
  .closing h2,
  .pricing-boundary h2,
  .project-detail-panel h2,
  .state-card h2) {
    font-size: clamp(1.6rem, 8vw, 2.25rem);
  }

  .hero-actions,
  .resource-action-row,
  .project-detail-actions,
  .project-card-footer-actions,
  .dashboard-project-actions,
  .project-toolbar-actions,
  .state-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .hero-actions .button,
  .hero-actions .text-button,
  .state-actions a,
  .state-actions button,
  .auth-tabs button,
  .project-detail-actions a,
  .project-card-footer-actions a,
  .dashboard-project-actions a,
  .project-toolbar-actions a {
    width: 100%;
    justify-content: center;
  }

  .product-truth-strip {
    width: min(100% - 24px, 680px);
    align-items: flex-start;
    flex-direction: column;
  }

  .product-truth-chips {
    justify-content: flex-start;
  }
}

.clerk-sign-in-mount {
  min-height: 220px;
  display: grid;
  place-items: center;
  padding: var(--space-4);
  border: 1px dashed var(--border);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.72);
  color: var(--muted);
  text-align: center;
}

.clerk-sign-in-mount[data-state="setup-needed"] {
  min-height: 160px;
}

.account-project-metadata-card[data-state="available"] {
  border-color: rgba(38, 117, 85, 0.26);
}

.account-project-metadata-shell {
  display: grid;
  gap: 1rem;
}

.account-project-metadata-list {
  display: grid;
  gap: 0.85rem;
}

.account-project-metadata-item,
.account-project-metadata-empty {
  min-width: 0;
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.68);
}

.account-project-metadata-item h3,
.account-project-metadata-empty h3 {
  margin: 0;
  color: var(--color-academic-blue);
  font-size: 1rem;
  letter-spacing: 0;
}

.account-project-metadata-item p,
.account-project-metadata-empty p {
  margin: 0;
  color: var(--color-muted);
  line-height: 1.55;
}

.account-project-metadata-item > div > span,
.account-project-metadata-empty > span {
  display: inline-flex;
  width: fit-content;
  min-height: 28px;
  align-items: center;
  padding: 0.25rem 0.55rem;
  border: 1px solid rgba(38, 117, 85, 0.22);
  border-radius: 999px;
  color: var(--color-academic-blue);
  background: rgba(38, 117, 85, 0.08);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: capitalize;
}

.account-project-metadata-item dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 0;
}

.account-project-metadata-item dl div {
  min-width: 0;
  padding: 0.65rem;
  border-radius: 8px;
  background: var(--color-paper);
}

.account-project-metadata-item dt {
  color: var(--color-muted);
  font-size: 0.72rem;
}

.account-project-metadata-item dd {
  margin: 0.2rem 0 0;
  color: var(--color-ink);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.account-project-metadata-error {
  margin: 0;
  color: #8a4039;
  font-size: 0.86rem;
}

@media (max-width: 700px) {
  .account-project-metadata-item dl {
    grid-template-columns: 1fr;
  }
}

.local-metadata-import-panel {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid rgba(53, 65, 82, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 40px rgba(25, 35, 52, 0.08);
}

.local-metadata-import-panel h3,
.local-metadata-import-panel h4 {
  margin: 0 0 8px;
}

.local-metadata-import-panel p {
  margin: 0 0 14px;
  color: var(--muted);
}

.local-metadata-import-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 14px 0;
}

.local-metadata-import-grid section {
  padding: 14px;
  border: 1px solid rgba(53, 65, 82, 0.12);
  border-radius: 8px;
  background: rgba(248, 250, 252, 0.78);
}

.local-metadata-import-grid ul {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
}

.local-metadata-import-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.local-metadata-import-summary div {
  min-width: 0;
  padding: 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.74);
}

.local-metadata-import-summary dt {
  color: var(--muted);
  font-size: 0.78rem;
}

.local-metadata-import-summary dd {
  margin: 4px 0 0;
  overflow-wrap: anywhere;
  font-weight: 700;
}

.local-metadata-import-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

@media (max-width: 720px) {
  .local-metadata-import-grid,
  .local-metadata-import-summary {
    grid-template-columns: 1fr;
  }
}

.account-project-metadata-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
}

.account-project-metadata-details {
  padding: 0.9rem;
  border: 1px solid rgba(53, 65, 82, 0.12);
  border-radius: 8px;
  background: rgba(250, 248, 242, 0.76);
}

.account-project-metadata-details h4,
.account-project-metadata-details h5 {
  margin: 0 0 0.45rem;
}

.account-project-metadata-details p {
  margin: 0 0 0.8rem;
  color: var(--color-muted);
}

.account-project-metadata-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 0.75rem;
}

.account-project-metadata-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0;
}

.account-project-metadata-detail-list div {
  min-width: 0;
  padding: 0.55rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
}

.account-project-metadata-detail-list dt {
  color: var(--color-muted);
  font-size: 0.72rem;
}

.account-project-metadata-detail-list dd {
  margin: 0.2rem 0 0;
  overflow-wrap: anywhere;
  color: var(--color-ink);
  font-weight: 700;
}

.account-project-metadata-details ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--color-muted);
}

.account-project-metadata-highlight {
  outline: 2px solid rgba(38, 117, 85, 0.35);
  outline-offset: 4px;
}

@media (max-width: 720px) {
  .account-project-metadata-detail-grid,
  .account-project-metadata-detail-list {
    grid-template-columns: 1fr;
  }
}

/* Account metadata layout: keep account-owned metadata readable outside settings-grid columns. */
.account-project-metadata-account-section {
  display: block;
  width: 100%;
  margin: 1.4rem 0 0;
}

.account-project-metadata-account-section .account-project-metadata-card {
  width: 100%;
}

.account-project-metadata-section {
  grid-template-columns: minmax(0, 1fr);
}

.account-project-metadata-section > .project-data-copy {
  max-width: 58rem;
}

.account-project-metadata-section #account-project-metadata-title {
  max-width: none;
  overflow-wrap: normal;
}

.account-project-metadata-list {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  min-width: 0;
}

.account-project-metadata-item h3,
.account-project-metadata-empty h3 {
  max-width: none;
  overflow-wrap: break-word;
}

.account-project-metadata-item dd {
  overflow-wrap: break-word;
}

.account-project-metadata-duplicate-notice {
  min-width: 0;
  margin: 0 0 0.85rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(138, 64, 57, 0.18);
  border-radius: 8px;
  background: rgba(255, 247, 235, 0.78);
  color: var(--color-ink);
}

.account-project-metadata-duplicate-notice span {
  display: block;
  margin-bottom: 0.35rem;
  color: #8a4039;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.account-project-metadata-duplicate-notice p {
  margin: 0;
  color: var(--color-muted);
  line-height: 1.55;
}

@media (max-width: 700px) {
  .account-project-metadata-list {
    grid-template-columns: 1fr;
  }
}

.project-data-panel.account-project-metadata-shell {
  grid-template-columns: minmax(0, 1fr);
}

.project-data-panel.account-project-metadata-shell [data-account-project-metadata-root] {
  min-width: 0;
}
