/* SIDEWIZE V4.1 — discovery flow (assessment, matches, preview, paywall) + member shell */

/* ---------- Form controls ---------- */
.field{display:grid;gap:8px;margin-bottom:var(--s3)}
.field__label{font-weight:600;font-size:1rem}
.field__help{font-size:var(--fs-sm);color:var(--muted)}
.field__err{display:none;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--danger)}
.field.is-invalid .field__err{display:flex}
.field.is-invalid .input,.field.is-invalid .rcards{--bd:var(--danger)}
.input,.select,.textarea{--bd:var(--line-2);width:100%;min-height:var(--ctl-h);padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--bd);background:var(--bg-2);font-size:1rem;transition:border-color var(--dur-1)}
.textarea{min-height:110px;resize:vertical;line-height:1.5}
.input:hover,.select:hover,.textarea:hover{border-color:var(--muted)}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.input-group{position:relative}
.input-group .pre{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.input-group .input{padding-left:30px}
.input-group .suf{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:var(--fs-sm)}
.why{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;color:var(--accent-ink);font-size:var(--fs-sm);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.why-box{display:none;font-size:var(--fs-sm);color:var(--ink-2);background:var(--surface-2);border-radius:var(--r-sm);padding:10px 12px}
.why-box.is-open{display:block}

/* radio cards */
.rcards{--bd:var(--line);display:grid;gap:10px;border-radius:var(--r-md)}
.rcards.g2{grid-template-columns:1fr}
@media (min-width:768px){.rcards.g2{grid-template-columns:1fr 1fr}}
.rcard{position:relative;display:flex;gap:14px;align-items:flex-start;padding:16px;min-height:64px;border:1px solid var(--bd);border-radius:var(--r-md);background:var(--surface);cursor:pointer;transition:border-color var(--dur-1),background var(--dur-1)}
.rcard:hover{border-color:var(--line-2);background:var(--surface-2)}
.rcard input{position:absolute;opacity:0;pointer-events:none}
.rcard__mark{flex:none;width:20px;height:20px;margin-top:2px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center}
.rcard--check .rcard__mark{border-radius:6px}
.rcard input:checked ~ .rcard__mark{border-color:var(--accent);background:var(--accent)}
.rcard input:checked ~ .rcard__mark::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--on-accent)}
.rcard--check input:checked ~ .rcard__mark::after{width:9px;height:5px;border-radius:0;background:none;border-left:2px solid var(--on-accent);border-bottom:2px solid var(--on-accent);transform:rotate(-45deg) translate(1px,-1px)}
.rcard:has(input:checked){border-color:var(--accent-line);background:var(--accent-soft)}
.rcard:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.rcard__t{font-weight:600;line-height:1.3}
.rcard__s{font-size:var(--fs-sm);color:var(--ink-2);margin-top:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0}
.chip span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--surface);font-size:var(--fs-sm);cursor:pointer;transition:all var(--dur-1)}
.chip input:checked + span{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}
.chip input:focus-visible + span{outline:2px solid var(--focus);outline-offset:2px}

/* ---------- Assessment shell ---------- */
.flow{min-height:calc(100vh - 68px);display:flex;flex-direction:column;background:var(--bg-2)}
.flow__top{border-bottom:1px solid var(--line);background:var(--bg)}
.flow__topin{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);height:60px}
.flow__save{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--muted)}
.flow__save .dot{width:8px;height:8px;border-radius:50%;background:var(--success)}
.progress{display:flex;gap:6px;margin:var(--s4) 0 var(--s2)}
.progress i{flex:1;height:4px;border-radius:4px;background:var(--surface-3);position:relative;overflow:hidden}
.progress i.is-done{background:var(--accent)}
.progress i.is-cur::after{content:"";position:absolute;inset:0;width:50%;background:var(--accent)}
.flow__meta{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em}
.flow__body{flex:1;padding-block:var(--s4) var(--s8)}
.flow__card{max-width:720px;margin-inline:auto}
.flow__q{margin:var(--s2) 0 var(--s1)}
.flow__bar{position:sticky;bottom:0;z-index:5;background:color-mix(in oklab,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.flow__barin{max-width:720px;margin-inline:auto;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding:12px var(--s3)}
.err-summary{display:none;margin-bottom:var(--s3);padding:var(--s2);border:1px solid var(--danger);background:var(--danger-soft);border-radius:var(--r-md);color:var(--ink);font-size:var(--fs-sm)}
.err-summary.is-on{display:block}

/* loading / generation */
.gen{max-width:560px;margin:var(--s7) auto;text-align:center}
.gen__ring{width:64px;height:64px;margin:0 auto var(--s3);border-radius:50%;border:3px solid var(--surface-3);border-top-color:var(--accent);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.gen__ring{animation:none;border-color:var(--accent)}}
.gen__list{list-style:none;display:grid;gap:10px;margin-top:var(--s4);text-align:left}
.gen__list li{display:flex;gap:12px;align-items:center;font-size:var(--fs-sm);color:var(--muted)}
.gen__list li.is-done{color:var(--ink)}
.gen__list li i{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2);flex:none}
.gen__list li.is-done i{background:var(--success);border-color:var(--success)}
.gen__list li.is-cur i{border-color:var(--accent);border-top-color:transparent;animation:spin 1s linear infinite}

/* skeleton */
.skel{background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:sk 1.4s linear infinite;border-radius:var(--r-sm)}
@keyframes sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion: reduce){.skel{animation:none}}

