: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;--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)}.topbar h1{margin:0;font-size:1.35rem}.targets{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}.targets-title{color:var(--muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.targets-fields{display:flex;gap:8px}.target-field{display:flex;flex-direction:column;gap:2px;font-size:.75rem;font-weight:600;color:var(--text)}.target-field small{color:var(--muted);font-weight:400}.target-field input{width:84px}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}.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(150px,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-name{font-weight:600}.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.6rem;font-weight:700;line-height:1.1}.day-kcal small{font-size:.8rem;font-weight:400;color:var(--muted)}.day-kcal.over{color:var(--danger)}.day-kcal.ok{color:var(--primary)}.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}.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:flex;flex-wrap:wrap;gap: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}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)}.dialog-total{display:flex;flex-direction:column;font-size:.9rem}.dialog-total strong{font-size:1.15rem}.dialog-total small{color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-left:auto}dialog form>.dialog-actions{padding-bottom:20px}.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{max-height:420px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.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}.mobile-only,.portion-sub{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)}@media (max-width:640px){body{font-size:15px}input,select{font-size:16px;padding:9px 10px}.topbar{padding:12px 16px;gap:10px}.topbar h1{font-size:1.2rem}.targets{width:100%;flex-direction:column;align-items:stretch;gap:6px}.targets-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.target-field input{width:100%}main{padding:12px 12px 40px;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{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name kcal" "bar bar" "macros macros" "select select";grid-gap:6px 10px;gap:6px 10px;padding:10px 12px;align-items:center}.day-name{grid-area:name}.day-kcal{grid-area:kcal;font-size:1.3rem;text-align:right}.day-card>.bar{grid-area:bar}.day-card .macro-bars{grid-area:macros;flex-direction:row;gap:12px}.day-card .macro-row{flex:1 1;grid-template-columns:auto 1fr;grid-template-areas:"label val" "bar bar";gap:2px 4px}.day-card .macro-label{grid-area:label}.day-card .macro-val{grid-area:val;text-align:right}.day-card .macro-row .bar{grid-area:bar}.day-card select{grid-area:select;margin-top:2px}.menu-card .actions .btn{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 6px);padding:8px 10px}.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-footer{margin:auto -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.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}}