:root{--bg:#f4f6f3;--surface:#ffffff;--surface-2:#f8faf7;--text:#1c2620;--muted:#6b776f;--border:#e1e7e2;--primary:#2f8f5b;--primary-dark:#247349;--primary-soft:#e5f4eb;--danger:#c0443b;--protein:#3b7dd8;--carbs:#d9a227;--fat:#b0607a;--kcal:var(--primary);--radius:14px;--radius-sm:8px;--shadow:0 1px 2px rgba(20,40,30,.04),0 2px 8px rgba(20,40,30,.04)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45;background:var(--bg);color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}h1,h2,h3,h4{letter-spacing:-.01em}.topbar{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-size:1.25rem;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:-.01em}.tabs-top{display:flex;gap:4px}.tab{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;color:var(--muted);text-decoration:none;font-weight:500;font-size:.9rem;transition:background .15s,color .15s}.tab:hover{color:var(--text);background:var(--surface-2)}.tab.active{color:var(--primary);background:var(--primary-soft)}.tabs-top .tab svg{width:18px;height:18px}.tabs-bottom{display:none}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:100;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:999px;background:var(--text);color:#fff;font-size:.9rem;box-shadow:0 6px 20px rgba(0,0,0,.2);animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.targets-fields{display:grid;grid-template-columns:repeat(4,minmax(0,120px));grid-gap:10px;gap:10px}.target-field{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:600;color:var(--text)}.target-field small{color:var(--muted);font-weight:400}.target-field input{width:100%}main{max-width:1200px;margin:0 auto;padding:24px 16px 48px;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:20px;gap:20px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);min-width:0}.panel-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}.panel-head h2{margin:0;font-size:1.15rem}.hint{font-size:.85rem;margin:0 0 12px}.hint,.loading{color:var(--muted)}.loading{text-align:center;padding:48px}.empty-state{color:var(--muted);font-style:italic}.eyebrow,.hint a{color:var(--primary);font-weight:600}.eyebrow{margin:0 0 6px;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.week-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:16px}.stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:.85rem;color:var(--muted)}.stat span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.stat strong{color:var(--text);font-size:1.05rem}.week-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px}.day-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0;transition:border-color .15s,background .15s}.day-card.drag-over{border-color:var(--primary);background:var(--primary-soft)}.day-card.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.day-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.day-name{font-weight:600}.day-body{display:flex;align-items:center;gap:10px}.day-card.today .day-name:after{content:"Bugün";margin-left:6px;padding:1px 6px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:.68rem;font-weight:600;vertical-align:middle}.day-kcal{font-size:1.3rem;font-weight:700;line-height:1.1;white-space:nowrap}.day-kcal small{font-size:.8rem;font-weight:400;color:var(--muted)}.day-kcal.over{color:var(--danger)}.day-kcal.ok{color:var(--text)}.day-kcal.empty{color:var(--muted)}.bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--primary);border-radius:inherit}.bar.over>span{background:var(--danger)}.day-card select{width:100%;margin-top:auto}.ring-kcal{--c:var(--kcal)}.ring-protein{--c:var(--protein)}.ring-carbs{--c:var(--carbs)}.ring-fat{--c:var(--fat)}.rings{flex:none}.ring-track{fill:none;stroke:color-mix(in oklab,var(--c) 16%,white)}.ring-fill{fill:none;stroke:var(--c);stroke-linecap:round;transition:stroke-dasharray .5s ease-out}.ring-over{stroke:color-mix(in oklab,var(--c) 65%,black);filter:drop-shadow(0 0 1.5px var(--surface))}.ring-legend{list-style:none;margin:0;padding:0;flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px;font-size:.75rem}.ring-legend li{display:grid;grid-template-columns:8px 1fr auto;align-items:center;grid-gap:4px 5px;gap:4px 5px}.ring-legend .dot{width:8px;height:8px;border-radius:50%;background:var(--c)}.ring-name{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ring-val{white-space:nowrap;font-weight:600}.ring-val small{color:var(--muted);font-weight:400}.over-mark,.ring-legend li.over .ring-val{color:var(--danger)}.over-mark{margin-left:2px}.macro-bars{display:flex;flex-direction:column;gap:4px}.macro-row{display:grid;grid-template-columns:12px 1fr auto;grid-gap:6px;gap:6px;align-items:center;font-size:.72rem}.macro-label{font-weight:700}.macro-val{white-space:nowrap}.macro-val small{color:var(--muted)}.macro-row .bar{height:4px}.macro-protein .macro-label{color:var(--protein)}.macro-carbs .macro-label{color:var(--carbs)}.macro-fat .macro-label{color:var(--fat)}.macro-protein .bar>span{background:var(--protein)}.macro-carbs .bar>span{background:var(--carbs)}.macro-fat .bar>span{background:var(--fat)}.macro-row.over .macro-val{color:var(--danger)}.macro-row.over .bar>span{background:var(--danger)}.macro-line{font-size:.8rem;color:var(--muted)}.menu-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));grid-gap:12px;gap:12px}.menu-card{border:1px solid var(--border);border-radius:var(--radius);padding:14px;cursor:-webkit-grab;cursor:grab;background:var(--surface);display:flex;flex-direction:column}.menu-card:active{cursor:-webkit-grabbing;cursor:grabbing}.menu-card h4{margin:0 0 2px;display:flex;justify-content:space-between;gap:8px;font-size:1rem}.menu-card .kcal{color:var(--primary);white-space:nowrap}.menu-card ul{margin:10px 0;padding-left:18px;font-size:.85rem;color:var(--muted)}.menu-card ul strong{color:var(--text);font-weight:600}.menu-card .hint{margin-top:auto}.menu-card .actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.menu-card .actions .action-main{grid-column:1/-1}.menu-card .actions .btn{padding:7px 6px}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:7px 14px;border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:.85rem;font-weight:500;white-space:nowrap;transition:border-color .15s,background .15s}.btn.primary,.btn:hover{border-color:var(--primary)}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.danger{color:var(--danger)}.btn.small{padding:5px 10px;font-size:.8rem}.btn.icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0}.btn:disabled{opacity:.5;cursor:default}a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}input,select{font:inherit;font-size:.9rem;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text);min-width:0}input:focus,select:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}dialog{border:none;border-radius:var(--radius);padding:0;width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 48px);color:var(--text)}dialog::-webkit-backdrop{background:rgba(10,20,15,.4)}dialog::backdrop{background:rgba(10,20,15,.4)}dialog form{padding:20px 20px 0;display:flex;flex-direction:column;gap:14px}dialog h3{margin:0;font-size:1.15rem}.field{display:flex;flex-direction:column;gap:4px;font-size:.85rem;font-weight:600}.meal{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface-2)}.meal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.meal-head span{color:var(--muted);font-size:.85rem}.item-row{display:grid;grid-template-columns:1fr auto 70px auto;grid-gap:8px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--border)}.item-info{display:flex;flex-direction:column;min-width:0}.item-info small,.qty{color:var(--muted);font-size:.75rem}.qty{display:flex;align-items:center;gap:4px}.qty input{width:52px;text-align:center}.qty .step{width:30px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:1rem;cursor:pointer}.qty .step:hover{border-color:var(--primary)}.item-kcal{text-align:right;font-size:.85rem;white-space:nowrap}.dialog-footer{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:0 -20px;padding:12px 20px;background:var(--surface);border-top:1px solid var(--border)}.target-progress{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:6px}.tp-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.85rem;color:var(--muted)}.tp-head strong{font-size:1.15rem;color:var(--text)}.tp-left{font-weight:600;color:var(--primary);white-space:nowrap}.target-progress.under .tp-left{color:var(--muted)}.target-progress.over .tp-head strong,.target-progress.over .tp-left{color:var(--danger)}.macro-bars.row{flex-direction:row;gap:12px}.macro-bars.row .macro-row{flex:1 1;min-width:0;grid-template-columns:auto 1fr;grid-template-areas:"label val" "bar bar";gap:2px 4px}.macro-bars.row .macro-label{grid-area:label}.macro-bars.row .macro-val{grid-area:val;text-align:right}.macro-bars.row .bar{grid-area:bar}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-left:auto}dialog form>.dialog-actions{padding-bottom:20px}.dialog-sm{width:min(460px,calc(100vw - 32px))}.dialog-body{padding:20px;display:flex;flex-direction:column;gap:12px}.dialog-body .hint{margin:0}.share-url{width:100%;font-size:.85rem;color:var(--muted);background:var(--surface-2)}.picker{position:relative;margin-top:8px}.picker input{width:100%;background:var(--surface)}.picker-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:260px;overflow-y:auto;overscroll-behavior:contain}.picker-list.up{top:auto;bottom:calc(100% + 4px);box-shadow:0 -8px 24px rgba(0,0,0,.12)}.picker-list button{display:flex;justify-content:space-between;gap:8px;width:100%;padding:8px;border:none;background:none;color:var(--text);font:inherit;font-size:.85rem;text-align:left;cursor:pointer;border-radius:6px}.picker-list button:hover{background:var(--primary-soft)}.picker-list small{color:var(--muted);white-space:nowrap}.picker-empty{padding:8px;color:var(--muted);font-size:.85rem}.panel-tools{display:flex;gap:8px;flex-wrap:wrap}.food-form{display:grid;grid-template-columns:2fr 2fr repeat(4,1fr) auto;grid-gap:6px;gap:6px;margin-bottom:12px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:clip}.food-table{width:100%;border-collapse:collapse;font-size:.85rem}.food-table td,.food-table th{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border)}.food-table tbody tr:last-child td{border-bottom:none}.food-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--surface-2);font-weight:600;font-size:.78rem;color:var(--muted)}.food-table td:nth-child(n+3),.food-table th:nth-child(n+3){text-align:right}.portion-sub{display:none}.portion-sub.always{display:block;color:var(--muted);font-size:.72rem}.row-actions{white-space:nowrap;width:1%}.row-actions-inner{display:flex;align-items:center;justify-content:flex-end;gap:4px}.food-table td{vertical-align:middle}.filter-row{flex-wrap:wrap;gap:8px 16px;justify-content:space-between;margin-bottom:12px}.check,.filter-row{display:flex;align-items:center}.check{gap:8px;font-size:.85rem;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--primary)}.share-preview{max-width:640px;width:100%;margin:0 auto}.share-preview .panel-head{margin-bottom:2px}.share-preview .dialog-actions{margin-top:16px}.kcal-big{color:var(--primary);font-size:1.3rem;font-weight:700}.share-meal{margin-top:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.share-meal ul{list-style:none;margin:6px 0 0;padding:0}.share-meal li{display:flex;justify-content:space-between;gap:8px;padding:4px 0;font-size:.9rem}.share-meal small{color:var(--muted)}.mobile-only{display:none}.tag{margin-left:6px;padding:1px 6px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:.7rem}.day-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:8px;gap:8px}.day-checks label{display:flex;gap:8px;align-items:center;padding:4px 0}.day-checks input{width:18px;height:18px;accent-color:var(--primary)}.log-nav{display:flex;align-items:center;gap:6px}.log-nav .btn.icon{font-size:1.2rem}.log-date{margin:0 0 14px;font-weight:600;font-size:1.05rem}.log-start{padding:8px 0}.log-start-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.log-other{display:flex;gap:6px}.log-summary{display:flex;align-items:center;gap:16px;margin-bottom:14px}.log-summary-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.log-summary .hint{margin:0}.log-summary .ring-legend{max-width:260px}.log-kcal{color:var(--muted)}.log-kcal strong{font-size:1.4rem;color:var(--text)}.log-meal{margin-bottom:10px}.log-item{display:grid;grid-template-columns:1fr auto auto;grid-gap:8px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--border)}.log-item .check{min-width:0;padding:2px 0}.log-item .check input{flex:none}.log-item:not(.eaten,.exercise-item) .item-info>span:first-child,.log-item:not(.eaten,.exercise-item) .item-kcal{color:var(--muted)}.log-item .tag{vertical-align:middle}.log-actions{display:flex;justify-content:space-between;gap:8px;margin-top:4px}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.history-row{display:grid;grid-template-columns:64px 1fr auto;grid-gap:12px;gap:12px;align-items:center;width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.history-row.active,.history-row:hover{border-color:var(--primary)}.history-row.active{background:var(--primary-soft)}.history-date,.history-kcal{line-height:1.25}.history-date strong{display:block}.history-date small,.history-kcal small{display:block;color:var(--muted);font-size:.75rem}.history-main{display:flex;flex-direction:column;gap:4px;min-width:0}.history-menu{overflow:hidden;text-overflow:ellipsis}.history-kcal,.history-menu{font-size:.85rem;white-space:nowrap}.history-kcal{text-align:right;color:var(--muted)}.history-kcal strong{color:var(--text)}.history-kcal strong.over{color:var(--danger)}.activity{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));grid-gap:12px;gap:12px;align-items:start}.activity-block{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface-2)}.exercise-form{display:grid;grid-template-columns:1fr 80px auto;grid-gap:6px;gap:6px;margin-top:8px}.exercise-form input{background:var(--surface)}.weight-field{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.9rem;color:var(--muted)}.weight-field input{width:100px;font-size:1.05rem;font-weight:600;background:var(--surface)}.weight-diff{margin-left:auto;font-weight:600;color:var(--text)}.history-extra{color:var(--muted);font-size:.75rem}.weight-chart{margin:0 0 16px}.weight-chart figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.85rem;color:var(--muted);margin-bottom:4px}.weight-chart figcaption>strong{color:var(--text);font-size:.95rem}.weight-chart figcaption span strong{color:var(--text)}.weight-chart-plot{position:relative}.weight-chart svg{display:block;overflow:visible}.wc-grid line{stroke:var(--border);stroke-width:1}.wc-axis,.wc-grid text{fill:var(--muted);font-size:11px}.wc-line{fill:none;stroke:var(--primary);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.wc-dot{fill:var(--primary);stroke:var(--surface);stroke-width:2}.wc-dot.selected{fill:var(--surface);stroke:var(--primary);stroke-width:2.5}.wc-label{fill:var(--text);font-size:12px;font-weight:600}.wc-cross{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}.wc-hit{fill:transparent;cursor:pointer}.wc-tip{position:absolute;transform:translateX(-50%);pointer-events:none;display:flex;flex-direction:column;align-items:center;padding:4px 8px;border-radius:6px;background:var(--text);color:#fff;font-size:.75rem;line-height:1.3;white-space:nowrap}.wc-tip span{opacity:.8}@media (max-width:640px){body{font-size:15px}input:not([type=checkbox]),select,textarea{font-size:16px!important}input:not([type=checkbox]),select{padding:9px 10px}.topbar{padding:calc(12px + env(safe-area-inset-top)) 16px 12px}.brand{font-size:1.1rem}.tabs-top{display:none}.tabs-bottom{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabs-bottom .tab{flex-direction:column;gap:2px;padding:8px 4px 7px;border-radius:0;font-size:.72rem;background:none}.tabs-bottom .tab.active{background:none}.tabs-bottom .tab.active svg{stroke-width:2.2}.toast{bottom:calc(72px + env(safe-area-inset-bottom))}.targets-fields{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}main{padding:12px 12px calc(84px + env(safe-area-inset-bottom));gap:14px}.panel{padding:14px;border-radius:12px}.panel-head h2{font-size:1.05rem}.week-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid{grid-template-columns:1fr;gap:8px}.day-card{padding:10px 12px;gap:8px}.day-body{gap:16px}.day-body .rings{width:96px;height:96px}.ring-legend{font-size:.8rem;gap:4px}.menu-card .actions .btn{padding:9px 4px}.panel-tools{width:100%}.panel-tools input{flex:1 1}.food-form{grid-template-columns:repeat(2,minmax(0,1fr))}.food-form button,.food-form>:first-child,.food-form>:nth-child(2){grid-column:1/-1}.food-table{font-size:.8rem}.food-table td,.food-table th{padding:8px 6px}.col-portion,.desktop-only{display:none}.mobile-only{display:inline}.portion-sub{display:block;color:var(--muted);font-size:.72rem}dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}dialog form{padding:16px 16px 0;min-height:100%}dialog.dialog-sm{width:calc(100vw - 24px);height:-moz-fit-content;height:fit-content;max-height:calc(100dvh - 48px);margin:auto;border-radius:var(--radius)}dialog.dialog-sm form{min-height:0}.dialog-sm .dialog-actions{flex-wrap:wrap}.dialog-sm .dialog-actions .btn{flex:1 1 auto}.dialog-footer{margin:auto -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.dialog-footer .target-progress{flex-basis:100%}.dialog-footer .dialog-actions{width:100%}.dialog-footer .dialog-actions .btn{flex:1 1}.dialog-actions .btn{padding:10px 16px}.item-row{grid-template-columns:1fr auto auto;grid-template-areas:"info info remove" "qty kcal kcal";gap:6px 8px}.item-info{grid-area:info}.qty{grid-area:qty}.item-kcal{grid-area:kcal}.item-row>.btn{grid-area:remove}.picker-list button{padding:11px 8px}.log-item .item-info,.log-item .item-kcal{grid-area:auto}.exercise-form{grid-template-columns:1fr 80px}.exercise-form .btn{grid-column:1/-1;padding:10px}.log-nav{width:100%}.log-nav input{flex:1 1}.log-other,.log-start-actions>.btn{width:100%}.log-other select{flex:1 1}.log-summary{gap:12px}.history-row{grid-template-columns:52px 1fr auto;gap:10px;padding:8px 10px}}