
*{box-sizing:border-box}
:root{
  color-scheme:light;
  --paper:#FCFBF9; --surface:#FFFFFF; --raised:#FFFFFF;
  --ink:#4B463F; --muted:#978E81; --faint:#C6BEB2; --line:#F3F0EA;
  --accent:#5A8B7C; --accent-ink:#5A8B7C20; --accent-wash:#5A8B7C0C;
  --amber:#B98C52; --amber-wash:#B98C520F;
  --clay:#C2806E; --clay-wash:#C2806E0E; --good:#6AA081;
  --shadow:0 1px 2px rgba(75,65,50,.025),0 14px 34px -24px rgba(75,65,50,.10);
  --radius:22px; --radius-sm:15px;
  --serif:"Iowan Old Style","Charter","Palatino Linotype","Palatino","Georgia",serif;
  --sans:"Avenir Next","Avenir","Segoe UI",system-ui,-apple-system,Helvetica,sans-serif;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.65;
  font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(1100px 560px at 86% -12%,var(--accent-wash),transparent 60%),
  radial-gradient(820px 460px at -12% 112%,var(--amber-wash),transparent 55%)}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}
::selection{background:var(--accent-ink)}
:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-wash);border-radius:8px}

.app{max-width:680px;margin:0 auto;padding:0 18px 36px}
.topbar{position:sticky;top:0;z-index:20;background:var(--paper);
  border-bottom:1px solid var(--line);margin:0 -18px;padding:0 18px}
.brandrow{display:flex;align-items:center;gap:.55rem;padding:13px 0 7px}
.brand{font-family:var(--serif);font-weight:600;font-size:1.3rem;letter-spacing:.2px;
  display:flex;align-items:center;gap:.5rem;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-wash)}
.sp{flex:1}
.whoami{font-size:.8rem;color:var(--muted)} .whoami a{color:var(--muted)}

h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.25;margin:1.8rem 0 .65rem;letter-spacing:.2px}
h3{font-size:1.18rem} h4{font-size:1.02rem;margin:.6rem 0 .15rem}
p{margin:.5rem 0}
.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .45rem}
.meta{font-size:.74rem;color:var(--faint);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .lede{color:var(--muted);font-size:.95rem;margin:.1rem 0 1rem}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;margin:16px 0;box-shadow:var(--shadow)}
.dispatch{background:var(--raised);border:1px solid var(--line);
  border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow)}
.dispatch .doc{font-family:var(--serif);font-size:1.07rem;line-height:1.62}
.dispatch .doc strong{font-family:var(--sans);font-weight:700;font-size:.8rem;letter-spacing:.04em;color:var(--accent)}

.pill{display:inline-flex;align-items:center;gap:.3rem;font-size:.71rem;font-weight:600;
  padding:.18rem .55rem;border-radius:999px;background:var(--accent-wash);color:var(--accent);white-space:nowrap}
.pill.warn{background:var(--amber-wash);color:var(--amber)}
.pill.mute{background:color-mix(in srgb,var(--muted) 13%,transparent);color:var(--muted)}
.pill.bad{background:var(--clay-wash);color:var(--clay)}

.conf{display:flex;align-items:center;gap:.55rem;margin:.5rem 0 .1rem}
.conf .bar{flex:1;height:6px;border-radius:999px;background:color-mix(in srgb,var(--muted) 16%,transparent);overflow:hidden}
.conf .bar i{display:block;height:100%;border-radius:999px;background:var(--accent)}
.conf .pct{font-size:.74rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:2.6rem;text-align:right}

.hyp h4{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline}
.evi{margin:.4rem 0 0;padding:0;list-style:none;font-size:.87rem}
.evi li{display:flex;gap:.4rem;color:var(--muted);margin:.18rem 0}
.evi .for{color:var(--good);font-weight:700} .evi .against{color:var(--clay);font-weight:700}
.rowline{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline;flex-wrap:wrap}

