/* Endstar Brief. The one home for the app's visual system.
   Tokens and rules are the approved design canvas's, lifted from
   projects/endstar-brief/design/build.py so the app and the artboards cannot
   drift. Endless theme: Figtree headings, DM Sans body, orange #ff6b00. */

    :root {
      --ink:#252129; --ink2:#55505c; --ink3:#6c6775; --ink4:#8a8592;
      --line:rgba(37,33,41,0.14); --line2:rgba(37,33,41,0.28);
      --paper:#ffffff; --stone:#f6f5f3; --peach:#fdf1ea; --peach2:#ffe3cf;
      --orange:#ff6b00; --orange-deep:#c25200; --on-orange:#2b1400;
      --ok:#1f8a4c; --warn:#a86a00; --bad:#c62348; --need:#6b4fbb; --need-bg:#f4f1fb; --hold:#8a8592;
      --h:'Figtree', 'Segoe UI', system-ui, sans-serif;
      --b:'DM Sans', 'Segoe UI', system-ui, sans-serif;
    }
    * { box-sizing:border-box; }
    body { margin:0; font-family:var(--b); color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; }
    a { color:var(--orange-deep); text-decoration:none; } a:hover { color:var(--orange); }
    h1,h2,h3,h4 { font-family:var(--h); margin:0; letter-spacing:-0.01em; }
    p { margin:0; }
    .phone { width:390px; background:var(--paper); display:flex; flex-direction:column; }
    .topbar { display:flex; align-items:center; justify-content:space-between; padding:14px 16px 10px 16px; border-bottom:1px solid var(--line); background:var(--paper); }
    .tb-title { font-family:var(--h); font-weight:700; font-size:15px; color:var(--ink); }
    .tb-sub { font-size:12px; color:var(--ink3); }
    .pad { padding:0 16px; }
    .card { background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:14px 14px; }
    .card.peach { background:var(--peach); border-color:var(--peach2); }
    .card.stone { background:var(--stone); border-color:transparent; }
    .card.need { background:var(--need-bg); border-color:var(--need); }
    .eyebrow { font-family:var(--b); font-weight:600; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--orange-deep); }
    .eyebrow.ink { color:var(--ink3); }
    .eyebrow.need { color:var(--need); }
    .h-card { font-family:var(--h); font-weight:700; font-size:17px; line-height:1.25; color:var(--ink); }
    .h-page { font-family:var(--h); font-weight:800; font-size:22px; line-height:1.2; color:var(--ink); }
    .body { font-size:14.5px; line-height:1.45; color:var(--ink2); }
    .small { font-size:12.5px; line-height:1.4; color:var(--ink3); }
    .tiny { font-size:11.5px; color:var(--ink4); }
    .row { display:flex; align-items:center; gap:10px; }
    .stack { display:flex; flex-direction:column; gap:10px; }
    .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--h); font-weight:700; font-size:14px; height:44px; padding:0 16px; border-radius:10px; border:1px solid transparent; }
    .btn.cta { background:var(--ink); color:#fff; }
    .btn.accent { background:var(--orange); color:var(--on-orange); }
    .btn.ghost { background:var(--paper); color:var(--ink); border-color:var(--line2); }
    .btn.soft { background:var(--stone); color:var(--ink); }
    .chip { display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 10px; border-radius:999px; background:var(--stone); font-size:12.5px; font-weight:600; color:var(--ink2); white-space:nowrap; }
    .chip.link { background:var(--peach); color:var(--orange-deep); border:1px solid var(--peach2); }
    .chip.need { background:var(--need-bg); color:var(--need); border:1px solid var(--need); }
    .status { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; white-space:nowrap; }
    .status svg { width:11px; height:11px; flex:none; }
    .st-ok { color:var(--ok); } .st-warn { color:var(--warn); } .st-bad { color:var(--bad); } .st-need { color:var(--need); } .st-hold { color:var(--hold); }
    .divider { display:flex; align-items:center; gap:10px; margin:6px 0; }
    .divider .ln { flex:1; height:1px; background:var(--orange); opacity:0.6; }
    .divider .lb { font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--orange-deep); }
    .dot-new { width:8px; height:8px; border-radius:50%; background:var(--orange); flex:none; }
    .avatar { width:26px; height:26px; border-radius:50%; background:var(--ink); color:#fff; font-family:var(--h); font-weight:700; font-size:11px; display:flex; align-items:center; justify-content:center; flex:none; }
    .avatar.o { background:var(--orange); color:var(--on-orange); }
    .react { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:6px; }
    .react .r { height:40px; border-radius:9px; border:1px solid var(--line2); background:var(--paper); font-family:var(--h); font-weight:700; font-size:11.5px; color:var(--ink); display:flex; align-items:center; justify-content:center; text-align:center; line-height:1.1; padding:0 4px; }
    .react .r.on { background:var(--ink); color:#fff; border-color:var(--ink); }
    .react .r.need { border-color:var(--need); color:var(--need); }
    .notefield { margin-top:8px; border:1.5px solid var(--ink); border-radius:9px; padding:9px 11px; font-size:14px; color:var(--ink); background:var(--paper); display:flex; justify-content:space-between; gap:8px; align-items:center; }
    .notefield .send { font-family:var(--h); font-weight:700; font-size:12.5px; color:var(--orange-deep); white-space:nowrap; }
    .answered { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; color:var(--ok); }
    .img { border-radius:10px; background:linear-gradient(135deg,#efe9e3,#e2d9d1); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--ink3); font-size:12px; font-weight:600; }
    .table { width:100%; border-collapse:collapse; font-size:13px; }
    .table td, .table th { padding:8px 6px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
    .table th { font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink3); font-weight:600; }
    .note { font-size:12px; color:var(--ink3); background:var(--stone); border-radius:8px; padding:8px 10px; }
    .legend { font-size:11.5px; color:var(--ink3); display:flex; gap:10px; flex-wrap:wrap; }

    /* Layout the artboards imply but do not state, because an artboard is a
       fixed 390px frame and a phone is not. */
    body { background:var(--stone); }
    .phone { width:100%; max-width:430px; margin:0 auto; min-height:100vh; }
    .topbar { position:sticky; top:0; z-index:5; }
    a.plain { color:inherit; text-decoration:none; display:block; }
    .slist { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--paper); }
    .srow { display:flex; align-items:center; gap:10px; padding:11px 12px; border-bottom:1px solid var(--line); background:var(--paper); }
    .srow:last-child { border-bottom:none; }
    .sname { font-family:var(--h); font-weight:700; font-size:14.5px; color:var(--ink); }
    .thread { margin-top:12px; padding-top:10px; border-top:1px dashed var(--line2); }
    .keybar { position:sticky; bottom:0; z-index:6; background:var(--ink); color:#fff; padding:12px 16px; display:flex; align-items:center; gap:12px; }
    .keybar .kb-txt { font-size:12.5px; line-height:1.35; flex:1; }
    .keybar button { font-family:var(--h); font-weight:700; font-size:13px; height:38px; padding:0 16px; border-radius:9px; border:none; background:var(--orange); color:var(--on-orange); }
    .btn { cursor:pointer; }
