/* LegalEasy — design system and screens
   ─────────────────────────────────────────────────────────────
   1. Tokens          5. Components (buttons, forms, rows, tables, labels…)
   2. Base            6. Screens (home, workspace, documents, articles…)
   3. Typography      7. Responsive
   4. Layout / shell  8. Print
   One brand color (deep blue) for actions, links, focus and selection; everything
   else stays neutral. Structure comes from type, spacing and hairlines — shadows are
   kept for things that really float (dialogs, menus, toasts). */

/* ── 1. Tokens ─────────────────────────────────────────────── */
:root{
  --bg:#F6F6F3;            /* page */
  --surface:#FFFFFF;       /* documents, inputs, dialogs, sidebar */
  --surface-2:#F0F0EC;     /* hover, table header, subtle fills */
  --surface-3:#E6E6E0;
  --ink:#1A1D21;           /* primary text */
  --ink-2:#454B52;         /* secondary text */
  --ink-3:#666C73;         /* muted text (4.8:1 on --bg) */
  --line:#E0E0DA;          /* hairlines */
  --line-2:#C9C9C1;        /* control borders */
  --brand:#1F4E6B;         /* the one brand color */
  --brand-hover:#163D55;
  --brand-soft:#E6EEF3;
  --brand-line:#A9BECC;
  --ok:#2C6A44;   --ok-soft:#E5F0E8;
  --warn:#835107; --warn-soft:#FAF0DA; --warn-line:#E4C98C; --warn-mark:#B7801D;
  --err:#A2322A;  --err-soft:#F9E8E5;  --err-line:#E2B2AB;
  --info:#1F4E6B; --info-soft:#E8EFF4;

  --font:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,"Apple SD Gothic Neo","Malgun Gothic","PingFang SC","Microsoft YaHei",sans-serif;
  --font-serif:"Source Serif 4","Iowan Old Style",Georgia,"Noto Serif",serif;
  --fs-xs:.8125rem; --fs-sm:.875rem; --fs-ui:.9375rem; --fs-md:1rem; --fs-lg:1.0625rem; --fs-xl:1.25rem; --fs-2xl:1.625rem;

  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s7:32px; --s8:40px; --s9:56px; --s10:72px;
  --r1:4px; --r2:6px; --r3:10px;
  --shadow-pop:0 1px 2px rgba(20,24,28,.06),0 10px 28px rgba(20,24,28,.14);
  --ctl:40px; --ctl-sm:32px;
  --w-site:1120px; --w-app:1040px; --w-read:680px; --w-form:620px; --side:244px;
  --ease:cubic-bezier(.2,.6,.3,1);
}

/* ── 2. Base ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{font-family:var(--font);font-size:var(--fs-md);line-height:1.55;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;}
img,svg,object{display:block;max-width:100%;}
a{color:var(--brand);text-underline-offset:2px;text-decoration-thickness:1px;}
a:hover{color:var(--brand-hover);}
ul,ol{padding-left:1.25em;}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;}
[hidden]{display:none!important;}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}
::selection{background:#CFE0EA;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--ink);color:#fff;padding:8px 14px;border-radius:var(--r2);text-decoration:none;}
.skip-link:focus{top:12px;color:#fff;}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important;}}

/* ── 3. Typography ─────────────────────────────────────────── */
h1,h2,h3,h4{font-weight:600;line-height:1.3;color:var(--ink);}
.page-title{font-size:var(--fs-2xl);line-height:1.25;letter-spacing:-.012em;}
.page-sub{color:var(--ink-2);margin-top:6px;max-width:62ch;}
.h-sec{font-size:var(--fs-lg);}
.h-sub{font-size:var(--fs-md);margin:var(--s5) 0 var(--s2);}
.meta{font-size:var(--fs-sm);color:var(--ink-3);}
.muted{color:var(--ink-3);}
.hint{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.5;}
.small{font-size:var(--fs-xs);}
.num{font-variant-numeric:tabular-nums;}
.serif{font-family:var(--font-serif);}
:lang(zh) .serif,:lang(ko) .serif{font-family:var(--font);}
.prose p+p{margin-top:.8em;}
.prose ul,.prose ol{margin:.6em 0;}
.prose li+li{margin-top:.35em;}
q.quote{quotes:"“" "”";color:var(--ink-2);font-style:italic;}
q.quote.block{display:block;margin:6px 0;padding-left:12px;border-left:2px solid var(--line-2);}
blockquote.user-words{border-left:3px solid var(--line-2);padding:2px 0 2px 16px;color:var(--ink);}
blockquote.user-words p+p{margin-top:.7em;}
del{background:#F6DEDA;color:#7A2119;text-decoration-color:#B74A3F;}
ins{background:#DCEBDF;color:#1F4D30;text-decoration:none;}

/* ── 4. Layout / shell ─────────────────────────────────────── */
.wrap{max-width:var(--w-site);margin:0 auto;padding:0 var(--s7);}

/* Brand */
.brand{display:inline-flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font-weight:700;font-size:1.0625rem;letter-spacing:-.015em;}
.brand:hover{color:var(--ink);}
.brand-mark{width:24px;height:24px;color:var(--brand);flex:none;}
.brand>[data-brand-mark]{display:inline-flex;flex:none;}

/* Public header (home page) */
.site-header{background:var(--bg);border-bottom:1px solid var(--line);position:relative;z-index:50;}
.site-header-inner{max-width:var(--w-site);margin:0 auto;padding:0 var(--s7);height:64px;display:flex;align-items:center;gap:var(--s7);}
.site-nav{display:flex;gap:var(--s6);flex:1;}
.site-nav a{color:var(--ink-2);text-decoration:none;font-size:var(--fs-ui);font-weight:500;}
.site-nav a:hover{color:var(--ink);text-decoration:underline;}
.site-header-end{display:flex;align-items:center;gap:var(--s3);margin-left:auto;}
.site-header .site-menu-btn{display:none;}

/* Language picker: a normal select with a globe */
.lang{position:relative;display:inline-flex;align-items:center;color:var(--ink-2);}
.lang>[data-icon]{position:absolute;left:9px;top:50%;transform:translateY(-50%);display:inline-flex;pointer-events:none;}
.lang .ico{width:16px;height:16px;color:var(--ink-3);}
.lang select{min-height:34px;padding:4px 30px 4px 32px;font-size:var(--fs-sm);border:1px solid transparent;border-radius:var(--r2);background-color:transparent;color:var(--ink-2);width:auto;}
.lang select:hover{border-color:var(--line-2);background-color:var(--surface);}

/* App shell: sidebar on wide screens, top bar + drawer below 1024px */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--side);background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 12px 14px;overflow-y:auto;z-index:300;}
.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:0 8px 18px;}
.sidebar .sidebar-close{display:none;}
.sidebar-cta{margin:0 4px 18px;justify-content:flex-start;}
.side-nav{list-style:none;padding:0;display:flex;flex-direction:column;gap:1px;}
.side-nav a{display:flex;align-items:center;gap:10px;min-height:38px;padding:6px 10px;border-radius:var(--r2);color:var(--ink-2);text-decoration:none;font-size:var(--fs-ui);font-weight:500;}
.side-nav a:hover{background:var(--surface-2);color:var(--ink);}
.side-nav a.active{background:var(--brand-soft);color:var(--brand);font-weight:600;}
.side-nav .ico{width:18px;height:18px;color:var(--ink-3);flex:none;}
.side-nav a.active .ico{color:var(--brand);}
.side-label{font-size:var(--fs-xs);font-weight:600;color:var(--ink-3);padding:20px 10px 6px;}
.nav-count{margin-left:auto;min-width:22px;text-align:center;font-size:12px;font-weight:600;line-height:20px;padding:0 6px;border-radius:var(--r1);background:var(--surface-3);color:var(--ink-2);}
.side-nav a.active .nav-count{background:#fff;color:var(--brand);}
.sidebar-bottom{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;}
.sidebar-bottom .lang{margin-left:4px;}
.app-topbar{display:none;}
.drawer-backdrop{position:fixed;inset:0;background:rgba(20,24,28,.4);z-index:290;}
.main-wrap{min-height:100vh;display:flex;flex-direction:column;}
.mode-app .main-wrap{margin-left:var(--side);}
#main{flex:1;}
.mode-app #main:focus{outline:none;}

.page{max-width:var(--w-app);margin:0 auto;padding:var(--s8) var(--s8) 0;}
.page-narrow{max-width:760px;}
.page-form{max-width:calc(var(--w-form) + 2*var(--s8));}
.page-wide{max-width:1260px;}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s5) var(--s6);flex-wrap:wrap;margin-bottom:var(--s7);}
.page-head-text{min-width:0;flex:1 1 320px;}
.page-actions{display:flex;gap:var(--s2);flex-wrap:wrap;}
.crumb{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-sm);color:var(--ink-3);text-decoration:none;margin-bottom:var(--s3);}
.crumb .ico{width:16px;height:16px;}
.crumb:hover{color:var(--ink);}

