@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/85fcf895b86d74a6-s.1qlvuf-h9_nww.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5307092570128b5a-s.p.3s80slo4q4lah.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b67966e0b83b2cd0-s.p.2jrdrem4nuvb1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.M1dS7q_className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.M1dS7q_variable{--font-display:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/c7f47671e39f7787-s.p.3wn_q526zaolu.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/f06bf9da926bae75-s.p.3uuun_-7zsf1g.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Fallback;src:local(Arial);ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.0%;size-adjust:102.74%}.tWdfiW_className{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.tWdfiW_variable{--font-body:"Instrument Sans", "Instrument Sans Fallback"}
:root{--bg:#f5f3ef;--glow:#a8781a1a;--surface:#fff;--surface-2:#efece6;--text:#1c1a16;--muted:#6f6a60;--line:#281e0a14;--line-strong:#281e0a24;--accent:#a8781a;--on-accent:#fff;--green:#2e9e5b;--yellow:#b8860b;--red:#d64545;--shadow:0 1px 2px #281e0a0f, 0 8px 24px #281e0a14;--hour:56px;--ease:cubic-bezier(.22, 1, .36, 1)}@media (prefers-color-scheme:dark){:root{--bg:#0e1013;--glow:#e8c17017;--surface:#17191e;--surface-2:#1f2228;--text:#f1ede5;--muted:#9d978b;--line:#fff0d212;--line-strong:#fff0d221;--accent:#e8c170;--on-accent:#1a1300;--green:#5fd38d;--yellow:#f2c14e;--red:#f06e6e;--shadow:0 1px 2px #0000004d, 0 10px 30px #00000059}}*{box-sizing:border-box}html,body{margin:0}body{min-height:100dvh;color:var(--text);background:radial-gradient(900px 420px at 12% -8%, var(--glow), transparent 70%), var(--bg);font-family:var(--font-body), system-ui, sans-serif;-webkit-font-smoothing:antialiased;background-attachment:fixed}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login{place-items:center;min-height:100dvh;padding:16px;display:grid}.login-card{background:var(--surface);width:min(360px,100%);box-shadow:var(--shadow);border-radius:24px;gap:18px;padding:36px;display:grid}.login-card h1{font-family:var(--font-display), serif;letter-spacing:-.02em;margin:0 0 6px;font-size:40px;font-weight:500}.login-card button{background:var(--accent);color:var(--on-accent);cursor:pointer;transition:transform .15s var(--ease), filter .15s;border:0;border-radius:14px;padding:13px;font-weight:600}.login-card button:hover{filter:brightness(1.06)}.login-card button:active{transform:scale(.98)}.login-error{color:var(--red);margin:0;font-size:14px}.planner{max-width:1080px;margin:0 auto;padding:36px 24px 64px}.top{align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.date{font-family:var(--font-display), serif;letter-spacing:-.02em;margin:14px 0 0;font-size:44px;font-weight:450;line-height:1.05}.date small{font-family:var(--font-body), sans-serif;letter-spacing:0;color:var(--muted);margin-top:6px;font-size:15px;font-weight:450;display:block}.top-side{justify-items:end;gap:4px;margin-left:auto;padding-bottom:6px;display:grid}.link{cursor:pointer;color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:13px;font-weight:550;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .2s}.link:hover{text-decoration-color:currentColor}.pills{animation:rise .36s var(--ease) backwards;flex-wrap:wrap;gap:8px;margin:-12px 0 24px;display:flex}.pill{background:var(--surface);box-shadow:0 0 0 1px var(--line);color:var(--muted);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:550}.pill.off{background:color-mix(in srgb, var(--green) 14%, var(--surface));box-shadow:0 0 0 1px color-mix(in srgb, var(--green) 34%, transparent);color:var(--text)}.summary{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:14px}.summary b{color:var(--text);font-weight:600}.seg{background:var(--surface-2);border-radius:999px;grid-template-columns:1fr 1fr;padding:4px;display:inline-grid;position:relative}.seg:before{content:"";background:var(--surface);width:calc(50% - 4px);transition:transform .32s var(--ease);border-radius:999px;position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 1px 2px #00000024}.seg[data-active="1"]:before{transform:translate(100%)}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:7px 20px;font-size:14px;font-weight:550;transition:color .2s;position:relative}.seg button[aria-selected=true]{color:var(--text)}.cols{grid-template-columns:300px 1fr;align-items:start;gap:36px;display:grid}.day-view{animation:day-in .34s var(--ease)}.day-view[data-dir=back]{animation-name:day-in-back}@keyframes day-in{0%{opacity:0;transform:translate(14px)}}@keyframes day-in-back{0%{opacity:0;transform:translate(-14px)}}.day-view[data-stale=true]{opacity:.6;transition:opacity .2s}.label{color:var(--muted);margin:0 0 12px;font-size:13px;font-weight:550}.list{gap:8px;display:grid}.side{position:sticky;top:24px}@media (max-width:800px){.cols{grid-template-columns:1fr;gap:28px}.date{font-size:34px}.side{position:static}}.chip{background:var(--surface);box-shadow:0 0 0 1px var(--line);-webkit-user-select:none;user-select:none;touch-action:none;cursor:grab;transition:transform .2s var(--ease), box-shadow .2s, opacity .25s;animation:rise .36s var(--ease) backwards;border-radius:16px;align-items:center;gap:12px;padding:11px 12px 11px 11px;display:flex}.chip:hover{box-shadow:0 0 0 1px var(--line-strong), var(--shadow);transform:translateY(-1px)}.chip:active{cursor:grabbing;transform:scale(.985)}.chip.off .body{opacity:.5}.chip.done{cursor:default}.chip.done:hover{box-shadow:0 0 0 1px var(--line);transform:none}.chip.dragging{opacity:.25}.chip .body{flex:1;min-width:0;transition:opacity .25s}.chip .name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;display:block;overflow:hidden}.chip .meta{color:var(--muted);align-items:center;gap:6px;margin-top:1px;font-size:12.5px;display:flex}.chip .meta i{border-radius:50%;flex:none;width:6px;height:6px}.chip .handle{color:var(--muted);opacity:0;letter-spacing:-2px;font-size:14px;transition:opacity .2s}.chip:hover .handle{opacity:.55}.s-green{background:var(--green)}.s-yellow{background:var(--yellow)}.s-red{background:var(--red)}.t-yellow{color:var(--yellow)}.t-red{color:var(--red)}.tick{border:2px solid var(--line-strong);cursor:pointer;width:26px;height:26px;transition:background .2s, border-color .2s, transform .2s var(--ease);background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.tick:hover{border-color:var(--accent);transform:scale(1.06)}.tick svg{width:14px;height:14px;stroke:var(--on-accent);stroke-width:2.6px;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20px;transition:stroke-dashoffset .28s var(--ease)}.tick[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.tick[aria-checked=true] svg{stroke-dashoffset:0}.tick.is-done{background:var(--green);border-color:var(--green);cursor:default}.tick.is-done svg{stroke-dashoffset:0;stroke:var(--bg)}.empty{color:var(--muted);margin:4px 2px;font-size:14px}.day{grid-template-columns:44px 1fr;display:grid}.gutter{position:relative}.gutter span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;position:absolute;right:12px;transform:translateY(-50%)}.track{background:var(--surface);box-shadow:0 0 0 1px var(--line);-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair;border-radius:20px;position:relative;overflow:hidden}.row{height:var(--hour);border-top:1px solid var(--line);pointer-events:none;position:absolute;left:0;right:0}.row:first-child{border-top:0}.row:after{content:"";border-top:1px dashed var(--line);opacity:.6;position:absolute;top:50%;left:0;right:0}.now{border-top:2px solid var(--red);pointer-events:none;z-index:4;height:0;position:absolute;left:0;right:0}.now:before{content:"";background:var(--red);border-radius:50%;width:10px;height:10px;position:absolute;top:-6px;left:-1px}.block{z-index:2;touch-action:none;cursor:grab;animation:pop .3s var(--ease) backwards;padding:1.5px 4px;position:absolute}.block>.in{background:var(--fill);height:100%;box-shadow:inset 0 0 0 1px var(--edge);transition:box-shadow .2s, transform .2s var(--ease);border-radius:12px;padding:7px 26px 6px 11px;position:relative;overflow:hidden}.block:hover>.in{box-shadow:inset 0 0 0 1px var(--edge), var(--shadow);transform:translateY(-1px)}.block:active{cursor:grabbing}.block .title{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:7px;font-size:14px;font-weight:600;display:flex;overflow:hidden}.block .title i{border-radius:50%;flex:none;width:7px;height:7px}.block .time{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:1px;font-size:11.5px;display:block}.block.short .in{align-items:center;gap:8px;padding-top:3px;padding-bottom:2px;display:flex}.block.short .time{margin:0}.block.habit{--fill:color-mix(in srgb, var(--tone) 15%, var(--surface));--edge:color-mix(in srgb, var(--tone) 34%, transparent)}.tone-green{--tone:var(--green)}.tone-yellow{--tone:var(--yellow)}.tone-red{--tone:var(--red)}.block.entry{--fill:color-mix(in srgb, var(--accent) 14%, var(--surface));--edge:color-mix(in srgb, var(--accent) 34%, transparent)}.block.lesson{z-index:1;cursor:default;pointer-events:none;--fill:repeating-linear-gradient(135deg, transparent 0 7px, var(--line) 7px 8px), var(--surface-2);--edge:var(--line);animation-name:fade}.block.lesson .title{color:color-mix(in srgb, var(--text) 78%, transparent);font-weight:550}.block.lesson .room{color:var(--muted);font-weight:450}.block.lesson .subject{text-overflow:ellipsis;overflow:hidden}.block.lesson .tag{background:color-mix(in srgb, var(--text) 9%, transparent);color:var(--muted);border-radius:999px;flex:none;padding:1px 7px;font-size:11px;font-weight:600}.block.lesson.is-cancelled{opacity:.55;--fill:transparent}.block.lesson.is-cancelled .subject{text-decoration:line-through}.block.lesson.is-sub{--edge:color-mix(in srgb, var(--accent) 45%, transparent)}.block.lesson.is-sub .tag{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}.block.gcal.fixed{cursor:default}.block.gcal{--fill:color-mix(in srgb, var(--text) 6%, var(--surface));--edge:var(--line-strong)}.rename{background:var(--surface);width:100%;color:var(--text);font:inherit;outline:2px solid var(--accent);border:0;border-radius:6px;margin:0 -4px;padding:0 4px;font-size:14px;font-weight:600;display:block}.block.gcal .title i{background:var(--muted)}.lesson-menu{z-index:7;background:var(--surface);width:min(320px,100% - 24px);box-shadow:0 0 0 1px var(--line-strong), var(--shadow);cursor:default;animation:pop .2s var(--ease);transform-origin:0 0;border-radius:16px;gap:12px;padding:12px 14px;display:grid;position:absolute;left:12px}.lm-part{gap:7px;display:grid}.lm-part+.lm-part{border-top:1px solid var(--line);padding-top:12px}.lm-row{align-items:baseline;gap:10px;padding-right:22px;display:flex}.lm-time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.lm-title{font-size:14px;font-weight:600}.lm-title.struck{color:var(--muted);text-decoration:line-through}.lm-note{color:var(--muted);margin:-4px 0 0;font-size:12px}.lm-actions,.lm-form{flex-wrap:wrap;gap:6px;display:flex}.lm-btn{cursor:pointer;background:var(--surface-2);transition:filter .15s, transform .15s var(--ease);border:0;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:550}.lm-btn:hover{filter:brightness(.96)}.lm-btn:active{transform:scale(.97)}.lm-btn.primary{background:var(--accent);color:var(--on-accent)}.lm-form input,.off-form input{background:var(--surface-2);min-width:0;color:var(--text);font:inherit;border:0;border-radius:10px;padding:7px 10px;font-size:13px}.lm-form input[name=title]{flex:120px}.lm-form input[name=room]{width:64px}.lesson-menu .lm-close{opacity:1;top:8px;right:8px}.sheet{background:var(--surface);width:min(440px,100% - 32px);max-height:min(640px,100dvh - 48px);color:var(--text);box-shadow:var(--shadow);animation:pop .24s var(--ease);border:0;border-radius:24px;padding:0}.sheet::backdrop{background:#0006;animation:.2s fade}.sheet-in{gap:16px;padding:22px 22px 16px;display:grid}.sheet header{justify-content:space-between;align-items:center;display:flex}.sheet h2{font-family:var(--font-display), serif;letter-spacing:-.01em;margin:0;font-size:24px;font-weight:500}.sheet .x{opacity:1;flex:none;width:28px;height:28px;font-size:18px;position:static}.off-form{grid-template-columns:1fr 1fr;align-items:end;gap:10px;display:grid}.off-form label{color:var(--muted);gap:4px;font-size:12px;display:grid}.off-form .wide,.off-form button{grid-column:1/-1}.off-form input{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;padding:9px 10px;font-size:14px}@media (prefers-color-scheme:dark){.off-form input{--lightningcss-light: ;--lightningcss-dark:initial}}.off-form button{padding:10px;font-size:14px}.off-list{margin:0;padding:0;list-style:none;display:grid}.off-list li{border-top:1px solid var(--line);align-items:center;gap:12px;padding:8px 0;font-size:14px;display:flex}.off-date{font-variant-numeric:tabular-nums;width:132px;color:var(--muted);flex:none}.off-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:550;overflow:hidden}.off-empty{color:var(--muted)}.block.moving{opacity:.3}.block.preview,.block.select{pointer-events:none;z-index:5;animation:none}.block.preview .in,.block.select .in{background:color-mix(in srgb, var(--accent) 10%, transparent);box-shadow:inset 0 0 0 1.5px var(--accent)}.block.select .time,.block.preview .time{color:var(--accent);font-size:12px;font-weight:600}.x{width:20px;height:20px;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:15px;line-height:1;transition:opacity .15s,background .15s;display:grid;position:absolute;top:4px;right:5px}.block:hover .x,.x:focus-visible{opacity:1}.x:hover{background:color-mix(in srgb, var(--text) 12%, transparent);color:var(--text)}.grip{cursor:ns-resize;height:10px;position:absolute;bottom:1px;left:4px;right:4px}.grip:after{content:"";background:var(--text);opacity:0;border-radius:2px;width:22px;height:3px;margin-left:-11px;transition:opacity .15s;position:absolute;bottom:6px;left:50%}.block:hover .grip:after{opacity:.22}.draft{z-index:6;cursor:default;animation:pop .2s var(--ease)}.draft .in{background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent), var(--shadow);padding:0}.draft input{width:100%;height:100%;min-height:26px;color:var(--text);font:inherit;background:0 0;border:0;outline:none;padding:0 12px;font-size:14px;font-weight:550}.draft input::placeholder{color:var(--muted);font-weight:450}.ghost{z-index:20;pointer-events:none;background:var(--surface);box-shadow:0 0 0 1px var(--line-strong), 0 14px 34px #0000004d;border-radius:14px;padding:10px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%,-50%)rotate(-2.5deg)scale(1.03)}.hint+.hint{margin-top:6px}.hint{color:var(--muted);margin:14px 0 0 44px;font-size:13px}.error{background:color-mix(in srgb, var(--red) 12%, var(--surface));color:var(--red);border-radius:12px;margin:0 0 16px;padding:10px 14px;font-size:14px}.skel{background:var(--surface);box-shadow:0 0 0 1px var(--line);border-radius:16px;height:54px;animation:1.4s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.5}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes pop{0%{opacity:0;transform:scale(.96)}}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
