.page--study-chat-open{width:min(90rem, calc(100% - var(--space-xl)))}.study-chat-layout,.study-card-column{min-width:0}.page--study-chat-open .study-chat-layout{align-items:start;gap:var(--space-md);grid-template-columns:minmax(0,1fr) minmax(24rem,28rem);display:grid}.ask-card-action{justify-items:center;gap:var(--space-2xs);margin-top:var(--space-md);display:grid}.ask-card-action>span{color:var(--color-amber);font-size:var(--text-xs)}.ask-card-button{min-height:2.75rem}.card-chat-panel{top:var(--space-md);background:var(--color-surface-raised);border:var(--rule-thin) solid var(--color-line-strong);border-radius:var(--radius-large);min-width:0;height:min(42rem,100svh - 14rem);box-shadow:var(--shadow-card);animation:chat-panel-enter var(--dur-panel) var(--ease-out);flex-direction:column;display:flex;position:sticky;overflow:hidden}.chat-panel-header{padding:var(--space-sm);padding-right:var(--space-3xl);border-bottom:var(--rule-thin) solid var(--color-line);display:block;position:relative}.chat-panel-header h2,.chat-panel-header p{margin-bottom:0}.chat-panel-header h2{font-size:var(--text-xl)}.chat-panel-header>div:last-child,.chat-detail-heading>div{align-items:center;gap:var(--space-2xs);display:flex}.chat-panel-header>div:last-child{top:var(--space-sm);right:var(--space-sm);position:absolute}.chat-card-summary{margin:var(--space-xs) var(--space-sm) 0;padding:var(--space-xs);background:var(--color-paper);border:var(--rule-thin) solid var(--color-line);border-radius:var(--radius-small);font-size:var(--text-xs)}.chat-card-summary summary,.chat-disclosure summary{color:var(--color-indigo-dark);cursor:pointer;font-weight:740}.chat-card-summary p{margin:var(--space-2xs) 0 0;color:var(--color-ink-soft);line-height:1.45}.chat-history-note{align-items:flex-start;gap:var(--space-2xs);margin:var(--space-xs) var(--space-sm) 0;padding:var(--space-xs);color:var(--color-indigo-dark);background:var(--color-indigo-soft);border:var(--rule-thin) solid var(--color-indigo-line);border-radius:var(--radius-small);font-size:var(--text-xs);line-height:1.4;display:flex}.chat-conversation{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.chat-transcript{overscroll-behavior:contain;min-height:12rem;padding:var(--space-sm);scroll-behavior:smooth;flex:1;overflow-y:auto}:where(.card-chat-panel) .chat-transcript{min-height:8rem}.chat-empty{align-content:center;justify-items:start;min-height:100%;display:grid}.chat-empty>svg{width:var(--space-lg);height:var(--space-lg);margin-bottom:var(--space-sm);color:var(--color-coral)}.chat-empty h3{margin-bottom:var(--space-2xs);font-size:var(--text-lg)}.chat-empty p{margin-bottom:var(--space-sm);color:var(--color-ink-soft);line-height:1.5}.chat-starters{gap:var(--space-2xs);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.chat-starters .chip-button{white-space:normal;text-align:left;min-height:2.75rem}.chat-messages{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.chat-message{gap:var(--space-3xs);max-width:88%;display:grid}.chat-message>span{color:var(--color-ink-soft);font-size:var(--text-xs);font-weight:720}.chat-message p,.chat-message--thinking{padding:var(--space-xs) var(--space-sm);border:var(--rule-thin) solid var(--color-line);border-radius:var(--radius-medium);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.55}.chat-message--user{justify-self:end}.chat-message--user>span{text-align:right}.chat-message--user p{color:var(--color-indigo-dark);background:var(--color-indigo-soft);border-color:var(--color-indigo-line);border-bottom-right-radius:var(--radius-2xs)}.chat-message--assistant p,.chat-message--thinking{background:var(--color-surface);border-bottom-left-radius:var(--radius-2xs)}.chat-message--thinking{color:var(--color-ink-soft)}:is(.chat-message--interrupted .text-button,.chat-message:has(>.text-button)>.text-button){width:fit-content;min-height:2.75rem;color:var(--color-danger);padding-inline:0}.chat-jump{right:var(--space-sm);z-index:2;min-height:2.75rem;position:absolute;bottom:11.5rem}.chat-disclosure{margin:0 var(--space-sm) var(--space-xs);padding:var(--space-xs);color:var(--color-ink-soft);background:var(--color-paper);border:var(--rule-thin) solid var(--color-line);border-radius:var(--radius-small);font-size:var(--text-xs);line-height:1.45}.chat-disclosure p{margin:var(--space-2xs) 0 0}.chat-disclosure--compact{padding-block:var(--space-2xs)}.chat-error,.chat-limit{margin:0 var(--space-sm) var(--space-xs);padding:var(--space-xs);color:var(--color-danger);background:var(--color-danger-soft);border:var(--rule-thin) solid var(--color-danger);border-radius:var(--radius-small)}.chat-error p,.chat-limit p{font-size:var(--text-sm);margin:0;line-height:1.4}.chat-error .text-button{min-height:2.75rem;color:inherit;padding-inline:0}.chat-limit{justify-content:space-between;align-items:center;gap:var(--space-xs);display:flex}.chat-composer{gap:var(--space-2xs);padding:var(--space-xs) var(--space-sm) var(--space-sm);border-top:var(--rule-thin) solid var(--color-line);display:grid}.chat-composer textarea{min-height:4.75rem;max-height:10rem}.chat-composer>div{justify-content:space-between;align-items:center;gap:var(--space-xs);display:flex}.chat-composer>div>span{color:var(--color-ink-soft);font-size:var(--text-xs)}.card-chat-sheet{width:100%;max-width:none;height:100dvh;max-height:none;color:var(--color-ink);background:var(--color-surface-raised);opacity:1;transition:transform var(--dur-panel) var(--ease-out), opacity var(--dur-panel) var(--ease-out), display var(--dur-panel) allow-discrete, overlay var(--dur-panel) allow-discrete;border:0;margin:0;padding:0;overflow:hidden;transform:translateY(0)}.card-chat-sheet[open]{flex-direction:column;display:flex}.card-chat-sheet::backdrop{background:var(--color-shadow-ink)}@starting-style{.card-chat-sheet[open]{transform:translateY(var(--space-lg));opacity:0}}.page--chats{max-width:68rem}.chat-index-heading>svg{width:var(--space-2xl);height:var(--space-2xl);color:var(--color-coral);position:absolute;top:0;right:0}.chat-index-heading{padding-right:var(--space-3xl);display:block;position:relative}.chat-index-groups{gap:var(--space-xl);display:grid}.chat-index-groups section>h2{margin-bottom:var(--space-xs);color:var(--color-ink-soft);font-size:var(--text-sm);letter-spacing:0}.chat-index-groups ol{border-top:var(--rule-thin) solid var(--color-line);margin:0;padding:0;list-style:none}.chat-index-groups li{border-bottom:var(--rule-thin) solid var(--color-line)}.chat-index-groups a{gap:var(--space-md);padding:var(--space-sm) var(--space-2xs);transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.chat-index-groups a:hover{background:var(--color-surface-translucent);transform:translateX(var(--space-3xs))}.chat-index-groups a:active{transform:translate(0)}.chat-index-row-main{min-width:0}.chat-index-row-main>span{color:var(--color-indigo-dark);font-size:var(--text-xs);font-weight:720}.chat-index-row-main h3{margin:var(--space-3xs) 0;font-size:var(--text-lg)}.chat-index-row-main p{color:var(--color-ink-soft);text-overflow:ellipsis;white-space:nowrap;margin:0;line-height:1.45;overflow:hidden}.chat-index-row-meta{align-content:center;justify-items:end;gap:var(--space-3xs);color:var(--color-ink-soft);font-size:var(--text-xs);white-space:nowrap;display:grid}.chat-index-empty{border-top:var(--rule-thin) solid var(--color-line)}.chat-offline-state{place-content:center;justify-items:center;min-height:65vh;display:grid}.chat-offline-state>svg{width:var(--space-xl);height:var(--space-xl);color:var(--color-amber)}.page--chat-detail{width:min(88rem, calc(100% - var(--space-xl)))}.chat-detail-heading{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.chat-detail-heading>.text-button{min-height:2.75rem}.chat-detail-layout{align-items:start;gap:var(--space-md);grid-template-columns:minmax(20rem,.9fr) minmax(28rem,1.1fr);display:grid}.chat-snapshot,.chat-detail-transcript{background:var(--color-surface-raised);border:var(--rule-thin) solid var(--color-line-strong);border-radius:var(--radius-large);box-shadow:var(--shadow-small);overflow:hidden}.chat-snapshot>header{padding:var(--space-md);padding-right:var(--space-3xl);border-bottom:var(--rule-thin) solid var(--color-line);display:block;position:relative}.chat-snapshot>header p,.chat-snapshot>header h2{margin-bottom:0}.chat-snapshot>header h2{font-size:var(--text-lg)}.chat-snapshot>header>span{top:var(--space-md);right:var(--space-md);padding:var(--space-3xs) var(--space-2xs);color:var(--color-indigo-dark);background:var(--color-indigo-soft);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:720;position:absolute}.chat-snapshot>img{width:calc(100% - 2 * var(--space-md));max-height:22rem;margin:var(--space-md);object-fit:contain;border:var(--rule-thin) solid var(--color-line);border-radius:var(--radius-medium);display:block}.chat-snapshot-missing{place-content:center;justify-items:center;gap:var(--space-2xs);min-height:10rem;margin:var(--space-md);color:var(--color-ink-soft);background:var(--color-paper);border:var(--rule-thin) dashed var(--color-line-strong);border-radius:var(--radius-medium);display:grid}.chat-snapshot dl{padding:0 var(--space-md) var(--space-md);margin:0}.chat-snapshot dl>div{padding-block:var(--space-sm);border-top:var(--rule-thin) solid var(--color-line)}.chat-snapshot dt{margin-bottom:var(--space-2xs);color:var(--color-ink-soft);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:720}.chat-snapshot dd{white-space:pre-wrap;margin:0;line-height:1.55}.chat-detail-transcript{height:min(50rem, calc(100svh - var(--space-3xl)));flex-direction:column;min-height:36rem;display:flex}.chat-detail-transcript>header{padding:var(--space-md);border-bottom:var(--rule-thin) solid var(--color-line)}.chat-detail-transcript>header p,.chat-detail-transcript>header h1{margin-bottom:0}.chat-detail-transcript>header h1{font-size:var(--text-xl)}.page--study-chat-open .page-heading--study h1{font-size:clamp(2rem,3.5vw,3.4rem)}.page--study-chat-open .page-heading--study{padding-right:8rem;display:block;position:relative}.page--study-chat-open .study-counter{position:absolute;bottom:0;right:0}.confirm-dialog{width:min(30rem, calc(100% - var(--space-md)));padding:var(--space-md);color:var(--color-ink);background:var(--color-surface-raised);border:var(--rule-thin) solid var(--color-line-strong);border-radius:var(--radius-large);box-shadow:var(--shadow-card)}.confirm-dialog::backdrop{background:var(--color-shadow-ink)}.confirm-dialog>div{justify-content:flex-end;gap:var(--space-xs);display:flex}.button--danger{color:var(--color-accent-ink);background:var(--color-danger);border-color:var(--color-danger)}@keyframes chat-panel-enter{0%{transform:translateX(var(--space-sm));opacity:0}}@media (width<=999px){.page--study-chat-open{width:min(58rem, calc(100% - var(--space-xl)))}.page--study-chat-open .study-chat-layout{display:block}.chat-card-summary{flex:none}.chat-detail-layout{grid-template-columns:1fr}.chat-detail-transcript{height:min(48rem, calc(100svh - var(--space-xl)))}}@media (width<=680px){.page--study-chat-open,.page--chat-detail{width:min(100% - var(--space-md), var(--content-width))}.card-chat-sheet{padding-bottom:env(safe-area-inset-bottom)}.chat-panel-header{padding-top:max(var(--space-sm), env(safe-area-inset-top))}.chat-card-summary{max-height:8.5rem;overflow-y:auto}.chat-transcript{padding-inline:var(--space-xs)}.chat-message{max-width:94%}.chat-disclosure,.chat-error,.chat-limit{margin-inline:var(--space-xs)}.chat-composer{padding-inline:var(--space-xs)}.chat-index-heading>svg{display:none}.chat-index-groups a{gap:var(--space-xs);grid-template-columns:minmax(0,1fr)}.chat-index-row-meta{justify-content:space-between;display:flex}.chat-detail-heading{align-items:flex-start}.chat-detail-heading>div{flex-wrap:wrap;justify-content:flex-end}.chat-detail-heading{display:grid}.chat-detail-heading>div{justify-content:flex-start}.chat-detail-transcript{min-height:32rem}}@media (width<=380px){.chat-panel-header h2{font-size:var(--text-lg)}.chat-starters{display:grid}.chat-composer>div{align-items:flex-end}.chat-composer .button{padding-inline:var(--space-xs)}.chat-limit,.confirm-dialog>div{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.card-chat-panel,.card-chat-sheet,.chat-index-groups a{transition:none;animation:none}.chat-transcript{scroll-behavior:auto}}
