/* Hailey Portal — legal case-binder aesthetic on the existing dashboard tokens. No external libs. */
:root{
  --bg:#f7f4ee;--card:#ffffff;--ink:#22262b;--dim:#6b7280;--line:#e5e0d5;
  --brand:#3f5d7d;--brand-soft:#e8eef5;--green:#2f7a44;--green-soft:#e4f2e8;
  --amber:#b06a10;--amber-soft:#fdf1dc;--red:#b03030;--red-soft:#f9e5e5;
  --gold:#c8952a;--paper:#fffdf8;--slate:#5b6470;--clay:#9a5b3c;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif}
.wrap{max-width:920px;margin:0 auto;padding:24px 20px 90px}
h1,h2,h3,.caption-title{font-family:var(--serif)}
h2{font-size:21px;margin:34px 0 4px;font-weight:700;letter-spacing:.2px}
.h2sub{color:var(--dim);font-size:14px;margin:0 0 14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin:14px 0;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.pill{display:inline-block;padding:2px 11px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.03em}
.pill.g{background:var(--green-soft);color:var(--green)}.pill.a{background:var(--amber-soft);color:var(--amber)}
.pill.b{background:var(--brand-soft);color:var(--brand)}.pill.r{background:var(--red-soft);color:var(--red)}
.btn{display:inline-block;border:none;border-radius:10px;padding:9px 18px;font-size:14px;font-weight:700;cursor:pointer;margin-right:8px}
.btn.yes{background:var(--green);color:#fff}
.btn.no{background:#fff;color:var(--red);border:1.5px solid var(--red)}
.btn.q{background:#fff;color:var(--brand);border:1.5px solid var(--brand)}
.btn.send{background:var(--green);color:#fff;width:100%;padding:12px 22px;font-size:15px}
.btn:disabled{opacity:.45;cursor:default}

/* ---- filing caption header ---- */
.caption{border:2px solid var(--ink);background:var(--paper);padding:18px 24px 14px;margin:0 0 4px;position:relative}
.caption .court{font-family:var(--serif);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);text-align:center}
.caption-title{font-size:26px;font-weight:700;text-align:center;margin:6px 0 2px;letter-spacing:.3px}
.caption .no{font-family:var(--serif);font-size:13.5px;text-align:center;color:var(--dim)}
.caption .rule{border-top:1px solid var(--ink);margin:12px 60px 8px}
.caption .meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--dim);flex-wrap:wrap;gap:6px}
.caption .meta b{color:var(--ink)}

/* ---- binder index tabs ---- */
.tabs{display:flex;gap:4px;margin:0 0 0 10px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;position:sticky;top:0;z-index:8;background:var(--bg);padding-top:10px;scrollbar-width:thin}
.tab{font-family:var(--serif);font-size:13px;font-weight:700;letter-spacing:.06em;padding:9px 15px 7px;border:1px solid var(--line);border-bottom:none;border-radius:10px 10px 0 0;background:#efeadf;color:var(--dim);cursor:pointer;user-select:none;white-space:nowrap}
.tab .num{display:inline-block;background:var(--ink);color:#fff;border-radius:4px;font-size:10.5px;padding:0 5px;margin-right:7px;vertical-align:1px}
.tab.on{background:var(--card);color:var(--ink);border-color:#cfc8b8;box-shadow:0 -2px 4px rgba(0,0,0,.05);position:relative;top:1px}
.tab.on .num{background:var(--brand)}
.binder-body{background:var(--card);border:1px solid #cfc8b8;border-radius:0 14px 14px 14px;padding:26px 28px;min-height:400px}
.panel{display:none}.panel.on{display:block}
.panel>h2:first-child{margin-top:0}

/* ---- rubber stamps ---- */
.stamp{display:inline-block;font-family:var(--serif);font-weight:700;font-size:12px;letter-spacing:.18em;color:var(--red);border:2.5px solid var(--red);border-radius:6px;padding:3px 10px;transform:rotate(-6deg);opacity:.82;text-transform:uppercase;background:rgba(176,48,48,.04)}
.stamp.gray{color:var(--slate);border-color:var(--slate);background:rgba(91,100,112,.05)}
.stamp.green{color:var(--green);border-color:var(--green);background:rgba(47,122,68,.05)}

	/* ---- exhibit thread (THE RECORD) ---- */
	.thread{margin-top:8px}
	.record-heading{font-size:19px;margin:26px 0 4px}
.exh{display:flex;margin:18px 0;gap:12px}
.exh.right{flex-direction:row-reverse}
.bubblecol{max-width:72%;min-width:260px}
.exh-tag{font-family:var(--serif);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:3px}
.exh-tag b{color:var(--ink)}
.bubble{border:1px solid var(--line);border-radius:14px;padding:12px 16px;background:var(--paper);position:relative}
.bubble .from{font-weight:800;font-size:13px}
.bubble .subj{font-family:var(--serif);font-size:14.5px;font-weight:700;margin:1px 0 4px}
.bubble .exc{font-size:14px;color:#3d434b;white-space:pre-wrap}
.bubble details summary{font-size:12.5px;color:var(--brand);cursor:pointer;font-weight:700;margin-top:6px}
.exh.p-firm .bubble{background:#eef0f3;border-color:#d7dbe1}
.exh.p-hailey .bubble{background:var(--brand-soft);border-color:#c9d7e5}
.exh.p-oc .bubble{background:#f6ece5;border-color:#e6d2c3}
.exh.p-court .bubble{background:#fbf3e0;border-color:#ecd9ad}
.exh.p-mark .bubble{background:var(--green-soft);border-color:#c9e2d0}
.margin-note{flex:1;min-width:150px;align-self:center;border-left:3px solid var(--gold);padding:6px 0 6px 12px;font-size:13px;color:#5a5344;font-style:italic;background:linear-gradient(90deg,rgba(200,149,42,.06),transparent)}
.exh.right .margin-note{border-left:none;border-right:3px solid var(--gold);padding:6px 12px 6px 0;text-align:right;background:linear-gradient(270deg,rgba(200,149,42,.06),transparent)}
.margin-note .mn-h{font-style:normal;font-weight:800;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.exh .stamp{position:absolute;top:-12px;right:-8px;font-size:10.5px}

/* ---- accounting ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;text-align:center}
.stat .n{font-family:var(--serif);font-size:25px;font-weight:700;letter-spacing:-.5px}
.stat .l{font-size:12px;color:var(--dim);margin-top:2px;line-height:1.35}
.stat.good .n{color:var(--green)}.stat.warn .n{color:var(--amber)}.stat.bad .n{color:var(--red)}.stat.info .n{color:var(--brand)}
.burn{display:flex;align-items:flex-end;gap:10px;height:170px;padding:8px 4px 0}
.burn .mcol{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.burn .mbar{width:70%;max-width:64px;background:var(--brand);border-radius:6px 6px 0 0;min-height:3px}
.burn .mval{font-size:11px;font-weight:800;color:var(--brand)}
.burn .mlbl{font-size:11px;color:var(--dim);border-top:1px solid var(--line);width:100%;text-align:center;padding-top:4px}
.bar-row{display:flex;align-items:center;gap:12px;margin:10px 0}
.bar-lbl{width:190px;font-size:13.5px;color:var(--dim);text-align:right;flex-shrink:0}
.bar-track{flex:1;height:26px;background:#f1ede4;border-radius:7px;overflow:hidden;position:relative}
.bar-fill{height:100%;border-radius:7px;display:flex;align-items:center;padding-left:10px;font-size:12.5px;font-weight:800;color:#fff;white-space:nowrap}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.fbtn{border:1.5px solid var(--line);border-radius:999px;background:#fff;padding:5px 14px;font-size:13px;font-weight:700;cursor:pointer;color:var(--dim)}
.fbtn.on{background:var(--brand);border-color:var(--brand);color:#fff}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;margin-top:8px}
table.lines{border-collapse:collapse;width:100%;font-size:13px;background:var(--paper)}
table.lines th{font-family:var(--serif);text-align:left;padding:8px 10px;border-bottom:2px solid var(--ink);font-size:12px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
table.lines td{padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.lines td.amt{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.f-clerical td{background:var(--amber-soft)}
tr.f-trial-prep td{background:var(--red-soft)}
.flagchip{font-size:10.5px;font-weight:800;letter-spacing:.05em;border-radius:5px;padding:1px 7px;text-transform:uppercase;white-space:nowrap}
.flagchip.clerical{background:var(--amber-soft);color:var(--amber)}
.flagchip.trial-prep{background:var(--red-soft);color:var(--red)}
.flagchip.work{background:#eef0f3;color:var(--slate)}
	.outcomes li{margin:6px 0;font-size:14.5px}
	.dispute-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
	.dispute-card{margin:0}
	.dispute-card h3{font-size:17px;margin:2px 0 6px}
	.dispute-card p{font-size:14px;color:#3d434b;margin:0 0 12px;line-height:1.45}
	.dispute-num{font-family:var(--serif);font-size:24px;font-weight:800;color:var(--red)}

/* ---- agreement clause cards ---- */
.clause{border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:16px 20px;margin:14px 0}
.clause h3{margin:0 0 8px;font-size:17px}
.clause .row{display:grid;grid-template-columns:110px 1fr;gap:8px;margin:7px 0;font-size:14px}
.clause .k{font-weight:800;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;padding-top:2px}
.clause .k.says{color:var(--slate)}.clause .k.problem{color:var(--red)}.clause .k.good{color:var(--green)}

/* ---- counsel search ---- */
.score-table td,.score-table th{font-size:13.5px}
.receipt-slot{border:1.5px dashed var(--line);border-radius:10px;padding:8px;text-align:center;font-size:12px;color:var(--dim);min-width:110px}
.receipt-slot img{max-width:150px;border-radius:6px;display:block;margin:0 auto 4px;border:1px solid var(--line)}

	/* ---- action center ---- */
	.priority-heading{font-family:var(--serif);font-size:18px;margin:22px 0 2px}
	.priority-heading.urgent{color:var(--red)}
	.priority-heading.soon{color:var(--brand)}
	.priority-tag{display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:5px;padding:1px 7px;margin-right:7px;vertical-align:2px}
	.priority-tag.urgent{background:var(--red-soft);color:var(--red)}
	.priority-tag.soon{background:var(--brand-soft);color:var(--brand)}
	.appr{display:flex;gap:14px;align-items:flex-start;border:1.5px solid var(--line);border-radius:14px;padding:16px 18px;margin:12px 0;background:var(--paper)}
	.appr.urgent{border-left:5px solid var(--red)}
	.appr.soon{border-left:5px solid var(--brand)}
.appr .ico{font-size:22px;line-height:1.2}
.appr .body{flex:1}
.appr .t{font-family:var(--serif);font-weight:700;font-size:16.5px}
.appr .why{font-size:14px;color:var(--dim);margin:3px 0 10px}
.appr.armed{border-color:var(--amber);background:var(--amber-soft)}
.appr.done{border-color:var(--green);background:#f2f9f4}
.appr.failed{border-color:var(--red)}
.countdown{font-variant-numeric:tabular-nums;font-weight:800;color:var(--amber);font-size:15px}
.status-line{font-size:13.5px;font-weight:700;margin:4px 0 10px}
details.mono{background:#f6f4ee;border:1px solid var(--line);border-radius:12px;padding:12px 18px;margin:0 0 12px}
details.mono summary{font-weight:700;cursor:pointer;font-size:14px}
details.mono .body{font-size:13.5px;white-space:pre-wrap;font-family:ui-monospace,Menlo,monospace;margin-top:8px}

	/* ---- journey / story (exec summary) ---- */
	.next-order{padding:10px 18px}
	.copy-source{position:absolute;left:-9999px;width:1px;height:1px;opacity:.01}
	.copy-source:not([hidden]):focus{position:static;width:100%;height:180px;opacity:1;margin-top:10px}
	.order-row{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
	.order-row:last-child{border-bottom:none}
	.order-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;background:var(--slate);font-size:13px}
	.order-row.urgent .order-num{background:var(--red)}
	.order-row.done .order-num{background:var(--green)}
	.order-row.soon .order-num{background:var(--brand)}
	.order-row.later .order-num{background:var(--slate)}
	.order-row b{font-size:15px}
	.order-row p{margin:2px 0 0;color:var(--dim);font-size:13.5px;line-height:1.45}
	.copy-card{display:flex;gap:14px;align-items:flex-start;border:1.5px solid var(--line);border-radius:14px;padding:16px 18px;margin:12px 0;background:var(--paper)}
	.copy-card.urgent{border-left:5px solid var(--red)}
	.copy-card.done{border-left:5px solid var(--green);background:#f7fbf8}
	.copy-card .body{flex:1}
	.copy-card .t{font-family:var(--serif);font-weight:700;font-size:16.5px}
	.copy-card .why{font-size:14px;color:var(--dim);margin:3px 0 10px}
	.journey{display:flex;gap:6px;margin:16px 0 8px}
.jstep{flex:1;text-align:center}
.jbar{height:9px;border-radius:6px;background:var(--line)}
.jstep.done .jbar{background:var(--green)}
.jstep.now .jbar{background:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.jlbl{font-size:11px;color:var(--dim);margin-top:7px;line-height:1.3}
.jstep.done .jlbl{color:var(--green);font-weight:700}
.jstep.now .jlbl{color:var(--brand);font-weight:800}
.story{border-left:3px solid var(--line);margin:10px 0 0 8px;padding-left:20px}
.ev{position:relative;margin:0 0 18px}
.ev:before{content:"";position:absolute;left:-27px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--dim)}
.ev.good:before{background:var(--green)}.ev.bad:before{background:var(--red)}.ev.warn:before{background:var(--amber)}
.ev .d{font-size:12px;font-weight:800;color:var(--dim);letter-spacing:.05em;text-transform:uppercase}
.ev .t{font-size:15px;margin-top:1px}

	/* ---- intake ---- */
	.intake-complete{border-left:5px solid var(--green);background:#f7fbf8}
	.intake-complete h3{margin:8px 0 4px;font-size:18px}
	.intake-complete p{margin:0 0 12px;color:var(--dim);font-size:14px}
	#intake-workflow.submitted #intake-form{display:none}
	#intake-workflow.submitted #intake-complete{display:block}
	.progress{position:sticky;top:44px;background:var(--card);padding:10px 0;z-index:5}
.ptrack{height:10px;background:var(--line);border-radius:6px;overflow:hidden}
.pfill{height:100%;background:var(--green);width:0%;transition:width .3s;border-radius:6px}
.plbl{font-size:12.5px;color:var(--dim);margin-top:5px}
.sec{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin:16px 0}
.sec h3{font-size:17px;margin:0 0 2px;font-weight:700}
.sec .why{font-size:13px;color:var(--dim);margin:0 0 14px}
.q{margin:16px 0}
.q label{display:block;font-weight:700;font-size:14.5px;margin-bottom:5px}
.q .hint{font-weight:400;color:var(--dim);font-size:13px;display:block;margin-top:1px}
textarea,input[type=text],input[type=password],input[type=email]{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:15px;background:#fffdf8}
textarea{min-height:64px;resize:vertical}
textarea:focus,input:focus{outline:none;border-color:var(--brand)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1.5px solid var(--line);border-radius:999px;padding:6px 14px;font-size:14px;cursor:pointer;background:#fff;user-select:none}
.chip.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.saved{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--green);color:#fff;padding:8px 20px;border-radius:999px;font-size:13.5px;font-weight:700;opacity:0;transition:opacity .4s;pointer-events:none;z-index:20}

/* ---- auth pages / admin ---- */
.authbox{max-width:400px;margin:9vh auto 0;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:34px 38px;text-align:center}
.authbox h1{font-size:22px;margin:8px 0 2px}
.authbox .sub{color:var(--dim);font-size:13.5px;margin-bottom:14px}
.authbox input{margin:7px 0}
.err{color:var(--red);font-size:13.5px;font-weight:700;min-height:20px;margin-top:8px}
	.userbar{display:flex;justify-content:flex-end;align-items:center;gap:12px;font-size:13px;color:var(--dim);margin-bottom:8px}
	body[data-static-review="1"] .userbar{display:none}
.userbar a,.userbar button{color:var(--brand);font-weight:700;font-size:13px;background:none;border:none;cursor:pointer;text-decoration:none;padding:0}
pre.journal{background:#22262b;color:#d7e0ea;border-radius:12px;padding:14px;font-size:12px;overflow-x:auto;max-height:360px}
.foot{color:var(--dim);font-size:12.5px;margin-top:40px;text-align:center}
details.gloss{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 18px;margin:8px 0}
details.gloss summary{font-weight:700;cursor:pointer;font-size:14.5px}
details.gloss p{margin:8px 0 2px;font-size:14px;color:#3d434b}
/* ============ PHONE-FIRST (E1) — client is phone-only ============ */
@media (max-width:640px){
  .bar-lbl{width:104px;font-size:12px}
  .binder-body{padding:14px 12px}
  .tabs{position:sticky;top:0;margin:0 -12px 0;display:flex;gap:4px;
    background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 2px 8px rgba(0,0,0,.05);
    padding:8px 12px 0}
  .tab{flex:0 0 auto;text-align:center;font-size:11px;padding:9px 12px 8px;min-height:44px}
  .tab .tlbl{display:none}
  .tab .tshort{display:inline;font-weight:700}
  .tab .num{font-size:11px;font-weight:800}
  /* commentary: inline annotation below bubble, never hidden */
  .exh{flex-direction:column}
  .bubblecol{max-width:100%}
  .margin-note{max-width:100%;width:auto;margin:6px 0 2px 12px;padding:8px 12px;
    border-left:3px solid var(--gold,#c8952a);background:#fdf8ec;font-size:13px;border-radius:0 8px 8px 0}
  .margin-note[style*="visibility:hidden"]{display:none}
  /* tables: self-contained scroll, page never scrolls sideways */
  .panel table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  .panel td,.panel th{padding:10px 8px;font-size:13px}
  /* tap targets */
  button,.btn,.tab,summary,input[type=submit]{min-height:44px}
  .btn{padding:12px 18px;font-size:15px}
  details summary{padding:12px 4px}
  textarea,input[type=text],input[type=password],input[type=email]{font-size:16px;min-height:44px} /* 16px stops iOS zoom */
  /* stamps smaller so they don't collide */
  .stamp{font-size:9px}
  h1{font-size:20px}
  .caption-head{font-size:12px}
}
@media (min-width:641px){ .tab .tshort{display:none} }
html,body{overflow-x:hidden}