/* Mode switch: the home page uses the public header/footer, everything else the app shell */
.mode-public .sidebar,.mode-public .app-topbar,.mode-public .app-foot,.mode-public .tabbar,.mode-public .drawer-backdrop{display:none!important;}
.mode-app .site-header,.mode-app .site-footer{display:none;}

/* Footers */
.site-footer{border-top:1px solid var(--line);background:var(--surface);padding:var(--s9) 0 var(--s7);font-size:var(--fs-sm);color:var(--ink-2);}
.site-footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:var(--s7);}
.site-footer h2{font-size:var(--fs-sm);font-weight:600;color:var(--ink);margin-bottom:var(--s3);}
.site-footer ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px;}
.site-footer a{color:var(--ink-2);text-decoration:none;}
.site-footer a:hover{color:var(--ink);text-decoration:underline;}
.site-footer .foot-about p{max-width:34ch;margin-top:var(--s3);}
.foot-legal{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:var(--s6);flex-wrap:wrap;color:var(--ink-3);}
.foot-legal p{max-width:78ch;}
.app-foot{max-width:var(--w-app);margin:var(--s10) auto 0;padding:var(--s5) var(--s8) var(--s6);border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--ink-3);display:flex;gap:var(--s3) var(--s6);justify-content:space-between;flex-wrap:wrap;}
.app-foot p{max-width:80ch;}
.app-foot a{color:var(--ink-2);}

/* Phone tab bar (app screens, below 640px) */
.tabbar{display:none;}

/* ── 5. Components ─────────────────────────────────────────── */
/* Buttons: primary (one per screen), secondary, quiet (text), danger */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--ctl);padding:0 16px;border:1px solid transparent;border-radius:var(--r2);font-size:var(--fs-ui);font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease);background:none;}
.btn .ico{width:17px;height:17px;flex:none;}
.btn-primary{background:var(--brand);color:#fff;}
.btn-primary:hover{background:var(--brand-hover);color:#fff;}
.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-2);}
.btn-secondary:hover{background:var(--surface-2);border-color:#B3B3AA;color:var(--ink);}
.btn-quiet{color:var(--brand);padding:0 8px;min-height:32px;font-weight:600;}
.btn-quiet:hover{background:var(--brand-soft);color:var(--brand-hover);}
.btn-quiet.muted-action{color:var(--ink-2);}
.btn-quiet.muted-action:hover{background:var(--surface-2);color:var(--ink);}
.btn-quiet.danger:hover{background:var(--err-soft);color:var(--err);}
.btn-danger{background:var(--err);color:#fff;}
.btn-danger:hover{background:#86271F;color:#fff;}
.btn-sm{min-height:var(--ctl-sm);padding:0 12px;font-size:var(--fs-sm);}
.btn-lg{min-height:48px;padding:0 22px;font-size:var(--fs-md);}
.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;}
.btn-row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center;}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:var(--r2);background:none;color:var(--ink-3);flex:none;}
.icon-btn .ico{width:18px;height:18px;}
.icon-btn:hover{background:var(--surface-2);color:var(--ink);}
.icon-btn.danger:hover{background:var(--err-soft);color:var(--err);}
.link-more{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-sm);font-weight:600;text-decoration:none;}
.link-more .ico{width:16px;height:16px;}
.link-more:hover{text-decoration:underline;}

/* Forms */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s5);}
.field>label,.label-text,legend{font-size:var(--fs-sm);font-weight:600;color:var(--ink);}
.field .opt{font-weight:400;color:var(--ink-3);}
input[type=text],input[type=date],input[type=email],input[type=search],input[type=tel],input[type=url],input[type=number],input:not([type]),select,textarea{width:100%;min-height:var(--ctl);padding:8px 12px;border:1px solid var(--line-2);border-radius:var(--r1);background:var(--surface);font-size:var(--fs-md);line-height:1.4;color:var(--ink);transition:border-color .15s,box-shadow .15s;}
textarea{line-height:1.5;resize:vertical;min-height:auto;}
select{appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666C73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer;}
input:hover,select:hover,textarea:hover{border-color:#B3B3AA;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(31,78,107,.16);}
input::placeholder,textarea::placeholder{color:#8A9097;}
input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--brand);flex:none;margin-top:2px;cursor:pointer;}
fieldset{border:0;min-width:0;margin-bottom:var(--s5);}
legend{margin-bottom:var(--s2);padding:0;}
.check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;line-height:1.45;}
.checks{display:flex;flex-direction:column;gap:8px;}
.form-actions{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;margin-top:var(--s6);}
.form-actions .spacer{flex:1;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s4);}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 var(--s4);}
.inline-form{display:flex;gap:var(--s2);align-items:flex-start;}
.inline-form>input,.inline-form>textarea,.inline-form>select{flex:1;}
.voice-field{position:relative;}
.voice-field textarea{padding-right:48px;}
.mic-btn{position:absolute;right:6px;top:6px;width:36px;height:36px;border:0;border-radius:var(--r2);background:none;color:var(--ink-3);display:inline-flex;align-items:center;justify-content:center;}
.mic-btn .ico{width:19px;height:19px;}
.mic-btn:hover{background:var(--surface-2);color:var(--ink);}
.mic-btn.listening{background:var(--err-soft);color:var(--err);}
.radio-list{display:grid;grid-template-columns:1fr 1fr;gap:2px var(--s4);}
.radio-list .check{padding:7px 0;}
.optional-details{margin-bottom:var(--s5);}
.optional-details>summary{cursor:pointer;font-weight:600;font-size:var(--fs-sm);color:var(--brand);list-style:none;display:inline-flex;align-items:center;gap:4px;}
.optional-details>summary::-webkit-details-marker{display:none;}
.optional-details>summary .ico{width:16px;height:16px;transition:transform .15s;}
.optional-details[open]>summary .ico{transform:rotate(180deg);}
.optional-details[open]>summary{margin-bottom:var(--s3);}
.toolbar{display:flex;gap:var(--s3);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--s6);}
.toolbar .field{margin-bottom:0;flex:1 1 200px;}
.toolbar .field.grow2{flex:2 1 280px;}
.search-field{position:relative;}
.search-field .ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ink-3);pointer-events:none;}
.search-field input{padding-left:38px;}