.thread{display:flex;flex-direction:column;gap:10px;margin:6px 0 150px}
.bubble{position:relative;max-width:88%;padding:11px 14px;border-radius:16px;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:var(--shadow);-webkit-user-select:text;user-select:text}
.bubfoot{display:flex;align-items:center;gap:.5rem;margin-top:.45rem;font-size:.6rem;opacity:.5}
.bubfoot .sp{flex:1} .bubfoot .stamp{color:inherit;font-variant-numeric:tabular-nums;white-space:nowrap}
.bubble:hover .bubfoot{opacity:.82}
.bubtool{font:inherit;font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;background:transparent;border:0;padding:1px 2px;cursor:pointer;color:inherit}
.bubtool:hover{text-decoration:underline}
.bubble.me .bubfoot{color:#ffffffcc}
.bubble.hl{box-shadow:0 0 0 3px var(--accent)}
.mdh{font-family:var(--serif);font-weight:600;font-size:1.03rem;line-height:1.3;margin:.6rem 0 .15rem}
.mdli{position:relative;padding-left:1.15em;margin:.12rem 0}
.mdli:before{content:"•";position:absolute;left:.25em;color:var(--accent)}
.mdsp{height:.5rem}
.mdh:first-child,.doc .mdh:first-child{margin-top:0}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:.55rem 0;max-width:100%;border:1px solid var(--line);border-radius:9px}
table.md{border-collapse:collapse;font-family:var(--sans);font-size:.82rem;line-height:1.35;min-width:100%}
table.md th,table.md td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:.35rem .55rem;text-align:left;white-space:nowrap;vertical-align:top}
table.md th{background:var(--accent-wash);font-weight:700}
table.md tr td:last-child,table.md tr th:last-child{border-right:0}
table.md tbody tr:last-child td{border-bottom:0}
table.md tbody tr:nth-child(even){background:color-mix(in srgb,var(--muted) 6%,transparent)}
.bubble .who{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.25rem}
.bubble.me{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px}
.bubble.me .who{color:#ffffffc0}
.bubble.panel{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:5px}
.bubble.panel .who{color:var(--accent)}
.bubble.sys{align-self:center;background:var(--clay-wash);color:var(--clay);font-size:.85rem}

input[type=text],input:not([type]),input[type=password],input[type=file],textarea,select{
  width:100%;font:inherit;font-size:1rem;background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin:.3rem 0}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-wash)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;cursor:pointer;font:inherit;font-weight:600;
  background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:999px;padding:11px 20px;
  transition:transform .08s,filter .15s}
.btn:hover{filter:brightness(1.06);text-decoration:none} .btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);filter:none}
.btn.block{width:100%} .btn-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.7rem 0}

.notice{border-radius:var(--radius-sm);padding:10px 14px;margin:10px 0;font-size:.9rem}
.notice.ok{background:color-mix(in srgb,var(--good) 13%,transparent);color:var(--good)}
.notice.warn{background:var(--amber-wash);color:var(--amber)}
.sys,.notice.err{display:block;background:var(--clay-wash);color:var(--clay);border-radius:var(--radius-sm);padding:10px 14px;margin:10px 0;font-size:.9rem}
.empty{color:var(--muted);text-align:center;padding:40px 14px;font-family:var(--serif);font-size:1.05rem}

details{margin:12px 0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
summary{cursor:pointer;padding:12px 16px;font-size:.82rem;font-weight:600;color:var(--muted);list-style:none}
summary::-webkit-details-marker{display:none}
summary::before{content:"›";display:inline-block;margin-right:.5rem;transition:transform .15s}
details[open] summary::before{transform:rotate(90deg)}
details .inner{padding:0 16px 16px;white-space:pre-wrap;color:var(--muted);font-size:.89rem;line-height:1.55}

.center{min-height:74vh;display:flex;flex-direction:column;justify-content:center;align-items:center}
.auth{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.auth h3{margin-top:0}

.hero .greet{font-family:var(--serif);font-size:1.95rem;margin:.3rem 0 .1rem}
.onething{background:var(--raised);border:1px solid var(--line);border-top:3px solid var(--accent);
  border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin:.6rem 0 1.2rem}
.onething .what{font-family:var(--serif);font-size:1.26rem;line-height:1.4;margin-top:.25rem}
.dq{display:block;margin:.55rem 0} .dq span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.15rem}
.dq input{margin:0}
.feel{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:.5rem 0}
.feel button{cursor:pointer;font:inherit;font-weight:600;padding:16px 8px;border-radius:var(--radius-sm);
  background:var(--surface);border:1px solid var(--line);color:var(--ink);transition:.12s}
.feel button:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}

