@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2) format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2) format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2) format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2) format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2) format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2) format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2) format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2) format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2) format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--concrete: #ECEFEE;--surface: #F8FAF9;--ink: #14201C;--ink-2: #4A5A54;--line: #CDD5D2;--pitch: #1D5A44;--pitch-ink: #FFFFFF;--cone: #F3B612;--cone-soft: #FFF4D1;--red: #B42318;--red-soft: #FBE9E7;--ok-soft: #E3F0EA;--display: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--text: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--concrete: #101815;--surface: #17221E;--ink: #E6ECE9;--ink-2: #9DAEA7;--line: #2A3833;--pitch: #3E9C77;--pitch-ink: #07130E;--cone-soft: #3A2F0C;--red: #F2867B;--red-soft: #3A1714;--ok-soft: #12302A;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--concrete);color:var(--ink);font:400 16px/1.5 var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--cone);outline-offset:2px;border-radius:4px}h1,h2,h3{margin:0;font-family:var(--display);font-weight:700;line-height:1.05;letter-spacing:.01em}.muted{color:var(--ink-2)}.small{font-size:13px}.app{min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.shell{max-width:640px;margin:0 auto;padding:8px 16px 24px}.shell.narrow{max-width:420px;padding-top:48px}.topbar{max-width:640px;margin:0 auto;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:calc(14px + env(safe-area-inset-top)) 16px 4px}.center-name{font:600 15px/1.2 var(--display);text-transform:none;color:var(--pitch)}.hello{font-size:14px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabbar{position:fixed;inset:auto 0 0;z-index:10;display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 9px;border:0;background:none;cursor:pointer;color:var(--ink-2);font-size:12px;font-weight:500}.tab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tab.on{color:var(--pitch)}.tab.on span{font-weight:600}.btn{appearance:none;border:0;cursor:pointer;background:var(--pitch);color:var(--pitch-ink);font-weight:600;font-size:16px;min-height:48px;padding:0 20px;border-radius:10px}.btn:disabled{opacity:.45;cursor:default}.btn.sm{min-height:40px;padding:0 16px;font-size:15px}.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.danger{background:var(--red);color:#fff}.btn.wide{width:100%;margin-top:28px}.link{appearance:none;border:0;background:none;padding:6px 2px;cursor:pointer;color:var(--pitch);font-weight:600;text-decoration:underline;text-underline-offset:3px}.link.danger{color:var(--red)}.icon-btn{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);font-size:24px;line-height:1;cursor:pointer}.icon-btn:disabled{opacity:.3;cursor:default}.row-gap{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.form{display:flex;flex-direction:column;gap:14px}.form label{display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:15px}.form input:not([type=checkbox]){min-height:48px;padding:0 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);font-size:16px}.form input:disabled{color:var(--ink-2)}.form input:focus-visible{outline:none;border-color:var(--pitch);box-shadow:0 0 0 3px color-mix(in srgb,var(--pitch) 25%,transparent)}.check{flex-direction:row!important;align-items:flex-start;gap:10px!important;font-weight:400!important}.check input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--pitch);flex:none}.notice{margin:0;padding:12px 14px;border-radius:10px;background:var(--surface);border-left:4px solid var(--line);font-size:15px}.notice.danger{background:var(--red-soft);border-left-color:var(--red)}.notice.ok{background:var(--ok-soft);border-left-color:var(--pitch)}.shell>.notice{margin-bottom:14px}.empty{color:var(--ink-2);padding:24px 0;margin:0}.auth{max-width:420px;margin:0 auto;padding:calc(48px + env(safe-area-inset-top)) 20px 40px}.auth-head{margin-bottom:28px}.auth-mark{width:52px;height:52px;color:var(--pitch);margin-bottom:20px;display:block}.auth-head h1{font-size:44px}.auth-head p{margin:10px 0 0}.auth-links{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:4px}.legal{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:4px 16px;font-size:15px}.legal p{margin:12px 0}.week-head{display:flex;justify-content:space-between;align-items:center;margin:12px 0 10px}.week-head h2{font-size:34px}.week-nav{display:flex;align-items:center;gap:8px}.strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:0 -4px}.strip-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 0 7px;border:0;border-radius:12px;background:none;cursor:pointer}.strip-day .wd{font-size:12px;color:var(--ink-2);text-transform:capitalize}.strip-day .dn{font:600 24px/1.1 var(--display);font-variant-numeric:tabular-nums}.strip-day.past .dn{color:var(--ink-2)}.strip-day.today .wd{color:var(--pitch);font-weight:600}.strip-day.on{background:var(--ink)}.strip-day.on .wd,.strip-day.on .dn{color:var(--concrete)}.pip{width:6px;height:6px;border-radius:50%;margin-top:3px;background:transparent}.pip.has{background:var(--line)}.strip-day.on .pip.has{background:var(--ink-2)}.pip.mine{background:var(--cone)}.day-title{font-size:22px;font-weight:600;margin:22px 0 4px}.sessions{list-style:none;margin:0;padding:0}.session{display:grid;grid-template-columns:74px 1fr auto;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.session.mine{box-shadow:inset 4px 0 0 var(--cone);padding-left:12px;margin-left:-12px}.session.off .t,.session.off .svc{color:var(--ink-2);text-decoration:line-through;text-decoration-thickness:1.5px}.clock{display:flex;flex-direction:column}.clock .t{font:700 34px/.95 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.clock .t2{font:500 14px/1.4 var(--display);color:var(--ink-2);font-variant-numeric:tabular-nums}.info{display:flex;flex-direction:column;min-width:0}.svc{font-weight:600;font-size:17px;line-height:1.25}.meta{color:var(--ink-2);font-size:14px}.cap{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);margin-top:6px;white-space:nowrap}.bar{width:56px;height:4px;border-radius:2px;background:var(--line);overflow:hidden;flex:none}.bar span{display:block;height:100%;background:var(--pitch)}.act{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;max-width:130px}.tag{font-size:13px;font-weight:600;color:var(--ink-2);line-height:1.25}.tag.mine{color:var(--ink);background:var(--cone-soft);box-shadow:inset 0 -2px 0 var(--cone);padding:2px 6px;border-radius:4px}.tag.danger{color:var(--red)}.chips{display:flex;gap:8px;margin:18px 0 0;overflow-x:auto;scrollbar-width:none}.chip{flex:none;min-height:36px;padding:0 14px;border-radius:18px;cursor:pointer;border:1.5px solid var(--line);background:var(--surface);font-size:15px;font-weight:500}.chip.on{background:var(--pitch);border-color:var(--pitch);color:var(--pitch-ink)}.section-title{font-size:26px;margin:20px 0 6px}.plain{list-style:none;margin:0;padding:0}.plain-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.plain-item div{display:flex;flex-direction:column}.plain-item .tag{text-align:right;flex:none;max-width:45%}.plan{padding:14px 0 6px;border-bottom:1px solid var(--line)}.plan-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:18px}.ents{list-style:none;padding:0;margin:10px 0 8px;display:flex;flex-direction:column;gap:10px}.ents li{display:flex;flex-direction:column;padding-left:12px;border-left:3px solid var(--pitch)}.ents li>span:first-child{font-weight:500}section>.form{margin-top:8px}.scrim{position:fixed;inset:0;z-index:20;background:#0a141073;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:520px;background:var(--surface);border-radius:18px 18px 0 0;padding:22px 20px calc(24px + env(safe-area-inset-bottom));animation:up .2s ease-out}.sheet h3{font-size:28px;margin-bottom:10px}.sheet p{margin:0 0 12px}@keyframes up{0%{transform:translateY(24px);opacity:0}}.toast{position:fixed;z-index:30;left:16px;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));max-width:520px;margin:0 auto;padding:14px 16px;border-radius:12px;background:var(--ink);color:var(--concrete);font-weight:500;font-size:15px}.splash,.loading{display:grid;place-items:center}.splash{min-height:100dvh}.loading{padding:40px 0}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--pitch);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sheet,.spinner{animation:none}}@media(min-width:560px){.session{grid-template-columns:92px 1fr auto}.clock .t{font-size:40px}}
