/* home.css — extracted from index.html (Phase 0 frontend split).
   Screen-specific styles for the chat/home SPA. Loaded after zahra.css
   in {% block head %}, so cascade order is identical to the old inline block. */
  body{display:flex;height:100dvh;overflow:hidden;background:var(--bg)}
  /* ── sidebar (Perplexity/Claude-style) ── */
  .sidebar{width:248px;flex:none;display:flex;flex-direction:column;background:var(--surface);
    border-right:1px solid var(--line);padding:14px 12px}
  .sb-brand{display:flex;align-items:center;gap:9px;font:700 18px/1 var(--serif);letter-spacing:-.3px;
    color:var(--ink);text-decoration:none;padding:4px 8px 12px}
  .sb-brand .z-mark{width:30px;height:30px;font-size:16px}
  .sb-new{display:flex;align-items:center;justify-content:center;gap:7px;background:var(--primary);color:#fff;
    border:none;border-radius:12px;padding:12px 13px;font:600 14.5px/1 var(--sans);cursor:pointer;margin-bottom:6px}
  .sb-new:hover{background:var(--primary-press)}
  .sb-link{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;border-radius:10px;
    padding:9px 11px;font-size:14px;cursor:pointer;border:none;background:none;width:100%;text-align:left}
  .sb-link:hover{background:var(--accent-soft)}
  .sb-link svg{width:17px;height:17px;color:var(--muted);flex:none}
  .sb-sec{font:700 10px/1 var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);padding:16px 11px 6px}
  .sb-hist{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:1px;min-height:40px}
  .sb-hist .h{color:var(--muted);font-size:13px;padding:7px 11px;border-radius:8px;cursor:pointer;border:none;
    background:none;width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sb-hist .h:hover{background:var(--accent-soft);color:var(--ink)}
  .sb-empty{color:var(--muted);font-size:12.5px;padding:6px 11px}
  .sb-foot{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:11px 11px 4px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
  .app{flex:1;display:flex;flex-direction:column;min-width:0;height:100dvh}
  .topbar{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--line)}
  .topbar .menu{display:none;background:none;border:none;font-size:20px;cursor:pointer;color:var(--ink);padding:0}
  .topbar .tb-title{font:600 14px/1 var(--sans)}
  .topbar .sp{flex:1}
  @media(max-width:820px){
    .sidebar{position:fixed;inset:0 auto 0 0;z-index:40;transform:translateX(-100%);transition:transform .22s;box-shadow:0 10px 50px rgba(28,17,22,.25)}
    body.sb-open .sidebar{transform:none}
    .scrim{position:fixed;inset:0;background:rgba(28,17,22,.4);z-index:39;opacity:0;pointer-events:none;transition:.2s}
    body.sb-open .scrim{opacity:1;pointer-events:auto}
    .topbar .menu{display:block}
  }
  @media(min-width:821px){.scrim{display:none}}

  /* HOME hero */
  #home{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:18px 18px 28px;text-align:center;gap:11px}
  .hero-lockup{display:flex;align-items:center;gap:15px}
  .hero-bloom{display:block;width:56px;height:56px}
  .wordmark{font:700 clamp(34px,8vw,46px)/.95 var(--serif);letter-spacing:-1px;margin:0}
  .signature{font:600 13px/1 var(--sans);letter-spacing:.04em;color:var(--accent-2);margin:0;text-transform:none}
  /* returning-user welcome-back banner */
  .wb{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;text-align:left}
  .wb-h{font:700 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2)}
  .wb-t{font:600 17px/1.3 var(--serif);margin:5px 0 12px}
  .wb-row{display:flex;gap:9px;flex-wrap:wrap}
  .tagline{color:var(--muted);font-size:14.5px;max-width:460px;margin:0 0 6px;line-height:1.6}
  .coming-card{display:flex;align-items:center;gap:11px;margin-top:12px;width:100%;max-width:480px;text-align:left;
    background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;cursor:pointer;color:var(--ink);font:inherit}
  .coming-card:hover{border-color:var(--accent)}
  .coming-card svg{width:22px;height:22px;color:var(--accent);flex:none}
  .coming-card .cs-note{color:var(--muted);font-weight:400;font-size:12.5px}
  .heroform button svg{width:20px;height:20px}
  .herobox{width:100%;max-width:480px}
  .heroform{display:flex;align-items:center;gap:8px;background:var(--paper);border:1.5px solid var(--line);
    border-radius:16px;padding:6px 6px 6px 16px;box-shadow:var(--shadow)}
  .heroform:focus-within{border-color:var(--accent)}
  .heroform input{flex:1;border:none;background:none;font:inherit;font-size:15.5px;padding:9px 0;outline:none;color:var(--ink)}
  .heroform button{flex:none;width:42px;height:42px;border-radius:12px;border:none;background:var(--primary);color:#fff;
    font-size:18px;cursor:pointer}
  .heroform button:active{background:var(--primary-press)}
  .cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;width:100%;max-width:560px;margin-top:6px}
  @media(max-width:560px){.cards{grid-template-columns:1fr}}
  .card{display:flex;flex-direction:column;gap:3px;text-align:left;background:var(--paper);
    border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;text-decoration:none;color:inherit}
  .card:hover{border-color:var(--accent);box-shadow:var(--shadow)}
  .card .ic{width:20px;height:20px;color:var(--accent)}
  .card .t{font-weight:600;font-size:14.5px}
  .card .s{color:var(--muted);font-size:12.5px;line-height:1.4}
  .home-foot{color:var(--muted);font-size:12px;line-height:1.6;max-width:420px}
  .home-foot a{color:var(--accent-2)}
  .minirow{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:2px}
  .mini{background:none;border:none;color:var(--muted);font-size:12.5px;cursor:pointer;text-decoration:underline;padding:2px 4px}

  /* CONVERSATION thread (hidden until started) */
  #thread{flex:1;overflow-y:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:11px;width:100%;max-width:760px;margin:0 auto}
  .row{display:flex}.row.me{justify-content:flex-end}
  .bubble{max-width:88%;padding:12px 15px;border-radius:16px;font-size:15px;line-height:1.55;white-space:pre-wrap}
  .row.zahra .bubble{background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:6px;
    color:var(--ink);box-shadow:0 1px 2px rgba(28,17,22,.04),0 10px 26px rgba(28,17,22,.05)}
  .row.me .bubble{background:#f0ecf3;color:var(--ink);border-bottom-right-radius:6px}
  .bubble.saved{background:var(--accent-soft);border:1px solid #ddd0ec;color:var(--accent-2);font-weight:500}
  .bubble.saved a{color:var(--accent-2);font-weight:700}
  .typing .bubble{display:flex;gap:4px;align-items:center;padding:14px 15px}
  .typing span{width:7px;height:7px;border-radius:50%;background:#cdc2d6;animation:b 1.2s infinite}
  .typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
  @keyframes b{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
  .typing .st{font-size:12px;color:var(--muted);margin-left:2px}
  .card-head{background:var(--accent-soft);padding:8px 13px;font-size:12px;color:var(--accent-2);font-weight:600}

  .inputwrap{border-top:1px solid var(--line);background:var(--bg)}
  #f{display:flex;gap:8px;padding:12px 16px;align-items:flex-end;width:100%;max-width:760px;margin:0 auto}
  #msg{flex:1;border:1px solid var(--line);border-radius:22px;padding:11px 15px;font:inherit;resize:none;max-height:120px;background:var(--cream)}
  #msg:focus{outline:none;border-color:var(--accent)}
  .send{flex:none;width:44px;height:44px;border-radius:50%;border:none;background:var(--primary);color:#fff;font-size:19px;cursor:pointer}
  .send:disabled{opacity:.5}
  .cmini{background:none;border:none;color:var(--muted);font-size:11px;cursor:pointer;text-decoration:underline;padding:0}
  .cmini:hover{color:var(--ink)}

  /* ── two-pane workspace: conversation + "Your skin, understood" artifact ── */
  .work{flex:1;display:flex;min-height:0;overflow:hidden;position:relative}
  .convo{flex:1;display:flex;flex-direction:column;min-width:0}
  #artifact{flex:none;width:0;background:var(--surface);border-left:1px solid var(--line);
    overflow:hidden;display:flex;flex-direction:column;transition:width .28s cubic-bezier(.2,.8,.2,1)}
  body.art-open #artifact{width:392px}
  .art-head{display:flex;align-items:center;gap:8px;padding:13px 16px;border-bottom:1px solid var(--line);flex:none}
  .art-head .k{font:700 10px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2)}
  .art-head .t{font:600 15px/1.1 var(--serif);color:var(--ink)}
  .art-head .x{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--muted);font-size:18px;
    width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center}
  .art-head .x:hover{background:var(--accent-soft);color:var(--accent-2)}
  .art-body{overflow-y:auto;padding:14px 16px 20px;flex:1;display:flex;flex-direction:column;gap:14px}
  .art-meta{font-size:12.5px;color:var(--muted)}
  .art-actions{display:flex;flex-wrap:wrap;gap:8px}
  /* profile — "What I understand about you" */
  .profile{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px}
  .profile h4{margin:0 0 8px;font:700 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .profile dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:13.5px}
  .profile dt{color:var(--muted)}.profile dd{margin:0;color:var(--ink);font-weight:500;text-transform:capitalize}
  .profile .pfoot{margin-top:10px;display:flex;gap:14px}
  /* the "Open Your skin" CTA shown inline in chat (mobile + as anchor) */
  .open-art{display:flex;align-items:center;gap:10px;background:var(--accent-soft);border:1px solid #ddd0ec;
    border-radius:var(--r);padding:11px 14px;color:var(--accent-2);font-weight:600;cursor:pointer;width:100%;
    text-align:left;font:600 14px/1.3 var(--sans)}
  .open-art svg{width:18px;height:18px;flex:none}
  .open-art .sub{font-weight:400;color:var(--muted);font-size:12.5px}
  /* "Updated" pill — fades in, holds, fades out */
  .upd-pill{position:absolute;top:10px;left:50%;transform:translate(-50%,-6px);background:var(--ink);color:#fff;
    font:600 12px/1 var(--sans);padding:8px 14px;border-radius:999px;box-shadow:var(--shadow);z-index:8;
    opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
  .upd-pill.show{opacity:1;transform:translate(-50%,0)}
  body.art-open #artifact.flash{animation:artflash 1.1s ease}
  @keyframes artflash{0%{background:var(--accent-soft)}100%{background:var(--surface)}}
  /* suggestion chips after answers */
  .suggest{display:flex;flex-wrap:wrap;gap:7px;align-self:flex-start;margin:2px 0 4px 2px}

  /* ── tabbed artifact: header + profile chips + meter + tabs + body + footer ── */
  #artifact .art-head{padding:18px 20px 12px}
  .art-title .k{font:700 10px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2)}
  .art-title .t{font:600 19px/1 var(--serif);color:var(--ink);margin-top:2px}
  .art-top{padding:0 20px 16px;flex:none}
  .pchips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
  .pchip{font:600 11.5px/1 var(--sans);color:var(--ink);background:#f0ecf3;border-radius:999px;padding:7px 11px;text-transform:capitalize}
  /* journey card — calm, one block (was 4 stacked rows) */
  .aj{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
  .aj-h{font:700 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);margin-bottom:6px}
  .aj-goal{font:600 17px/1.3 var(--serif);color:var(--ink);text-transform:capitalize}
  .aj-when{font-size:11.5px;color:var(--muted);margin-top:7px}
  .art-tabs{display:flex;gap:2px;padding:0 14px;border-bottom:1px solid var(--line);flex:none}
  .art-tab{appearance:none;background:none;border:none;cursor:pointer;padding:11px 11px;font:600 13px/1 var(--sans);
    color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
  .art-tab:hover{color:var(--ink)}
  .art-tab.on{color:var(--ink);border-bottom-color:var(--accent)}
  #artifact .art-body{padding:20px;gap:0}
  .art-foot{flex:none;border-top:1px solid var(--line);padding:11px 14px;display:flex;gap:8px;align-items:center;background:var(--surface)}
  .art-foot .z-btn{padding:10px 13px;font-size:13.5px}
  .art-foot .more{margin-left:auto;background:none;border:1px solid var(--line);border-radius:10px;width:38px;height:38px;cursor:pointer;color:var(--muted);font-size:18px}

  /* routine: AM/PM segmented + progressive-disclosure steps */
  .rt-seg{display:inline-flex;background:#f0ecf3;border-radius:10px;padding:3px;gap:2px}
  .rt-seg button{appearance:none;border:none;background:none;cursor:pointer;border-radius:8px;padding:7px 16px;font:600 13px/1 var(--sans);color:var(--muted)}
  .rt-seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(30,17,22,.08)}
  .rt-summary{color:var(--muted);font-size:12.5px;margin:10px 2px 8px}
  .rt-steps{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
  .rt-step+.rt-step{border-top:1px solid var(--line-soft)}
  .rt-row{width:100%;display:flex;align-items:center;gap:11px;background:#fff;border:none;cursor:pointer;
    padding:12px 13px;text-align:left;font:inherit;color:var(--ink)}
  .rt-row:hover{background:var(--surface)}
  .rt-row .num{flex:none;width:22px;height:22px;border-radius:50%;background:#f0ecf3;color:var(--ink);
    font:700 11px/22px var(--sans);text-align:center}
  .rt-row .lbl{flex:1;font-weight:600;font-size:14.5px}
  .rt-row .lbl em{font-style:normal;color:var(--accent-2);font-weight:600}
  .rt-row .chev{flex:none;color:var(--muted);transition:transform .2s}
  .rt-step.open .rt-row .chev{transform:rotate(90deg)}
  .rt-detail{padding:0 14px 13px 46px;font-size:13.5px;color:var(--muted)}
  .rt-detail .why{margin-bottom:7px}
  .rt-empty,.jr-empty{color:var(--muted);font-size:13.5px;text-align:center;padding:22px 8px}
  /* journal */
  .jr-add{display:flex;gap:8px;margin-bottom:12px}
  .jr-add input{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;background:#fff}
  .jr-add input:focus{outline:none;border-color:var(--accent)}
  .jr-entry{border-left:2px solid var(--accent-soft);padding:4px 0 8px 12px;margin-bottom:8px}
  .jr-entry .when{font-size:11.5px;color:var(--muted)}
  .jr-entry .what{font-size:14px}
  /* "Get ready with Zahra" coming-soon strip */
  .grwz-strip{width:100%;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;
    background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:16px;color:var(--accent-2);font:inherit}
  .grwz-strip:hover{border-color:var(--accent);background:var(--surface)}
  .grwz-strip svg{width:22px;height:22px;flex:none;color:var(--accent)}
  .grwz-strip b{font-size:14px;color:var(--ink)}
  .grwz-strip .cs{font-size:12px;color:var(--muted)}
  .grwz-strip:hover{border-color:var(--accent)}
  /* sidebar footnotes */
  .sb-notes{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:9px;font-size:11.5px}
  .sb-notes a{color:var(--muted);text-decoration:none;cursor:pointer}
  .sb-notes a:hover{color:var(--ink)}

  /* The Ritual CSS now lives in shared zahra.css (used by chat + /r share page). */

  @media(max-width:920px){
    /* artifact becomes a slide-up sheet on top of the conversation */
    #artifact{position:fixed;inset:auto 0 0 0;width:100%!important;max-height:88vh;z-index:38;
      border-left:none;border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:var(--shadow-lg);
      transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
    body.art-open #artifact{transform:translateY(0)}
    .upd-pill{position:fixed;top:auto;bottom:calc(88vh + 10px)}
  }
