@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bebas-neue-latin-ext-400-normal-DWiEslNC.woff2)format("woff2"),url(/assets/bebas-neue-latin-ext-400-normal-HFKRJXnW.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bebas-neue-latin-400-normal-9mHNbWWO.woff2)format("woff2"),url(/assets/bebas-neue-latin-400-normal-Bi-ndsyu.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy:#0f1d33;--navy-2:#1b2d4a;--navy-3:#2c4266;--gold:#c9a13b;--gold-2:#e2c372;--gold-soft:#f6edd6;--bg:#f4f2ed;--card:#fff;--ink:#0f1d33;--muted:#5b6577;--line:#e2ddd2;--line-2:#cfc8b9;--ok:#067647;--ok-soft:#dcfae6;--warn:#93370d;--warn-soft:#fef0c7;--bad:#b42318;--bad-soft:#fee4e2;--radius:12px;--tabbar:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--display:"Bebas Neue", "Barlow Condensed", system-ui, sans-serif;--cond:"Barlow Condensed", system-ui, sans-serif;--body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:16px/1.4 var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:20;background:var(--navy);color:#fff;padding:calc(var(--safe-t) + 10px) 16px 12px;align-items:center;gap:12px;min-height:56px;display:flex;position:sticky;top:0}.topbar h1{font:400 28px/1 var(--display);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;overflow:hidden}.topbar .sub{font:500 15px/1.2 var(--cond);color:var(--gold-2);letter-spacing:.02em}.topbar .back{color:var(--gold-2);font:600 17px var(--cond);background:0 0;border:0;align-items:center;gap:2px;margin-left:-4px;padding:8px 6px 8px 0;display:flex}.topbar .action{border:1px solid var(--navy-3);color:#fff;font:600 15px var(--cond);letter-spacing:.03em;background:0 0;border-radius:10px;padding:7px 12px}.page{width:100%;max-width:680px;padding:16px 16px calc(var(--tabbar) + var(--safe-b) + 24px);flex:1;margin:0 auto}.page.wide{max-width:1100px}.tabbar{z-index:30;border-top:1px solid var(--line);padding-bottom:var(--safe-b);background:#fff;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{height:var(--tabbar);color:var(--muted);font:600 12px var(--cond);letter-spacing:.05em;text-transform:uppercase;flex-direction:column;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex;position:relative}.tabbar a.on{color:var(--navy)}.tabbar a.on:before{content:"";background:var(--gold);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:28%;right:28%}.tabbar svg{width:24px;height:24px}h2.section{font:400 21px/1 var(--display);letter-spacing:.05em;color:var(--navy);align-items:baseline;gap:8px;margin:24px 0 10px;display:flex}h2.section:first-child{margin-top:4px}h2.section .count{font:600 14px var(--cond);color:var(--muted);letter-spacing:.02em}.muted{color:var(--muted)}.small{font-size:14px}.cond{font-family:var(--cond)}.num{font-family:var(--cond);font-variant-numeric:tabular-nums;font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.card+.card{margin-top:10px}.pad{padding:14px 16px}.list{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.row{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;min-height:60px;padding:13px 16px;text-decoration:none;display:flex}.row:first-child{border-top:0}button.row:active,a.row:active{background:#faf8f3}.row .main{flex:1;min-width:0}.row .title{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.row .meta{color:var(--muted);margin-top:2px;font-size:14px}.row .right{text-align:right;flex-shrink:0}.chev{color:var(--line-2);flex-shrink:0}.big-num{font:700 30px/1 var(--cond);font-variant-numeric:tabular-nums}.big-num small{font:600 13px var(--cond);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:3px;display:block}.badges{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.badge{font:600 13px/1.5 var(--cond);letter-spacing:.02em;color:var(--navy-2);background:#eef0f4;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;display:inline-flex}.badge.gold{background:var(--gold-soft);color:#7a5a10}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.banner{border-radius:var(--radius);align-items:flex-start;gap:10px;padding:12px 14px;font-size:15px;display:flex}.banner.warn{background:var(--warn-soft);color:#5c2306}.banner.bad{background:var(--bad-soft);color:#7a1a12}.banner.info{color:var(--navy-2);background:#e8eef8}.banner svg{flex-shrink:0;margin-top:1px}.banner+.banner,.banner+.card,.card+.banner{margin-top:10px}.btn{border:1px solid var(--line-2);min-height:48px;color:var(--navy);font:600 18px var(--cond);letter-spacing:.03em;background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}.btn.danger{color:var(--bad);border-color:#f2c4bf}.btn.block{width:100%}.btn.sm{border-radius:10px;min-height:38px;padding:0 12px;font-size:16px}.btn:disabled{opacity:.45}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.btn-row .btn{flex:1}.link{color:var(--navy-3);font:600 16px var(--cond);text-underline-offset:3px;background:0 0;border:0;padding:4px 0;text-decoration:underline}.field{margin-bottom:14px;display:block}.field>span{font:600 14px var(--cond);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;display:block}.input,select.input,textarea.input{border:1px solid var(--line-2);background:#fff;border-radius:10px;outline:none;width:100%;min-height:48px;padding:10px 12px;font-size:17px}textarea.input{resize:vertical;min-height:84px}.input:focus{border-color:var(--navy-3);box-shadow:0 0 0 3px #2c426626}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.check{align-items:center;gap:10px;min-height:44px;font-size:16px;display:flex}.check input{width:22px;height:22px;accent-color:var(--navy)}.seg{background:#e9e5dc;border-radius:10px;gap:3px;padding:3px;display:flex}.seg button{min-height:40px;font:600 16px var(--cond);color:var(--muted);background:0 0;border:0;border-radius:8px;flex:1}.seg button.on{color:var(--navy);background:#fff;box-shadow:0 1px 2px #00000014}.search{margin-bottom:12px;position:relative}.search input{padding-left:40px}.search svg{color:var(--muted);position:absolute;top:13px;left:12px}.sheet-bg{z-index:50;background:#0f1d3373;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:680px;max-height:92dvh;padding:8px 16px calc(20px + var(--safe-b));border-radius:18px 18px 0 0;animation:.2s ease-out up;overflow:auto}.sheet .grab{background:var(--line-2);border-radius:3px;width:40px;height:5px;margin:4px auto 10px}.sheet h3{font:400 24px/1 var(--display);letter-spacing:.04em;margin:4px 0 14px}@keyframes up{0%{opacity:.6;transform:translateY(40px)}}@keyframes fade{0%{opacity:0}}@media (width>=720px){.sheet-bg{align-items:center}.sheet{border-radius:18px;max-height:86vh}}.ex{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.ex.done{border-color:#a6d9b8}.ex-head{align-items:flex-start;gap:10px;padding:12px 14px 8px;display:flex}.ex-head .name{font:700 21px/1.1 var(--cond);letter-spacing:.01em}.ex-head .rx{font:600 15px var(--cond);color:var(--navy-3);margin-top:3px}.ex-head .last{color:var(--muted);margin-top:3px;font-size:13px}.ex-menu{color:var(--muted);background:0 0;border:0;margin-left:auto;padding:4px}.setrow{border-top:1px solid var(--line);grid-template-columns:26px 1.3fr 1fr 48px;align-items:center;gap:6px;padding:6px 12px;display:grid}.setrow.only1{grid-template-columns:26px 2fr 48px}.setrow .no{font:700 16px var(--cond);color:var(--muted);text-align:center}.setrow.is-done{background:#f3fbf6}.stepper{background:#f4f2ed;border-radius:10px;grid-template-columns:34px 1fr 34px;align-items:center;height:46px;display:grid}.stepper button{height:46px;font:600 22px var(--cond);color:var(--navy-3);background:0 0;border:0}.stepper input{text-align:center;width:100%;font:700 21px var(--cond);letter-spacing:-.01em;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;min-width:0;padding:0}.stepper .unit{display:none}.tick{border:2px solid var(--line-2);color:#0000;background:#fff;border-radius:50%;justify-self:end;place-items:center;width:46px;height:46px;display:grid}.tick.on{background:var(--ok);border-color:var(--ok);color:#fff}.ex-foot{border-top:1px solid var(--line);gap:6px;padding:8px 12px 12px;display:flex}.colhead{font:600 12px var(--cond);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;grid-template-columns:26px 1.3fr 1fr 48px;gap:6px;padding:0 12px 4px;display:grid}.colhead.only1{grid-template-columns:26px 2fr 48px}.sticky-foot{z-index:25;padding:12px 16px calc(12px + var(--safe-b));background:linear-gradient(to top, var(--bg) 70%, #f4f2ed00);position:fixed;bottom:0;left:0;right:0}.sticky-foot>div{max-width:680px;margin:0 auto}.sigpad{border:2px dashed var(--line-2);border-radius:var(--radius);touch-action:none;background:#fff;height:220px;position:relative}.sigpad canvas{width:100%;height:100%;display:block}.sigpad .hint{border-top:1px solid var(--line-2);text-align:center;color:var(--muted);pointer-events:none;margin:0 24px;padding-top:6px;font-size:13px;position:absolute;bottom:44px;left:0;right:0}.tablewrap{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow-x:auto}table.grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:14px}table.grid th,table.grid td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;white-space:nowrap;padding:6px 8px}table.grid th{font:600 13px var(--cond);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#f8f6f1;position:sticky;top:0}table.grid td:first-child,table.grid th:first-child{text-align:left;z-index:1;text-overflow:ellipsis;background:#fff;max-width:170px;font-weight:600;position:sticky;left:0;overflow:hidden}table.grid th:first-child{z-index:2;background:#f8f6f1}table.grid td.cell{cursor:pointer;font-family:var(--cond);min-width:92px;font-size:15px}table.grid td.cell:hover{background:#faf6ea}table.grid td.cell.ovr{background:var(--gold-soft)}table.grid td.cell .kg{color:var(--navy);font-weight:700;display:block}table.grid tr.dayrow td{background:var(--navy);color:#fff;font:400 18px var(--display);letter-spacing:.06em;text-align:left;position:static}.chart{width:100%;height:auto;display:block}.toast{left:50%;bottom:calc(var(--tabbar) + var(--safe-b) + 16px);background:var(--navy);color:#fff;font:600 16px var(--cond);z-index:60;border-radius:10px;padding:10px 16px;animation:.2s up;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #0003}.syncdot{background:var(--ok);border-radius:50%;width:9px;height:9px;display:inline-block}.syncdot.wait{background:var(--gold)}.syncdot.off{background:#9aa3b2}.syncdot.err{background:var(--bad)}.empty{text-align:center;color:var(--muted);padding:28px 16px}.empty b{color:var(--ink);margin-bottom:4px;font-size:17px;display:block}.demo-strip{background:var(--gold);color:var(--navy);font:600 13px var(--cond);text-align:center;letter-spacing:.04em;padding:3px 8px}.grid2>.card,.grid3>.card{margin-top:0}.sheet .stepper{border:1px solid var(--line-2);background:#fff}
