:root { color-scheme: dark; --amber:#f4b942; --bg:#0b0d10; --line:#30363d; --muted:#89919c; --success:#54c58a; --surface:#15191e; --text:#f7f7f2; font-family:Inter,system-ui,sans-serif; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; min-height:100vh; color:var(--text); background:var(--bg); }
button,textarea { font:inherit; } button { cursor:pointer; } h1,h2,h3,p { margin:0; } button:focus-visible,textarea:focus-visible { outline:2px solid var(--amber); outline-offset:2px; }
.app-frame { min-height:100vh; display:flex; }
.rail { position:fixed; inset:0 auto 0 0; z-index:5; width:88px; display:flex; flex-direction:column; align-items:center; justify-content:space-between; padding:28px 0; border-right:1px solid var(--line); background:var(--bg); }
.logo,.avatar { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; font:800 15px Lexend,sans-serif; }
.logo { border:0; color:var(--bg); background:var(--amber); }.avatar { border:1px solid var(--line); font-size:13px; }
.rail-links { display:grid; gap:14px; }.rail-button { width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:12px; color:var(--muted); background:transparent; }.rail-button.active { color:var(--amber); background:var(--surface); }.rail-button svg { width:20px; fill:none; stroke:currentColor; stroke-width:2; }
.workspace { width:100%; min-height:100vh; margin-left:88px; padding:34px 40px; }
.page-head,.practice-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }.page-head h1,.practice-head h1 { margin-top:7px; font:750 36px/1.15 Lexend,sans-serif; letter-spacing:-.045em; }.eyebrow { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.eyebrow.success,.success { color:var(--success); }.eyebrow.amber,.amber { color:var(--amber); }
.office { display:flex; align-items:center; gap:14px; color:var(--muted); font-size:13px; }.office b,.stable { padding:10px 14px; border:1px solid var(--line); border-radius:14px; color:var(--text); background:var(--surface); }
.daily-grid { display:grid; grid-template-columns:minmax(0,1fr) 338px; gap:24px; }.daily-main,.daily-side { display:grid; align-content:start; gap:18px; }
.pattern-hero { min-height:430px; display:flex; flex-direction:column; justify-content:space-between; padding:30px; border-radius:24px; color:var(--bg); background:var(--amber); }.hero-top,.hero-bottom { display:flex; align-items:center; justify-content:space-between; gap:18px; }.hero-top span { font-size:12px; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }.hero-top b { padding:8px 11px; border:1px solid rgba(11,13,16,.25); border-radius:12px; font-size:12px; }.pattern-hero h2 { max-width:820px; font:800 clamp(34px,4vw,55px)/1.1 Lexend,sans-serif; letter-spacing:-.06em; }.pattern-hero p { max-width:650px; margin-top:16px; font-size:17px; line-height:1.55; }.pattern-hero s { opacity:.42; }.chips { display:flex; flex-wrap:wrap; gap:8px; }.chips span { padding:8px 11px; border-radius:10px; font-size:12px; font-weight:700; background:rgba(11,13,16,.1); }.pattern-hero button { height:52px; padding:0 22px; border:0; border-radius:16px; color:var(--amber); background:var(--bg); font-weight:850; }
.card { padding:22px; border:1px solid var(--line); border-radius:22px; background:var(--surface); }.card-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }.card-title h3,.card h3 { font:700 18px/1.3 Lexend,sans-serif; letter-spacing:-.03em; }.card-title span { color:var(--muted); font-size:12px; }
.map-row { display:grid; grid-template-columns:8px minmax(0,1fr) 40px; align-items:center; gap:12px; margin-top:18px; }.map-row i { width:8px; height:8px; border-radius:50%; background:var(--muted); }.map-row strong { display:block; margin-bottom:7px; font-size:13px; }.map-row em { color:var(--muted); font-size:12px; font-style:normal; font-weight:800; text-align:right; }.bar { height:4px; overflow:hidden; border-radius:4px; background:var(--line); }.bar b { display:block; height:100%; background:var(--muted); }.map-row.active-pattern i,.map-row.active-pattern .bar b { background:var(--amber); }.map-row.active-pattern em { color:var(--amber); }.map-row.mastered i,.map-row.mastered .bar b { background:var(--success); }.map-row.mastered em { color:var(--success); }
.due span,.captured span,.room-entry span,.timeline span,.evidence span { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.due strong { display:block; margin-top:12px; font:650 17px/1.35 Lexend,sans-serif; }.due p,.why p,.adaptive p { margin-top:9px; color:var(--muted); font-size:13px; line-height:1.5; }.mini-stat { display:flex; align-items:baseline; gap:12px; padding:3px 4px; }.mini-stat b { color:var(--success); font:800 32px Lexend,sans-serif; }.mini-stat span { color:var(--muted); font-size:12px; }
.captured { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:16px; padding:20px 22px; border:1px solid var(--line); border-radius:22px; background:var(--surface); }.captured .plus { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; color:var(--success); background:rgba(84,197,138,.12); font-size:22px; }.captured strong { display:block; margin-top:5px; font:650 17px Lexend,sans-serif; }.captured em { color:var(--muted); font-size:12px; font-style:normal; }.room-entry { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:17px 22px; border:1px solid var(--line); border-radius:18px; color:var(--text); background:transparent; text-align:left; }.room-entry strong { font-size:13px; }
.practice-head { align-items:center; }.practice-head>div:nth-child(2) { flex:1; }.back { width:38px; height:38px; border:1px solid var(--line); border-radius:12px; color:var(--text); background:transparent; }.stable { color:var(--success); background:rgba(84,197,138,.1); }
.practice-grid { display:grid; grid-template-columns:300px minmax(380px,1fr) 270px; gap:24px; min-height:690px; }.practice-context { display:grid; align-content:start; gap:18px; }.practice-context .card:first-child { display:grid; gap:14px; }.practice-context hr { width:100%; border:0; border-top:1px solid var(--line); }.practice-context p { font-size:14px; }.practice-context .wrong { color:var(--muted); text-decoration:line-through; }.practice-context .right { color:var(--success); font-weight:800; }.practice-context .pressure-note { color:var(--muted); font-size:12px; line-height:1.5; }.why small { display:block; margin-top:12px; color:var(--muted); }
.challenge { min-height:660px; display:flex; flex-direction:column; justify-content:space-between; padding:28px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }.challenge-top { display:flex; justify-content:space-between; color:var(--muted); font-size:11px; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }.challenge-top span { color:var(--amber); }.challenge-copy p { color:var(--muted); font-size:14px; }.challenge-copy h2 { max-width:720px; margin-top:18px; font:650 clamp(25px,2.5vw,36px)/1.3 Lexend,sans-serif; letter-spacing:-.04em; }.challenge-copy small { display:block; margin-top:14px; color:var(--muted); font-size:12px; }.practice-form { display:grid; gap:10px; }.practice-form textarea { width:100%; min-height:110px; resize:none; padding:17px 18px; border:1px solid var(--line); border-radius:16px; outline:0; color:var(--text); background:var(--bg); font-size:16px; line-height:1.5; }.practice-form>div:last-child { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--muted); font-size:12px; }.practice-form button,.primary,.next-step button { min-height:46px; padding:0 19px; border:0; border-radius:14px; color:var(--bg); background:var(--amber); font-weight:850; }.attempt-feedback { padding:13px 15px; border-radius:13px; font-size:13px; line-height:1.45; }.attempt-feedback.correct { color:var(--success); background:rgba(84,197,138,.1); }.attempt-feedback.retry { color:#ffbd8b; background:rgba(255,139,71,.09); }
.ladder h3 { margin-bottom:24px; }.ladder-step { position:relative; min-height:76px; display:flex; gap:12px; }.ladder-step:not(:last-of-type)::after { content:""; position:absolute; left:8px; top:18px; bottom:0; width:2px; background:var(--line); }.ladder-step i { z-index:1; width:18px; height:18px; flex:0 0 18px; border:2px solid var(--line); border-radius:50%; background:var(--surface); }.ladder-step strong,.ladder-step span { display:block; font-size:13px; }.ladder-step span { margin-top:4px; color:var(--muted); font-size:12px; }.ladder-step.done i { border-color:var(--success); background:var(--success); }.ladder-step.done::after { background:var(--success); }.ladder-step.current i { border-color:var(--amber); background:var(--amber); box-shadow:0 0 0 5px rgba(244,185,66,.1); }.ladder-step.current strong { color:var(--amber); }.adaptive { margin-top:8px; padding:16px; border:1px solid var(--line); border-radius:16px; }.adaptive span { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.review-grid { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:24px; }.review-main { display:grid; align-content:start; gap:18px; }.confidence { display:grid; grid-template-columns:245px 1fr; overflow:hidden; border-radius:22px; background:var(--surface); }.confidence>div { padding:26px; color:var(--bg); background:var(--amber); }.confidence b,.confidence span { display:block; }.confidence b { font:850 66px Lexend,sans-serif; letter-spacing:-.07em; }.confidence span { font-size:11px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }.confidence article { display:flex; flex-direction:column; justify-content:center; padding:26px; }.confidence h2 { font:700 24px Lexend,sans-serif; }.confidence p { max-width:620px; margin-top:10px; color:var(--muted); line-height:1.55; }.evidence { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.evidence article { min-height:160px; display:flex; flex-direction:column; padding:20px; border:1px solid var(--line); border-radius:20px; background:var(--surface); }.evidence strong { margin-top:16px; font:650 17px/1.4 Lexend,sans-serif; }.evidence em { margin-top:auto; color:var(--success); font-size:12px; font-style:normal; font-weight:750; }.next-step { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; border:1px solid var(--line); border-radius:22px; }.next-step h3 { font:650 18px Lexend,sans-serif; }.next-step p { margin-top:5px; color:var(--muted); font-size:13px; }.timeline h3 { margin-bottom:24px; }.timeline-row { display:flex; gap:12px; min-height:76px; }.timeline-row i { width:9px; height:9px; flex:0 0 9px; margin-top:4px; border:2px solid var(--line); border-radius:50%; }.timeline-row.done i { border-color:var(--success); background:var(--success); }.timeline-row strong,.timeline-row span { display:block; font-size:13px; }.timeline-row span { margin-top:5px; color:var(--muted); font-size:12px; }
.rooms-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.room-card { min-height:330px; display:flex; flex-direction:column; align-items:flex-start; padding:26px; border:1px solid var(--line); border-radius:24px; color:var(--text); background:var(--surface); text-align:left; }.room-card:hover,.room-card.selected { border-color:var(--amber); }.room-card span { color:var(--amber); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.room-card h2 { margin-top:38px; font:700 26px/1.2 Lexend,sans-serif; letter-spacing:-.04em; }.room-card p { margin-top:15px; color:var(--muted); line-height:1.55; }.room-card b { margin-top:auto; color:var(--amber); }
.session-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; }.session-main { height:calc(100dvh - 68px); min-height:620px; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:24px; background:var(--surface); }.session-head { display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--line); }.session-head h2 { margin-top:5px; font:700 24px Lexend,sans-serif; }.progress { display:flex; gap:5px; }.progress i { width:28px; height:4px; border-radius:2px; background:var(--line); }.progress i.done { background:var(--amber); }.conversation { min-height:0; flex:1; display:flex; flex-direction:column; gap:16px; padding:24px; overflow-y:auto; }.message { max-width:74%; padding:14px 16px; border-radius:18px; font-size:15px; line-height:1.5; }.message.executive { align-self:flex-start; border:1px solid var(--line); border-bottom-left-radius:5px; background:var(--bg); }.message.user { align-self:flex-end; border-bottom-right-radius:5px; color:var(--bg); background:var(--text); }.speaker { display:block; margin-bottom:7px; color:var(--amber); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.composer { flex-shrink:0; padding:18px; border-top:1px solid var(--line); }.coach-note,.key-hint { margin-bottom:10px; color:var(--muted); font-size:12px; }.key-hint { margin:9px 0 0; text-align:right; }.input-wrap { display:flex; align-items:flex-end; gap:10px; padding:10px; border:1px solid var(--line); border-radius:18px; background:var(--bg); }.input-wrap textarea { min-height:46px; flex:1; resize:none; padding:11px 8px; border:0; outline:0; color:var(--text); background:transparent; }.send { width:46px; height:46px; border:0; border-radius:14px; color:var(--bg); background:var(--amber); font-size:20px; font-weight:800; }.brief { position:sticky; top:34px; }.brief h3 { margin-top:14px; }.brief p { margin-top:16px; color:var(--muted); line-height:1.55; }
.loading { min-height:75vh; display:grid; place-content:center; text-align:center; }.loading-mark { width:54px; height:54px; margin:0 auto 20px; border:5px solid var(--line); border-top-color:var(--amber); border-radius:50%; animation:spin .9s linear infinite; }.loading p { margin-top:12px; color:var(--muted); }.room-review { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:24px; }.correction { padding:28px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }.correction h2 { margin-top:16px; }.correction>p { margin-top:16px; color:var(--muted); line-height:1.55; }.correction .old { text-decoration:line-through; }.correction .fix { color:var(--text); font:650 24px Lexend,sans-serif; }.executive-version { margin-top:24px; padding:18px; border-left:3px solid var(--amber); background:var(--bg); }.executive-version p { margin-top:8px; color:var(--text); }.review-actions { display:flex; flex-direction:column; gap:12px; }.review-actions h2 { margin:12px 0 20px; font:650 23px/1.3 Lexend,sans-serif; }.primary,.secondary { width:100%; }.secondary { min-height:46px; border:1px solid var(--line); border-radius:14px; color:var(--text); background:transparent; font-weight:750; }.error { margin-bottom:10px; padding:12px; border:1px solid #d95c5c; border-radius:12px; color:#ffb8b8; }.typing .dots { display:inline-flex; gap:5px; }.typing .dots i { width:7px; height:7px; border-radius:50%; background:var(--muted); animation:blink 1.2s infinite; }
@keyframes spin { to { transform:rotate(360deg); } } @keyframes blink { 50% { opacity:.2; } }
@media (max-width:1050px) { .practice-grid { grid-template-columns:240px minmax(360px,1fr); }.ladder { display:none; }.daily-grid,.review-grid { grid-template-columns:minmax(0,1fr) 300px; }.rooms-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { .rail { position:fixed; inset:auto 0 0; width:100%; height:68px; flex-direction:row; padding:10px 18px; border-top:1px solid var(--line); border-right:0; }.rail-links { display:flex; }.avatar { display:none; }.workspace { margin:0 0 68px; padding:22px 18px; }.page-head,.practice-head { align-items:flex-start; }.page-head h1,.practice-head h1 { font-size:29px; }.office>span { display:none; }.daily-grid,.review-grid,.practice-grid,.session-layout,.room-review { grid-template-columns:1fr; }.daily-side,.practice-context,.brief { display:none; }.pattern-hero { min-height:540px; padding:24px; }.pattern-hero h2 { font-size:40px; }.hero-bottom { align-items:flex-start; flex-direction:column; }.pattern-hero button { width:100%; }.captured { grid-template-columns:44px 1fr; }.captured em { display:none; }.room-entry { align-items:flex-start; flex-direction:column; }.challenge { min-height:calc(100dvh - 190px); padding:22px; }.confidence { grid-template-columns:1fr; }.confidence>div { display:flex; align-items:baseline; gap:14px; }.confidence b { font-size:48px; }.evidence,.rooms-grid { grid-template-columns:1fr; }.timeline { display:none; }.next-step { align-items:flex-start; flex-direction:column; }.next-step button { width:100%; }.room-card { min-height:270px; }.session-main { height:calc(100dvh - 112px); min-height:0; }.message { max-width:88%; }.key-hint { display:none; } }
