@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAZMABQAAAAADFgAAAXfAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbbhwoP0hWQVJYP01WQVJGBmA/U1RBVIEcAEwvXBEICoMkgmELEAAwhAgBNgIkAxoEIAWGXAdRDAcbrAoRVazlgPh5YDtPuYeVhCwYIP8bOqRjg0Z4JTV4/v/b9Pe5o8xgTYmsvthrSWpU1KmJ/BVq7k9NiBP6v1/k/uGaFtC4yGKSAisaENwT3YcG2k3YBcD/HDNdpEVi/q11z0c6kSzqvKOofn5iN6CrTLDpWfGB8WxbVkKxh3CYTm1tsPc2HgKkgbtSCIKGIIBDmMaort37DsE/Z+KSefjRAV4czWZPXTQPGwxsdBSnEWwUWXQFIlRHUAAA6f0KjVzSHCxIL6QQmxYFFkXxigCEgRAAAEFMFAAgKAQIo4AMIIgAoOh+pSRa6iCop3kagI50BAHARpG9eMmi+YCsmDF9CRfuRYDsUFPiHRY5ZSa66iU7MEBtUiOAPtNCZBy1pDOQswBFSRkyoM8AnqZT/h3dnxoYQZmSj+wGUFnqFyAfDUGwUUAIGwijlk+fsUQ0mLlk4hxxEYJkU4uWdCXKGGYgAKLzMiAAYkgE0ACFkh2gHgcEQCz5XwVbjYD+Hjeyo+UraghKvOBGJS4PoSHT79NpCTjYKBSdeEZU/p0UoGJST+tEvooiYCkBgiiEEBb2NhvxMsgOWL4xiCY6YG5ugERATJcdiAXyP4gNagSIZ4tuccIvXZAUAgBYAPgBLzAN2ApkAyEAdFQK4ugIorNtPTNTrxAcLwGWHNh5r+nOdmc6w7xDRvtGudMv35b4sx86m95v6Jz+6CN38wcfELtRa8SmDz+U+O2H3As3iD3zgbv5oybuifffn5akbPxwd8hsL58be+I06ylxY1XanOpud7ck7uscbuDnYf1qh3S426/j3VFk7rucxbVXdi/JLWzRKade0yENew/9cBedUrdt56mNW41olRc0XvlAazayZV5+YvzqNa7EZoMnfXEvOrlur7ROBZ3Ch+hATFs5bO/0hXvRVzbpVhDuEulZ983atd+s2yNSo4tpPVQhAlgYPMI7nWTSad6GAC6ouPbT9HMLICggjAVALQAepgHtuMsL/N2Rp4kpvFRDqAb43MAvfzgq8edv/ooKSuJrzECAf/6pWnV1zPv7lGi5p9uQYWV5jYiebPbtt+Tmvvvu6iRI8w+YoESUuCXiIL9GpYjRVRAfYMqRC+stBFrkZGdhgaBtJv/8My3gmCZlJUWkvCype1y25fnxx98m/K8iaaSn//N/aYXremrFRJTGfcnKpDgZOThQwOvVKlcZSteMVPHsyvJkuWia0lL/9buijmz0f1LhFBU5Lbe6xc9ffIoFvi/WM+s0/PLz3yo1f3aNIhJpbCX//In95cfVIw2XKAyZ/379aaRenvvrr/n5dSKcuM/V/vrls1eewYE++uOPktQqoyLxT5ntxrN1J2CWJBLJKpkFLTqUVWpXreoRykOh8t8N4/dbhbT8LugrGp99s3q9Vi05fOLqmOTmrnFBZkxVKx/HI6KUKPlAnv8q+PHnP//+6NPvYnZlUeL33xNFleAObhvOrjZtxrjBvTp06sxWtrCK2avjXl9mKFTQAuYCft10dw0CqLR6icHdOo8PtE3YmvYzwBc3I1kAX5/fPSY1WdCI6mcBEwWAwNvQvNaB0HtjIFBbU8Voq7bgHr/tGC2A6UxHAIspWIzBCG6sIUAaXyrNdQ/wvDzKAKG6HACFXzaBRlfpDjqNJQQGrfkUTOpzhe+nOcvkRMPLLNAJMQwMHPqCiV82gYWXjmATpCF4sKkFDmlkgIsXR1vvT80gTCE70pCE9t6PlrDBxOn+GzfEFZqQZ0ineJOehn6gU5jM2QdX1VLp0rlaMqZsGeZaURUmFKXPLvZPLxOjjiEGqeEGMtW/dn2TgLx3pQoxI0PKZ4OV72nERL1wuqAj/rbUYGS4yFBCOqbP316ciNFcXXJHQ08vo+0W8195Y8vJkAs/uTUi3R5v5ziXEiPX1mRtdIDSZfDWIwv6If83xqI2pkxjjPo3dxkn2yWoTLmtXViE/0WJJroYZifrVx6+WDdZOOSbcRNso92vWdEap+IjPv2T1Nob+lYAAA==) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-Bnh6xcKr.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-Ch-K9LVU.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-BD2oGHtS.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}@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/sora-latin-ext-wght-normal-yn6Hateq.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:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/sora-latin-wght-normal-UPnOA2Rr.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}.ptr{flex:none;height:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;transition:height .25s ease}.ptr.drag{transition:none}.ptr-fox{flex:none;width:108px;height:112px}.ptr-text{flex:none;height:18px;font-size:.75rem;line-height:18px;color:var(--tx3)}.ac-head{align-items:flex-start}.ac-head .ttl{overflow-wrap:anywhere}.ac-meta{margin-top:4px}.ac-cardh{align-items:baseline;margin-bottom:8px}.ac-gap,.ac-line{margin-top:12px}.ac-line b,.ac-custom b{font-family:var(--display);font-weight:500;color:var(--tx)}.ac-sub{font-size:.8125rem;line-height:1.125rem;font-weight:600;color:var(--tx2);margin:18px 0 10px}.ac-sub.first{margin-top:0}.ac-sub .cap{font-weight:400}.ac-top{align-items:flex-start}.ac-cgpa{font-size:2.5rem;line-height:2.875rem}.ac-target{flex:none;min-height:40px;padding:0 16px}.ac-target b{font-family:var(--display);font-weight:500}.ac-target .icon{width:18px;height:18px}.ac-fig{font-size:1.5rem;line-height:1.75rem;white-space:nowrap}.ac-fig small.of{margin-left:5px}.ac-credits{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--stroke)}.ac-credits-h{align-items:flex-end}.ac-credits .progress{--c: var(--accent)}.ac-inline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;font-size:.8125rem;line-height:1.125rem;font-weight:500;color:var(--tx2)}.ac-inline input{width:112px;height:40px;font-family:var(--display);font-weight:400;font-size:.9375rem}.ac-inline .btn.text{margin-left:-8px}.ac-custom{font-weight:400}.ac-total{flex:none;font-size:1.5rem;line-height:1.75rem;white-space:nowrap}.ac-total small{margin-left:4px}.mtable{width:100%;border-collapse:collapse;margin-top:14px}.mtable th{font-size:.75rem;line-height:1rem;font-weight:500;color:var(--tx3);text-align:right;padding:0 0 8px;border-bottom:1px solid var(--stroke)}.mtable th:first-child,.mtable td:first-child{text-align:left}.mtable td{padding:10px 0;text-align:right;white-space:nowrap;vertical-align:top;font-family:var(--display);font-size:.9375rem;line-height:1.25rem;font-weight:300;letter-spacing:-.01em;color:var(--tx)}.mtable td+td,.mtable th+th{padding-left:12px}.mtable td:first-child{white-space:normal;padding-right:4px;font-family:var(--font);font-size:.8125rem;font-weight:500;letter-spacing:0;color:var(--tx2)}.mtable tr+tr td{border-top:1px solid var(--stroke)}.mtable tbody tr:last-child td{padding-bottom:0}.mtable small{font-size:.75rem;font-weight:400;letter-spacing:0;color:var(--tx3)}.mtable td:first-child small,.mtable small.na{font-family:var(--font)}.mtable .low{display:inline-flex;align-items:center;gap:3px;color:var(--risk);font-weight:400}.mtable .low .icon{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--risk) 60%,transparent))}.ac-history .btn.text{margin-top:2px}.ac-grade{flex:none;display:flex;flex-direction:column;align-items:flex-end;text-align:right}.ac-grade .num{font-size:1.875rem;line-height:2.125rem}.ac-grid5{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:8px}.ac-cell{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:10px 4px;border-radius:14px;text-align:center;background:var(--chip);border:1px solid var(--stroke)}.ac-cell b{font-family:var(--display);font-size:1.25rem;line-height:1.625rem;font-weight:400;color:var(--tx)}.ac-cell span{display:inline-flex;align-items:center;gap:3px;font-size:.71875rem;line-height:1rem;color:var(--tx3)}.ac-cell .icon{flex:none}.ac-cell.ok{background:color-mix(in srgb,var(--safe) 12%,transparent);border-color:color-mix(in srgb,var(--safe) 30%,transparent)}.ac-cell.ok span{color:var(--safe)}.ac-cell.no{opacity:.55}.ac-fatgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ac-tile{display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px 14px;border-radius:14px;background:var(--chip);border:1px solid var(--stroke)}.ac-tile.hi{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.ac-tile-g{display:flex;align-items:baseline;gap:8px}.ac-tile-g .num{font-size:1.625rem;line-height:2rem}.ac-ch{font-family:var(--display);font-size:.875rem;font-weight:400;color:var(--tx2)}.ac-tile.hi .ac-ch{color:var(--accent)}.ac-avgrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ac-avg{min-width:0}.ac-avg input{font-family:var(--display);font-weight:400;font-size:.9375rem}.ac-avg .mine{font-size:.75rem;line-height:1rem;font-weight:400;color:var(--tx3)}.ac-avg .mine b{font-family:var(--display);font-weight:500;color:var(--tx2)}.ac-avg .reset{align-self:flex-start;margin-left:-8px}.ac-chart svg{display:block;width:100%;height:auto;margin:4px 0 10px;overflow:visible}.ac-chart .ac-grid line{stroke:var(--stroke);stroke-width:1}.ac-chart text{font:500 9.5px var(--font);fill:var(--tx3)}.ac-chart .s0{stop-color:var(--accent);stop-opacity:.26}.ac-chart .s1{stop-color:var(--accent);stop-opacity:0}.ac-chart .ac-area{stroke:none}.ac-chart .ac-l-gpa{fill:none;stroke:var(--tx2);stroke-width:1.5;stroke-dasharray:4 3;stroke-linecap:round;stroke-linejoin:round}.ac-chart .ac-l-cgpa{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 60%,transparent))}.ac-chart circle{fill:var(--accent);stroke:var(--bg0);stroke-width:1.5;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 65%,transparent))}.ac-legend{display:flex;gap:14px;font-size:.75rem;line-height:1rem;color:var(--tx3)}.ac-legend span{display:inline-flex;align-items:center;gap:6px}.ac-legend span:before{content:"";width:14px;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 6px color-mix(in srgb,var(--accent) 60%,transparent)}.ac-legend .gpa:before{background:repeating-linear-gradient(90deg,var(--tx2) 0 4px,transparent 4px 7px);box-shadow:none}.ac-bars{display:flex;flex-direction:column;gap:12px;margin-top:4px}.ac-hbar{display:grid;grid-template-columns:22px 1fr 32px;align-items:center;gap:12px}.ac-hbar b{font-family:var(--display);font-size:1rem;line-height:1.375rem;font-weight:400;color:var(--tx)}.ac-hbar .v{text-align:right}.ac-hbar .progress{--c: var(--accent)}.ac-cat{display:flex;flex-direction:column;gap:8px;padding:12px 0}.ac-cat+.ac-cat{border-top:1px solid var(--stroke)}.ac-cat:last-child{padding-bottom:2px}.ac-cardh+.ac-cat{padding-top:4px}.ac-cat-h{gap:8px;font-size:.84375rem;line-height:1.25rem;color:var(--tx)}.ac-catv{flex:none;font-size:1.0625rem;line-height:1.375rem;white-space:nowrap}.ac-catv small{margin-left:4px}.ac-cat .progress:not(.safe){--c: var(--accent)}.ac-next-top{align-items:flex-end}.ac-next-title{margin-top:8px;overflow-wrap:anywhere}.ac-count{flex:none;font-size:1.875rem;line-height:2.125rem;white-space:nowrap}.ac-kv{margin-top:14px;padding-top:6px;border-top:1px solid var(--stroke)}.ac-ics{margin-top:12px}.ac-past>summary{list-style:none}.ac-past>summary::-webkit-details-marker{display:none}.ac-past>summary .chev{transition:transform var(--dur) var(--ease)}.ac-past[open]>summary .chev{transform:rotate(90deg)}.ac-max{padding:2px 0 6px}.ac-add>.chips{margin:var(--s3) 0}.ac-add>p{margin-bottom:var(--s2)}.att{display:flex;flex-direction:column;min-width:0}.att>.tabs{margin-bottom:14px}.att>.chips{padding:14px 0 12px}.att .overall>.num{font-size:2.5rem;line-height:2.875rem}.att .pins{display:grid;grid-template-columns:repeat(4,1fr);height:76px;margin-top:14px;align-items:end}.att .pin{--c: var(--safe);--h: 44px;position:relative;display:flex;flex-direction:column;gap:4px;min-width:0;padding:0 0 0 10px;text-align:left}.att button.pin{appearance:none;border:none;background:none;margin:0;font:inherit;color:inherit;cursor:pointer;border-radius:4px}.att .pin:before{content:"";position:absolute;left:0;bottom:0;width:1.5px;height:var(--h);background:linear-gradient(180deg,var(--c),transparent)}.att .pin:after{content:"";position:absolute;left:-3px;bottom:calc(var(--h) - 4px);width:7.5px;height:7.5px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}.att .pin .num{font-size:1.375rem;line-height:1.625rem}.att .pin .cap{white-space:nowrap}.att .pin.safe{--c: var(--safe);--h: 36px}.att .pin.close{--c: var(--close);--h: 28px}.att .pin.risk{--c: var(--risk);--h: 20px}.att .card.crow{display:flex;flex-direction:column;gap:10px;margin:0;padding:var(--s4);border:1px solid var(--stroke)}.att .card.crow:active{background:var(--card-hi)}@media(hover:hover){.att .card.crow:hover{background:var(--card-hi)}}.att .crow .top{align-items:flex-start}.att .crow .ttl,.att .crow .cap{display:block}.att .crow .top>.num{flex:none;font-size:1.5rem;line-height:1.75rem}.att .crow .badge{margin-left:auto}.att .bc{display:flex;gap:2px;align-items:flex-end;height:18px;flex:1;min-width:0}.att .bc i{flex:1;height:100%;border-radius:2px;background:var(--safe);opacity:.35}.att .bc i.a{background:var(--risk);opacity:1;box-shadow:0 0 6px color-mix(in srgb,var(--risk) 70%,transparent)}.att .bc i.o{background:var(--close);opacity:.9}.att .bc i.e{background:var(--track);opacity:1}.att .note{padding:0 var(--s1)}.mn-profile{display:flex;align-items:center;gap:16px}.mn-profile .avatar{box-shadow:var(--edge)}.mn-who{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mn-who .ttl,.mn-who .cap{overflow-wrap:anywhere}.mn-reg{font-family:var(--display);font-size:.8125rem;line-height:1.125rem;font-weight:400;letter-spacing:.02em;color:var(--tx2)}.mn-expand{padding:0 0 10px 48px}.mn-expand .kv{grid-template-columns:88px 1fr}.mn-expand .foot{padding:4px 0 0}.mn-kv{padding-top:8px;padding-bottom:8px}.mn-kv .pad .lbl{padding-bottom:2px}.mn-logout{align-self:center}.mn-acct{display:flex;justify-content:space-between;gap:8px;padding-top:0;padding-bottom:8px}.mn-form .btn{margin-top:4px}.routeno{flex:none;min-width:40px;height:30px;padding:0 8px;border-radius:10px;display:grid;place-items:center;background:var(--chip);border:1px solid var(--stroke);color:var(--tx);font-family:var(--display);font-size:.875rem;line-height:1;font-weight:500;letter-spacing:-.01em}.bus-count{white-space:nowrap;padding-left:4px}.bus-list .row{min-height:64px}.bus-list .row-sub .typechip{height:20px;margin-right:2px;vertical-align:1px}.bus-stops{list-style:none;margin:0;padding:2px 0 8px}.bus-stops li{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 0;position:relative}.bus-stops li+li:before{content:"";position:absolute;top:0;left:80px;right:0;height:1px;background:var(--stroke)}.bus-stops .t{flex:none;width:68px;font-family:var(--display);font-size:.875rem;line-height:1.25rem;font-weight:400;color:var(--tx);white-space:nowrap}.bus-stops .n{flex:1;min-width:0;font-size:.84375rem;line-height:1.25rem;color:var(--tx2);overflow-wrap:anywhere}.bus-stops li.hit .t{color:var(--accent)}.bus-stops li.hit .n{color:var(--tx);font-weight:600}.bus-pin{appearance:none;cursor:pointer;position:relative;flex:none;display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border-radius:var(--r-full);border:1px solid var(--stroke);background:var(--chip);color:var(--tx2);font-size:.75rem;line-height:1rem;font-weight:600;white-space:nowrap}.bus-pin:after{content:"";position:absolute;inset:-6px 0}.bus-pin:active{background:var(--card-hi)}.bus-pin .icon{width:16px;height:16px}.bus-pin.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.bus-mine{padding:0}.bus-mine-head{appearance:none;border:none;background:none;cursor:pointer;width:100%;display:flex;flex-direction:column;gap:4px;padding:12px 12px 16px 16px;border-radius:var(--r-md);text-align:left;color:var(--tx);font:inherit}.bus-mine-head:focus-visible{outline-offset:-2px}.bus-mine-head:active{background:var(--card-hi)}.bus-mine-top{min-height:32px}.bus-chev{color:var(--tx2);transition:transform var(--dur) var(--ease)}.bus-mine-head[aria-expanded=true] .bus-chev{transform:rotate(180deg)}.bus-mine-row{display:flex;align-items:flex-end;gap:12px;padding-right:4px}.bus-mine-where{flex:1;min-width:0;display:flex;flex-direction:column}.bus-mine-where .ttl{overflow-wrap:anywhere}.bus-time{flex:none;font-size:2.125rem;line-height:2.5rem;white-space:nowrap}.bus-time small{margin-left:4px}.bus-mine .bus-stops{margin:0 16px;border-top:1px solid var(--stroke)}.hs-leave{align-items:flex-start;padding-top:10px;padding-bottom:10px}.hs-leave .row-title .cap{font-weight:400}.ch-new{color:var(--accent-ink);font-weight:600}.fr-link{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-size:.75rem}.fr-day{padding:0 0 8px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.fr-day .classlist{align-self:stretch;padding:0;box-shadow:none;background:none;border:0}.fr-day .foot{padding:0}.cc-state>.hrow{align-items:flex-start}.cc-pct{font-size:2.75rem;line-height:3.125rem}.cc-verdict{margin:10px 0 12px}.cc-head{margin-bottom:8px}.cc-chart{width:100%;height:auto;display:block}.cc-chart text{font:500 9.5px var(--font);fill:var(--tx3)}.cc-chart .base{stroke:var(--stroke);stroke-width:1}.cc-chart .g-p{color:var(--safe)}.cc-chart .g-o{color:var(--close)}.cc-chart .g-x{color:var(--tx3)}.cc-chart .a{fill:var(--risk);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--risk) 60%,transparent))}.cc-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.75rem;line-height:1.125rem;color:var(--tx3)}.cc-legend span{display:inline-flex;align-items:center;gap:6px}.cc-legend span:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--c)}.cc-legend b{font-weight:600;color:var(--tx2);margin-left:-2px}.cc-legend .p{--c: var(--safe)}.cc-legend .o{--c: var(--close)}.cc-legend .a{--c: var(--risk)}.cc-legend .x{--c: var(--tx3)}.cc-quick{margin-top:10px}.cc-qnum{font-size:1.75rem}.cc-end{text-align:right}.cc-qnum.safe{color:var(--tx)}.cc-qnum.close{color:var(--close)}.cc-qnum.risk{color:var(--risk)}input.slider{-webkit-appearance:none;appearance:none;display:block;width:100%;height:34px;margin:0;padding:0;border:0;border-radius:99px;background:none;box-shadow:none;cursor:pointer}input.slider:focus{border:0;box-shadow:none}input.slider:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input.slider::-webkit-slider-runnable-track{height:8px;border-radius:99px;background:var(--track)}input.slider::-moz-range-track{height:8px;border-radius:99px;background:var(--track)}input.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:44px;height:26px;margin-top:-9px;border-radius:99px;border:0;background:linear-gradient(180deg,#FFB27E,var(--accent) 45%,var(--accent-2));box-shadow:var(--glowsh),inset 0 2px 3px #ffffff80,inset 0 -3px 5px #781e0059}input.slider::-moz-range-thumb{width:44px;height:26px;border-radius:99px;border:0;background:linear-gradient(180deg,#FFB27E,var(--accent) 45%,var(--accent-2));box-shadow:var(--glowsh),inset 0 2px 3px #ffffff80,inset 0 -3px 5px #781e0059}.cc-days>.cap{margin-top:2px}.compare{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:14px 0 16px}.compare>span{font-size:.75rem;line-height:1rem;color:var(--tx3)}.compare>em{font:400 .875rem/1.25rem var(--display);color:var(--tx);text-align:right}.compare .progress{margin:0}.pdays{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}.pday{appearance:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:76px;padding:8px 4px;border-radius:14px;border:1px solid var(--stroke);background:var(--chip);color:var(--tx)}.pday:active{background:var(--card-hi)}.pday .icon{color:var(--tx2)}.pday b{font-size:.8125rem;line-height:1.125rem;font-weight:600}.pday span{font-size:.75rem;line-height:1rem;color:var(--tx3)}.pday em{font-style:normal;font-size:.75rem;line-height:1rem;font-weight:600;color:var(--tx2)}.pday.skip{background:color-mix(in srgb,var(--risk) 15%,transparent);border-color:color-mix(in srgb,var(--risk) 30%,transparent)}.pday.skip em,.pday.skip .icon{color:var(--risk)}.pday.ignore{background:none;border-style:dashed;border-color:color-mix(in srgb,var(--tx) 28%,transparent)}.pday.ignore b{color:var(--tx2)}.pday.ignore em,.pday.ignore .icon{color:var(--tx3)}.plan-proj{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0 8px}.plan-proj .num{font-size:1.75rem}.plan-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--stroke)}.plan-foot>span:last-child{margin-right:-8px}.kv.cc-kv{gap:8px 12px;margin:0;padding:0;font-size:.84375rem}.kv.cc-kv dd{color:var(--tx)}.sched{display:grid;grid-template-columns:auto 1fr;gap:0 16px}.cc-miles{display:flex;flex-direction:column;gap:12px;margin:8px 0}.cc-mile{display:flex;flex-direction:column;gap:2px}.cc-mile-pct{font-size:1.25rem;line-height:1.5rem}.cc-mile-pct.safe{color:var(--safe)}.cc-mile-pct.close{color:var(--close)}.cc-mile-pct.risk{color:var(--risk)}.fox{width:100%;height:100%;overflow:visible;display:block}.fox .f-breathe{transform-origin:100px 190px;animation:fbreathe 3.6s ease-in-out infinite}.fox .f-tail{transform-origin:128px 170px;animation:fwag 2.8s ease-in-out infinite}.fox .f-eyes{transform-box:fill-box;transform-origin:center;animation:fblink 5s infinite}.fox .f-ear.l{transform-origin:76px 54px}.fox .f-ear.r{transform-origin:124px 54px}.m-relaxed .f-ear.l,.m-cool .f-ear.l{animation:fearL 6s ease-in-out infinite}.m-alert .f-ear.r{animation:fearR 2.2s ease-in-out infinite}.m-alert .f-tail{animation:fwag 1.1s ease-in-out infinite}.m-alert .f-head{transform-origin:100px 118px;animation:ftilt 3s ease-in-out infinite}.m-worried .f-ear.l{transform:rotate(-30deg) translate(4px,6px)}.m-worried .f-ear.r{transform:rotate(30deg) translate(-4px,6px)}.m-worried .f-tail{animation:fwag 6s ease-in-out infinite}.m-worried .f-all{animation:ftremble .18s linear infinite;animation-play-state:running}.m-worried .f-sweat{animation:fsweat 2.2s ease-in infinite}.m-sleep .f-breathe{animation-duration:4.8s}.m-sleep .f-eyes,.m-happy .f-eyes{animation:none}.m-sleep .f-head{transform-origin:100px 118px;transform:rotate(-8deg) translateY(4px)}.m-sleep .f-tail{animation:none;transform:rotate(-4deg)}.f-z{animation:fz 3.6s ease-in infinite;opacity:0}.f-z:nth-of-type(2){animation-delay:1.2s}.f-z:nth-of-type(3){animation-delay:2.4s}.f-bang{transform-box:fill-box;transform-origin:center bottom;animation:fbang 2.2s ease-in-out infinite}.m-cool .f-tail{animation-duration:4.5s}.m-cool .f-head{transform-origin:100px 118px;animation:fbob 2.4s ease-in-out infinite}.p-dig .f-head{transform-origin:100px 118px;animation:fdighead .36s ease-in-out infinite}.p-dig .f-leg.l{animation:fdig .36s ease-in-out infinite}.p-dig .f-leg.r{animation:fdig .36s ease-in-out infinite .18s}.p-dig .f-tail{animation:fwag .5s ease-in-out infinite}.f-dirt{animation:fdirt .9s ease-out infinite;animation-delay:var(--d);opacity:0}.p-sign .f-all{transform-origin:100px 192px;animation:fpop .7s cubic-bezier(.3,1.6,.5,1) both}.p-sign .f-tail{animation:fwag .7s ease-in-out infinite}.p-watch .f-head{transform-origin:100px 118px;transform:rotate(calc(var(--look, 0) * 1deg));transition:transform .25s}.f-pupils{transition:transform .2s ease-out}.f-arm{transition:transform .35s cubic-bezier(.3,1.3,.5,1)}@keyframes fbreathe{0%,to{transform:scale(1)}50%{transform:scale(1.012,1.022)}}@keyframes fwag{0%,to{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}@keyframes fblink{0%,93%,to{transform:scaleY(1)}95.5%{transform:scaleY(.08)}}@keyframes fearL{0%,80%,to{transform:rotate(0)}84%{transform:rotate(-12deg)}88%{transform:rotate(3deg)}}@keyframes fearR{0%,60%,to{transform:rotate(0)}66%{transform:rotate(10deg)}72%{transform:rotate(-2deg)}}@keyframes ftilt{0%,to{transform:rotate(0)}40%,60%{transform:rotate(-6deg)}}@keyframes ftremble{0%,to{transform:translate(0)}25%{transform:translate(.7px)}75%{transform:translate(-.7px)}}@keyframes fsweat{0%{transform:translateY(-4px);opacity:0}15%{opacity:1}80%{opacity:1}to{transform:translateY(14px);opacity:0}}@keyframes fz{0%{transform:translate(0) scale(.6);opacity:0}20%{opacity:.9}to{transform:translate(18px,-40px) scale(1.2);opacity:0}}@keyframes fbang{0%,to{transform:scale(1) rotate(0)}10%{transform:scale(1.18) rotate(-8deg)}20%{transform:scale(1) rotate(0)}}@keyframes fbob{0%,to{transform:rotate(0) translateY(0)}50%{transform:rotate(4deg) translateY(1px)}}@keyframes fdighead{0%,to{transform:translateY(6px) rotate(0)}50%{transform:translateY(9px) rotate(2deg)}}@keyframes fdig{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes fdirt{0%{transform:translate(0);opacity:0}10%{opacity:1}to{transform:translate(var(--dx),var(--dy));opacity:0}}@keyframes fpop{0%{transform:translateY(26px) scale(.9)}to{transform:translateY(0) scale(1)}}.paused,.paused *{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.fox *,.fox{animation:none!important;transition:none!important}.f-z,.f-dirt{opacity:.8}}.foxbox{position:relative}.foxbox>svg{width:100%;height:100%}.foxscene{padding:var(--s3);display:flex;flex-direction:column;gap:var(--s3)}.scenebox{height:180px;border-radius:18px;position:relative;overflow:hidden;display:grid;place-items:center;background:radial-gradient(160px 120px at 50% 70%,rgba(255,112,52,.22),transparent 70%),radial-gradient(240px 160px at 0% 0%,rgba(84,108,132,.32),transparent 70%),#12161b}.scenebox.beach{background:radial-gradient(70px 70px at 78% 26%,rgba(255,196,110,.85),rgba(255,140,60,.35) 45%,transparent 72%),linear-gradient(180deg,#2a3a4a,#4a5560 55%,#6b5a48 56%,#8a6f52)}.scenebox.night{background:radial-gradient(40px 40px at 80% 22%,rgba(240,236,220,.7),transparent 70%),radial-gradient(260px 160px at 50% 90%,rgba(84,108,132,.35),transparent 70%),#0d1116}.scenebox.night:before{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 20% 30%,#fff8,transparent),radial-gradient(1px 1px at 40% 15%,#fff6,transparent),radial-gradient(1.5px 1.5px at 62% 40%,#fff7,transparent),radial-gradient(1px 1px at 12% 60%,#fff5,transparent)}.scenefox{width:160px;height:168px}.scenetext{display:flex;flex-direction:column;gap:2px;padding:0 var(--s1) var(--s1)}.page>.appbar.lead{padding-top:var(--s5)}.card.hero{margin-top:30px;padding:18px 18px 16px;min-height:196px;overflow:visible;display:flex;flex-direction:column}.hero .txt{max-width:172px;display:flex;flex-direction:column;gap:2px}.hero .num{font-size:2.875rem;line-height:3.375rem}.hero .mood{display:block;margin-top:6px;font-size:.8125rem;line-height:1.125rem;color:var(--tx2)}.foxslot{position:absolute;right:-10px;top:-48px;width:182px;height:192px;pointer-events:none}.foxslot:before{content:"";position:absolute;inset:30% 12% 4%;border-radius:50%;background:var(--glow);filter:blur(28px);z-index:-1}.foxslot .foxbox{width:100%;height:100%}.hero .bottom{margin-top:16px;display:flex;flex-direction:column;gap:8px}.growth{display:flex;justify-content:space-between;gap:8px;font-size:.75rem;line-height:1.125rem;color:var(--tx3)}.growth b{color:var(--tx2);font-weight:600}.card.next .hrow{margin-top:4px;align-items:flex-end}.card.next .num{flex:none;font-size:1.875rem;line-height:2.125rem}.card.next p.lbl{margin-top:4px}.next-tl{display:flex;gap:6px;margin-top:14px}.next-tl span{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;font-size:.71875rem;color:var(--tx3);white-space:nowrap}.next-tl span:before{content:"";height:4px;border-radius:4px;background:var(--track)}.next-tl span.on{color:var(--tx)}.next-tl span.on:before{background:var(--accent);box-shadow:var(--glowsh)}.sec-head .tbtn{appearance:none;position:relative;background:none;border:0;padding:4px;cursor:pointer;color:var(--accent-ink);font:600 .8125rem/1.125rem var(--font)}.sec-head .tbtn:after{content:"";position:absolute;inset:-8px -6px}.toggle{display:inline-flex;align-items:center;gap:2px;padding:4px;border-radius:var(--r-full);background:var(--chip);border:1px solid var(--stroke)}.toggle button{appearance:none;border:0;background:none;cursor:pointer;position:relative;flex:none;width:36px;height:32px;padding:0;border-radius:var(--r-full);display:grid;place-items:center;color:var(--tx2);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.toggle button:after{content:"";position:absolute;inset:-4px 0}.toggle button[aria-pressed=true]{background:var(--card-hi);color:var(--tx)}.toggle .icon{width:18px;height:18px}.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;touch-action:pan-y;user-select:none;-webkit-user-select:none}.wday{appearance:none;position:relative;min-width:0;height:56px;padding:0 0 4px;border-radius:14px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--stroke);box-shadow:var(--edge);color:var(--tx);transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.wday .d{font:500 .6875rem/1rem var(--font);color:var(--tx3)}.wday b{font:400 1rem/1.375rem var(--display);letter-spacing:-.01em}.wday .dot{position:absolute;bottom:6px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--tx3)}.wday.today{border-color:var(--accent)}.wday:active:not([aria-pressed=true]){background:var(--card-hi)}.wday[aria-pressed=true]{background:linear-gradient(180deg,var(--accent),var(--accent-2));border-color:transparent;box-shadow:var(--glowsh);color:var(--on-accent)}.wday[aria-pressed=true] .d{color:var(--on-accent);opacity:.8}.wday[aria-pressed=true] .dot{background:var(--on-accent)}.daytitle{padding:8px 4px 0}.classlist .trow{appearance:none;border:0;background:none;width:100%;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;position:relative;isolation:isolate;display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:start;padding:10px 0}.classlist .trow:after{content:"";position:absolute;z-index:-1;inset:2px -8px;border-radius:14px;background:var(--card-hi);opacity:0;transition:opacity var(--dur) var(--ease)}.classlist .trow:active:after{opacity:1}@media(hover:hover){.classlist .trow:hover:after{opacity:.6}}.classlist .trow:focus-visible{outline:none}.classlist .trow:focus-visible:after{opacity:1;background:none;outline:2px solid var(--accent)}.classlist>:is(.trow,.free)+:is(.trow,.free){border-top:1px solid var(--stroke)}.classlist .t{font:400 .875rem var(--display);color:var(--tx)}.classlist .t small{display:block;font:400 .71875rem var(--font);color:var(--tx3)}.classlist .tmain{min-width:0;display:flex;flex-direction:column}.classlist .ttl{font-size:.90625rem;overflow-wrap:anywhere}.classlist .trow.done>*{opacity:.5}.now-tag{color:var(--accent-ink);font-weight:600}.classlist .trow.fold{align-items:center;min-height:44px;padding:6px 0}.classlist .trow.fold .tmain{flex-direction:row;align-items:center;gap:4px;font:500 .8125rem/1.125rem var(--font);color:var(--tx3)}.classlist .free{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:6px 0}.classlist .nowline{position:relative;height:2px;margin:2px 0 2px 4px;border-radius:2px;background:var(--accent);box-shadow:var(--glowsh)}.classlist .nowline:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:var(--glowsh)}.slotgrid{padding:10px 8px;display:flex;flex-direction:column;gap:4px}.sg-row{display:grid;grid-template-columns:28px repeat(6,1fr) 8px repeat(6,1fr);gap:3px;align-items:stretch;position:relative}.sg-head{font:500 .625rem/1rem var(--font);color:var(--tx3);text-align:center}.sg-day{font:500 .6875rem/1.25rem var(--font);color:var(--tx3);align-self:center}.sg-row.today .sg-day{color:var(--accent-ink);font-weight:700}.sg-lunch{position:relative}.sg-lunch:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--stroke)}.sg-cell{appearance:none;min-width:0;min-height:34px;padding:0;border-radius:7px;cursor:pointer;display:grid;place-items:center;font:600 .5625rem/.75rem var(--font);letter-spacing:-.02em;color:var(--tx);text-align:center;overflow:hidden;background:hsl(var(--h) 70% 55% / .22);border:1px solid hsl(var(--h) 70% 55% / .55)}.sg-cell.lab{border-style:dashed}.sg-cell:active{background:hsl(var(--h) 70% 55% / .38)}.sg-cell:focus-visible{outline:2px solid var(--accent)}.sg-key{margin-top:var(--s3)}.sg-keyrow{appearance:none;border:0;background:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:8px 0;display:grid;grid-template-columns:10px 38px 1fr auto;gap:8px;align-items:center;min-height:44px}.sg-keyrow+.sg-keyrow{border-top:1px solid var(--stroke)}.sg-keyrow i{width:10px;height:10px;border-radius:3px;background:hsl(var(--h) 70% 55% / .6)}.sg-keyrow b{font:600 .75rem var(--font)}.sg-keyrow span{font-size:.84375rem;min-width:0;overflow-wrap:anywhere}.sg-keyrow small{color:var(--tx3);font-size:.6875rem}.login{justify-content:flex-start;gap:var(--s4);padding:calc(var(--s5) + env(safe-area-inset-top,0px)) var(--s4) calc(var(--s6) + env(safe-area-inset-bottom,0px))}.login-head{display:flex;flex-direction:column;gap:var(--s2)}.brand{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s2);font-size:.9375rem;font-weight:600;color:var(--tx)}.login h1{font:400 1.75rem/2.25rem var(--display);letter-spacing:-.01em;color:var(--tx);text-wrap:balance}.login .lede{color:var(--tx2);max-width:68ch}.stagebox{height:230px;border-radius:18px;position:relative;overflow:hidden;display:grid;place-items:center;background:radial-gradient(160px 120px at 50% 70%,rgba(255,112,52,.22),transparent 70%),radial-gradient(240px 160px at 0% 0%,rgba(84,108,132,.32),transparent 70%),#12161b}.stage-fox{width:190px;height:200px}.captcha{display:flex;gap:var(--s2);align-items:center}.captcha img,.capph{flex:1;min-width:0;height:44px;object-fit:contain;border-radius:12px;background:var(--image-bg)}.capph{display:grid;place-items:center;color:var(--on-image);font-size:.75rem}.who{display:flex;align-items:center;gap:var(--s3)}.formfoot{display:flex;justify-content:space-between;margin:0 calc(-1 * var(--s2))}.sheet-head{display:flex;align-items:center;gap:var(--s3)}.sheet-fox{flex:none;width:80px;height:84px}.sheet-head p{margin-top:2px}:root{--display: "Sora Variable", "Plus Jakarta Sans Variable", system-ui, sans-serif;--font: "Plus Jakarta Sans Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--bg0: #101317;--mist1: rgba(84, 108, 132, .42);--mist2: rgba(128, 80, 50, .34);--glow: rgba(255, 112, 52, .38);--card: rgba(255, 255, 255, .055);--card-hi: rgba(255, 255, 255, .1);--stroke: rgba(255, 255, 255, .1);--edge: inset 0 1px 0 rgba(255, 255, 255, .07);--tx: #F2F0ED;--tx2: rgba(242, 240, 237, .72);--tx3: rgba(242, 240, 237, .62);--track: rgba(255, 255, 255, .08);--accent: #FF7A3D;--accent-2: #E8541E;--accent-ink: #FF8F5E;--on-accent: #1A0D06;--safe: #C9D3DC;--close: #F5C26B;--risk: #FF6A3D;--nav: rgba(26, 30, 36, .58);--chip: rgba(255, 255, 255, .07);--glowsh: 0 0 18px rgba(255, 106, 61, .55);--float: rgba(24, 28, 34, .94);--scrim: rgba(0, 0, 0, .5);--band: rgba(255, 255, 255, .035);--image-bg: #FFFFFF;--on-image: #554A41;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--r-sm: 12px;--r-md: 26px;--r-full: 999px;--ease: cubic-bezier(.2, 0, 0, 1);--dur: .2s;--nav-h: 64px;--nav-gap: 18px;color-scheme:dark;--bg: var(--bg0);--surface: var(--card);--surface-raised: var(--card-hi);--border: var(--stroke);--text-primary: var(--tx);--text-secondary: var(--tx2);--text-tertiary: var(--tx3);--brand: var(--accent-ink);--on-brand: var(--on-accent);--brand-container: color-mix(in srgb, var(--accent) 18%, transparent);--on-brand-container: var(--accent-ink);--success: var(--safe);--warning: var(--close);--danger: var(--risk);--success-container: color-mix(in srgb, var(--safe) 15%, transparent);--warning-container: color-mix(in srgb, var(--close) 15%, transparent);--danger-container: color-mix(in srgb, var(--risk) 15%, transparent)}:root[data-theme=light]{--bg0: #E4E8EC;--mist1: rgba(140, 168, 196, .6);--mist2: rgba(255, 186, 140, .5);--glow: rgba(255, 120, 60, .3);--card: rgba(255, 255, 255, .52);--card-hi: rgba(255, 255, 255, .8);--stroke: rgba(255, 255, 255, .85);--edge: 0 6px 20px rgba(40, 60, 80, .08);--tx: #161A1F;--tx2: rgba(22, 26, 31, .74);--tx3: rgba(22, 26, 31, .66);--track: rgba(22, 26, 31, .09);--accent: #F06A2C;--accent-2: #D9501A;--accent-ink: #A63E14;--on-accent: #1A0D06;--safe: #4F5D6B;--close: #8A5600;--risk: #A83610;--nav: rgba(255, 255, 255, .62);--chip: rgba(22, 26, 31, .06);--glowsh: 0 0 14px rgba(240, 106, 44, .45);--float: rgba(250, 251, 252, .96);--scrim: rgba(0, 0, 0, .3);--band: rgba(255, 255, 255, .25);color-scheme:light}@media(prefers-color-scheme:light){:root:not([data-theme]){--bg0: #E4E8EC;--mist1: rgba(140, 168, 196, .6);--mist2: rgba(255, 186, 140, .5);--glow: rgba(255, 120, 60, .3);--card: rgba(255, 255, 255, .52);--card-hi: rgba(255, 255, 255, .8);--stroke: rgba(255, 255, 255, .85);--edge: 0 6px 20px rgba(40, 60, 80, .08);--tx: #161A1F;--tx2: rgba(22, 26, 31, .74);--tx3: rgba(22, 26, 31, .66);--track: rgba(22, 26, 31, .09);--accent: #F06A2C;--accent-2: #D9501A;--accent-ink: #A63E14;--on-accent: #1A0D06;--safe: #4F5D6B;--close: #8A5600;--risk: #A83610;--nav: rgba(255, 255, 255, .62);--chip: rgba(22, 26, 31, .06);--glowsh: 0 0 14px rgba(240, 106, 44, .45);--float: rgba(250, 251, 252, .96);--scrim: rgba(0, 0, 0, .3);--band: rgba(255, 255, 255, .25);color-scheme:light}}*{box-sizing:border-box}html{overscroll-behavior-y:contain;background:var(--bg0)}html,body{margin:0;min-height:100%}body{background:var(--bg0);color:var(--tx);font-family:var(--font);font-size:.9375rem;line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.5}a{color:var(--accent-ink)}h1,h2,h3,h4,p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon{flex:none;display:block}input,select{font:500 .875rem var(--font);color:var(--tx);background:var(--chip);border:1px solid var(--stroke);border-radius:14px;height:44px;padding:0 14px;width:100%}input::placeholder{color:var(--tx3)}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}select option{color:var(--tx);background:var(--bg0)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.num{font-family:var(--display);font-weight:300;letter-spacing:-.02em;color:var(--tx);font-variant-numeric:proportional-nums}.num small{font-size:.45em;color:var(--tx3);letter-spacing:0;margin-left:2px;font-weight:400}.cap{font-size:.75rem;line-height:1rem;color:var(--tx3)}.lbl{font-size:.8125rem;line-height:1.125rem;color:var(--tx2)}.ttl{font-size:1rem;line-height:1.375rem;font-weight:600;color:var(--tx)}.hint{font-size:.75rem;color:var(--tx3)}.t-display{font-family:var(--display);font-size:2.5rem;line-height:2.875rem;font-weight:300;letter-spacing:-.02em}.t-title-l{font-family:var(--display);font-size:1.375rem;line-height:1.75rem;font-weight:500}.t-title-m{font-size:1rem;line-height:1.375rem;font-weight:600}.t-body{font-size:.9375rem;line-height:1.375rem;font-weight:400}.t-label{font-size:.8125rem;line-height:1.125rem;font-weight:500}.t-caption{font-size:.75rem;line-height:1rem;font-weight:400}.c-secondary{color:var(--tx2)}.c-tertiary{color:var(--tx3)}.c-danger{color:var(--risk)}.c-success{color:var(--safe)}.c-warning{color:var(--close)}.stack{display:flex;flex-direction:column;gap:var(--s3)}.hrow{display:flex;align-items:center;gap:var(--s3)}.grow{flex:1;min-width:0}.corner{position:absolute;top:12px;right:12px}.mt3{margin-top:var(--s3)}.block{display:block}.app{position:relative;isolation:isolate;max-width:440px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.app:before{content:"";position:fixed;z-index:-1;inset:0;max-width:440px;margin:0 auto;pointer-events:none;background:linear-gradient(180deg,transparent 20%,var(--band) 45%,transparent 70%),radial-gradient(420px 320px at 0% 0%,var(--mist1),transparent 70%),radial-gradient(380px 360px at 110% 75%,var(--mist2),transparent 70%),var(--bg0)}@media(min-width:640px){body{background:radial-gradient(1200px 600px at 15% -10%,color-mix(in srgb,var(--mist1) 60%,transparent),transparent 60%),radial-gradient(900px 500px at 95% 10%,color-mix(in srgb,var(--mist2) 60%,transparent),transparent 60%),var(--bg0);background-attachment:fixed}.app:before{border-left:1px solid var(--stroke);border-right:1px solid var(--stroke)}}main{flex:1;display:flex;flex-direction:column;padding:0 var(--s4) calc(var(--nav-h) + var(--nav-gap) + 30px + env(safe-area-inset-bottom,0px))}main.fade{animation:fade var(--dur) var(--ease)}@keyframes fade{0%{opacity:0}}.page{display:flex;flex-direction:column;gap:var(--s3);padding-top:env(safe-area-inset-top,0px)}.sec{display:flex;flex-direction:column;gap:var(--s3)}.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2);padding:var(--s2) var(--s1) 0}.sec-head h2,.section-label{font-size:.9375rem;line-height:1.375rem;font-weight:500;color:var(--tx)}.section-label{padding:var(--s2) var(--s1) 0}.footnote,.foot{font-size:.75rem;line-height:1rem;color:var(--tx3);padding:6px var(--s1) 0}.splash{min-height:100dvh;display:grid;place-items:center}.brand-mark{display:block;height:26px;width:auto}.brand-mark.big{height:56px}.demobar{display:flex;justify-content:center;align-items:center;gap:var(--s3);padding:0 var(--s4);min-height:40px;font-size:.75rem;color:var(--tx2);background:var(--card);border-bottom:1px solid var(--stroke)}.empty{padding:var(--s5) var(--s4);text-align:center;color:var(--tx2)}.loading{display:flex;flex-direction:column;align-items:center;gap:var(--s3);color:var(--tx2);text-align:center}.loading.row{flex-direction:row;gap:var(--s2);text-align:start}.appbar{display:flex;align-items:center;gap:var(--s3);min-height:64px;padding:var(--s2) 0 var(--s4);flex-wrap:wrap}.appbar-title{flex:1 0 auto;max-width:100%;min-width:0}.appbar.pushed .appbar-title,.appbar.lead .appbar-title{flex-basis:0}.appbar-title h1{font:500 1.375rem/1.75rem var(--display);color:var(--tx)}.appbar.pushed .appbar-title h1,.appbar.lead .appbar-title h1{font:600 1rem/1.375rem var(--font)}.appbar-title p{font-size:.75rem;line-height:1rem;color:var(--tx3)}.appbar-actions{display:flex;align-items:center;gap:var(--s2);margin-left:auto}.page>.appbar{margin-bottom:calc(-1 * var(--s3))}.bottombar{position:fixed;z-index:25;bottom:calc(var(--nav-gap) + env(safe-area-inset-bottom,0px));left:0;right:0;max-width:412px;margin:0 auto;width:calc(100% - 28px);height:var(--nav-h);border-radius:32px;display:flex;align-items:center;justify-content:space-around;background:var(--nav);border:1px solid var(--stroke);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);box-shadow:0 10px 30px #00000040}.bottombar button{appearance:none;border:none;background:none;cursor:pointer;padding:0;min-width:0;display:grid;place-items:center;width:56px;height:48px;color:var(--tx3)}.bottombar .pill{width:52px;height:40px;border-radius:20px;display:grid;place-items:center;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.bottombar button[aria-current] .pill{color:var(--on-accent);background:linear-gradient(180deg,var(--accent),var(--accent-2));box-shadow:var(--glowsh)}.btn{appearance:none;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:44px;padding:0 var(--s5);border-radius:var(--r-full);font-size:.8125rem;line-height:1.125rem;font-weight:600;white-space:nowrap;background:none}.btn.wide{width:100%}.btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent-2));color:var(--on-accent);box-shadow:var(--glowsh)}.btn.tonal{background:var(--chip);color:var(--tx);border:1px solid var(--stroke)}.btn.text{color:var(--accent-ink);padding:0 var(--s2);min-height:40px}.btn.text.danger{color:var(--risk)}.btn.text.compact{margin-right:calc(-1 * var(--s2))}.btn.start{align-self:flex-start;margin-left:calc(-1 * var(--s2))}.iconbtn{appearance:none;cursor:pointer;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;padding:0;background:var(--chip);border:1px solid var(--stroke);color:var(--tx)}.iconbtn .icon{width:20px;height:20px}.iconbtn.sm{width:32px;height:32px}.iconbtn.sm .icon{width:16px;height:16px}.iconbtn.bare{background:none;border:none;width:44px;height:44px}.iconbtn.secondary{color:var(--tx2)}.iconbtn:active:not(:disabled),.chip:active{background:var(--card-hi)}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--stroke);overflow-x:auto;scrollbar-width:none}.tabs button{appearance:none;border:none;background:none;cursor:pointer;position:relative;flex:none;padding:var(--s2) 0 10px;min-height:44px;font-size:.875rem;line-height:1.25rem;font-weight:600;color:var(--tx3)}.tabs button[aria-selected=true]{color:var(--tx)}.tabs button[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--accent);box-shadow:var(--glowsh)}.chips{display:flex;gap:var(--s2);overflow-x:auto;scrollbar-width:none;padding:2px 0}.chips.wrap{flex-wrap:wrap;overflow:visible}.chips .grow{flex:1}.chip{appearance:none;position:relative;cursor:pointer;flex:none;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--s3);border-radius:var(--r-full);border:1px solid var(--stroke);background:var(--chip);color:var(--tx2);font-size:.78125rem;line-height:1rem;font-weight:500;white-space:nowrap}.chip:after{content:"";position:absolute;inset:-6px 0}.chip b{font-weight:600;opacity:.7}.chip[aria-pressed=true]{background:var(--tx);color:var(--bg0);border-color:transparent}.badge{--c: var(--tx2);display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:var(--r-full);flex:none;font-size:.71875rem;line-height:1;font-weight:600;white-space:nowrap;color:var(--c);background:color-mix(in srgb,var(--c) 15%,transparent);border:1px solid color-mix(in srgb,var(--c) 30%,transparent)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.badge.safe{--c: var(--safe)}.badge.close{--c: var(--close)}.badge.risk{--c: var(--risk)}.badge.neutral{--c: var(--tx2)}.typechip,.tchip{display:inline-flex;align-items:center;height:22px;padding:0 var(--s2);border-radius:8px;background:var(--chip);color:var(--tx2);font-size:.71875rem;line-height:1;font-weight:500;white-space:nowrap;flex:none}.chiprow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}.card{position:relative;background:var(--card);border:1px solid var(--stroke);border-radius:var(--r-md);box-shadow:var(--edge);padding:var(--s4)}.card.list{padding:var(--s1) var(--s4)}.card>.divider,.divider{height:1px;background:var(--stroke);margin:var(--s4) calc(-1 * var(--s4))}button.card,a.card{appearance:none;display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;text-decoration:none}button.card:active{background:var(--card-hi)}.row{appearance:none;border:none;background:none;width:100%;text-align:left;position:relative;display:flex;align-items:center;gap:var(--s3);min-height:52px;padding:var(--s3) 0;color:var(--tx);cursor:pointer;text-decoration:none;font:inherit}.row.static{cursor:default}.row.dim{opacity:.5}.row+.row,.row+.rowx,.rowx+.row,.kv+.row,.row+.kv{border-top:1px solid var(--stroke)}.rowx{position:relative}.li-ic,.row-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--chip);color:var(--tx2);flex:none}.li-ic .icon{width:20px;height:20px}.row-main{flex:1;min-width:0;display:flex;flex-direction:column}.row-title{font-size:.90625rem;line-height:1.375rem;font-weight:600;overflow-wrap:anywhere}.row-title.body{font-weight:600}.row-sub{font-size:.75rem;line-height:1rem;color:var(--tx3)}.row-sub.body{font-size:.875rem;line-height:1.25rem}.row-trail{flex:none;display:flex;align-items:center;gap:var(--s2);color:var(--tx2);text-align:right}.row-trail .value,.v{font:300 1.0625rem var(--display);color:var(--tx);white-space:nowrap}.chev{color:var(--tx3);margin-right:-4px}.kv{display:grid;grid-template-columns:96px 1fr;gap:var(--s3);padding:var(--s2) 0;font-size:.84375rem;position:relative}.kv>span:first-child,.kv dt{color:var(--tx3)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.kv>span:last-child{min-width:0;overflow-wrap:anywhere;color:var(--tx)}.kv a{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;margin:-12px 0;text-decoration:none;overflow-wrap:break-word}.kv a span{min-width:0}.pad{padding:var(--s3) 0;position:relative}.pad+.kv,.kv+.pad{border-top:1px solid var(--stroke)}.progress{--c: var(--tx2);position:relative;height:10px;border-radius:var(--r-full);background:var(--track)}.progress.thin{height:6px}.progress.labeled{margin-bottom:var(--s5)}.progress .fill{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-full);background:linear-gradient(90deg,color-mix(in srgb,var(--c) 55%,transparent),var(--c));box-shadow:0 0 14px color-mix(in srgb,var(--c) 55%,transparent)}.progress.safe,.progress .fill.safe{--c: var(--safe)}.progress.close,.progress .fill.close{--c: var(--close)}.progress.risk,.progress .fill.risk{--c: var(--risk)}.progress .marker{font-style:normal;position:absolute;top:-4px;width:2px;height:18px;margin-left:-1px;border-radius:2px;background:var(--tx);opacity:.8}.progress.thin .marker{top:-3px;height:12px}.progress .marker span{position:absolute;top:20px;left:50%;transform:translate(-50%);font-size:.75rem;line-height:1rem;color:var(--tx3);white-space:nowrap}.progress.thin .marker span{top:14px}.stats{display:grid;grid-template-columns:repeat(var(--cols, 3),1fr);padding:14px var(--s1)}.stat{appearance:none;border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;padding:0 var(--s1);min-width:0;color:var(--tx);font:inherit}div.stat{cursor:default}.stat+.stat{border-left:1px solid var(--stroke)}.stat .v{order:-1;font:300 1.1875rem/1.625rem var(--display);letter-spacing:-.02em;white-space:nowrap}.stat .v small{font-size:.55em;color:var(--tx3);margin-left:1px;font-family:var(--font);font-weight:400;letter-spacing:0}.stat .k,.stat .s{font-size:.75rem;line-height:1rem;color:var(--tx3)}.stats.inset{margin:calc(-1 * var(--s4)) calc(-1 * var(--s4)) var(--s4);border-bottom:1px solid var(--stroke)}.banner{--c: var(--tx2);display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) 14px;border-radius:20px;color:var(--tx);appearance:none;width:100%;text-align:left;font-size:.875rem;line-height:1.25rem;background:var(--card);border:1px solid var(--stroke);box-shadow:var(--edge)}.banner>.icon{margin-top:1px;color:var(--c)}.banner.warning{--c: var(--close);background:color-mix(in srgb,var(--close) 12%,var(--card));border-color:color-mix(in srgb,var(--close) 30%,transparent)}.banner>span{flex:1;min-width:0}button.banner{cursor:pointer;min-height:48px;align-items:center}button.banner>.icon{margin-top:0}main>.banner{margin-top:var(--s2)}.search{position:relative;display:flex;align-items:center;height:44px;border-radius:var(--r-full);background:var(--chip);border:1px solid var(--stroke)}.search:focus-within{border-color:var(--accent)}.search>.icon{position:absolute;left:14px;width:20px;height:20px;color:var(--tx3);pointer-events:none}.search input{height:42px;border:none;background:none;border-radius:var(--r-full);padding:0 44px;box-shadow:none}.search input::-webkit-search-cancel-button{display:none}.search .iconbtn{position:absolute;right:0;color:var(--tx2)}.avatar{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--card-hi);border:1px solid var(--stroke);color:var(--tx);font-size:.875rem;font-weight:600}.avatar.large{width:64px;height:64px;font-size:1.125rem}.semester{position:relative;display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 10px 0 12px;border-radius:var(--r-full);background:var(--chip);border:1px solid var(--stroke);color:var(--tx2);font-size:.78125rem;font-weight:500;cursor:pointer;white-space:nowrap}.semester .icon{width:14px;height:14px}.semester select{position:absolute;inset:0;opacity:0;cursor:pointer;height:auto;padding:0;border:none}.menu-anchor{position:relative}.menu-layer{position:fixed;inset:0;z-index:40}.popmenu{position:absolute;z-index:41;right:0;top:calc(100% + 6px);min-width:224px;padding:var(--s1) 0;border-radius:18px;background:var(--float);border:1px solid var(--stroke);box-shadow:0 16px 40px #00000059;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.popmenu button{appearance:none;border:none;background:none;cursor:pointer;width:100%;display:flex;align-items:center;gap:var(--s3);min-height:46px;padding:0 var(--s4);text-align:left;color:var(--tx);font-size:.875rem}.popmenu button:active{background:var(--card-hi)}.popmenu .icon{color:var(--tx2);width:20px;height:20px}.popmenu .mark{margin-left:auto;color:var(--accent-ink)}.popmenu hr{border:none;height:1px;background:var(--stroke);margin:var(--s1) 0}.overlay{position:fixed;inset:0;z-index:50;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:var(--s5);animation:fade var(--dur) var(--ease)}.overlay.bottom{align-items:flex-end;padding:0}.dialog{width:100%;max-width:360px;padding:var(--s5) var(--s5) var(--s3);border-radius:var(--r-md);background:var(--float);border:1px solid var(--stroke);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.dialog h2{font:500 1.25rem/1.625rem var(--display);margin-bottom:var(--s3)}.dialog p{color:var(--tx2)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--s2);margin:var(--s4) calc(-1 * var(--s2)) 0 0}.dialog.form .dialog-actions{margin-top:0}.dialog .pp-error{color:var(--risk);font-size:.875rem}.pp-forgot{margin-right:auto}.sheet{width:100%;max-width:440px;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--float);border:1px solid var(--stroke);border-bottom:0;border-radius:var(--r-md) var(--r-md) 0 0;padding:var(--s2) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom,0px));animation:rise var(--dur) var(--ease);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.sheet-grab{width:36px;height:4px;border-radius:var(--r-full);background:var(--tx3);opacity:.5;margin:0 auto var(--s4)}@keyframes rise{0%{transform:translateY(24px);opacity:0}}.form{display:flex;flex-direction:column;gap:var(--s3)}.field{display:flex;flex-direction:column;gap:var(--s1);font-size:.75rem;line-height:1rem;font-weight:500;color:var(--tx3)}.check{display:flex;align-items:flex-start;gap:var(--s3);cursor:pointer;min-height:44px}.check input{width:20px;height:20px;margin:2px 0 0;padding:0;flex:none;accent-color:var(--accent);box-shadow:none}.check span{display:flex;flex-direction:column;gap:2px;color:var(--tx);font-size:.875rem}.check small{color:var(--tx3);font-size:.75rem;line-height:1rem}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.pwfield{position:relative;display:block}.pwfield input{padding-right:48px}.pwfield .iconbtn{position:absolute;right:0;top:0;color:var(--tx2)}
