@import url("../tokens.css");

/* ============================================================
   Tarn stub shell — shared skin for the throwaway flow-demo pages
   (enter / dreamer / queue). Matches tarn.html's still-water skin.
   Dummy data only; no backend. Not the real app.
   Design tokens (:root) live in ../tokens.css — do not redeclare here.
   ============================================================ */
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
::selection{background:var(--accent-wash)}

/* ---------- topbar ---------- */
.topbar{display:flex;align-items:center;gap:14px;padding:0 20px;height:52px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:baseline;gap:8px;text-decoration:none}
.brand b{position:relative;font-family:var(--serif);font-size:17.5px;letter-spacing:-.005em;font-weight:600;color:var(--accent);padding-bottom:5px;text-transform:lowercase}
.brand b::after{content:"";position:absolute;left:-5%;right:-5%;bottom:2px;height:1px;background:linear-gradient(90deg,transparent,var(--accent-line) 22%,var(--accent-line) 78%,transparent)}
.brand span{color:var(--muted);font-size:12.5px}
.proto{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.09em;color:var(--accent-ink);background:var(--accent-wash);border:1px solid var(--accent-line);padding:3px 8px;border-radius:99px;white-space:nowrap;text-decoration:none}
.topbar-sp{flex:1}
.who{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--muted)}
.who .role{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-wash);border:1px solid var(--accent-line);padding:2px 8px;border-radius:99px}
.who a{color:var(--faint);text-decoration:none;font-size:12px}
.who a:hover{color:var(--ink)}
.who form.logout{display:inline;margin:0;padding:0;border:0;background:none}
.who .logout-btn{font:inherit;font-size:12px;color:var(--faint);background:none;border:0;padding:0;cursor:pointer}
.who .logout-btn:hover{color:var(--ink)}

/* ---------- page frame ---------- */
.wrap{max-width:960px;margin:0 auto;padding:26px 20px 80px}
/* document pages (pricing, ethics, terms, privacy) read as a single column;
   snug the wrap to the reading measure so the column centers on the page
   instead of hugging the left with a lopsided empty right. App pages have no
   .doc, so :has scopes this to document pages only. */
.wrap:has(.doc){max-width:700px}
.page-h{margin:0 0 4px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);font-weight:600;display:block;margin-bottom:6px}
.page-h h1{margin:0 0 6px;font-size:23px;font-weight:650;letter-spacing:-.02em}
.page-h p{margin:0;color:var(--muted);font-size:13.5px;max-width:64ch}

/* ---------- toolbar (toggles + count) ---------- */
.toolbar{display:flex;align-items:center;gap:12px;margin:20px 0 14px;flex-wrap:wrap}
.toolbar-sp{flex:1}
.count{font-family:var(--mono);font-size:11px;color:var(--muted)}
.seg{display:inline-flex;background:var(--sink);border-radius:var(--radius-s);padding:2px;gap:2px;border:1px solid var(--line)}
.seg button{background:none;border:none;padding:6px 13px;border-radius:5px;cursor:pointer;font-size:12px;font-weight:600;color:var(--muted);transition:all .14s ease;white-space:nowrap}
.seg button[aria-pressed="true"]{background:var(--panel);color:var(--accent-ink);box-shadow:var(--shadow)}
.seg button:hover[aria-pressed="false"]{color:var(--ink)}

/* ---------- group header (by-dreamer view) ---------- */
.group{margin-bottom:22px}
.group-h{display:flex;align-items:baseline;gap:10px;padding:0 2px 8px;border-bottom:1px solid var(--line);margin-bottom:10px}
.group-h .name{font-size:14px;font-weight:650;letter-spacing:-.01em}
.group-h .meta{font-size:12px;color:var(--muted)}
.group-h .motif{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--faint);background:var(--sink);border:1px dashed var(--line-2);padding:2px 8px;border-radius:99px}

