:root{--text: #575757;--text-h: #1B1464;--bg: #fff;--card: #fff;--border: #e9e7f7;--code-bg: #f7f3ff;--accent: #FFC312;--accent-2: #12CBC4;--accent-3: #FDA7DF;--accent-pale: rgba(255, 195, 18, .08);--accent-2-pale: rgba(18, 203, 196, .08);--accent-3-pale: rgba(253, 167, 223, .08);--accent-bg: rgba(255, 195, 18, .08);--accent-border: rgba(255, 195, 18, .28);--social-bg: rgba(18, 137, 167, .06);--shadow: rgba(23, 17, 100, .06) 0 10px 15px -3px, rgba(23, 17, 100, .03) 0 4px 6px -2px;--sans: system-ui, "Segoe UI", Roboto, sans-serif;--heading: system-ui, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (max-width: 1024px){:root{font-size:16px}}#root{width:100%;max-width:100%;margin:0;text-align:center;height:100svh;display:flex;flex-direction:column;box-sizing:border-box}body{margin:0}h1,h2{font-family:var(--heading);font-weight:500;color:var(--text-h)}h1{font-size:56px;letter-spacing:-1.68px;margin:32px 0}@media (max-width: 1024px){h1{font-size:36px;margin:20px 0}}h2{font-size:24px;line-height:118%;letter-spacing:-.24px;margin:0 0 8px}@media (max-width: 1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);display:inline-flex;border-radius:4px;color:var(--text-h)}code{font-size:15px;line-height:135%;padding:4px 8px;background:var(--code-bg)}:root{--bg:#fbfbfe;--card:#ffffff;--accent:#FFC312;--muted:#6b6b7a}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;color:#111;background:linear-gradient(180deg,#fbfbfe,#fff)}.app-root{display:flex;flex-direction:column;min-height:100svh;width:100%;margin:0;box-sizing:border-box}body,input,textarea,select{-webkit-text-size-adjust:100%}input,textarea,select{font-size:16px}.app-root{display:flex;flex-direction:column;min-height:100svh;max-width:480px;margin:0 auto;border-left:1px solid #eee;border-right:1px solid #eee}.top{display:flex;align-items:center;justify-content:space-between;padding:12px 14px}.top .arrow{background:#fff;border:1px solid #ddd;padding:8px 14px;border-radius:8px;font-size:18px}.dateWrap{flex:1;display:flex;justify-content:center;position:relative}.dateBtn{background:#fff;border:1px solid #ddd;padding:10px 16px;border-radius:14px;font-size:16px}.hiddenDate{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;border:0;margin:0;padding:0;background:transparent}.totals{padding:0 12px}.last14{display:flex;align-items:center;gap:12px}.last14-label{font-weight:700;color:#444;flex:0 0 auto}.last14-squares{display:flex;gap:6px;flex:1 1 auto}.last14-squares .square{flex:1 1 0;height:24px;border-radius:6px;border:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:10px}.last14-squares .square.filled{background:linear-gradient(90deg,#4caf50,#66bb6a)}.last14-squares .square.skipped{background:linear-gradient(90deg,#ea2027,#ed4c67)}.last14-squares .square.empty{background:#ccc;color:#666}.last14-squares .square.confirmed{background:linear-gradient(90deg,#8bc34a,#c5e1a5)}.last14-squares .square.filled-unconfirmed{background:linear-gradient(90deg,#ff9800,#ffb74d)}.last14-squares .square.today{flex:.6 1 auto;padding:0 8px}.progress{margin:8px 0}.progress-label{font-size:16px;margin-bottom:6px;color:var(--text-h);text-align:left;font-weight:700;display:flex;align-items:center;justify-content:space-between}.progress-label-main{flex:0 1 auto}.progress-remaining{flex:0 0 auto;font-size:13px;color:var(--muted);font-weight:600;margin-left:12px}.progress-track{height:30px;border-radius:10px;border:2px solid #ccc;background:#fff;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#ffc3127a,#12cbc470)}.progress.calories .progress-fill{background:linear-gradient(90deg,#12cbc470,#66bb6a70)}.progress.protein .progress-fill{background:linear-gradient(90deg,#fda7df80,#ed4c6770)}.progress-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:14px;color:var(--text-h);font-weight:700}.progress-track{position:relative}.progress-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-weight:700;color:var(--text-h);pointer-events:none}.progress-overlay-left{float:left;text-align:left}.progress-overlay-right{float:right;text-align:right;font-weight:600}.progress.skipped .progress-overlay{color:#7a1f1f}.timeline{display:flex;flex-direction:column;padding:8px;min-height:0;flex:1}.timeline-inner{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;border:2px solid #eee;border-radius:10px;padding:5px 5px 45px;position:relative;min-height:0}.timeline-inner.confirmed{border-color:#2e7d32;background:linear-gradient(180deg,#8bc34a0f,#fff0)}.timeline-inner.inprogress{border-color:#ff9800;background:linear-gradient(180deg,#ffc8c80f,#fff0)}.timeline-inner.skipped{border-color:#ea2027;background:linear-gradient(180deg,#ea20270f,#fff0)}.day-start{display:flex;justify-content:center;font-weight:500;padding:4px 0;color:#444}.timeline-inner:before{display:none}.entry{display:flex;justify-content:center;position:relative}.entry:before{display:none}.entry:after{display:none}.plusRow{display:flex;justify-content:center;margin:1px 0}.caretRow{display:flex;justify-content:center;color:#bbb;font-size:14px;margin:-4px 0}.plus{width:44px;height:44px;border-radius:22px;border:2px solid #e0c068;background:#fff;font-size:22px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 18px #00000014;transition:transform .16s,box-shadow .16s,background .12s}.plus:hover{transform:translateY(-3px);box-shadow:0 10px 30px #0000001f}.plus:active{transform:translateY(0)}.entry{display:flex;justify-content:center}.timeline-inner.skipped .caretRow,.timeline-inner.skipped .plusRow,.timeline-inner.skipped .day-start{display:none}.skippedMessage{display:flex;justify-content:center;align-items:center;font-weight:700;color:#ea2027;padding:24px;font-size:30px;opacity:.45}.timeline-inner.skipped .skippedMessage{height:50px;display:flex;justify-content:center;align-items:center}.unskipBtn{padding:12px 18px;border-radius:10px;border:0;background:linear-gradient(90deg,#ea2027,#ed4c67);color:#fff;font-weight:700}.unskipBtn:hover{filter:brightness(1.02)}.confirmBtn{padding:6px 8px;border-radius:8px;background:#fff;border:1px solid #ddd;color:#2e7d32;font-weight:700;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.confirmBtn:disabled{opacity:.45;cursor:default}.confirmBtn.confirmed{background:#e6f8ea;border:1px solid #2e7d32}.skipBtn{padding:6px 8px;border-radius:8px;background:#fff;border:1px solid #ddd;color:#b53471;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.skipBtn.skipped{background:#ffe5e5;border:1px solid #B53471}.entry-chip{width:94%;background:var(--card);border-radius:10px;padding:10px 12px;border:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.entry-chip{box-shadow:0 6px 18px #00000014;transition:transform .18s,box-shadow .18s}.entry-chip:hover{transform:translateY(-3px);box-shadow:0 10px 30px #0000001f}.entry-chip:active{transform:translateY(-1px)}.entry-chip{animation:entry-pop .18s ease-out}.caretRow{transition:opacity .2s}.entry-label{font-weight:600}.entry-stats{display:flex;gap:8px;align-items:center;font-size:16px}.entry-stats .kcal{background:var(--accent-2-pale, rgba(18,203,196,.06));padding:6px 8px;border-radius:6px;color:var(--text-h);font-weight:600}.entry-stats .protein{background:var(--accent-pale, rgba(255,195,18,.06));padding:6px 8px;border-radius:6px;color:var(--text-h);font-weight:600}.del{border:1px solid #EA2027;background:#fff;color:#ea2027;padding:6px 8px;border-radius:6px;font-weight:700}.del:hover{background:#ea20270a}.del:active{transform:translateY(0)}.top .arrow,.dateBtn,.plus,.entry-chip,.del,.primary,.secondary,.closem,.skipBtn,.confirmBtn,.last14-squares .square{cursor:pointer}button[disabled],.primary:disabled,.secondary:disabled{opacity:.5;cursor:default}.copyFull{width:100%;padding:12px;border-radius:10px;border:0;background:linear-gradient(90deg,var(--accent-2, #12CBC4),var(--accent, #FFC312));color:#fff;font-size:16px;cursor:pointer;box-shadow:0 6px 18px #00000014}.copyFull:active{transform:translateY(0)}.copyFull:hover{filter:brightness(1.02)}.copyFull:focus{outline:3px solid rgba(18,203,196,.18);outline-offset:2px}.copyFull[disabled]{opacity:.6;cursor:default}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059;z-index:40}.modal-card{background:var(--card);width:auto;max-width:420px;border-radius:14px;padding:14px;box-shadow:0 6px 18px #0000001f;display:flex;flex-direction:column;gap:8px;align-self:flex-start;margin-top:8vh}.modal-head{display:flex;justify-content:space-between;align-items:center;font-weight:700}.modal input{padding:10px;border-radius:8px;border:1px solid #ddd;width:100%;box-sizing:border-box}.modal label{font-size:13px;color:#666}.modal-actions{display:flex;justify-content:flex-end;padding-top:6px}.inputWithUnit{display:flex;align-items:center;gap:8px}.inputWithUnit input{flex:1;padding-right:12px;width:100%;box-sizing:border-box}.inputWithUnit .unit{position:static;color:#666;font-size:13px;margin-left:6px}.modal .primary{padding:12px 18px;font-size:16px}.entry-chip,.entry-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.primary{background:linear-gradient(90deg,var(--accent),var(--accent-3, #FDA7DF));border:0;padding:8px 14px;border-radius:10px;color:#1b1464;font-weight:700}.secondary{background:#fff;border:1px solid #eee;padding:8px 14px;border-radius:10px;color:#222;margin-left:8px}.close{background:#fff;border:0;font-size:18px}.danger{background:linear-gradient(90deg,#ea2027,#ed4c67);border:0;padding:8px 14px;border-radius:10px;color:#fff}body.offline .plus,body.offline .primary,body.offline .del{opacity:1}@media (min-width:600px){.app-root{border-radius:8px;box-shadow:0 8px 30px #0000000f}}.timeline-inner .caretRow:last-of-type{display:none}
