:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#111827;background:#f3f4f6;line-height:1.35}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#eef2ff 0,#f8fafc 24rem,#f3f4f6 100%);min-height:100vh}.app-shell{width:min(1180px,calc(100% - 24px));margin:0 auto;padding:24px 0 64px}.topbar,.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.topbar{margin-bottom:18px}h1,h2,p{margin:0}h1{font-size:clamp(28px,5vw,44px);letter-spacing:-.035em}h2{font-size:20px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:#6366f1;margin-bottom:4px}.muted{color:#6b7280}.actions,.date-nav{display:flex;gap:8px;flex-wrap:wrap}.btn{border:0;border-radius:12px;padding:11px 14px;font-weight:800;background:#111827;color:#fff;cursor:pointer}.btn.secondary{background:#fff;color:#111827;border:1px solid #d1d5db}.btn.secondary:disabled{color:#9ca3af;background:#f3f4f6;cursor:default}.btn.primary{background:#4f46e5}.panel{background:rgba(255,255,255,.92);border:1px solid rgba(209,213,219,.9);border-radius:20px;box-shadow:0 12px 35px rgba(17,24,39,.06);padding:18px}.auth-panel{display:none}.hidden{display:none!important}.status{border-radius:14px;padding:10px 14px;margin-bottom:16px;background:#eef2ff;color:#3730a3;font-weight:700}.status.error{background:#fef2f2;color:#991b1b}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.person-card{overflow:hidden}.person-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.person-title{font-size:28px;font-weight:900;letter-spacing:-.03em}.kcal-block{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;margin-bottom:14px}.metric-box{border-radius:16px;background:#f9fafb;border:1px solid #e5e7eb;padding:14px}.metric-label{font-size:12px;color:#6b7280;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.metric-value{font-size:30px;font-weight:900;letter-spacing:-.04em;margin-top:4px}.metric-sub{font-size:12px;color:#6b7280;margin-top:2px}.progress{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-top:10px}.progress>span{display:block;height:100%;border-radius:inherit;background:#4f46e5}.macro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.macro{min-width:0;padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:14px}.macro-name{display:flex;align-items:center;gap:6px;font-weight:900;font-size:13px;white-space:nowrap}.macro-token{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;background:#eef2ff;color:#4f46e5;font-size:11px;font-weight:900}.macro-main{font-size:20px;font-weight:900;letter-spacing:-.035em;margin-top:6px;white-space:nowrap}.macro-rest{display:flex;justify-content:space-between;gap:4px;font-size:11px;color:#6b7280;font-weight:750;margin-top:5px;white-space:nowrap}.macro.is-over{background:#fffafa;border-color:#fecaca}.macro.is-over .macro-token{background:#fee2e2;color:#b91c1c}.macro.is-over .macro-rest{color:#b91c1c}.charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.chart-card{min-height:330px}.chart-card canvas{margin-top:12px;max-height:250px}.intakes{display:grid;gap:10px;margin-top:14px}.intake-row{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;border-bottom:1px solid #e5e7eb;padding:10px 2px}.intake-row:last-child{border-bottom:0}.intake-moment{font-size:12px;font-weight:800;color:#6b7280}.intake-food{font-weight:700}.intake-person{display:inline-block;margin-right:8px;font-size:11px;padding:3px 7px;border-radius:999px;background:#eef2ff;color:#4338ca}.intake-kcal{text-align:right;font-weight:900}.intake-macros{font-size:11px;color:#6b7280;font-weight:600;margin-top:2px}dialog{border:0;border-radius:22px;padding:0;width:min(720px,calc(100% - 24px));box-shadow:0 30px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(4px)}.settings-form{padding:20px;display:grid;gap:16px}.settings-form label{display:grid;gap:6px;font-size:13px;font-weight:800}.settings-form input{width:100%;border:1px solid #d1d5db;border-radius:11px;padding:10px 11px;font:inherit}.goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.goal-grid fieldset{border:1px solid #e5e7eb;border-radius:16px;padding:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.goal-grid legend{font-weight:900;padding:0 6px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.icon-btn{border:0;background:transparent;font-size:30px;cursor:pointer;color:#6b7280}.target-note{font-size:12px;color:#6b7280;margin-top:12px}.empty{color:#6b7280;padding:16px 0;text-align:center}@media(max-width:760px){.app-shell{padding-top:16px}.topbar{align-items:flex-end}.people-grid,.charts-grid{grid-template-columns:1fr}.kcal-block{grid-template-columns:1fr 1fr}.macro-grid{grid-template-columns:repeat(3,1fr)}.goal-grid{grid-template-columns:1fr}.intake-row{grid-template-columns:72px 1fr auto}.chart-card{min-height:300px}}@media(max-width:460px){.topbar{display:block}.actions{margin-top:12px}.kcal-block{grid-template-columns:1fr}.macro-grid{grid-template-columns:1fr}.intake-row{grid-template-columns:1fr}.intake-kcal{text-align:left}.goal-grid fieldset{grid-template-columns:1fr 1fr}}
:root{--card-gap:16px}.people-grid{display:flex;overflow-x:auto;overflow-y:hidden;gap:var(--card-gap);margin-bottom:16px;padding:0 1px 6px;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.people-grid::-webkit-scrollbar{display:none}.people-grid>.person-card{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
@media(max-width:460px){.people-grid>.person-card{padding:14px}.people-grid .person-head{margin-bottom:10px}.people-grid .person-title{font-size:24px}.people-grid .kcal-block{grid-template-columns:1.1fr .9fr;gap:8px;margin-bottom:8px}.people-grid .metric-box{padding:10px}.people-grid .metric-value{font-size:24px}.people-grid .metric-sub{font-size:11px}.people-grid .macro-grid{grid-template-columns:repeat(3,1fr);gap:6px}.people-grid .macro{padding:9px}.people-grid .macro-name{gap:4px;font-size:11px}.people-grid .macro-token{width:17px;height:17px;border-radius:6px;font-size:9px}.people-grid .macro-main{font-size:16px;margin-top:5px}.people-grid .macro-rest{display:flex;font-size:9px;line-height:1.15;margin-top:5px;font-weight:800}.people-grid .progress{height:7px;margin-top:6px}.people-grid .target-note{margin-top:8px;font-size:11px}}
.progress{position:relative}.progress .overage{position:absolute;top:0;background:#dc2626}