/* Sections: a heading and a hairline, not a box */
.section{margin-top:var(--s8);}
.section:first-child{margin-top:0;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2) var(--s4);margin-bottom:var(--s3);flex-wrap:wrap;}
.section-head h2,.section-head h3{font-size:var(--fs-lg);}
.section-head .hint{flex-basis:100%;margin-top:-2px;}
.section-head .btn-row{margin-left:auto;}
.section>.hint{margin:-4px 0 var(--s3);}
.rule{border:0;border-top:1px solid var(--line);margin:var(--s7) 0;}
.surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);}

/* Rows: the basic list pattern */
.rows{list-style:none;padding:0;border-top:1px solid var(--line);}
.rows>li{padding:var(--s3) 0;border-bottom:1px solid var(--line);}
.rows.tight>li{padding:10px 0;}
.rows.no-top{border-top:0;}
.row{display:flex;gap:var(--s4);align-items:flex-start;}
.row-main{flex:1;min-width:0;}
.row-title{font-weight:600;color:var(--ink);overflow-wrap:anywhere;}
a.row-title{text-decoration:none;}
a.row-title:hover{text-decoration:underline;color:var(--ink);}
.row-meta{font-size:var(--fs-sm);color:var(--ink-3);margin-top:2px;}
.row-meta>*:not(:last-child)::after{content:"·";margin:0 6px;color:var(--ink-3);opacity:.6;}
.row-side{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;}
.row-actions{display:flex;align-items:center;gap:2px;flex-wrap:wrap;}
.row .row-actions{margin-left:auto;}
.stack-actions{margin-top:var(--s2);}

/* Tables (become stacked rows on narrow screens) */
.table{width:100%;border-collapse:collapse;font-size:var(--fs-ui);}
.table th{text-align:left;font-size:var(--fs-xs);font-weight:600;color:var(--ink-3);padding:0 var(--s3) var(--s2);border-bottom:1px solid var(--line-2);white-space:nowrap;}
.table td{padding:var(--s3);border-bottom:1px solid var(--line);vertical-align:top;}
.table th:first-child,.table td:first-child{padding-left:0;}
.table th:last-child,.table td:last-child{padding-right:0;}
.table .cell-name{min-width:200px;}
.table .cell-name a{font-weight:600;color:var(--ink);text-decoration:none;overflow-wrap:break-word;}
.table .cell-name a:hover{text-decoration:underline;}
.table .cell-name .file{display:flex;gap:10px;align-items:flex-start;}
.table .cell-name .ico{width:18px;height:18px;color:var(--ink-3);margin-top:2px;flex:none;}
.table .nowrap{white-space:nowrap;}
.table .muted-cell{color:var(--ink-3);}

/* Status labels: small, text first, color second */
.label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;line-height:1.2;padding:3px 7px;border-radius:var(--r1);background:var(--surface-2);color:var(--ink-2);white-space:nowrap;vertical-align:1px;}
.label::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;}
.label.bare::before{display:none;}
.label-ok{background:var(--ok-soft);color:var(--ok);}
.label-warn{background:var(--warn-soft);color:var(--warn);}
.label-err{background:var(--err-soft);color:var(--err);}
.label-info{background:var(--info-soft);color:var(--brand);}
.label-quiet{background:none;color:var(--ink-3);padding-left:0;}
.label .spin{width:10px;height:10px;border-width:1.5px;}
.label.working::before{display:none;}
.days{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;}
.days.soon{color:var(--warn);font-weight:600;}
.days.past{color:var(--ink-3);}

/* Where a fact came from. Shape + text, not color alone:
   ● you   ■ a document   ◆ an official source   ◌ an AI suggestion */
.prov{display:inline-flex;align-items:flex-start;gap:6px;font-size:var(--fs-xs);font-weight:500;line-height:1.45;color:var(--ink-3);text-decoration:none;max-width:100%;vertical-align:1px;}
.prov>span{min-width:0;overflow-wrap:anywhere;}
.prov::before{content:"";width:7px;height:7px;flex:none;margin-top:.42em;}
.prov-user{color:#50575F;}
.prov-user::before{border-radius:50%;background:currentColor;}
.prov-doc{color:#2C6A44;}
.prov-doc::before{background:currentColor;border-radius:1px;}
.prov-src{color:var(--brand);}
.prov-src::before{background:currentColor;transform:rotate(45deg) scale(.9);}
.prov-ai{color:#7A5710;}
.prov-ai::before{border:1.5px dashed currentColor;border-radius:50%;width:8px;height:8px;}
a.prov:hover{text-decoration:underline;}
.prov-wrap{white-space:normal;align-items:flex-start;}
.prov-wrap::before{margin-top:5px;}
.prov-wrap>span{overflow:visible;}
.prov-line{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin-top:4px;}

/* Notices: slim, left-marked */
.notice{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;margin-bottom:var(--s4);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--ink-3);border-radius:var(--r1);}
.notice>.ico{width:20px;height:20px;flex:none;margin-top:1px;color:var(--ink-3);}
.notice-body{flex:1;min-width:0;}
.notice-body strong{display:block;font-weight:600;}
.notice .btn-row,.notice>.btn{margin-left:auto;align-self:center;}
.notice-info{border-left-color:var(--brand);}
.notice-info>.ico{color:var(--brand);}
.notice-ok{border-left-color:var(--ok);}
.notice-ok>.ico{color:var(--ok);}
.notice-warn{background:var(--warn-soft);border-color:var(--warn-line);border-left-color:var(--warn-mark);}
.notice-warn>.ico{color:var(--warn);}
.notice-err,.err-box{background:var(--err-soft);border-color:var(--err-line);border-left-color:var(--err);}
.notice-err>.ico{color:var(--err);}
.notice ul{margin-top:4px;}
a.notice{text-decoration:none;color:var(--ink);}
a.notice:hover{border-color:var(--line-2);background:var(--surface-2);}

/* Empty states */
.empty{padding:var(--s6) 0 var(--s4);max-width:520px;}
.empty h3{font-size:var(--fs-lg);margin-bottom:4px;}
.empty p{color:var(--ink-2);}
.empty .btn-row{margin-top:var(--s4);}

/* Loading */
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--line-2);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;flex:none;}
@keyframes spin{to{transform:rotate(360deg);}}
.loading{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:var(--fs-ui);padding:var(--s4) 0;}
.loading-row{padding:var(--s8) 0;display:flex;align-items:center;gap:10px;color:var(--ink-3);}
.progress{height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden;}
.progress>span{display:block;height:100%;background:var(--brand);border-radius:2px;}