/* ---------- Match cards ---------- */
.matches{display:grid;gap:var(--s3)}
@media (min-width:1024px){.matches{grid-template-columns:repeat(3,1fr)}}
.match{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden}
.match--rec{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line),var(--e2)}
.match__role{display:flex;justify-content:space-between;align-items:center;padding:14px var(--s3);border-bottom:1px solid var(--line);background:var(--bg-2)}
.match--rec .match__role{background:var(--accent-soft)}
.match__body{padding:var(--s3);display:grid;gap:var(--s2);flex:1}
.match h3{font-size:1.25rem}
.scores{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.score{padding:12px;border-radius:var(--r-md);background:var(--bg-2);border:1px solid var(--line)}
.score__k{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.score__v{font-size:1.125rem;font-weight:600;margin-top:4px}
.score__b{font-size:12px;color:var(--ink-2);margin-top:2px}
.info-btn{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:var(--muted);font-size:11px;font-family:var(--font-serif);font-style:italic;cursor:pointer;display:grid;place-items:center}
.facts{display:grid;gap:0}
.facts div{display:flex;justify-content:space-between;gap:var(--s2);padding:9px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.facts dt{color:var(--muted)}
.facts dd{margin:0;text-align:right;font-weight:500}
.src{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.src b{font-weight:500;color:var(--ink-2)}
.src-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;padding:2px 6px;border-radius:4px;border:1px solid var(--line-2);color:var(--muted)}
.src-tag--sourced{color:var(--info);border-color:rgba(141,180,236,.4)}
.src-tag--assumed{color:var(--warning);border-color:rgba(233,180,76,.4)}
.match__foot{padding:var(--s3);border-top:1px solid var(--line);display:grid;gap:10px}

/* Evidence drawer */
.drawer{position:fixed;inset:0 0 0 auto;width:min(480px,100vw);z-index:110;background:var(--surface);border-left:1px solid var(--line-2);box-shadow:var(--e3);transform:translateX(100%);transition:transform var(--dur-3) var(--ease);display:flex;flex-direction:column}
.drawer.is-open{transform:none}
.drawer__head{display:flex;justify-content:space-between;align-items:center;padding:var(--s2) var(--s3);border-bottom:1px solid var(--line)}
.drawer__body{padding:var(--s3);overflow:auto;display:grid;gap:var(--s2)}
.scrim{position:fixed;inset:0;z-index:105;background:rgba(4,8,14,.6);display:none}
.scrim.is-on{display:block}
.evi{padding:var(--s2);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-2)}
.evi__t{font-weight:600;font-size:var(--fs-sm)}
.evi__m{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--muted)}

/* ---------- Preview / paywall ---------- */
.prev{display:grid;gap:var(--s4)}
@media (min-width:1024px){.prev{grid-template-columns:1fr 380px;gap:var(--s5);align-items:start}}
.prev__aside{position:sticky;top:92px}
.milestone{padding:var(--s3);border-radius:var(--r-lg);background:linear-gradient(135deg,var(--accent-soft),transparent 70%),var(--surface);border:1px solid var(--accent-line)}
.step3{counter-reset:s;list-style:none;display:grid;gap:10px}
.step3 li{counter-increment:s;display:grid;grid-template-columns:36px 1fr;gap:12px;padding:var(--s2);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.step3 li::before{content:counter(s,decimal-leading-zero);font-family:var(--font-mono);font-size:12px;color:var(--accent-ink);padding-top:3px}
.artifact{position:relative;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:var(--s2) var(--s3)}
.artifact.is-locked{overflow:hidden}
.artifact.is-locked .artifact__c{filter:blur(4px);user-select:none;pointer-events:none;opacity:.6}
.artifact__lock{position:absolute;inset:auto 0 0 0;padding:var(--s2) var(--s3);background:linear-gradient(transparent,var(--surface) 40%);display:flex;justify-content:space-between;align-items:center;gap:var(--s2)}
.paywall{border-radius:var(--r-xl);padding:var(--s4);background:var(--surface);border:1px solid var(--accent-line);box-shadow:var(--e3)}
.paywall h3{font-size:1.375rem;line-height:1.25}
.toggle{display:inline-grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:var(--r-pill);background:var(--bg-2);border:1px solid var(--line-2);margin:var(--s3) 0 var(--s2)}
.toggle button{min-height:40px;padding:0 16px;border-radius:var(--r-pill);border:0;background:transparent;color:var(--ink-2);font-weight:600;font-size:var(--fs-sm);cursor:pointer}
.toggle button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}

/* ---------- Member shell ---------- */
.shell{display:grid;min-height:calc(100vh - 68px);background:var(--bg)}
@media (min-width:1024px){.shell{grid-template-columns:248px 1fr}}
.side{display:none;border-right:1px solid var(--line);background:var(--bg-2);padding:var(--s3) var(--s2);position:sticky;top:68px;height:calc(100vh - 68px);overflow:auto}
@media (min-width:1024px){.side{display:flex;flex-direction:column;gap:var(--s3)}}
.side__biz{padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.side__biz b{display:block;font-size:var(--fs-sm)}
.side__biz span{font-size:12px;color:var(--muted)}
.side nav{display:grid;gap:2px}
.side h5{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:500;margin:var(--s1) 10px 6px}
.side a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:var(--r-sm);text-decoration:none;color:var(--ink-2);font-size:var(--fs-sm);font-weight:500}
.side a:hover{background:var(--surface);color:var(--ink)}
.side a[aria-current="page"]{background:var(--surface-2);color:var(--ink)}
.side a .cnt{font-family:var(--font-mono);font-size:11px;padding:1px 6px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink)}
.mtabs{display:flex;gap:6px;overflow-x:auto;padding:10px var(--s3);border-bottom:1px solid var(--line);background:var(--bg-2);scrollbar-width:none}
.mtabs::-webkit-scrollbar{display:none}
.mtabs a{flex:none;padding:8px 12px;border-radius:var(--r-pill);border:1px solid var(--line-2);text-decoration:none;font-size:var(--fs-sm);color:var(--ink-2)}
.mtabs a[aria-current="page"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
@media (min-width:1024px){.mtabs{display:none}}
.main{padding:var(--s3);min-width:0}
@media (min-width:1024px){.main{padding:var(--s4) var(--s5)}}
.mhead{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s3)}
.mhead h1{font-size:var(--fs-h2)}
.mpane{display:none}
.mpane.is-active{display:block}

