@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-sans-hebrew-hebrew-400-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-sans-hebrew-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-sans-hebrew-hebrew-500-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-sans-hebrew-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-sans-arabic-arabic-500-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/ibm-plex-sans-hebrew-hebrew-600-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/ibm-plex-sans-hebrew-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/ibm-plex-sans-hebrew-hebrew-700-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;}
@font-face{font-family:"IBM Plex Sans Hebrew";font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/ibm-plex-sans-hebrew-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans Arabic";font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/ibm-plex-sans-arabic-arabic-700-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/frank-ruhl-libre-hebrew-400-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/frank-ruhl-libre-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/frank-ruhl-libre-hebrew-700-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/frank-ruhl-libre-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
/* mikhraz.ai dashboard. Tokens from docs/design/brand/tokens.json.
   Night chrome (header, masthead) over a Paper reading surface; tender text on doc-paper.
   Colour carries meaning only: ok = met, stamp = disqualifying, caution = time pressure,
   marker = "read / act on this". Logical properties throughout (RTL first). */

:root {
  --ground: #F5F6F8; --surface: #FFFFFF; --ink: #0D1828; --ink-muted: #4E5B70;
  --rule: rgba(13, 24, 40, .12); --rule-strong: rgba(13, 24, 40, .30); --tint: rgba(13, 24, 40, .05);
  --night: #0D1828; --night-surface: #142338; --night-ink: #EEF2F7; --night-muted: #8E9CB2;
  --night-ok: #4FD39A; --night-stamp: #E05A4C; --night-rule: rgba(150, 182, 220, .18); --grid-line: rgba(150, 182, 220, .07);
  --marker: #F2B544; --marker-ink: #8A5D00; --on-marker: #0D1828; --marker-wash: rgba(242, 181, 68, .42);
  --go: #1E7F55; --go-hover: #17663F; --on-go: #FFFFFF;
  --ok: #1E7F55; --stamp: #C93A2E; --caution: #C98A12;
  --doc-paper: #F1EDE3; --doc-ink: #1E1E1C; --doc-rule: #34322E;
  --wa-out: #D9F2E4; --wa-in: #FFFFFF;
  --f-sans: "IBM Plex Sans Hebrew", "IBM Plex Sans Arabic", system-ui, sans-serif;
  --f-ar: "IBM Plex Sans Arabic", "IBM Plex Sans Hebrew", system-ui, sans-serif;
  --f-doc: "Frank Ruhl Libre", David, "Times New Roman", serif;
  --f-mono: "IBM Plex Mono", "IBM Plex Sans Hebrew", ui-monospace, monospace;
  --r-sheet: 2px; --r-sm: 8px; --r-md: 12px; --r-lg: 24px; --r-pill: 999px;
  --shadow-sheet: 0 18px 40px rgba(13, 24, 40, .18);
  --focus: var(--ink);
  --gutter: 16px;
  --secnav-h: 52px;
}
@media (min-width: 760px) { :root { --gutter: 32px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-block-start: calc(var(--secnav-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0; background: var(--ground); color: var(--ink);
  font: 400 16px/1.65 var(--f-sans); font-feature-settings: "tnum" 0;
}
body.lang-ar { font-family: var(--f-ar); font-size: 17px; line-height: 1.8; }
h1, h2, h3 { margin: 0; line-height: 1.3; font-weight: 700; }
p { margin: 0; }
a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px; }
img { max-width: 100%; }
bdi { unicode-bidi: isolate; }
.mono, .mono-strong { font-family: var(--f-mono); letter-spacing: .02em; }
.mono { font-size: .9em; }
.mono-strong { font-weight: 500; }
.muted { color: var(--ink-muted); }
.small { font-size: 14px; }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; box-shadow: 0 0 0 6px var(--marker); border-radius: 4px; }
main:focus { outline: none; }

.skip {
  position: absolute; inset-inline-start: 12px; inset-block-start: -60px; z-index: 100;
  background: var(--marker); color: var(--on-marker); padding: 10px 16px; border-radius: var(--r-sm); font-weight: 600;
}
.skip:focus { inset-block-start: 12px; }

.wrap { max-width: 1240px; margin-inline: auto; padding-inline: var(--gutter); }
.wrap.narrow { max-width: 780px; }

/* ---- buttons ---- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 20px; border-radius: var(--r-pill); border: 1.5px solid transparent;
  font: 600 15px/1.2 inherit; font-family: inherit; text-decoration: none; cursor: pointer; white-space: nowrap;
}
.btn-go { background: var(--go); color: var(--on-go); }
.btn-go:hover { background: var(--go-hover); }
.btn-quiet { background: var(--surface); color: var(--ink); border-color: var(--rule-strong); }
.btn-quiet:hover { background: var(--tint); }
.btn-lg { min-height: 52px; padding: 0 28px; font-size: 17px; }
.icon-btn {
  display: inline-grid; place-items: center; inline-size: 44px; block-size: 44px; border-radius: var(--r-pill);
  border: 0; background: transparent; color: inherit; font: 600 18px/1 var(--f-sans); cursor: pointer;
}
.icon-btn:hover { background: var(--tint); }

/* ---- top bar (night) ---- */
.topbar { background: var(--night); color: var(--night-ink); --focus: var(--marker); border-block-end: 1px solid var(--night-rule); }
.topbar :focus-visible { box-shadow: none; }
.topbar-in { display: flex; align-items: center; justify-content: space-between; min-height: 60px; gap: 16px; }
.mainnav { display: flex; gap: 4px; }
.mainnav a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; color: var(--night-muted);
  text-decoration: none; font-weight: 600; font-size: 15px; border-block-end: 3px solid transparent;
}
.mainnav a:hover { color: var(--night-ink); }
.mainnav a[aria-current="page"] { color: var(--night-ink); border-block-end-color: var(--marker); }
.topbar-end { display: flex; align-items: center; gap: 16px; }
.langswitch {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: var(--r-pill);
  border: 1px solid var(--night-rule); color: var(--night-ink); text-decoration: none; font: 500 14px/1 var(--f-sans);
}
.langswitch[lang="ar"] { font-family: var(--f-ar); }
.langswitch:hover { border-color: var(--night-muted); }
.wordmark { display: inline-flex; align-items: center; min-height: 44px; }
.wordmark img { display: block; height: 21px; width: auto; }

/* ---- page head ---- */
.pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 32px 20px; }
.pagehead h1 { font-size: 28px; line-height: 36px; }
.pagehead .sub { color: var(--ink-muted); margin-block-start: 4px; }
@media (max-width: 559px) { .pagehead { padding-block: 24px 16px; } .pagehead h1 { font-size: 24px; } .pagehead-actions { inline-size: 100%; } .pagehead-actions .btn { inline-size: 100%; } }

