:root{color-scheme:dark;--bg:#070b12;--panel:#101722;--panel-2:#151e2b;--text:#f6f8fb;--muted:#8491a3;--green:#21d07a;--red:#ff5263;--line:rgba(255,255,255,.08);--status:var(--green);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--bg)}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -10%,#142033 0,var(--bg) 38%);color:var(--text)}
button,input{font:inherit}
button{color:inherit}
.app-shell{width:min(100%,520px);min-height:100vh;margin:0 auto;padding:calc(env(safe-area-inset-top) + 18px) 18px calc(env(safe-area-inset-bottom) + 30px)}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.brand{display:flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:750}
.brand-logo{display:block;width:42px;height:42px;object-fit:cover;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:#fff;box-shadow:0 5px 16px rgba(0,0,0,.26)}
.icon-button,.day-nav>button{border:1px solid var(--line);background:rgba(255,255,255,.04)}
.icon-button{width:42px;height:42px;border-radius:14px;font-size:19px}
.day-nav{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:10px;margin-bottom:15px}
.day-nav>button{min-height:48px;border-radius:16px}
.day-nav>button:not(.date-button){font-size:2rem;line-height:1}
.date-button{display:flex;flex-direction:column;align-items:center;justify-content:center}
.date-button strong{font-size:1rem}.date-button span{font-size:.78rem;color:var(--muted);margin-top:2px}
.day-nav button:disabled{opacity:.25}
.summary-card{position:relative;overflow:hidden;padding:22px;border:1px solid color-mix(in srgb,var(--status) 35%,transparent);border-radius:26px;background:linear-gradient(145deg,color-mix(in srgb,var(--status) 13%,var(--panel)),var(--panel));box-shadow:0 18px 55px rgba(0,0,0,.24);transition:.25s}
.summary-card::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-65px;top:-75px;background:var(--status);filter:blur(55px);opacity:.18}
.eyebrow{margin:0 0 8px;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.11em}
.goal-line{display:flex;align-items:baseline;gap:7px}.goal-line strong{font-size:3.35rem;line-height:1;font-variant-numeric:tabular-nums}.goal-line span{color:var(--muted);font-weight:650}
.progress-track{height:8px;margin:20px 0 12px;border-radius:20px;background:rgba(255,255,255,.09);overflow:hidden}.progress-fill{height:100%;width:0;border-radius:inherit;background:var(--status);transition:width .35s,background .25s}
.remaining{margin:0;font-weight:700;color:var(--status)}
.protein-total{margin:7px 0 0;color:#55aaff;font-size:.88rem;font-weight:750}.protein-total span{font-variant-numeric:tabular-nums}
.primary-button{width:100%;min-height:56px;margin-top:14px;border:0;border-radius:18px;background:var(--green);color:#06120c;font-weight:850;font-size:1rem;box-shadow:0 10px 30px rgba(33,208,122,.18)}
.primary-button span{font-size:1.4rem;vertical-align:-1px;margin-right:4px}
.section{margin-top:26px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:12px}.section-title h2{margin:0;font-size:1.12rem}.section-title>span:not(.legend){display:grid;place-items:center;min-width:27px;height:27px;border-radius:9px;background:var(--panel-2);color:var(--muted);font-size:.8rem;font-weight:700}.section-title p{margin:3px 0 0;font-size:.78rem;color:var(--muted)}
.entries-list{display:grid;gap:9px}.entry{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:14px 15px;border:1px solid var(--line);border-radius:17px;background:var(--panel)}.entry-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-time{display:block;margin-top:3px;color:var(--muted);font-size:.75rem}.entry-protein{color:#55aaff}.entry-kcal{font-weight:800;font-variant-numeric:tabular-nums}.entry button{width:34px;height:34px;border:0;border-radius:10px;background:rgba(255,255,255,.06);color:var(--muted)}
.empty-state{padding:27px;text-align:center;border:1px dashed rgba(255,255,255,.13);border-radius:19px;color:var(--muted)}.empty-state p{margin:8px 0 0;font-size:.9rem}.empty-icon{font-size:1.5rem}
.chart-section{padding:17px;border:1px solid var(--line);border-radius:22px;background:var(--panel)}.chart-wrap{height:190px}.chart-wrap canvas{width:100%;height:100%}.legend{font-size:.68rem;color:var(--muted);font-weight:650}.legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;background:var(--green)}
.install-hint{margin:22px 10px 0;text-align:center;color:var(--muted);font-size:.78rem;line-height:1.5}.install-hint span{color:var(--text)}
dialog{width:min(calc(100% - 28px),480px);max-height:calc(100vh - 28px);overflow:auto;border:1px solid var(--line);border-radius:25px;background:#111925;color:var(--text);padding:0;box-shadow:0 30px 100px #000}dialog::backdrop{background:rgba(2,5,9,.72);backdrop-filter:blur(7px)}dialog form{padding:22px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-head h2{margin:0;font-size:1.25rem}.modal-head button{width:36px;height:36px;border:0;border-radius:11px;background:rgba(255,255,255,.07);font-size:1.5rem;color:var(--muted)}label{position:relative;display:block;margin:15px 0;color:var(--muted);font-size:.83rem;font-weight:700}input{width:100%;height:55px;margin-top:8px;padding:0 16px;border:1px solid var(--line);border-radius:15px;outline:0;background:#0a1018;color:var(--text);font-size:1rem}input:focus{border-color:var(--green)}.input-unit{position:absolute;right:16px;bottom:18px;font-size:.78rem}.setting-row,.advanced-toggle{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 0}.setting-row strong,.advanced-toggle strong{display:block;color:var(--text);font-size:.92rem}.setting-row small,.advanced-toggle small{display:block;margin-top:4px;color:var(--muted);font-weight:500}.setting-row input,.advanced-toggle input{width:48px;height:28px;margin:0;accent-color:var(--green)}.advanced-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:2px 0}.advanced-fields label{margin:5px 0}.cancel-button,.delete-button{width:100%;min-height:48px;margin-top:10px;border-radius:15px;font-weight:750}.cancel-button{border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--text)}.delete-button{border:1px solid rgba(255,82,99,.35);background:rgba(255,82,99,.08);color:var(--red)}.install-hint.hidden{display:none}
@media(max-width:390px){.advanced-fields,.direct-fields{grid-template-columns:1fr}}
.entry{cursor:pointer}.entry:active{background:var(--panel-2)}
input::placeholder{color:var(--muted);opacity:.28}
.calculated-result{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 4px;padding:16px;border:1px solid rgba(33,208,122,.22);border-radius:16px;background:rgba(33,208,122,.07);color:var(--muted);font-size:.86rem}.calculated-result strong{color:var(--text);font-size:1.08rem;font-variant-numeric:tabular-nums}.calculated-result span:last-child{color:#55aaff}
.direct-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:2px 0}.direct-fields label{margin:5px 0}
#entryDialog label,#entryDialog .calculated-result span{color:var(--text)}
.summary-card.goal-exceeded{border-color:rgba(255,82,99,.8);animation:bomb-alert 1.2s cubic-bezier(.2,.8,.3,1) infinite;will-change:transform,box-shadow,filter}
.summary-card.goal-exceeded::before{content:"";position:absolute;z-index:2;inset:-30% auto -30% -55%;width:34%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),rgba(255,130,140,.24),transparent);transform:skewX(-18deg) translateX(-260%);animation:alarm-shine 9s linear infinite}
@keyframes bomb-alert{0%,58%,100%{transform:scale(1) rotate(0);filter:brightness(1);box-shadow:0 18px 55px rgba(0,0,0,.24),0 0 5px rgba(255,82,99,.16),inset 0 0 0 rgba(255,82,99,0)}7%{transform:scale(1.045) rotate(-.35deg);filter:brightness(1.13);box-shadow:0 22px 62px rgba(0,0,0,.3),0 0 34px rgba(255,82,99,.62),inset 0 0 22px rgba(255,82,99,.16)}14%{transform:scale(.992) rotate(.35deg);filter:brightness(.98);box-shadow:0 18px 55px rgba(0,0,0,.24),0 0 12px rgba(255,82,99,.3),inset 0 0 8px rgba(255,82,99,.08)}21%{transform:scale(1.037) rotate(-.22deg);filter:brightness(1.1);box-shadow:0 22px 62px rgba(0,0,0,.3),0 0 30px rgba(255,82,99,.56),inset 0 0 20px rgba(255,82,99,.14)}28%{transform:scale(.996) rotate(.18deg);filter:brightness(1);box-shadow:0 18px 55px rgba(0,0,0,.24),0 0 14px rgba(255,82,99,.32),inset 0 0 9px rgba(255,82,99,.08)}35%{transform:scale(1.025) rotate(0);filter:brightness(1.07);box-shadow:0 21px 60px rgba(0,0,0,.28),0 0 25px rgba(255,82,99,.48),inset 0 0 17px rgba(255,82,99,.12)}44%{transform:scale(1);filter:brightness(1);box-shadow:0 18px 55px rgba(0,0,0,.24),0 0 9px rgba(255,82,99,.24),inset 0 0 6px rgba(255,82,99,.06)}}
@keyframes alarm-shine{0%,3%{transform:skewX(-18deg) translateX(-260%);opacity:0}12%{opacity:.72}76%{opacity:.42}88%{transform:skewX(-18deg) translateX(620%);opacity:0}100%{transform:skewX(-18deg) translateX(620%);opacity:0}}
.goal-alert-dialog{position:relative;overflow:hidden;padding:24px;text-align:center;border-color:rgba(255,82,99,.62);background:radial-gradient(circle at 50% 22%,rgba(255,82,99,.16),#111925 55%);animation:alert-popup .32s cubic-bezier(.2,1.25,.35,1)}.goal-alert-dialog::backdrop{background:rgba(2,5,9,.82);backdrop-filter:blur(9px)}.goal-alert-dialog img{display:block;width:min(72vw,245px);height:auto;margin:-5px auto -8px;filter:drop-shadow(0 12px 24px rgba(0,0,0,.38))}.goal-alert-dialog h2{margin:4px auto 8px;max-width:330px;font-size:1.45rem;line-height:1.15;color:var(--text)}.goal-alert-kicker{margin:0;color:var(--red);font-size:.73rem;font-weight:900;letter-spacing:.14em}.goal-alert-close{position:absolute;z-index:3;top:14px;right:14px;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.07);color:var(--text);font-size:1.45rem}.goal-alert-dialog .primary-button{margin-top:14px}@keyframes alert-popup{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
.daily-welcome-dialog{position:relative;overflow:hidden;padding:14px;background:#fff;border-color:rgba(33,208,122,.48);text-align:center;animation:alert-popup .32s cubic-bezier(.2,1.25,.35,1)}.daily-welcome-dialog::backdrop{background:rgba(2,5,9,.78);backdrop-filter:blur(9px)}.daily-welcome-dialog img{display:block;width:100%;max-height:min(65vh,560px);object-fit:contain;border-radius:17px}.daily-welcome-close{position:absolute;z-index:3;top:20px;right:20px;width:38px;height:38px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:rgba(255,255,255,.88);color:#111;font-size:1.45rem;box-shadow:0 4px 14px rgba(0,0,0,.15)}.daily-welcome-dialog .primary-button{margin-top:10px}
@media(min-width:700px){.app-shell{padding-top:30px}.summary-card{padding:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
