.ct-page[hidden], .ct-context[hidden] { display:none !important; }
.chat-panel:has(> .ct-page:not([hidden])) > :not(.ct-page) { display:none !important; }
.chat-panel:has(> .ct-page:not([hidden])) { grid-template-rows:minmax(0,1fr); }
.context-panel:has(> .ct-context:not([hidden])) > :not(.ct-context) { display:none !important; }
.ct-page { grid-row:1 / -1; min-width:0; min-height:0; display:grid; grid-template-rows:minmax(0,1fr) auto; color:var(--ink); background:var(--canvas); font-family:var(--font-ui); }
:is(.ct-page,.ct-context) button:not(.composer button) { border:1px solid var(--line); border-radius:8px; background:white; color:var(--ink); padding:8px 12px; cursor:pointer; font:inherit; font-size:12px; }
:is(.ct-page,.ct-context) button:not(.composer button):hover { border-color:var(--cyan); background:#f1f8fa; }
:is(.ct-page,.ct-context) button:not(.composer button):disabled { opacity:.55; cursor:not-allowed; }
:is(.ct-page,.ct-context) :focus-visible:not(.composer *) { outline:3px solid rgba(83,192,214,.3); outline-offset:2px; }
.ct-scroll { overflow:auto; min-height:0; padding:20px 5%; overscroll-behavior:contain; }
.ct-status,.ct-card-state { font-size:12px; display:inline-flex; align-items:center; gap:7px; color:#347f98; max-width:100%; }
.ct-status svg,.ct-card-state i { flex-shrink:0; }
.ct-card-state i { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#e4f3f3; font-style:normal; }
.ct-attention { color:#986c23; } .ct-attention i { background:#fbf0d9; }
.ct-done { color:var(--green); } .ct-quiet { color:var(--muted); } .ct-recovery { color:var(--violet); }
.ct-card-next { margin-top:6px; font-size:11px; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.ct-context { min-width:0; color:var(--ink); font-family:var(--font-ui); font-size:12px; line-height:1.8; }
.ct-overview { display:grid; gap:12px; }
.ct-summary { padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.ct-summary > header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.ct-summary h3 { margin:0; font-size:14px; }.ct-summary small { color:var(--muted); }
.ct-schedule strong { display:block; font-size:14px; font-weight:500; overflow-wrap:anywhere; }
.ct-next { font-size:12px; line-height:1.8; padding:10px 12px; border-left:2px solid var(--cyan); background:#f1f8fa; overflow-wrap:anywhere; }
.ct-stages { display:grid; gap:1px; margin:14px 0 0; } .ct-stages article { display:flex; align-items:flex-start; gap:10px; padding:10px 0; }
.ct-stages i { width:24px; height:24px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-style:normal; flex-shrink:0; }
.ct-stages strong { font-size:12px; font-weight:500; overflow-wrap:anywhere; } .ct-stages small { display:block; font-size:11px; color:var(--muted); line-height:1.8; }
.ct-stages .is-done i { background:#e4f4ed; color:#328673; }.ct-stages .is-blocked i { background:#fff3dd; color:#946b2c; }
:is(.ct-page,.ct-context) details { border:1px solid var(--line); border-radius:10px; padding:12px 14px; background:#fff; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
:is(.ct-page,.ct-context) summary { cursor:pointer; } .ct-context summary small { display:block; color:var(--muted); }
.ct-actions { display:flex; align-items:start; flex-wrap:wrap; gap:8px; }.ct-actions details { padding:7px 10px; flex-basis:100%; }.ct-actions details button { margin:8px 5px 0 0; }
.ct-boundary { font-size:11px; color:var(--muted); line-height:1.7; }
.ct-timeline.conversation-thread { padding:0; gap:20px; }
.ct-entry { min-width:0; overflow-wrap:anywhere; }.ct-entry .message-stack { max-width:min(94%,900px); }
.ct-message-label { color:var(--muted); font-size:11px; margin-bottom:6px; }.ct-entry.user .ct-message-label { display:none; }
.ct-event details { color:var(--muted); background:rgba(255,255,255,.6); }.ct-event summary time { float:right; font-size:10px; }.ct-event .bubble { margin-top:12px; color:var(--ink); }
.ct-entry pre { overflow:auto; }.ct-entry table { display:block; overflow:auto; max-width:100%; }
.ct-question { background:#fffaf0; border:1px solid #ecddb9; padding:16px; border-radius:12px; font-size:13px; line-height:1.8; margin-top:18px; }
.ct-question h3 { font-size:14px; }.ct-question label { display:block; padding:6px; }.ct-question label small { display:block; color:var(--muted); }
.ct-question textarea { width:100%; box-sizing:border-box; border:1px solid #dfd6bd; border-radius:8px; padding:9px; font:inherit; background:#fffefb; color:var(--ink); margin-bottom:8px; }
.ct-composer .composer-mode-trigger { cursor:default; }
.ct-composer [data-ct-stop-reply] { margin-inline:6px; flex-shrink:0; }
.ct-mobile-context:empty { display:none; }
.ct-card-menu { margin:4px 8px 10px; color:var(--muted); font-size:10px; }.ct-card-menu summary { cursor:pointer; padding:4px; }.ct-card-menu button { margin:4px 0; }
.ct-entry.assistant .message-stack { max-width:min(calc(100% - 52px),900px); }
.ct-reply-progress { --assistant-inset:0px; max-width:952px; }
.ct-page .process-history > summary { padding-left:0; }
.ct-page .process-history > summary::before { display:none; }
.ct-event,.ct-question { box-sizing:border-box; width:calc(100% - 52px); max-width:900px; margin-left:52px; }
/* Match the ordinary process-history chevron; retain native keyboard semantics. */
:is(.ct-page details,.ct-context details,.ct-card-menu) > summary { position:relative; list-style:none; padding-left:20px; }
:is(.ct-page details,.ct-context details,.ct-card-menu) > summary::-webkit-details-marker { display:none; }
:is(.ct-page details,.ct-context details,.ct-card-menu) > summary::before {
  content:""; position:absolute; left:0; top:.35em; width:13px; height:13px; background:#8492a4;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m6 4 4 4-4 4' fill='none' stroke='black' stroke-width='1.3'/%3E%3C/svg%3E") center / contain no-repeat;
  transition:transform .18s ease;
}
:is(.ct-page details,.ct-context details,.ct-card-menu)[open] > summary::before { transform:rotate(90deg); }
/* Existing quick-plan-products uses this native intrinsic-height transition. */
@supports (interpolate-size:allow-keywords) {
  :is(.ct-page details,.ct-context details,.ct-card-menu) { interpolate-size:allow-keywords; }
  :is(.ct-page details,.ct-context details,.ct-card-menu)::details-content {
    overflow:hidden; block-size:0; opacity:0;
    transition:block-size .18s ease,opacity .18s ease,content-visibility .18s allow-discrete;
  }
  :is(.ct-page details,.ct-context details,.ct-card-menu)[open]::details-content { block-size:auto; opacity:1; }
}
@media(prefers-reduced-motion:reduce) {
  :is(.ct-page details,.ct-context details,.ct-card-menu) > summary::before,
  :is(.ct-page details,.ct-context details,.ct-card-menu)::details-content { transition:none; }
}
@media(max-width:920px) { .ct-mobile-context { margin-bottom:20px; }.ct-mobile-context .ct-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }.ct-mobile-context .ct-boundary { grid-column:1 / -1; } }
@media(max-width:620px) { .ct-scroll { padding:14px; }.ct-mobile-context .ct-overview { grid-template-columns:1fr; }.ct-event summary time { float:none; display:block; } }
