:root{--bg: #f5e6d3;--ink: #2c1810;--muted: #6b5a4a;--accent: #7a1f2b;--green: #2c5e2e;--card: #fffaf3;--border: rgba(44, 24, 16, .12);--warm: #b8541f;--nutrition: #2c5e2e;--exploration: #7a1f2b;--fun: #c98a1e}*{box-sizing:border-box}body{margin:0;font-family:Georgia,Times New Roman,serif;background:var(--bg);color:var(--ink);line-height:1.5}.page{max-width:960px;margin:0 auto;padding:1.5rem 1.5rem 4rem}.hero{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:2rem}.brand{font-size:1.4rem;font-weight:700;text-decoration:none;color:var(--ink);margin-right:auto}.nav{display:flex;gap:1.25rem}.nav-link{color:var(--muted);text-decoration:none;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;padding-bottom:.2rem;border-bottom:2px solid transparent}.nav-link:hover{color:var(--ink)}.nav-link.active{color:var(--accent);border-bottom-color:var(--accent)}.back-home{color:var(--muted);font-size:.85rem;text-decoration:none}.back-home:hover{color:var(--ink)}.status{text-align:center;color:var(--muted);padding:2rem 0}.status.error{color:var(--accent)}button{font-family:inherit;font-size:.95rem;cursor:pointer;padding:.55rem 1.25rem;border:1px solid var(--border);background:var(--card);color:var(--ink)}button.primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}button.primary:hover:not(:disabled){background:#5a161f}button.primary:disabled{opacity:.6;cursor:not-allowed}button.ghost{background:none;border:none;color:var(--muted);padding:.3rem .5rem}button.ghost:hover{color:var(--accent)}button.danger{background:none;color:var(--accent);border-color:var(--accent)}button.danger:hover{background:#7a1f2b14}.week-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.week-head h2{margin:0;font-size:1.25rem}.week-head .range{color:var(--muted);font-size:.9rem}.week-nav{display:flex;gap:.5rem}.week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.day-card{background:var(--card);border:1px solid var(--border);padding:.85rem .9rem;display:flex;flex-direction:column;gap:.5rem;min-height:130px}.day-card .day-head{display:flex;justify-content:space-between;align-items:baseline}.day-card .weekday{font-weight:700}.day-card .date{color:var(--muted);font-size:.85rem}.day-card .today{color:var(--accent)}.slot{border-top:1px dashed var(--border);padding-top:.45rem;display:flex;flex-direction:column;gap:.2rem}.slot:first-of-type{border-top:none;padding-top:0}.slot .slot-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.slot .meal-row{display:flex;align-items:center;gap:.4rem;justify-content:space-between}.slot .meal-name{flex:1;font-size:.95rem}.slot .empty-slot{color:var(--muted);font-style:italic;cursor:pointer;padding:.15rem 0;font-size:.9rem}.slot .empty-slot:hover{color:var(--accent)}.bucket-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;flex-shrink:0}.bucket-dot.warm{background:var(--warm)}.bucket-dot.nutrition{background:var(--nutrition)}.bucket-dot.exploration{background:var(--exploration)}.bucket-dot.fun{background:var(--fun)}.bucket-tag{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.1rem .45rem;color:#fff}.bucket-tag.warm{background:var(--warm)}.bucket-tag.nutrition{background:var(--nutrition)}.bucket-tag.exploration{background:var(--exploration)}.bucket-tag.fun{background:var(--fun)}.distribution{margin-top:1.5rem;background:var(--card);border:1px solid var(--border);padding:1rem 1.25rem}.distribution h3{margin:0 0 .5rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.dist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:.75rem}.dist-cell{display:flex;flex-direction:column;gap:.15rem}.dist-cell .dist-count{font-size:1.5rem;font-weight:700}.dist-cell .dist-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.dist-bar{display:flex;height:12px;background:var(--bg);border:1px solid var(--border);overflow:hidden}.dist-bar .seg{height:100%}.dist-bar .seg.warm{background:var(--warm)}.dist-bar .seg.nutrition{background:var(--nutrition)}.dist-bar .seg.exploration{background:var(--exploration)}.dist-bar .seg.fun{background:var(--fun)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c181073;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:10}.modal{background:var(--card);border:1px solid var(--border);max-width:480px;width:100%;max-height:90vh;overflow-y:auto;padding:1.25rem 1.5rem}.modal h3{margin:0 0 1rem;font-size:1.1rem}.modal .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}form.food-form{display:flex;flex-direction:column;gap:.85rem}form.food-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.95rem}form.food-form label span{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}form.food-form input,form.food-form select,form.food-form textarea{font-family:inherit;font-size:.95rem;padding:.5rem .65rem;background:var(--bg);border:1px solid var(--border);color:var(--ink)}form.food-form input:focus,form.food-form select:focus,form.food-form textarea:focus{outline:none;border-color:var(--accent)}form.food-form textarea{resize:vertical}.bucket-picker{display:flex;gap:.4rem;flex-wrap:wrap}.bucket-picker button{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding:.35rem .7rem;background:var(--card);border:1px solid var(--border);color:var(--muted)}.bucket-picker button.active.warm{background:var(--warm);color:#fff;border-color:var(--warm)}.bucket-picker button.active.nutrition{background:var(--nutrition);color:#fff;border-color:var(--nutrition)}.bucket-picker button.active.exploration{background:var(--exploration);color:#fff;border-color:var(--exploration)}.bucket-picker button.active.fun{background:var(--fun);color:#fff;border-color:var(--fun)}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.5rem;flex-wrap:wrap}.modal-actions .spacer{flex:1}.form-error{color:var(--accent)}.library-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.library-head h2{margin:0;font-size:1.25rem}.library-head input[type=search]{font-family:inherit;font-size:.95rem;padding:.5rem .7rem;background:var(--card);border:1px solid var(--border);color:var(--ink);min-width:220px}.meal-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border)}.meal-table th,.meal-table td{text-align:left;padding:.6rem .85rem;border-bottom:1px solid var(--border)}.meal-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:400}.meal-table tbody tr:last-child td{border-bottom:none}.empty{color:var(--muted);padding:1rem}.add-meal-inline{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.add-meal-inline h3{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .75rem}.stats-grid{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.stats-row{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.stats-row .week-label{width:130px;color:var(--muted)}.stats-row .stack-bar{flex:1;display:flex;height:22px;background:var(--bg);border:1px solid var(--border)}.stats-row .stack-bar .seg{height:100%}.stats-row .stack-bar .seg.warm{background:var(--warm)}.stats-row .stack-bar .seg.nutrition{background:var(--nutrition)}.stats-row .stack-bar .seg.exploration{background:var(--exploration)}.stats-row .stack-bar .seg.fun{background:var(--fun)}.stats-row .total{width:40px;text-align:right;font-variant-numeric:tabular-nums}.legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem;font-size:.85rem;color:var(--muted)}.legend .leg{display:flex;gap:.4rem;align-items:center}
