/* ============================================================================
   KAPSHARE — Auth (editorial split) + Onboarding (conversational) surfaces.
   Pre-shell, full-viewport. Themed via .theme-* + .light. Prefixed .ka-.
   ============================================================================ */
.ka{ font-family:var(--font-body); background:var(--bg-background); color:var(--text-main);
  min-height:100vh; -webkit-font-smoothing:antialiased; }
.ka *{ box-sizing:border-box; }
.ka a{ color:inherit; text-decoration:none; }

.ka-brand{ display:flex; align-items:center; gap:11px; }
.ka-brand-mark{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:var(--brand-primary); color:#fff; font-family:var(--font-display); font-weight:900; font-size:18px; box-shadow:var(--shadow-glow); }
.ka-brand-lock b{ font-family:var(--font-display); font-weight:800; font-size:16px; letter-spacing:-.01em; display:block; line-height:1; }
.ka-brand-lock span{ font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-faint); font-weight:700; }

/* ---------------- Auth editorial split ---------------- */
.ka-auth{ display:grid; grid-template-columns:1fr 1fr; min-height:100vh; }
@media(max-width:880px){ .ka-auth{ grid-template-columns:1fr; } .ka-auth-art{ display:none; } }
.ka-form{ display:flex; flex-direction:column; justify-content:center; padding:clamp(32px,6vw,80px); max-width:560px; width:100%; margin:0 auto; }
.ka-form > .ka-brand{ margin-bottom:clamp(34px,6vw,60px); }
.ka-form h2{ font-family:var(--font-display); font-weight:800; font-size:clamp(28px,3.4vw,40px); letter-spacing:-.02em; line-height:1.06; }
.ka-form .lead{ color:var(--text-muted); font-size:15px; margin-top:12px; }
.ka-tabs{ display:flex; gap:5px; padding:5px; background:var(--fill-faint); border:1px solid var(--border-subtle); border-radius:999px; margin:28px 0 24px; width:fit-content; }
.ka-tabs button{ font-family:inherit; font-size:13.5px; font-weight:700; padding:9px 22px; border-radius:999px; border:none; cursor:pointer; background:transparent; color:var(--text-muted); white-space:nowrap; transition:background .18s,color .18s; }
.ka-tabs button.on{ background:var(--brand-primary); color:#fff; }
.ka-field{ margin-bottom:15px; }
.ka-field label{ display:block; font-family:var(--font-display); font-weight:700; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-dim); margin-bottom:8px; }
.ka-field .inp{ width:100%; height:50px; border-radius:12px; background:var(--fill-faint); border:1px solid var(--border-subtle); padding:0 16px; color:var(--text-faint); font-size:14px; display:flex; align-items:center; }
.ka-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; height:52px; border-radius:999px; font-family:var(--font-body); font-weight:700; font-size:15px; cursor:pointer; border:1px solid transparent; width:100%; white-space:nowrap; transition:transform .2s var(--ease-out-expo),box-shadow .2s; }
.ka-btn--primary{ background:var(--brand-primary); color:#fff; margin-top:6px; } .ka-btn--primary:hover{ transform:translateY(-2px); box-shadow:var(--shadow-glow); }
.ka-oauth{ display:flex; gap:12px; margin-top:16px; }
.ka-oauth .o{ flex:1; height:48px; border-radius:12px; border:1px solid var(--border-subtle); background:var(--bg-surface); display:flex; align-items:center; justify-content:center; gap:9px; font-size:13.5px; font-weight:600; color:var(--text-muted); cursor:pointer; transition:border-color .18s; }
.ka-oauth .o:hover{ border-color:var(--brand-primary); }
.ka-rule{ display:flex; align-items:center; gap:14px; margin:22px 0; color:var(--text-faint); font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.ka-rule::before,.ka-rule::after{ content:""; height:1px; flex:1; background:var(--border-subtle); }
.ka-fine{ margin-top:26px; font-size:13px; color:var(--text-dim); }
.ka-fine a{ color:var(--brand-primary); font-weight:600; }

.ka-auth-art{ position:relative; overflow:hidden; background:var(--bg-surface-2); }
.ka-auth-art .ph{ position:absolute; inset:0; display:grid; place-items:center; font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-faint);
  background-image:repeating-linear-gradient(135deg, transparent 0 22px, rgba(128,128,128,.06) 22px 44px); }
.ka-auth-art::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(125deg, color-mix(in srgb,var(--brand-primary) 60%, transparent), transparent 58%), linear-gradient(0deg, rgba(0,0,0,.62), transparent 55%); }
.ka-quote{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:clamp(30px,4vw,56px); }
.ka-quote .q{ font-family:var(--font-display); font-weight:700; font-size:clamp(20px,2vw,28px); line-height:1.25; color:#fff; max-width:22ch; letter-spacing:-.01em; }
.ka-quote .c{ font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.72); margin-top:16px; }

