@font-face{font-family:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-vietnamese-500-normal-Bos7Oy9U.woff2) format("woff2"),url(/assets/lexend-vietnamese-500-normal-EFAPmUTE.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:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-ext-500-normal-Bo17xs96.woff2) format("woff2"),url(/assets/lexend-latin-ext-500-normal-DbCmXT_D.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:Lexend;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lexend-latin-500-normal-Dl-X5nog.woff2) format("woff2"),url(/assets/lexend-latin-500-normal-D9x1QWTH.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:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-vietnamese-600-normal-Cr1ePs6O.woff2) format("woff2"),url(/assets/lexend-vietnamese-600-normal-BxEVPgxw.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:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-latin-ext-600-normal-hDcqLAH9.woff2) format("woff2"),url(/assets/lexend-latin-ext-600-normal-BXtyp5LP.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:Lexend;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/lexend-latin-600-normal-DdvlkEkX.woff2) format("woff2"),url(/assets/lexend-latin-600-normal-DSBzZxpA.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.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{--bg: #f7fafd;--surface: #ffffff;--border: #dce7ef;--sky: #a8d5f2;--blue: #2c78b0;--blue-dark: #235f8c;--tint: #d6ebf8;--tint-soft: #eaf3fa;--ink: #22313f;--grey: #5a6b7c;--green: #2b7655;--green-tint: #e1f3e9;--amber: #b45309;--amber-ink: #7a4e00;--amber-tint: #fdf3da;--alarm: #b42318;--alarm-tint: #fde8e6;--radius: 18px;--head: "Lexend", system-ui, sans-serif;--body: "Atkinson Hyperlegible", system-ui, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.5 var(--body)}h1,h2,h3{font-family:var(--head);font-weight:600;margin:0;text-wrap:balance}h1{font-size:28px;line-height:1.2}h2{font-size:19px}h3{font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--grey);font-weight:600}p{margin:0}a{color:var(--blue)}button,input,select,textarea{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums}.grey{color:var(--grey)}.small{font-size:15px}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100dvh}.side{position:sticky;top:0;height:100dvh;padding:22px 14px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--border);background:var(--surface)}.brand{font:600 22px var(--head);padding:4px 12px 18px;color:var(--blue)}.brand span{display:block;font:15px var(--body);color:var(--grey)}.nav{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:0;border-radius:12px;background:none;text-align:left;text-decoration:none;color:var(--ink);cursor:pointer;font-weight:600}.nav:hover{background:var(--tint-soft)}.nav[aria-current=page]{background:var(--tint);color:var(--blue-dark)}.nav .count{margin-left:auto;min-width:22px;padding:0 6px;border-radius:11px;background:var(--alarm);color:#fff;font-size:13px;text-align:center}.side .spacer{flex:1}.main{padding:28px 32px 60px;max-width:1100px;width:100%}.main>header{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.main>header p{color:var(--grey)}.tabs{display:none}@media(max-width:820px){.shell{grid-template-columns:minmax(0,1fr)}.side{display:none}.main{padding:20px 16px 110px}h1{font-size:24px}.tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--surface);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tabs a{position:relative;padding:8px 2px;border-radius:12px;text-align:center;text-decoration:none;color:var(--grey);font-size:13px;font-weight:600}.tabs a[aria-current=page]{color:var(--blue-dark);background:var(--tint)}.tabs .count{position:absolute;top:2px;right:14%;min-width:18px;border-radius:9px;background:var(--alarm);color:#fff;font-size:11px}}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.stack{display:grid;gap:16px}.card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:18px 20px;min-width:0}.card>h3{margin-bottom:8px}.card.sky{background:var(--sky);border-color:var(--sky)}.card.blue{background:var(--blue);border-color:var(--blue);color:#fff}.card.blue h3,.card.blue .grey{color:#dcecf7}.card.alarm{background:var(--alarm-tint);border-color:var(--alarm)}.card.amber{background:var(--amber-tint);border-color:#e9c46a}.big{font:600 30px/1.15 var(--head)}.huge{font:600 44px/1.05 var(--head)}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.row.between{justify-content:space-between}.list{list-style:none;margin:0;padding:0}.list>li{padding:12px 0;border-top:1px solid var(--border)}.list>li:first-child{border-top:0;padding-top:2px}.pill{display:inline-block;padding:2px 10px;border-radius:12px;font-size:14px;font-weight:700;background:var(--tint-soft);color:var(--blue-dark);white-space:nowrap}.pill.green{background:var(--green-tint);color:var(--green)}.pill.amber{background:var(--amber-tint);color:var(--amber-ink)}.pill.red{background:var(--alarm-tint);color:var(--alarm)}.pill.grey{background:#eef2f5;color:var(--grey)}.dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--grey)}.dot.green{background:var(--green)}.dot.red{background:var(--alarm)}.dot.amber{background:var(--amber)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:14px;border:1.5px solid var(--blue);background:var(--blue);color:#fff;font-weight:700;cursor:pointer;text-decoration:none}.btn:hover{background:var(--blue-dark)}.btn.quiet{background:var(--surface);color:var(--blue-dark);border-color:var(--border)}.btn.quiet:hover{background:var(--tint-soft)}.btn.danger{background:var(--surface);color:var(--alarm);border-color:var(--alarm)}.btn.small{min-height:36px;padding:0 14px;font-size:15px;border-radius:11px}.btn:disabled{opacity:.5;cursor:default}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}label.field{display:grid;gap:5px;font-weight:700;font-size:15px;color:var(--grey)}.input,select.input,textarea.input{width:100%;min-height:46px;padding:10px 14px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--ink);font-weight:400;font-size:17px}textarea.input{min-height:96px;resize:vertical}.fields{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.error{color:var(--alarm);font-weight:700}.ok{color:var(--green);font-weight:700}.switch{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--border);cursor:pointer}.switch:first-of-type{border-top:0}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:52px;height:30px;border-radius:15px;background:#c9d6e0;position:relative;cursor:pointer;flex:none;transition:background .15s;margin:0}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .15s}.switch input:checked{background:var(--blue)}.switch input:checked:after{transform:translate(22px)}.seg{display:inline-flex;padding:3px;border-radius:13px;background:var(--tint-soft);border:1px solid var(--border)}.seg button{border:0;background:none;padding:7px 16px;border-radius:10px;font-weight:700;color:var(--grey);cursor:pointer}.seg button[aria-pressed=true]{background:var(--surface);color:var(--blue-dark);box-shadow:0 1px 2px #22313f26}table{width:100%;border-collapse:collapse;font-size:16px}th{text-align:left;font:600 13px var(--head);letter-spacing:.06em;text-transform:uppercase;color:var(--grey);padding:8px 10px;white-space:nowrap}td{padding:10px;border-top:1px solid var(--border);vertical-align:top}.scroll{overflow-x:auto}tr.click{cursor:pointer}tr.click:hover td{background:var(--tint-soft)}code,pre{font:14px/1.5 ui-monospace,Consolas,monospace}pre{margin:0;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:12px;overflow:auto;max-height:360px}.chart{width:100%;height:auto;display:block;overflow:visible}.chart text{font:12px var(--body);fill:var(--grey)}.chart .axis{stroke:var(--border);stroke-width:1}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:15px;margin-top:8px}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.moods{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px}.moods div{text-align:center;font-size:12px;color:var(--grey)}.moods b{display:block;height:34px;border-radius:8px;margin-bottom:4px;background:#eef2f5}.moods b.happy{background:var(--green)}.moods b.okay{background:var(--amber)}.moods b.low{background:var(--alarm)}.signin{min-height:100dvh;display:grid;place-items:center;padding:20px}.signin form{width:min(400px,100%);display:grid;gap:16px}.signin .brand{padding:0;font-size:30px}.bubble{background:var(--tint-soft);border-radius:16px 16px 16px 4px;padding:12px 16px}.banner{background:var(--amber-tint);color:var(--amber-ink);border-radius:12px;padding:8px 14px;font-size:15px;font-weight:700;margin-bottom:16px}.admin .side{background:var(--ink);border-right:0}.admin .brand{color:#fff}.admin .brand span{color:#9fb3c4}.admin .nav{color:#dbe6ee}.admin .nav:hover{background:#2f4354}.admin .nav[aria-current=page]{background:var(--blue);color:#fff}.admin .main{max-width:1320px}.ribbon .bar{position:relative;height:46px;border-radius:10px;overflow:hidden;background:#eef2f5}.ribbon.small .bar{height:20px;border-radius:6px}.ribbon .bar span{position:absolute;top:0;bottom:0}.hatch,.legend i.hatch{background:repeating-linear-gradient(45deg,#b8c4ce 0,#b8c4ce 3px,#e3e9ee 3px,#e3e9ee 6px)}.ribbon .hours{display:flex;justify-content:space-between;margin-top:4px;font-size:12px;color:var(--grey)}@media(max-width:560px){.ribbon .hours span:nth-child(2n){visibility:hidden}}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:16px}.stats div{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:12px 14px}.stats b{display:block;font:600 22px/1.2 var(--head)}.stats span{color:var(--grey);font-size:15px}.days{display:grid;gap:6px}.dayrow{display:grid;grid-template-columns:62px minmax(0,1fr) 14px;align-items:center;gap:10px}.axis-row{display:flex;justify-content:space-between;margin:4px 24px 0 72px}.grid.wide{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}.chart text{font-size:13px}
