:root{--accent: #0a84ff;--accent-pressed: #006edb;--accent-soft: rgba(10, 132, 255, .12);--bg: #f2f2f7;--card: #ffffff;--secondary-bg: #f9f9fb;--fill: #e5e5ea;--fill-strong: #d1d1d6;--separator: rgba(60, 60, 67, .16);--text: #1c1c1e;--muted: #6e6e73;--green: #248a3d;--yellow: #a66f00;--red: #d70015;--green-bg: #e8f7ee;--yellow-bg: #fff6d6;--red-bg: #fff0f0;--gap: #e5e5ea;--shaky: #ffe8a3;--secure: #d8f5df;--mastered: #30a46c;--radius: 8px;--control-radius: 12px;--shadow: none}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:18px;line-height:1.45;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}input[type=checkbox]{accent-color:var(--accent)}input[type=file]{max-width:100%;font:inherit;color:var(--muted)}.app{max-width:760px;margin:0 auto;padding:16px;min-height:100%;display:flex;flex-direction:column}h1,h2,p{overflow-wrap:anywhere}h1{font-size:1.55rem;font-weight:750;letter-spacing:0;line-height:1.12;margin:.45em 0}h2{font-size:1.18rem;font-weight:700;letter-spacing:0;line-height:1.2;margin:.45em 0}.card{background:var(--card);border:1px solid var(--separator);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:14px}button{font:inherit;border:1px solid var(--separator);border-radius:var(--control-radius);padding:11px 18px;min-height:44px;min-width:44px;background:var(--fill);color:var(--text);cursor:pointer;touch-action:manipulation}button:active{transform:scale(.985)}button:focus-visible,.answer-input:focus-visible,textarea.journal:focus-visible,summary:focus-visible{outline:3px solid rgba(10,132,255,.32);outline-offset:2px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:650}button.primary:active{background:var(--accent-pressed)}button.big{width:100%;min-height:56px;font-size:1.15rem;padding:15px 20px}.row>button.big{flex:1 1 auto;min-width:0;width:auto}button.ghost{background:transparent;border-color:transparent;color:var(--accent);font-weight:600}button:disabled{cursor:default;opacity:.45;transform:none}button.card{display:block;color:var(--text)}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.center{text-align:center}.muted{color:var(--muted);font-size:.9em}.spacer{flex:1}.topbar{min-height:48px;margin-bottom:8px}.topbar h1{margin:0;min-width:0;text-align:right}.action-row{justify-content:center;margin-top:10px}.field-gap{height:12px}.content-gap{height:14px;flex-shrink:0}.field-block{margin:10px 0}.setup-card{margin-top:20vh}.profile-switch{margin-bottom:10px}.check-row{margin-bottom:8px}.soft-panel{background:var(--secondary-bg);border:1px solid var(--separator);border-radius:var(--radius);padding:12px 16px}.success-card{background:var(--green-bg)}.warning-card{background:var(--yellow-bg)}.danger-button{background:var(--red-bg);border-color:#d7001538;color:var(--red)}.progressbar{height:6px;background:var(--fill);border-radius:999px;overflow:hidden;margin:8px 0 16px}.progressbar>div{height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.segbar{display:flex;gap:6px;margin:8px 0 16px}.seg{display:flex;flex-direction:column;gap:4px;min-width:0}.seg-track{height:6px;background:var(--fill);border-radius:999px;overflow:hidden}.seg-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.seg-label{color:var(--muted);font-size:.7rem;opacity:.62;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seg-label.on{opacity:1;font-weight:650}.dayplan{text-align:left;background:var(--secondary-bg);border:1px solid var(--separator);border-radius:var(--radius);padding:12px 16px;margin:10px 0 16px}.dayplan p{margin:7px 0}.prompt{font-size:1.42rem;font-weight:650;line-height:1.25;margin:18px 0}.prompt.reading{font-size:1.12rem;font-weight:400;line-height:1.7}.choices{display:flex;flex-direction:column;gap:12px}.choices button{background:#fff;border:1px solid var(--separator);border-radius:var(--radius);font-size:1.12rem;min-height:54px;padding:15px 18px;text-align:left}.choices button.sel{background:var(--accent-soft);border-color:var(--accent)}.choices button.ok{background:var(--green-bg);border-color:#248a3d61}.choices button.no{background:var(--red-bg);border-color:#d7001557}.answer-input{width:100%;min-height:54px;padding:12px 16px;border:1px solid var(--separator);border-radius:var(--radius);background:#fff;color:var(--text);font:inherit;font-size:1.35rem}.answer-input:focus{border-color:var(--accent);outline:none}.feedback-ok{color:var(--green);font-size:1.25rem;font-weight:750}.feedback-no{color:var(--text)}.steps{background:var(--secondary-bg);border:1px solid var(--separator);border-radius:var(--radius);padding:14px 18px;margin:12px 0}.steps li{margin:6px 0}.chip{min-height:44px;border-radius:999px;padding:9px 16px;background:#fff;border:1px solid var(--separator);color:var(--text);font-size:.98rem}.chip.sel{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:650}.timerbar{color:var(--muted);font-size:.95rem;font-variant-numeric:tabular-nums}.map-domain{margin-bottom:18px}.map-grid{display:flex;flex-wrap:wrap;gap:8px}.map-cell{width:84px;height:64px;border:1px solid rgba(60,60,67,.12);border-radius:var(--radius);padding:6px;color:#1c1c1ec7;display:flex;align-items:flex-end;font-size:.62rem;line-height:1.15;overflow:hidden;text-align:left}.map-cell.unknown{background:#f2f2f7}.map-cell.gap{background:var(--gap)}.map-cell.shaky{background:var(--shaky)}.map-cell.secure{background:var(--secure)}.map-cell.mastered{background:var(--mastered);color:#fff}.sticky-status{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom));box-shadow:0 8px 24px #00000014}table.heat{border-collapse:collapse;width:100%;font-size:.86rem}table.heat td,table.heat th{border-bottom:1px solid var(--separator);padding:8px;text-align:left;vertical-align:top}table.heat tr:last-child td,table.heat tr:last-child th{border-bottom:0}.dot{display:inline-block;width:14px;height:14px;border:1px solid rgba(60,60,67,.12);border-radius:50%;margin-right:4px;vertical-align:-2px}.ampel{display:flex;gap:8px}.ampel button{width:44px;height:44px;border-radius:50%;opacity:.42;padding:0}.ampel button.on{opacity:1;outline:3px solid var(--text);outline-offset:2px}.ampel .g{background:#34c759}.ampel .y{background:#fc0}.ampel .r{background:#ff3b30}.home-tiles{display:grid;grid-template-columns:1fr 1fr;gap:14px}.home-tiles .card{margin:0;padding:20px 14px;text-align:center;font-weight:650}.tile-emoji{display:block;font-size:2rem;line-height:1;margin-bottom:8px}.tile-note{display:block;font-weight:400;margin-top:4px}.streak{color:var(--muted);font-size:.95rem}.journal-photo{width:100%;border-radius:var(--radius)}.journal-thumb{width:72px;height:72px;border-radius:var(--radius);object-fit:cover}.journal-picker{margin-bottom:10px}.journal-toggle{margin:8px 0}.journal-toggle input{width:24px;height:24px;flex:0 0 auto}textarea.journal{width:100%;min-height:92px;margin-bottom:10px;border:1px solid var(--separator);border-radius:var(--radius);padding:12px 14px;background:#fff;color:var(--text);font:inherit;font-size:1.08rem;resize:vertical}textarea.journal:focus{border-color:var(--accent);outline:none}.tts-btn{width:50px;height:50px;border-radius:50%;padding:0;flex-shrink:0;background:var(--accent-soft);border-color:transparent;color:var(--accent);font-size:1.3rem}.color-swatch{width:52px;height:52px;border-radius:50%;padding:0}.color-swatch.on{outline:3px solid var(--text);outline-offset:2px}summary{min-height:44px;padding:8px 0;cursor:pointer}hr{border:0;border-top:1px solid var(--separator)}@media print{body{background:#fff;font-size:12px}.no-print{display:none!important}.app{max-width:none;padding:0}.card{box-shadow:none;border:1px solid #ddd;page-break-inside:avoid}}@media(max-width:520px){.app{padding:12px}.topbar h1{font-size:1.24rem}.action-row{align-items:stretch;flex-direction:column}.home-tiles{grid-template-columns:1fr}}@media(max-width:420px){body{font-size:17px}.card{padding:16px}.row.spread{align-items:flex-start}.prompt{font-size:1.28rem}}