/* ---------------- Onboarding (conversational) ---------------- */
.ka-ob{ min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:clamp(24px,5vw,56px); position:relative; }
.ka-ob::before{ content:""; position:absolute; width:560px; height:560px; border-radius:50%; top:-200px; right:-160px; pointer-events:none;
  background:radial-gradient(circle, color-mix(in srgb,var(--brand-primary) 20%, transparent), transparent 70%); filter:blur(10px); }
.ka-ob-top{ position:absolute; top:0; left:0; right:0; display:flex; align-items:center; justify-content:space-between; padding:22px clamp(24px,5vw,46px); }
.ka-ob-prog{ display:flex; align-items:center; gap:8px; }
.ka-ob-prog i{ width:34px; height:5px; border-radius:999px; background:var(--fill-strong); transition:background .3s; }
.ka-ob-prog i.on{ background:var(--brand-primary); }
.ka-ob-skip{ font-size:13px; color:var(--text-dim); cursor:pointer; }

.ka-ob-card{ width:100%; max-width:620px; position:relative; z-index:1; }
.ka-ob-msg{ display:flex; gap:13px; margin-bottom:26px; }
.ka-ob-ai{ width:40px; height:40px; border-radius:12px; flex:none; display:grid; place-items:center; background:var(--brand-primary); color:#fff; box-shadow:var(--shadow-glow); }
.ka-ob-ai svg{ width:20px; height:20px; }
.ka-ob-bubble{ background:var(--bg-surface); border:1px solid var(--border-subtle); border-radius:16px; border-top-left-radius:5px; padding:18px 20px; }
.ka-ob-bubble .eyebrow{ font-family:var(--font-display); font-weight:800; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--brand-primary); margin-bottom:9px; display:block; }
.ka-ob-bubble h2{ font-family:var(--font-display); font-weight:800; font-size:clamp(22px,2.6vw,30px); letter-spacing:-.02em; line-height:1.1; }
.ka-ob-bubble p{ color:var(--text-muted); font-size:14.5px; margin-top:10px; line-height:1.55; }
.ka-ob-opts{ display:grid; gap:11px; margin-top:6px; }
.ka-ob-opts.two{ grid-template-columns:1fr 1fr; } @media(max-width:560px){ .ka-ob-opts.two{ grid-template-columns:1fr; } }
.ka-ob-opt{ display:flex; align-items:center; gap:13px; text-align:left; padding:15px 16px; border-radius:14px; cursor:pointer;
  background:var(--bg-surface); border:1px solid var(--border-subtle); color:var(--text-main); font-family:inherit; font-size:14.5px; font-weight:600; transition:border-color .18s, transform .18s, background .18s; }
.ka-ob-opt:hover{ border-color:var(--brand-primary); transform:translateX(3px); }
.ka-ob-opt.sel{ border-color:var(--brand-primary); background:color-mix(in srgb,var(--brand-primary) 10%, transparent); }
.ka-ob-opt .oi{ width:36px; height:36px; border-radius:10px; flex:none; display:grid; place-items:center; background:color-mix(in srgb,var(--brand-primary) 14%, transparent); color:var(--brand-primary); }
.ka-ob-opt .oi svg{ width:18px; height:18px; }
.ka-ob-opt .od{ flex:1; } .ka-ob-opt .od span{ display:block; font-size:12px; font-weight:500; color:var(--text-dim); margin-top:2px; }
.ka-ob-actions{ display:flex; gap:12px; align-items:center; margin-top:24px; }
.ka-ob-actions .ka-btn{ width:auto; padding:0 26px; }
.ka-ob-back{ background:none; border:none; color:var(--text-dim); font-family:inherit; font-size:14px; font-weight:600; cursor:pointer; }

/* readiness / level final step */
.ka-ready{ text-align:center; }
.ka-ready .gauge{ width:120px; height:120px; border-radius:50%; margin:0 auto 24px; display:grid; place-items:center; position:relative;
  background:conic-gradient(var(--brand-primary) 0 var(--p,86%), var(--fill-strong) var(--p,86%) 100%); }
