:root{--bg:#f4efe1;--panel:#fffaf0;--ink:#1d1b2e;--muted:#6b6680;--line:#e2d9c3;--line-strong:#cbbf9f;--shadow:#1d1b2e;--accent:#ff6b6b;--accent-2:#4dabf7;--good:#2b8a3e;--danger:#e03131;--today:#ffd43b;--weekend:#fbf3de;--window:#cfe8ff;--hatch:#d8cfb8;--on-color:#1d1b2e;--font:"DotGothic16", ui-monospace, "Cascadia Mono", monospace;--font-display:"Pixelify Sans", ui-monospace, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#15141d;--panel:#201e2c;--ink:#f1ebdc;--muted:#a39db5;--line:#2f2c40;--line-strong:#454059;--shadow:#000;--good:#69db7c;--danger:#ff8787;--weekend:#262336;--window:#9cc9f2;--hatch:#3b3750;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#15141d;--panel:#201e2c;--ink:#f1ebdc;--muted:#a39db5;--line:#2f2c40;--line-strong:#454059;--shadow:#000;--good:#69db7c;--danger:#ff8787;--weekend:#262336;--window:#9cc9f2;--hatch:#3b3750;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background-color:var(--bg);background-image:radial-gradient(var(--line) 1px, transparent 1px);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:none;font-synthesis-weight:none;background-size:16px 16px;font-size:16px;line-height:1.35}h1,h2,h3,.btn,.tabs button,.name-tag,.toggle label,.bar-label,.day-head strong,.cal-days,label,legend{font-family:var(--font-display)}h1,h2,h3{letter-spacing:.02em;margin:0;font-weight:700}button,input,select,textarea{font:inherit;color:inherit}.sprite{vertical-align:middle;image-rendering:pixelated;flex:none;display:inline-block}.muted{color:var(--muted)}.error{color:var(--danger);margin:.25rem 0}.good{color:var(--good);margin:.25rem 0 0}.spacer{flex:1}.panel{background:var(--panel);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--shadow)}.btn{border:3px solid var(--ink);background:var(--panel);box-shadow:3px 3px 0 var(--shadow);cursor:pointer;align-items:center;gap:.4rem;padding:.45rem .9rem;font-weight:600;transition:transform 60ms step-end;display:inline-flex}.btn:hover{background:var(--weekend)}.btn:active:not(:disabled){box-shadow:none;transform:translate(3px,3px)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);color:#1d1b2e}.btn.danger{color:var(--danger)}.btn.small{padding:.2rem .6rem}.btn.ghost{box-shadow:none}.btn:focus-visible,.icon-btn:focus-visible,.bar:focus-visible,.tabs button:focus-visible,.link:focus-visible,.name-tag:focus-visible,.swatch-btn:focus-visible{outline:3px dashed var(--accent-2);outline-offset:2px}input,select,textarea{border:3px solid var(--ink);background:var(--bg);border-radius:0;width:100%;min-width:0;padding:.4rem .5rem}input:focus,select:focus,textarea:focus{box-shadow:3px 3px 0 var(--accent-2);outline:none}label{flex-direction:column;gap:.2rem;font-weight:600;display:flex}.row{gap:.6rem;display:flex}.row>*{flex:1;min-width:0}.chip{border:2px solid var(--ink);background:var(--bg);padding:0 .4rem;font-size:.85rem;display:inline-block}.name-tag{background:var(--c,#ccc);color:var(--on-color);border:2px solid var(--ink);padding:0 .4rem;font-weight:700;display:inline-block}button.name-tag{cursor:pointer}.name-tag.big{box-shadow:3px 3px 0 var(--shadow);padding:.25rem .6rem}.login-wrap{place-items:center;min-height:100vh;padding:16px;display:grid}.login{flex-direction:column;gap:.9rem;width:100%;max-width:360px;padding:1.5rem;display:flex}.login h1{font-size:2.2rem}.login p{margin:0}.login .btn{justify-content:center;font-size:1.1rem}.login-road{border-bottom:6px dashed var(--line-strong);height:64px;position:relative;overflow:hidden}.login-car{animation:6s steps(40,end) infinite drive;position:absolute;bottom:6px}@keyframes drive{0%{left:-70px}to{left:100%}}@media (prefers-reduced-motion:reduce){.login-car{animation:none;left:40%}}.app{flex-direction:column;gap:14px;max-width:1400px;margin:0 auto;padding:16px;display:flex}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{align-items:center;gap:.7rem;display:flex}.brand h1{font-size:1.8rem}.me{align-items:center;gap:.6rem;display:flex}.picker{position:relative}.picker-pop{z-index:20;width:200px;padding:.6rem;position:absolute;top:calc(100% + 8px);right:0}.picker-pop p{margin:0 0 .4rem}.swatches{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.swatch-btn{aspect-ratio:1;border:3px solid var(--ink);cursor:pointer}.swatch-btn.on{box-shadow:inset 0 0 0 3px var(--panel)}.weeknav{flex-wrap:wrap;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.weeknav-label{text-align:center;flex-direction:column;min-width:7.5rem;line-height:1.1;display:flex}.weeknav-label strong{font-size:1.25rem}.banner{border:3px solid var(--danger);background:var(--panel);padding:.5rem .8rem}.legend{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.legend-keys{flex-wrap:wrap;align-items:center;gap:.3rem;margin-left:auto;font-size:.9rem;display:inline-flex}.hatch-key{border:2px solid var(--line-strong);background:repeating-linear-gradient(45deg, var(--hatch) 0 3px, transparent 3px 6px);width:14px;height:14px;display:inline-block}.layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}@media (width<=960px){.layout{grid-template-columns:minmax(0,1fr)}}.grid-wrap{padding:0;overflow:hidden}.corner{border-bottom:3px solid var(--ink)}.day-head{border-bottom:3px solid var(--ink);border-left:2px solid var(--line);text-align:center;flex-direction:column;min-width:0;padding:.4rem .3rem;line-height:1.15;display:flex}.day-head span{color:var(--muted);font-size:.85rem}.day-head small{color:var(--good);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.day-head.weekend{background:var(--weekend)}.day-head.today{background:var(--today);color:#1d1b2e}.day-head.today span,.day-head.today small{color:#1d1b2e}.hours{flex-direction:column;display:flex}.hour-label{color:var(--muted);text-align:right;padding-right:4px;font-size:.75rem;transform:translateY(-.5em)}.hour-label:first-child{transform:none}.day-col{border-left:2px solid var(--line);background-image:linear-gradient(var(--line) 1px, transparent 1px);cursor:cell;min-width:0;position:relative}.day-col.weekend{background-color:var(--weekend)}.sidebar{flex-direction:column;gap:16px;display:flex}.side{flex-direction:column;gap:.6rem;padding:.9rem;display:flex}.side h2{align-items:center;gap:.5rem;font-size:1.2rem;display:flex}.side h3{margin-top:.4rem;font-size:1rem}.side p{margin:0}.side-toggle{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0;display:flex}.match{border:2px solid var(--ink);cursor:pointer;background:var(--bg);flex-direction:column;gap:.3rem;padding:.5rem .6rem;display:flex}.match:hover{box-shadow:3px 3px 0 var(--shadow)}.match.open{border-style:dashed}.match-head{flex-wrap:wrap;gap:.3rem;display:flex}.match ul{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.match li:before{content:"▸ ";color:var(--muted)}.seats{float:right;color:var(--good);font-size:.85rem}.seats.full{color:var(--danger)}.lecture-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.lecture-list li{align-items:center;gap:.4rem;font-size:.9rem;display:flex}.lecture-list .time{white-space:nowrap;color:var(--muted)}.lecture-list .title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.icon-btn{border:2px solid var(--ink);background:var(--panel);cursor:pointer;place-items:center;width:26px;height:26px;font-size:.8rem;display:grid}.icon-btn:hover{color:var(--danger)}.lecture-form{border-top:2px dashed var(--line-strong);flex-direction:column;gap:.5rem;padding-top:.7rem;display:flex}.lecture-form .btn{align-self:flex-start}.dialog{color:var(--ink);width:min(420px,100vw - 32px);box-shadow:6px 6px 0 var(--shadow);padding:0}.dialog::backdrop{background:#15141d8c}.dialog fieldset{border:0;flex-direction:column;gap:.7rem;min-width:0;margin:0;padding:0;display:flex}.dialog-head{align-items:center;gap:.6rem;display:flex}.dialog-head h2{font-size:1.3rem}.swatch{background:var(--c);border:3px solid var(--ink);flex:none;width:18px;height:18px}.dialog-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.toggle{border:3px solid var(--ink);display:flex}.toggle label{cursor:pointer;background:var(--bg);flex-direction:row;flex:1;justify-content:center;padding:.35rem .4rem}.toggle label+label{border-left:3px solid var(--ink)}.toggle label.on{background:var(--accent-2);color:#1d1b2e;font-weight:700}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle label:has(input:focus-visible){outline:3px dashed var(--accent-2);outline-offset:-6px}.tabs{border:3px solid var(--ink);box-shadow:3px 3px 0 var(--shadow);display:flex}.tabs button{background:var(--panel);cursor:pointer;border:0;padding:.35rem .9rem;font-weight:600}.tabs button+button{border-left:3px solid var(--ink)}.tabs button.on{background:var(--accent-2);color:#1d1b2e}@media (width<=700px){.tabs{order:3;width:100%}.tabs button{flex:1}}.calendar{-webkit-user-select:none;user-select:none;padding:0;overflow:hidden}.cal-days{border-bottom:3px solid var(--ink);text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));font-weight:700;display:grid}.cal-days>div{padding:.35rem 0}.cal-days>div+div{border-left:2px solid var(--line)}.cal-days .weekend{background:var(--weekend)}.cal-week{grid-template-columns:repeat(7,minmax(0,1fr));row-gap:3px;min-height:118px;padding-bottom:6px;display:grid;position:relative}.cal-week+.cal-week{border-top:2px solid var(--line-strong)}.cal-day{cursor:cell;flex-direction:column;grid-row:1/-1;gap:1px;min-width:0;margin-bottom:-6px;padding:4px 6px;display:flex}.cal-day+.cal-day,.cal-day:not(:first-child){border-left:2px solid var(--line)}.cal-day.weekend{background:var(--weekend)}.cal-day.past{opacity:.55}.cal-day.sel{background:color-mix(in srgb, var(--accent-2) 22%, transparent)}.cal-date{font-size:.95rem;font-weight:700;line-height:1.1}.cal-day.today .cal-date{background:var(--today);color:#1d1b2e;border:2px solid var(--ink);align-self:flex-start;padding:0 4px}.cal-uni{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.bar{z-index:1;border:2px solid var(--ink);background:var(--c);min-width:0;color:var(--on-color);box-shadow:2px 2px 0 var(--shadow);cursor:pointer;text-align:left;align-items:center;gap:5px;margin:0 3px;padding:0 6px;font-size:.85rem;display:flex;position:relative;overflow:hidden}.bar.request{background:repeating-linear-gradient(135deg, var(--c) 0 6px, color-mix(in srgb, var(--c) 45%, var(--panel)) 6px 12px);border-style:dashed}.bar.cut-l{border-left-width:0;margin-left:0;padding-left:8px}.bar.cut-r{border-right-width:0;margin-right:0}.bar:hover{box-shadow:3px 3px 0 var(--shadow);transform:translate(-1px,-1px)}.bar-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:700;overflow:hidden}.bar-label small{font-weight:400}.bar-members{flex:none;align-items:center;gap:2px;display:flex}.bar-members i{background:var(--c);border:2px solid var(--ink);width:10px;height:10px}.bar-members i.vielleicht{opacity:.7;border-style:dashed}.bar-members small{margin-left:3px;font-weight:700}.bar-members small.over{color:#c92a2a}.key{border:2px solid var(--ink);vertical-align:middle;background:var(--accent);width:22px;height:12px;display:inline-block}.key.request{background:repeating-linear-gradient(135deg, var(--accent-2) 0 4px, var(--panel) 4px 8px);border-style:dashed}@media (width<=600px){.bar{padding:0 3px;font-size:.72rem}.bar .sprite,.bar-label small,.bar-members i{display:none}.cal-uni{font-size:.6rem}.cal-day{padding:3px}}.tt-filter{border-bottom:3px solid var(--ink);flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem .6rem;display:flex}.name-tag.off{opacity:.55}.name-tag.on{box-shadow:2px 2px 0 var(--shadow)}.name-tag.vielleicht{border-style:dashed}.week-grid{grid-template-columns:34px repeat(7,minmax(0,1fr));grid-template-rows:auto var(--grid-h);display:grid}.lecture-block{z-index:1;background:repeating-linear-gradient(45deg, var(--hatch) 0 4px, var(--panel) 4px 8px);border:2px solid var(--line-strong);pointer-events:none;flex-direction:column;padding:2px 4px;font-size:.75rem;line-height:1.15;display:flex;position:absolute;overflow:hidden}.lecture-block.personal{background:color-mix(in srgb, var(--c) 55%, var(--panel));border-color:var(--ink);color:var(--ink)}.lecture-block strong,.lecture-block span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lecture-block span{color:var(--muted)}.dot{background:var(--c);border:2px solid var(--ink);flex:none;width:12px;height:12px}textarea{resize:vertical;font-size:.9rem;line-height:1.4}@media (width<=600px){.week-grid{grid-template-columns:26px repeat(7,minmax(0,1fr))}.lecture-block{padding:1px 2px;font-size:.62rem}}.dialog{width:min(460px,100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto}.dialog-head{padding:1rem 1rem 0}.dialog-head h2{flex:1}.dialog-body{flex-direction:column;gap:.75rem;padding:1rem;display:flex}.dialog>.error{padding:0 1rem 1rem}.dialog fieldset.row{flex-flow:wrap;gap:.5rem}.dialog fieldset.row>input{flex:140px}.dialog legend{margin-bottom:.2rem;padding:0;font-weight:600}.small{font-size:.85rem}.dialog-body p{margin:0}.trip-when{border:2px solid var(--ink);background:var(--bg);align-items:center;gap:.8rem;padding:.6rem .7rem;display:flex}.trip-when>div{flex-direction:column;line-height:1.2;display:flex}.trip-when .arrow{font-size:1.4rem}.note{font-style:italic}.block{border-top:2px dashed var(--line-strong);flex-direction:column;align-items:flex-start;gap:.45rem;padding-top:.6rem;display:flex}.block h3{align-items:center;gap:.4rem;font-size:1rem;display:flex}.block.join{align-items:stretch}.members,.suggestions{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.member-note{color:var(--muted);margin-top:1px;font-size:.85rem;font-style:italic;display:block}.link{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.link:hover{text-decoration:underline}.icon-btn.close{flex:none}.uni-short{display:none}@media (width<=600px){.uni-lbl{display:none}.uni-short{display:inline}}input,select,textarea,.bar-label small{font-family:var(--font)}.tt-bar{border-bottom:3px solid var(--ink);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem .6rem;display:flex}.tt-bar .tt-filter{border:0;padding:0}.lecture-block.weekly{border-style:dashed}.day-head .allday{background:var(--today);color:#1d1b2e;border:2px solid var(--ink);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;padding:0 3px;font-size:.68rem;display:block;overflow:hidden}.tt-empty{border-top:2px dashed var(--line-strong);text-align:center;margin:0;padding:.6rem}.cal-item{border:2px solid var(--ink);background:var(--bg);flex-direction:column;gap:.2rem;padding:.45rem .55rem;display:flex}.cal-item-head{align-items:center;gap:.4rem;display:flex}.lecture-block strong{white-space:normal;overflow-wrap:anywhere}.layout3{grid-template-columns:225px minmax(0,1fr) 280px;align-items:start;gap:16px;display:grid}@media (width<=1250px){.layout3{grid-template-columns:215px minmax(0,1fr)}.layout3>.sidebar{grid-column:1/-1}}@media (width<=820px){.layout3{grid-template-columns:minmax(0,1fr)}}.rail{gap:.7rem}.rail-cal{border-bottom:2px dashed var(--line-strong);flex-direction:column;gap:.35rem;padding-bottom:.7rem;display:flex}.rail-cal.off .rail-head strong{color:var(--muted)}.rail-head{align-items:center;gap:.4rem;display:flex}.rail-head .check{flex:1}.check{cursor:pointer;flex-direction:row;align-items:center;gap:.45rem;font-weight:600}.check input{width:16px;height:16px;accent-color:var(--accent-2);flex:none;margin:0}.rail-head strong{font-size:1.1rem}.tracks{flex-direction:column;gap:.5rem;margin:0;padding:0 0 0 .3rem;list-style:none;display:flex}.track{flex-direction:column;gap:.15rem;display:flex}.track-row{align-items:center;gap:.45rem;display:flex}.track-name{font-family:var(--font-display);font-weight:600}.track.hidden .track-name,.track.hidden .modules{opacity:.45}.track.hidden .track-name{text-decoration:line-through}.swatch.hatch{background:repeating-linear-gradient(45deg, var(--hatch) 0 3px, var(--panel) 3px 6px)}.modules{margin:0 0 0 1.55rem;font-size:.78rem;line-height:1.3}.rail-editor{border:2px solid var(--ink);background:var(--bg);flex-direction:column;gap:.6rem;padding:.5rem;display:flex}.track-form{border-bottom:2px dashed var(--line-strong);flex-direction:column;gap:.35rem;padding-bottom:.5rem;display:flex}.track-form .row{flex-direction:column}.color-pick{flex-wrap:wrap;gap:4px;display:flex}.color-pick .swatch-btn{border-width:2px;width:20px;height:20px}.rail code{font-family:var(--font);overflow-wrap:anywhere;font-size:.72rem}.rail>.btn{align-self:flex-start}.cal-uni{flex-wrap:wrap;column-gap:0;display:flex}.uni-lbl{margin-right:.35em}.rail{flex-direction:column;gap:.6rem;padding:.7rem;display:flex}.rail-top{justify-content:space-between;align-items:center;display:flex}.rail-title{cursor:pointer;font-family:var(--font-display);background:0 0;border:0;padding:0;font-size:1.1rem;font-weight:700}.rail-cal{border:0;gap:.4rem;padding:0}.rail-head{gap:.3rem}.icon-btn.ghost{background:0 0;border-color:#0000}.icon-btn.ghost:hover{border-color:var(--ink)}.course-pill{text-align:left;border:2px solid var(--ink);background:var(--c);color:#1d1b2e;min-width:0;font-family:var(--font-display);cursor:pointer;box-shadow:2px 2px 0 var(--shadow);white-space:nowrap;text-overflow:ellipsis;flex:1;padding:.25rem .5rem;font-weight:700;overflow:hidden}.course-pill.off{background:var(--panel);color:var(--muted);box-shadow:none;text-decoration:line-through}.course-pill.on:before{content:"✓ "}.chips{flex-wrap:wrap;gap:4px;display:flex}.rail .chips{border-left:3px solid var(--line-strong);padding-left:.6rem}.chip-toggle{border:2px solid var(--ink);background:var(--c);color:#1d1b2e;font-family:var(--font-display);cursor:pointer;padding:1px 7px;font-size:.8rem}.chip-toggle.off{color:var(--muted);background:0 0;border-style:dashed}.chip-toggle:focus-visible,.course-pill:focus-visible,.wv-day:focus-visible{outline:3px dashed var(--accent-2);outline-offset:2px}.rail-editor{gap:.45rem}.rail-editor .link{align-items:center;gap:.35rem;display:inline-flex}.cal-lines{flex-direction:column;gap:1px;min-width:0;margin-top:auto;display:flex}.lec-line{border-left:4px solid var(--c);white-space:nowrap;text-overflow:ellipsis;color:var(--muted);padding-left:4px;font-size:.7rem;line-height:1.25;overflow:hidden}.lec-line b{color:var(--ink);font-weight:400}.lec-line.weekly{border-left-style:dotted}.lec-more{color:var(--muted);padding-left:8px;font-size:.66rem}.cal-day .cal-uni{margin-top:auto}.wv{padding:0;overflow:hidden}.wv-bar{border-bottom:3px solid var(--ink);flex-wrap:wrap;align-items:center;gap:.35rem;padding:.45rem .6rem;display:flex}.wv-grid{grid-template-columns:34px repeat(7,minmax(0,1fr));display:grid}.wv-head{border-bottom:2px solid var(--ink)}.wv-day{border:0;border-left:2px solid var(--line);cursor:pointer;background:0 0;flex-direction:column;align-items:center;min-width:0;padding:.35rem .2rem;line-height:1.15;display:flex}.wv-day:hover{background:color-mix(in srgb, var(--accent-2) 15%, transparent)}.wv-day strong{font-family:var(--font-display)}.wv-day span{color:var(--muted);font-size:.8rem}.wv-day small{color:var(--good);white-space:nowrap;font-size:.68rem}.wv-day.weekend{background:var(--weekend)}.wv-day.today strong{background:var(--today);color:#1d1b2e;border:2px solid var(--ink);padding:0 4px}.wv-allday{border-bottom:2px solid var(--line-strong);row-gap:3px;padding:4px 0}.wv-body{grid-template-rows:var(--h)}.wv-cols{cursor:cell;-webkit-user-select:none;user-select:none;grid-column:2/-1;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;position:relative}.wv-col{border-left:2px solid var(--line);background-image:linear-gradient(var(--line) 1px, transparent 1px);min-width:0;position:relative}.wv-col.weekend{background-color:var(--weekend)}.lecture-block{pointer-events:none}.lecture-block .abbr{display:none}@media (width<=1100px){.lecture-block .full{display:none}.lecture-block .abbr{display:block}}.wv-marker{z-index:3;text-align:left;border:2px solid var(--ink);background:var(--c);color:#1d1b2e;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;padding:0 3px;font-size:.68rem;position:absolute;left:0;right:0;overflow:hidden;transform:translateY(-50%)}.wv-now{background:var(--danger);z-index:2;pointer-events:none;height:2px;position:absolute;left:0;right:0}.wv-sel{z-index:4;background:color-mix(in srgb, var(--accent-2) 30%, transparent);border:2px dashed var(--accent-2);pointer-events:none;position:absolute;left:2px;right:2px}.wv-sel span{background:var(--accent-2);color:#1d1b2e;padding:0 3px;font-size:.7rem}.day-list{flex-direction:column;gap:4px;display:flex}.day-item{border:2px solid var(--ink);border-left:8px solid var(--c);background:var(--bg);text-align:left;align-items:center;gap:.5rem;min-width:0;padding:.25rem .5rem;font-size:.9rem;display:flex}.day-time{white-space:nowrap;color:var(--muted)}.day-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.trip-item{cursor:pointer}.trip-item:hover{box-shadow:2px 2px 0 var(--shadow)}.field-label{font-family:var(--font-display);font-weight:600}.weeknav .tabs{box-shadow:2px 2px 0 var(--shadow)}@media (width<=700px){.weeknav .tabs{order:0;width:auto}.weeknav .legend-keys{display:none}}.wv-day small{text-overflow:ellipsis;max-width:100%;overflow:hidden}@media (width<=600px){.wv-grid{grid-template-columns:26px repeat(7,minmax(0,1fr))}.wv-day span{font-size:.66rem}.wv-day small,.wv-marker{font-size:.56rem}}.rail-title{font-size:1.1rem}.rail-cal{flex-direction:column;gap:4px;display:flex}.rail-row{align-items:center;gap:4px;min-width:0;display:flex}.track-row{border-left:3px solid var(--line-strong);margin-left:.3rem;padding-left:.6rem}.track-row .chip-toggle{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.lec-line.exam b{color:var(--danger);font-weight:700}.lecture-block.exam{border:3px solid var(--danger)}.lecture-block.exam strong:before{content:"✎ ";color:var(--danger)}.day-item.exam{border-color:var(--danger)}.day-item.exam .day-title{color:var(--danger)}.check-row{text-align:left;cursor:pointer;width:100%;font-family:var(--font-display);background:0 0;border:2px solid #0000;align-items:center;gap:6px;min-width:0;padding:4px 6px;font-size:.9rem;display:flex}.check-row:hover:not(:disabled){border-color:var(--ink);background:var(--bg)}.check-row:focus-visible{outline:3px dashed var(--accent-2);outline-offset:1px}.check-row.strong{font-size:1rem;font-weight:700}.check-row.indent{border-left:3px solid var(--line-strong);width:calc(100% - .7rem);margin-left:.7rem}.check-row .box{border:2px solid var(--ink);background:var(--panel);flex:none;place-items:center;width:18px;height:18px;font-size:.8rem;font-weight:700;line-height:1;display:grid}.check-row.on .box{background:var(--ink);color:var(--panel)}.check-row .swatch{border-width:2px;width:12px;height:12px}.check-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.check-row .state{font-family:var(--font);color:var(--good);flex:none;font-size:.68rem}.check-row.off .check-label{color:var(--muted);text-decoration:line-through}.check-row.off .swatch{opacity:.35}.check-row.off .state{color:var(--muted)}.check-row:disabled{cursor:default;opacity:.45}.return-days{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.return-day{border:2px solid var(--ink);background:var(--bg);cursor:pointer;flex-direction:column;align-items:center;gap:1px;min-width:0;padding:4px 2px;line-height:1.15;display:flex}.return-day.weekend{background:var(--weekend)}.return-day strong{font-family:var(--font-display)}.return-day span{font-size:.78rem}.return-day small{white-space:nowrap;font-size:.66rem}.return-day small.uni{color:var(--danger)}.return-day small.free{color:var(--good)}.return-day:hover{box-shadow:2px 2px 0 var(--shadow)}.return-day.on{background:var(--accent-2);color:#1d1b2e;box-shadow:2px 2px 0 var(--shadow)}.return-day.on small{color:#1d1b2e}.return-day:focus-visible{outline:3px dashed var(--accent-2);outline-offset:2px}.other-date{flex-direction:row;align-items:center;gap:.5rem;font-weight:400}.other-date input{flex:1}.trip-summary{border:2px dashed var(--line-strong);margin:0;padding:.4rem .6rem;font-size:.9rem}@media (width<=480px){.return-days{grid-template-columns:repeat(3,minmax(0,1fr))}}.chip.leg{background:var(--accent-2);color:#1d1b2e;margin-left:4px;font-size:.72rem}.dropout{color:var(--danger)}p.dropout{border:2px dashed var(--danger);margin:0;padding:.35rem .5rem}.confirm{border:2px dashed var(--line-strong);flex-direction:column;gap:.4rem;padding:.5rem;display:flex}.confirm p{margin:0}.chip.maybe{color:#1d1b2e;background:#ffe8cc;border-style:dashed;border-color:#e8590c;margin-left:4px;font-size:.72rem}.main-col{flex-direction:column;min-width:0;display:flex}.parade{pointer-events:none;z-index:2;height:30px;margin-bottom:-3px;position:relative;container-type:inline-size}.walker{will-change:transform;animation:linear infinite patrol;position:absolute;bottom:0;left:0}.walker-face{animation:step-end infinite face}.critter{image-rendering:pixelated;display:block}.critter-frame.f0{animation:.5s step-end infinite frame-a}.critter-frame.f1{animation:.5s step-end infinite frame-b}@keyframes patrol{0%{transform:translate(0)}50%{transform:translate(calc(100cqw - 100%))}to{transform:translate(0)}}@keyframes face{0%{transform:scaleX(1)}50%,to{transform:scaleX(-1)}}@keyframes frame-a{0%{opacity:1}50%,to{opacity:0}}@keyframes frame-b{0%{opacity:0}50%,to{opacity:1}}.riders{align-items:flex-end;gap:3px;display:flex;position:absolute;bottom:100%;left:5px}.rider{animation:.6s step-end infinite bob}@keyframes bob{0%{transform:translateY(0)}50%,to{transform:translateY(-2px)}}.login-road{height:80px}@media (prefers-reduced-motion:reduce){.walker,.walker-face,.rider,.critter-frame{animation:none}.critter-frame.f1{opacity:0}}.poke-wrap{display:block;transform:scaleX(-1)}.poke{image-rendering:pixelated;width:auto;display:block}.poke-walk{max-width:64px;max-height:46px}.poke-ride{max-width:40px;max-height:30px}.parade{height:48px}.swatches{grid-template-columns:repeat(4,1fr)}.picker-dialog h2{font-size:1.3rem}.course-choices{flex-direction:column;gap:8px;display:flex}.course-choices .course-pill{padding:.5rem .8rem;font-size:1.1rem}.course-choices .course-pill:before{content:none}.course-choices .course-pill:hover{box-shadow:3px 3px 0 var(--shadow);transform:translate(-1px,-1px)}