.dock{position:fixed;left:0;right:0;bottom:0;z-index:15;
  background:var(--paper);border-top:1px solid var(--line)}
.dock-inner{max-width:680px;margin:0 auto;padding:8px 16px calc(8px + env(safe-area-inset-bottom))}
.dock-actions{display:flex;gap:6px;margin-bottom:7px}
.dock-actions form{margin:0} .dock-actions .btn{padding:6px 13px;font-size:.8rem}
.composer{display:flex;gap:8px;align-items:flex-end;margin:0}
.composer textarea{margin:0;resize:none;flex:1;min-height:54px;max-height:35vh;line-height:1.45;overflow-y:auto} .composer .btn{padding:11px 16px;align-self:stretch}

/* segmented sender toggle */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface)}
.seg input{position:absolute;width:0;opacity:0;pointer-events:none}
.seg label{padding:8px 15px;font-size:.84rem;font-weight:600;color:var(--muted);cursor:pointer;transition:.12s}
.seg input:checked+label{background:var(--accent);color:#fff}

/* in-stream dispatch (daily read / analysis inside Talk) */
.bubble.dispatch{align-self:stretch;max-width:100%;background:var(--raised);border:1px solid var(--line);border-left:3px solid var(--accent)}
.bubble.dispatch .who{color:var(--accent)}
.bubble.dispatch .doc{font-family:var(--serif);font-size:1.02rem;line-height:1.55;margin-top:.15rem}
.bubble.dispatch .doc strong{font-family:var(--sans);font-weight:700;font-size:.78rem;letter-spacing:.04em;color:var(--accent)}
.bubble.dispatch details{margin:.5rem 0 0;background:transparent;border:0}
.bubble.dispatch summary{padding:.35rem 0}

/* cabinet */
.folders{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:.5rem 0 1.2rem}
.folder{display:flex;justify-content:space-between;align-items:center;gap:.5rem;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;color:var(--ink);font-weight:600}
.folder:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.folder .n{font-size:.8rem;color:var(--faint)}
.searchbar{display:flex;gap:8px;margin:.3rem 0 1.1rem} .searchbar input{margin:0}

/* generative-UI visuals (search) */
figure.viz{margin:14px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;color:var(--accent)}
figure.viz figcaption{font-family:var(--sans);font-weight:600;font-size:.84rem;color:var(--ink);margin-bottom:.5rem}
.spark{width:100%;height:84px;display:block;color:var(--accent)} .spark circle{fill:var(--accent)}
.viz-ends{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);
  font-variant-numeric:tabular-nums;margin-top:.25rem}
.viz-t{width:100%;border-collapse:collapse;font-size:.86rem}
.viz-t th,.viz-t td{text-align:left;padding:6px 9px;border-bottom:1px solid var(--line);color:var(--ink)}
.viz-t th{color:var(--muted);font-weight:600}
.viz-tl{list-style:none;margin:0;padding:0;font-size:.9rem}
.viz-tl li{padding:.3rem 0;border-bottom:1px solid var(--line);color:var(--ink)}

.tabs{display:flex;gap:5px;padding:0 0 9px;overflow-x:auto}
.tab{display:inline-flex;align-items:center;gap:.4rem;padding:7px 14px;border-radius:999px;
  color:var(--muted);font-size:.84rem;font-weight:600;white-space:nowrap}
.tab svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tab:hover{color:var(--ink);text-decoration:none} .tab.active{background:var(--accent-wash);color:var(--accent)}

@keyframes rise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.app main>*{animation:rise .3s cubic-bezier(.2,.7,.2,1) both}
.app main>*:nth-child(2){animation-delay:.03s} .app main>*:nth-child(3){animation-delay:.06s}
.app main>*:nth-child(4){animation-delay:.09s} .app main>*:nth-child(n+5){animation-delay:.12s}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (min-width:560px){.app{padding-left:24px;padding-right:24px}}