.ka-ready .gauge::after{ content:""; position:absolute; inset:10px; border-radius:50%; background:var(--bg-background); }
.ka-ready .gauge b{ position:relative; z-index:1; font-family:var(--font-display); font-weight:900; font-size:30px; }
.ka-ready h2{ font-family:var(--font-display); font-weight:800; font-size:clamp(24px,3vw,34px); letter-spacing:-.02em; }
.ka-ready p{ color:var(--text-muted); font-size:15px; margin:12px auto 26px; max-width:42ch; }

/* ── Enhanced onboarding: wizard rail, chat, voice, archetype preview ────── */
.ka-wiz{ display:grid; grid-template-columns:340px 1fr; min-height:100vh; }
@media(max-width:900px){ .ka-wiz{ grid-template-columns:1fr; } .ka-rail-steps,.ka-gauge2{ display:none; } .ka-rail{ flex-direction:row; align-items:center; justify-content:space-between; } }
.ka-rail{ padding:clamp(28px,4vw,52px); border-right:1px solid var(--border-subtle); display:flex; flex-direction:column; gap:34px; }
.ka-rail-steps{ display:flex; flex-direction:column; border-left:1px solid var(--border-subtle); }
.ka-rail-step{ position:relative; background:none; border:none; cursor:pointer; text-align:left; padding:0 0 26px 22px; opacity:.4; transition:opacity .2s; }
.ka-rail-step:last-child{ padding-bottom:0; }
.ka-rail-step.on, .ka-rail-step.done{ opacity:1; }
.ka-rail-step:disabled{ cursor:default; }
.ka-rail-step .dot{ position:absolute; left:-6px; top:3px; width:11px; height:11px; border-radius:50%; background:var(--fill-strong); border:2px solid var(--bg-background); }
.ka-rail-step.on .dot, .ka-rail-step.done .dot{ background:var(--brand-primary); }
.ka-rail-step .lb{ display:flex; flex-direction:column; gap:4px; font-family:var(--font-display); font-weight:800; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-main); }
.ka-rail-step.on .lb{ color:var(--brand-primary); }
.ka-rail-step .lb em{ font-style:normal; font-size:9px; letter-spacing:.3em; color:var(--text-faint); }
.ka-gauge2{ display:flex; align-items:center; gap:13px; margin-top:auto; }
.ka-gauge2 .g{ width:54px; height:54px; border-radius:50%; flex:none; display:grid; place-items:center; position:relative; background:conic-gradient(var(--brand-primary) 0 var(--p,0%), var(--fill-strong) var(--p,0%) 100%); }
.ka-gauge2 .g::after{ content:""; position:absolute; inset:5px; border-radius:50%; background:var(--bg-background); }
.ka-gauge2 .g b{ position:relative; z-index:1; font-family:var(--font-display); font-weight:900; font-size:14px; }
.ka-gauge2 span{ font-size:11px; color:var(--text-dim); font-family:var(--font-display); font-weight:700; letter-spacing:.08em; text-transform:uppercase; max-width:12ch; line-height:1.3; }
.ka-wiz-card{ padding:clamp(28px,5vw,68px); display:flex; flex-direction:column; justify-content:center; max-width:740px; width:100%; }
.ka-step-h{ margin-bottom:22px; }
.ka-step-h .eyebrow{ font-family:var(--font-display); font-weight:800; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--brand-primary); }
.ka-step-h h2{ font-family:var(--font-display); font-weight:800; font-size:clamp(24px,3vw,34px); letter-spacing:-.02em; margin-top:8px; line-height:1.05; }
.ka-step-h p{ color:var(--text-muted); font-size:14px; margin-top:9px; }

