:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  --bg:#F2F3EE;--card:#FFFFFF;--ink:#12171A;--mut:#66706B;--line:#DDE0D8;
  --kcal:#12171A;--pro:#2744F5;--carb:#E0A100;--fat:#1F9C8E;--bad:#D6336C;--soft:#E9EBE4;--water:#2B8CE0;
  --r:14px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0F1412;--card:#171E1B;--ink:#ECEFEA;--mut:#8D9892;--line:#27302C;--kcal:#ECEFEA;--pro:#6F86FF;--carb:#F0B72A;--fat:#3DC4B4;--bad:#FF6B9A;--soft:#1F2824;--water:#5DB2FF;}}
:root[data-theme="dark"]{--bg:#0F1412;--card:#171E1B;--ink:#ECEFEA;--mut:#8D9892;--line:#27302C;--kcal:#ECEFEA;--pro:#6F86FF;--carb:#F0B72A;--fat:#3DC4B4;--bad:#FF6B9A;--soft:#1F2824;--water:#5DB2FF}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:15px;line-height:1.4;-webkit-text-size-adjust:100%}
#app{max-width:560px;margin:0 auto;padding:10px 14px 96px}
.num{font-family:'Archivo Narrow','Archivo',sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
h1,h2,h3{margin:0;font-weight:700}
h2{font-size:17px;margin:22px 0 10px}
h3{font-size:15px}
p{margin:6px 0}
.mut{color:var(--mut)}
.small{font-size:12.5px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:10px}
.row{display:flex;align-items:center;gap:10px}
.between{justify-content:space-between}
.grow{flex:1;min-width:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
button{font:inherit;color:inherit;cursor:pointer}
.btn{background:var(--ink);color:var(--bg);border:0;border-radius:11px;padding:11px 16px;font-weight:700;min-height:44px}
.btn.alt{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn.sm{padding:6px 12px;min-height:36px;font-size:13px;border-radius:9px}
.btn:disabled{opacity:.45;cursor:default}
.btn.full{width:100%}
.ghost{background:none;border:0;color:var(--mut);padding:6px;min-width:34px;min-height:34px;font-size:18px;line-height:1}
input,select,textarea{font:inherit;color:var(--ink);background:var(--soft);border:1.5px solid transparent;border-radius:10px;padding:10px 11px;width:100%;min-height:44px}
textarea{resize:vertical;min-height:84px}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--pro);outline-offset:1px}
label{display:block;font-size:12.5px;color:var(--mut);margin:0 0 4px}
.sv{text-align:right;font-size:11.5px;color:var(--mut);min-height:16px;margin-bottom:2px}
.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.top .d{font-weight:700;font-size:16px;text-align:center;line-height:1.2}
.dp{position:relative;padding:2px 10px;border-radius:10px;cursor:pointer}
.dp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;min-height:0;padding:0;border:0}
.hero{padding:18px 16px 16px}
.hero .big{font-size:68px;font-weight:700;line-height:.95}
.hero .big.over{color:var(--bad)}
.bar{height:10px;background:var(--soft);border-radius:6px;overflow:hidden;margin-top:12px}
.bar>i{display:block;height:100%;border-radius:6px;background:var(--kcal)}
.bar.thin{height:7px;margin-top:6px}
.split{display:flex;height:14px;border-radius:7px;overflow:hidden;margin-top:8px;gap:2px}
.split i{display:block;height:100%}
.chip{display:inline-block;padding:3px 9px;border-radius:20px;background:var(--soft);font-size:12.5px;font-weight:500;margin:0 4px 4px 0}
.chip.on{background:var(--ink);color:var(--bg)}
button.chip{border:0}
.macro .v{font-size:22px;font-weight:700}
.meal{display:flex;gap:8px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}
.meal:first-of-type{border-top:0}
.tabs{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom,0px);z-index:5}
.tabs>div{display:flex;width:100%;max-width:560px}
.tabs button{flex:1;background:none;border:0;padding:10px 2px 9px;color:var(--mut);font-size:11.5px;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:2px}
.tabs button span{font-size:19px;line-height:1}
.tabs button.on{color:var(--ink);font-weight:700}
.coach{white-space:pre-wrap;line-height:1.55}
.empty{text-align:center;color:var(--mut);padding:22px 10px}
.note{font-size:12px;color:var(--mut);margin:14px 2px 0}
.warn{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--card))}
.flag{font-size:12.5px;color:var(--bad);margin:4px 0 0}
svg text{fill:var(--mut);font-family:'Archivo',sans-serif;font-size:10px}
.seg{display:flex;background:var(--soft);border-radius:10px;padding:3px;gap:3px}
.seg button{flex:1;border:0;background:none;padding:8px;border-radius:8px;font-weight:500;font-size:13.5px;color:var(--mut)}
.seg button.on{background:var(--card);color:var(--ink);font-weight:700}
.dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px}
.btnrow{display:flex;gap:8px;flex-wrap:wrap}
.hrow{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line);cursor:pointer}
.hrow:first-of-type{border-top:0}
.stepper{display:flex;align-items:center;gap:6px}
.stepper button{width:36px;height:36px;border-radius:10px;border:1.5px solid var(--line);background:none;font-size:18px;line-height:1}
.gbtn{display:flex;width:100%;justify-content:space-between;align-items:center;background:var(--soft);border:0;border-radius:10px;padding:10px 12px;margin-top:12px;font-weight:700;font-size:13.5px}
.pv{padding:12px 0;border-top:1px solid var(--line)}
.pv:first-of-type{border-top:0}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.thumb{position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb button{position:absolute;top:0;right:0;background:rgba(0,0,0,.6);color:#fff;border:0;width:22px;height:22px;font-size:12px;line-height:1;border-radius:0 0 0 8px}
.filebtn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;margin:0}
.undo{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ink);color:var(--bg);border-radius:12px;padding:10px 14px;margin-bottom:10px;font-size:13.5px}
.undo button{background:none;border:0;color:var(--bg);font-weight:700;text-decoration:underline}
.auth{max-width:420px;margin:0 auto}
.chk{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:13.5px;margin:0}
input[type=checkbox]{width:18px;height:18px;min-height:0;padding:0;flex:none;accent-color:var(--ink)}
.code{font-size:26px;letter-spacing:.08em;font-weight:700;text-align:center;padding:14px;background:var(--soft);border-radius:12px;user-select:all;margin-top:10px}
.avatar{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex:none}
.svw{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:2px}
.svw .sv{margin:0;text-align:right}
@media (prefers-reduced-motion:no-preference){.bar>i{transition:width .35s ease}}

