/* İngilizce Yolu — görsel sistem. Yalnız açık tema, mobil öncelikli (390 px).
   Renk: lacivert (sessiz mod) + mercan (sesli mod), "tamam" yeşili. Yazı: Lexend (OFL 1.1). */
@font-face{font-family:"Lexend";font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/lexend-latin-ext-wght-normal.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Lexend";font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/lexend-latin-wght-normal.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  color-scheme:light;
  --ink:#14213d; --mute:#5c677d; --paper:#f4f6fa; --card:#fff; --line:#dbe1ea;
  --navy:#1d3557; --navy-d:#132744; --navy-l:#e8eef7;
  --coral:#c8473f; --coral-d:#9e3029; --coral-l:#fbeceb;
  --go:#178a5a; --go-l:#e4f5ec; --amber:#a86b12; --amber-l:#fdf3e1;
  --r:14px; --tab:62px;
  --ui:"Lexend",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--paper);color:var(--ink);font:400 15.5px/1.6 var(--ui);-webkit-text-size-adjust:100%;overflow-x:hidden}
a{color:var(--navy)}
button,input,select,textarea{font-family:inherit;font-size:16px}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
h1{font-size:25px;font-weight:700;letter-spacing:-.01em;margin:0 0 12px;line-height:1.2}
h2{font-size:17px;font-weight:600;margin:0 0 10px}
h3{font-size:15px;font-weight:600;margin:0 0 6px}
.muted{color:var(--mute)} .small{font-size:13.5px}

