:root{--navy:#032b43;--navy2:#064866;--blue:#147eae;--blue2:#07577b;--bg:#f3f7fa;--surface:#fff;--ink:#183142;--muted:#5f7482;--line:#d7e3eb;--success:#247a42;--danger:#a13b35;--warn:#8a6109;--shadow:0 10px 28px rgba(3,43,67,.09)}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:light;scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.5}
button,input,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.shortcut:focus-visible{outline:3px solid #62bce2;outline-offset:3px}
[hidden]{display:none!important}
.app-header{position:sticky;top:0;z-index:20;min-height:68px;padding:8px max(16px,calc((100% - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--navy);box-shadow:0 3px 16px rgba(0,0,0,.16)}
.brand{display:block;width:210px;height:48px;overflow:hidden;border-radius:8px}.brand img{width:100%;height:100%;display:block;object-fit:cover}
.header-actions{display:flex;gap:8px}.quiet{min-height:44px;padding:8px 12px;border:1px solid rgba(255,255,255,.35);border-radius:10px;background:transparent;color:#fff;font-weight:700}
.shell{width:100%;max-width:1120px;margin-inline:auto;padding:32px 20px 112px}
h1,h2,h3{color:var(--navy);line-height:1.18}h1{font-size:clamp(1.75rem,4vw,2.45rem);margin:.2rem 0 .65rem}h2{font-size:1.35rem}p{margin:.4rem 0 1rem}
.eyebrow{margin:0;color:var(--blue2);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.auth-card{max-width:650px;margin:3vh auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(20px,5vw,38px);box-shadow:var(--shadow)}
.auth-copy{text-align:center;max-width:520px;margin:0 auto 22px}.auth-copy p:last-child{color:var(--muted)}
.role-switch{display:grid;grid-template-columns:1fr 1fr;padding:4px;margin-bottom:20px;border:1px solid var(--line);border-radius:14px;background:#eef4f7}.role{min-height:46px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:800}.role.active{background:var(--surface);color:var(--navy);box-shadow:0 2px 8px rgba(3,43,67,.1)}
.form-stack{display:grid;gap:14px}.form-stack label{display:grid;gap:5px;font-size:.88rem;font-weight:700;color:#345}.form-stack input,.form-stack select{width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #b8cbd6;border-radius:10px;background:#fff;color:var(--ink)}
.primary,.secondary{min-height:46px;padding:10px 16px;border-radius:11px;font-weight:800}.primary{border:1px solid var(--blue2);background:var(--blue2);color:#fff}.primary:hover{background:var(--navy)}.secondary{border:1px solid var(--line);background:#eaf2f7;color:var(--navy)}
.form-help{padding:12px;border-radius:10px;background:#edf6fa;color:#31566a}.activation{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.activation summary{min-height:44px;padding:10px 0;color:var(--blue2);font-weight:800;cursor:pointer}.activation form{padding-top:12px}
.status{min-height:24px;margin:12px 0 0;color:var(--muted);font-weight:700}.status.error{color:var(--danger)}.status.success{color:var(--success)}
.welcome-row{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:4px 0 22px}.welcome-row p:last-child{color:var(--muted);margin-bottom:0}.welcome-row .secondary{flex:0 0 auto}
.summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:18px 12px;margin-bottom:30px;border-radius:18px;background:linear-gradient(120deg,var(--navy),var(--navy2));color:#fff;box-shadow:var(--shadow)}
.summary-item{min-width:0;padding:3px 16px;text-align:center;border-right:1px solid rgba(255,255,255,.2)}.summary-item:last-child{border:0}.summary-item strong{display:block;font-size:clamp(1.35rem,4vw,1.85rem)}.summary-item span{font-size:.78rem;color:#d6e7ef}
.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}.section-title h2{margin:2px 0 0}
.shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:26px}.shortcut{--accent:var(--blue);position:relative;min-width:0;min-height:148px;padding:18px;border:1px solid var(--line);border-radius:17px;background:var(--surface);color:var(--ink);text-align:left;box-shadow:var(--shadow);display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto 1fr;gap:12px;transition:transform .18s ease,border-color .18s ease}.shortcut:hover{transform:translateY(-2px);border-color:var(--accent)}.shortcut.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent),var(--shadow)}
.shortcut-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 13%,white);color:var(--accent);font-size:1.7rem;font-weight:800}.shortcut-copy{grid-column:1/-1;display:grid;align-content:start;gap:3px}.shortcut-copy strong{font-size:1.03rem}.shortcut-copy small{color:var(--muted);line-height:1.35}.shortcut-badge{position:absolute;right:14px;top:14px;min-width:30px;height:30px;padding:0 8px;border-radius:999px;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:.78rem;font-weight:800}
.panel{min-height:240px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-head h2{margin:0 0 4px}.panel-head p{margin:0;color:var(--muted)}.empty-panel{text-align:center;padding:42px 12px;color:var(--muted)}
.data-list{display:grid;gap:10px}.data-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:13px 2px;border-top:1px solid var(--line)}.data-item:first-child{border-top:0}.data-item strong,.data-item span{min-width:0}.data-item small{display:block;color:var(--muted);margin-top:2px}.metric{color:var(--blue2);font-weight:800;text-align:right}.empty{padding:24px;text-align:center;color:var(--muted);background:#f7fafc;border-radius:12px}
.entry-form{max-width:620px;display:grid;gap:14px}.entry-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.entry-form label{display:grid;gap:5px;font-size:.88rem;font-weight:700}.entry-form input,.entry-form select{width:100%;min-height:48px;padding:10px;border:1px solid #b8cbd6;border-radius:10px}.entry-form .primary{justify-self:start}.helper{font-size:.85rem;color:var(--muted)}
.meal-preview{width:100%;max-width:420px;max-height:320px;object-fit:cover;border:1px solid var(--line);border-radius:14px}.meal-result{padding:15px;margin-top:12px;border:1px solid #b9d7e5;border-radius:12px;background:#f0f8fb}.meal-result strong{font-size:1.35rem;color:var(--blue2)}
.chart{min-height:190px;padding:16px 10px 4px;display:flex;align-items:end;gap:8px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);overflow-x:auto}.bar{min-width:42px;flex:1;max-width:72px;display:grid;align-content:end;gap:5px;height:160px;text-align:center}.bar i{display:block;min-height:4px;border-radius:7px 7px 2px 2px;background:var(--blue)}.bar small{font-size:.68rem;color:var(--muted)}
.floating{position:fixed;right:18px;bottom:86px;z-index:40;max-width:min(420px,calc(100% - 36px));min-height:0;margin:0;padding:12px 16px;border-radius:12px;background:var(--navy);color:#fff;box-shadow:var(--shadow)}.floating:empty{display:none}.floating.error{background:var(--danger)}.floating.success{background:var(--success)}
.bottom-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;min-height:72px;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:#fff;box-shadow:0 -8px 22px rgba(3,43,67,.09)}.bottom-nav button{min-width:44px;min-height:52px;border:0;background:transparent;color:var(--muted);font-size:.72rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.bottom-nav span{font-size:1.35rem;color:var(--blue2)}
dialog{max-width:460px;border:1px solid var(--line);border-radius:18px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(3,20,31,.55)}dialog form{position:relative;padding:26px}.dialog-close{position:absolute;right:10px;top:8px;width:44px;height:44px;border:0;background:transparent;font-size:1.7rem;color:var(--muted)}dialog h2{margin-top:0}dialog li{margin:8px 0}
@media(max-width:760px){.shell{padding:22px 14px 108px}.app-header{min-height:62px;padding:7px 14px}.brand{width:174px;height:42px}.header-actions .quiet:first-child{display:none}.welcome-row{align-items:start;flex-direction:column}.welcome-row .secondary{width:100%}.summary-strip{padding:13px 5px}.summary-item{padding:2px 5px}.shortcut-grid{grid-template-columns:1fr 1fr;gap:10px}.shortcut{min-height:154px;padding:14px}.shortcut-icon{width:46px;height:46px}.panel{padding:17px 14px;border-radius:15px}.bottom-nav:not([hidden]){display:grid}.entry-form .row{grid-template-columns:1fr}.data-item{align-items:start}}
@media(max-width:420px){.auth-card{margin:0;border-radius:15px;padding:20px 16px;box-shadow:none}.shortcut{min-height:144px}.shortcut-copy strong{font-size:.96rem}.shortcut-copy small{font-size:.75rem}.summary-item span{font-size:.68rem}}
@media(max-width:350px){.shortcut-grid{grid-template-columns:1fr}.shortcut{min-height:112px}}
@media(min-width:761px){.bottom-nav{display:none!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.shortcut{transition:none}}
