:root{
  --bg:#eef3f8;--card:#fff;--text:#0c203b;--muted:#6e7f94;--line:#dbe4ed;
  --blue:#1769d2;--blue2:#0f5cbd;--blue-soft:#e8f2ff;--green:#13885b;--green-soft:#e8f7ef;
  --shadow:0 12px 34px rgba(24,52,84,.08);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
body{min-height:100svh}
button,input,textarea{font:inherit}
button{touch-action:manipulation}
#app{min-height:100svh}
.boot{min-height:100svh;display:flex;align-items:center;justify-content:center;gap:14px;padding:24px}
.boot img{width:58px;height:58px;border-radius:16px;box-shadow:var(--shadow)}
.boot strong,.boot span{display:block}.boot strong{font-size:24px}.boot span{margin-top:4px;color:var(--muted)}
.page{width:100%;max-width:760px;margin:0 auto;padding:calc(10px + env(safe-area-inset-top)) 8px calc(14px + env(safe-area-inset-bottom))}
.home{min-height:100svh;display:flex;flex-direction:column;justify-content:center;gap:13px}
.home-head{display:flex;align-items:center;justify-content:space-between;width:95%;margin:0 auto}
.brand{display:flex;align-items:center;gap:11px}.brand img{width:50px;height:50px;border-radius:15px;box-shadow:0 8px 22px rgba(13,29,52,.14)}
.brand strong{display:block;font-size:27px;letter-spacing:-.035em}.brand small{display:block;margin-top:3px;color:var(--muted);font-weight:800;letter-spacing:.05em}
.badge{background:#fff;border:1px solid var(--line);border-radius:15px;padding:9px 13px;color:var(--muted);font-weight:900}
.hero{width:97%;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:27px;padding:24px 18px 18px;box-shadow:var(--shadow)}
.eyebrow{font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--blue);margin-bottom:9px}
.hero h1{font-size:46px;line-height:.99;letter-spacing:-.055em;margin:0;font-weight:950}
.hero p{color:var(--muted);font-size:18px;line-height:1.42;font-weight:650;margin:14px 0 0}
.progress-card{margin-top:18px;background:#f3f6fa;border:1px solid #e4eaf1;border-radius:18px;padding:14px}
.progress-head{display:flex;justify-content:space-between;gap:12px;color:#56687c;font-size:14px;font-weight:850}.progress-head strong{color:var(--text)}
.track{height:10px;border-radius:999px;background:#dce5ee;overflow:hidden;margin-top:10px}.fill{height:100%;background:linear-gradient(90deg,var(--blue),#5096ef);border-radius:999px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.stat{background:#f1f5f9;border:1px solid #e4eaf1;border-radius:17px;padding:13px 9px}
.stat strong{display:block;font-size:25px;letter-spacing:-.04em}.stat span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:900;letter-spacing:.04em;margin-top:4px}
.sync{width:max-content;max-width:100%;margin:10px auto 0;background:var(--green-soft);color:var(--green);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:900}
.sync:before{content:"";display:inline-block;width:8px;height:8px;background:#24b979;border-radius:50%;margin-right:7px}
.actions{width:93%;margin:0 auto;display:grid;gap:10px}.mode{width:100%;min-height:102px;border:0;border-radius:24px;padding:15px 16px;display:grid;grid-template-columns:54px 1fr 28px;align-items:center;gap:12px;text-align:left;box-shadow:0 10px 25px rgba(13,29,52,.09)}
.mode.fast{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.mode.deep{background:linear-gradient(135deg,#dfe6ee,#edf2f6);color:var(--text)}
.mode-icon{width:54px;height:54px;border-radius:17px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16);font-size:26px}.deep .mode-icon{background:rgba(13,29,52,.07)}
.mode strong{display:block;font-size:24px;line-height:1.08}.mode small{display:block;margin-top:4px;font-size:13px;font-weight:800;opacity:.78}.arrow{font-size:38px;opacity:.7}
.quiz{padding-left:6px;padding-right:6px}.quiz-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 5px 10px}
.counter{font-size:17px;font-weight:900}.top-actions{display:flex;align-items:center;gap:7px}.sync-mini{font-size:12px;color:var(--muted);font-weight:800}.menu-btn{border:0;border-radius:11px;background:#e3e9f0;color:var(--text);padding:9px 11px;font-size:13px;font-weight:900}
.q-progress{height:9px;background:#dde5ed;border-radius:999px;overflow:hidden;margin:0 5px 10px}.q-progress div{height:100%;background:var(--blue)}
.question-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:17px 9px 12px;box-shadow:0 9px 24px rgba(18,35,58,.05)}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin:0 2px 12px}.tag{font-size:11px;font-weight:850;color:#596b7e;background:#eef2f6;border-radius:999px;padding:6px 8px}
.stem{font-size:25px;font-weight:800;line-height:1.43;letter-spacing:-.016em;margin:0 3px 15px;overflow-wrap:anywhere}
.stem table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:16px;font-weight:500;margin:12px 0}.stem th,.stem td{border:1px solid var(--line);padding:8px;white-space:nowrap}.stem th{background:#f4f7fa}
.options{display:grid;gap:9px}.option{display:flex;align-items:flex-start;gap:12px;min-height:72px;border:2px solid var(--line);border-radius:16px;padding:13px 12px;background:#fff;font-size:19px;line-height:1.42;font-weight:650;cursor:pointer}
.option.selected{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 6px 16px rgba(23,105,210,.09)}
.radio{width:24px;height:24px;min-width:24px;border:2px solid #8d959e;border-radius:50%;margin-top:1px;display:flex;align-items:center;justify-content:center}
.option.selected .radio{background:var(--blue);border-color:var(--blue)}.option.selected .radio:after{content:"";width:7px;height:7px;background:#fff;border-radius:50%}
.option b{font-weight:900}
.open-answer,.comment{width:100%;border:2px solid var(--line);background:#fff;border-radius:15px;padding:14px;font-size:18px;color:var(--text);outline:none}.open-answer:focus,.comment:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,105,210,.09)}
.reflection{margin-top:20px;padding:17px 2px 0;border-top:1px solid var(--line)}.reflection h2{font-size:23px;margin:0 0 3px}.reflection p{margin:0 0 11px;color:var(--muted);font-size:14px}
.self-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.chip{min-height:52px;border:1.5px solid var(--line);border-radius:13px;background:#fff;font-size:15px;font-weight:850;color:var(--text)}.chip.selected{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.clear-chip{width:100%;margin-top:8px}
.flags{display:grid;gap:8px;margin-top:10px}.flag{min-height:53px;border:1.5px solid var(--line);border-radius:13px;background:#fff;padding:11px;display:flex;align-items:center;gap:9px;font-size:16px;font-weight:800}.flag.selected{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.flag-box{width:20px;height:20px;border:2px solid #a0a9b3;border-radius:6px}.flag.selected .flag-box{background:var(--blue);border-color:var(--blue)}
.comment{margin-top:10px}
.nav{position:sticky;bottom:calc(5px + env(safe-area-inset-bottom));display:grid;grid-template-columns:.7fr 1.45fr;gap:7px;margin-top:15px;padding:6px;border-radius:16px;background:rgba(238,243,248,.93);backdrop-filter:blur(10px);box-shadow:0 8px 22px rgba(18,35,58,.08)}
.btn{min-height:65px;border:0;border-radius:15px;font-size:18px;font-weight:900}.btn.primary{background:var(--blue);color:#fff}.btn.secondary{background:#e4eaf0;color:var(--text)}.btn:disabled{opacity:.4}
.result{min-height:100svh;display:flex;align-items:center;justify-content:center}.result-card{width:96%;background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px 20px;box-shadow:var(--shadow);text-align:center}.score{font-size:64px;font-weight:950;letter-spacing:-.05em}.result-card h1{font-size:29px}.result-card p{color:var(--muted);font-size:16px}
.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:20;background:#0d2037;color:#fff;padding:11px 14px;border-radius:13px;font-size:14px;font-weight:800;box-shadow:0 10px 28px rgba(0,0,0,.18);max-width:90%;text-align:center}
.loading{opacity:.65;pointer-events:none}
@media(max-width:390px){.hero h1{font-size:42px}.stem{font-size:23px}.option{font-size:18px;padding:12px 10px}.mode strong{font-size:22px}}
@media(min-width:700px){.page{max-width:700px}.hero h1{font-size:58px}.stem{font-size:27px}}