/* Tabs (case sections) */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:var(--s7);overflow-x:auto;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tabs.more-r{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 56px),transparent);}
.tabs.more-l{-webkit-mask-image:linear-gradient(to right,transparent,#000 56px);mask-image:linear-gradient(to right,transparent,#000 56px);}
.tabs.more-l.more-r{-webkit-mask-image:linear-gradient(to right,transparent,#000 56px,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(to right,transparent,#000 56px,#000 calc(100% - 56px),transparent);}
.tabs a{display:inline-flex;align-items:center;gap:6px;padding:10px 10px 11px;color:var(--ink-2);text-decoration:none;font-size:var(--fs-ui);font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;}
.tabs a:first-child{padding-left:0;}
.tabs a:hover{color:var(--ink);}
.tabs a[aria-current=page]{color:var(--ink);font-weight:600;border-bottom-color:var(--brand);}
.tabs .count{font-size:var(--fs-xs);color:var(--ink-3);font-weight:500;font-variant-numeric:tabular-nums;}
.filter-tabs{display:flex;gap:var(--s5);border-bottom:1px solid var(--line);margin-bottom:var(--s5);}
.filter-tabs a{padding:8px 0 10px;color:var(--ink-2);text-decoration:none;font-size:var(--fs-ui);border-bottom:2px solid transparent;margin-bottom:-1px;}
.filter-tabs a[aria-current=page]{color:var(--ink);font-weight:600;border-bottom-color:var(--brand);}

/* Dialog */
.modal{border:0;border-radius:var(--r3);padding:0;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);margin:auto;box-shadow:var(--shadow-pop);color:var(--ink);background:var(--surface);}
.modal::backdrop{background:rgba(20,24,28,.45);}
.modal[open]{animation:modalIn .16s var(--ease);}
@keyframes modalIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.modal-body{padding:var(--s6);}
.modal-body h2{font-size:var(--fs-xl);margin-bottom:var(--s3);}
.modal-intro{color:var(--ink-2);margin-bottom:var(--s4);}
.modal-actions{display:flex;justify-content:flex-end;gap:var(--s2);margin-top:var(--s6);}

/* Toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,8px);max-width:min(520px,calc(100vw - 32px));padding:11px 16px;background:var(--ink);color:#fff;border-radius:var(--r2);font-size:var(--fs-ui);box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:900;}
.toast.show{opacity:1;transform:translate(-50%,0);}
.toast.error{background:var(--err);}
.storage-warning{position:fixed;left:0;right:0;bottom:0;z-index:950;padding:10px var(--s6);background:var(--warn-soft);border-top:1px solid var(--warn-line);color:var(--warn);font-size:var(--fs-sm);}

/* Drop zone */
.drop{border:1px dashed var(--line-2);border-radius:var(--r2);padding:var(--s4) var(--s5);background:var(--surface);display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap;}
.drop-text{flex:1 1 260px;}
.drop-title{font-weight:600;}
.drop.over{border-color:var(--brand);background:var(--brand-soft);}
.drop-note{flex-basis:100%;display:flex;gap:6px;align-items:center;}
.drop-note .ico{width:15px;height:15px;}

/* Definition lists */
.facts{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:10px var(--s5);}
.facts dt{font-size:var(--fs-sm);color:var(--ink-3);}
.facts dd ul{list-style:none;padding:0;}
.facts dd li+li{margin-top:4px;}
.qa-list dt{font-weight:600;font-size:var(--fs-sm);margin-top:var(--s3);}
.qa-list dd{color:var(--ink-2);}
.glossary{display:flex;flex-direction:column;}
.gl-item{padding:var(--s3) 0;border-bottom:1px solid var(--line);}
.gl-item:first-child{border-top:1px solid var(--line);}
.gl-item dt{font-weight:600;}
.gl-item dd{color:var(--ink-2);margin-top:2px;}

/* Details/disclosure used inside content */
details.disclose>summary{cursor:pointer;font-size:var(--fs-sm);font-weight:600;color:var(--brand);margin-top:var(--s3);}
details.disclose[open]>summary{margin-bottom:var(--s2);}

/* ── 6. Screens ────────────────────────────────────────────── */

/* 6.1 Home */
.home-hero{padding:var(--s10) 0 var(--s10);border-bottom:1px solid var(--line);}
.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--s9);align-items:start;}
.home-hero h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(2rem,3.2vw,2.75rem);line-height:1.12;letter-spacing:-.015em;max-width:21ch;}
:lang(zh) .home-hero h1,:lang(ko) .home-hero h1{font-family:var(--font);font-weight:600;line-height:1.25;}
.home-hero .lede{font-size:1.1875rem;line-height:1.55;color:var(--ink-2);margin:var(--s5) 0 var(--s7);max-width:34em;}
.hero-start label{display:block;font-weight:600;margin-bottom:var(--s2);}
.hero-start textarea{background:var(--surface);}
.hero-actions{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center;margin-top:var(--s3);}
.hero-note{margin-top:var(--s5);font-size:var(--fs-sm);color:var(--ink-3);}
.hero-continue{margin-top:var(--s3);font-size:var(--fs-sm);}
.sample-caption{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:var(--s2);display:flex;gap:8px;align-items:baseline;}
.sample-caption strong{color:var(--ink-2);font-weight:600;}
.sample{background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);overflow:hidden;font-size:var(--fs-sm);}
.sample-head{padding:var(--s5) var(--s6) 0;}
.sample-head h2{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em;}
.sample-head .row-meta{font-size:var(--fs-sm);}
.sample .tabs{margin:var(--s4) 0 0;padding:0 var(--s6);font-size:var(--fs-sm);overflow:hidden;}
.sample .tabs a{font-size:var(--fs-sm);padding:8px 8px 9px;cursor:default;}
.sample .tabs a:first-child{padding-left:0;}
.sample-body{display:grid;grid-template-columns:1.25fr 1fr;}
.sample-col{padding:var(--s5) var(--s6) var(--s6);}
.sample-col+.sample-col{border-left:1px solid var(--line);background:#FBFBF9;}
.sample h3{font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);margin-bottom:var(--s2);}
.sample h3:not(:first-child){margin-top:var(--s5);}
.sample .chrono-row{grid-template-columns:48px 1fr;padding:7px 0;}
.sample .important{padding:10px 12px;border-left:3px solid var(--warn-mark);background:var(--warn-soft);border-radius:var(--r1);}
.sample .important strong{display:block;}
.sample .tasks li{display:flex;gap:8px;align-items:flex-start;padding:5px 0;}
.sample .box{width:14px;height:14px;border:1.5px solid var(--line-2);border-radius:3px;flex:none;margin-top:3px;background:#fff;}
.sample .box.done{background:var(--brand);border-color:var(--brand);}
.sample .docs li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);}
.sample .docs li:last-child{border-bottom:0;}
.sample ul{list-style:none;padding:0;}