.next{position:relative;padding:var(--s4);border-radius:var(--r-xl);background:radial-gradient(500px 200px at 100% 0%,var(--accent-soft),transparent 70%),var(--surface);border:1px solid var(--accent-line);box-shadow:var(--e2)}
.next h2{font-size:clamp(1.375rem,1.2rem + .8vw,1.875rem);margin:var(--s1) 0}
.next__acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--s3)}
.pstrip{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:var(--s3) 0}
.pstrip div{display:grid;gap:6px}
.pstrip i{height:6px;border-radius:6px;background:var(--surface-3)}
.pstrip .done i{background:var(--accent)}
.pstrip .cur i{background:linear-gradient(90deg,var(--accent) 40%,var(--surface-3) 40%)}
.pstrip span{font-size:11px;color:var(--muted);line-height:1.2}
.pstrip .cur span{color:var(--ink)}
.mgrid{display:grid;gap:var(--s3)}
@media (min-width:1024px){.mgrid{grid-template-columns:1.4fr 1fr}}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3)}
.tile__h{display:flex;justify-content:space-between;align-items:center;gap:var(--s1);margin-bottom:var(--s2)}
.tile__h h3{font-size:1rem}
.list{list-style:none;display:grid}
.list li{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding:12px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.list li:last-child{border-bottom:0}
.empty{text-align:center;padding:var(--s6) var(--s3);border:1px dashed var(--line-2);border-radius:var(--r-lg)}
.empty__ic{width:52px;height:52px;margin:0 auto var(--s2);border-radius:14px;background:var(--surface-2);display:grid;place-items:center;font-family:var(--font-mono);color:var(--accent-ink)}
.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.table th{text-align:left;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--line-2)}
.table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.approve{border:1px solid var(--warning);background:var(--warning-soft);border-radius:var(--r-lg);padding:var(--s3)}
.kanban{display:grid;gap:var(--s2)}
@media (min-width:768px){.kanban{grid-template-columns:repeat(4,1fr)}}
.kcol{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);padding:10px;display:grid;gap:8px;align-content:start;min-height:160px}
.kcol h4{font-size:12px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between}
.kcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px;font-size:var(--fs-sm)}
.coach{display:grid;gap:12px;max-width:760px}
.coach .msg{max-width:92%}
.state-switch{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;margin-bottom:var(--s3);border:1px dashed var(--line-2);border-radius:var(--r-md);font-size:var(--fs-xs);color:var(--muted)}
.state-switch button{min-height:32px;padding:0 10px;border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font-size:12px;cursor:pointer}
.state-switch button[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}

/* nowrap fixes for narrow columns */
.nav a,.src-tag,.sample-bar b,.facts dt{white-space:nowrap}

/* States gallery */
.sgal{display:grid;gap:var(--s3)}
@media (min-width:768px){.sgal{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1200px){.sgal{grid-template-columns:repeat(3,1fr)}}
.sgal__i{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.sgal__h{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg-2)}
.sgal__h code{font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.sgal__b{padding:var(--s3);min-height:180px;display:grid;align-content:center;gap:10px}