/* ---------- kabuk */
.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}
.rail{position:sticky;top:0;height:100vh;background:var(--navy);color:#fff;padding:18px 12px;display:flex;flex-direction:column;gap:6px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;padding:4px 8px 16px;cursor:pointer}
.mark{width:34px;height:34px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:800;font-size:13px;border:3px solid var(--coral);flex:none}
.rail nav{display:flex;flex-direction:column;gap:4px}
.rail nav button{display:flex;align-items:center;gap:10px;background:none;border:0;color:#d3deec;padding:10px 12px;border-radius:10px;font-size:15px;cursor:pointer;text-align:left}
.rail nav button svg{width:20px;height:20px;flex:none}
.rail nav button.on{background:#fff;color:var(--navy);font-weight:600}
.rail nav button:hover:not(.on){background:rgba(255,255,255,.12);color:#fff}
.rail .foot{margin-top:auto;padding:0 4px}
.lang{display:flex;border:1px solid rgba(255,255,255,.4);border-radius:9px;overflow:hidden;align-self:flex-start;width:max-content}
.lang button{background:none;border:0;color:#fff;padding:5px 12px;cursor:pointer;font-weight:600;font-size:13px}
.lang button.on{background:#fff;color:var(--navy)}
main{padding:22px 28px 40px;max-width:980px;width:100%;margin:0 auto;min-width:0}
.mtop{display:none}

/* ---------- parçalar */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.stack{display:flex;flex-direction:column;gap:12px}
.grid{display:grid;gap:12px} .g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.btn{background:var(--navy);color:#fff;border:0;border-radius:11px;padding:10px 18px;font-weight:600;font-size:15px;cursor:pointer;min-height:44px;box-shadow:0 3px 0 var(--navy-d)}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--navy-d)}
.btn.coral{background:var(--coral);box-shadow:0 3px 0 var(--coral-d)}
.btn.go{background:var(--go);box-shadow:0 3px 0 #0e6640}
.btn.ghost{background:#fff;color:var(--navy);border:1.5px solid var(--line);box-shadow:none}
.btn.sm{padding:6px 12px;font-size:13.5px;border-radius:9px;min-height:36px;box-shadow:none}
.btn:disabled{opacity:.45;cursor:default}
.tag{display:inline-block;font-size:12px;padding:2px 9px;border-radius:10px;background:var(--navy-l);color:var(--navy);font-weight:500;white-space:nowrap}
.tag.sesli{background:var(--coral-l);color:var(--coral-d)} .tag.go{background:var(--go-l);color:#0e6640} .tag.amber{background:var(--amber-l);color:#7a4d0b}
.tip,.warn{border-radius:11px;padding:10px 13px;margin:0;border:1px solid}
.tip{background:var(--navy-l);border-color:#c8d6ea} .warn{background:var(--amber-l);border-color:#efd9a8}
.empty{padding:28px 16px;text-align:center;color:var(--mute)}
.toast{position:fixed;bottom:calc(var(--tab) + 18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:9px 16px;border-radius:10px;font-size:14px;z-index:90;max-width:90vw}
.row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;min-width:0}
.row .t{flex:1;min-width:0} .row .s{font-size:13px;color:var(--mute);white-space:nowrap}
.rows{display:flex;flex-direction:column;gap:8px}
label{display:block;font-size:14px;font-weight:600;margin:12px 0 6px}
input[type=text],input[type=password],input:not([type]){width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}
input:focus,select:focus{outline:none;border-color:var(--navy)}
select{padding:7px 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);min-height:36px}

/* ---------- bugün */
.hello{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.hello .date{font-size:14px;color:var(--mute)}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mode{display:flex;flex-direction:column;gap:2px;text-align:left;border:2px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;cursor:pointer;color:var(--ink)}
.mode b{font-size:16px} .mode span{font-size:12.5px;color:var(--mute);line-height:1.35}
.mode.on.sessiz{border-color:var(--navy);background:var(--navy-l)}
.mode.on.sesli{border-color:var(--coral);background:var(--coral-l)}
.goal{display:flex;align-items:center;gap:14px}
.ring{--p:0;width:64px;height:64px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:conic-gradient(var(--go) calc(var(--p)*1%),var(--line) 0)}
.ring i{width:50px;height:50px;border-radius:50%;background:#fff;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:14px}
.week{display:flex;gap:6px;align-items:flex-end;flex-wrap:nowrap}
.week .d{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11.5px;color:var(--mute)}
.week .d i{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;background:#fff}
.week .d.on i{background:var(--go);border-color:var(--go)}
.week .d.on i::after{content:"";width:9px;height:5px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) translateY(-1px)}
.week .d.fz i{border-style:dashed;border-color:var(--amber)}
.week .d.now{color:var(--ink);font-weight:600} .week .d.now i{border-color:var(--navy)}
.slot{border:1px solid var(--line);border-left:5px solid var(--navy);border-radius:12px;background:#fff;padding:12px 14px}
.slot.sesli{border-left-color:var(--coral)}
.slot.dim{opacity:.6}
.slot .hd{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}
.slot ul{margin:8px 0 0;padding-left:18px;font-size:14px}
.slot li{margin:2px 0}
.slot li .m{color:var(--mute);font-size:12.5px;white-space:nowrap}
.sbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;color:#fff;background:var(--navy);margin-bottom:12px}
.sbar.sesli{background:var(--coral)}
.sbar .t{flex:1;font-weight:600}
.sbar .btn{background:#fff;color:var(--ink);box-shadow:none}

/* ---------- test */
.vword{font-size:34px;font-weight:700;letter-spacing:.01em;margin:18px 0 6px;overflow-wrap:anywhere}
.q{font-size:16.5px;margin:6px 0 10px}
.q .gap{display:inline-block;min-width:60px;border-bottom:2px solid var(--navy)}
.opt{display:flex;align-items:center;gap:8px;margin:0;font-weight:400;text-align:left;width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:15.5px;cursor:pointer;min-height:48px}
.opt:hover{border-color:var(--navy)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg label{margin:0;font-weight:500}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:inline-block;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:14px}
.seg input:checked+span{border-color:var(--navy);background:var(--navy-l);font-weight:600}
.opt input{width:18px;height:18px;flex:none}
.card.ok{border-color:var(--go);background:var(--go-l)} .card.bad{border-color:var(--coral);background:var(--coral-l)}
.passage p{margin:0 0 10px;font-size:15.5px;line-height:1.65}
.essay{width:100%;min-height:260px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-size:16px;line-height:1.6;resize:vertical;background:#fff;color:var(--ink)}
.essay:focus{outline:none;border-color:var(--navy)}

/* ---------- ilerleme */
.bars{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px;align-items:end;height:130px;padding-top:6px}
.bars .b{display:flex;flex-direction:column-reverse;height:100%;gap:1px;position:relative}
.bars .b span{display:block;border-radius:3px 3px 0 0}
.bars .b .s1{background:var(--navy)} .bars .b .s2{background:var(--coral)}
.bars .b.today::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:3px;background:var(--amber);border-radius:2px}
.bars-x{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px;font-size:10.5px;color:var(--mute);text-align:center;margin-top:8px}
.legend{display:flex;gap:14px;font-size:12.5px;color:var(--mute);flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.kpi b{display:block;font-size:20px;white-space:nowrap} .kpi b small{font-size:12px;font-weight:500;color:var(--mute)} .kpi span{font-size:12.5px;color:var(--mute)}
.meter{height:8px;border-radius:5px;background:var(--line);overflow:hidden;margin-top:6px}
.meter i{display:block;height:100%;background:var(--go)}

/* ---------- ses denetimi */
.voices{display:flex;flex-wrap:wrap;gap:6px}
.vchip{border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:13px;background:#fff;cursor:pointer}
.vchip.on{border-color:var(--navy);background:var(--navy-l)}
audio{width:100%;margin-top:8px}

/* ---------- giriş */
.login-wrap{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:24px 16px}
.login{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 22px}
.login .top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.login .brand{padding:0;color:var(--navy);font-size:19px}
.login .lg{display:flex;gap:4px}
.login .lg button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 8px;font-size:12.5px;cursor:pointer;color:var(--mute)}
.login .lg button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.login button[type=submit]{width:100%;margin-top:20px;min-height:48px;font-size:16px}
.login .err{color:var(--coral-d);font-size:14px;min-height:20px;margin-top:10px}
.login p{font-size:13.5px;color:var(--mute);margin:14px 0 0}

/* ---------- mobil */
.tabs{display:none}
@media (max-width:820px){
  .shell{display:block}
  .rail{display:none}
  main{padding:14px 16px calc(var(--tab) + 24px + env(safe-area-inset-bottom))}
  .mtop{display:flex;align-items:center;gap:10px;margin-bottom:12px}
  .mtop .brand{padding:0;color:var(--navy)}
  .mtop .lang{border-color:var(--navy);background:var(--navy)}
  .tabs{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;border-top:1px solid var(--line);
    padding-bottom:env(safe-area-inset-bottom);height:calc(var(--tab) + env(safe-area-inset-bottom))}
  .tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:0;color:var(--mute);font-size:11px;cursor:pointer;padding:6px 0;min-width:0}
  .tabs button svg{width:22px;height:22px}
  .tabs button.on{color:var(--navy);font-weight:600}
  .g2,.g3{grid-template-columns:minmax(0,1fr)}
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kpi b{font-size:17px}
  h1{font-size:22px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