.home-sec{padding:var(--s10) 0;border-bottom:1px solid var(--line);}
.home-sec:last-of-type{border-bottom:0;}
.home-sec h2{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.6rem,2.4vw,2rem);line-height:1.2;letter-spacing:-.01em;}
:lang(zh) .home-sec h2,:lang(ko) .home-sec h2{font-family:var(--font);font-weight:600;}
.home-sec .intro{color:var(--ink-2);margin-top:var(--s3);max-width:38em;font-size:var(--fs-lg);}
.split{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:var(--s9);align-items:start;}
.split>.split-head{position:sticky;top:var(--s6);}
.story{list-style:none;padding:0;}
.story>li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 var(--s3);padding:var(--s5) 0;border-top:1px solid var(--line);}
.story>li:last-child{border-bottom:1px solid var(--line);}
.story .n{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;padding-top:2px;}
.story h3{font-size:var(--fs-lg);font-weight:600;}
.story p{color:var(--ink-2);margin-top:2px;max-width:40em;}
.story .example{grid-column:2;margin-top:var(--s3);padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);font-size:var(--fs-sm);max-width:34em;}
.story .example .row-meta{margin-top:4px;}
.lang-demo{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);margin-top:var(--s6);}
.lang-demo>div{padding:var(--s5) var(--s6);}
.lang-demo>div+div{border-left:1px solid var(--line);}
.lang-demo .term{font-weight:600;font-size:var(--fs-lg);}
.lang-demo .which{font-size:var(--fs-xs);font-weight:600;color:var(--ink-3);margin-bottom:var(--s2);}
.lang-list{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:var(--s5);list-style:none;padding:0;}
.lang-list button{background:none;border:0;padding:4px 0;color:var(--brand);font-weight:600;border-bottom:1px solid var(--brand-line);}
.lang-list button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink);}
.trust-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s7) var(--s9);margin-top:var(--s7);}
.trust-grid h3{font-size:var(--fs-lg);margin-bottom:var(--s2);}
.trust-grid p{color:var(--ink-2);}
.prov-legend{list-style:none;padding:0;margin-top:var(--s4);}
.prov-legend li{display:grid;grid-template-columns:190px 1fr;gap:var(--s4);padding:9px 0;border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-2);}
.prov-legend li:last-child{border-bottom:1px solid var(--line);}
.link-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s7);}
.link-list li{border-top:1px solid var(--line);}
.link-list a{display:flex;justify-content:space-between;gap:var(--s3);padding:14px 0;text-decoration:none;color:var(--ink);}
.link-list a:hover .t{text-decoration:underline;}
.link-list .t{font-weight:600;display:block;}
.link-list .d{font-size:var(--fs-sm);color:var(--ink-3);display:block;margin-top:2px;}
.link-list .ico{width:18px;height:18px;color:var(--ink-3);flex:none;margin-top:3px;}
.link-list.one{grid-template-columns:1fr;}

/* 6.2 Dashboard */
.dash{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--s9);align-items:start;}
.dash-side .section{margin-top:var(--s7);}
.page-head+.notice{margin-bottom:var(--s7);}
.dash-side .section:first-child{margin-top:0;}
.case-list .row-title{font-size:var(--fs-lg);}
.case-list>li{padding:var(--s4) 0;}
.date-list>li{display:grid;grid-template-columns:minmax(100px,max-content) minmax(0,1fr);gap:var(--s3);}
.date-when{font-size:var(--fs-sm);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}
.date-when .days{display:block;font-weight:500;margin-top:1px;}
.task-list>li{display:flex;gap:10px;align-items:flex-start;}
.task-list .check{flex:1;min-width:0;}

/* 6.3 Case workspace */
.case-head{margin-bottom:var(--s5);}
.case-head h1{font-size:var(--fs-2xl);line-height:1.25;letter-spacing:-.012em;overflow-wrap:anywhere;}
.case-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;margin-top:var(--s2);font-size:var(--fs-ui);color:var(--ink-2);}
.case-meta .sep{color:var(--line-2);}
.status-select{width:auto;min-height:30px;padding:2px 30px 2px 10px;font-size:var(--fs-sm);font-weight:600;border-color:var(--line);background-color:var(--surface);}
.case-head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s4);flex-wrap:wrap;}
.case-head-actions{display:flex;gap:2px;margin-top:4px;}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--s9);align-items:start;}
.workspace-side .section{margin-top:var(--s7);}
.workspace-side .section-head h2,.dash-side .section-head h2{font-size:var(--fs-ui);}
.workspace-side .section:first-child{margin-top:0;}
.summary-text{font-size:var(--fs-md);line-height:1.65;}
.ai-note{font-size:var(--fs-xs);color:var(--ink-3);margin-top:var(--s2);display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.answer{padding:var(--s4) 0;border-top:1px solid var(--line);}
.answer-q{font-weight:600;margin-bottom:var(--s2);}
.answer-part{margin-top:6px;}
.answer-part .prov{margin-left:4px;}
.ask-form{display:flex;gap:var(--s2);align-items:flex-start;}
.ask-form .voice-field{flex:1;}
.person-row .row-title{font-weight:600;}

/* Timeline: editorial chronology — month headings, day column, hairlines */
.chrono-month{margin-top:var(--s6);}
.chrono-month:first-child{margin-top:0;}
.chrono-month-title{font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);padding-bottom:var(--s2);border-bottom:1px solid var(--line-2);}
.chrono{list-style:none;padding:0;}
.chrono-row{display:grid;grid-template-columns:80px minmax(0,1fr);gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--line);}
.chrono-day{font-size:var(--fs-xl);font-weight:500;font-variant-numeric:tabular-nums;line-height:1.2;color:var(--ink);}
.chrono-day .wd{display:block;font-size:var(--fs-xs);color:var(--ink-3);font-weight:500;margin-top:2px;}
.chrono-day.approx{font-size:var(--fs-xs);color:var(--ink-2);line-height:1.35;padding-top:3px;overflow-wrap:normal;word-break:normal;hyphens:auto;}
.chrono-title{font-weight:600;}
.chrono-detail{color:var(--ink-2);margin-top:2px;}
.chrono-src{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin-top:6px;font-size:var(--fs-xs);}
.chrono-src .quote{font-size:var(--fs-sm);}
.doc-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-sm);color:var(--ink-2);text-decoration:none;}
.doc-chip .ico{width:15px;height:15px;color:var(--ink-3);}
.doc-chip:hover{color:var(--ink);text-decoration:underline;}
.chrono-notes{font-size:var(--fs-sm);color:var(--ink-2);margin-top:6px;}
.chrono-actions{display:flex;gap:2px;align-items:center;flex-wrap:wrap;margin:6px 0 0 -8px;}
.chrono-actions .btn-quiet{font-size:var(--fs-sm);min-height:30px;}
.btn-quiet.muted-action{font-weight:500;}
.needs-review .chrono-body{border-left:2px solid var(--warn-mark);padding-left:12px;margin-left:-14px;}
.needs-review .chrono-actions .label{margin:0 6px 0 8px;}
.sample .chrono-row{border-bottom:0;}
.sample .chrono-day{font-size:var(--fs-md);}