/* ---- tags (annotation labels) ---- */
.tag {
  display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: var(--r-sm);
  font: 600 13px/1.25 var(--f-sans); border: 1.5px solid transparent; max-inline-size: 100%; overflow-wrap: anywhere;
}
.lang-ar .tag { font-family: var(--f-ar); }
.tag-ok { color: var(--ok); border-color: var(--ok); background: var(--surface); }
.tag-stamp { background: var(--stamp); color: #FFFFFF; }
.tag-stamp-outline { color: var(--stamp); border-color: var(--stamp); background: transparent; }
.tag-marker { background: var(--marker); color: var(--on-marker); }
.tag-caution { background: var(--caution); color: var(--on-marker); }
.tag-unknown { color: var(--ink-muted); border: 1.5px dashed var(--ink-muted); background: var(--surface); }
.tag-plain { background: var(--tint); color: var(--ink); }
.tag-muted { color: var(--ink-muted); border-color: var(--rule); }

/* ---- citations & excerpts ---- */
.cite {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding-inline: 2px;
  font: 500 13px/1 var(--f-mono); color: var(--ink); text-decoration: none; letter-spacing: .02em;
}
.cite-page { background: var(--tint); border: 1px solid var(--rule); padding: 5px 9px; border-radius: var(--r-sm); }
.cite-clause { color: var(--ink-muted); font-family: var(--f-sans); font-size: 13px; }
.cite:hover .cite-page { background: var(--marker); border-color: var(--marker); color: var(--on-marker); }
.excerpt { margin: 12px 0 0; }
.excerpt blockquote {
  margin: 0; background: var(--doc-paper); color: var(--doc-ink); font: 400 16px/1.7 var(--f-doc);
  padding: 12px 16px; border-radius: var(--r-sheet); border-inline-start: 3px solid var(--doc-rule);
  box-shadow: 0 1px 0 rgba(13, 24, 40, .08);
}
.excerpt figcaption { display: flex; justify-content: flex-end; }
.excerpt.compact blockquote { font-size: 15px; padding: 8px 12px; }
.excerpt.compact { margin-block-start: 4px; }

/* ---- tenders ledger ---- */
.filter { display: flex; align-items: center; gap: 12px; padding-block-end: 16px; }
.filter-label { font-size: 14px; color: var(--ink-muted); font-weight: 600; flex: none; }
.filter-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-block: 4px; min-inline-size: 0; }
.filter-chips a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: var(--r-pill);
  border: 1.5px solid var(--rule-strong); text-decoration: none; font-size: 15px; white-space: nowrap; background: var(--surface);
}
.filter-chips a[aria-current="true"] { background: var(--ink); color: var(--ground); border-color: var(--ink); }

