
/* Plan: one-world Aegean theme (single light theme by choice). Phone-width column; child view = island voyage, parent view = calm report. */
:root{
  --sea:#0D4F63;        /* primary, headers, buttons */
  --sea-2:#1B7189;
  --foam:#EAF5F7;       /* page background */
  --card:#FFFFFF;
  --ink:#12303B;        /* text */
  --muted:#5B7680;
  --sun:#FFC845;        /* reward, highlights */
  --coral:#F2694B;      /* attention / needs review */
  --leaf:#2E9E6E;       /* correct / mastered */
  --line:#D3E6EA;
  --font-display:"Comfortaa", "Varela Round", system-ui, sans-serif;
  --font-body:"Commissioner", "Noto Sans", system-ui, sans-serif;
  color-scheme: light;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:#CFE6EB;color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.45}
.phone{max-width:430px;margin:0 auto;min-height:100%;background:var(--foam);display:flex;flex-direction:column;position:relative;box-shadow:0 0 0 1px var(--line)}
header.top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;gap:12px}
.brand{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;color:var(--sea);font-size:20px}
.demo-tag{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--sea-2);background:#fff;border:1px solid var(--line);border-radius:99px;padding:3px 8px}
main{flex:1;padding:4px 16px 96px;display:flex;flex-direction:column;gap:14px}
h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;color:var(--sea)}
h1{font-size:24px;line-height:1.25}
h2{font-size:18px}
h3{font-size:15px}
p{margin:0}
.muted{color:var(--muted);font-size:14px}
.card{background:var(--card);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:10px;border:1px solid var(--line)}
.hero{background:var(--sea);color:#fff;border:none;flex-direction:row;align-items:center;gap:14px}
.hero h1{color:#fff;font-size:21px}
.hero p{color:#CFE8EE;font-size:14px}
.owl{flex:0 0 auto}
.unit{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.unit:first-of-type{border-top:none;padding-top:2px}
.subj{flex:0 0 auto;font-size:12px;font-weight:700;border-radius:8px;padding:3px 8px;background:#E3F0F3;color:var(--sea)}
.subj.lang{background:#FFF1D1;color:#7A5300}
.btn{appearance:none;border:none;border-radius:14px;padding:14px 18px;font:600 16px var(--font-body);cursor:pointer;background:var(--sea);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px}
.btn:hover{background:var(--sea-2)}
.btn.sun{background:var(--sun);color:#3A2A00}
.btn.sun:hover{background:#FFD56D}
.btn.ghost{background:#fff;color:var(--sea);border:1.5px solid var(--line)}
.btn.ghost:hover{border-color:var(--sea-2)}
.btn.small{min-height:40px;padding:8px 14px;font-size:14px;border-radius:12px}
.btn:disabled{opacity:.45;cursor:default}
.btn:focus-visible,.opt:focus-visible,input:focus-visible,textarea:focus-visible,.tab:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row>.btn{flex:1}
/* islands */
.voyage{position:relative;height:118px;border-radius:14px;background:linear-gradient(180deg,#BFE3EA,#9CD3DE);overflow:hidden}
.voyage canvas{width:100%;height:100%;display:block}
.goal{display:flex;gap:6px}
.day{flex:1;text-align:center;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px;align-items:center}
.dot{width:28px;height:28px;border-radius:50%;border:2px dashed var(--line);display:grid;place-items:center;font-size:13px;font-weight:700;background:#fff}
.dot.done{background:var(--leaf);border:2px solid var(--leaf);color:#fff}
.dot.today{border:2px solid var(--sun);background:#FFF7DD}
/* session */
.progress{display:flex;gap:6px;align-items:center}
.seg{flex:1;height:8px;border-radius:99px;background:#D5E7EB;overflow:hidden}
.seg>i{display:block;height:100%;background:var(--sea-2);transition:width .3s}
.steps{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.steps b{color:var(--sea)}
.qmeta{display:flex;justify-content:space-between;align-items:center;gap:8px}
.q{font-size:20px;font-weight:600;line-height:1.35;color:var(--ink)}
.big{font-family:var(--font-display);font-size:34px;color:var(--sea);text-align:center;font-variant-numeric:tabular-nums;padding:6px 0}
.opts{display:grid;gap:10px}
.opt{appearance:none;text-align:left;border:2px solid var(--line);background:#fff;border-radius:14px;padding:14px 16px;font:500 17px var(--font-body);color:var(--ink);cursor:pointer;min-height:52px}
.opt:hover{border-color:var(--sea-2)}
.opt.wrong{border-color:var(--coral);background:#FFF1EE;color:#8A2B16}
.opt.right{border-color:var(--leaf);background:#E9F7F0}
input.ans,textarea{width:100%;border:2px solid var(--line);border-radius:14px;padding:14px;font:500 20px var(--font-body);color:var(--ink);background:#fff}
textarea{font-size:17px;min-height:104px;resize:vertical}
input.ans{text-align:center;font-variant-numeric:tabular-nums}
.feedback{border-radius:14px;padding:12px 14px;font-size:15px;display:flex;gap:10px;align-items:flex-start}
.fb-ok{background:#E9F7F0;color:#1D5E43}
.fb-no{background:#FFF1EE;color:#7E2A16}
.fb-hint{background:#FFF7DD;color:#5A4300}
.fb-ai{background:#EAF2FF;color:#1E3A66}
.chip{font-size:12px;font-weight:600;border-radius:99px;padding:3px 9px;background:#E3F0F3;color:var(--sea)}
.chip.coral{background:#FFE6DF;color:#8A2B16}
.chip.leaf{background:#DFF3E9;color:#1D5E43}
.chip.sun{background:#FFF1C7;color:#6A4D00}
.listen{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0}
.speaker{width:84px;height:84px;border-radius:50%;border:none;background:var(--sun);cursor:pointer;display:grid;place-items:center}
.speaker:hover{background:#FFD56D}
.peek{font-family:var(--font-display);font-size:30px;color:var(--sea);letter-spacing:.02em;min-height:40px}
/* tabs */
nav.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;display:flex;background:#fff;border-top:1px solid var(--line);padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px;z-index:5}
.tab{flex:1;appearance:none;border:none;background:none;border-radius:12px;padding:8px;font:600 14px var(--font-body);color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}
.tab[aria-current="page"]{background:#E3F0F3;color:var(--sea)}
/* parent */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;text-align:center}
.kpi b{display:block;font-family:var(--font-display);font-size:22px;color:var(--sea);font-variant-numeric:tabular-nums}
.kpi span{font-size:12px;color:var(--muted)}
.skill{display:grid;grid-template-columns:1fr 92px 44px;gap:10px;align-items:center;font-size:14px;padding:6px 0}
.bar{height:10px;border-radius:99px;background:#E6EEF0;overflow:hidden}
.bar>i{display:block;height:100%;border-radius:99px}
.pct{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:13px}
.summary{font-size:16px;line-height:1.5}
ul.clean{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.gate{display:flex;flex-direction:column;gap:12px}
.note{font-size:12.5px;color:var(--muted);border-left:3px solid var(--line);padding-left:10px}
.celebrate{text-align:center;align-items:center}
.stars{font-family:var(--font-display);font-size:42px;color:var(--sun);letter-spacing:6px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
.pop{animation:pop .35s ease-out}
@keyframes pop{from{transform:scale(.96);opacity:.6}to{transform:scale(1);opacity:1}}
/* quiz additions */
.opt.sel{border-color:var(--sea);background:#E3F0F3}
.conf{display:flex;flex-direction:column;gap:8px}
.conf-label{font-size:13px;font-weight:600;color:var(--muted)}
.conf .row>.btn{flex:1;min-height:46px;font-size:15px;padding:10px 8px}
.btn.c1{background:var(--sea)}
.btn.c2{background:var(--sea-2)}
.btn.c3{background:#6E8E97}
.subject-card{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:14px;border-radius:16px;background:#fff;border:1px solid var(--line)}
.subject-card .ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:18px}
.ico.math{background:#E3F0F3;color:var(--sea)}
.ico.lang{background:#FFF1D1;color:#7A5300}
.ico.hist{background:#FFE6DF;color:#8A2B16}
.subject-card h3{color:var(--ink);font-family:var(--font-body);font-size:16px}
.subject-card p{font-size:13px;color:var(--muted)}
.seq{display:flex;flex-direction:column;gap:8px}
.seq-slot{min-height:48px;border:2px dashed var(--line);border-radius:12px;padding:10px 12px;display:flex;gap:10px;align-items:center;color:var(--muted);font-size:15px}
.seq-slot.filled{border-style:solid;border-color:var(--sea-2);color:var(--ink);background:#F4FAFB}
.seq-num{width:26px;height:26px;border-radius:50%;background:var(--sea);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:0 0 auto}
.why{font-size:14px;line-height:1.45}
.flag{display:inline-block;font-size:12px;font-weight:700;color:#8A2B16;background:#FFE6DF;border-radius:6px;padding:1px 6px;margin-bottom:4px}
.misc{border-left:4px solid var(--coral);padding:4px 0 4px 10px;display:flex;flex-direction:column;gap:2px;font-size:14px}

.unit-row{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.chc{min-width:34px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.ch-ok{background:var(--leaf);color:#fff}.ch-mid{background:var(--sun);color:#3A2A00}.ch-low{background:var(--coral);color:#fff}.ch-off{background:#E6EEF0;color:var(--muted)}

/* app additions */
.pair{display:flex;flex-direction:column;gap:12px}
.code-input{letter-spacing:.4em;font-size:28px!important}
.linkbar{display:flex;justify-content:center;padding:6px 0 18px}
.linkbar a{color:var(--sea);font-weight:600;font-size:14px}
.form{display:flex;flex-direction:column;gap:10px}
.form label{font-size:14px;font-weight:600;color:var(--ink)}
.form input[type=email],.form input[type=password],.form input[type=text],.form input[type=number]{width:100%;border:2px solid var(--line);border-radius:12px;padding:12px;font:500 16px var(--font-body);color:var(--ink);background:#fff}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.check input{width:20px;height:20px;margin-top:2px;flex:0 0 auto}
.err{color:#8A2B16;font-size:14px;min-height:18px}
.big-code{font-family:var(--font-display);font-size:40px;letter-spacing:.2em;color:var(--sea);text-align:center;font-variant-numeric:tabular-nums}
.kid-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
a.btn{text-decoration:none}