/* Documents */
.doc-table td:nth-child(2){white-space:nowrap;}
.doc-found{font-size:var(--fs-xs);color:var(--ink-3);margin-top:2px;}
.upload-bar{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center;margin-bottom:var(--s5);}

/* Evidence checklist */
.check-row{display:flex;gap:var(--s3);align-items:flex-start;}
.check-mark{width:20px;height:20px;border:1.5px solid var(--line-2);border-radius:4px;flex:none;margin-top:2px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:#fff;}
.check-mark .ico{width:14px;height:14px;stroke-width:2.5;}
.st-have .check-mark,.st-auto .check-mark{background:var(--ok);border-color:var(--ok);}
.st-na .check-mark{background:var(--surface-2);}
.st-na .row-title{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-2);}
.check-row .row-title{font-weight:500;}
.progress-line{display:flex;align-items:center;gap:var(--s3);margin:var(--s2) 0 var(--s4);font-size:var(--fs-sm);color:var(--ink-2);}
.progress-line .progress{flex:1;max-width:260px;}

/* Dates */
.legend{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s5);font-size:var(--fs-sm);color:var(--ink-2);}
.legend .prov{margin-right:6px;}
.dates-list>li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:var(--s4);}
.dates-list .done .row-title{text-decoration:line-through;color:var(--ink-3);}
.rule-row{display:grid;grid-template-columns:minmax(0,1fr) 190px auto;gap:var(--s3) var(--s4);align-items:end;}
.rule-row .field{margin-bottom:0;}

/* Legal information inside a case, and sourced statements anywhere */
.legal-info{padding:var(--s4) 0;border-bottom:1px solid var(--line);}
.legal-info:first-of-type{border-top:1px solid var(--line);}
.legal-info h3{font-size:var(--fs-md);margin-bottom:4px;}
.legal-info p{color:var(--ink-2);max-width:68ch;}
.legal-src{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:var(--s2);}
.orient h3{font-size:var(--fs-md);margin:var(--s5) 0 var(--s2);}
.orient li{margin:6px 0;}
.orient li .prov{margin-left:6px;}

/* Resources */
.res{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:var(--s3) var(--s7);padding:var(--s5) 0;border-bottom:1px solid var(--line);}
.res-list{border-top:1px solid var(--line);}
.res-kind{font-size:var(--fs-xs);font-weight:600;color:var(--ink-3);}
.res-name{font-size:var(--fs-lg);font-weight:600;margin-top:2px;}
.res-about{color:var(--ink-2);margin-top:4px;max-width:62ch;}
.res-facts{display:grid;grid-template-columns:110px 1fr;gap:6px var(--s4);margin-top:var(--s3);font-size:var(--fs-sm);}
.res-facts dt{color:var(--ink-3);}
.res-facts dd ul{list-style:none;padding:0;}
.res-source{font-size:var(--fs-xs);color:var(--ink-3);margin-top:var(--s3);}
.res-source a{color:var(--ink-2);}
.res-contact{display:flex;flex-direction:column;gap:6px;align-items:flex-start;font-size:var(--fs-ui);}
.res-contact ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;}
.res-contact a{display:inline-flex;gap:8px;align-items:flex-start;text-decoration:none;font-weight:600;}
.res-contact a:hover{text-decoration:underline;}
.res-contact .ico{width:16px;height:16px;flex:none;margin-top:3px;}
.res-contact a span{overflow-wrap:anywhere;}
.res>div{min-width:0;}
.res-contact .note{font-size:var(--fs-xs);color:var(--ink-3);font-weight:400;display:block;}
.res-contact .btn{margin-top:var(--s2);}

/* Prepare for legal help: the printable document is a real page */
.prep-controls{margin-bottom:var(--s7);}
.prep-edit{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7);margin-top:var(--s6);}
.suggest-qs{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:var(--s2);}
.suggest-qs button{background:none;border:0;padding:4px 0;color:var(--brand);font-size:var(--fs-sm);font-weight:600;text-align:left;display:inline-flex;gap:6px;align-items:flex-start;}
.suggest-qs button .ico{width:15px;height:15px;margin-top:2px;flex:none;}
.suggest-qs button:hover{text-decoration:underline;}
.prep-doc{background:#fff;border:1px solid var(--line);border-radius:var(--r2);padding:48px 56px;max-width:820px;}
.prep-head{border-bottom:1px solid var(--ink);padding-bottom:var(--s4);margin-bottom:var(--s5);}
.prep-kicker{font-size:var(--fs-sm);color:var(--ink-3);}
.prep-head h1{font-family:var(--font-serif);font-size:1.75rem;font-weight:600;margin:4px 0 6px;}
:lang(zh) .prep-head h1,:lang(ko) .prep-head h1{font-family:var(--font);}
.prep-disclaimer{font-size:var(--fs-xs);color:var(--ink-3);margin-top:6px;}
.prep-facts{display:grid;grid-template-columns:140px 1fr;gap:4px var(--s4);font-size:var(--fs-ui);}
.prep-facts dt{color:var(--ink-3);}
.prep-sec{margin-top:var(--s6);}
.prep-sec h2{font-size:var(--fs-md);font-weight:600;padding-bottom:4px;border-bottom:1px solid var(--line);margin-bottom:var(--s2);}
.prep-sec ul,.prep-sec ol{font-size:var(--fs-ui);}
.prep-sec li{margin:3px 0;}
.prep-table{width:100%;border-collapse:collapse;font-size:var(--fs-ui);}
.prep-table td{padding:6px 12px 6px 0;border-bottom:1px solid var(--line);vertical-align:top;}
.prep-table td:first-child{width:130px;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink-2);}

/* Intake */
.intake{max-width:var(--w-form);}
.step-count{font-size:var(--fs-sm);color:var(--ink-3);font-weight:500;margin-bottom:var(--s2);}
.step-progress{margin-bottom:var(--s7);}
.intake h1{font-size:1.75rem;line-height:1.2;letter-spacing:-.012em;}
.intake .lead{color:var(--ink-2);margin:var(--s2) 0 var(--s6);font-size:var(--fs-lg);}
.intake textarea.big{font-size:var(--fs-lg);line-height:1.55;min-height:220px;}
.understood{padding:var(--s4) var(--s5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);margin-bottom:var(--s6);}
.understood h2{font-size:var(--fs-sm);color:var(--ink-3);font-weight:600;margin-bottom:4px;}
.q-field label{font-weight:600;font-size:var(--fs-md);}
.plain-list{list-style:none;padding:0;}
.plain-list li{padding:6px 0;border-bottom:1px solid var(--line);font-size:var(--fs-ui);}
.plain-list li:first-child{border-top:1px solid var(--line);}