.ka-chat{ max-height:300px; overflow-y:auto; display:flex; flex-direction:column; gap:13px; padding:4px 2px 8px; margin-bottom:14px; }
.ka-msg{ display:flex; gap:11px; max-width:88%; } .ka-msg.me{ align-self:flex-end; }
.ka-msg-ai{ width:34px; height:34px; border-radius:10px; flex:none; display:grid; place-items:center; background:var(--brand-primary); color:#fff; } .ka-msg-ai svg{ width:17px; height:17px; }
.ka-msg-tx{ background:var(--bg-surface); border:1px solid var(--border-subtle); border-radius:14px; border-top-left-radius:5px; padding:13px 16px; font-size:14px; line-height:1.5; }
.ka-msg.me .ka-msg-tx{ background:var(--brand-primary); color:#fff; border:none; border-radius:14px; border-bottom-right-radius:5px; }
.ka-msg-tx .who{ display:block; font-family:var(--font-mono); font-size:10px; color:var(--text-faint); margin-bottom:5px; }

.ka-prompts{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:11px; }
.ka-prompts .chip{ display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border-radius:999px; border:1px solid var(--border-subtle); background:var(--fill-faint); color:var(--text-muted); font-family:var(--font-body); font-size:12.5px; font-weight:600; cursor:pointer; transition:border-color .15s,color .15s; }
.ka-prompts .chip:hover{ border-color:var(--brand-primary); color:var(--brand-primary); }
.ka-prompts .chip svg{ width:13px; height:13px; color:var(--brand-primary); }
.ka-cin{ display:flex; align-items:center; gap:10px; }
.ka-cin input{ flex:1; height:50px; border-radius:12px; background:var(--fill-faint); border:1px solid var(--border-subtle); padding:0 16px; color:var(--text-main); font-family:var(--font-body); font-size:14px; outline:none; transition:border-color .15s; }
.ka-cin input:focus{ border-color:var(--brand-primary); }
.ka-mic,.ka-send{ width:50px; height:50px; border-radius:12px; flex:none; display:grid; place-items:center; cursor:pointer; border:1px solid var(--border-subtle); background:var(--fill-faint); color:var(--text-muted); transition:all .15s; }
.ka-mic:hover{ border-color:var(--brand-primary); color:var(--brand-primary); } .ka-mic svg{ width:20px; height:20px; }
.ka-mic.on{ background:var(--brand-primary); color:#fff; border-color:var(--brand-primary); }
.ka-mic .bars{ display:flex; align-items:center; gap:3px; height:20px; }
.ka-mic .bars i{ width:3px; background:#fff; border-radius:2px; animation:kaBars 1s ease-in-out infinite; }
.ka-mic .bars i:nth-child(2){ animation-delay:.15s; } .ka-mic .bars i:nth-child(3){ animation-delay:.3s; } .ka-mic .bars i:nth-child(4){ animation-delay:.45s; }
.ka-mic .bars i:nth-child(1){ height:8px; } .ka-mic .bars i:nth-child(2){ height:16px; } .ka-mic .bars i:nth-child(3){ height:11px; } .ka-mic .bars i:nth-child(4){ height:18px; }
@keyframes kaBars{ 0%,100%{ transform:scaleY(.5);} 50%{ transform:scaleY(1);} }
@media (prefers-reduced-motion: reduce){ .ka-mic .bars i{ animation:none; } }
.ka-send{ background:var(--brand-primary); color:#fff; border-color:var(--brand-primary); } .ka-send svg{ width:19px; height:19px; }
.ka-link{ background:none; border:none; color:var(--text-dim); font-family:var(--font-body); font-size:13px; font-weight:600; cursor:pointer; margin-top:16px; align-self:flex-start; }
.ka-link:hover{ color:var(--brand-primary); }

.ka-arch{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
@media(max-width:560px){ .ka-arch{ grid-template-columns:1fr; } }
.ka-arch-c{ text-align:left; padding:16px; border-radius:14px; border:1px solid var(--border-subtle); background:var(--bg-surface); cursor:pointer; transition:border-color .15s,transform .15s; font-family:var(--font-body); }
.ka-arch-c:hover{ border-color:color-mix(in srgb,var(--brand-primary) 45%,transparent); transform:translateY(-2px); }
.ka-arch-c.on{ border-color:var(--brand-primary); background:color-mix(in srgb,var(--brand-primary) 9%,transparent); }
.ka-arch-c .t{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--text-main); }
.ka-arch-c .t svg{ width:16px; height:16px; color:var(--brand-primary); flex:none; }
.ka-arch-c .t .sug{ font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--brand-primary); background:color-mix(in srgb,var(--brand-primary) 14%,transparent); padding:3px 7px; border-radius:999px; flex:none; }
.ka-arch-c p{ font-size:12.5px; color:var(--text-dim); margin-top:6px; line-height:1.45; }
.ka-mods{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:22px; padding-top:20px; border-top:1px solid var(--border-subtle); }
.ka-mods h4{ font-family:var(--font-display); font-weight:800; font-size:9px; letter-spacing:.3em; text-transform:uppercase; color:var(--text-faint); margin-bottom:12px; }
.ka-mods ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.ka-mods li{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:var(--text-main); }
.ka-mods li svg{ width:14px; height:14px; color:var(--status-success); flex:none; }
.ka-mods .sk li, .ka-mods .sk li svg{ color:var(--text-faint); }

.ka-inp2{ width:100%; height:52px; border-radius:12px; background:var(--fill-faint); border:1px solid var(--border-subtle); padding:0 16px; color:var(--text-main); font-family:var(--font-display); font-weight:700; font-size:18px; outline:none; }
.ka-inp2:focus{ border-color:var(--brand-primary); }
.ka-slug{ display:flex; align-items:center; height:48px; border-radius:12px; background:var(--fill-faint); border:1px solid var(--border-subtle); overflow:hidden; }
.ka-slug span{ padding:0 12px; color:var(--text-dim); font-size:13px; border-right:1px solid var(--border-subtle); height:100%; display:flex; align-items:center; }
.ka-slug input{ flex:1; background:none; border:none; outline:none; color:var(--text-main); font-size:13px; padding:0 12px; font-family:var(--font-mono); }

.ka-recap{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:-6px auto 24px; max-width:34ch; }
.ka-recap .rc{ display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:var(--text-muted); border:1px solid var(--border-subtle); border-radius:999px; padding:5px 11px; }
.ka-recap .rc svg{ width:12px; height:12px; color:var(--status-success); }

.ka-ob-card.wide{ max-width:680px; }
.ka-phases{ display:flex; align-items:center; gap:18px; }
@media(max-width:640px){ .ka-phases{ display:none; } }
.ka-phases .ph{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:700; font-size:12px; color:var(--text-faint); }
.ka-phases .ph em{ font-style:normal; }
.ka-phases .ph.on{ color:var(--brand-primary); } .ka-phases .ph.done{ color:var(--text-muted); }
.ka-prog{ height:5px; border-radius:999px; background:var(--fill-strong); overflow:hidden; margin-bottom:18px; }
.ka-prog i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--brand-primary),var(--brand-secondary)); transition:width .5s var(--ease-out-expo); }
.ka-gen{ width:100%; margin-top:14px; }

/* ── Website inference ───────────────────────────────────────────────────── */
.ka-site{ display:flex; align-items:center; gap:10px; height:54px; border-radius:13px; background:var(--fill-faint); border:1px solid var(--border-subtle); padding:0 8px 0 14px; transition:border-color .15s; }
.ka-site:focus-within{ border-color:var(--brand-primary); }
.ka-site .ic{ display:inline-flex; color:var(--brand-primary); } .ka-site .ic svg{ width:18px; height:18px; }
.ka-site input{ flex:1; background:none; border:none; outline:none; color:var(--text-main); font-family:var(--font-body); font-size:14px; }
.ka-site input::placeholder{ color:var(--text-faint); }
.ka-analyzing{ display:flex; align-items:center; gap:10px; margin-top:16px; font-size:13.5px; color:var(--text-muted); font-family:var(--font-mono); }
.ka-analyzing .dots{ display:inline-flex; gap:4px; }
.ka-analyzing .dots i{ width:7px; height:7px; border-radius:50%; background:var(--brand-primary); animation:kaBounce 1s infinite; }
.ka-analyzing .dots i:nth-child(2){ animation-delay:.15s; } .ka-analyzing .dots i:nth-child(3){ animation-delay:.3s; }
@keyframes kaBounce{ 0%,100%{ transform:translateY(0); opacity:.5; } 50%{ transform:translateY(-5px); opacity:1; } }
@media (prefers-reduced-motion: reduce){ .ka-analyzing .dots i{ animation:none; } }
.ka-or{ display:flex; align-items:center; gap:14px; margin:20px 0 16px; color:var(--text-faint); font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-family:var(--font-display); font-weight:800; }
.ka-or::before, .ka-or::after{ content:""; height:1px; flex:1; background:var(--border-subtle); }

.ka-infer{ border:1px solid color-mix(in srgb,var(--brand-primary) 30%, var(--border-subtle)); border-radius:16px; background:var(--bg-surface); padding:20px; }
.ka-infer-h{ display:flex; align-items:center; gap:14px; padding-bottom:16px; border-bottom:1px solid var(--border-subtle); }
.ka-infer-h .sw{ width:48px; height:48px; border-radius:13px; flex:none; box-shadow:var(--shadow-glow); }
.ka-infer-h .logo{ width:48px; height:48px; border-radius:13px; flex:none; object-fit:cover; box-shadow:var(--shadow-glow); display:block; }
.ka-infer-h .nm{ flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.ka-infer-h .nm .title{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.ka-infer-h .nm b{ font-family:var(--font-display); font-weight:800; font-size:18px; letter-spacing:-.01em; line-height:1; }
.ka-infer-h .nm span{ font-size:12px; color:var(--text-dim); line-height:1; }
.ka-infer-h .nm em{ font-style:normal; font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint); line-height:1; }
.ka-infer-badge{ display:inline-flex; align-items:center; gap:6px; flex:none; align-self:flex-start; font-family:var(--font-display); font-weight:800; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-primary); background:color-mix(in srgb,var(--brand-primary) 14%, transparent); padding:5px 9px; border-radius:999px; }
.ka-infer-badge svg{ width:12px; height:12px; }
.ka-infer-row{ display:flex; gap:16px; padding:14px 0; border-bottom:1px solid var(--border-subtle); }
.ka-infer-row:last-of-type{ border-bottom:none; }
.ka-infer-row h5{ width:104px; flex:none; font-family:var(--font-display); font-weight:800; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-faint); padding-top:9px; line-height:1.4; }
.ka-infer-row h5 .cnt{ display:block; color:var(--brand-primary); margin-top:5px; letter-spacing:.06em; }
.ka-infer-row .tags{ display:flex; flex-wrap:wrap; gap:8px; flex:1; }
/* one consistent pill size across discipline / setup / modules */
.ka-infer-row .tag{ display:inline-flex; align-items:center; height:34px; padding:0 14px; font-size:12.5px; font-weight:600; color:var(--text-muted); border:1px solid var(--border-subtle); border-radius:999px; white-space:nowrap; }
.ka-infer-row .tag.on{ color:var(--brand-primary); border-color:color-mix(in srgb,var(--brand-primary) 40%, transparent); background:color-mix(in srgb,var(--brand-primary) 10%, transparent); }
.ka-infer-row .det{ list-style:none; margin:0; padding-top:2px; display:flex; flex-direction:column; gap:9px; }
.ka-infer-row .det li{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:500; color:var(--text-main); }
.ka-infer-row .det li svg{ width:14px; height:14px; color:var(--status-success); flex:none; }

