.flow-workspace{height:var(--flow-height,100dvh);--bubble-partner:#efece4;--bubble-you:#c6e06c;--bubble-you-ink:#243012;--bubble-you-ok:#c6e06c;--bubble-you-miss:#e8b09a;--bubble-you-miss-ink:#3f2218}.flow-workspace .piece-brand small{letter-spacing:.04em;color:var(--p-muted);margin:6px 0 0 10px;font-size:13px;font-weight:500}.piece-flow{background:var(--p-bg);width:100%;max-width:820px;min-height:0;color:var(--p-ink);--bg:var(--p-bg);--ink:var(--p-ink);--surface:var(--p-surface);--muted:var(--p-muted);--line:var(--p-line);--accent:var(--p-accent);--accentSoft:var(--p-soft);flex-direction:column;flex:1;margin:0 auto;font-size:15px;display:flex}.piece-flow button{cursor:pointer;color:var(--ink);background:var(--surface);border:1px solid var(--line);min-height:44px;font:inherit;border-radius:12px;padding:10px 15px}.piece-flow button:disabled{cursor:default;opacity:.4}.piece-flow button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}.piece-flow button.quiet{color:var(--muted);background:0 0;border-color:#0000}.piece-flow :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.piece-flow-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:65px;padding:8px 24px;display:flex}.piece-flow-header a{color:var(--muted);align-items:center;min-height:44px;font-size:13px;text-decoration:none;display:flex}.piece-flow-header h1{letter-spacing:-.03em;margin:0;font-size:17px;font-weight:650}.piece-flow-progress{color:var(--muted);flex-shrink:0;justify-content:space-between;gap:16px;padding:13px 24px 16px;font-size:12px;display:flex;position:relative}.piece-flow-progress progress{appearance:none;background:var(--line);width:100%;height:2px;color:var(--accent);border:0;position:absolute;bottom:0;left:0}.piece-flow-progress progress::-webkit-progress-bar{background:var(--line)}.piece-flow-progress progress::-webkit-progress-value{background:var(--accent)}.piece-flow-progress progress::-moz-progress-bar{background:var(--accent)}.piece-flow-scene{border-bottom:1px solid var(--line);flex-shrink:0;max-height:28vh;padding:2px 28px 10px;overflow:auto}.piece-flow-scene .piece-flow-divider{margin:10px 0 8px}.piece-flow-scene .flow-situation{margin:0 0 6px}.piece-flow-scene .flow-source{margin:0}.piece-flow-thread{overscroll-behavior:contain;scroll-behavior:auto;overflow-anchor:none;flex-direction:column;flex:1;min-height:0;padding:10px 28px 18px;display:flex;position:relative;overflow:auto}.piece-flow-thread:before{content:"";flex:1 0 0;min-height:12px}.piece-flow-conversation{flex:none}.piece-flow-welcome{text-align:center;max-width:450px;margin:clamp(32px,12vh,110px) auto}.piece-flow-welcome>span{letter-spacing:.17em;color:var(--muted);font-size:10px}.piece-flow-welcome h2{font-family:var(--font-serif), Georgia, serif;letter-spacing:-.04em;margin:20px 0;font-size:clamp(30px,6vw,42px);font-weight:500;line-height:1.2}.piece-flow-welcome p{color:var(--muted);line-height:1.7}.piece-flow-meta{font-size:12px}.piece-flow-welcome button{margin-top:14px}.piece-flow-divider{text-align:center;color:var(--muted);margin:28px 0 24px}.piece-flow-divider h2{margin:0 0 6px;font-size:12px;font-weight:500}.piece-flow-divider span{font-size:10px}.piece-flow-message{background:var(--bubble-partner);border:1px solid color-mix(in srgb, var(--line) 80%, transparent);overflow-wrap:anywhere;border-radius:4px 18px 18px;width:fit-content;max-width:85%;margin:12px 0 18px;padding:12px 17px;box-shadow:0 1px 2px #24372f12}.piece-flow-message.self{background:var(--bubble-you);color:var(--bubble-you-ink);border-color:#0000;border-radius:18px 4px 18px 18px;margin-left:auto;box-shadow:0 1px 2px #24372f14}.piece-flow-message.self.ok{background:var(--bubble-you-ok)}.piece-flow-message.self.miss{background:var(--bubble-you-miss);color:var(--bubble-you-miss-ink)}.piece-flow-message.self.miss small{color:color-mix(in srgb, var(--bubble-you-miss-ink) 58%, transparent)}.piece-flow-message.arrive{animation:.52s cubic-bezier(.2,.85,.25,1) piece-flow-pop}.piece-flow-message small{color:var(--muted);font-size:11px;display:block}.piece-flow-message.self small{color:color-mix(in srgb, var(--bubble-you-ink) 58%, transparent)}.piece-flow-message p{white-space:pre-wrap;margin:5px 0 2px;line-height:1.6}.piece-flow-message.pending p{color:color-mix(in srgb, var(--bubble-you-ink) 62%, transparent)}.piece-flow-stream{position:relative}.piece-flow-unrevealed{visibility:hidden}.piece-flow-caret{background:var(--accent,var(--p-accent));vertical-align:-.15em;width:2px;height:1em;margin-left:2px;animation:1s step-end infinite piece-bottow-blink;display:inline-block}.piece-flow-attempt{white-space:pre-wrap;margin-top:6px;display:block}.piece-flow-exposure-label{z-index:2;justify-content:flex-end;margin:0;display:flex;position:absolute;top:8px;right:20px}.piece-flow-exposure-label button{background:0 0;min-height:36px;padding:6px 10px;font-size:12px}.piece-flow-message.thinking{min-width:62px;padding:10px 16px 12px;animation:.28s piece-flow-think-in}.piece-flow-message.thinking p{margin:8px 0 2px}.piece-flow-typing-dots{align-items:center;gap:5px;min-height:1.2em;display:flex}.piece-flow-typing-dots i{opacity:.28;background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.25s ease-in-out infinite piece-flow-dot;display:block}.piece-flow-typing-dots i:nth-child(2){animation-delay:.16s}.piece-flow-typing-dots i:nth-child(3){animation-delay:.32s}@keyframes piece-flow-think-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes piece-flow-dot{0%,80%,to{opacity:.22;transform:translateY(0)}40%{opacity:.85;transform:translateY(-3px)}}.piece-flow-observed{color:var(--muted);margin:0 0 22px;font-size:12px}.piece-flow-observed summary{cursor:pointer;width:fit-content;min-height:44px;padding:12px 0}.piece-flow-observed .piece-flow-message{font-size:15px}.piece-flow-observed .piece-flow-message:not(.self){color:var(--ink)}.piece-flow-response{border-top:1px solid var(--line);padding:16px 28px max(16px, env(safe-area-inset-bottom));background:var(--bg);flex-shrink:0;max-height:55%;overflow:auto}.piece-flow-composer label,.piece-flow-composer-label{color:var(--muted);margin:0 0 10px;font-size:12px;display:block}.piece-flow-selected{flex-wrap:wrap;align-items:center;gap:6px;min-height:48px;padding-bottom:10px;display:flex}.piece-flow-selected>span{color:var(--muted);font-size:14px}.piece-flow-selected button{background:var(--accentSoft);text-align:left;border-color:#0000}.piece-flow-selected button span{color:var(--muted);margin-left:4px}.piece-flow-chunks{flex-wrap:wrap;gap:7px;padding:0 0 14px;display:flex}.piece-flow-chunks button{text-align:left}.piece-flow-chunks button:disabled{opacity:.25}.piece-flow-composer textarea{resize:vertical;border:1px solid var(--line);background:var(--surface);width:100%;min-height:74px;max-height:140px;color:var(--ink);border-radius:12px;padding:12px;font-size:16px;line-height:1.5;display:block}.piece-flow-observe-bar{align-items:center;gap:12px;display:flex}.piece-flow-observe-bar>span{color:var(--muted);flex:1;min-width:0;font-size:12px}.piece-flow button.piece-flow-send{color:#5c615c;width:48px;height:48px;min-height:48px;box-shadow:none;background:#d4d6d2;border:0;border-radius:50%;flex-shrink:0;place-items:center;margin-left:auto;padding:0;display:grid}.piece-flow button.piece-flow-send:disabled{opacity:1;cursor:default;color:#5c615c;background:#d4d6d2}.piece-flow button.piece-flow-send.ready{color:#fff;background:#6ec8f2;animation:1.7s ease-in-out infinite piece-flow-send-glow;box-shadow:0 4px 14px #6ec8f245}.piece-flow button.piece-flow-send.ready:hover{background:#5ebced}.piece-flow-send svg{pointer-events:none;width:24px;height:24px;display:block;transform:translate(1px,-1px)rotate(8deg)}.piece-flow button.piece-flow-send.ready svg{animation:1.7s ease-in-out infinite piece-flow-send-ready}@keyframes piece-flow-send-ready{0%,to{transform:translate(1px,-1px)rotate(8deg)}35%{transform:translate(3px,-5px)rotate(18deg)}70%{transform:translate(0)rotate(4deg)}}@keyframes piece-flow-send-glow{0%,to{box-shadow:0 4px 12px #6ec8f238}50%{box-shadow:0 6px 18px #6ec8f270}}.piece-flow-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.piece-flow-actions>span{color:var(--muted);flex:1;font-size:12px}.piece-flow-actions .primary{margin-left:auto}.piece-flow-composer .piece-flow-actions{margin-top:8px}.piece-flow-hint{color:var(--muted);margin:10px 0;font-size:13px}.piece-flow-feedback{justify-content:space-between;align-items:center;gap:12px;display:flex}.piece-flow-feedback strong{font-size:14px;font-weight:550}.piece-flow-feedback p{color:var(--muted);margin:6px 0 0;font-size:12px}.piece-flow-summary{border-top:1px solid var(--line);margin-top:30px;padding:30px 0 20px}.piece-flow-summary>span,.piece-flow-summary p{color:var(--muted);font-size:13px}.piece-flow-summary h2{letter-spacing:-.04em;margin:12px 0;font-size:32px;font-weight:500}.piece-flow-summary h3{margin-top:26px;font-size:13px;font-weight:500}.piece-flow-summary ul{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.piece-flow-summary li{background:var(--surface);border-radius:6px;padding:6px 10px;font-size:13px}.piece-flow-notice{background:var(--warmSoft);color:var(--ink);flex-shrink:0;margin:0;padding:10px 24px;font-size:12px;line-height:1.5}@keyframes piece-flow-pop{0%{opacity:0;transform:translateY(40px)scale(.93)}68%{opacity:1;transform:translateY(-5px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:540px){.piece-flow-header{min-height:56px;padding:6px 16px}.piece-flow-scene{max-height:24vh;padding-left:16px;padding-right:16px}.piece-flow-thread{padding:4px 16px 16px}.piece-flow-exposure-label{right:8px}.piece-flow-response{padding:12px 16px max(12px, env(safe-area-inset-bottom))}.piece-flow-progress{padding-left:16px;padding-right:16px}.piece-flow-message{max-width:91%;padding:11px 14px}.piece-flow button{padding:9px 12px;font-size:14px}.piece-flow button.piece-flow-send{width:44px;height:44px;min-height:44px;padding:0}.piece-flow-actions>span{flex-basis:100%;margin-bottom:6px}.piece-flow-observe-bar>span{flex-basis:auto;margin:0}.piece-flow-feedback .primary{flex-shrink:0}}@media (prefers-reduced-motion:reduce){.piece-flow-message.arrive,.piece-flow-message.thinking,.piece-flow button.piece-flow-send.ready,.piece-flow button.piece-flow-send.ready svg{animation:none}.piece-flow-typing-dots i{opacity:.5;animation:none}}[data-theme=dark] .flow-workspace{--bubble-partner:#3a403c;--bubble-you:#6aa34a;--bubble-you-ink:#f3f7ea;--bubble-you-ok:#6aa34a;--bubble-you-miss:#b56a4e;--bubble-you-miss-ink:#f7ebe4}[data-theme=dark] .piece-flow button.piece-flow-send:disabled{color:#8f9690;background:#4e5550}[data-theme=dark] .piece-flow button.piece-flow-send.ready{color:#fff;background:#5eb8ea}.piece-flow-cloze{margin:0 0 14px;font-size:17px;line-height:1.9}.piece-flow-blank{border-bottom:2px solid var(--line);text-align:center;min-width:4.2em;margin:0 3px;padding:0 7px;display:inline-block}.piece-flow-blank.filled{border-bottom-color:var(--accent);background:var(--accentSoft);border-radius:4px 4px 0 0}.flow-difficulty{grid-template-columns:1fr 1fr 1fr;gap:10px;margin:0 0 22px;display:grid}.flow-difficulty button{text-align:left;border:1px solid var(--p-line);background:var(--p-surface);min-height:76px;color:var(--p-ink);cursor:pointer;font:inherit;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;display:flex}.flow-difficulty button.selected,.flow-difficulty button[aria-checked=true]{border-color:var(--p-accent);background:var(--p-soft);box-shadow:0 0 0 1px var(--p-accent)}.flow-difficulty strong{font-size:15px;font-weight:600}.flow-difficulty span{color:var(--p-muted);font-size:12px;line-height:1.45}.flow-workspace .flow-map i.easy,.flow-workspace .piece-legend i.easy{background:#d7c27a}.flow-workspace .flow-map i.normal,.flow-workspace .piece-legend i.normal{background:#7eae6a}.flow-workspace .flow-map i.pro,.flow-workspace .piece-legend i.pro{background:#2f6f4e}.flow-workspace .piece-status.easy{color:#6a5420;background:#f3e7c4}.flow-workspace .piece-status.normal{color:#2f5a28;background:#d7ead0}.flow-workspace .piece-status.pro{background:var(--p-accent);color:var(--p-surface)}.flow-modes{grid-template-columns:1fr 1fr}.flow-intro-note{max-width:570px;font-size:13px}.flow-source{color:var(--p-muted);overflow-wrap:anywhere;margin:12px 0 20px;font-size:11px}.flow-source summary{cursor:pointer;min-height:36px;padding:10px 0}.flow-source p{margin:8px 0}.flow-source h3{font-size:12px;font-weight:600}.flow-source a{text-underline-offset:3px;text-decoration:underline}.flow-source blockquote{border-left:2px solid var(--p-line);margin:14px 0;padding:0 0 0 14px}.flow-source cite{font-size:10px;font-style:normal}.piece-flow .flow-source{margin:0 0 4px}.piece-flow .flow-source summary{min-height:32px;padding:8px 0}.flow-source-note{color:var(--p-muted);font-size:11px;line-height:1.6}.flow-filters{grid-template-columns:2fr 1.2fr 1fr 1fr;gap:14px;margin:28px 0 12px;display:grid}.flow-filters label{color:var(--p-muted);flex-direction:column;gap:7px;min-width:0;font-size:11px;display:flex}.flow-filters input,.flow-filters select{border:1px solid var(--p-line);background:var(--p-surface);width:100%;min-width:0;min-height:44px;color:var(--p-ink);font:inherit;border-radius:9px;padding:9px 12px;font-size:13px}.flow-library-count{color:var(--p-muted);justify-content:space-between;align-items:center;margin:18px 0;font-size:12px;display:flex}.flow-library-row{border-bottom:1px solid var(--p-line)}.flow-library-row>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:20px 6px;list-style:none;display:flex}.flow-library-row>summary::-webkit-details-marker{display:none}.flow-library-row>summary b{font-size:15px;font-weight:550;line-height:1.5;display:block}.flow-library-row>summary small{color:var(--p-muted);margin-top:6px;font-size:11px;display:block}.flow-library-row>summary>span:first-child{flex:1}.flow-library-row>summary:after{content:"+";color:var(--p-muted);font-size:18px}.flow-library-row[open]>summary:after{content:"−"}.flow-library-preview{--surface:var(--p-surface);--line:var(--p-line);--muted:var(--p-muted);--accentSoft:var(--p-soft);max-width:660px;margin:0 auto;padding:0 12px 20px}.flow-library-preview .piece-flow-message{font-size:14px}.flow-pagination{color:var(--p-muted);justify-content:center;align-items:center;gap:24px;margin:28px 0;font-size:12px;display:flex}.flow-map{grid-template-columns:repeat(12,1fr)}.flow-workspace .piece-flow-divider{margin-top:24px;margin-bottom:16px}.flow-workspace .piece-flow-progress>span:last-of-type{white-space:nowrap}@media (max-width:760px){.flow-filters{grid-template-columns:1fr 1fr}.flow-difficulty{grid-template-columns:1fr}.flow-modes{grid-template-columns:1fr 1fr}.flow-modes .piece-mode{padding:18px}.flow-running .piece-header{gap:12px;min-height:62px;padding-top:10px;padding-bottom:8px}.flow-running .piece-nav{order:initial;flex:1;justify-content:center;width:auto}.flow-running .piece-nav button{padding:8px 10px;font-size:12px}.flow-running .piece-header-end{gap:8px}.flow-running .piece-brand{font-size:23px!important}.flow-running .piece-mark,.flow-running .piece-brand small{display:none}}@media (max-width:540px){.flow-modes{grid-template-columns:1fr}.flow-running .piece-header{flex-wrap:wrap;gap:4px 10px}.flow-running .piece-nav{flex-basis:100%;order:3;margin-top:4px}.flow-running .piece-header-end{margin-left:auto}.flow-running .piece-nav button{min-height:36px;padding:6px 18px}.flow-map{grid-template-columns:repeat(12,1fr)}.flow-library-row>summary{gap:10px}.flow-workspace .piece-section-title{align-items:flex-start;gap:14px}.flow-workspace .piece-section-title>span,.flow-workspace .piece-flow-feedback p{font-size:11px}}@media (max-height:520px){.flow-running .piece-header{min-height:48px;padding-top:4px;padding-bottom:4px}.flow-running .piece-nav{order:initial;flex-basis:auto;margin:0}.flow-running .piece-brand,.flow-running .piece-header-end{display:none}.flow-running .piece-flow-progress{padding-top:7px;padding-bottom:9px}.flow-running .piece-flow-scene{max-height:18vh;padding-bottom:6px}.flow-running .piece-flow-response{max-height:65%;padding-top:8px;padding-bottom:8px}}.flow-situation{color:var(--p-muted);overflow-wrap:anywhere;margin:12px 0 18px;font-size:13px;line-height:1.8}.flow-lesson-objective{margin:12px 0;font-size:14px;font-weight:550;line-height:1.8}.flow-usage-note,.flow-transfer-preview{color:var(--p-muted);margin:8px 0 22px;font-size:12px;line-height:1.8}.flow-usage-note summary,.flow-transfer-preview summary{cursor:pointer;min-height:36px;padding:8px 0}.flow-usage-note p{margin:8px 0}.flow-transfer-preview{border-top:1px solid var(--p-line);padding-top:14px}.flow-skill-goal{color:var(--p-muted);margin-bottom:0;font-size:11px;line-height:1.8}.piece-flow-feedback .flow-coaching{max-width:560px;margin-top:8px;font-size:12px;line-height:1.8}.piece-flow-feedback small{color:var(--p-muted);font-size:10px}.piece-flow-message.pending p{font-size:13px;line-height:1.8}@media (max-width:540px),(max-height:520px){.flow-running .piece-flow-response{max-height:45%}}@media (max-width:540px) and (min-height:521px){.flow-running .piece-flow-scene{max-height:18vh}.flow-running .piece-flow-response{max-height:40%}}@media (max-width:540px){.flow-running .piece-flow-thread{padding-bottom:6px}.flow-running .piece-flow-conversation.active>.piece-flow-message:last-child{margin-bottom:0}}
