:root{--bg: #f6f6f7;--surface: #fff;--ink: #25272d;--muted: #72747e;--line: #e9e9ec;--brand: #245c91;--brand-soft: #eaf1f8;--green: #316b58;--radius: 14px;--shadow: 0 4px 8px #25272d08;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.65}button,input,select{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #245c9180;outline-offset:3px}button:disabled{cursor:default;opacity:.5}.app{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:34px 22px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;font-weight:750;font-size:22px;letter-spacing:-1px;white-space:nowrap}.brand-mark{font-size:38px;color:var(--brand);line-height:1}.brand small{display:block;font-size:9px;font-weight:400;letter-spacing:.06em;color:var(--muted);margin-top:3px}nav{display:flex}.sidebar nav{flex-direction:column;gap:8px;margin-top:52px}.nav-item{display:flex;gap:14px;align-items:center;min-height:49px;padding:12px 16px;color:#73747d;border-radius:10px;font-weight:600;position:relative}.nav-item.active{background:var(--brand-soft);color:var(--brand)}.nav-item:hover:not(.active){background:var(--bg)}.icon{width:21px;height:21px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.count{margin-left:auto;background:var(--brand);color:#fff;font-size:10px;min-width:18px;height:18px;display:grid;place-items:center;border-radius:6px}.side-bottom{margin-top:auto;padding-top:40px}.semester{padding:20px 14px;border-bottom:1px solid var(--line);margin-bottom:15px}.tiny-label{font-size:11px;color:var(--muted);display:block;letter-spacing:.04em}.semester strong{display:block;font-size:15px;margin:6px 0}.semester small{font-size:11px;color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#589780;vertical-align:middle;margin-left:8px}.profile{display:flex;align-items:center;text-align:left;gap:12px;padding:10px;width:100%;border-radius:10px}.profile:hover{background:var(--bg)}.avatar{height:35px;width:35px;flex:none;background:#eae5d8;color:#6b6558;border-radius:50%;display:grid;place-items:center;font-size:13px}.profile small{display:block;color:var(--muted);font-size:10px}.profile-arrow{margin-left:auto;color:var(--muted)}.workspace{margin-left:240px;width:calc(100% - 240px)}.topbar{height:79px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;background:#fff9}.breadcrumb{color:var(--muted);font-size:12px}.breadcrumb span{margin:0 13px;color:#c1c2c8}.breadcrumb strong{font-weight:500;color:var(--ink)}.top-actions{display:flex;align-items:center;gap:16px}.demo-label{color:#7e7580;font-size:10px;padding:4px 9px;background:#eeecef;border-radius:5px}.icon-button{width:44px;height:44px;display:grid;place-items:center;border-radius:9px;position:relative}.icon-button:hover{background:#eeeef0}.notification-dot{position:absolute;right:11px;top:9px;width:6px;height:6px;background:var(--brand);border:1px solid white;border-radius:50%}.mobile-brand,.mobile-avatar,.mobile-nav{display:none}main{max-width:1240px;padding:38px 44px 18px;margin:auto;min-height:calc(100vh - 132px)}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px}.date-label{font-size:12px;color:var(--muted);margin-bottom:7px;display:flex;align-items:center;gap:9px}.term-tag{font-size:10px;padding:2px 7px;background:#ebecef;border-radius:4px;color:#646670}h1{font-size:29px;letter-spacing:-.055em;margin:0;line-height:1.5;font-weight:700}h2{font-size:16px;letter-spacing:-.025em;margin:0;font-weight:650}h3{font-size:15px;margin:0}p{margin:0}.subtitle{font-size:12px;color:var(--muted);margin-top:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;min-height:44px;border-radius:9px;font-weight:600;font-size:12px;background:var(--surface);border:1px solid #e3e3e8;white-space:nowrap}.button:hover{background:#f0f0f3}.button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.button.primary:hover{background:#174b7d}.button.soft{background:var(--brand-soft);border-color:transparent;color:var(--brand)}.button .icon{width:17px;height:17px}.text-button{min-height:44px;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:550;color:var(--muted);padding:0 2px}.text-button .icon{width:15px}.text-button:hover{color:var(--brand)}.dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,1fr);gap:25px}.stack{display:flex;flex-direction:column;gap:24px}.next-class{background:var(--brand);color:#fff;padding:26px 28px;border-radius:var(--radius);position:relative;overflow:hidden;min-height:215px}.next-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.next-top span:first-child{font-size:12px;display:flex;gap:8px;align-items:center}.next-top .icon{width:17px}.next-tag{background:#ffffff18;border:1px solid #ffffff25;border-radius:6px;font-size:10px;padding:4px 9px}.next-class h2{font-size:26px;margin:17px 0 5px;letter-spacing:-.035em}.class-meta{display:flex;gap:14px;align-items:center;font-size:12px;color:#edf4fc}.class-meta span{display:flex;gap:6px;align-items:center}.class-meta .icon{width:14px;height:14px}.next-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:24px}.next-bottom small{font-size:11px;color:#d5e4f3}.next-bottom .button{min-height:36px;padding:7px 12px;color:var(--brand);border:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:23px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.section-heading .text-button{min-height:24px}.notice-preview{display:flex;gap:13px;align-items:start;padding:16px;background:#faf8f4;border:1px solid #eee9df;border-radius:10px}.notice-preview>.icon{color:#9f7d46;width:18px;margin-top:2px}.notice-preview h3{font-size:12px;line-height:1.7}.notice-preview p{font-size:10px;color:var(--muted);margin-top:5px}.notice-preview button{text-align:left}.mini-map{height:160px;border-radius:9px;overflow:hidden;margin-bottom:14px;position:relative;background:#edf0e7}.map-svg{width:100%;height:100%;display:block}.mini-map .map-svg{transform:scale(1.1)}.map-caption{position:absolute;left:9px;bottom:8px;color:#667462;background:#fffd;padding:2px 6px;border-radius:4px;font-size:9px}.shortcut-grid{display:flex;gap:8px}.shortcut{flex:1;display:flex;gap:7px;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:8px;min-height:42px;font-size:11px}.shortcut .icon{width:15px;color:var(--brand)}.shortcut:hover{background:var(--brand-soft)}.store-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);width:100%;text-align:left}.store-row:last-child{border-bottom:0;padding-bottom:0}.store-row:first-of-type{padding-top:6px}.store-row h3{font-size:13px;font-weight:550}.store-row small{font-size:10px;color:var(--muted)}.open-state{font-size:10px;color:var(--green);background:#eef6f1;border-radius:5px;padding:3px 7px;white-space:nowrap}.open-state.closed{color:#7b7d83;background:#f0f0f2}.store-icon{width:35px;height:35px;background:#f7f4ee;display:grid;place-items:center;border-radius:9px;color:#9a825e}.store-icon .icon{width:18px}.store-name{margin-right:auto}.preview-footer{font-size:10px;color:#92929a;text-align:center;padding:18px 25px 26px}.segmented{display:inline-flex;background:#eaeaee;border-radius:8px;padding:3px;gap:3px}.segmented button{min-height:34px;padding:6px 17px;color:var(--muted);font-size:12px;border-radius:6px}.segmented button.selected{background:#fff;color:var(--ink);box-shadow:0 1px 3px #00000009}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.toolbar-group{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.table-card{padding:0;overflow:hidden}.timetable{display:grid;grid-template-columns:49px repeat(5,minmax(0,1fr));gap:7px;padding:20px}.day-head{height:35px;text-align:center;font-size:12px;color:var(--muted);display:grid;place-items:center}.day-head.today{color:var(--brand);font-weight:700}.period-label{font-size:12px;color:var(--muted);padding-top:16px;text-align:center}.period-label small{display:block;font-size:9px;margin-top:3px}.course-cell{background:#f8f8fa;border-radius:8px;min-height:106px;padding:12px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;position:relative}.course-cell:hover{filter:brightness(.97)}.course-cell strong{font-size:12px;line-height:1.7;font-weight:550}.course-cell small{font-size:10px;margin-top:auto;padding-top:9px;opacity:.78}.course-cell.empty{border:1px dashed #e6e6ec;background:transparent;color:#b1b1bb;align-items:center;justify-content:center}.course-cell.empty .icon{width:15px}.lavender{background:#eee9f7;color:#6a5688}.blue{background:#e7eef8;color:#4a6387}.mint{background:#e5f1eb;color:#446c57}.peach{background:#f7eadd;color:#956740}.pink{background:#f8e8ed;color:#97586a}.table-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;padding:17px 22px;align-items:center}.table-bottom p{font-size:11px;color:var(--muted)}.table-bottom strong{font-size:19px;color:var(--ink);margin-right:3px}.info-note{font-size:11px;color:var(--muted);margin-top:16px;display:flex;align-items:flex-start;gap:7px}.info-note .icon{width:15px;height:15px;margin-top:2px}.friend-strip{display:flex;gap:10px;align-items:center;margin:0 0 18px;flex-wrap:wrap}.friend{display:flex;gap:8px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:30px;padding:6px 13px 6px 6px;font-size:12px;min-height:44px}.friend.selected{border-color:var(--brand);color:var(--brand)}.friend .avatar{width:28px;height:28px;font-size:11px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:24px;font-size:12px;padding:9px 14px;min-height:40px;white-space:nowrap}.chip.selected{background:var(--brand-soft);border-color:#aec9e2;color:var(--brand)}.chip .icon{width:15px;height:15px}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;margin-top:20px}.map-large{height:510px;border:1px solid var(--line);border-radius:14px;position:relative;overflow:hidden;background:#eaf0e7}.map-large .map-svg{position:absolute;inset:0}.map-controls{position:absolute;right:16px;bottom:18px;display:flex;flex-direction:column;gap:4px;background:#fff;border-radius:9px;box-shadow:var(--shadow);padding:3px}.map-controls button{width:36px;height:36px;font-size:22px}.map-pin{position:absolute;width:35px;height:35px;background:#fff;border:2px solid white;border-radius:50% 50% 50% 6px;transform:translate(-50%,-50%) rotate(-45deg);box-shadow:0 2px 6px #53635125;display:grid;place-items:center;color:#4a7c99;z-index:2}.map-pin .icon{transform:rotate(45deg);width:18px;height:18px}.map-pin.selected{background:var(--brand);color:#fff;border-color:#fff;width:40px;height:40px;z-index:3}.location-detail .location-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--brand-soft);color:var(--brand);margin-bottom:20px}.location-detail h2{font-size:18px}.location-detail .subtitle{margin-top:3px}.detail-line{display:flex;gap:10px;align-items:start;margin:24px 0;color:#676a74;font-size:12px}.detail-line .icon{width:17px}.location-detail .button{width:100%;margin-top:10px}.location-list{margin-top:19px}.location-item{width:100%;text-align:left;padding:12px 0;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;font-size:12px}.location-item .icon{width:17px;color:var(--muted)}.location-item.selected{color:var(--brand)}.food-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;margin-top:20px}.food-stores{display:flex;flex-direction:column;gap:10px}.food-store{padding:18px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;width:100%}.food-store.selected{border-color:#8bb0d2;background:#f8fbfe}.food-store>div{display:flex;justify-content:space-between;gap:8px}.food-store h3{font-size:14px;margin:12px 0 3px}.food-store p{font-size:11px;color:var(--muted)}.food-store .icon{color:#9a825e;width:19px}.menu-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:22px}.menu-header h2{font-size:20px}.menu-category{font-size:12px;color:var(--muted);padding:18px 0 7px}.menu-item{display:flex;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.menu-item:last-child{border-bottom:0}.menu-item>div:first-child{flex:1}.menu-item h3{font-size:14px;font-weight:550}.menu-item small{font-size:10px;color:var(--muted)}.price{font-size:15px;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.quantity{display:flex;align-items:center;gap:8px}.quantity button{border:1px solid var(--line);border-radius:7px;width:34px;height:36px;display:grid;place-items:center;font-size:17px;color:var(--brand)}.quantity span{min-width:12px;text-align:center;font-size:12px}.cart{position:sticky;bottom:20px;background:var(--ink);color:#fff;border-radius:10px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;margin-top:18px;gap:12px}.cart small{color:#d0d1d6}.cart strong{font-size:19px}.cart button{font-size:12px;color:#fff;text-decoration:underline;min-height:36px}.notice-layout{max-width:850px}.notice-row{display:flex;gap:16px;align-items:flex-start;width:100%;text-align:left;padding:23px 0;border-bottom:1px solid var(--line)}.notice-row:last-child{border-bottom:0}.notice-indicator{width:6px;height:6px;background:var(--brand);border-radius:50%;margin-top:10px;flex:none}.notice-indicator.read{background:transparent}.notice-row-content{flex:1;min-width:0}.notice-row h3{font-size:14px;font-weight:550;margin:7px 0 8px;line-height:1.8}.notice-row p{font-size:11px;color:var(--muted)}.notice-tags{display:flex;gap:8px;align-items:center;font-size:10px;color:var(--muted)}.tag-important{background:var(--brand-soft);color:var(--brand);padding:2px 7px;border-radius:4px}.tag-neutral{background:#f0f0f3;color:#696b75;padding:2px 7px;border-radius:4px}.notice-arrow{color:#a4a5ad;align-self:center}.empty-state{padding:50px 20px;text-align:center;color:var(--muted)}.empty-state .icon{width:30px;height:30px;margin-bottom:10px}.search-box{display:flex;align-items:center;gap:10px;padding:0 13px;background:#f6f6f8;border:1px solid var(--line);border-radius:9px;min-height:45px}.search-box input{border:0;outline:none;background:none;width:100%;min-width:0;color:var(--ink)}.search-box .icon{color:var(--muted);width:18px}.search-box:focus-within{border-color:var(--brand)}dialog{width:min(480px,calc(100vw - 32px));max-height:85vh;border:0;border-radius:16px;background:#fff;padding:0;color:var(--ink);box-shadow:0 16px 60px #26212925}dialog::backdrop{background:#25232d60;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:21px 24px 13px}.dialog-head h2{font-size:19px}.dialog-body{padding:0 24px 26px}.dialog-body p{font-size:13px;color:var(--muted);line-height:1.9}.dialog-body .button{margin-top:16px}.detail-data{margin:22px 0;display:grid;grid-template-columns:80px 1fr;gap:12px;font-size:13px}.detail-data dt{color:var(--muted)}.detail-data dd{margin:0}.dialog-actions{display:flex;gap:10px;flex-wrap:wrap}.course-option{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;width:100%;padding:15px 0;border-bottom:1px solid var(--line)}.course-option strong{font-size:13px}.course-option small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.course-option .icon{color:var(--brand);width:18px}.form-row{display:flex;gap:14px;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}.form-row select{max-width:150px;padding:7px;background:#f8f8fa;border:1px solid var(--line);border-radius:7px;color:var(--ink)}.switch{appearance:none;width:40px;height:24px;border-radius:20px;background:#d4d4da;position:relative;cursor:pointer;flex:none}.switch:checked{background:var(--brand)}.switch:before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .16s}.switch:checked:before{transform:translate(16px)}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,15px);background:#29282e;color:#fff;border-radius:9px;padding:12px 20px;z-index:100;font-size:12px;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;max-width:calc(100vw - 32px);text-align:center}#toast.visible{opacity:1;transform:translate(-50%)}main{animation:appear .2s ease-out}@keyframes appear{0%{opacity:.7;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1450px){main{padding-top:46px}.dashboard{gap:30px}.next-class{min-height:238px;padding:30px}.next-class h2{margin-top:21px}.next-bottom{margin-top:30px}.panel{padding:25px}.mini-map{height:187px}}@media(max-width:1100px){.sidebar{width:200px;padding:30px 16px}.brand{font-size:19px;gap:8px}.brand-mark{font-size:33px}.brand small{font-size:8px}.workspace{margin-left:200px;width:calc(100% - 200px)}main{padding:30px 26px 18px}.topbar{padding:0 26px}.dashboard{grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr);gap:18px}.panel{padding:19px}.next-class{padding:23px}.map-layout{grid-template-columns:minmax(0,1fr) 240px}.food-layout{grid-template-columns:210px minmax(0,1fr)}.course-cell{padding:9px;min-height:104px}.course-cell strong{font-size:11px}.timetable{gap:5px;padding:14px}.class-meta{gap:9px}.class-meta span{font-size:11px}}@media(max-width:850px){.dashboard{grid-template-columns:1fr}.dashboard>.stack:last-child{display:grid;grid-template-columns:1fr 1fr}.dashboard>.stack:last-child>.panel:last-child{grid-column:1/-1}.map-layout{grid-template-columns:1fr}.map-large{height:420px}.location-detail{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.location-detail .location-symbol{display:none}.location-detail .location-list{grid-column:2;grid-row:1/6;margin-top:0}.location-detail .detail-line{margin:14px 0}.food-layout{grid-template-columns:1fr}.food-stores{flex-direction:row;overflow-x:auto}.food-store{min-width:170px;flex:1}.food-store h3{margin-top:9px}}@media(max-width:650px){body{font-size:14px}.sidebar,.breadcrumb{display:none}.workspace{margin-left:0;width:100%}.topbar{height:66px;padding:0 20px;background:#fff}.mobile-brand{display:flex;align-items:center;gap:8px;font-size:19px;font-weight:750;letter-spacing:-.06em}.mobile-brand .brand-mark{font-size:30px}.mobile-avatar{display:grid;width:29px;height:29px;font-size:11px}.top-actions{gap:4px}.top-actions .demo-label{font-size:8px;padding:3px 6px}.top-actions .icon-button{width:37px}.notification-dot{right:8px}.mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;background:#fffffffa;border-top:1px solid var(--line);z-index:30;padding:6px 8px calc(7px + env(safe-area-inset-bottom))}.mobile-nav .nav-item{flex:1;flex-direction:column;justify-content:center;gap:3px;padding:5px 1px;font-size:9px;min-height:51px;border-radius:7px;color:#888992}.mobile-nav .nav-item.active{color:var(--brand);background:none}.mobile-nav .nav-item.active:before{content:"";position:absolute;top:1px;width:37px;height:28px;background:var(--brand-soft);border-radius:15px;z-index:-1}.mobile-nav .count{position:absolute;right:calc(50% - 20px);top:0;font-size:8px;min-width:13px;height:13px;border-radius:5px;border:1px solid white}.mobile-nav .icon{width:21px;height:21px}main{padding:26px 20px 14px;min-height:calc(100vh - 166px)}h1{font-size:25px}.page-heading{margin-bottom:22px;align-items:center}.date-label{font-size:11px}.page-heading>.button{padding:8px 11px;min-height:39px;font-size:11px}.page-heading>.button .icon{width:15px}.dashboard,.stack{gap:20px}.dashboard>.stack:last-child{display:flex;flex-direction:column;gap:20px}.next-class{padding:22px;min-height:208px}.next-class h2{font-size:25px;margin-top:18px}.next-bottom{margin-top:23px}.panel{padding:20px}.class-meta{gap:14px}.class-meta span{font-size:11px}.mini-map{height:170px}.preview-footer{padding:12px 25px 90px;font-size:9px}.toolbar{gap:8px;margin-bottom:16px}.segmented button{padding:6px 12px;min-height:33px;font-size:11px}.toolbar .button{padding:8px 10px;font-size:11px}.table-card{margin:0 -8px}.timetable{grid-template-columns:25px repeat(5,minmax(0,1fr));gap:4px;padding:12px 7px}.day-head{font-size:10px;height:30px}.period-label{font-size:10px;padding-top:13px}.period-label small{font-size:7px}.course-cell{min-height:101px;padding:7px 5px;border-radius:5px}.course-cell strong{font-size:10px;line-height:1.65;overflow-wrap:anywhere}.course-cell small{font-size:8px;line-height:1.5}.table-bottom{padding:14px 12px}.table-bottom strong{font-size:17px}.table-bottom .button{padding:8px 11px;font-size:11px}.table-bottom p{font-size:10px}.friend-strip{gap:7px}.friend{font-size:11px;padding-right:10px}.chips{gap:7px}.chip{font-size:11px;padding:8px 12px;min-height:38px}.map-layout{margin-top:16px;gap:14px}.map-large{height:340px}.location-detail{display:block;padding:20px}.location-detail .location-symbol{display:none}.location-detail h2{font-size:18px}.location-detail .location-list{display:none}.location-detail .button{width:auto;margin-right:6px}.location-detail .detail-line{margin:12px 0}.food-layout{margin-top:17px;gap:16px}.food-stores{margin-right:-20px;padding-right:20px;padding-bottom:4px;gap:10px}.food-store{min-width:160px;padding:15px}.food-store h3{font-size:13px}.food-store p{font-size:10px}.menu-header{margin-bottom:13px}.menu-header h2{font-size:19px}.menu-item{gap:10px}.menu-item h3{font-size:13px}.price{font-size:14px}.quantity{gap:5px}.quantity button{width:31px;height:38px}.cart{bottom:80px;margin-top:15px;padding:13px 16px}.notice-row{padding:20px 0;gap:10px}.notice-row h3{font-size:13px}.notice-tags{font-size:9px}.notice-row p{font-size:10px}.notice-layout>.panel{padding:0 18px}.notice-layout .toolbar{flex-wrap:wrap}.dialog-head{padding:17px 20px 12px}.dialog-body{padding:0 20px 22px}#toast{bottom:88px}.text-button{font-size:11px}}@media(max-width:360px){main{padding:22px 15px 12px}.topbar{padding:0 15px}.mobile-brand{font-size:17px}.demo-label{display:none}.next-class{padding:19px}.next-class h2{font-size:24px}.next-top{gap:5px}.next-tag{font-size:9px}.class-meta{gap:8px}.class-meta span{font-size:10px}.panel{padding:17px}.timetable{gap:3px;padding:10px 5px;grid-template-columns:22px repeat(5,minmax(0,1fr))}.course-cell{padding:6px 4px;min-height:105px}.course-cell strong{font-size:9px}.course-cell small{font-size:7px}.table-bottom{gap:7px}.table-bottom .button{font-size:10px;padding:7px}.quantity button{width:28px}.menu-item{gap:7px}.menu-item h3{font-size:12px}.toolbar .text-button{font-size:10px}.page-heading{gap:7px}h1{font-size:23px}.page-heading>.button{font-size:10px;padding:7px 9px}.food-stores{margin-right:-15px;padding-right:15px}}@media(max-width:650px){.course-cell strong{font-size:11.5px}.course-cell small{font-size:9px}.course-cell{min-height:114px}.quantity button{min-width:38px;min-height:44px}.map-pin{min-width:44px;min-height:44px}.shortcut,.chip{min-height:44px}}@media(max-width:360px){.course-cell strong{font-size:10.5px}.course-cell small{font-size:8px}.quantity button{min-width:34px}.menu-item small{font-size:9px}}.panel.table-card{padding:0}.display-toolbar{margin-top:-5px}.day-schedule{padding:20px}.day-picker{display:flex;margin-bottom:20px}.day-picker button{flex:1;min-height:40px}.day-course{display:flex;gap:14px;margin-bottom:12px}.day-period{width:42px;font-size:13px;padding-top:13px;color:var(--muted);flex:none}.day-period small{display:block;font-size:11px}.day-course>button{flex:1;text-align:left;padding:15px 18px;border-radius:9px;min-height:85px}.day-course strong{display:block;font-size:16px;font-weight:550}.day-course small{display:block;font-size:12px;margin-top:6px}.day-empty{border:1px dashed var(--line);color:var(--muted)}@media(max-width:650px){.cart{bottom:calc(80px + env(safe-area-inset-bottom))}#toast{bottom:calc(88px + env(safe-area-inset-bottom))}.preview-footer{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.day-schedule{padding:15px}}:root{--brand: #245c91;--brand-soft: #eaf1f8;--bg: #f5f7fa;--ink: #243347;--muted: #657286;--line: #e3e9f0}.brand{font-size:21px;letter-spacing:-.06em}.brand small{font-size:9px;letter-spacing:0}.brand-mark{display:flex;width:30px;height:36px;flex:none}.brand-mark svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.mobile-brand .brand-mark{width:25px;height:29px}.avatar{background:#e1eaf3;color:#426380}.current-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#e6eef7;border-radius:12px;padding:25px 28px;color:#224d79}.summary-label{font-size:11px;font-weight:600}.summary-main h2{font-size:24px;margin:7px 0 6px}.summary-main p{font-size:12px;color:#526b87}.countdown{flex:none;text-align:right}.countdown strong{font-size:24px;display:block;font-variant-numeric:tabular-nums;font-weight:650}.countdown span{display:block;font-size:11px;color:#526b87;margin-top:3px}.schedule-panel{padding:22px}.preview-clock{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:11px;color:var(--muted)}.preview-clock>span{display:flex;align-items:center;gap:7px}.preview-clock .icon{width:15px;height:15px}.preview-clock input,.preview-clock select{border:1px solid var(--line);background:#f8fafc;border-radius:6px;padding:6px 9px;color:var(--ink);font-size:12px;min-height:36px}.daily-table{width:100%;border-collapse:separate;border-spacing:0 7px;table-layout:fixed}.daily-table caption{text-align:left}.daily-table thead th{font-weight:500;font-size:10px;color:var(--muted);text-align:left;padding-bottom:5px}.daily-table thead th:first-child{width:78px}.daily-table tbody th{background:#f3f6f9;border:1px solid var(--line);border-right:0;border-radius:8px 0 0 8px;padding:11px 5px;text-align:center;font-weight:400}.daily-table tbody th strong{font-size:20px;display:block;line-height:1.2;margin-bottom:6px;color:#4a5e74}.daily-table tbody th strong span{font-size:10px;margin-left:3px}.daily-table time{display:block;font-size:10px;color:#53677c;font-variant-numeric:tabular-nums;line-height:1.3}.time-separator{display:block;font-size:9px;line-height:1.1;color:#8896a5}.daily-table td{padding:0;vertical-align:stretch}.schedule-cell{display:flex;flex-direction:column;text-align:left;width:100%;min-height:115px;border-radius:0 8px 8px 0;padding:14px 17px;gap:6px;border:1px solid transparent}.schedule-top{display:flex;justify-content:space-between;align-items:center;gap:8px;line-height:1.4}.schedule-kind{font-size:10px}.remaining{font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}.remaining.current{font-weight:650;background:var(--brand);color:#fff;padding:3px 6px;border-radius:4px}.schedule-cell>strong{font-size:16px;font-weight:600;letter-spacing:-.02em}.schedule-bottom{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:11px;opacity:.9}.schedule-bottom .icon{width:14px;height:14px}.vacant-cell{background:#fff;border-color:var(--line);color:#627386}.daily-table tr.current th{background:#e2edf8;border-color:#9cb8d4;color:var(--brand)}.daily-table tr.current .schedule-cell{border-color:#9cb8d4}.daily-table tr.past .schedule-kind,.daily-table tr.past .remaining{color:#6e7a8b}.pink{background:#e7eef9;color:#3f648b}.lavender{background:#eeedf8;color:#655c86}.peach{background:#f5efdf;color:#826c41}.mint{background:#e7f2ee;color:#446c5d}.blue{background:#e8f0f7;color:#466984}.period-label small{line-height:1.45}.day-schedule .preview-clock{margin:4px 0 10px}.day-schedule .daily-table{margin-top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1100px){.brand{font-size:18px;gap:7px}.brand small{font-size:8px}.brand-mark{width:26px}}@media(max-width:650px){.mobile-brand{font-size:19px}.current-summary{padding:21px 20px;gap:10px}.summary-main h2{font-size:21px}.summary-main p{font-size:11px}.countdown strong{font-size:22px}.countdown span{font-size:10px}.schedule-panel{padding:18px 15px}.daily-table thead th:first-child{width:65px}.schedule-cell{padding:12px 13px;min-height:111px}.schedule-cell>strong{font-size:15px}.schedule-bottom{font-size:10px}.remaining{font-size:9px}.preview-clock{margin-bottom:12px}.brand-mark{width:25px}.daily-table tr.current .schedule-kind{font-size:9px}.daily-table tbody th strong{font-size:19px}}@media(max-width:360px){.mobile-brand{font-size:18px}.current-summary{padding:18px 16px}.summary-main h2{font-size:18px}.countdown strong{font-size:19px}.summary-main p{font-size:10px}.schedule-panel{padding:16px 11px}.daily-table thead th:first-child{width:54px}.schedule-cell{padding:12px 9px}.remaining{font-size:8px}.schedule-bottom{font-size:9px}.schedule-cell>strong{font-size:14px}}.empty-label{font-size:9px;margin-bottom:5px;color:#8390a0;font-weight:400}.week-status{display:flex;justify-content:space-between;gap:12px;padding:12px 15px;background:#e6eef7;color:var(--brand);border-radius:8px;margin-bottom:12px;font-size:12px}.week-status strong{white-space:nowrap}.week-status+.preview-clock{margin-bottom:16px}.preview-clock select{min-width:84px}@media(max-width:650px){.empty-label{font-size:8px}.week-status{font-size:11px}.week-status span{max-width:75%}}@media(max-width:360px){.empty-label{font-size:7px}}select,input,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;max-width:100%;min-width:0}select:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #347cba;outline-offset:3px}input[type=checkbox]{accent-color:#245c91;width:20px;height:20px;flex-shrink:0}form{display:grid;gap:16px}form label{display:grid;gap:7px;font-weight:600;font-size:13px}form label[hidden]{display:none}form .form-row{display:flex}form input:not([type=checkbox]),form select,form textarea{width:100%;box-sizing:border-box}form .button{justify-self:start}fieldset{border:0;padding:0;margin:0}legend{font-size:13px;font-weight:700;margin-bottom:12px}.form-error{color:#a42c32;font-size:13px;white-space:pre-line}.form-error:empty{display:none}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.toolbar{flex-wrap:wrap;gap:12px}.toolbar label,.date-control{display:flex;align-items:center;gap:9px;font-size:13px}.warning{padding:14px 16px;background:#fff5dc;color:#73530a;border-radius:8px;font-size:13px;line-height:1.8;margin:16px 0}.info-note{line-height:1.8}.info-note a,.prose a,.preview-footer a{color:#245c91;text-decoration:underline}.empty-state{padding:32px 18px}.empty-state h2{font-size:18px}.empty-state .button{margin-top:16px}.empty-state .icon{margin-bottom:12px}.week-scroll{overflow-x:auto;overscroll-behavior-x:contain}.week-table{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed;min-width:420px}.week-table th{font-size:12px;text-align:center;font-weight:700;color:#5b6e84;padding:9px 0}.week-table th:first-child{width:54px}.week-table th small{display:block;font-size:10px;font-weight:500;margin-top:8px;line-height:1.5}.week-table td{padding:0;vertical-align:top;height:107px}.week-cell{width:100%;height:100%;min-height:104px;display:flex;flex-direction:column;justify-content:center;gap:9px;padding:9px 7px;border-radius:9px;overflow-wrap:anywhere;text-align:left;font-size:12px;color:#28435e}.week-cell strong{font-size:12px;line-height:1.5}.week-cell small{font-size:10px;line-height:1.5}.week-cell.vacant-cell{border:1px solid #e5ebf1;background:#f9fbfd;color:#7d8b9d;font-size:11px;align-items:center}.week-table td:has(.week-cell:nth-child(2)) .week-cell{height:auto;min-height:60px;margin-bottom:3px}.daily-table .schedule-cell+.schedule-cell{margin-top:6px}.daily-table .schedule-cell{height:auto;min-height:106px}.table-bottom{gap:12px;flex-wrap:wrap}.slot-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.slot-picker>div{display:flex;flex-direction:column;gap:5px;text-align:center}.slot-picker strong{font-size:12px;margin-bottom:5px}.slot-picker label{position:relative;display:block}.slot-picker input{position:absolute;opacity:0}.slot-picker span{padding:9px 0;display:block;border:1px solid #dae3ec;border-radius:6px;font-size:11px;color:#657286}.slot-picker input:checked+span{background:#245c91;color:#fff;border-color:#245c91}.slot-picker input:focus-visible+span{outline:3px solid #347cba;outline-offset:1px}.date-control input{padding:7px 9px}.mini-map img{width:100%;height:100%;object-fit:cover}.mini-map{width:100%;padding:0;border:0}.stack>.panel h2+.subtitle{margin:12px 0 20px}.friend-row{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.friend-row p{font-size:12px;color:var(--muted);margin-top:7px}.friend-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.friend-actions .button{font-size:11px;padding:9px}.friend-row:last-child{border:0}#main>.panel+.panel{margin-top:24px}.prose h2{margin:28px 0 16px}.prose h2:first-child{margin-top:0}.prose p,.prose li{font-size:14px;line-height:2}.prose ol{padding-left:24px}.prose p{margin-bottom:20px}.prose .button{margin:5px}.budget{width:100px;display:block;margin-top:6px}.menu-header label{font-size:11px}.food-store p{line-height:1.8;white-space:normal}.cart small{display:block}.menu-item{gap:12px}.menu-item h3{line-height:1.6}.price{white-space:nowrap}#campus-map{height:570px;border:1px solid var(--line);border-radius:16px;z-index:0;background:#f0f4ed}.leaflet-marker-icon.facility-marker{color:#fff;background:#1976a8;border:2px solid white;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 6px #24334733}.facility-marker .icon{width:17px;height:17px;display:block}.facility-marker.machine{background:#a66522;border-radius:50%}.facility-marker.building{background:#667887}.facility-marker.shop{background:var(--green)}.leaflet-popup-content p{font-family:inherit;line-height:1.8}.location-list{max-height:470px;overflow:auto}.location-item{overflow-wrap:anywhere}.room-results{max-height:480px;overflow:auto}.loading{padding:60px;text-align:center;color:#657286}.brand-mark svg{width:28px;height:34px}.preview-footer{line-height:1.8}.button:disabled{opacity:.5;cursor:wait}.leaflet-control-zoom a{font-family:inherit!important}.panel h2{line-height:1.5}details summary{cursor:pointer;font-size:13px;font-weight:700;padding:12px 0}details .form-columns{margin-top:10px}.search-box{margin-bottom:18px}.search-box input{border:0;min-width:0}#invite-form{margin-top:16px}.daily-table strong,.summary-main h2{overflow-wrap:anywhere}.button{white-space:normal}.day-picker button{min-width:0}a.button{display:inline-flex}.time-separator{font-size:9px}.daily-table th time{font-size:11px}.daily-table .remaining{font-size:10px}#main{min-width:0}.leaflet-control-attribution{font-size:10px}@media(max-width:650px){.friend-row{display:block}.friend-actions{justify-content:flex-start;margin-top:12px}.form-columns{gap:8px}.toolbar label{flex-wrap:wrap}.toolbar>label:has(#board-select){width:100%}#board-select{flex:1}.food-layout{display:flex;flex-direction:column}.food-stores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.food-store{padding:14px!important}.food-store h3{font-size:13px}.food-store p{font-size:11px}.food-store .open-state{font-size:10px}.map-layout{display:flex;flex-direction:column}#campus-map{height:440px;width:100%}.location-list{max-height:270px}.week-table{min-width:380px}.daily-table th:first-child{width:65px}.slot-picker{gap:3px}.dialog-body{padding-top:12px}.prose li,.prose p{font-size:13px}.page-heading{gap:10px}.page-heading .button{font-size:11px;padding:9px}.current-summary{gap:14px;flex-wrap:wrap}.countdown strong{font-size:24px}.summary-main h2{font-size:21px}.menu-item .price{font-size:14px}.menu-item h3{font-size:13px}.menu-header{align-items:start}.quantity{gap:5px}.quantity button{width:32px;height:32px}.form-row{gap:12px}.date-control{font-size:12px}.day-picker button{padding:9px 5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.food-stores.single-store{display:block}.single-store .food-store{width:100%}.week-cell.blue{background:#e7f0f6;color:#355f82;border-color:#d7e8f7}.week-cell.mint{background:#eef9f5;color:#376a58;border-color:#d8eee5}.week-cell.peach{background:#fff7e5;color:#7b6231;border-color:#f2e4bf}.week-cell.lavender{background:#f5f2ff;color:#5f5687;border-color:#e5ddfa}.week-cell.pink{background:#eff6ff;color:#3f648b;border-color:#dce9f7}.heading-actions{display:flex;gap:8px;align-items:center}.timetable-switcher{display:flex;align-items:center;margin:0 0 14px}.semester-picker{position:relative;min-width:170px}.semester-picker>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-width:160px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:700}.semester-picker>summary::-webkit-details-marker,.semester-year>summary::-webkit-details-marker{display:none}.semester-picker>summary .icon{width:15px;height:15px;transform:rotate(90deg)}.semester-picker[open]>summary .icon{transform:rotate(-90deg)}.semester-menu{position:absolute;z-index:25;top:calc(100% + 6px);left:0;width:min(280px,calc(100vw - 48px));padding:8px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 12px 36px #20334c20}.semester-year{border-bottom:1px solid #edf0f4;padding:3px 0}.semester-year:last-child{border-bottom:0}.semester-year>summary{cursor:pointer;list-style:none;padding:9px 8px;font-size:13px;font-weight:700}.semester-terms{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:2px 6px 9px}.semester-terms button{border:0;border-radius:7px;background:#f4f7fa;padding:8px 4px;color:var(--ink);font-weight:700}.semester-terms button:hover,.semester-terms button.selected{background:var(--brand-soft);color:var(--brand)}.semester-year.disabled{color:#929aa5;font-size:13px;opacity:.65;pointer-events:none}.semester-year.disabled>summary{display:flex;align-items:center;justify-content:space-between}.semester-year.disabled small{font-size:10px;font-weight:600}.settings-group{border-top:1px solid var(--line);margin-top:14px}.settings-group>h3{padding:14px 0;margin:0;font-size:15px}.settings-login{margin:16px 0}.top-sync{border:0;background:none;color:var(--brand);font:inherit;font-size:12px;font-weight:700;padding:6px 8px;cursor:pointer;white-space:nowrap}.top-sync[hidden]{display:none}.search-box input:focus-visible{outline:none!important;outline-offset:0!important}.search-box:focus-within{border-color:var(--brand);outline:2px solid #347cba;outline-offset:1px}@media(max-width:650px){.mobile-nav .nav-item{font-size:8px;padding-left:0;padding-right:0}.mobile-nav .nav-item span:not(.count){white-space:nowrap}.top-sync{font-size:12px;min-height:44px;padding:5px 4px}.semester-picker{width:100%}.semester-picker>summary{width:100%;box-sizing:border-box}}.week-scroll{overflow-x:visible;width:100%}.week-table{min-width:0!important;width:100%;table-layout:fixed;border-spacing:2px}.week-table th{font-size:10px;padding:5px 0}.week-table th:first-child,.week-table .period-column{width:36px}.week-period{padding:3px 1px!important;vertical-align:middle}.week-period strong{display:block;font-size:10px;line-height:1}.week-period strong span{font-size:7px;font-weight:600}.week-period small{font-size:7px!important;line-height:1.25!important;margin-top:4px!important;letter-spacing:-.03em}.week-period em{display:block;margin-top:3px;font-size:6.5px;line-height:1.1;color:#8b98a8;font-style:normal;font-weight:600}.week-table td{height:92px;min-width:0}.week-cell{min-height:90px;gap:5px;padding:6px 4px;border-radius:7px;min-width:0}.week-cell strong{font-size:10px;line-height:1.35;overflow-wrap:anywhere}.week-cell small{font-size:8px;line-height:1.3;overflow-wrap:anywhere}.week-cell.vacant-cell{font-size:9px;padding:4px 2px}.table-card{overflow:visible}#connection-state[hidden]{display:none!important}.course-duration{display:inline-flex;margin:0 0 12px;padding:5px 8px;border-radius:6px;background:#eef6ff;color:#245c91;font-size:11px;font-weight:700}.coop-status{border:1px solid #2f83c6;background:#fff;margin-bottom:18px}.coop-status-title{background:#4c94c7;color:#fff;text-align:center;font-size:13px;font-weight:800;padding:7px 12px}.coop-status-body{padding:13px}.coop-status-time{margin:0 0 11px;font-size:13px;color:#26384b}.coop-store-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.coop-store-card{position:relative;min-height:118px;padding:12px 9px 10px;border:1px solid #348bd0;background:#fffef0;border-radius:3px}.coop-store-card.is-closed{background:#e9e9e9;color:#4e545b}.coop-store-card h3{margin:0 28px 8px 0;color:#1762a0;font-size:12px;line-height:1.35}.coop-store-card p{margin:0;font-size:10px;line-height:1.45}.coop-store-card small{display:block;font-size:9px;line-height:1.45}.coop-card-rule{height:1px;background:#348bd0;margin:12px 0 8px}.coop-open-badge{position:absolute;top:-7px;right:-6px;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#ff9d00;color:#fff;font-size:6.5px;font-weight:800;letter-spacing:-.02em}.coop-store-card.is-closed .coop-open-badge{background:#777}.coop-store-map-link{position:absolute;inset:0;z-index:1;width:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer}.coop-store-map-link:focus-visible{outline:3px solid #347cba;outline-offset:2px}.coop-store-card.has-map-link:hover{border-color:#1762a0;box-shadow:0 2px 6px #1762a026}.coop-store-card.has-map-link:active{background:#eef6fd}.comenu-panel{padding:14px}.comenu-frame-wrap{width:100%;height:min(920px,72vh);overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.comenu-frame{width:100%;height:100%;border:0;display:block}.room-finder{display:grid;gap:14px}.room-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}.room-filter-grid>label{display:grid;gap:6px;min-width:0}.room-filter-grid>label>span:first-child{font-size:10px;font-weight:800;color:var(--muted)}.room-filter-grid select{width:100%;min-width:0}.room-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.room-stats>div{padding:10px 12px;border-right:1px solid var(--line)}.room-stats>div:last-child{border-right:0}.room-stats small{display:block;font-size:9px;color:var(--muted);margin-bottom:2px}.room-stats strong{font-size:20px;color:var(--ink)}.room-source-note{margin:-5px 0 0;font-size:10px;color:var(--muted)}.room-building-grid{display:grid;gap:11px}.room-building-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px}.room-building-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:9px}.room-building-head h2{margin:0;font-size:13px}.room-building-head span{font-size:9px;color:var(--muted)}.room-chip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:7px}.room-chip{border:1px solid #dce7f2;border-radius:7px;background:#f8fbff;color:#28435e;padding:8px;text-align:left;min-width:0}.room-chip strong{display:block;font-size:11px;overflow-wrap:anywhere}.room-chip small{display:block;margin-top:3px;font-size:8px;color:#5582a9}@media(max-width:700px){.week-table{border-spacing:1px}.week-table th:first-child,.week-table .period-column{width:29px}.week-period strong{font-size:9px}.week-period small{font-size:6.3px!important}.week-period em{font-size:6px}.week-table td{height:88px}.week-cell{min-height:86px;padding:5px 3px}.week-cell strong{font-size:9px;line-height:1.3}.week-cell small{font-size:7px}.week-cell.vacant-cell{font-size:8px}.coop-store-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-filter-grid{grid-template-columns:repeat(3,1fr)}.room-filter-search{grid-column:1 / -1}}@media(max-width:390px){.week-table th:first-child,.week-table .period-column{width:26px}.week-cell strong{font-size:8.5px}.week-cell small{font-size:6.8px}.coop-store-grid{grid-template-columns:1fr 1fr;gap:6px}.coop-store-card{min-height:108px;padding:10px 7px}}.week-scroll{width:100%;overflow-x:hidden!important;overscroll-behavior-x:none}.week-table{width:100%!important;min-width:0!important;table-layout:fixed;border-collapse:separate;border-spacing:2px}.week-table thead th{height:36px;padding:0 2px!important;vertical-align:middle;text-align:center;font-size:12px;line-height:1;white-space:nowrap}.week-table th:first-child,.week-table .period-column{width:44px!important}.week-period{height:116px;padding:0!important;vertical-align:top!important}.week-period-layout{height:116px;min-height:116px;padding:5px 1px 4px;display:grid;grid-template-rows:auto 1fr auto auto;justify-items:center;align-items:center;line-height:1}.week-period-start,.week-period-end{font-size:8px;font-weight:600;color:var(--muted);white-space:nowrap;letter-spacing:-.03em}.week-period-layout strong{align-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;margin-top:3px;font-size:17px;line-height:1;font-weight:700}.week-period-layout strong span{font-size:7px;font-weight:600}.week-period-layout em{margin:0 0 3px;font-size:6.5px;line-height:1;color:var(--muted);font-style:normal;font-weight:600;white-space:nowrap}.week-table td{height:116px!important;min-width:0;padding:0!important;vertical-align:top}.week-cell{width:100%;height:116px;min-height:116px!important;margin:0;padding:8px 5px 6px!important;display:flex;flex-direction:column;justify-content:space-between!important;align-items:stretch;gap:5px;border-radius:6px;text-align:center;overflow:hidden}.week-course-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;overflow-wrap:anywhere;word-break:normal;font-size:10.5px;line-height:1.34;font-weight:700;text-align:center}.week-course-room{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font-size:8px;line-height:1.25;font-weight:500;text-align:center}.week-cell.vacant-cell{height:116px;min-height:116px!important;justify-content:center!important;align-items:center;padding:4px!important;font-size:9px;text-align:center}.week-table td:has(.week-cell:nth-child(2)) .week-cell{height:auto;min-height:56px!important;margin:0 0 2px;padding-top:5px!important;padding-bottom:5px!important}.week-table td:has(.week-cell:nth-child(2)) .week-course-name{-webkit-line-clamp:2}.week-table td:has(.week-cell:nth-child(2)) .week-course-room{-webkit-line-clamp:1}.timetable-switcher{justify-content:center;margin:-3px 0 10px}.timetable-switcher .semester-picker{min-width:0;width:auto}.timetable-switcher .semester-picker>summary{min-width:128px;width:auto;padding:8px 11px}@media(max-width:700px){.panel.table-card{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px;border-left:0;border-right:0;border-radius:0}.week-table{border-spacing:2px}.week-table thead th{height:34px;font-size:11px}.week-table th:first-child,.week-table .period-column{width:38px!important}.week-period,.week-period-layout,.week-table td,.week-cell,.week-cell.vacant-cell{height:110px!important;min-height:110px!important}.week-period-layout{padding:4px 0 3px}.week-period-start,.week-period-end{font-size:7.4px}.week-period-layout strong{font-size:15px}.week-period-layout strong span{font-size:6px}.week-period-layout em{font-size:5.8px}.week-cell{padding:7px 3px 5px!important;border-radius:5px}.week-course-name{font-size:9.2px;line-height:1.28}.week-course-room{font-size:7px;line-height:1.2}.week-cell.vacant-cell{font-size:7.5px}}@media(max-width:390px){.week-table{border-spacing:1.5px}.week-table th:first-child,.week-table .period-column{width:34px!important}.week-table thead th{font-size:10px}.week-period-start,.week-period-end{font-size:6.7px}.week-period-layout strong{font-size:14px}.week-period-layout em{font-size:5.3px}.week-cell{padding-left:2px!important;padding-right:2px!important}.week-course-name{font-size:8.4px;line-height:1.25}.week-course-room{font-size:6.5px;line-height:1.15}}.timetable-switcher{justify-content:flex-start!important}.timetable-switcher .semester-picker,.timetable-switcher .semester-picker>summary{width:auto!important}.auth-shell{display:grid;gap:22px}.auth-form{gap:20px}.auth-section{display:grid;gap:13px}.auth-section h3,.auth-section-heading h3{margin:0;font-size:12px;color:#455b70;letter-spacing:.02em}.auth-section-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.auth-section-heading span,.auth-help{color:var(--muted);font-size:10px;font-weight:500}.auth-help{margin:-2px 0 0;line-height:1.6}.auth-submit{width:100%;min-height:44px;justify-content:center!important}.auth-switch{display:flex;align-items:center;justify-content:center;gap:8px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.auth-switch a{color:#245c91;font-weight:700}.course-detail{display:grid;gap:17px}.course-detail-meta{display:flex;flex-wrap:wrap;gap:6px}.course-detail-meta span{padding:5px 8px;border-radius:999px;background:#f2f6fa;color:#486176;font-size:10px;font-weight:700}.course-detail-primary{padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd}.course-detail-primary p{margin:3px 0;font-size:12px;line-height:1.55}.course-detail-section{display:grid;gap:7px}.course-detail-section h3{margin:0;font-size:13px}.course-detail-section p{margin:0;color:#43576b;font-size:12px;line-height:1.8}.course-detail-updated{margin:0;color:var(--muted);font-size:10px}@media(min-width:701px){.timetable-switcher{margin-left:0!important;margin-right:auto!important}.timetable-switcher .semester-picker>summary{min-width:136px}}.timetable-first-setup{max-width:520px;margin:28px auto 0;padding:34px 28px;text-align:center}.timetable-first-setup-icon{width:46px;height:46px;margin:0 auto 14px;border-radius:13px;display:grid;place-items:center;background:#f1f6fb}.timetable-first-setup-icon .icon{width:21px;height:21px}.timetable-first-setup h2{margin:0 0 8px;font-size:18px}.timetable-first-setup p{margin:0 auto 18px;max-width:360px;color:var(--muted);line-height:1.7;font-size:12px}.timetable-first-setup .button{justify-content:center}.timetable-setup-form{display:grid;gap:14px}.food-menu-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.food-menu-heading>label{flex:1 1 auto;max-width:320px;margin:0;font-weight:700}.food-menu-heading select{margin-top:6px}.room-result-count{margin:-3px 1px 1px;color:var(--muted);font-size:10px;line-height:1.4}.room-building-card{padding:0!important;overflow:hidden}.room-building-card>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px 13px;min-height:46px}.room-building-card>summary::-webkit-details-marker{display:none}.room-building-card>summary .icon{width:14px;height:14px;transform:rotate(90deg);transition:transform .16s ease}.room-building-card[open]>summary .icon{transform:rotate(-90deg)}.room-building-name{min-width:0;font-size:13px;font-weight:750;overflow-wrap:anywhere}.room-building-count{color:var(--muted);font-size:10px}.room-building-card .room-chip-grid{padding:11px 12px 12px;border-top:1px solid var(--line)}.room-chip{cursor:pointer}@media(max-width:700px){.food-menu-heading{align-items:stretch;flex-direction:column}.food-menu-heading>label{max-width:none;width:100%}.food-menu-heading>.button{align-self:flex-start}.timetable-first-setup{margin-top:14px;padding:28px 20px}}.building-location-item{padding-left:14px}.map-place-summary{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.map-place-summary p{margin:4px 0 0;color:var(--muted);line-height:1.5}.floor-map-viewer{width:100%;max-height:min(72vh,760px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}.floor-map-viewer img{display:block;width:100%;height:auto}@media(max-width:700px){.map-place-summary{align-items:flex-start}.floor-map-viewer{max-height:68vh}}.building-focus-marker{background:transparent!important;border:0!important}.building-focus-pin{position:absolute;left:4px;top:2px;width:22px;height:22px;border:3px solid #fff;border-radius:50% 50% 50% 0;background:#e53935;transform:rotate(-45deg);box-shadow:0 2px 5px #00000047}.building-focus-pin:after{content:"";position:absolute;width:6px;height:6px;left:5px;top:5px;border-radius:50%;background:#fff}.floor-map-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:10px}.floor-map-toolbar .icon-button{width:36px;height:36px;border:1px solid var(--line);background:#fff;font-size:20px}#floor-zoom-value{min-width:48px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.floor-map-viewer{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.floor-map-viewer img{width:100%;max-width:none;transform-origin:top left;user-select:none;-webkit-user-drag:none}.week-cell.course-kind-required,.schedule-cell.course-kind-required{background:#e7f0f6;color:#315f8d;border-color:#c9def5}.week-cell.course-kind-semi-required,.schedule-cell.course-kind-semi-required{background:#eaf7ef;color:#35684a;border-color:#cfe8d8}.week-cell.course-kind-general,.schedule-cell.course-kind-general{background:#fff7dd;color:#745e27;border-color:#f0dfaa}.week-cell.course-kind-theme,.schedule-cell.course-kind-theme{background:#f3effb;color:#60537f;border-color:#dfd5f2}.week-cell.course-kind-foundation,.schedule-cell.course-kind-foundation{background:#edf8f3;color:#3f6a58;border-color:#d4eade}.week-cell.course-kind-advanced,.schedule-cell.course-kind-advanced{background:#eef8f8;color:#406c70;border-color:#d4e9e9}.week-cell.choice-cell,.schedule-cell.choice-cell{border:2.5px dashed color-mix(in srgb,currentColor 50%,transparent);background-image:linear-gradient(#ffffff8c,#ffffff8c)}.choice-cell :is(.week-course-name,.week-choice-count,.schedule-top,strong,.schedule-bottom){opacity:.7}.week-choice-count{font-size:8.5px;line-height:1.25;font-weight:700}.course-choice-prompt{display:grid;gap:10px;margin:12px 0 4px;padding:12px 14px;border:2.5px dashed #c9def5;border-radius:10px;background:#f5f9fd;color:#315f8d}.course-choice-prompt p{margin:0;font-size:13px}.choice-options .location-item>span{flex:1;display:grid;gap:3px}.choice-options .location-item small{color:var(--muted)}.week-course-duration{align-self:center;display:inline-flex;padding:2px 5px;border-radius:999px;background:#ffffff9e;color:inherit;font-size:8px;line-height:1.15;font-weight:700;white-space:nowrap}.schedule-meta{min-width:0;display:grid;gap:2px}.schedule-course-time{font-weight:700;font-variant-numeric:tabular-nums}.official-no-class{cursor:default}@media(max-width:430px){.week-course-duration{padding:1.5px 4px;font-size:7px}}.open-state.unknown{color:var(--muted);background:#f0f0f2}.friend-qr-grid{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);gap:24px;align-items:start}.invite-qr-card{display:grid;justify-items:center;gap:9px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;text-align:center}.invite-qr{display:block;width:min(240px,100%);aspect-ratio:1;background:#fff;border-radius:12px}.invite-qr-card strong{font-size:14px}.invite-qr-card p{margin:0;max-width:260px;color:var(--muted);font-size:12px;line-height:1.55}.friend-invite-controls{min-width:0}.friend-invite-controls .toolbar{justify-content:flex-start}.qr-scanner{display:grid;gap:12px}.qr-scanner-video{display:block;width:100%;max-height:62vh;border-radius:16px;background:#0c1118;object-fit:cover}.qr-scanner p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}@media(max-width:720px){.friend-qr-grid{grid-template-columns:1fr}.invite-qr-card{max-width:330px;width:100%;margin-inline:auto}}.timetable-builder-launch{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-color:#c8daf0;background:transparent;color:#245c91;font-size:12px;font-weight:800;position:relative;overflow:visible;margin-top:0}.timetable-builder-launch:has(small){margin-top:9px}.timetable-builder-launch .icon{width:15px;height:15px}.button.timetable-builder-launch:hover{background:transparent;border-color:#8fb5dc;color:#1d4ed8}.timetable-builder-launch small,.pro-badge{display:inline-flex;align-items:center;justify-content:center;min-height:18px;padding:2px 6px;border-radius:999px;background:#245c91;color:#fff;font-size:8px;font-weight:900;letter-spacing:.06em}.timetable-builder-launch small{position:absolute;top:-9px;left:-7px;z-index:2;min-height:17px;padding:2px 6px;border:1px solid #1d4ed8;border-radius:5px;background:#2563eb;color:#fff;font-size:8px;font-weight:900;line-height:1;letter-spacing:.04em;white-space:nowrap;pointer-events:none;box-shadow:0 1px 2px #17203324}.timetable-builder-form{gap:22px}.builder-intro{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;background:#f5f8fc}.builder-intro p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.timetable-builder-form fieldset{display:grid;gap:10px}.timetable-builder-form label small{color:var(--muted);font-size:10px;font-weight:500}.builder-slot-grid{display:grid;grid-template-columns:44px repeat(5,minmax(48px,1fr));gap:5px;align-items:center;max-width:720px}.builder-slot-grid>strong{text-align:center;color:var(--muted);font-size:10px}.builder-slot-grid .builder-day{color:var(--ink);font-size:12px;text-align:center}.builder-slot-grid .builder-period{color:var(--muted);font-size:11px;text-align:right;padding-right:5px}.builder-slot{min-height:38px;border:1px solid var(--line);border-radius:7px;background:#fff;display:grid!important;place-items:center;padding:0!important;cursor:pointer}.builder-slot input{width:17px!important;height:17px;margin:0}.builder-slot.fixed{background:#f0f2f5;color:#7b8490;cursor:default;font-size:9px}.builder-slot.outside-period-range{background:#f0f2f5;cursor:not-allowed;opacity:.55}.builder-slot.outside-period-range input{cursor:not-allowed}.builder-chips{display:flex;flex-wrap:wrap;gap:7px}.builder-chip{display:inline-flex!important;cursor:pointer}.builder-chip input{position:absolute;opacity:0;pointer-events:none}.builder-chip span{display:inline-flex;align-items:center;min-height:31px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#415163;font-size:11px;font-weight:700}.builder-chip input:checked+span{border-color:#9dbdde;background:#edf5fd;color:#245c91}.builder-chip input:focus-visible+span{outline:3px solid #347cba;outline-offset:2px}.builder-topic-group{display:grid;gap:7px;padding-top:4px}.builder-topic-group>strong{font-size:11px;color:var(--muted)}.builder-results{display:grid;gap:14px}.builder-plan{display:grid;gap:13px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}.builder-plan-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.builder-plan-label{color:#245c91;font-size:10px;font-weight:900}.builder-plan h3{margin:3px 0 0;font-size:15px}.builder-plan-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.builder-plan-stats span{padding:4px 7px;border-radius:999px;background:#f2f5f8;color:#526170;font-size:9px;font-weight:700}.builder-plan-courses{display:grid;border-top:1px solid #edf0f4}.builder-course{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 2px;border:0;border-bottom:1px solid #edf0f4;background:transparent;color:inherit;text-align:left;cursor:pointer}.builder-course>span{display:grid;gap:3px;min-width:0}.builder-course strong{font-size:12px}.builder-course small{color:var(--muted);font-size:9px;line-height:1.45}.builder-course .icon{flex:0 0 auto;width:14px;height:14px}@media(max-width:650px){.timetable-builder-launch span{display:none}.timetable-builder-launch{padding:8px}.builder-plan-head{display:grid}.builder-plan-stats{justify-content:flex-start}.builder-slot-grid{grid-template-columns:34px repeat(5,minmax(0,1fr));gap:3px;max-width:none}}.timetable-builder-page{max-width:980px}.timetable-builder-page .timetable-builder-form{max-width:900px}.page-heading-main{min-width:0}.page-title-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-title-line h1{margin:0}.page-title-line .semester-picker{min-width:0;width:auto}.page-title-line .semester-picker>summary{min-width:126px;width:auto;padding:7px 10px;font-size:12px}.page-title-line .semester-menu{left:0}.schedule-cell:not([class*=course-kind-]).blue{background:#e7f0f6;color:#355f82;border-color:#d7e8f7}.schedule-cell:not([class*=course-kind-]).mint{background:#eef9f5;color:#376a58;border-color:#d8eee5}.schedule-cell:not([class*=course-kind-]).peach{background:#fff7e5;color:#7b6231;border-color:#f2e4bf}.schedule-cell:not([class*=course-kind-]).lavender{background:#f5f2ff;color:#5f5687;border-color:#e5ddfa}.schedule-cell:not([class*=course-kind-]).pink{background:#eff6ff;color:#3f648b;border-color:#dce9f7}.week-cell.course-color-custom.blue,.schedule-cell.course-color-custom.blue{background:#e7f0f6;color:#355f82;border-color:#d7e8f7}.week-cell.course-color-custom.mint,.schedule-cell.course-color-custom.mint{background:#eef9f5;color:#376a58;border-color:#d8eee5}.week-cell.course-color-custom.peach,.schedule-cell.course-color-custom.peach{background:#fff7e5;color:#7b6231;border-color:#f2e4bf}.week-cell.course-color-custom.lavender,.schedule-cell.course-color-custom.lavender{background:#f5f2ff;color:#5f5687;border-color:#e5ddfa}.week-cell.course-color-custom.pink,.schedule-cell.course-color-custom.pink{background:#eff6ff;color:#3f648b;border-color:#dce9f7}@media(max-width:650px){.page-title-line{position:relative;gap:8px}.page-title-line .semester-picker{position:static;width:auto}.page-title-line .semester-picker>summary{width:auto;min-width:112px;padding:6px 9px}}.friend-list{border-top:1px solid var(--line)}.friend-list-entry{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) 18px;align-items:center;gap:12px;padding:15px 2px;text-align:left;border-bottom:1px solid var(--line);color:var(--ink)}.friend-list-entry:last-child{border-bottom:0}.friend-list-entry:hover,.friend-list-entry.selected{color:var(--brand)}.friend-list-entry .icon{width:16px;color:var(--muted)}.friend-list-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:700}.friend-request-row,.friend-delete-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.friend-request-row:last-child,.friend-delete-entry:last-child{border-bottom:0}.friend-request-row p{margin-top:4px;font-size:12px;color:var(--muted)}.friend-delete-list{display:grid}.button.danger{color:#a13b3b;border-color:#edcccc;background:snow}.button.danger:hover{background:#fff1f1}@media(max-width:650px){.friend-request-row,.friend-delete-entry{gap:10px}}.friend-back-link{display:inline-flex;align-items:center;gap:6px}.friend-back-link .icon{transform:rotate(180deg)}.friend-timetable-card{margin-top:0}.friend-common-free h2{margin-bottom:8px}.catalog-tabs,.catalog-pagination{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.catalog-panel{padding:24px}.catalog-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.catalog-filters label{flex:1;min-width:80px}.catalog-filters .catalog-subject-filter{flex:2;min-width:240px}.catalog-filters .button{min-height:42px}.catalog-results{margin-top:24px}.catalog-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.catalog-course{flex:1;min-width:0;overflow-wrap:anywhere}.catalog-course h2{margin:0 0 8px;font-size:16px}.catalog-course h2 .text-button{font:inherit;text-align:left;line-height:1.6}.catalog-course p{margin:0 0 8px;font-size:13px;line-height:1.7;color:#465568}.catalog-course small{color:#465568}.bookmark-button{flex-shrink:0;min-height:44px}.bookmark-button.is-saved{color:#245c91;background:#edf4fa;border-color:#8cafce}button:disabled{opacity:.6;cursor:wait}@media(max-width:600px){.catalog-panel{padding:16px}.catalog-row{gap:10px;align-items:flex-start}.catalog-row .bookmark-button{font-size:12px;padding:10px 8px}.mobile-nav{overflow-x:auto}.mobile-nav .nav-item{flex:1 0 44px;color:#526173}}@media(max-width:380px){.panel.table-card{width:calc(100% + 30px);margin-left:-15px;margin-right:-15px}}@media(max-width:380px){.mobile-brand{white-space:nowrap;font-size:15px;gap:5px}.top-actions{gap:2px}.top-sync{padding-inline:2px}}.builder-individual-results{margin-bottom:32px}.builder-individual-results>h2{font-size:18px}.builder-individual-results>h2 small{font-size:13px;color:#465568}.builder-individual-results .catalog-course h3{margin:0 0 8px}.builder-individual-results .text-button{text-align:left}.builder-individual-results .catalog-course h3 .text-button{font-size:15px;line-height:1.6}#builder-plans,#builder-courses{scroll-margin-top:20px}.manual-course-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 0}.manual-course-entry p,.field-help{color:#465568;font-size:12px;line-height:1.7;margin:0}.timetable-course-actions{justify-content:flex-start;gap:8px}.feedback-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;margin-top:24px;border:1px solid #cfe5da;border-radius:12px;background:var(--surface);color:var(--ink)}.feedback-banner>div{display:flex;align-items:center;gap:14px;min-width:0}.feedback-banner-icon{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#eaf5ef;color:var(--green)}.feedback-banner p{display:grid;gap:3px;margin:0}.feedback-banner strong{font-size:14px}.feedback-banner .button{flex-shrink:0;background:var(--green);border-color:var(--green);color:#fff}.feedback-banner .button:hover{background:#285a49;border-color:#285a49}.feedback-banner .button:focus-visible{outline-color:#316b5880}.feedback-success{text-align:center;padding:12px 0}.feedback-success>.icon{width:36px;height:36px;color:#316b58}.feedback-success h3{font-size:18px;margin:12px 0}.feedback-success p{margin-bottom:24px}#feedback-form{container-type:inline-size}#feedback-form .feedback-intro{font-size:min(13px,100cqi / 28);white-space:nowrap}.credit-summary-button{display:flex;align-items:center;gap:8px;padding:4px 0;text-align:left;color:var(--brand)}.table-bottom .credit-summary-button strong{font-size:17px;color:inherit}.credit-summary-button:hover strong{text-decoration:underline;text-underline-offset:4px}.credit-summary-button>.icon{width:16px;height:16px}dialog:has(.credit-details){width:min(660px,calc(100vw - 24px));max-height:90dvh;overflow:hidden}dialog:has(.credit-details) .dialog-head-compact{position:absolute;top:10px;right:12px;z-index:1;padding:0}dialog:has(.credit-details) .dialog-body{padding:0}.credit-details{--credit-secondary: #59616c;display:flex;flex-direction:column;max-height:90dvh;color:var(--ink)}.credit-tabs{display:flex;flex:0 0 auto;padding:0 60px 0 24px;border-bottom:1px solid var(--line)}.credit-tabs button{flex:1;min-height:60px;padding:12px 6px;border-bottom:2px solid transparent;color:var(--credit-secondary);font-size:13px;font-weight:600}.credit-tabs button:hover{color:var(--ink);background:var(--bg)}.credit-tabs button.selected{border-bottom-color:var(--brand);color:var(--brand)}.credit-report-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#b7bec7 var(--surface)}.credit-total{padding:24px}.credit-total-line{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.credit-total h3{display:flex;align-items:baseline;gap:7px;margin:0;color:var(--ink);font-size:13px;font-weight:500}.credit-total h3 strong{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.credit-total h3>span{margin-left:-4px;color:var(--credit-secondary);white-space:nowrap}.credit-total .text-button{color:var(--brand);font-size:12px;min-height:40px;flex-shrink:0}.credit-auto-note,.credit-footnote{color:var(--credit-secondary);font-size:11px;line-height:1.7}.credit-auto-note{margin:10px 0 0}.credit-progress{display:block;width:100%;height:5px;border:0;border-radius:3px;overflow:hidden;appearance:none;background:var(--line);color:var(--brand);accent-color:var(--brand)}.credit-progress::-webkit-progress-bar{background:var(--line);border-radius:3px}.credit-progress::-webkit-progress-value{background:var(--brand);border-radius:3px}.credit-progress::-moz-progress-bar{background:var(--brand);border-radius:3px}.credit-requirements{padding:0 24px}.credit-requirement{border-bottom:1px solid var(--line)}.credit-details summary{cursor:pointer;list-style:none}.credit-details summary::-webkit-details-marker{display:none}.credit-requirement>summary,.credit-requirement-static{padding:13px 0}.credit-requirement>summary:hover .credit-requirement-line>span:first-child{color:var(--brand)}.credit-requirement-line{display:flex;align-items:center;gap:10px;line-height:1.6;font-size:13px}.credit-requirement-line>span:first-child{flex:1;min-width:0;font-weight:600}.credit-requirement-line small{margin-left:8px;font-size:10px;font-weight:400;color:var(--credit-secondary)}.credit-requirement-line .icon{flex:0 0 12px;width:12px;height:12px;color:var(--credit-secondary);transition:transform .15s ease}.credit-requirement[open]>summary .icon{transform:rotate(90deg)}.credit-fraction{white-space:nowrap;color:var(--credit-secondary);font-size:12px;font-variant-numeric:tabular-nums}.credit-fraction b{color:var(--ink);font-size:14px;font-weight:600}.credit-requirement .credit-progress{margin-top:9px}.credit-requirement-static .credit-requirement-line{padding-right:22px}.credit-requirement-info{padding:0 0 15px}.credit-requirement-info p{margin:0 0 10px;color:var(--credit-secondary);font-size:12px;line-height:1.7}.credit-check-row{display:flex;align-items:center;gap:10px;min-height:40px;font-size:12px;cursor:pointer}.credit-check-row input{width:18px;height:18px;flex-shrink:0;accent-color:var(--brand)}.credit-report-status{margin:0;padding:0 24px 16px;color:var(--credit-secondary);font-size:12px}.credit-report-status .text-button{margin-left:8px;color:var(--brand)}.credit-course-list,.credit-options{margin:0 24px;border-bottom:1px solid var(--line)}.credit-course-list>summary,.credit-options>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;font-weight:600;font-size:13px}.credit-course-list>summary:hover,.credit-options>summary:hover{color:var(--brand)}.credit-course-list>summary .icon,.credit-options>summary .icon{width:14px;height:14px;color:var(--credit-secondary)}.credit-course-list[open]>summary .icon,.credit-options[open]>summary .icon{transform:rotate(90deg)}.credit-course-list-content{padding-bottom:12px}.credit-details .field-help{color:var(--credit-secondary);font-size:12px}.credit-category{border-bottom:1px solid var(--line)}.credit-category:last-child{border-bottom:0}.credit-category>summary{padding:12px 0;font-size:12px;font-weight:600}.credit-category>summary small{display:inline;margin-left:10px;color:var(--credit-secondary);font-size:11px;font-weight:400}.credit-course-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0}.credit-course-row>span{min-width:0;overflow-wrap:anywhere}.credit-course-row strong{display:block;font-size:12px}.credit-course-row small{display:block;margin-top:3px;color:var(--credit-secondary);font-size:11px}.credit-course-row .text-button{margin-top:4px;color:var(--brand);font-size:11px}.credit-status-select{width:auto;max-width:116px;flex-shrink:0;padding:8px;font-size:12px;min-height:40px}.credit-options>div{display:grid;justify-items:start;gap:4px;padding-bottom:12px}.credit-options .text-button,.credit-options a{display:inline-flex;align-items:center;gap:6px;min-height:40px;color:var(--brand);font-size:12px}.credit-options a .icon{width:13px;height:13px}.credit-footnote{margin:16px 24px 22px}@media(max-width:650px){.credit-tabs{padding-left:18px;padding-right:56px}.credit-tabs button{font-size:12px}.credit-total{padding:20px 18px}.credit-total h3 strong{font-size:26px}.credit-requirements{padding-inline:18px}.credit-requirement-line{gap:8px;font-size:12px}.credit-fraction{font-size:11px}.credit-fraction b{font-size:13px}.credit-course-list,.credit-options{margin-inline:18px}.credit-report-status{padding-inline:18px}.credit-footnote{margin-inline:18px}}.course-quick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line)}.undo-delete-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:16px;border-radius:9px;background:#edf4fa;color:#214e75;font-size:13px}.undo-delete-notice .button{flex-shrink:0}#toast.has-action{display:flex;align-items:center;gap:12px;padding:6px 10px 6px 16px}#toast.has-action.visible{pointer-events:auto}.toast-action{flex-shrink:0;color:#fff;padding:8px;min-height:40px;text-decoration:underline;text-underline-offset:4px}.delete-mode-actions{position:sticky;bottom:16px;z-index:5;background:var(--surface);padding:12px;border:1px solid var(--line);border-radius:10px}@media(max-width:650px){.feedback-banner{align-items:flex-start;flex-direction:column;gap:12px;padding:14px;margin-top:20px}.feedback-banner>div{gap:10px}.feedback-banner-icon{width:36px;height:36px;border-radius:9px}.feedback-banner .button{align-self:flex-end;padding:8px 12px;min-height:40px}.feedback-banner strong{font-size:13px}.delete-mode-actions{bottom:calc(80px + env(safe-area-inset-bottom))}.undo-delete-notice{padding:10px 12px;font-size:12px}}.timetable-delete-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:10px 12px;border:1px solid #edcccc;border-radius:9px;background:snow;color:#7d3434;font-size:12px;line-height:1.5}.timetable-delete-banner strong{flex:0 0 auto;white-space:nowrap}.timetable-delete-mode .delete-selectable{position:relative;cursor:pointer}.timetable-delete-mode .delete-selectable:hover{outline:2px solid #dda7a7;outline-offset:-2px}.timetable-delete-mode .delete-selectable.delete-selected{outline:3px solid #b84a4a;outline-offset:-3px}.delete-selection-mark{position:absolute;top:5px;right:5px;display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:#a13b3b;color:#fff;font-size:12px;font-weight:900;opacity:0;transform:scale(.8);transition:opacity .1s ease,transform .1s ease}.delete-selected .delete-selection-mark{opacity:1;transform:scale(1)}.delete-mode-vacant{cursor:default;opacity:.55}.delete-mode-actions{align-items:center}.bulk-delete-confirm-list{max-height:240px;margin:12px 0;padding-left:22px;overflow-y:auto}.bulk-delete-confirm-list li+li{margin-top:5px}#profile-form input:disabled{background:#edf1f5;color:#465568;opacity:1;cursor:not-allowed}.notification-settings fieldset{display:grid;gap:12px}.notification-settings>.field-help{margin-top:16px}.notification-settings .dialog-actions{display:flex;flex-wrap:wrap;gap:8px}.help-page h2:not(:first-child){margin-top:32px}.help-page p,.help-page li{max-width:70ch}.username-tooltip-host{position:relative;display:block}.username-hover-tip{position:absolute;left:0;top:calc(100% - 2px);z-index:30;width:max-content;max-width:min(360px,100%);box-sizing:border-box;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#172033;color:#fff;font-size:12px;line-height:1.5;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(2px);transition:opacity .12s ease,transform .12s ease,visibility .12s ease}.username-tooltip-host:has(input:hover) .username-hover-tip{opacity:1;visibility:visible;transform:translateY(0)}.week-table thead th{color:#3d5066;font-size:13px;font-weight:800}.week-period-start,.week-period-end{color:#4d6177;font-size:9px;font-weight:700}.week-period-layout strong{color:#25384d;font-size:18px;font-weight:800}.week-period-layout strong span{font-size:8px;font-weight:700}.week-course-name{color:#243b53;font-size:12.5px;line-height:1.34;font-weight:800}.week-course-room{color:#3b5067;font-size:9.5px;line-height:1.28;font-weight:650}.week-cell.vacant-cell{color:#52657a;font-size:10.5px;font-weight:650}#notification-settings{scroll-margin-top:12px;outline:none}@media(max-width:700px){.week-table thead th{font-size:11.5px}.week-period-start,.week-period-end{font-size:8px}.week-period-layout strong{font-size:16px}.week-period-layout strong span{font-size:7px}.week-course-name{font-size:10.5px;line-height:1.3}.week-course-room{font-size:8.2px;line-height:1.22}.week-cell.vacant-cell{font-size:9px}}@media(max-width:390px){.week-table thead th{font-size:11.5px}.week-period-start,.week-period-end{font-size:8px}.week-course-name{font-size:10.5px}.week-course-room{font-size:8.2px}}@media(max-width:650px){.location-detail:has(#place-search){display:none}}@media(max-width:650px){button,a,[role=button],input,select,textarea{touch-action:manipulation}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}.mobile-nav{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}.topbar{height:calc(79px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}@media(max-width:650px){.topbar{height:calc(66px + env(safe-area-inset-top))}}@media(min-width:651px){.sidebar{overflow-y:auto;width:calc(240px + env(safe-area-inset-left));padding-top:calc(34px + env(safe-area-inset-top));padding-left:calc(22px + env(safe-area-inset-left));padding-bottom:calc(20px + env(safe-area-inset-bottom))}.workspace{margin-left:calc(240px + env(safe-area-inset-left));width:calc(100% - 240px - env(safe-area-inset-left));padding-right:env(safe-area-inset-right)}}@media(min-width:651px)and (max-width:1100px){.sidebar{width:calc(200px + env(safe-area-inset-left));padding-top:calc(30px + env(safe-area-inset-top));padding-left:calc(16px + env(safe-area-inset-left));padding-bottom:calc(30px + env(safe-area-inset-bottom))}.workspace{margin-left:calc(200px + env(safe-area-inset-left));width:calc(100% - 200px - env(safe-area-inset-left))}}button,a,summary,[role=button],.nav-item,.week-cell,.schedule-cell,.location-item{-webkit-tap-highlight-color:transparent}@media(hover:none)and (pointer:coarse){button:focus,button:focus-visible,a:focus,a:focus-visible,summary:focus,summary:focus-visible,[role=button]:focus,[role=button]:focus-visible{outline:none!important;box-shadow:none!important}.slot-picker input:focus-visible+span,.builder-chip input:focus-visible+span{outline:none!important;box-shadow:none!important}}.week-course-duration{display:none!important}.week-table td{height:auto!important}.week-cell{height:auto!important;min-height:116px!important;overflow:visible!important}.week-course-room,.week-table td:has(.week-cell:nth-child(2)) .week-course-room{display:block;-webkit-box-orient:initial;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}html.simulation-mode .app button,html.simulation-mode .app a,html.simulation-mode .app input,html.simulation-mode .app select,html.simulation-mode .app textarea,html.simulation-mode .app summary,html.simulation-mode #mobile-nav button,html.simulation-mode #mobile-nav a,html.simulation-mode #dialog button,html.simulation-mode #dialog a,html.simulation-mode #dialog input,html.simulation-mode #dialog select,html.simulation-mode #dialog textarea{pointer-events:none!important}html.simulation-mode .app .date-control{display:none!important}html.simulation-mode .simulation-toolbar{pointer-events:auto!important}.week-table tbody tr{height:1px}.week-table td{height:1px!important}.week-table td:not(:has(.week-cell:nth-child(2)))>.week-cell{height:100%!important;min-height:116px!important}.week-table td:not(:has(.week-cell:nth-child(2)))>.week-cell.vacant-cell{height:100%!important;min-height:116px!important}.week-table td:has(.week-cell:nth-child(2))>.week-cell{height:calc((100% - (var(--week-course-count, 2) - 1) * 2px) / var(--week-course-count, 2))!important}.week-table td:has(.week-cell:nth-child(2))>.week-cell:last-child{margin-bottom:0}.timetable-builder-form .form-columns{align-items:start}.timetable-builder-form .form-columns>label{align-self:start;align-content:start;grid-auto-rows:max-content}.timetable-builder-form .form-columns>label{gap:5px}.timetable-builder-form .builder-priority-note{display:block;margin:-1px 0 1px;color:var(--muted);font-size:10px;font-weight:500;line-height:1.35}.timetable-builder-form .builder-period-fields select{margin-top:0}#toast[popover]{position:fixed;inset:auto auto 30px 50%;width:max-content;max-width:calc(100vw - 32px);height:auto;margin:0;border:0;overflow:visible;transform:translate(-50%,15px)}#toast[popover].visible{transform:translate(-50%)}#toast[popover]::backdrop{background:transparent;backdrop-filter:none;pointer-events:none}@media(max-width:650px){#toast[popover]{bottom:calc(88px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 28px)}}.notification-setup-steps{margin:12px 0;padding-left:22px}.notification-setup-steps li+li{margin-top:6px}.preview-footer .copyright{margin:6px 0 0;color:inherit;font-size:inherit}.builder-result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:16px 0}.builder-result-toolbar .catalog-tabs{margin:0;column-gap:20px}.builder-result-toolbar>.button{margin-left:auto}@media(max-width:650px){.builder-result-toolbar{align-items:flex-start}.builder-result-toolbar .catalog-tabs{width:100%}.builder-result-toolbar>.button{margin-left:0}}#builder-plans{margin-top:26px}.builder-individual-results{margin-top:42px}.builder-section-heading{margin-bottom:16px}.builder-section-heading h2{margin:0 0 5px;font-size:20px;line-height:1.4}.builder-section-heading h2 small{margin-left:5px;color:var(--muted);font-size:12px;font-weight:700}.builder-section-heading .subtitle{margin:0}.builder-preview-note{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:11px 13px;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;color:#315d85;font-size:12px;font-weight:700}.builder-preview-note .icon{flex:0 0 auto;width:16px;height:16px}.builder-preview-summary{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}.builder-preview-summary span{padding:5px 8px;border-radius:999px;background:#f2f5f8;color:#526170;font-size:10px;font-weight:700}.builder-preview-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:16px}@media(max-width:650px){.builder-result-toolbar .catalog-tabs{column-gap:14px}#builder-plans{margin-top:22px}.builder-individual-results{margin-top:34px}.builder-preview-actions{justify-content:stretch}.builder-preview-actions .button{flex:1 1 150px;justify-content:center}}.course-classroom-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.course-location-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px}.course-location-link{display:inline-flex;align-items:center;gap:4px;min-height:0;padding:0;border:0;background:transparent;color:var(--brand);font:inherit;line-height:inherit;white-space:nowrap;cursor:pointer}.course-location-link:hover{text-decoration:underline;text-underline-offset:2px}.course-location-link .icon{width:1em;height:1em;flex:0 0 1em}@media(min-width:651px){.map-place-summary{display:block}.map-place-summary>div{min-width:0;width:100%}.map-place-summary strong{display:block;width:100%;word-break:keep-all;overflow-wrap:normal}.map-place-summary .floor-map-open-button{width:100%;margin-top:10px;justify-content:center}}.choice-field,.timetable-builder-form .choice-field{border:0;padding:0;margin:0;min-width:0}.choice-field legend{margin-bottom:8px;font-size:12px;font-weight:700;color:var(--muted)}.choice-buttons{display:flex;gap:4px}.choice-buttons .choice-button{position:relative;flex:1;min-width:0;margin:0;cursor:pointer}.choice-button input{position:absolute;width:1px;height:1px;opacity:0}.choice-button span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:4px;border:1px solid var(--line);border-radius:7px;background:var(--panel, #fff);font-size:12px;font-weight:700;white-space:nowrap}.choice-button input:checked+span{color:#245c91;background:#edf4fa;border-color:#8cafce}.choice-button input:focus-visible+span{outline:2px solid #245c91;outline-offset:2px}.catalog-slot-filters{display:grid;gap:12px;margin:16px 0}.room-filter-grid{grid-template-columns:1fr;align-items:start}.room-filter-grid>label{max-width:160px}.feedback-back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:14px}.feedback-back-link .icon{transform:rotate(180deg)}.feedback-inbox-entry{display:flex;align-items:center;gap:12px;width:100%;margin-bottom:20px;padding:14px 16px;text-align:left;border:1px solid #d7e4f1;border-radius:12px;background:var(--brand-soft);color:var(--ink)}.feedback-inbox-entry:hover{border-color:#b4cce1}.feedback-inbox-entry>.icon{color:var(--brand)}.feedback-inbox-entry>.icon:last-child{width:16px;color:#8a9bb0}.feedback-inbox-entry>span{flex:1;min-width:0;display:grid;gap:2px}.feedback-inbox-entry strong{font-size:14px}.feedback-inbox-entry small{font-size:12px;color:#4f6378}.feedback-inbox{padding:0}.feedback-inbox-row{display:flex;align-items:flex-start;gap:14px;width:100%;padding:18px 22px;text-align:left;border-bottom:1px solid var(--line);color:var(--ink)}.feedback-inbox-row:last-child{border-bottom:0}.feedback-inbox-row:hover{background:#f5f8fb}.feedback-inbox-row .notice-indicator{margin-top:7px}.feedback-inbox-row>.icon{align-self:center;width:16px;color:#a4a5ad}.feedback-inbox-content{flex:1;min-width:0;display:grid;gap:6px}.feedback-inbox-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11px;color:var(--muted)}.feedback-inbox-meta time{margin-left:auto;font-variant-numeric:tabular-nums}.feedback-inbox-row strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;font-weight:500;line-height:1.7;overflow-wrap:anywhere}.feedback-inbox-row.unread strong{font-weight:650}.feedback-inbox-row small{font-size:11px;color:#536271;overflow-wrap:anywhere}.feedback-status{padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600;background:#f0f0f3;color:#696b75}.feedback-status-new{background:var(--brand-soft);color:var(--brand)}.feedback-status-planned{background:#fff7e5;color:#7b6231}.feedback-status-done{background:#eef9f5;color:#376a58}.feedback-message-meta{display:flex;flex-wrap:wrap;gap:2px 12px;margin:0 0 12px;font-size:12px;color:var(--muted)!important}@media(max-width:650px){.feedback-inbox-row{gap:10px;padding:15px 14px}.feedback-inbox-entry{margin-bottom:14px;padding:12px 14px}}.feedback-message-text{color:var(--ink)!important;white-space:pre-wrap;overflow-wrap:anywhere}.feedback-message label{display:grid;gap:8px;margin-top:18px;font-size:13px;font-weight:600}.feedback-status-note{margin:8px 0 0}.feedback-message a{color:var(--brand);text-decoration:underline}.skeleton-line{display:block;width:84%;height:13px;max-width:100%;border-radius:4px;background:var(--skeleton-color, #e4e9ef)}.skeleton-medium{width:56%;height:10px}.skeleton-short{width:32%;height:11px}.skeleton-title{width:78%;height:26px;margin:10px 0}.skeleton-date{width:108px;height:12px}.skeleton-button{width:120px;height:40px;flex:none}.skeleton-badge{width:48px;height:22px;flex:none}.skeleton-time{width:50px;height:36px;flex:none}.skeleton-copy{flex:1;min-width:0;display:grid;gap:12px}.skeleton-row{display:flex;align-items:center;gap:18px;min-height:82px;padding:16px 0}.skeleton-row+.skeleton-row{border-top:1px solid var(--line)}.skeleton-section.panel{padding:0 24px}.skeleton-toolbar{min-height:40px}.page-skeleton .current-summary{min-height:132px;--skeleton-color: #c5d5e5}.skeleton-day-heading{display:flex;gap:35px;padding:12px 0}.skeleton-day-row{display:flex;align-items:center;gap:28px;min-height:78px;padding:16px 0;border-top:1px solid var(--line)}.skeleton-map{height:210px;border-radius:10px;background:var(--skeleton-color, #e4e9ef)}.page-skeleton .shortcut-grid .skeleton-button{flex:1;min-width:0;width:auto;margin-top:12px}.skeleton-table-row{display:grid;grid-template-columns:40px repeat(5,minmax(0,1fr));gap:8px;padding:7px 0}.skeleton-table-row .skeleton-line{width:100%;height:62px}.skeleton-table-row:first-child .skeleton-line{height:20px}.app-starting #profile-name{color:transparent;background:#e4e9ef;border-radius:4px;min-width:76px;max-height:18px;overflow:hidden}.app-starting #sync-action,.app-starting .preview-footer{visibility:hidden}@media(max-width:700px){.page-skeleton .page-heading>.skeleton-button{width:92px;height:36px}.page-skeleton .current-summary{min-height:116px}.skeleton-day-row{min-height:72px;gap:18px}}.today-toolbar{flex-wrap:wrap}.weather-bar{display:flex;gap:8px;flex:0 1 440px;min-width:0}.weather-bar:empty{display:none}.weather-hours,.weather-days{margin:0;padding:6px 2px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:8px}.weather-hours{flex:1;min-width:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:1px}.weather-hour,.weather-day{display:grid;justify-items:center;align-content:center;gap:2px;min-width:0;line-height:1.15;font-variant-numeric:tabular-nums;white-space:nowrap}.weather-days{flex:none;display:grid;grid-auto-flow:column;grid-auto-columns:54px;column-gap:1px;border-color:#dfe7f0;background:var(--brand-soft)}.weather-days.is-loading{width:110px}.weather-time{font-size:10px;color:var(--muted)}.weather-day .weather-time{color:var(--brand);font-weight:700}.weather-temp{font-size:12px;font-weight:650}.weather-hour{padding:3px 0;border-radius:6px}.weather-hour.is-wet{background:#e8f1fb}.weather-rain{min-height:11px;font-size:9px;font-weight:700;letter-spacing:-.03em;color:#2468c7}.weather-rain small{font-size:8px;font-weight:600}.weather-range{font-size:11px;color:var(--muted)}.weather-high,.weather-low{font-weight:700}.weather-high{color:#cf3a36}.weather-low{color:#2468c7}.weather-icon{width:22px;height:22px;overflow:visible}.wx-sun{fill:#f6a623}.wx-sun-ray{fill:none;stroke:#f6a623;stroke-width:2;stroke-linecap:round}.wx-moon{fill:#e9bf3c}.wx-cloud{fill:#b7bec8}.wx-cloud-front{stroke:var(--surface);stroke-width:1.5}.weather-days .wx-cloud-front{stroke:var(--brand-soft)}.wx-fog,.wx-snow,.wx-rain-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.wx-fog{stroke:#b7bec8}.wx-rain{fill:#2f7bd9}.wx-rain-line{stroke:#2f7bd9}.wx-snow{stroke:#6fb3e8}.wx-bolt{fill:#f2b705}.weather-bar .is-loading{min-height:65px}.weather-hours.is-loading{background:linear-gradient(90deg,var(--surface),#f1f2f4,var(--surface))}@media(max-width:650px){.weather-bar{flex:1 1 300px;gap:6px}.weather-days{grid-auto-columns:44px}.weather-days.is-loading{width:90px}.weather-hours,.weather-days{padding:4px 2px}.weather-icon{width:20px;height:20px}}.notification-settings fieldset+fieldset{margin-top:20px}.notification-settings legend{font-weight:650;font-size:14px}.notification-settings h4{margin:20px 0 8px;font-size:14px}.notification-settings select{width:100%}.notification-settings button:disabled{cursor:not-allowed;opacity:.55}.settings-links{display:flex;flex-wrap:wrap;gap:4px 18px}.changelog{display:grid;gap:28px;max-width:760px}.changelog-release h2{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:15px}.changelog-latest{padding:2px 8px;border-radius:999px;background:var(--brand);color:#fff;font-size:10px;font-weight:700}.changelog-items{display:grid;gap:10px}.changelog-item{padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.changelog-item.kind-new{--kind-color: #3c8c66;--kind-soft: #e6f3ec}.changelog-item.kind-better{--kind-color: #2f6fb0;--kind-soft: #e8f1fa}.changelog-item.kind-fix{--kind-color: #8a8f99;--kind-soft: #f0f1f3}.changelog-item-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}.changelog-kind{padding:2px 7px;border-radius:5px;background:var(--kind-soft);color:var(--kind-color);font-size:10px;font-weight:800}.changelog-item h3{margin:0;font-size:14px;line-height:1.5}.changelog-item p{margin:6px 0 0;font-size:12.5px;line-height:1.75;color:#4b4e57}.changelog-preview{margin-top:12px;padding:12px;border-radius:8px;background:var(--bg)}.changelog-try{margin-top:8px;font-size:12px}.changelog-weather{margin:0}.changelog-weather .weather-bar{flex:1 1 auto;max-width:380px}.changelog-flow{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.changelog-flow .coop-store-card{width:150px;min-height:0}.changelog-arrow .icon{width:18px;height:18px;color:var(--muted)}.changelog-map-pin{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.changelog-pin-icon{grid-row:span 2;width:30px;height:30px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--green);color:#fff;box-shadow:0 2px 6px #24334733}.changelog-pin-icon .icon,.changelog-chip .icon{width:16px;height:16px}.changelog-map-pin strong{font-size:12px}.changelog-map-pin small{font-size:10px;color:var(--muted)}.changelog-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:12px;font-weight:700}.changelog-chip.is-account{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.changelog-notice{display:flex;align-items:flex-start;gap:10px;max-width:340px;padding:10px 12px;border-radius:14px;background:var(--surface);box-shadow:0 4px 14px #25272d1f}.changelog-notice-icon{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:8px;background:var(--brand);color:#fff}.changelog-notice-icon .icon{width:18px;height:18px}.changelog-notice-text>*{display:block}.changelog-notice-text small{font-size:10px;color:var(--muted)}.changelog-notice-text strong{font-size:12.5px}.changelog-notice-text span{font-size:12px;color:#4b4e57}.changelog-train{display:inline-grid;gap:2px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.changelog-train span{font-size:11px;font-weight:700;color:var(--brand)}.changelog-train strong{font-size:13px}.changelog-train b{font-size:24px}.changelog-train small{font-size:10px;color:var(--muted)}@media(max-width:650px){.changelog-item{padding:12px 13px}.changelog-flow{flex-direction:column;align-items:flex-start;gap:6px}.changelog-arrow{margin-left:20px;transform:rotate(90deg)}}.train-page{max-width:1000px;margin:0 auto}.workspace:has(.train-page) .preview-footer{color:#626c7b;font-size:12px}.train-page h1,.train-page h2,.train-page p{margin:0}.train-page-heading{padding-bottom:18px;border-bottom:1px solid #e0e5eb;margin-bottom:23px}.train-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.train-page-heading h1{font-size:30px;letter-spacing:-.035em;line-height:1.4}.train-page-heading h1>span{font-size:.7em;margin-left:3px}.train-current-time{display:flex;align-items:center;gap:7px;font-size:12px;color:#586677;white-space:nowrap}.train-current-time .icon{height:15px;width:15px}.train-current-time strong{font-size:16px;font-variant-numeric:tabular-nums;color:#344458}.train-page .train-service-date{font-size:12px;color:#586677;margin:-12px 0 20px}.train-section-caption{margin-bottom:12px}.train-section-caption h2{font-size:14px;font-weight:650}.train-directions{display:grid;grid-template-columns:1fr 1fr;gap:18px}.train-direction{min-width:0;padding:25px 27px 23px;border-radius:14px;background:#eaf1f8;color:#245c91}.train-direction.train-kichijoji{background:#edf3ef;color:#316b58}.train-direction-heading{display:flex;justify-content:space-between;align-items:center;gap:5px}.train-direction-heading h2{font-size:23px;color:inherit;letter-spacing:-.025em;line-height:1.5;white-space:nowrap}.train-direction-heading h2>span{font-size:12px;margin-left:5px;font-weight:500}.train-direction-heading>span{font-size:26px;line-height:1}.train-countdown{display:flex;align-items:baseline;gap:7px;padding:9px 0 5px;min-height:105px}.train-countdown>span{font-size:13px}.train-countdown .train-minutes{font-size:80px;font-weight:650;letter-spacing:-.05em;line-height:1.1;font-variant-numeric:tabular-nums}.train-countdown>.train-unit{font-size:20px;font-weight:600}.train-departure-detail{display:flex;align-items:center;gap:12px;font-size:14px;font-variant-numeric:tabular-nums}.train-type{font-size:11px;background:#e4e9ef;color:#4d5c6c;border-radius:4px;padding:2px 6px;white-space:nowrap}.train-kichijoji .train-type{background:#e0e9e3;color:#415f50}.train-page .train-destination-label{font-size:12px;margin-top:7px;overflow-wrap:anywhere}.train-destination-label>span{display:block;margin-top:3px}.train-page .train-first-label{margin-top:13px;font-size:13px}.train-first-label+.train-countdown{min-height:60px;padding-top:5px}.train-first-time{font-size:34px;font-weight:650;font-variant-numeric:tabular-nums}.train-soon{font-size:36px;font-weight:700;align-self:center;letter-spacing:-.04em}.train-upcoming{margin-top:26px;padding:0 25px;background:var(--surface);border:1px solid #e1e6ed;border-radius:13px}.train-upcoming-heading{display:flex;justify-content:space-between;align-items:center;min-height:58px;border-bottom:1px solid var(--line)}.train-upcoming-heading h2{font-size:14px}.train-upcoming-heading>span{font-size:12px;color:#687481}.train-upcoming ol{list-style:none;margin:0;padding:0}.train-upcoming-row{display:grid;grid-template-columns:75px minmax(0,1fr) 70px 92px;align-items:center;gap:18px;min-height:57px;border-bottom:1px solid #ebedf1;font-size:14px}.train-upcoming-row:last-child{border-bottom:0}.train-upcoming-row>time{font-weight:650;font-variant-numeric:tabular-nums}.train-row-destination{display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}.train-row-destination>i{width:6px;height:6px;border-radius:50%;background:#245c91;flex:none}.train-row-destination.train-kichijoji>i{background:#316b58}.train-upcoming-row>.train-type{justify-self:start}.train-upcoming-row>strong{text-align:right;font-size:13px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.train-source-note{display:flex;align-items:start;gap:8px;margin-top:22px;color:#626c7b;font-size:12px;line-height:1.8}.train-source-note>.icon{width:15px;height:15px;margin-top:3px}.train-source-links{display:flex;align-items:center;gap:22px;margin-top:5px;flex-wrap:wrap}.train-source-links a,.train-source-links button{display:flex;align-items:center;gap:6px;color:#245c91;min-height:44px;font-size:13px;padding:0}.train-source-links button{margin-left:auto}.train-source-links .icon{width:13px;height:13px}.train-source-links a:hover{text-decoration:underline}.train-page .train-source-credit,.train-page .train-fetched-at{color:#626c7b;font-size:11px;line-height:1.8;margin-top:5px}.train-page .train-cache-notice{display:flex;align-items:start;gap:8px;font-size:13px;padding:13px 15px;background:#fff1d9;color:#73531c;border-radius:8px;margin-bottom:18px}.train-cache-notice .icon{width:17px;height:17px;margin-top:2px}.train-empty{background:var(--surface);border:1px solid #e1e6ed;border-radius:14px;min-height:300px;padding:30px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px}.train-empty>.icon{width:30px;height:30px;color:#536d87}.train-empty h2{font-size:17px}.train-empty p{color:#626c7b;font-size:14px}.train-empty a{display:flex;gap:9px;align-items:center;font-size:14px;color:var(--brand);min-height:44px}@media(max-width:650px){.train-page-heading{padding-bottom:16px;margin-bottom:20px}.train-page-heading h1{font-size:26px}.train-current-time{font-size:11px;gap:5px}.train-current-time strong{font-size:14px}.train-section-caption{margin-bottom:10px}.train-section-caption h2{font-size:13px}.train-directions{gap:11px}.train-direction{padding:17px 16px;border-radius:12px}.train-direction-heading h2{font-size:19px}.train-direction-heading h2>span{font-size:11px;margin-left:3px}.train-direction-heading>span{font-size:20px}.train-countdown{min-height:83px;gap:4px;padding:10px 0 5px}.train-countdown .train-minutes{font-size:64px}.train-countdown>span{font-size:11px}.train-countdown>.train-unit{font-size:15px}.train-departure-detail{font-size:12px;gap:9px}.train-type{padding:1px 5px}.train-page .train-destination-label{font-size:11px;margin-top:6px}.train-upcoming{margin-top:21px;padding:0 17px}.train-upcoming-heading{min-height:50px}.train-upcoming-heading h2{font-size:13px}.train-upcoming-heading>span{font-size:11px}.train-upcoming-row{grid-template-columns:47px minmax(0,1fr) auto auto;gap:10px;min-height:54px;font-size:12px}.train-row-destination{gap:6px;font-size:12px}.train-row-destination>i{width:5px;height:5px}.train-upcoming-row>strong{font-size:12px}.train-source-note{margin-top:18px}.train-source-links{gap:18px}.train-source-links a,.train-source-links button{font-size:12px}.train-soon{font-size:26px}.train-first-time{font-size:27px}.train-page .train-first-label{font-size:12px}.mobile-nav:has(a[href="#trains"]){padding-left:4px;padding-right:4px}.mobile-nav:has(a[href="#trains"]) .nav-item{min-width:0;padding-inline:0;font-size:10px;color:#626c7b}.mobile-nav:has(a[href="#trains"]) .nav-item.active{color:var(--brand)}}@media(max-width:360px){.train-page-heading h1{font-size:24px}.train-direction{padding:16px 12px}.train-direction-heading h2{font-size:18px}.train-direction-heading>span{display:none}.train-countdown .train-minutes{font-size:58px}.train-upcoming{padding:0 13px}.train-upcoming-row{grid-template-columns:44px minmax(0,1fr) auto;gap:8px}.train-upcoming-row>.train-type{display:none}.train-current-time{gap:4px}.train-current-time .icon{display:none}.train-source-links{gap:13px}}
