:root{--ink:#18342d;--muted:#6c7f79;--bg:#f3f6f1;--paper:#fff;--green:#266f57;--green2:#dcece5;--line:#dfe6e1;--amber:#e7a839;--red:#c65b5b;--shadow:0 10px 35px rgba(26,57,47,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink);display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#173f34;color:#fff;padding:28px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;margin:0 8px 34px}.brand-mark{width:42px;height:42px;border-radius:13px;background:#f1b84c;color:#173f34;display:grid;place-items:center;font-weight:900;font-size:18px}.brand small{display:block;color:#a8c5ba;margin-top:3px}.nav-item{display:block;width:100%;border:0;background:transparent;color:#bcd1c9;text-align:left;padding:12px 14px;border-radius:10px;margin:3px 0;font-size:14px;cursor:pointer}.nav-item:hover,.nav-item.active{background:#2a594b;color:#fff}.sidebar-foot{margin-top:auto;color:#a8c5ba;font-size:12px;padding:10px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#72d39e;margin-right:8px}main{padding:30px 38px 60px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:11px;letter-spacing:.16em;color:var(--muted);margin:0 0 5px}.topbar h1{margin:0;font-size:28px}.top-actions{display:flex;gap:10px}button{font:inherit}.primary,.ghost,.danger{border:0;padding:10px 15px;border-radius:9px;cursor:pointer;font-weight:650}.primary{background:var(--green);color:#fff}.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.danger{background:#fff0f0;color:var(--red);border:1px solid #f1cece}.view{display:none}.view.active{display:block}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,minmax(150px,1fr));margin-bottom:20px}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.stat strong{display:block;font-size:30px;margin:8px 0 4px}.muted{color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:22px 0 12px}.section-head h2{font-size:18px;margin:0}.season-grid{grid-template-columns:repeat(4,1fr)}.season-card{cursor:pointer}.season-card:hover{border-color:#9bc1af}.season-card .bar{height:7px;border-radius:6px;background:#e4eee9;margin:14px 0 9px;overflow:hidden}.season-card .bar span{display:block;height:100%;background:var(--green)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.toolbar input,.toolbar select,.field input,.field select,.field textarea{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.toolbar input{min-width:240px}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;background:#f7f9f6;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:12px}td{padding:12px;border-top:1px solid var(--line);vertical-align:top}tbody tr:hover{background:#fbfcfa}.badge{display:inline-block;padding:4px 8px;border-radius:99px;background:var(--green2);color:var(--green);font-size:11px;font-weight:700}.badge.warn{background:#fff1d6;color:#906114}.badge.red{background:#ffe7e7;color:#9a3c3c}.link-btn{border:0;background:none;color:var(--green);cursor:pointer;padding:2px 4px;font-weight:700}.day-tabs{display:flex;gap:6px;overflow:auto;padding-bottom:8px}.day-tab{border:1px solid var(--line);background:#fff;padding:8px 11px;border-radius:8px;white-space:nowrap;cursor:pointer}.day-tab.active{background:var(--green);color:#fff;border-color:var(--green)}.meal-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}.meal h3{margin:0 0 10px;font-size:15px}.meal-line{display:flex;justify-content:space-between;padding:7px 0;border-top:1px dashed var(--line);gap:12px}.meal-line:first-of-type{border:0}.nutri{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}.nutri div{background:#f7f9f6;border-radius:8px;padding:8px;text-align:center}.nutri strong{display:block}.alert{padding:12px 14px;border-radius:10px;background:#fff5dd;border:1px solid #f0d89d;color:#785516}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12px;color:var(--muted);font-weight:700}.field textarea{min-height:80px;resize:vertical}.row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.row.five{grid-template-columns:repeat(5,1fr)}dialog{border:0;border-radius:16px;padding:0;width:min(760px,92vw);box-shadow:0 25px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(8,28,22,.5)}dialog form>header,dialog form>footer{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}dialog form>footer{border:0;border-top:1px solid var(--line);justify-content:flex-end;gap:10px}#modal-body{padding:20px;max-height:65vh;overflow:auto}.icon-btn{border:0;background:none;font-size:26px;cursor:pointer;color:var(--muted)}#toast{position:fixed;right:24px;bottom:24px;background:#173f34;color:#fff;padding:12px 18px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}.dropzone{border:2px dashed #b7c8c0;border-radius:14px;padding:35px;text-align:center;background:#fbfcfa}.progress{height:8px;background:#e7ece9;border-radius:8px;overflow:hidden}.progress span{display:block;height:100%;background:var(--green)}@media(max-width:900px){body{grid-template-columns:1fr}.sidebar{height:auto;position:static;padding:15px}.brand{margin-bottom:12px}.sidebar nav{display:flex;overflow:auto}.nav-item{white-space:nowrap}.sidebar-foot{display:none}main{padding:20px}.stats,.season-grid{grid-template-columns:repeat(2,1fr)}.meal-grid{grid-template-columns:1fr}}@media(max-width:560px){.stats,.season-grid,.row,.row.five{grid-template-columns:1fr}.topbar{align-items:flex-start}.top-actions{flex-direction:column}.nutri{grid-template-columns:repeat(2,1fr)}}@media print{.sidebar,.topbar,.toolbar,.day-tabs,.no-print{display:none!important}body{display:block;background:#fff}main{padding:0}.view{display:none!important}#menus.view.active{display:block!important}.card,.table-wrap{box-shadow:none;border-color:#bbb;break-inside:avoid}.meal-grid{grid-template-columns:repeat(2,1fr)}.print-day{page-break-after:always}.print-day:last-child{page-break-after:auto}}