/* Inbox */
.inbox-item .row-title{font-size:var(--fs-lg);}
.inbox-summary{margin-top:var(--s2);color:var(--ink-2);max-width:68ch;}
.match-box{margin-top:var(--s3);padding:10px 14px;background:var(--info-soft);border-radius:var(--r1);font-size:var(--fs-ui);}
.match-box .meta{margin-top:2px;}
.inbox-actions{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center;margin-top:var(--s3);}
.inbox-actions .inline-form select{min-width:180px;}

/* Document viewer: the document is the main object */
.docview{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--s8);align-items:start;}
.docview-doc{position:sticky;top:var(--s5);}
.doc-frame{background:#fff;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;}
.doc-frame-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:6px 8px 6px 14px;border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-3);}
.doc-preview object{width:100%;height:calc(100vh - 200px);min-height:520px;border:0;}
.doc-preview img{width:100%;height:auto;}
.doc-preview .doc-text{padding:var(--s6);white-space:pre-wrap;font-family:var(--font-serif);font-size:var(--fs-md);line-height:1.6;max-height:calc(100vh - 200px);overflow:auto;}
:lang(zh) .doc-preview .doc-text,:lang(ko) .doc-preview .doc-text{font-family:var(--font);}
.doc-preview .loading-row,.doc-preview>.muted{padding:var(--s6);}
.transcript>summary{cursor:pointer;padding:10px 14px;font-size:var(--fs-sm);font-weight:600;color:var(--brand);border-top:1px solid var(--line);}
.transcript pre{padding:0 14px 14px;white-space:pre-wrap;font-family:var(--font);font-size:var(--fs-sm);max-height:320px;overflow:auto;color:var(--ink-2);}
.doc-info .section{margin-top:var(--s7);}
.doc-info .section:first-child{margin-top:0;}
.doc-summary{font-size:var(--fs-md);line-height:1.65;}
.doc-type-line{margin-bottom:var(--s2);}
.doc-info ul{margin-top:var(--s2);}
.doc-info li{margin:4px 0;}
.review-panel{padding:var(--s5);background:var(--surface);border:1px solid var(--warn-line);border-left:3px solid var(--warn-mark);border-radius:var(--r2);margin-bottom:var(--s7);}
.review-panel h2{font-size:var(--fs-lg);}
.prop-group{margin-top:var(--s4);}
.prop-group legend{color:var(--ink-3);font-weight:600;}
.prop-item{padding:6px 0;border-top:1px solid var(--line);font-size:var(--fs-ui);}
.match-panel{padding:var(--s5);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--r2);margin-bottom:var(--s7);}
.match-panel h2{font-size:var(--fs-lg);margin-bottom:4px;}

/* Compare */
.changes{list-style:none;padding:0;}
.change{padding:var(--s5) 0;border-bottom:1px solid var(--line);}
.change:first-child{border-top:1px solid var(--line);}
.change-head{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s3);}
.change-head strong{font-weight:600;}
.change-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);}
.change-cols .meta{margin-bottom:4px;}
.change-text{padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r1);font-size:var(--fs-ui);line-height:1.6;}
.change-explain{margin-top:var(--s3);padding-left:14px;border-left:2px dashed #CDB57E;}
.change-explain ul{margin-top:4px;}
.compare-facts p+p{margin-top:6px;}

/* Articles (legal information) */
.article-wrap{display:grid;grid-template-columns:minmax(0,var(--w-read)) 220px;gap:var(--s9);align-items:start;justify-content:space-between;}
.article{max-width:var(--w-read);}
.article-kicker{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:var(--s2);}
.article h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.9rem,3vw,2.375rem);line-height:1.15;letter-spacing:-.012em;}
:lang(zh) .article h1,:lang(ko) .article h1{font-family:var(--font);font-weight:600;}
.article .lede{font-size:1.1875rem;line-height:1.6;color:var(--ink-2);margin-top:var(--s4);}
.article .byline{font-size:var(--fs-sm);color:var(--ink-3);margin-top:var(--s4);padding-bottom:var(--s5);border-bottom:1px solid var(--line);}
.article h2{font-family:var(--font-serif);font-weight:600;font-size:1.4rem;line-height:1.25;margin:var(--s8) 0 var(--s3);scroll-margin-top:var(--s6);}
:lang(zh) .article h2,:lang(ko) .article h2{font-family:var(--font);}
.article h3{font-size:var(--fs-lg);margin:var(--s5) 0 4px;}
.article p,.article li{line-height:1.7;}
.article p+p{margin-top:.85em;}
.article ul,.article ol{margin-top:var(--s2);}
.article li{margin:.4em 0;padding-left:2px;}
.article .situation{padding:var(--s4) 0;border-top:1px solid var(--line);}
.article .situation p{margin-top:4px;color:var(--ink-2);}
.article .situation .todo{color:var(--ink);}
.callout{margin:var(--s5) 0;padding:14px 18px;border-left:3px solid var(--warn-mark);background:var(--warn-soft);border-radius:var(--r1);}
.callout strong{display:block;}
.article .next{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--ink);}
.article .next p{color:var(--ink-2);margin:4px 0 var(--s4);}
.toc{position:sticky;top:var(--s6);font-size:var(--fs-sm);}
.toc h2{font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);margin-bottom:var(--s2);}
.toc ol{list-style:none;padding:0;border-left:1px solid var(--line);}
.toc a{display:block;padding:5px 0 5px 12px;margin-left:-1px;border-left:2px solid transparent;color:var(--ink-2);text-decoration:none;line-height:1.35;}
.toc a:hover{color:var(--ink);border-left-color:var(--ink-3);}
.learn-group{margin-top:var(--s8);}
.learn-group:first-of-type{margin-top:var(--s6);}
.learn-group>h2{font-size:var(--fs-lg);margin-bottom:var(--s3);}
.faq details{border-bottom:1px solid var(--line);}
.faq details:first-child{border-top:1px solid var(--line);}
.faq summary{cursor:pointer;padding:14px 32px 14px 0;font-weight:600;list-style:none;position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-size:1.25rem;font-weight:400;color:var(--ink-3);}
.faq details[open] summary::after{content:"–";}
.faq .a{padding:0 0 var(--s4);color:var(--ink-2);max-width:68ch;}
.faq .a p+p{margin-top:.6em;}
.results .res-kind{margin-bottom:2px;}
mark{background:#F4E6B8;color:inherit;padding:0 1px;border-radius:2px;}

/* Settings / About */
.settings .section{padding-top:var(--s6);border-top:1px solid var(--line);}
.settings .section:first-child{border-top:0;padding-top:0;}
.lang-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px var(--s4);}