/* ================= Mobil iyileştirmeler ================= */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100vh;min-height:100dvh;overflow-wrap:break-word;-webkit-tap-highlight-color:transparent}
#app{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
/* çift dokunuşla yakınlaşma ve 300 ms gecikme olmasın */
button,a,input,select,textarea,label,[role=button],[data-a]{touch-action:manipulation}
/* iOS: alana dokununca ekran yakınlaşmasın (yazı en az 16 px) */
input,select,textarea{font-size:16px}
/* dokunma alanları en az 44 px */
.btn{min-height:48px}
.btn.sm{min-height:44px;padding:8px 14px;font-size:14px}
.ghost{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
button.chip{min-height:40px;padding:8px 14px;display:inline-flex;align-items:center;margin:0 6px 6px 0}
.stepper button{width:44px;height:44px}
.gbtn{min-height:48px}
.seg{max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.seg::-webkit-scrollbar{display:none}
.seg button{min-height:44px;min-width:44px;flex:1 0 auto;padding:8px 10px;font-size:13.5px;line-height:1.15;white-space:nowrap;overflow-wrap:normal}
.undo button{min-height:44px;padding:0 8px}
.thumb{width:72px;height:72px}
.thumb button{width:32px;height:32px;font-size:14px}
.tabs button{min-height:58px;padding-top:8px;min-width:0}
.hrow{min-height:56px}
.meal{padding:4px 0;min-height:52px}
/* uzun metin ve kodlar taşmasın */
h3,.top .d,.meal .grow,.hrow .grow,.card p,.chip{overflow-wrap:anywhere}
.top .d{min-width:0}
.code{font-size:clamp(18px,6.2vw,26px);letter-spacing:.05em;overflow-wrap:anywhere}
.hero .big{font-size:clamp(52px,17vw,68px)}
/* klavye açıkken alt çubuk girdiyi örtmesin */
body.kb .tabs{display:none}
@media (max-width:359px){
  #app{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
  .card{padding:12px}
  .grid2,.grid3{gap:6px}
  .macro .v{font-size:19px}
  .tabs button{font-size:10.5px}
  .seg button{padding:8px 6px;font-size:13px}
}
@media (min-width:600px){ .tabs button{min-height:52px} }

/* onay kutuları: satırın tamamı dokunulabilir, en az 44 px */
.chk{min-height:44px;padding:6px 0;gap:12px}
input[type=checkbox]{width:22px;height:22px}
