/* HokieFlow design tokens — matched to the supplied mobile reference. */
:root{--paper:#f6f5f0;--ink:#20211f;--muted:#777974;--quiet:#999b95;--line:#e4e3dc;--maroon:#720039;--orange:#ef791e;--orange-ink:#b74c08;--sans:Arial,Helvetica,sans-serif;--serif:Georgia,'Times New Roman',serif;--radius:12px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:wait;opacity:.65}button,a,textarea,select{outline-offset:4px}button:focus-visible,a:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--orange)}button,a{transition:transform .18s ease,background .18s,color .18s}button:active,a:active{transform:scale(.97)}h1,h2,h3,h4,p{margin:0}svg{flex-shrink:0;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;top:-90px;left:10px;background:var(--maroon);color:white;padding:12px;z-index:100}.skip:focus{top:10px}.desktop-brand{display:none}.app{max-width:620px;margin:auto;min-height:100dvh}.app main{padding:30px 26px 110px;outline:0}.preview-label{font-size:9px;font-weight:700;letter-spacing:1.8px;color:var(--muted);margin-bottom:20px}.home-header{display:flex;justify-content:space-between;gap:22px;padding-bottom:31px;border-bottom:1.5px solid var(--maroon);margin-bottom:27px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}h1{font-family:var(--serif);font-size:clamp(34px,8.8vw,44px);line-height:1.07;letter-spacing:-1.5px;font-weight:700;margin-top:11px}h1 span{color:var(--maroon)}h1 b{color:var(--orange)}.clock-box{max-width:115px;text-align:right;padding-top:1px;display:flex;align-items:flex-end;flex-direction:column;gap:8px;color:var(--maroon)}.clock-box svg{width:22px;height:22px}.clock-box span{font-size:11px;line-height:1.6;color:var(--muted)}.planner h2{margin-bottom:17px}.planner label{display:block;font-size:18px;line-height:1.4;letter-spacing:-.4px;font-weight:650;margin-bottom:13px}textarea{resize:vertical;min-height:100px;width:100%;border:1px solid #d9d8d0;border-radius:var(--radius);padding:14px;background:#ffffff66;color:var(--ink);font-size:15px;line-height:1.55}textarea::placeholder{color:#868880}.helper{color:var(--muted);font-size:11px;line-height:1.65;margin-top:11px}.primary{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--maroon);color:white;min-height:51px;width:100%;border-radius:var(--radius);padding:13px 19px;font-weight:700;font-size:15px;margin-top:21px}.primary:hover{background:#8b104d;box-shadow:0 4px 14px #72003916}.primary svg{width:20px;height:20px;transition:translate .2s}.primary:hover svg{translate:4px 0}.prompt-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.prompt-chips button{padding:8px 11px;font-size:11px;border-radius:30px;border:1px solid #dcdad1;background:transparent}.prompt-chips button:hover{background:#ece8df}.parser-note{font-size:10px}.empty{padding:34px 0;border-bottom:1px solid var(--line)}.empty-icon{color:var(--orange);display:inline-flex;margin-bottom:13px}.empty h2{font-family:var(--serif);font-size:25px;letter-spacing:-.6px}.empty p{color:var(--muted);font-size:13px;line-height:1.7;margin-top:10px;max-width:370px}.empty.compact{padding:20px 0;border:0}.empty.compact h3{font-size:16px}.answer{border-top:1px solid var(--line);padding-top:25px;margin-top:29px;scroll-margin-top:25px}.answer-top,.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.badge{display:inline-block;border-radius:5px;background:#e9e7df;color:#65665f;padding:3px 7px;font-size:9px;line-height:1.6;font-weight:600;letter-spacing:.1px;white-space:nowrap}.answer h3{font-family:var(--serif);font-size:29px;letter-spacing:-.8px;line-height:1.15;margin:17px 0 13px}.answer>p{color:#62665e;font-size:13px;line-height:1.7}.answer .helper{font-size:10px}.needs-detail h3{color:var(--maroon)}.clarification{font-size:18px!important;color:var(--ink)!important;font-weight:650;margin:15px 0}.interpretation{border-left:2px solid #bbb7ab;padding-left:10px;margin:15px 0;font-size:11px!important}.plan-metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin:22px 0 25px}.plan-metrics span{display:block;font-size:9px;letter-spacing:1px;color:var(--muted);margin-bottom:6px}.plan-metrics strong{font-size:17px;font-weight:600;letter-spacing:-.5px}.plan-metrics>div:last-child strong{color:var(--maroon)}.itinerary-label{margin-bottom:9px}.leg-row{width:100%;display:flex;align-items:flex-start;text-align:left;gap:12px;border-bottom:1px solid var(--line);padding:20px 0}.leg-row:last-child{border:0}.leg-row:hover{background:#eeede6}.leg-row time{font-size:10px;color:var(--muted);min-width:57px;padding-top:4px}.timeline-dot{width:6px;height:6px;border-radius:50%;background:#666b60;flex-shrink:0;margin-top:8px}.timeline-dot.orange{background:var(--orange)}.leg-copy{flex:1;min-width:0}.leg-copy strong{display:block;font-size:14px}.leg-copy small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.leg-source{display:block;font-size:9px;color:var(--muted);margin-top:8px;line-height:1.5}.leg-duration{color:var(--maroon);font-size:25px;line-height:1.1;text-align:right;font-weight:400;min-width:35px}.leg-duration small{display:block;font-size:9px;color:var(--orange-ink);margin-top:5px}.bus-section{margin-top:32px}.vehicle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;width:100%;margin-top:20px;padding:0 0 13px}.vehicle-row strong{font-size:16px;display:block}.vehicle-row small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.bus-measures{display:flex;gap:8px;text-align:center}.bus-measures b{background:#e8e7df;border-radius:5px;padding:7px 8px;font-size:12px;font-weight:650;white-space:nowrap}.bus-measures b:first-child{background:#f4e1ce;color:#9f440c}.bus-measures small{font-size:8px;color:inherit;font-weight:400;margin-top:3px}.preview-note{font-size:9px;text-align:center;color:var(--muted);border-top:1px solid var(--line);padding-top:19px;margin-top:34px;line-height:1.7}.page-heading{border-bottom:1.5px solid var(--maroon);padding-bottom:30px;margin-bottom:29px}.page-heading h1{margin-top:13px}.page-heading+.answer{border:0;padding-top:0}.notice{background:#ece9e0;border-left:3px solid var(--orange);padding:14px 15px;margin-top:19px;border-radius:0 8px 8px 0;color:#655b4e;font-size:12px;line-height:1.7}.notice strong{color:#34342f}.notice p{margin-top:5px}.error{background:#f6e5e8;color:#7b2040;border-left:3px solid var(--maroon);padding:15px;border-radius:6px;font-size:13px;margin-bottom:20px}.text-button{display:flex;align-items:center;gap:10px;color:var(--maroon);font-size:12px;font-weight:600;min-height:44px}.text-button svg{width:17px;height:17px}.food-card h2{font-family:var(--serif);font-size:30px;margin:20px 0 8px;line-height:1.1;letter-spacing:-.7px}.food-card>p{font-size:13px;color:var(--muted)}.nutrition{display:flex;gap:35px;padding:25px 0}.nutrition strong{display:block;font-size:32px;font-weight:400;color:var(--maroon)}.nutrition span{font-size:10px;color:var(--muted)}.allergen{padding:16px;border:1px dashed #9a9384;border-radius:8px;font-size:12px;background:#eeece3}.allergen strong{letter-spacing:.3px}.allergen p{font-size:11px;margin-top:7px;color:#6e685c}.allergen.listed{border-style:solid;background:#f5e4d7}.settings{border-top:1px solid var(--line)}.settings button{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;padding:21px 0;border-bottom:1px solid var(--line);text-align:left}.settings strong{display:block;font-size:14px}.settings small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.switch{width:35px;height:21px;border-radius:20px;background:#ccccc2;position:relative;flex-shrink:0}.switch:after{content:'';position:absolute;left:3px;top:3px;background:white;width:15px;height:15px;border-radius:50%;transition:translate .2s}.settings [aria-checked=true] .switch{background:var(--maroon)}.settings [aria-checked=true] .switch:after{translate:14px 0}.review-panel{margin-top:30px;background:#eeece5;padding:20px;border-radius:12px}.review-panel label{display:block;font-size:12px;margin:15px 0 9px}.review-panel select{width:100%;background:var(--paper);border:1px solid #d1cec2;padding:12px;border-radius:7px;color:var(--ink)}.roadmap{margin-top:35px}.roadmap>div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:16px 0;font-size:13px}#navigation{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:620px;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);background:#f6f5f0f5;backdrop-filter:blur(15px);padding:12px 9px calc(14px + env(safe-area-inset-bottom))}#navigation button{display:flex;flex-direction:column;align-items:center;gap:6px;color:#7f837a;font-size:10px;font-weight:600;min-height:45px;position:relative}#navigation button[aria-current=page]{color:var(--orange-ink)}#navigation button[aria-current=page] svg{color:var(--orange);animation:icon-in .3s ease-out}#navigation button:hover{color:var(--maroon)}.detail-sheet,dialog{border:0;padding:0;border-radius:24px 24px 0 0;max-width:560px;width:calc(100% - 20px);max-height:85dvh;background:var(--paper);color:var(--ink);margin:auto auto 0;box-shadow:0 -10px 60px #29201925;overscroll-behavior:contain}dialog::backdrop{background:#22231f65;backdrop-filter:blur(3px)}dialog[open]{animation:sheet-in .28s cubic-bezier(.2,.8,.2,1)}.sheet{padding:33px 25px 35px;position:relative}.handle{position:absolute;top:10px;left:calc(50% - 20px);width:40px;height:4px;border-radius:9px;background:#d2d0c7}.close{position:absolute;top:19px;right:17px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#e9e7df}.sheet h2{font-family:var(--serif);font-size:29px;line-height:1.12;letter-spacing:-.7px;margin:19px 25px 20px 0}.sheet p{font-size:13px;color:#62665e;line-height:1.75;margin:12px 0}.sheet .primary{font-size:12px}.detail-line{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:18px 0;font-size:13px}.detail-line strong{color:var(--maroon)}.limits{padding-left:20px;font-size:13px;line-height:1.8}.limits li{padding-bottom:10px}.sheet-open{overflow:hidden}.loading>span{display:block;height:17px;background:#e7e4db;border-radius:4px;margin-bottom:12px;animation:breathe 1s ease-in-out infinite alternate}.loading>span:first-child{width:65%;height:28px}.loading p{font-size:12px;color:var(--muted);padding:10px 0}.page-enter{animation:page-in .3s ease-out}.will-reveal{opacity:0;translate:0 12px;transition:opacity .5s ease,translate .5s ease}.revealed{opacity:1;translate:0 0}.previous-leg{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 0;font-size:13px}
@keyframes page-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes icon-in{50%{transform:translateY(-3px)}100%{transform:translateY(0)}}@keyframes sheet-in{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{to{opacity:.4}}
@media(min-width:800px){body{background:#eeede7}.desktop-brand{display:block;position:fixed;top:36px;left:40px;font-family:var(--serif);font-size:27px;font-weight:700;letter-spacing:-1.3px}.desktop-brand span{color:var(--maroon)}.desktop-brand small{display:block;font:10px var(--sans);letter-spacing:.3px;color:var(--muted);margin-top:8px}.app{background:var(--paper);box-shadow:0 0 0 1px #e0ded6;max-width:640px}.app main{padding:42px 42px 120px}#navigation{max-width:640px}.home-header{padding-bottom:35px}h1{font-size:45px}.planner label{font-size:21px}.primary{min-height:55px}.leg-copy strong{font-size:16px}.vehicle-row strong{font-size:18px}.clock-box{max-width:130px}.clock-box span{font-size:12px}dialog{margin:auto;border-radius:20px}.sheet{padding:38px}}
@media(min-width:800px) and (max-width:1120px){.desktop-brand{display:none}}
@media(max-width:360px){.app main{padding-left:19px;padding-right:19px}.clock-box{max-width:90px}.home-header{gap:10px}h1{font-size:32px}.leg-row{gap:8px}.leg-row time{min-width:48px;font-size:9px}.bus-measures{gap:5px}.bus-measures b{font-size:10px;padding:7px 5px}}
.reduce-motion *, .reduce-motion *::before,.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduce-motion .will-reveal{opacity:1;translate:none}.reduce-motion button:active{transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.will-reveal{opacity:1;translate:none}button:active,a:active{transform:none}}

@media(max-width:420px){.home-header{gap:12px}.home-header>div:first-child{flex:1}.home-header h1{font-size:32px;letter-spacing:-1.1px}.clock-box{max-width:83px;flex:0 0 83px}.clock-box span{font-size:10px}}
/* Home stack and persistent chat */
:root{--chat-height:108px;--nav-height:86px;--keyboard-gap:0px}
.app main{padding-bottom:calc(var(--chat-height) + var(--nav-height) + 35px)}
#chat-footer{position:fixed;z-index:21;bottom:calc(var(--nav-height) + var(--keyboard-gap));left:50%;transform:translateX(-50%);width:100%;max-width:620px;background:#f6f5f0f5;backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:12px 20px 8px}
.footer-composer{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dad6cc;border-radius:16px;padding:7px 8px 7px 14px;box-shadow:0 3px 13px #30201a08}
.footer-composer textarea{min-height:40px;max-height:100px;height:40px;padding:9px 0;resize:none;border:0;background:transparent;flex:1;font-size:16px;line-height:22px}
.footer-composer textarea:focus-visible{outline:none}.footer-composer:focus-within{outline:2px solid var(--maroon);outline-offset:2px}
.footer-composer button{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:var(--maroon);color:#fff;flex-shrink:0}
.composer-caption{text-align:center;font-size:9px;color:var(--muted);margin:6px 0 0;line-height:1.4}
#navigation{height:var(--nav-height);padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.home-card{padding:0 0 27px;margin-bottom:29px;border-bottom:1px solid var(--line)}
.home-card h3{font-family:var(--serif);font-size:26px;line-height:1.15;margin:19px 0 10px;letter-spacing:-.6px}
.home-card>p{font-size:13px;color:var(--muted);line-height:1.65}
.class-summary{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:19px}
.class-summary h3{font:700 32px/1.1 var(--sans);letter-spacing:-1.2px;margin:0 0 10px}
.class-summary p{font-size:13px;color:#65665f}.class-time{color:var(--maroon);white-space:nowrap;font-size:16px}
.class-card .text-button{margin-top:7px;font-size:11px;min-height:35px}.home-card .section-title{margin-bottom:6px}
#bus-form{margin-top:18px;background:#eeece4;border-radius:12px;padding:16px}
#bus-form label,.class-form label{display:block;font-size:11px;font-weight:600;color:#65665f;margin-bottom:7px}
#bus-form label span{font-weight:400;color:#818277}
#bus-form input,.class-form input{display:block;width:100%;border:1px solid #dcd8cd;border-radius:8px;background:var(--paper);padding:11px 12px;font-size:16px;color:var(--ink);margin:6px 0 13px;min-width:0}
.secondary{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:47px;border:1px solid #cac2b6;border-radius:9px;color:var(--maroon);font-weight:600;font-size:13px;background:#fff8}
.secondary:hover{background:#fff}.secondary svg{width:18px}
.dining-facts{margin-top:19px}.dining-facts>span{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.dining-facts b{font-weight:500;color:#474b41;text-align:right}
.meal-summary{margin-top:18px}.meal-summary>strong{font-size:16px;display:block}.meal-summary>span{font-size:11px;color:var(--muted);display:block;margin:7px 0 14px}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.class-form .primary{margin-top:14px}
.provided-routes>a{display:flex;justify-content:space-between;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.provided-routes small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
body.keyboard-open #navigation{display:none}body.keyboard-open #chat-footer{bottom:var(--keyboard-gap)}
@media(min-width:800px){#chat-footer{max-width:640px;padding-left:30px;padding-right:30px}.app main{padding-bottom:calc(var(--chat-height) + var(--nav-height) + 40px)}}
@media(max-width:360px){.class-summary h3{font-size:28px}.class-time{font-size:13px}.dining-facts>span{font-size:10px}}
html{scroll-padding-bottom:calc(var(--chat-height) + var(--nav-height) + 24px)}
#main button,#main input,#main a{scroll-margin-bottom:calc(var(--chat-height) + var(--nav-height) + 24px)}
.account-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;color:var(--muted);font-size:11px}
.account-pill{min-height:36px;border:1px solid #d8d0c7;border-radius:30px;padding:6px 13px;color:var(--maroon);font-weight:600;background:#fff6}.account-pill:hover{background:white}
.account-panel{border:1px solid var(--line);border-radius:16px;padding:20px;margin:0 0 24px}.account-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#ede1e6;color:var(--maroon);font:700 23px var(--serif);margin-bottom:12px}.account-panel h2{font:700 25px var(--serif);margin-bottom:8px}.account-panel p{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.account-panel h3{margin:22px 0 12px;font-size:14px}.saved-plan{display:flex;gap:10px;border-top:1px solid var(--line);padding:12px 0}.saved-plan>button:first-child{flex:1;min-width:0;text-align:left}.saved-plan strong{font-size:12px;overflow-wrap:anywhere}.saved-plan small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.remove-plan{align-self:center;min-width:40px;min-height:40px;color:var(--maroon)}#auth-error{color:#9b163e;font-size:12px}.class-form input[type=password]{font-family:var(--sans)}

/* Final account and navigation polish. */
.google-signin{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:52px;margin-top:24px;border:1px solid #d7d2ca;border-radius:12px;background:#fff;color:#272822;font-weight:600;font-size:14px;box-shadow:0 2px 5px #21171104}
.google-signin:hover{background:#faf9f6;border-color:#aaa398;box-shadow:0 4px 14px #21171109}.google-mark{font:700 22px Arial,sans-serif;color:#4285f4}.auth-divider{display:flex;align-items:center;gap:14px;margin:22px 0;color:var(--muted);font-size:11px}.auth-divider::before,.auth-divider::after{content:'';height:1px;background:var(--line);flex:1}.auth-message{color:var(--maroon);font-size:12px;line-height:1.6;margin-bottom:12px}.auth-message:empty{display:none}.brand-signoff{margin:34px 0;font:italic 18px/1.6 var(--serif);color:var(--muted);text-align:center}input:focus-visible{outline:2px solid var(--maroon);outline-offset:3px}.account-bar{margin-bottom:28px}.home-card{padding-bottom:32px;margin-bottom:34px}
.calendar-top{display:flex;justify-content:space-between;align-items:center;margin:24px 0}.calendar-top h2{font:700 22px var(--serif)}.calendar-top button{width:44px;height:44px;border-radius:50%;background:#ece8df;font-size:26px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekday{text-align:center;font-size:10px;color:var(--muted);padding:8px 0}.calendar-grid button{min-height:48px;border-radius:12px;position:relative;font-size:14px}.calendar-grid button:hover{background:#ece8df}.calendar-grid button[aria-current=date]{box-shadow:inset 0 0 0 1px var(--maroon)}.calendar-grid button[aria-pressed=true]{background:var(--maroon);color:white}.calendar-grid i{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--orange);bottom:6px;left:calc(50% - 2px)}.schedule-event{display:flex;align-items:center;gap:16px;width:100%;padding:20px 0;text-align:left;border-bottom:1px solid var(--line)}.schedule-event>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.schedule-event strong{font-size:15px}.schedule-event small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.event-date{font-size:12px;color:var(--maroon);min-width:65px}.schedule-event>svg{width:17px;color:var(--maroon)}.day-agenda{margin-top:34px}.class-form select{display:block;width:100%;padding:12px;border:1px solid #dcd8cd;border-radius:8px;background:var(--paper);margin:6px 0 14px}.dining-place{padding:24px 0;border-bottom:1px solid var(--line)}.dining-place h2{font:700 23px var(--serif)}.dining-place>p{font-size:13px;color:var(--muted);margin-top:9px}.dining-location{margin-bottom:20px}
.chat-answer{white-space:pre-wrap;margin-top:18px}.answer-sources{margin-top:20px;font-size:11px;color:var(--muted)}.answer-sources summary{cursor:pointer;color:var(--maroon);padding:8px 0}.answer-sources p{margin:7px 0}
.home-weather{min-width:90px;max-width:125px;text-align:right;padding-top:6px}.home-weather strong{font-size:30px;font-weight:400;line-height:1.2}.home-weather span{display:block;font-size:12px;color:var(--muted);margin-top:5px}.home-weather b{display:block;font-size:11px;font-weight:600;color:var(--orange-ink);margin-top:5px}.home-weather a{display:block;font-size:8px;color:var(--muted);margin-top:8px}.nearby-bus-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0}.nearby-bus-row>span:first-child{min-width:0}.nearby-bus-row strong{display:block;font-size:17px}.nearby-bus-row small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.departure-chips{display:flex;gap:6px;flex-shrink:0}.departure-chips b{display:grid;place-items:center;min-width:42px;padding:8px;border-radius:6px;background:#e7e5dd;font-size:13px;color:#60615a}.departure-chips b.soon{color:white;background:var(--orange)}.bus-footnote{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted)}.nearby-buses .section-title .text-button{font-size:11px}.account-bar:has(>span:empty){justify-content:flex-end}.home-header>div:first-child{min-width:0}@media(max-width:380px){.departure-chips{gap:4px}.departure-chips b{min-width:34px;padding:7px 5px;font-size:12px}.nearby-bus-row small{font-size:10px}.home-weather{min-width:80px}.home-weather strong{font-size:27px}}

.departure-chips b.soon.loop-maroon{background:var(--maroon);color:#fff}.departure-chips b.soon.loop-orange{background:var(--orange);color:#fff}.departure-chips b.soon.loop-unknown{background:#e7e5dd;color:#60615a}.nearby-bus-row .loop-label{font-size:10px;margin-top:3px}

/* Floating composer stays above navigation and respects the virtual keyboard. */
#chat-footer{background:transparent;backdrop-filter:none;border:0;padding:0 18px 12px;pointer-events:none}
.footer-composer{pointer-events:auto;border-radius:22px;box-shadow:0 8px 30px #30201a20;background:#fffffff5;backdrop-filter:blur(18px)}
.dining-nearby-row{width:100%;text-align:left}.departure-chips .distance-chip{background:#eae5db;color:var(--maroon);min-width:62px;text-align:center}
@media(min-width:800px){#chat-footer{padding:0 30px 14px}}

/* Compact Apple Maps directions panel. */
.footer-composer button{border-radius:50%;width:40px;height:40px}
.route-fields{margin-top:22px;border:1px solid #ddd8cf;border-radius:18px;padding:6px 16px;background:#fff8}
.route-field{display:flex;gap:13px;align-items:center;padding:12px 0}.route-field+.route-field{border-top:1px solid var(--line)}
.route-point{display:grid;place-items:center;width:25px;height:25px;flex-shrink:0;border:1px solid #d4c2ca;border-radius:50%;color:var(--maroon);font-size:11px;font-weight:700}
.destination-point{color:var(--orange-ink);border-color:#eacbb3}.route-field>div{min-width:0;flex:1}.route-field label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.route-field select{width:100%;min-height:32px;font-size:15px;color:var(--ink);border:0;background:transparent;padding:0 16px 0 0;text-overflow:ellipsis}
.find-me{display:flex;align-items:center;gap:5px;min-height:44px;font-size:11px;font-weight:650;color:var(--maroon);white-space:nowrap;padding:0 2px}
.route-location:empty,.route-error:empty{display:none}.route-error{color:var(--maroon)}
.route-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:23px;background:#eae7de;padding:5px;border-radius:14px}
.route-modes button{display:flex;gap:9px;align-items:center;justify-content:center;min-height:45px;border-radius:10px;font-size:13px;color:#6d6c65}
.route-modes [aria-pressed=true]{background:var(--maroon);color:white;box-shadow:0 2px 6px #72003915}
.campus-directions{margin-top:24px}.campus-directions[aria-disabled=true]{opacity:.55;cursor:pointer}.route-provider{margin-top:10px;text-align:center;color:var(--muted);font-size:10px}
.bt-service-link{justify-content:center}.route-field select:focus-visible{outline:2px solid var(--maroon);outline-offset:3px}
@media(max-width:380px){.route-fields{padding:4px 12px}.route-field{gap:8px}.route-field select{font-size:14px}.find-me{font-size:10px;gap:3px}}
.account-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;color:var(--maroon);background:transparent}.account-icon svg{width:21px;height:21px}.account-icon:hover{background:#7200390a}
.copyright{font:400 10px/1.5 var(--sans);color:var(--muted);margin:0 0 24px}.nearby-dining{margin-bottom:17px}
.appearance-setting{padding:23px 0;border-bottom:1px solid var(--line)}.theme-options{display:flex;gap:8px;margin-top:16px}.settings .theme-options button{padding:11px 24px;justify-content:center;border:1px solid var(--line);border-radius:10px;width:auto;min-width:90px;font-size:13px}.theme-options button[aria-pressed=true]{background:var(--maroon);color:white;border-color:var(--maroon)}.settings-account{margin-top:40px}.settings-account>.eyebrow{margin-bottom:15px}.login-page>p{color:var(--muted);font-size:13px;margin-bottom:24px}
.about-copy>p{font-size:14px;color:var(--muted);line-height:1.8;margin:18px 0}.about-copy .about-intro{font:25px/1.3 var(--serif);color:var(--ink)}.about-feature{display:flex;align-items:flex-start;gap:18px;padding:24px 0;border-bottom:1px solid var(--line)}.about-feature>span{color:var(--orange-ink);font-size:12px;padding-top:5px}.about-feature h2{font:700 22px/1.25 var(--serif);letter-spacing:-.5px}.about-feature p{color:var(--muted);font-size:13px;line-height:1.8;margin-top:9px}.team-credits{border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.team-credits ul{list-style:none;padding:0;margin:18px 0 0}.team-credits li{padding:8px 0;font-size:15px}.data-credits{color:var(--muted);font-size:11px;margin-top:24px}.data-credits summary{cursor:pointer;min-height:30px}.data-credits p{line-height:1.8}.data-credits a{text-decoration:underline}
:root[data-theme=dark]{color-scheme:dark;--paper:#1c1b1e;--ink:#f4efe8;--muted:#b6b1ac;--quiet:#aaa5a0;--line:#3c363c;--maroon:#f1a8c4;--orange:#ff9850;--orange-ink:#ffac70}
[data-theme=dark] body,[data-theme=dark] .app{background:var(--paper)}
[data-theme=dark] #navigation{background:#211e23f5;border-color:var(--line)}
[data-theme=dark] .footer-composer{background:#2b272ef5;border-color:#504750;box-shadow:0 8px 30px #0005}
[data-theme=dark] .primary,[data-theme=dark] .footer-composer button,[data-theme=dark] .route-modes [aria-pressed=true],[data-theme=dark] .theme-options button[aria-pressed=true],[data-theme=dark] .settings [aria-checked=true] .switch,[data-theme=dark] .calendar-grid button[aria-pressed=true]{background:#8d2856;color:#fff}
[data-theme=dark] .primary:hover{background:#a43267}
[data-theme=dark] .route-fields,[data-theme=dark] .google-signin,[data-theme=dark] .secondary,[data-theme=dark] .account-pill{background:#27232a;border-color:var(--line);color:var(--ink)}
[data-theme=dark] .route-modes,[data-theme=dark] .badge,[data-theme=dark] .close,[data-theme=dark] .calendar-top button,[data-theme=dark] .departure-chips b,[data-theme=dark] .departure-chips .distance-chip{background:#363039;color:var(--ink)}
[data-theme=dark] .route-modes [aria-pressed=true]{background:#8d2856}
[data-theme=dark] .departure-chips .soon.loop-maroon{background:#8d2856;color:#fff}[data-theme=dark] .departure-chips .soon.loop-orange{background:#ef791e;color:#201609}
[data-theme=dark] .notice,[data-theme=dark] .allergen{background:#322b27;color:#dfc9b3}
[data-theme=dark] .error{background:#3d2430;color:#ffc1d5}
[data-theme=dark] .class-form input,[data-theme=dark] .class-form select,[data-theme=dark] textarea{background:#27232a;border-color:#504750;color:var(--ink)}
[data-theme=dark] .footer-composer textarea{background:transparent}
[data-theme=dark] .sheet p,[data-theme=dark] .account-panel p,[data-theme=dark] .class-summary p,[data-theme=dark] .answer>p,[data-theme=dark] .route-modes button,[data-theme=dark] .class-form label,[data-theme=dark] .settings small{color:var(--muted)}
[data-theme=dark] .sheet,[data-theme=dark] dialog{background:var(--paper);color:var(--ink)}
[data-theme=dark] .leg-row:hover,[data-theme=dark] .calendar-grid button:hover{background:#363039}
[data-theme=dark] .account-avatar{background:#422a36;color:#f1a8c4}