/* ---------- queue cards ---------- */
.queue{display:flex;flex-direction:column;gap:10px}
.qcard{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:13px 16px;text-decoration:none;color:inherit;transition:border-color .13s ease,box-shadow .13s ease,transform .08s ease}
.qcard:hover{border-color:var(--line-2);box-shadow:var(--shadow-2)}
.qcard:active{transform:translateY(.5px)}
.qcard-main{min-width:0;flex:1}
.qcard-t{font-size:14px;font-weight:650;letter-spacing:-.01em;color:var(--ink)}
.qcard-s{font-size:12px;color:var(--muted);margin-top:3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.qcard-s .dreamer{color:var(--ink-2);font-weight:600}
.qcard-date{font-family:var(--mono);font-size:11px;color:var(--faint);flex:none}
.qcard-go{flex:none;font-size:12.5px;font-weight:600;color:var(--accent-ink);display:flex;align-items:center;gap:5px}
.qcard-go svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none}

/* ---------- status pill ---------- */
.pill{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:99px;white-space:nowrap;border:1px solid transparent}
.pill.submitted{background:var(--warn-wash);color:#6d4715;border-color:#e6d3ae}
.pill.reflected{background:var(--sink);color:var(--muted);border-color:var(--line)}
.pill.prep{background:var(--accent-wash);color:var(--accent-ink);border-color:var(--accent-line)}
.pill.prepped{background:var(--accent);color:#fff;border-color:var(--accent)}
.pill.done{background:#eef0ef;color:var(--faint);border-color:var(--line)}

/* ---------- pipeline legend ---------- */
.legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--faint);margin-top:14px}
.legend .sep{width:12px;height:1px;background:var(--line-2)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--control-line);border-radius:var(--radius-s);padding:8px 15px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink);text-decoration:none;transition:background .13s ease,border-color .13s ease}
.btn:hover{background:var(--sink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.btn.big{padding:11px 20px;font-size:14px}

/* ---------- empty / notes ---------- */
.empty{font-size:12.5px;color:var(--faint);border:1px dashed var(--line-2);border-radius:var(--radius);padding:22px;text-align:center;line-height:1.5}
.demo-note{font-size:11.5px;color:var(--muted);background:var(--sink);border:1px solid var(--line);border-radius:var(--radius-s);padding:9px 12px;margin-top:20px;line-height:1.5}
.demo-note b{color:var(--ink-2)}

/* ---------- doc pages (privacy / terms / contact / reflector) ---------- */
.backlink{display:inline-block;margin-bottom:18px;font-size:12.5px;color:var(--muted);text-decoration:none}
.backlink:hover{color:var(--ink)}
.doc{max-width:66ch}
.draft-flag{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--warn);background:var(--warn-wash);border:1px solid #e6d3ae;padding:3px 9px;border-radius:99px;margin-bottom:18px;white-space:nowrap}
.doc h2{font-size:15px;font-weight:650;letter-spacing:-.01em;margin:26px 0 8px;color:var(--ink)}
.doc p{margin:0 0 12px;font-size:14px;line-height:1.65;color:var(--ink-2)}
.doc ul{margin:0 0 12px;padding-left:20px}
.doc li{margin-bottom:6px;font-size:14px;line-height:1.6;color:var(--ink-2)}
.doc a{color:var(--accent-ink)}
.doc .updated{font-size:12px;color:var(--faint);margin-top:26px;font-family:var(--mono);letter-spacing:.03em}
.name-list{list-style:none;margin:10px 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}
.name-list li{display:flex;gap:12px;align-items:baseline;border:1px solid var(--line);border-radius:var(--radius-s);padding:10px 13px;background:var(--panel);box-shadow:var(--shadow)}
.name-list .nm{font-family:var(--serif);font-size:15px;font-weight:600;color:var(--accent-ink);flex:none;min-width:9ch}
.name-list .gl{font-size:13px;color:var(--muted);line-height:1.5}

/* ---------- footer (marketing, shared across pages) ---------- */
.foot{border-top:1px solid var(--line);padding:20px 0 0;margin-top:48px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--faint)}
.foot .foot-meta{font-family:var(--mono);font-size:11px;letter-spacing:.04em}
.foot-links{display:flex;gap:16px;flex-wrap:wrap}
.foot-links a{color:var(--faint);text-decoration:none;font-size:12px}
.foot-links a:hover{color:var(--ink)}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}
