.chat-shell{grid-template:"header header""stream rail"1fr"composer rail"/minmax(0,1fr) 360px;gap:0;height:100dvh;max-height:100dvh;display:grid}@media (max-width:900px){.chat-shell{grid-template-columns:1fr;grid-template-areas:"header""rail""stream""composer";height:auto}}.chat-header{border-bottom:1px solid var(--line);background:var(--bg);grid-area:header;justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.chat-header .brand{font-family:var(--font-display);letter-spacing:-.01em;color:var(--fg);align-items:center;gap:12px;font-size:15px;font-weight:700;display:flex}.chat-header .brand .mut{color:var(--fg-3);margin-left:8px;font-weight:500}.chat-header .session-meta{color:var(--fg-3);font-size:12px}.chat-stream{scroll-behavior:smooth;flex-direction:column;grid-area:stream;gap:18px;padding:28px 28px 16px;display:flex;overflow-y:auto}.chat-empty{text-align:center;max-width:460px;color:var(--fg-2);margin:auto}.chat-empty h2{font-family:var(--font-display);letter-spacing:-.01em;color:var(--fg);margin:0 0 8px;font-size:22px;font-weight:700}.chat-empty p{margin:0 0 18px;font-size:14.5px;line-height:1.55}.chat-empty .suggest{flex-direction:column;gap:8px;display:flex}.chat-empty .suggest button{background:var(--bg-2);border:1px solid var(--line);color:var(--fg-2);font-family:var(--font-sans);text-align:left;cursor:pointer;transition:border-color .16s var(--ease-std), color .16s var(--ease-std);border-radius:12px;padding:12px 14px;font-size:13.5px}.chat-empty .suggest button:hover{border-color:var(--accent);color:var(--fg)}.bubble{white-space:pre-wrap;word-wrap:break-word;border-radius:14px;max-width:720px;padding:14px 16px;font-size:14.5px;line-height:1.55}.bubble.user{background:var(--accent);color:#0a0a0a;border-bottom-right-radius:4px;align-self:flex-end;font-weight:500}.bubble.assistant{background:var(--bg-2);color:var(--fg);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}.bubble.assistant .typing{background:var(--accent);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-left:4px;animation:1.2s infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.chat-composer{background:linear-gradient(180deg, #ffffff05 0%, #ffffff0a 100%), var(--bg);border-top:1px solid #ffffff1a;grid-area:composer;padding:16px 28px 24px}.chat-composer form{gap:10px;max-width:820px;margin:0 auto;display:flex}.chat-composer textarea{resize:none;min-height:56px;max-height:200px;color:var(--fg);font-family:var(--font-sans);transition:border-color .16s var(--ease-std), box-shadow .16s var(--ease-std), background .16s var(--ease-std);background:#ffffff0a;border:2px solid #ffffff4d;border-radius:14px;outline:none;flex:1;padding:16px 18px;font-size:15px;line-height:1.5;box-shadow:0 2px 8px #0000004d,inset 0 1px #ffffff0f}.chat-composer textarea::placeholder{color:#ffffff9e}.chat-composer textarea:hover:not(:disabled):not(:focus){background:#ffffff0f;border-color:#ffffff73}.chat-composer textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft), 0 2px 8px #0000004d, inset 0 1px 0 #ffffff0f;background:#ffffff0f}.chat-composer button[type=submit]{background:var(--accent);color:#0a0a0a;height:56px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:transform .16s var(--ease-std), background .16s var(--ease-std), box-shadow .16s var(--ease-std);border:none;border-radius:999px;align-self:flex-end;padding:0 28px;font-size:15px;box-shadow:0 4px 14px #7dd3fc47}.chat-composer button[type=submit]:hover:not(:disabled){background:var(--chip-fg);transform:translateY(-1px);box-shadow:0 6px 18px #7dd3fc6b}.chat-composer button[type=submit]:disabled{opacity:.85;cursor:not-allowed;box-shadow:0 2px 6px #7dd3fc29}.chat-rail{border-left:1px solid var(--line);background:var(--bg-2);flex-direction:column;grid-area:rail;gap:24px;padding:22px 22px 28px;display:flex;overflow-y:auto}.rail-section h3{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--chip-fg);margin:0 0 12px;font-size:11px;font-weight:700}.rail-section .empty-note{color:var(--fg-3);font-size:12.5px;font-style:italic}.facts-grid{flex-wrap:wrap;gap:8px;display:flex}.fact-chip{background:var(--bg);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:8px 12px;display:inline-flex}.fact-chip .label{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);font-size:10px;font-weight:600}.fact-chip .value{color:var(--fg);font-size:13px;font-weight:500}.fact-chip.empty .value{color:var(--fg-3);font-style:italic;font-weight:400}.programs-list{flex-direction:column;gap:10px;display:flex}.program-card{background:var(--bg);border:1px solid var(--line);transition:border-color .16s var(--ease-std);border-radius:12px;padding:12px 14px}.program-card:hover{border-color:var(--chip-line)}.program-card .pc-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.program-card .pc-name{font-family:var(--font-display);color:var(--fg);letter-spacing:-.005em;margin:0;font-size:14px;font-weight:700}.program-card .pc-rank{letter-spacing:.08em;text-transform:uppercase;background:var(--chip-bg);color:var(--chip-fg);border:1px solid var(--chip-line);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700}.program-card .pc-who{color:var(--fg-2);margin:6px 0 0;font-size:12.5px;line-height:1.45}.program-card .pc-why{border-top:1px dashed var(--line);color:var(--fg-3);margin-top:10px;padding-top:10px;font-size:12px;font-style:italic}.program-card .pc-why-match{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px}.program-card .pc-why-match>summary{cursor:pointer;letter-spacing:.1em;text-transform:uppercase;color:var(--chip-fg);-webkit-user-select:none;user-select:none;transition:color .16s var(--ease-std);align-items:center;gap:6px;font-size:11px;font-weight:700;list-style:none;display:inline-flex}.program-card .pc-why-match>summary::-webkit-details-marker{display:none}.program-card .pc-why-match>summary:before{content:"▸";color:var(--fg-3);transition:transform .16s var(--ease-std);font-size:9px;display:inline-block}.program-card .pc-why-match[open]>summary:before{transform:rotate(90deg)}.program-card .pc-why-match>summary:hover{color:var(--accent)}.program-card .pc-why-body{flex-direction:column;gap:8px;margin-top:8px;display:flex}.program-card .pc-why-caption{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);font-size:10.5px;font-weight:600}.program-card .pc-why-quote{border-left:2px solid var(--accent);background:var(--bg-2);color:var(--fg-2);border-radius:0 8px 8px 0;margin:0;padding:8px 10px;font-size:12px;font-style:italic;line-height:1.5}.program-card .pc-why-link{color:var(--chip-fg);text-underline-offset:2px;transition:color .16s var(--ease-std);align-self:flex-start;font-size:12px;font-weight:500;text-decoration:underline}.program-card .pc-why-link:hover{color:var(--accent)}.show-more{border:1px dashed var(--line);color:var(--fg-3);font-family:var(--font-sans);cursor:pointer;transition:color .16s var(--ease-std), border-color .16s var(--ease-std);background:0 0;border-radius:10px;padding:8px 12px;font-size:12px}.show-more:hover{color:var(--fg);border-color:var(--fg-3)}.chat-empty .suggest-label{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);text-align:left;margin:22px 0 10px;font-size:11.5px;font-weight:600}
