@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2) format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2) format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2) format("woff2-variations");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{--paper: #f1efe9;--plate: #ffffff;--ink: #1c1b16;--ink-soft: #56544c;--ink-faint: #8b887d;--hairline: #e0ddd3;--red: #e63312;--red-deep: #bf2508;--red-screen: #fcebe5;--cobalt: #1e44ad;--cobalt-screen: #e9edf8;--r-control: 4px;--r-plate: 6px;--r-sheet: 14px;--font: "Archivo Variable", "Archivo", -apple-system, system-ui, sans-serif;--ease-state: .15s ease-out}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15.5px;font-weight:500;line-height:1.45;overscroll-behavior-y:none;-webkit-font-smoothing:antialiased}body{overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer;touch-action:manipulation}input,textarea,select{outline:none}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn:focus-visible,.fab:focus-visible{outline-color:var(--ink)}.input:focus-visible{outline:none}.label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}h1,h2,h3{font-weight:800;letter-spacing:.01em;line-height:1.05}.app{max-width:560px;margin:0 auto;min-height:100dvh;padding:calc(14px + env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom))}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin:8px 0 18px;gap:12px}.page-head h1{font-size:24px;text-transform:uppercase}.page-head .sub{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-top:5px}.head-rule{width:22px;height:3px;background:var(--red);margin-bottom:8px}.icon-btn{width:40px;height:40px;border-radius:var(--r-control);display:grid;place-items:center;background:var(--plate);border:1px solid var(--hairline);color:var(--ink-soft);flex:none;transition:background var(--ease-state)}.icon-btn:active{background:var(--paper)}.dayplate{background:var(--plate);border:1px solid var(--hairline);border-radius:var(--r-plate);padding:0 0 14px;margin-bottom:12px;overflow:hidden}.dayplate-band{height:22px;background:var(--red);display:flex;align-items:center;justify-content:center;gap:26%}.dayplate-band i{width:8px;height:8px;border-radius:50%;background:var(--plate);display:block}.dayplate-inner{padding:12px 18px 0}.dayplate-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--hairline);padding-bottom:4px}.dayplate-num{font-size:clamp(72px,24vw,104px);font-weight:900;line-height:.86;letter-spacing:-.03em;font-stretch:110%;color:var(--red);padding:10px 0 12px}.dayplate-num.ink{color:var(--ink)}.dayplate-side{text-align:right;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.dayplate-rows{border-top:1px solid var(--hairline)}.duo{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.mini-plate{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:var(--plate);border:1px solid var(--hairline);border-radius:var(--r-plate);padding:12px 14px;text-align:left;width:100%;transition:background var(--ease-state)}.mini-plate:active{background:var(--paper)}.mini-plate .plate-top{display:flex;align-items:baseline;justify-content:space-between}.mini-plate .num{font-size:34px;font-weight:900;line-height:.9;letter-spacing:-.02em;font-stretch:110%;color:var(--red);font-variant-numeric:tabular-nums;margin:2px 0 8px}.mini-plate .line{font-size:13px;font-weight:600;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:1px solid var(--hairline);padding:5px 0 1px}.mini-plate .line.faint{color:var(--ink-faint);font-weight:500}.card{background:var(--plate);border:1px solid var(--hairline);border-radius:var(--r-plate);padding:16px;margin-bottom:12px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:10px}.card-title .link{color:var(--cobalt);letter-spacing:.08em}.section-label{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:24px 2px 10px}.section-label:before{content:"";width:14px;height:3px;background:var(--ink)}.row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--hairline)}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.title{font-weight:700;font-size:15.5px}.meta{font-size:13px;color:var(--ink-soft);font-weight:500}.meta-faint{font-size:13px;color:var(--ink-faint);font-weight:500}.row .time{font-weight:700;font-size:13px;color:var(--ink-soft);min-width:62px;flex:none;font-variant-numeric:tabular-nums;text-align:right}.row .time .allday{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}.check{width:26px;height:26px;border-radius:var(--r-control);flex:none;border:2px solid var(--ink);background:var(--plate);display:grid;place-items:center;transition:background var(--ease-state);color:transparent;position:relative}.check:before{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px}.check.on{background:var(--ink);color:var(--plate)}.checked-text{text-decoration:line-through;text-decoration-thickness:1.5px;color:var(--ink-faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--red);color:#fff;border-radius:var(--r-control);padding:13px 20px;font-weight:700;font-size:15.5px;transition:background .12s ease-out,transform .12s ease-out}.btn:active{background:var(--red-deep);transform:scale(.98)}.btn.secondary{background:var(--plate);color:var(--ink);border:1.5px solid var(--ink)}.btn.secondary:active{background:var(--paper)}.btn.danger{background:var(--red-screen);color:var(--red-deep)}.btn.danger:active{background:#fcc9bd}.btn.small{padding:9px 14px;font-size:13px}.btn.block{width:100%}.btn:disabled{background:#d6d3c9;color:var(--ink-faint)}.fab{position:fixed;right:max(16px,calc(50vw - 264px));bottom:calc(90px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:var(--r-plate);background:var(--red);color:#fff;display:grid;place-items:center;z-index:40;transition:background .12s ease-out,transform .12s ease-out}.fab:active{background:var(--red-deep);transform:scale(.94)}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chips::-webkit-scrollbar{display:none}.chip{flex:none;padding:8px 14px;border-radius:var(--r-control);background:var(--plate);border:1px solid var(--hairline);font-size:13px;font-weight:600;color:var(--ink-soft);transition:background var(--ease-state),color var(--ease-state),border-color var(--ease-state)}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--plate)}.chip.red.on{background:var(--red);border-color:var(--red)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--plate);border-top:1px solid var(--hairline);padding-bottom:env(safe-area-inset-bottom)}.tabbar-inner{max-width:560px;margin:0 auto;display:flex}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 0 8px;border-top:3px solid transparent;margin-top:-1px;color:var(--ink-faint);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:color var(--ease-state)}.tab.on{color:var(--ink);border-top-color:var(--red)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#1c1b1673;animation:fadeIn .2s ease}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:100;max-width:560px;margin:0 auto;background:var(--plate);border:1px solid var(--hairline);border-bottom:none;border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:10px 20px calc(20px + env(safe-area-inset-bottom));animation:slideUp .26s cubic-bezier(.32,.72,.25,1);max-height:88dvh;overflow-y:auto}.sheet-handle{width:32px;height:4px;border-radius:2px;background:var(--hairline);margin:4px auto 16px}.sheet h2{font-size:17px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:16px}@keyframes slideUp{0%{transform:translateY(60%);opacity:.6}to{transform:none;opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.field{margin-bottom:14px}.field label{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.input,textarea.input{width:100%;background:var(--plate);border:1.5px solid var(--hairline);border-radius:var(--r-control);padding:12px 14px;font-size:16px;font-weight:500;transition:border-color var(--ease-state)}.input:focus{border-color:var(--ink)}.input::placeholder{color:var(--ink-faint)}.input-row{display:flex;gap:10px}.input-row>*{flex:1}select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none}.toggle{position:relative;width:48px;height:28px;border-radius:var(--r-control);background:#d6d3c9;transition:background var(--ease-state);flex:none}.toggle.on{background:var(--ink)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:2px;background:var(--plate);transition:transform var(--ease-state)}.toggle.on:after{transform:translate(20px)}.avatar{width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:17px;color:#fff}.dot{width:8px;height:8px;border-radius:50%;flex:none}.pill{font-size:11px;font-weight:700;padding:3px 7px;border-radius:var(--r-control);letter-spacing:.04em;background:var(--red);color:#fff;font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--ink-faint);padding:24px 16px;font-weight:500;font-size:14px}.empty:before{content:"";display:block;width:22px;height:3px;background:var(--hairline);margin:0 auto 12px}.vote-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:var(--r-control);background:var(--plate);border:1px solid var(--hairline);font-weight:700;font-size:14px;color:var(--ink-soft);transition:border-color var(--ease-state),color var(--ease-state);font-variant-numeric:tabular-nums}.vote-btn.on{border-color:var(--red);color:var(--red)}.vote-btn.on svg{animation:stamp .25s ease-out}@keyframes stamp{50%{transform:scale(1.3)}}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-dow{text-align:center;font-size:10px;font-weight:700;color:var(--ink-faint);padding:6px 0;text-transform:uppercase;letter-spacing:.1em}.cal-dow.wknd{color:var(--red)}.cal-cell{aspect-ratio:1 / 1.05;border-radius:var(--r-control);position:relative;display:flex;flex-direction:column;align-items:center;padding-top:7px;gap:3px;font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;background:transparent;border:2px solid transparent;transition:background var(--ease-state)}.cal-cell.wknd{color:var(--red)}.cal-cell.dim{color:#d6d3c9}.cal-cell.dim.wknd{color:#f79a86}.cal-cell.today{border-color:var(--red)}.cal-cell.sel{background:var(--ink);border-color:var(--ink);color:var(--plate)}.cal-dots{display:flex;gap:2.5px}.cal-dots .dot{width:5px;height:5px}.slot-row{padding:10px 0;border-bottom:1px solid var(--hairline)}.slot-row:last-child{border-bottom:none;padding-bottom:2px}.slot-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:7px}.slot-body{display:flex;flex-direction:column;gap:6px}.plan-card{background:var(--plate);border:1px solid var(--ink);border-radius:var(--r-control);padding:9px 12px;text-align:left;width:100%;transition:background var(--ease-state)}.plan-card:active{background:var(--paper)}.plan-card .title{font-weight:700;font-size:15.5px}.plan-card .meta{font-size:13px;color:var(--ink-faint);font-weight:500}.slot-add{border:1.5px dashed #d6d3c9;border-radius:var(--r-control);color:var(--ink-faint);font-weight:600;font-size:13px;padding:8px;width:100%;transition:border-color var(--ease-state),color var(--ease-state)}.slot-add:active{border-color:var(--ink-soft);color:var(--ink-soft)}.day-head{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--hairline);padding-bottom:8px;margin-bottom:4px}.day-head .num{font-size:34px;font-weight:900;line-height:.9;letter-spacing:-.02em;font-stretch:110%;color:var(--red);font-variant-numeric:tabular-nums}.day-head .dow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.day-head .mo{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-left:auto}.spin{width:24px;height:24px;margin:40px auto;border-radius:50%;border:3px solid var(--hairline);border-top-color:var(--red);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:plateDrop .24s cubic-bezier(.2,.9,.3,1)}@keyframes plateDrop{0%{opacity:0;transform:translateY(12px)}70%{opacity:1;transform:translateY(-1.5px)}to{opacity:1;transform:none}}.fab-space{height:76px}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;max-width:400px;margin:0 auto;padding:30px 24px calc(30px + env(safe-area-inset-bottom))}.auth-hero{text-align:center;margin-bottom:26px}.auth-mark{display:inline-block;background:var(--plate);border:1px solid var(--hairline);border-radius:var(--r-plate);padding:22px 26px 18px}.auth-mark .word{font-size:56px;font-weight:900;line-height:.9;letter-spacing:-.02em;font-stretch:118%;color:var(--ink);display:block}.auth-mark .rule{display:block;width:100%;height:4px;background:var(--red);margin-top:10px}.auth-hero h1{font-size:20px;text-transform:uppercase;margin-top:18px}.auth-hero p{color:var(--ink-faint);font-weight:500;font-size:14px;margin-top:6px}.profile-pick{display:flex;flex-direction:column;gap:10px}.profile-btn{display:flex;align-items:center;gap:14px;background:var(--plate);border:1px solid var(--hairline);border-radius:var(--r-plate);padding:14px 16px;font-size:17px;font-weight:700;transition:background var(--ease-state)}.profile-btn:active{background:var(--paper)}.err{background:var(--red-screen);color:var(--red-deep);border-radius:var(--r-control);padding:10px 14px;font-weight:700;font-size:14px;margin-bottom:12px}.addbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--plate);border-top:1px solid var(--hairline);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.addbar-inner{max-width:560px;margin:0 auto}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
