/* Lukshi brand layer for the public APD Checker. Loaded after app.css and public.css; re-points their
   tokens at the Lukshi palette and restyles the shell. Fonts are self-hosted (SIL OFL 1.1, see *-OFL.txt).
   Contrast: forest/ink text on cream, cream text on forest, and dark forest text on gold only. Gold is
   never used for text on cream, and cream is never used for text on gold. */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/static/brand/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/static/brand/fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/static/brand/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url(/static/brand/fonts/inter-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Sora";font-style:normal;font-weight:500;font-display:swap;src:url(/static/brand/fonts/sora-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Sora";font-style:normal;font-weight:600;font-display:swap;src:url(/static/brand/fonts/sora-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Sora";font-style:normal;font-weight:700;font-display:swap;src:url(/static/brand/fonts/sora-latin-700-normal.woff2) format("woff2")}

:root{
  --cream-50:#fbfaf5; --ink:#16201a; --forest-900:#21322a; --forest-800:#273c32; --forest-700:#2f4a3c;
  --forest-600:#3a5a49; --forest-500:#4c7059; --gold-500:#c7a24c; --gold-400:#d3b56b;
  --forest-100:#e4ebe5; --forest-50:#f1f5f1; --cream-100:#f3f0e4;
  /* re-point the shared tokens */
  --bg:var(--cream-50); --surface:#ffffff; --surface-2:#f7f6ef; --line:#e2e4da; --line-strong:#c9cdbf;
  --ink-2:#2b3a31; --muted:#56635a; --muted-2:#5f6b63;
  --navy:var(--forest-900); --navy-2:var(--forest-800); --accent:var(--forest-700); --accent-ink:var(--forest-800); --accent-bg:var(--forest-50);
  --teal:var(--forest-600); --teal-bg:#eef3ee;
  --focus:0 0 0 3px rgba(76,112,89,.45);
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; --display:"Sora","Inter",system-ui,sans-serif;
  --radius:12px; --radius-sm:8px; --shadow:0 1px 2px rgba(22,32,26,.05),0 2px 8px rgba(22,32,26,.05);
}
body{background:var(--cream-50);color:var(--ink);font-family:var(--font)}
h1,h2,h3,.pub-brand,.band,.flow-text strong,.stat .n{font-family:var(--display);letter-spacing:-.01em}
h1,h2{font-weight:600}
:focus-visible{outline:3px solid var(--forest-500);outline-offset:2px;box-shadow:none}

/* header: cream, like lukshi.com */
.pub-top{background:rgba(251,250,245,.96);color:var(--forest-800);border-bottom:1px solid var(--forest-100)}
.pub-top-inner{min-height:68px}
.pub-brand{color:var(--forest-800);gap:12px}
.pub-brand .lk-mark{width:30px;height:30px;flex:none}
.pub-brand .lk-word{font-family:var(--display);font-weight:600;letter-spacing:.22em;font-size:1.05rem}
.pub-brand .lk-sep{width:1px;height:28px;background:var(--line-strong)}
.pub-brand .lk-prod{font-family:var(--display);font-weight:600;font-size:1rem;letter-spacing:0;color:var(--forest-800)}
.pub-brand small{color:var(--muted);font-family:var(--font);font-weight:500}
.pub-nav a{color:rgba(39,60,50,.78);border-radius:999px;padding:8px 14px;font-weight:500}
.pub-nav a:hover,.pub-nav a[aria-current=page]{background:var(--forest-50);color:var(--forest-800)}
.pub-band{background:var(--cream-100);border-bottom:1px solid var(--line);color:var(--ink-2)}
.pub-band .icon{color:var(--forest-600)}
@media (max-width:720px){.pub-brand small,.pub-brand .lk-sep{display:none}}

/* footer: forest-900 with cream text */
.pub-footer{background:var(--forest-900);color:rgba(243,240,228,.82);border-top:0}
.pub-footer strong{color:var(--cream-50)}
.pub-footer a{color:var(--cream-50)}
.pub-footer a:hover{color:var(--gold-400)}
.pub-footer .lk-foot-brand{display:flex;align-items:center;gap:10px;color:var(--cream-50);margin-bottom:var(--s2)}
.pub-footer .lk-foot-brand .lk-mark{width:28px;height:28px}
.pub-footer .lk-foot-brand span{font-family:var(--display);font-weight:600;letter-spacing:.22em}
.pub-footer .lk-voice{color:var(--cream-50);font-family:var(--display);font-weight:500}
.pub-footer :focus-visible{outline-color:var(--gold-400)}

/* buttons: fully rounded; primary forest with cream text; gold with dark forest text */
.button{border-radius:999px}
.button.primary{background:var(--forest-700);border-color:var(--forest-700);color:var(--cream-50)}
.button.primary:hover{background:var(--forest-800);border-color:var(--forest-800);color:var(--cream-50)}
.button.gold{background:var(--gold-500);border-color:var(--gold-500);color:var(--forest-900);font-weight:650}
.button.gold:hover{background:var(--gold-400);border-color:var(--gold-400);color:var(--forest-900)}
.button.lg{border-radius:999px;padding:12px 26px}

/* surfaces */
.step,.panel,.hero-card,.req,.cat,.fact,.flow-step{border-color:var(--line)}
.step,.panel,.hero-card{border-radius:20px}
.step-num{background:var(--forest-700);color:var(--cream-50)}
.hero h1{font-weight:600;color:var(--forest-900)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--forest-600);margin-bottom:var(--s2)}
.eyebrow::before{content:"";width:18px;height:2px;background:var(--gold-500)}
.gold-rule{height:3px;width:56px;background:var(--gold-500);border:0;border-radius:2px;margin:var(--s3) 0}
.suggest{background:#f8faf6;border-color:var(--forest-500)}
.cls-required{background:var(--forest-800);color:var(--cream-50)}
.flow-icon{background:var(--forest-50);color:var(--forest-700)}
.meter>span{background:var(--forest-600)}
.free-note{display:flex;gap:var(--s2);align-items:flex-start;background:var(--forest-50);border:1px solid var(--forest-100);border-radius:14px;padding:var(--s3) var(--s4);color:var(--forest-900);font-size:var(--fs-sm)}
.free-note .icon{color:var(--forest-600);margin-top:3px}

/* new statuses */
.st-inconsistent{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}
.st-unknown_applicability{background:var(--purple-bg);color:var(--purple);border-color:#d9c8f0}
.s-inconsistent .n{color:var(--red)}.s-unknown_applicability .n{color:var(--purple)}
.band-incomplete{background:var(--gray-bg);color:#3f4a56}
.pub-footer .lk-foot-brand{text-decoration:none}
/* narrow screens: stack data tables into labelled rows instead of hiding columns off-screen */
@media (max-width:640px){
  .table.stack thead{display:none}
  .table.stack,.table.stack tbody,.table.stack tr,.table.stack td{display:block;width:100%}
  .table.stack tr{border-bottom:1px solid var(--line);padding:10px 0}
  .table.stack td{border:0;padding:3px 0;text-align:left!important;white-space:normal}
  .table.stack td[data-label]::before{content:attr(data-label) ": ";font-weight:600;color:var(--muted)}
}
@media (max-width:640px){
  .req>summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
  .req>summary>div{order:3;flex:1 1 100%;min-width:0}
  .req>summary>.row{margin-left:auto}
  .actions-list .row-between{flex-direction:column;align-items:flex-start}
}
