/* Flow Coach. Self-contained styles shared by the introduction and learning app. */
.startup-ai-section { margin-top: 32px; margin-bottom: 40px; }
.flow-coach-app { margin-top: 28px; }
.flow-chat { --flow-ink:#25392f; --flow-muted:#718177; --flow-green:#255d45; --flow-line:#e3e9e2; display:grid; grid-template-columns:238px minmax(0,1fr); color:var(--flow-ink); background:#fff; border:0; border-radius:0; overflow:hidden; box-shadow:none; font-family:'Segoe UI',Arial,sans-serif; font-size:14px; line-height:1.55; text-align:left; }
.flow-chat *, .flow-chat *::before, .flow-chat *::after { box-sizing:border-box; }
.flow-chat p, .flow-chat h2, .flow-chat h3, .flow-chat ul, .flow-chat ol { margin:0; }
.flow-chat button, .flow-chat select, .flow-chat textarea { font:inherit; }
.flow-chat button { cursor:pointer; }
.flow-chat button:disabled { opacity:.45; cursor:not-allowed; }
.flow-chat a { color:inherit; }
.flow-chat :is(button,a,select,textarea,input):focus-visible { outline:3px solid #8bb09a; outline-offset:3px; }
.flow-chat [hidden] { display:none!important; }
.flow-chat-sidebar { display:flex; flex-direction:column; background:linear-gradient(160deg,#f3f6ef,#f8faf5); padding:28px 18px 23px; border-right:1px solid var(--flow-line); }
.flow-chat .flow-chat-brand { display:flex; align-items:center; gap:9px; padding:0 9px; color:#284937; text-decoration:none; font-size:23px; font-weight:750; letter-spacing:-1px; }
.flow-chat-brand svg { width:34px; height:34px; }
.flow-brand-coach { font-weight:400; }
.flow-chat .flow-sidebar-caption { font-size:8px; letter-spacing:1.5px; padding:0 9px; margin:8px 0 25px; color:#7a8a77; }
.flow-chat .flow-new-chat { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; border:1px solid #c9d7c6; border-radius:10px; background:#fff; padding:10px; font-weight:600; font-size:12px; color:#35533d; box-shadow:0 2px 4px #223b2604; }
.flow-new-chat span { font-size:19px; line-height:1; }
.flow-mode-heading { padding:25px 10px 9px; font-size:10px; font-weight:600; color:#869280; }
.flow-mode-list { display:grid; gap:6px; }
.flow-chat .flow-mode-list button { border:1px solid transparent; background:transparent; display:flex; gap:11px; padding:12px 10px; border-radius:10px; text-align:left; color:#65735f; }
.flow-chat .flow-mode-list button:hover { background:#eaf0e5; }
.flow-chat .flow-mode-list button[aria-pressed="true"] { background:#e1ebdc; border-color:#d4e1ce; color:#294b32; }
.flow-mode-icon { width:30px; height:30px; border-radius:9px; display:grid; place-items:center; background:#fff8; border:1px solid #ccd7c375; font-size:12px; font-weight:650; flex-shrink:0; }
.flow-mode-list b { display:block; font-size:12px; font-weight:600; }
.flow-mode-list small { display:block; font-size:10px; margin-top:2px; color:#7f8b77; }
.flow-sidebar-bottom { margin-top:auto; padding:40px 10px 0; }
.flow-sidebar-tag { font-size:8px; letter-spacing:1.5px; color:#7b8c72; }
.flow-chat .flow-sidebar-bottom p { margin-top:9px; color:#6e7f66; font-size:11px; line-height:1.7; }
.flow-chat .flow-sidebar-bottom #claude-api-plan { margin-top:18px; padding-top:14px; border-top:1px solid #dce4d7; font-size:10px; }
.flow-chat .flow-sidebar-bottom a { display:inline-block; margin-top:6px; color:#73846b; font-size:10px; text-decoration:none; }
.flow-chat-main { min-width:0; display:flex; flex-direction:column; }
.flow-chat-topbar { min-height:86px; padding:22px 30px; display:flex; justify-content:space-between; gap:15px; align-items:center; border-bottom:1px solid var(--flow-line); }
.flow-top-eyebrow { font-size:8px; letter-spacing:1.8px; color:#88968b; }
.flow-chat .flow-chat-topbar h2 { font-family:inherit; font-size:18px; font-weight:650; letter-spacing:-.35px; line-height:1.35; color:#263e30; margin-top:3px; }
.flow-service-status { display:flex; gap:6px; align-items:center; color:#748579; font-size:10px; }
.flow-service-status::before { content:''; width:6px; height:6px; border-radius:50%; background:#c7d1c9; flex-shrink:0; }
.flow-service-status[data-tone="ready"] { color:#4c805b; }
.flow-service-status[data-tone="ready"]::before { background:#5b9d67; box-shadow:0 0 0 3px #6e9e7512; }
.flow-service-status[data-tone="busy"]::before { background:#c5a05c; }
.flow-service-status[data-tone="error"] { color:#a45e45; }
.flow-service-status[data-tone="error"]::before { background:#b77958; }
.flow-goal-bar { min-height:49px; padding:10px 30px; display:flex; align-items:center; gap:11px; background:#fbfcfa; border-bottom:1px solid #edf0eb; font-size:10px; color:#81917f; }
.flow-chat .flow-goal-bar select { background:#fff; border:1px solid #e0e7dc; color:#4c624f; border-radius:6px; padding:4px 8px; max-width:100%; font-size:10px; }
.flow-quota { margin-left:auto; white-space:nowrap; font-size:10px; color:#93a08e; }
.flow-chat-thread { min-height:340px; height:370px; max-height:500px; overflow-y:auto; overscroll-behavior-y:auto; padding:30px; scrollbar-width:thin; scrollbar-color:#cedbcd transparent; }
.flow-welcome { max-width:530px; margin:0 auto; text-align:center; padding:2px 0; }
.flow-welcome-mark { margin:0 auto 13px; width:42px; height:42px; display:grid; place-items:center; border:1px solid #d8e5d3; border-radius:14px; background:#f0f5ec; color:#577651; transform:rotate(-4deg); }
.flow-welcome-mark svg { width:29px; height:29px; }
.flow-welcome-label { font-size:8px; letter-spacing:1.6px; color:#899b81; }
.flow-chat .flow-welcome h3 { font-family:inherit; color:#2b4333; font-size:26px; letter-spacing:-.7px; line-height:1.32; font-weight:550; margin:8px 0 12px; }
.flow-chat .flow-welcome p { color:#84917d; font-size:12px; line-height:1.7; }
.flow-suggestions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:22px; text-align:left; }
.flow-chat .flow-suggestions button { border:1px solid #e1e8dd; border-radius:10px; background:#fff; padding:11px 13px; text-align:left; color:#58714f; transition:background .15s,border-color .15s; }
.flow-chat .flow-suggestions button:hover { background:#f3f7ef; border-color:#baceb1; }
.flow-suggestions b { font-size:11px; display:block; font-weight:600; }
.flow-suggestions span { font-size:9px; display:block; color:#98a18e; margin-top:3px; }
.flow-chat .flow-composer { padding:16px 25px 18px; border:0; background:#fff; margin:0; display:block; }
.flow-input-shell { border:1px solid #d3dfce; border-radius:13px; background:#fcfdfb; box-shadow:0 3px 8px #26432603; }
.flow-input-shell:focus-within { border-color:#597e68; box-shadow:none; }
.flow-chat .flow-input-shell textarea { display:block; width:100%; min-height:76px; max-height:200px; resize:vertical; background:transparent; border:0; outline:none; border-radius:13px; padding:13px 15px 5px; font-size:12px; line-height:1.65; color:#304830; box-shadow:none; }
.flow-chat .flow-input-shell textarea::placeholder { color:#a0ab97; }
.flow-chat .flow-input-shell textarea:focus-visible { outline:none; outline-offset:0; }
.flow-compose-tools { display:flex; align-items:center; padding:4px 10px 9px 15px; gap:10px; font-size:8px; color:#a0ac98; }
#flow-character-count { margin-left:auto; white-space:nowrap; }
.flow-chat .flow-send { display:flex; gap:5px; align-items:center; justify-content:center; background:#2f6245; border:0; border-radius:8px; color:#fff; padding:7px 11px; font-size:10px; font-weight:600; }
.flow-send svg { width:15px; height:15px; }
.flow-send:hover:not(:disabled) { background:#224e35; }
.flow-chat .flow-send-notice { display:flex; align-items:flex-start; gap:7px; color:#7e8c76; font-size:9px; margin-top:10px; line-height:1.6; }
.flow-chat .flow-privacy-note { margin-top:5px; font-size:8px; color:#9ba591; }
.flow-privacy-note a { text-decoration:underline; text-underline-offset:2px; }
.flow-chat .flow-footnote { color:#a2ac99; font-size:8px; margin-top:6px; }
.flow-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.flow-message { padding-bottom:25px; max-width:100%; }
.flow-message-label { display:flex; align-items:center; gap:7px; margin-bottom:10px; font-size:10px; color:#6f8469; }
.flow-message-avatar { width:23px; height:23px; border-radius:8px; display:grid; place-items:center; background:#e8f0e1; color:#4d7040; font-weight:600; font-size:10px; }
.flow-message-user .flow-message-avatar { background:#f0eee6; color:#988770; }
.flow-message-content { margin-left:30px; font-size:12px; line-height:1.8; color:#4c6248; overflow-wrap:anywhere; }
.flow-message-user .flow-message-content { background:#f6f8f1; padding:12px 15px; border-radius:0 13px 13px 13px; white-space:pre-wrap; }
.flow-answer-summary { white-space:pre-wrap; }
.flow-feedback-section { margin-top:18px; }
.flow-chat .flow-feedback-section h3 { font:600 12px/1.6 'Segoe UI',Arial,sans-serif; color:#3e5a36; display:flex; align-items:center; gap:9px; margin-bottom:8px; letter-spacing:0; }
.flow-section-number { width:23px; height:23px; border-radius:7px; display:inline-grid; place-items:center; border:1px solid #dbe5d5; color:#89a079; font-size:8px; font-weight:500; }
.flow-chat .flow-feedback-section ul, .flow-chat .flow-feedback-section ol { padding-left:18px; }
.flow-chat .flow-feedback-section li + li { margin-top:8px; }
.flow-corrected { padding:14px 16px; border-left:3px solid #91ad79; border-radius:0 9px 9px 0; background:#f3f7ee; color:#436035; white-space:pre-wrap; }
.flow-error-pair { display:flex; flex-wrap:wrap; gap:8px; align-items:baseline; }
.flow-original { color:#a8745b; text-decoration:line-through; text-decoration-color:#c6ad9c; }
.flow-correction { color:#537640; font-weight:550; }
.flow-chat .flow-error-list p { color:#8b9880; font-size:11px; }
.flow-exercises { padding:13px 15px; background:#f6f8f1; border:1px solid #e3e9dc; border-radius:10px; }
.flow-chat .flow-response-note { font-size:9px; margin-top:16px; color:#96a28b; border-top:1px solid #edf0e7; padding-top:9px; }
.flow-inline-login { display:inline-block; margin-top:8px; color:#537744!important; font-weight:600; }
.flow-typing { display:flex; align-items:center; gap:4px; color:#92a285; }
.flow-typing span { width:4px; height:4px; border-radius:50%; background:#a5b797; animation:flow-typing 1.4s infinite; }
.flow-typing span:nth-child(2) { animation-delay:.2s; }.flow-typing span:nth-child(3) { animation-delay:.4s; }
.flow-typing p { margin-left:5px; font-size:10px; }
@keyframes flow-typing { 50% { opacity:.35; transform:translateY(-2px); } }
@media(min-width:1400px) { .flow-chat-thread { height:405px; } }
@media(max-width:800px) { .flow-chat { grid-template-columns:190px minmax(0,1fr); }.flow-chat-sidebar { padding:24px 12px; }.flow-chat-topbar,.flow-chat-thread { padding:22px; }.flow-input-help { display:none; }.flow-chat .flow-composer { padding:14px 18px; }.flow-suggestions { grid-template-columns:1fr; }.flow-welcome-mark { display:none; }.flow-chat .flow-welcome h3 { font-size:23px; }.flow-goal-bar { padding:10px 20px; } }
@media(max-width:600px) { .startup-ai-section { margin:18px auto 28px; }.flow-chat { grid-template-columns:minmax(0,1fr); border-radius:17px; }.flow-chat-sidebar { padding:15px; border-right:0; border-bottom:1px solid var(--flow-line); display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; }.flow-chat .flow-chat-brand { padding:0; font-size:21px; }.flow-chat-brand svg { width:28px; height:28px; }.flow-chat .flow-new-chat { width:auto; font-size:0; padding:7px 10px; }.flow-new-chat span { font-size:22px; }.flow-sidebar-caption,.flow-mode-heading { display:none; }.flow-mode-list { grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }.flow-chat .flow-mode-list button { flex-direction:column; align-items:center; padding:8px 2px; gap:4px; text-align:center; }.flow-mode-list small { display:none; }.flow-mode-list b { font-size:10px; }.flow-mode-icon { width:24px; height:24px; font-size:10px; }.flow-sidebar-bottom { grid-column:1/-1; padding:0; margin:0; }.flow-sidebar-bottom>*:not(#claude-api-plan) { display:none; }.flow-chat .flow-sidebar-bottom #claude-api-plan { margin:0; padding:0; border:0; font-size:9px; }.flow-chat-topbar { min-height:68px; padding:14px 17px; }.flow-top-eyebrow { font-size:7px; }.flow-service-status { font-size:9px; max-width:105px; }.flow-goal-bar { padding:9px 15px; gap:8px; flex-wrap:wrap; }.flow-goal-bar label { display:none; }.flow-goal-bar select { max-width:215px; }.flow-quota { font-size:8px; }.flow-chat-thread { padding:22px 17px; height:390px; min-height:300px; }.flow-chat .flow-welcome h3 { font-size:23px; }.flow-welcome-label { font-size:7px; }.flow-chat .flow-welcome p { font-size:11px; }.flow-suggestions { grid-template-columns:1fr 1fr; gap:7px; }.flow-chat .flow-suggestions button { padding:10px; }.flow-suggestions b { font-size:10px; }.flow-suggestions span { font-size:8px; }.flow-chat .flow-composer { padding:12px 14px; }.flow-message-content { margin-left:0; }.flow-chat .flow-send-notice { font-size:10px; }.flow-chat .flow-privacy-note,.flow-chat .flow-footnote { font-size:9px; } }
@media(prefers-reduced-motion:reduce) { .flow-chat * { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Readable UI type and stronger text contrast at both desktop and mobile sizes. */
.flow-chat .flow-top-eyebrow,.flow-chat .flow-welcome-label,.flow-chat .flow-sidebar-tag{font-size:10px;color:#66785c}
.flow-chat .flow-chat-topbar h2{font-size:21px}
.flow-chat .flow-service-status,.flow-chat .flow-goal-bar,.flow-chat .flow-goal-bar select,.flow-chat .flow-quota{font-size:12px;color:#586f50}
.flow-chat .flow-sidebar-caption{font-size:9px;color:#66785c}
.flow-chat .flow-mode-heading,.flow-chat .flow-mode-list small{font-size:11px;color:#6f8066}
.flow-chat .flow-mode-list b,.flow-chat .flow-new-chat{font-size:13px}
.flow-chat .flow-sidebar-bottom p,.flow-chat .flow-sidebar-bottom #claude-api-plan,.flow-chat .flow-sidebar-bottom a{font-size:11px;color:#66775e}
.flow-chat .flow-welcome h3{font-size:29px}
.flow-chat .flow-welcome p{font-size:13px;color:#65795b}
.flow-chat .flow-suggestions b{font-size:12px}.flow-chat .flow-suggestions span{font-size:11px;color:#6c7e61}
.flow-chat .flow-input-shell textarea{font-size:14px}.flow-chat .flow-input-shell textarea::placeholder{color:#7b8b71}
.flow-chat .flow-compose-tools,.flow-chat .flow-input-help{font-size:10px;color:#73836a}.flow-chat .flow-send{font-size:12px}
.flow-chat .flow-send-notice{font-size:11px;color:#66785c}.flow-chat .flow-privacy-note,.flow-chat .flow-footnote{font-size:10px;color:#6f8066}
.flow-chat .flow-message-label{font-size:12px}.flow-chat .flow-message-content{font-size:14px}
.flow-chat .flow-feedback-section h3{font-size:14px}.flow-chat .flow-error-list p{font-size:13px;color:#667b5b}
.flow-chat .flow-response-note{font-size:11px;color:#6c7e60}
@media(max-width:600px){.flow-chat .flow-welcome h3{font-size:25px}.flow-chat .flow-mode-list b{font-size:11px}.flow-chat .flow-new-chat{font-size:0}.flow-chat .flow-quota{font-size:10px}.flow-chat .flow-suggestions span{font-size:10px}.flow-chat .flow-service-status{font-size:10px}.flow-chat .flow-goal-bar select{font-size:11px}.flow-chat .flow-welcome p br{display:none}.flow-chat .flow-suggestions{grid-template-columns:1fr}.flow-chat-thread{height:430px}}