/* ── 7. Responsive ─────────────────────────────────────────── */
@media (max-width:1180px){
  .workspace,.dash{grid-template-columns:minmax(0,1fr) 260px;gap:var(--s7);}
  .article-wrap{grid-template-columns:minmax(0,1fr);}
  .toc{display:none;}
}
@media (max-width:1023px){
  .mode-app .main-wrap{margin-left:0;}
  .sidebar{transform:translateX(-100%);transition:transform .2s var(--ease);box-shadow:none;width:min(300px,86vw);}
  .sidebar.open{transform:none;box-shadow:var(--shadow-pop);}
  .sidebar .sidebar-close{display:inline-flex;}
  .mode-app .app-topbar{display:flex;align-items:center;gap:var(--s2);height:56px;padding:0 var(--s3);background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:200;}
  .app-topbar .brand{margin-right:auto;}
  .page{padding:var(--s7) var(--s6) 0;}
  .app-foot{padding-left:var(--s6);padding-right:var(--s6);}
  .workspace,.dash{grid-template-columns:minmax(0,1fr);gap:var(--s8);}
  .docview{grid-template-columns:minmax(0,1fr);}
  .docview-doc{position:static;}
  .doc-preview object{height:70vh;min-height:0;}
  .doc-preview .doc-text{max-height:60vh;}
  .home-hero-grid{grid-template-columns:minmax(0,1fr);gap:var(--s8);}
  .split{grid-template-columns:minmax(0,1fr);gap:var(--s5);}
  .split>.split-head{position:static;}
}
@media (max-width:860px){
  .site-nav{display:none;}
  .site-header .site-menu-btn{display:inline-flex;}
  .site-header.menu-open .site-nav{display:flex;flex-direction:column;gap:0;position:absolute;top:64px;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--line);padding:var(--s2) var(--s6) var(--s4);box-shadow:var(--shadow-pop);}
  .site-header.menu-open .site-nav a{padding:12px 0;border-bottom:1px solid var(--line);}
  .site-header-inner{gap:var(--s3);padding:0 var(--s5);}
  .site-header .lang select{padding-right:22px;width:44px;color:transparent;}
  .site-header .lang select option{color:var(--ink);}
  .site-footer-grid{grid-template-columns:1fr 1fr;}
  .site-footer .foot-about{grid-column:1/-1;}
  .trust-grid,.link-list{grid-template-columns:minmax(0,1fr);}
  .res{grid-template-columns:minmax(0,1fr);}
  .rule-row{grid-template-columns:minmax(0,1fr);}
  .prep-edit{grid-template-columns:1fr;}
  .change-cols{grid-template-columns:1fr;}
  .lang-options{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  :root{--ctl:44px;--ctl-sm:38px;}
  .wrap{padding:0 var(--s5);}
  .page{padding:var(--s6) var(--s4) 0;}
  .app-foot{padding:var(--s5) var(--s4) calc(var(--s6) + 64px);}
  .page-title,.case-head h1{font-size:1.4375rem;}
  .page-head{margin-bottom:var(--s6);}
  .page-actions{width:100%;}
  .grid-2,.grid-3,.radio-list{grid-template-columns:1fr;}
  .home-hero{padding:var(--s8) 0;}
  .home-sec{padding:var(--s9) 0;}
  .home-hero .lede{font-size:var(--fs-lg);}
  .hero-actions .btn{flex:1 1 auto;}
  .sample-body{grid-template-columns:1fr;}
  .sample-col+.sample-col{border-left:0;border-top:1px solid var(--line);}
  .sample-head,.sample-col{padding-left:var(--s4);padding-right:var(--s4);}
  .sample .tabs{padding:0 var(--s4);}
  .lang-demo{grid-template-columns:1fr;}
  .lang-demo>div+div{border-left:0;border-top:1px solid var(--line);}
  .prov-legend li{grid-template-columns:1fr;gap:2px;}
  .site-footer-grid{grid-template-columns:1fr;}
  .mode-app .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:250;background:var(--surface);border-top:1px solid var(--line);padding:4px 0 max(4px,env(safe-area-inset-bottom));}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0 4px;min-height:52px;font-size:11px;font-weight:500;color:var(--ink-3);text-decoration:none;position:relative;}
  .tabbar .ico{width:22px;height:22px;}
  .tabbar a.active{color:var(--brand);font-weight:600;}
  .tabbar .nav-count{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;line-height:16px;font-size:10px;padding:0 4px;background:var(--brand);color:#fff;}
  .toast{bottom:84px;}
  .table.stack thead{display:none;}
  .table.stack,.table.stack tbody,.table.stack tr,.table.stack td{display:block;width:100%;}
  .table.stack tr{padding:var(--s3) 0;border-bottom:1px solid var(--line);}
  .table.stack td{border:0;padding:0;}
  .table.stack td+td{margin-top:2px;font-size:var(--fs-sm);color:var(--ink-3);}
  .table.stack td[data-label]:not(.cell-name)::before{content:attr(data-label) ": ";}
  .table.stack td.cell-status{margin-top:6px;}
  .table.stack td.cell-status::before{display:none;}
  .date-list>li,.dates-list>li{grid-template-columns:1fr;gap:2px;}
  .chrono-row{grid-template-columns:56px minmax(0,1fr);}
  .chrono-day{font-size:var(--fs-lg);}
  .facts,.prep-facts,.res-facts{grid-template-columns:1fr;gap:2px;}
  .facts dd,.res-facts dd{margin-bottom:var(--s2);}
  .ask-form,.inline-form{flex-direction:column;align-items:stretch;}
  .modal{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:var(--r3) var(--r3) 0 0;max-height:92vh;}
  .modal-body{padding:var(--s5) var(--s4) calc(var(--s5) + env(safe-area-inset-bottom));}
  .modal-actions .btn{flex:1;}
  .prep-doc{padding:var(--s6) var(--s4);}
  .intake h1{font-size:1.5rem;}
  .case-head-row{flex-direction:column;gap:6px;}
  .case-head-actions{margin:0 0 0 -8px;}
  .sample-col+.sample-col{display:none;}
  .inbox-actions .inline-form{width:100%;}
  .row{flex-wrap:wrap;}
  .row-main{flex:1 1 200px;}
  .row-side{align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap;}
  .notice{flex-wrap:wrap;}
  .notice-body{flex-basis:calc(100% - 40px);}
  .notice .btn-row,.notice>.btn{margin-left:32px;}
  .case-meta{flex-direction:column;align-items:flex-start;gap:4px;}
  .case-meta .sep{display:none;}
  .drop{padding:var(--s4);}
  .drop .btn-row .btn{flex:1 1 40%;}
  .doc-preview object{height:45vh;}
  .doc-preview img{max-height:50vh;object-fit:contain;background:var(--bg);}
  .doc-preview .doc-text{max-height:40vh;padding:var(--s4);}
}

@media (hover:none) and (pointer:coarse){.drop-title{display:none;}}

/* ── 8. Print: only the summary for legal help ─────────────── */
@media print{
  body{background:#fff;}
  .sidebar,.app-topbar,.site-header,.site-footer,.app-foot,.tabbar,.toast,.storage-warning,.no-print,#homeView,.drawer-backdrop{display:none!important;}
  .mode-app .main-wrap{margin:0;}
  .page{padding:0;max-width:none;}
  .prep-doc{border:0;padding:0;max-width:none;}
  .prov::before{border:1px solid #000;}
  a{color:#000;text-decoration:none;}
  .prep-sec{break-inside:avoid;}
}