.ledger-wrap { padding-block-end: 64px; }
.ledger, .co-list { list-style: none; margin: 0; padding: 0; }
.ledger-head, .lr {
  display: grid; grid-template-columns: 150px minmax(0, 1fr) 200px 130px 130px; gap: 24px; align-items: center;
}
.ledger-head {
  font: 500 12px/1 var(--f-mono); letter-spacing: .06em; color: var(--ink-muted);
  padding-block: 10px; border-block-end: 2px solid var(--ink);
}
.lang-ar .ledger-head { font-family: var(--f-ar); letter-spacing: 0; font-size: 13px; }
.lr { position: relative; padding-block: 18px; border-block-end: 1px solid var(--rule); }
.lr:hover { background: linear-gradient(to left, transparent, var(--tint) 8%, var(--tint) 92%, transparent); }
.lr-when { display: flex; flex-direction: column; gap: 2px; }
.lr-left { font-size: 19px; font-weight: 700; line-height: 1.3; }
.lr-left.close { align-self: flex-start; background: var(--caution); color: var(--on-marker); padding: 2px 10px; border-radius: var(--r-sm); font-size: 17px; }
.lr-left.passed { color: var(--ink-muted); font-size: 16px; font-weight: 600; }
.lr-date { font-size: 13px; color: var(--ink-muted); }
.lr-none { font-size: 14px; color: var(--ink-muted); border: 1.5px dashed var(--rule-strong); border-radius: var(--r-sm); padding: 4px 8px; align-self: flex-start; }
.lr-dash { color: var(--ink-muted); }
.lr-tender { display: flex; flex-direction: column; gap: 2px; min-inline-size: 0; }
.lr-meta { font-size: 13px; color: var(--ink-muted); }
.lr-title { font-size: 17px; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.lr-title::after { content: ""; position: absolute; inset: 0; }
.lr-title:hover { text-decoration: underline; }
.lr-company { font-size: 14px; color: var(--ink-muted); }
.lr-gaps { display: flex; flex-direction: column; gap: 2px; font-size: 15px; }
.gap-missing { color: var(--stamp); font-weight: 600; }
.gap-risk, .gap-none { color: var(--ink-muted); }
.lr-status { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.lr-retry { position: relative; z-index: 1; font-size: 14px; font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.is-closed .lr-title { color: var(--ink-muted); }
.is-closed .verdict { opacity: .7; }

.verdict { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; }
.verdict-mark {
  display: inline-grid; place-items: center; inline-size: 24px; block-size: 24px; border-radius: 50%;
  border: 2px solid currentColor; font: 700 13px/1 var(--f-sans); flex: none;
}
.verdict.verdict-bid { color: var(--ok); }
.verdict.verdict-complete { color: var(--ink); }
.verdict.verdict-complete .verdict-mark { background: var(--marker); border-color: var(--marker); color: var(--on-marker); }
.verdict.verdict-nobid { color: var(--stamp); }
.verdict.verdict-nobid .verdict-mark { border-radius: 4px; transform: rotate(-8deg); }

.state { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.state-failed { color: var(--stamp); }
.pulse { inline-size: 10px; block-size: 10px; border-radius: 50%; background: var(--marker); box-shadow: 0 0 0 0 var(--marker-wash); }
@media (prefers-reduced-motion: no-preference) { .pulse { animation: pulse 1.6s ease-out infinite; } }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 var(--marker-wash); } 100% { box-shadow: 0 0 0 10px transparent; } }

@media (max-width: 899px) {
  .ledger-head { display: none; }
  .lr {
    grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px;
    grid-template-areas: "when status" "tender tender" "decision gaps"; padding-block: 16px;
  }
  .lr-when { grid-area: when; flex-direction: row; align-items: baseline; gap: 10px; flex-wrap: wrap; }
  .lr-tender { grid-area: tender; }
  .lr-decision { grid-area: decision; }
  .lr-gaps { grid-area: gaps; flex-direction: row; gap: 10px; justify-content: flex-end; font-size: 14px; }
  .lr-status { grid-area: status; align-items: flex-end; }
  .lr-status .muted { display: none; }
  .is-processing .lr-when, .is-failed .lr-when { display: none; }
  .is-processing, .is-failed { grid-template-areas: "tender status" "decision decision"; }
}

.empty-state { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 48px; align-items: center; padding-block: 32px 80px; }
.empty-sheet {
  display: flex; flex-direction: column; gap: 12px; background: var(--doc-paper); border-radius: var(--r-sheet);
  box-shadow: var(--shadow-sheet); padding: 28px 22px; aspect-ratio: 210 / 280; transform: rotate(-2deg);
}
.empty-line { display: block; block-size: 6px; border-radius: 3px; background: rgba(30, 30, 28, .22); }
.empty-line.short { inline-size: 55%; }
.empty-mark { display: block; block-size: 14px; border-radius: 3px; background: var(--marker-wash); outline: 3px solid var(--marker); outline-offset: 3px; }
.empty-copy h2 { font-size: 24px; margin-block-end: 8px; }
.empty-copy p { color: var(--ink-muted); max-inline-size: 46ch; margin-block-end: 20px; }
.empty-filtered { padding: 32px 0; color: var(--ink-muted); }
@media (max-width: 639px) { .empty-state { grid-template-columns: 1fr; gap: 28px; } .empty-sheet { inline-size: 150px; } }

/* ---- analysis: masthead (night) ---- */
.masthead {
  background-color: var(--night); color: var(--night-ink); --focus: var(--marker);
  background-image: linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size: 120px 120px; padding-block: 12px 28px;
}
.masthead :focus-visible { box-shadow: none; }
.crumb { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--night-muted); text-decoration: none; font-size: 14px; }
.crumb:hover { color: var(--night-ink); }
.crumb-paper { color: var(--ink-muted); }
.crumb-paper:hover { color: var(--ink); }
.mh-meta { color: var(--night-muted); font-size: 14px; display: flex; flex-wrap: wrap; gap: 4px 0; }
.sep { padding-inline: 8px; color: var(--night-muted); }
.mh-title { font-size: 28px; line-height: 1.3; margin-block: 4px 4px; max-inline-size: 36ch; }
.mh-company { color: var(--night-muted); font-size: 15px; }
.mh-company strong { color: var(--night-ink); font-weight: 600; }

.verdict-panel {
  display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; margin-block-start: 20px; padding: 20px 24px;
  background: var(--night-surface); border-radius: var(--r-md); border-inline-start: 6px solid var(--night-muted);
}
.verdict-panel h2 { font-size: 26px; line-height: 1.25; }
.vp-mark { display: grid; place-items: center; inline-size: 52px; block-size: 52px; border-radius: 50%; font: 700 26px/1 var(--f-sans); }
.vp-count { margin-block-start: 6px; font-weight: 600; display: flex; flex-wrap: wrap; }
.vp-count .sep { padding-inline: 10px; }
.cl-stamp { color: var(--night-stamp); }
.vp-reason { margin-block-start: 8px; color: #C6D0DD; max-inline-size: 70ch; }
.verdict-panel.verdict-bid { border-inline-start-color: var(--night-ok); }
.verdict-bid .vp-mark { border: 3px solid var(--night-ok); color: var(--night-ok); }
.verdict-panel.verdict-complete { border-inline-start-color: var(--marker); }
.verdict-complete .vp-mark { background: var(--marker); color: var(--on-marker); }
.verdict-panel.verdict-nobid { border-inline-start-color: var(--night-stamp); }
.verdict-nobid .vp-mark { border: 3px double var(--night-stamp); color: var(--night-stamp); border-radius: var(--r-sm); transform: rotate(-8deg); }

.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; margin: 18px 0 0; }
.fact { padding-block: 12px 4px; border-block-start: 1px solid var(--night-rule); min-inline-size: 0; }
.fact dt { color: var(--night-muted); font-size: 13px; font-weight: 500; }
.fact dd { margin: 2px 0 0; display: flex; flex-direction: column; align-items: flex-start; }
.fact-v { font-size: 20px; font-weight: 700; line-height: 1.35; }
.fact-v.is-close { background: var(--caution); color: var(--on-marker); padding: 0 10px; border-radius: var(--r-sm); }
.fact-v.is-passed { color: var(--night-muted); }
.fact-none { font-size: 15px; font-weight: 600; color: var(--night-muted); border: 1.5px dashed var(--night-muted); padding: 2px 8px; border-radius: var(--r-sm); }
.fact-s { font-size: 13px; color: var(--night-muted); }
.fact-link { text-decoration: underline; text-decoration-style: dotted; display: inline-block; padding-block: 6px; }
.fact-link:hover { color: var(--night-ink); }
.wd { font-family: var(--f-sans); }
.masthead .cite { color: var(--night-ink); min-height: 36px; }
.masthead .cite-page { background: transparent; border-color: var(--night-rule); }
.masthead .cite-clause { color: var(--night-muted); }
.masthead .cite:hover .cite-page { color: var(--on-marker); }
.mh-disclaimer { margin-block-start: 14px; font-size: 13px; color: var(--night-muted); max-inline-size: 90ch; }
@media (max-width: 759px) {
  .mh-title { font-size: 22px; }
  .verdict-panel { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; padding: 16px; }
  .vp-mark { inline-size: 40px; block-size: 40px; font-size: 20px; }
  .verdict-panel h2 { font-size: 21px; }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .fact-v { font-size: 17px; }
}

/* ---- section nav (sticky) ---- */
.secnav { position: sticky; inset-block-start: 0; z-index: 20; background: rgba(245, 246, 248, .96); border-block-end: 1px solid var(--rule); }
.secnav-in { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.secnav a {
  display: inline-flex; align-items: center; gap: 6px; min-height: var(--secnav-h); padding: 0 12px; white-space: nowrap;
  text-decoration: none; font-size: 15px; font-weight: 600; color: var(--ink-muted); border-block-end: 3px solid transparent;
}
.secnav a:hover { color: var(--ink); border-block-end-color: var(--rule-strong); }
.count { font: 500 12px/1 var(--f-mono); background: var(--tint); color: var(--ink); padding: 4px 7px; border-radius: var(--r-pill); }
.count-alert { background: var(--marker); color: var(--on-marker); }

/* ---- analysis body ---- */
.analysis { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: start; padding-block: 8px 64px; }
.col { min-inline-size: 0; }
.sec { padding-block: 28px; border-block-start: 1px solid var(--rule); }
.sec:first-child { border-block-start: 0; }
.sec-head { display: flex; align-items: baseline; gap: 4px 14px; flex-wrap: wrap; margin-block-end: 16px; }
.sec-head h2 { font-size: 22px; }
.sec-sub { color: var(--ink-muted); font-size: 15px; }
.calm { display: flex; align-items: center; gap: 10px; color: var(--ink); }
.calm-mark { color: var(--ok); font-weight: 700; }

.todos { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.todo {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px 18px 6px;
  background: var(--surface); border: 1px solid var(--rule); border-inline-start: 5px solid var(--marker); border-radius: var(--r-md);
}
.todo-blocker { border-inline-start-color: var(--stamp); }
.todo .tag { margin-block-start: 3px; }
.todo-text { font-size: 18px; font-weight: 600; line-height: 1.45; }
.todo-why { color: var(--ink-muted); margin-block-start: 2px; }
.todo-when { margin-block-start: 6px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.todo-links { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 14px; }
.todo-links > a:not(.cite) { min-height: 44px; display: inline-flex; align-items: center; }

.dates { list-style: none; margin: 0; padding: 0; }
.date { display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 4px 20px; align-items: center; padding-block: 8px; border-block-end: 1px solid var(--rule); }
.date-when { font-size: 15px; }
.date-when .wd { color: var(--ink-muted); font-size: 14px; }
.date-what { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.date-label { font-weight: 600; }
.date-left { display: flex; align-items: center; gap: 12px; justify-content: flex-end; }
.date.is-passed { color: var(--ink-muted); }
.date.is-passed .date-label { font-weight: 500; }
.date-nf { inline-size: 100%; font-size: 14px; color: var(--ink-muted); }
@media (max-width: 759px) {
  .date { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "what what" "when left"; padding-block: 12px 4px; }
  .date-what { grid-area: what; }
  .date-when { grid-area: when; }
  .date-left { grid-area: left; }
}

/* annotation: the brand's AI mark on a clause: framed box, tag sitting on the frame */
.annos { display: grid; gap: 26px; padding-block-start: 12px; }
.anno {
  position: relative; background: var(--surface); border: 1.5px solid var(--rule-strong); border-radius: var(--r-md);
  padding: 24px 20px 10px;
}
.anno > .tag { position: absolute; inset-block-start: -14px; inset-inline-start: 16px; max-inline-size: calc(100% - 32px); }
.anno-met { border-color: rgba(30, 127, 85, .5); }
.anno-missing { border: 2.5px solid var(--stamp); }
.anno-unknown, .anno-not_found { border: 1.5px dashed var(--ink-muted); }
.anno-risk { border: 2px solid var(--marker); }
.anno-title { font-size: 16px; font-weight: 700; display: flex; align-items: baseline; gap: 10px; }
.anno-clause { font: 500 13px/1 var(--f-mono); color: var(--ink-muted); }
.anno-reason { margin-block-start: 4px; }
.anno-missing .anno-reason { font-weight: 600; }
.anno-value { margin-block-start: 4px; font-weight: 600; }
.anno-met .excerpt blockquote { font-size: 15px; }
.met-src { display: flex; align-items: flex-start; justify-content: space-between; gap: 4px 16px; flex-wrap: wrap; }
.fold { flex: 1 1 260px; min-inline-size: 0; }
.fold > summary { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; cursor: pointer; color: var(--ink-muted); font-size: 14px; list-style: none; }
.fold > summary::-webkit-details-marker { display: none; }
.fold > summary::before { content: "+"; font: 500 15px/1 var(--f-mono); }
.fold[open] > summary::before { content: "−"; }
.fold .excerpt { margin-block: 0 10px; }
.notfound { margin-block: 10px; padding: 12px 16px; border: 1.5px dashed var(--rule-strong); border-radius: var(--r-md); color: var(--ink); }
.askbox { margin-block: 12px 10px; padding: 10px 14px; border-inline-start: 3px solid var(--ink); background: var(--tint); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.askbox-label { display: block; font-size: 13px; font-weight: 600; color: var(--ink-muted); }

.sec-ref .sec-head { margin-block-end: 4px; }
.refgroup { border-block-end: 1px solid var(--rule); }
.refgroup > summary {
  display: flex; align-items: center; gap: 10px; min-height: 56px; cursor: pointer; list-style: none; font-size: 17px; font-weight: 600;
}
.refgroup > summary::-webkit-details-marker { display: none; }
.refgroup > summary::after { content: "+"; margin-inline-start: auto; font: 500 20px/1 var(--f-mono); color: var(--ink-muted); }
.refgroup[open] > summary::after { content: "−"; }
.refs { list-style: none; margin: 0 0 16px; padding: 0; }
.ref { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 4px 20px; padding-block: 10px; border-block-start: 1px dotted var(--rule-strong); }
.ref:first-child { border-block-start: 0; }
.ref-nolabel { grid-template-columns: minmax(0, 1fr); }
.ref-label { font-size: 14px; font-weight: 600; color: var(--ink-muted); padding-block-start: 6px; }
.ref-value { font-weight: 600; }
.about { margin: 0 0 16px; padding-inline-start: 20px; display: grid; gap: 6px; }
.about-warn { color: var(--marker-ink); font-weight: 600; }
.about-warn::marker { color: var(--marker); }
.reports { display: grid; gap: 8px; margin-block-end: 16px; }
.report-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.report-lang { min-inline-size: 80px; font-weight: 600; }
.wa { background: #E9ECEF; border-radius: var(--r-md); padding: 20px; margin-block-end: 16px; }
.wa-bubble {
  max-inline-size: 560px; background: var(--wa-in); border-radius: var(--r-lg); border-start-start-radius: 6px; padding: 14px 18px;
  box-shadow: 0 1px 1px rgba(13, 24, 40, .12); font-size: 15px; line-height: 1.7;
}
.wa-bubble p + p { margin-block-start: 10px; }
.foot-disclaimer { margin-block-start: 8px; padding-block-start: 16px; border-block-start: 1px solid var(--rule); color: var(--ink-muted); font-size: 14px; }
@media (max-width: 759px) { .ref { grid-template-columns: minmax(0, 1fr); } .ref-label { padding-block-start: 0; } }

/* ---- chat dock ---- */
.dock {
  position: sticky; inset-block-start: calc(var(--secnav-h) + 20px); display: flex; flex-direction: column;
  max-block-size: calc(100vh - var(--secnav-h) - 40px); margin-block-start: 28px;
  background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-lg); overflow: hidden;
}
.dock-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 12px 12px 20px; padding-inline-start: 20px; border-block-end: 1px solid var(--rule); }
.dock-head h2 { font-size: 17px; }
.dock-close { display: none; }
.dock-intro { padding: 12px 20px 0; font-size: 14px; color: var(--ink-muted); }
.log { flex: 1; overflow-y: auto; padding: 12px 20px; display: flex; flex-direction: column; gap: 10px; min-block-size: 80px; }
.log:empty { flex: 0 0 auto; min-block-size: 0; padding-block: 4px; }
.msg { max-inline-size: 92%; padding: 10px 14px; border-radius: 18px; font-size: 15px; white-space: pre-wrap; overflow-wrap: anywhere; }
.msg.user { align-self: flex-start; background: var(--wa-out); border-start-start-radius: 6px; }
.msg.bot { align-self: flex-end; background: var(--ground); border: 1px solid var(--rule); border-start-end-radius: 6px; }
.msg.bot.is-quote .msg-text { display: block; font-family: var(--f-doc); background: var(--doc-paper); color: var(--doc-ink); padding: 8px 12px; border-radius: var(--r-sheet); }
.msg.pending { color: var(--ink-muted); }
.msg .src { display: flex; align-items: center; gap: 6px; margin-block-start: 2px; font-size: 13px; color: var(--ink-muted); white-space: normal; }
.msg .src .cite { min-height: 36px; }
.suggest { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 20px 12px; }
.suggest button {
  min-height: 44px; padding: 8px 14px; border-radius: var(--r-lg); border: 1.5px solid var(--rule-strong); background: var(--surface);
  font: 500 14px/1.35 inherit; font-family: inherit; color: var(--ink); text-align: start; cursor: pointer;
}
.suggest button:hover { background: var(--tint); border-color: var(--ink); }
.chat-form { display: flex; gap: 8px; padding: 12px 16px 16px; border-block-start: 1px solid var(--rule); }
.chat-form input { flex: 1; min-inline-size: 0; }
.chat-fab { display: none; }

@media (max-width: 1023px) {
  .analysis { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .is-analysis main { padding-block-end: 88px; }
  .dock {
    position: fixed; inset: auto 0 0 0; z-index: 50; margin: 0; max-block-size: none; min-block-size: 0;
    block-size: min(88vh, 680px); border-radius: var(--r-lg) var(--r-lg) 0 0; border-block-end: 0;
    box-shadow: 0 -12px 40px rgba(13, 24, 40, .25), 0 0 0 100vmax rgba(13, 24, 40, .45);
    transform: translateY(105%); visibility: hidden;
  }
  .dock.open { transform: none; visibility: visible; }
  .dock-close { display: inline-grid; }
  .chat-fab {
    display: inline-flex; align-items: center; gap: 10px; position: fixed; z-index: 40; inset-block-end: 16px; inset-inline-end: 16px;
    min-height: 52px; padding: 0 20px 0 14px; border-radius: var(--r-pill); border: 0; background: var(--night); color: var(--night-ink);
    font: 600 15px/1 inherit; font-family: inherit; cursor: pointer; box-shadow: 0 10px 28px rgba(13, 24, 40, .35); --focus: var(--marker);
  }
  .fab-q { display: inline-grid; place-items: center; inline-size: 28px; block-size: 28px; border-radius: 50%; background: var(--marker); color: var(--on-marker); font-weight: 700; }
  .chat-fab[aria-expanded="true"] { visibility: hidden; }
}
@media (prefers-reduced-motion: no-preference) { .dock { transition: transform .22s ease, visibility .22s; } }

/* ---- source drawer + sheet ---- */
.drawer { position: fixed; inset: 0; z-index: 60; }
.modal-open { overflow: hidden; }
.drawer[hidden] { display: none; }
.drawer-scrim { position: absolute; inset: 0; background: rgba(13, 24, 40, .5); opacity: 0; }
.drawer-panel {
  position: absolute; inset-block: 0; inset-inline-end: 0; inline-size: min(640px, 100%); background: var(--ground);
  display: flex; flex-direction: column; box-shadow: 0 0 60px rgba(13, 24, 40, .35); transform: translateX(-104%);
}
.drawer-panel:focus { outline: none; }
.drawer[data-state="open"] .drawer-scrim { opacity: 1; }
.drawer[data-state="open"] .drawer-panel { transform: none; }
@media (prefers-reduced-motion: no-preference) {
  .drawer-scrim { transition: opacity .2s; }
  .drawer-panel { transition: transform .24s ease; }
}
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px 8px 8px; padding-inline-start: 20px; background: var(--night); color: var(--night-ink); --focus: var(--marker); }
.drawer-head h2 { font-size: 17px; }
.drawer-head :focus-visible { box-shadow: none; }
.drawer-body { flex: 1; overflow-y: auto; padding: 20px; overscroll-behavior: contain; }
.drawer-body.loading { opacity: .5; }

.source-meta { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-block-end: 12px; }
.source-page { font: 500 14px/1.4 var(--f-mono); letter-spacing: .02em; }
.lang-ar .source-page { font-family: var(--f-ar); }
.source-for { color: var(--ink-muted); font-size: 14px; }
.source-scan { font-size: 14px; color: var(--marker-ink); margin-block-end: 10px; font-weight: 600; }
.match-note { border: 1.5px dashed var(--rule-strong); border-radius: var(--r-md); padding: 12px 16px; margin-block-end: 16px; font-size: 15px; }
.match-note blockquote { margin: 8px 0 0; font: 400 15px/1.6 var(--f-doc); color: var(--ink); }
.sheet {
  background: var(--doc-paper); color: var(--doc-ink); border-radius: var(--r-sheet); box-shadow: var(--shadow-sheet);
  padding: 32px 30px 36px; font: 400 16px/1.8 var(--f-doc);
}
.sheet-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.sheet-text::first-line { font-weight: 700; }
.hl {
  background: var(--marker-wash); color: inherit; border-radius: 3px; padding: 2px 1px;
  box-decoration-break: clone; -webkit-box-decoration-break: clone; box-shadow: 0 0 0 2px var(--marker);
}
.hl-tag {
  display: inline-block; margin-inline-end: 6px; padding: 2px 8px; border-radius: var(--r-sm); background: var(--marker); color: var(--on-marker);
  font: 600 12px/1.5 var(--f-sans); vertical-align: 2px; max-inline-size: 100%;
}
.source-note { margin-block-start: 12px; font-size: 13px; color: var(--ink-muted); }
.source-nav { display: flex; justify-content: space-between; gap: 8px; margin-block-start: 16px; flex-wrap: wrap; }
.source-page-wrap h1, .source-page h1 { font-size: 24px; margin-block: 4px 16px; }
.source-page { padding-block: 16px 64px; }
@media (max-width: 559px) { .sheet { padding: 22px 18px; font-size: 15px; } .drawer-body { padding: 14px; } }

/* ---- processing ---- */
.processing { padding-block: 48px 80px; }
.processing h1 { font-size: 28px; }
.processing .sub { color: var(--ink-muted); margin-block: 6px 28px; }
.steps { list-style: none; margin: 0 0 28px; padding: 0; }
.step { position: relative; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; min-height: 52px; }
.step::before { content: ""; position: absolute; inset-inline-start: 9px; inset-block: -18px 34px; border-inline-start: 2px solid var(--rule); }
.step:first-child::before { display: none; }
.step-dot { position: relative; z-index: 1; display: grid; place-items: center; inline-size: 20px; block-size: 20px; border-radius: 50%; border: 2px solid var(--rule-strong); background: var(--ground); font: 700 11px/1 var(--f-sans); }
.step-label { font-size: 17px; }
.step.st-done .step-dot { background: var(--ok); border-color: var(--ok); color: #fff; }
.step.st-done .step-dot::after { content: "✓"; }
.step.st-done::before, .step.st-current::before { border-color: var(--ok); }
.step.st-current .step-dot { background: var(--marker); border-color: var(--marker); }
.step.st-current .step-label { font-weight: 700; }
.step.st-failed .step-dot { background: var(--stamp); border-color: var(--stamp); color: #fff; }
.step.st-failed .step-dot::after { content: "✕"; }
.step.st-failed .step-label { color: var(--stamp); font-weight: 700; }
.step.st-todo .step-label { color: var(--ink-muted); }
@media (prefers-reduced-motion: no-preference) { .step.st-current .step-dot { animation: pulse 1.6s ease-out infinite; } }
.proc-meta { display: grid; gap: 6px; margin: 0 0 24px; padding: 16px; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); font-size: 14px; }
.proc-meta div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; }
.proc-meta dt { color: var(--ink-muted); }
.proc-meta dd { margin: 0; overflow-wrap: anywhere; }
.processing p .btn { margin-inline-end: 8px; }

/* ---- forms ---- */
.form-sheet { background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-md); padding: 24px; margin-block-end: 64px; }
.field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 16px; }
.field-wide { grid-column: 1 / -1; }
.field { margin: 0 0 18px; border: 0; padding: 0; min-inline-size: 0; }
.field > label, .field > legend { display: block; font-size: 14px; font-weight: 600; margin-block-end: 6px; padding: 0; }
.hint { color: var(--ink-muted); font-size: 14px; margin-block-start: 4px; }
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select {
  inline-size: 100%; min-height: 48px; padding: 0 12px; background: var(--surface); color: var(--ink);
  border: 1.5px solid var(--rule-strong); border-radius: var(--r-sm); font: inherit; font-size: 16px;
}
input:focus-visible, select:focus-visible { border-color: var(--ink); }
input[dir="ltr"] { text-align: end; }
.chks { display: flex; flex-wrap: wrap; gap: 8px; }
.chk {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1.5px solid var(--rule-strong);
  border-radius: var(--r-pill); cursor: pointer; font-size: 15px; background: var(--surface);
}
.chk:has(input:checked) { border-color: var(--ink); background: var(--tint); font-weight: 600; }
.chk input, .choice input { accent-color: var(--ink); inline-size: 18px; block-size: 18px; margin: 0; }
.form-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 639px) { .field-grid { grid-template-columns: minmax(0, 1fr); } .form-sheet { padding: 16px; } }

.alert { padding: 12px 16px; border-radius: var(--r-sm); margin-block: 0 20px; background: var(--surface); border: 1px solid var(--rule); border-inline-start: 5px solid var(--ink); }
.alert.error { border-inline-start-color: var(--stamp); }
.alert.ok { border-inline-start-color: var(--ok); }

.upload { padding-block-end: 64px; }
.stepblock { border: 0; margin: 0 0 32px; padding: 0; min-inline-size: 0; }
.stepblock > legend { display: flex; align-items: center; gap: 12px; font-size: 19px; font-weight: 700; padding: 0; margin-block-end: 4px; }
.stepblock > .hint { margin-block-end: 14px; }
.stepchip { display: inline-flex; align-items: center; gap: 4px; background: var(--marker); color: var(--on-marker); padding: 4px 12px; border-radius: var(--r-pill); font-size: 13px; font-weight: 600; }
.choices { display: grid; gap: 10px; }
.choice {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center;
  min-height: 64px; padding: 12px 16px; background: var(--surface); border: 1.5px solid var(--rule-strong); border-radius: var(--r-md); cursor: pointer;
}
.choice:has(input:checked) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.choice:has(input:focus-visible) { outline: 3px solid var(--focus); outline-offset: 2px; box-shadow: 0 0 0 6px var(--marker); }
.choice input:focus-visible { outline: none; box-shadow: none; }
.choice-body { display: flex; flex-direction: column; min-inline-size: 0; }
.choice-meta { font-size: 14px; color: var(--ink-muted); }
.choice-edit { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; color: var(--ink-muted); }
.choice-new { border-style: dashed; }
.newco { display: none; margin: 14px 0 0; padding: 18px 16px 0; border: 1.5px dashed var(--rule-strong); border-radius: var(--r-md); min-inline-size: 0; }
.upload:has(.choice-new input:checked) .newco { display: block; }
.drop {
  position: relative; display: grid; justify-items: center; gap: 6px; text-align: center; padding: 32px 20px;
  background: var(--surface); border: 2px dashed var(--rule-strong); border-radius: var(--r-md); cursor: pointer;
}
.drop:hover, .drop.hot { border-color: var(--ink); background: #FDF8EC; }
.drop:focus-within { outline: 3px solid var(--focus); outline-offset: 2px; box-shadow: 0 0 0 6px var(--marker); }
.drop.has-file { border-style: solid; border-color: var(--ok); }
.drop-sheet {
  display: grid; place-items: end center; inline-size: 46px; block-size: 58px; margin-block-end: 6px; background: var(--doc-paper);
  border-radius: var(--r-sheet); box-shadow: 0 6px 16px rgba(13, 24, 40, .18); padding-block-end: 8px; font: 500 11px/1 var(--f-mono); color: var(--doc-ink);
}
.drop-title { font-size: 17px; font-weight: 600; }
.drop-or { color: var(--ink-muted); font-size: 14px; }
.drop-file { font-weight: 600; color: var(--ok); overflow-wrap: anywhere; }
.drop-file:empty { display: none; }
.file-input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; inset-block-end: 12px; inset-inline-start: 50%; }

/* ---- companies ---- */
.co-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 24px; align-items: center; padding-block: 18px; border-block-end: 1px solid var(--rule); }
.co-list { border-block-start: 2px solid var(--ink); margin-block-end: 64px; }
.co-name { font-size: 17px; display: block; }
.co-meta { color: var(--ink-muted); font-size: 14px; }
.co-actions { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 759px) { .co-row { grid-template-columns: minmax(0, 1fr); } }

.message { padding-block: 64px; }
.message h1 { font-size: 28px; margin-block-end: 12px; }
.message .sub { color: var(--ink-muted); margin-block-end: 20px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (max-width: 1023px) { .log:empty { flex: 1 1 auto; } }

/* ---- accounts ---- */
.account { display: flex; align-items: center; gap: 12px; margin: 0; }
.account-name { color: var(--night-muted); font-size: 14px; max-inline-size: 18ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account button.langswitch { background: transparent; cursor: pointer; }
.auth { padding-block-end: 64px; }
.auth .form-sheet { margin-block-end: 16px; }
.auth-switch { color: var(--ink-muted); }
@media (max-width: 639px) { .account-name { display: none; } }

/* ---- admin ---- */
.admin { padding-block-end: 64px; }
.table-scroll { overflow-x: auto; }
.admin-table { inline-size: 100%; border-collapse: collapse; font-size: 15px; border-block-start: 2px solid var(--ink); }
.admin-table th { text-align: start; font-size: 13px; font-weight: 600; color: var(--ink-muted); padding: 10px 12px; border-block-end: 1px solid var(--rule); white-space: nowrap; }
.admin-table td { padding: 12px; border-block-end: 1px solid var(--rule); vertical-align: middle; white-space: nowrap; }
.admin-table .n { text-align: end; }
.admin-table tfoot td { font-weight: 700; border-block-end: 0; }
.owner-banner { background: var(--tint); border-radius: var(--r-sm); padding: 10px 16px; margin-block: 0 16px; }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-block-end: 16px; }
.stat { display: flex; flex-direction: column; gap: 4px; background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-md); padding: 14px 16px; min-inline-size: 0; }
.stat-label { font-size: 13px; font-weight: 600; color: var(--ink-muted); }
.stat-value { font-size: 24px; font-weight: 700; line-height: 1.2; }
.stat-sub { font-size: 13px; color: var(--ink-muted); overflow-wrap: anywhere; }
.stat-decisions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-block: 0 24px; }
.admin-table td.wrap-cell { white-space: normal; min-inline-size: 220px; }
.btn-sm { min-height: 34px; padding: 0 14px; font-size: 14px; }
form.inline { display: inline; margin: 0; }
.pending-box { background: var(--surface); border: 1px solid var(--rule); border-inline-start: 5px solid var(--marker); border-radius: var(--r-sm); padding: 16px 20px; margin-block: 0 24px; display: grid; gap: 8px; }
textarea { inline-size: 100%; padding: 10px 12px; background: var(--surface); color: var(--ink); border: 1.5px solid var(--rule-strong); border-radius: var(--r-sm); font: inherit; font-size: 16px; resize: vertical; }