/* clickable module pills (add / subtract) + tooltip */
.ka-modpill{ position:relative; display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 14px; border-radius:999px; cursor:pointer;
  font-family:var(--font-body); font-size:12.5px; font-weight:600; white-space:nowrap; transition:background .15s, border-color .15s, color .15s, opacity .15s;
  border:1px dashed var(--border-subtle); background:transparent; color:var(--text-dim); }
.ka-modpill svg{ width:13px; height:13px; flex:none; }
.ka-modpill:hover{ border-color:color-mix(in srgb,var(--brand-primary) 45%, transparent); color:var(--text-main); }
.ka-modpill.on{ border-style:solid; border-color:color-mix(in srgb,var(--brand-primary) 40%, transparent); background:color-mix(in srgb,var(--brand-primary) 12%, transparent); color:var(--brand-primary); }
.ka-modpill[data-tip]:hover::after, .ka-modpill[data-tip]:focus-visible::after{
  content:attr(data-tip); position:absolute; bottom:calc(100% + 9px); left:50%; transform:translateX(-50%);
  width:max-content; max-width:220px; white-space:normal; text-align:left; z-index:20;
  background:var(--bg-surface-3); color:var(--text-main); border:1px solid var(--border-subtle); box-shadow:0 12px 30px -12px rgba(0,0,0,.6);
  font-family:var(--font-body); font-size:11.5px; font-weight:500; line-height:1.45; padding:9px 11px; border-radius:10px; pointer-events:none; }
.ka-modpill[data-tip]:hover::before, .ka-modpill[data-tip]:focus-visible::before{
  content:""; position:absolute; bottom:calc(100% + 4px); left:50%; transform:translateX(-50%) rotate(45deg);
  width:9px; height:9px; background:var(--bg-surface-3); border-right:1px solid var(--border-subtle); border-bottom:1px solid var(--border-subtle); z-index:21; pointer-events:none; }
