@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CaVNZxsx.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-C2S99t-D.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f2f2f7;--bg-elevated: #ffffff;--fill: rgba(120, 120, 128, .12);--fill-strong: rgba(120, 120, 128, .2);--separator: rgba(60, 60, 67, .14);--label: #1d1d1f;--label-2: rgba(60, 60, 67, .62);--label-3: rgba(60, 60, 67, .36);--blue: #007aff;--indigo: #5856d6;--teal: #30b0c7;--green: #34c759;--orange: #ff9500;--red: #ff3b30;--bar: rgba(249, 249, 251, .78);--shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .04);--shadow-sheet: 0 -10px 40px rgba(0, 0, 0, .12);--radius: 18px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--ease: cubic-bezier(.32, .72, 0, 1);--spring: cubic-bezier(.34, 1.4, .64, 1);color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #000000;--bg-elevated: #1c1c1e;--fill: rgba(118, 118, 128, .24);--fill-strong: rgba(118, 118, 128, .36);--separator: rgba(84, 84, 88, .6);--label: #f5f5f7;--label-2: rgba(235, 235, 245, .6);--label-3: rgba(235, 235, 245, .3);--blue: #0a84ff;--indigo: #5e5ce6;--teal: #40c8e0;--green: #30d158;--orange: #ff9f0a;--red: #ff453a;--bar: rgba(22, 22, 24, .78);--shadow-card: none;--shadow-sheet: 0 -10px 40px rgba(0, 0, 0, .5);color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--label);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter Variable,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.35;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overscroll-behavior-y:none}input,textarea,button,select{font:inherit;color:inherit;letter-spacing:inherit}input,textarea{-webkit-user-select:text;user-select:text}button{cursor:pointer;border:0;background:none;padding:0}button:disabled{cursor:default}:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:2px;border-radius:10px}.app{max-width:680px;margin:0 auto;min-height:100%;position:relative}.large-title{font-size:34px;font-weight:700;letter-spacing:-.025em;line-height:1.1;margin:0}.title2{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0}.headline{font-size:17px;font-weight:600}.subhead{font-size:15px;color:var(--label-2)}.footnote{font-size:13px;color:var(--label-2)}.caption{font-size:12px;color:var(--label-2)}.eyebrow{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--label-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 22px;border-radius:14px;font-size:17px;font-weight:600;transition:transform .15s var(--ease),opacity .2s,background .2s}.btn:active:not(:disabled){transform:scale(.97);opacity:.85}.btn:disabled{opacity:.35}.btn-primary{background:var(--blue);color:#fff}.btn-tinted{background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue)}.btn-plain{color:var(--blue);height:44px;padding:0 8px}.btn-danger{background:color-mix(in srgb,var(--red) 13%,transparent);color:var(--red)}.btn-success{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}.btn-block{width:100%}.btn-sm{height:34px;padding:0 14px;border-radius:17px;font-size:15px}.icon-btn{width:38px;height:38px;border-radius:19px;display:inline-grid;place-items:center;background:var(--fill);color:var(--blue);position:relative;transition:transform .15s var(--ease)}.icon-btn:active{transform:scale(.9)}.icon-btn.filled{background:var(--blue);color:#fff}.badge{position:absolute;top:-3px;right:-4px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--red);color:#fff;font-size:12px;font-weight:700;line-height:19px;text-align:center;border:2px solid var(--bg);animation:pop .35s var(--spring)}.bell-ring{animation:ring 1.2s ease-in-out .3s 1;transform-origin:50% 10%}.welcome{min-height:100%;display:flex;flex-direction:column;padding:calc(var(--safe-top) + 24px) 24px calc(var(--safe-bottom) + 28px)}.welcome-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px}.app-icon{width:104px;height:104px;border-radius:24px;background:linear-gradient(145deg,#3a8bff,#0057d9);display:grid;place-items:center;color:#fff;box-shadow:0 14px 34px #0066ff52,inset 0 1px #ffffff4d;animation:rise .8s var(--ease) both}.welcome h1{font-size:40px;font-weight:700;letter-spacing:-.03em;margin:6px 0 0;animation:rise .8s var(--ease) .08s both}.welcome p{margin:0;max-width:300px;color:var(--label-2);font-size:19px;line-height:1.4;animation:rise .8s var(--ease) .16s both}.welcome-features{display:grid;gap:18px;margin-top:30px;text-align:left;width:100%;max-width:340px;animation:rise .8s var(--ease) .24s both}.feature{display:flex;gap:14px;align-items:flex-start}.feature-icon{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:#fff}.feature b{display:block;font-size:16px;font-weight:600}.feature div>span{font-size:14px;color:var(--label-2)}.welcome-actions{display:grid;gap:10px;width:100%;max-width:400px;margin:0 auto;animation:rise .8s var(--ease) .32s both}.flow{min-height:100%;display:flex;flex-direction:column;padding:calc(var(--safe-top) + 8px) 20px calc(var(--safe-bottom) + 20px)}.flow-nav{display:flex;align-items:center;justify-content:space-between;height:44px}.flow-nav .btn-plain{display:inline-flex;align-items:center;gap:2px;margin-left:-10px;font-weight:400}.progress{display:flex;gap:6px}.progress i{width:22px;height:4px;border-radius:2px;background:var(--fill-strong);transition:background .3s}.progress i.on{background:var(--blue)}.flow-body{flex:1;display:flex;flex-direction:column;padding-top:24px;max-width:460px;width:100%;margin:0 auto}.flow-body>.step{animation:slide-in .45s var(--ease) both}.flow-body h2{font-size:30px;font-weight:700;letter-spacing:-.025em;margin:0 0 8px}.flow-body .lead{color:var(--label-2);margin:0 0 28px;font-size:17px}.flow-footer{max-width:460px;width:100%;margin:16px auto 0}.field{width:100%;height:56px;padding:0 18px;border-radius:14px;background:var(--bg-elevated);border:1px solid var(--separator);outline:none;font-size:19px;transition:border-color .2s,box-shadow .2s}.field:focus{border-color:var(--blue);box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 18%,transparent)}.field::placeholder{color:var(--label-3)}.choice-list{display:grid;gap:10px}.choice{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:16px;border-radius:16px;background:var(--bg-elevated);border:2px solid transparent;box-shadow:var(--shadow-card);transition:border-color .2s,transform .15s var(--ease)}.choice:active{transform:scale(.985)}.choice.selected{border-color:var(--blue)}.choice .feature-icon{width:44px;height:44px;border-radius:12px}.choice b{display:block;font-weight:600}.choice div>span{font-size:14px;color:var(--label-2)}.choice .check{margin-left:auto;color:var(--blue);opacity:0;transform:scale(.6);transition:all .25s var(--spring)}.choice.selected .check{opacity:1;transform:scale(1)}.error-text{color:var(--red);font-size:15px;margin-top:12px;min-height:20px;text-align:center}.shake{animation:shake .42s}.pin{display:flex;flex-direction:column;align-items:center;gap:28px}.pin-dots{display:flex;gap:18px;height:16px}.pin-dots i{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--label);transition:background .15s,transform .2s var(--spring)}.pin-dots i.on{background:var(--label);transform:scale(1.08)}.pin-pad{display:grid;grid-template-columns:repeat(3,78px);gap:16px 26px}.pin-key{width:78px;height:78px;border-radius:50%;background:var(--fill);font-size:32px;font-weight:400;display:grid;place-items:center;line-height:1;transition:background .1s,transform .1s}.pin-key small{display:block;font-size:10px;font-weight:600;letter-spacing:.15em;color:var(--label-2);margin-top:2px}.pin-key:active{background:var(--fill-strong);transform:scale(.94)}.pin-key.ghost{background:none;font-size:17px;color:var(--blue)}.pin-key.ghost:active{background:none;opacity:.5}.screen{padding:calc(var(--safe-top) + 12px) 16px calc(var(--safe-bottom) + 104px)}.screen-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:8px 4px 18px}.screen-header .actions{display:flex;gap:10px;padding-bottom:2px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:6px 0 calc(var(--safe-bottom) + 6px);background:var(--bar);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--separator)}.tabbar-inner{max-width:680px;margin:0 auto;display:flex}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;color:var(--label-3);font-size:10.5px;font-weight:500;position:relative}.tab.active{color:var(--blue)}.tab .badge{top:-2px;right:calc(50% - 22px);border-color:var(--bar)}.segmented{display:flex;padding:2px;border-radius:9px;background:var(--fill);position:relative;margin-bottom:18px}.segmented button{flex:1;height:30px;border-radius:7px;font-size:14px;font-weight:500;position:relative;z-index:1;transition:color .2s}.segmented .thumb{position:absolute;top:2px;bottom:2px;border-radius:7px;background:var(--bg-elevated);box-shadow:0 3px 8px #0000001f,0 3px 1px #0000000a;transition:left .3s var(--ease),width .3s var(--ease)}@media (prefers-color-scheme: dark){.segmented .thumb{background:#636366}}.section{margin-bottom:26px}.section-head{display:flex;align-items:center;gap:8px;margin:0 4px 10px}.section-head h3{margin:0;font-size:20px;font-weight:700;letter-spacing:-.02em}.section-head .count{font-size:15px;color:var(--label-2);font-weight:500}.section-head .dot{width:8px;height:8px;border-radius:50%}.section-head .toggle{margin-left:auto;font-size:15px;color:var(--blue)}.cards{display:grid;gap:10px}.card{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;padding:14px 14px 14px 12px;border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow-card);position:relative;overflow:hidden;transition:transform .18s var(--ease),opacity .3s;animation:card-in .4s var(--ease) both}.card:active{transform:scale(.985)}.card.done{opacity:.6}.card.done .card-title{text-decoration:line-through;text-decoration-color:var(--label-3)}.card-main{flex:1;min-width:0}.card-top{display:flex;align-items:center;gap:6px;margin-bottom:3px}.card-title{font-weight:600;font-size:17px;line-height:1.3}.card-body{font-size:15px;color:var(--label-2);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.card-from{font-size:13px;color:var(--label-2)}.card-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.type-icon{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;margin-top:1px}.type-icon.task{background:var(--blue)}.type-icon.update{background:var(--indigo)}.check-circle{flex:none;width:28px;height:28px;border-radius:50%;margin:3px 3px 0 4px;border:2px solid var(--label-3);display:grid;place-items:center;color:#fff;transition:all .25s var(--spring)}.check-circle svg{opacity:0;transform:scale(.4);transition:all .25s var(--spring)}.check-circle.on{background:var(--green);border-color:var(--green)}.check-circle.on svg{opacity:1;transform:scale(1)}.check-circle.overdue{border-color:var(--red)}.check-circle.dueSoon{border-color:var(--orange)}.chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:12px;font-size:13px;font-weight:600;white-space:nowrap;background:var(--fill);color:var(--label-2)}.chip.blue{background:color-mix(in srgb,var(--blue) 13%,transparent);color:var(--blue)}.chip.indigo{background:color-mix(in srgb,var(--indigo) 14%,transparent);color:var(--indigo)}.chip.orange{background:color-mix(in srgb,var(--orange) 16%,transparent);color:var(--orange)}.chip.red{background:color-mix(in srgb,var(--red) 13%,transparent);color:var(--red)}.chip.green{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}.new-pill{height:20px;padding:0 7px;border-radius:10px;background:var(--blue);color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;display:inline-flex;align-items:center}.unread-dot{width:9px;height:9px;border-radius:50%;background:var(--blue);flex:none}.ack-btn{height:30px;padding:0 12px;border-radius:15px;font-size:14px;font-weight:600;background:color-mix(in srgb,var(--indigo) 14%,transparent);color:var(--indigo);display:inline-flex;align-items:center;gap:4px;transition:all .2s}.ack-btn.on{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}.empty{text-align:center;padding:64px 24px;color:var(--label-2);animation:rise .6s var(--ease) both}.empty-icon{width:72px;height:72px;border-radius:22px;margin:0 auto 18px;display:grid;place-items:center;background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green)}.empty h3{color:var(--label);margin:0 0 6px;font-size:20px}.empty p{margin:0;font-size:15px}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}.stat{background:var(--bg-elevated);border-radius:16px;padding:12px 14px;box-shadow:var(--shadow-card);text-align:left;transition:transform .15s var(--ease)}.stat:active{transform:scale(.97)}.stat .ic{width:28px;height:28px;border-radius:14px;display:grid;place-items:center;color:#fff;margin-bottom:8px}.stat b{display:block;font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1}.stat span{font-size:13px;color:var(--label-2);font-weight:500}.group{background:var(--bg-elevated);border-radius:14px;overflow:hidden;margin-bottom:24px;box-shadow:var(--shadow-card)}.group-label{margin:0 16px 7px;font-size:13px;text-transform:uppercase;color:var(--label-2);letter-spacing:.02em}.group-foot{margin:-16px 16px 24px;font-size:13px;color:var(--label-2)}.row{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 16px;width:100%;text-align:left;position:relative;background:none}.row+.row:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid var(--separator)}.row.inset+.row.inset:before,.row.has-icon+.row:before{left:58px}.row:is(button):active{background:var(--fill)}.row .grow{flex:1;min-width:0}.row .value{color:var(--label-2)}.row .chev{color:var(--label-3);flex:none}.row .checkmark{color:var(--blue);flex:none}.row-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff;flex:none}.row input,.row textarea{flex:1;border:0;outline:none;background:none;min-width:0;padding:6px 0}.row textarea{resize:none;min-height:110px;line-height:1.4}.row input::placeholder,.row textarea::placeholder{color:var(--label-3)}.row input[type=datetime-local]{text-align:right;color:var(--blue);flex:none}.avatar{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:15px;font-weight:600;background:linear-gradient(160deg,#a1a1aa,#71717a)}.avatar.admin{background:linear-gradient(160deg,#5ac8fa,#007aff)}.avatar.foreign_teacher{background:linear-gradient(160deg,#ffb340,#ff9500)}.avatar.vietnamese_teacher{background:linear-gradient(160deg,#66d4a0,#28a745)}.avatar.xl{width:92px;height:92px;font-size:36px;margin:0 auto}.switch{position:relative;width:51px;height:31px;flex:none}.switch input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer;z-index:1}.switch i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;background:var(--fill-strong);transition:background .25s}.switch i:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px #00000026,0 1px 1px #00000029;transition:transform .3s var(--spring)}.switch input:checked+i{background:var(--green)}.switch input:checked+i:after{transform:translate(20px)}.search{display:flex;align-items:center;gap:6px;height:38px;padding:0 10px;border-radius:11px;background:var(--fill);color:var(--label-2);margin-bottom:12px}.search input{flex:1;border:0;outline:none;background:none;font-size:17px;color:var(--label)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000052;animation:fade .3s ease both}.sheet-backdrop.closing{animation:fade .25s ease reverse both}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;max-width:680px;margin:0 auto;height:calc(100% - var(--safe-top) - 14px);background:var(--bg);border-radius:14px 14px 0 0;box-shadow:var(--shadow-sheet);display:flex;flex-direction:column;animation:sheet-up .5s var(--ease) both}.sheet.closing{animation:sheet-down .3s var(--ease) both}.sheet.auto{height:auto;max-height:calc(100% - var(--safe-top) - 14px)}.sheet-grabber{width:36px;height:5px;border-radius:3px;background:var(--fill-strong);margin:6px auto 0;flex:none}.sheet-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:52px;padding:0 8px;flex:none}.sheet-nav .title{font-weight:600;font-size:17px;text-align:center}.sheet-nav .left{justify-self:start}.sheet-nav .right{justify-self:end}.sheet-nav .btn-plain{font-weight:400}.sheet-nav .btn-plain.strong{font-weight:600}.sheet-body{flex:1;overflow-y:auto;padding:8px 16px calc(var(--safe-bottom) + 24px);-webkit-overflow-scrolling:touch}.detail-head{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.detail-title{font-size:28px;font-weight:700;letter-spacing:-.025em;line-height:1.15;margin:0 0 10px}.detail-body{font-size:17px;line-height:1.5;white-space:pre-wrap;-webkit-user-select:text;user-select:text;margin:0 0 22px}.detail-meta{display:flex;align-items:center;gap:10px;margin-bottom:20px}.detail-action{margin:4px 0 26px}.progress-ring{flex:none}.progress-ring circle{transition:stroke-dashoffset .6s var(--ease)}.toast{position:fixed;left:50%;top:calc(var(--safe-top) + 10px);z-index:60;transform:translate(-50%);width:min(92vw,420px);display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:20px;background:var(--bar);-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px);box-shadow:0 10px 40px #0000002e;border:.5px solid var(--separator);animation:toast-in .55s var(--spring) both;text-align:left}.toast.closing{animation:toast-out .3s var(--ease) both}.toast b{display:block;font-size:15px}.toast div>span{font-size:14px;color:var(--label-2);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.code-box{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:22px;font-weight:600;letter-spacing:.18em;color:var(--label)}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--fill-strong);border-top-color:var(--label-2);animation:spin .8s linear infinite}.center-fill{min-height:100%;display:grid;place-items:center}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes slide-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-down{0%{transform:none}to{transform:translateY(100%)}}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-120%) scale(.9)}to{opacity:1;transform:translate(-50%)}}@keyframes toast-out{to{opacity:0;transform:translate(-50%,-120%) scale(.95)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:none}20%{transform:translate(-10px)}40%{transform:translate(9px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}@keyframes ring{0%,to{transform:rotate(0)}10%,30%,50%{transform:rotate(14deg)}20%,40%,60%{transform:rotate(-12deg)}70%{transform:rotate(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (min-width: 700px){.screen{padding-top:calc(var(--safe-top) + 28px)}.sheet{bottom:4vh;height:92vh;border-radius:16px}.sheet.auto{max-height:92vh}.sheet.closing{animation:fade .25s ease reverse both}}