/* ---- legal pages ---- */
.legal { padding-block: 32px 64px; }
.legal h1 { font-size: 28px; line-height: 36px; margin-block-end: 4px; }
.legal section { margin-block-start: 28px; }
.legal h2 { font-size: 19px; line-height: 28px; margin-block-end: 8px; }
.legal p, .legal li { line-height: 1.7; }
.legal p + p { margin-block-start: 10px; }
.legal ul { padding-inline-start: 22px; display: grid; gap: 6px; }
.legal-nav { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-block-start: 40px; padding-block-start: 20px; border-block-start: 1px solid var(--rule); }
.legal-nav a[aria-current="page"] { font-weight: 700; }

/* ---- expert check ---- */
.review-box { background: var(--surface); border: 1px solid var(--rule); border-inline-start: 5px solid var(--marker); border-radius: var(--r-md); padding: 20px 24px; margin-block: 32px; display: grid; gap: 12px; }
.review-box h2 { font-size: 20px; line-height: 28px; }
.review-form { display: grid; gap: 8px; justify-items: start; }
.review-form label, .review-admin label { font-size: 14px; font-weight: 600; }
.review-answer { background: var(--tint); border-radius: var(--r-sm); padding: 12px 16px; white-space: normal; line-height: 1.7; }
.review-note { margin-block-start: 6px; }
.review-row { align-items: start; }
.review-admin { display: grid; gap: 8px; min-inline-size: min(100%, 380px); }
