/* Map-first product interface. System typography and a single green action accent. */
:root{--green:#16231d;--ink:#141a16;--muted:#65716b;--line:#e8ece9;--paper:#fff;--mint:#c5f7c5}body{background:#fff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;color:#141a16}.sidebar,main>footer,.breadcrumb,.header-right .demo,.campus-title,.presence-strip,.campus-tools #buildingCount{display:none}main{margin:0;padding:0;max-width:none}main>header{height:74px;padding:0 32px;position:relative;z-index:1100;background:white;border-bottom:1px solid #edf0ed}.app-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#121b15;font-size:22px;font-weight:700;letter-spacing:-1.1px}.app-mark{height:32px;width:32px;background:#c6f7be;color:#17291e;display:grid;place-items:center;border-radius:11px;font-weight:750;font-size:27px;font-style:italic}.campus-pill{letter-spacing:1.4px;font-size:8px;color:#79837d;font-weight:600;border-left:1px solid #dfe5df;margin-left:9px;padding:7px 0 7px 19px}header .icon{width:36px;height:36px;background:#f5f7f4;border:0}.campus-layout{display:block}.campus-map-card{border:0;border-radius:0;position:relative;overflow:hidden}#campusMap{height:calc(100dvh - 74px);min-height:480px;background:#f0f4ec}.leaflet-tile-pane{filter:saturate(.35)}.campus-tools{position:absolute;z-index:1050;top:96px;left:32px;width:360px;margin:0;display:flex;gap:10px;flex-wrap:nowrap}.campus-tools .search{padding:16px 18px;border:1px solid #e7ece4;border-radius:16px;box-shadow:0 5px 25px #203a1910;font-size:21px;min-width:0;background:#fff}.campus-tools input{font-size:13px;font-weight:500;color:#25362a}.campus-tools #resetMap{position:fixed;right:26px;bottom:108px;height:44px;width:44px;padding:0;font-size:0;border-radius:50%;background:#fff;box-shadow:0 4px 20px #152f1b15;border:1px solid #e5eae1}.campus-tools #resetMap::after{content:'⌖';font-size:24px}.map-note{top:26px;left:auto;right:26px;transform:none;box-shadow:none;background:#ffffffed;border:1px solid #e4eae0;border-radius:30px;font-size:10px;padding:10px 14px;max-width:340px;white-space:normal;line-height:1.4}.map-note::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#77a57a;margin-right:7px}.map-note.sample{background:#fff1cd}.campus-legend{position:absolute;left:32px;bottom:105px;z-index:1000;display:flex;padding:12px 16px;background:#ffffffef;border:1px solid #e5eae1;border-radius:30px;font-size:10px;gap:15px;box-shadow:0 4px 16px #203c1910}.building-panel{position:absolute;top:175px;left:32px;width:360px;z-index:1050;min-height:0;max-height:calc(100dvh - 300px);overflow:auto;border:1px solid #e3e9df;border-radius:22px;padding:24px;box-shadow:0 12px 40px #1e36151a;background:#fff}.building-panel h2{font-family:inherit;font-size:28px;font-weight:650;letter-spacing:-1px;line-height:1.2;margin:11px 0 17px}.building-panel .campus-illustration{display:none}.building-panel>.panel-foot{font-size:9px!important;line-height:1.7;margin-bottom:0}.building-panel:not(.has-selection)>p:not(.panel-foot){font-size:13px;line-height:1.7}.building-panel>.eyebrow{font-size:8px;letter-spacing:1.7px;color:#7e8b7d}.building-panel .primary{background:#c6f7be;color:#183322;font-size:12px;font-weight:650;border-radius:12px;padding:15px;min-height:46px}.building-panel .secondary{border-radius:11px;min-height:44px}.badge{border-radius:30px;padding:7px 11px;font-size:10px;font-weight:500}.unknown-note{background:#f5f7f3;border-radius:12px;font-size:10px!important;padding:12px;line-height:1.7!important}.activity-bar{display:none}.area-heading{font-weight:600;color:#53634e;margin-top:22px}.area-row{padding:14px 0}.area-row strong{font-size:12px;font-weight:550}.area-row small{font-size:9px;color:#819078;line-height:1.5}.area-row button{border:0;border-radius:50%;width:40px;height:40px;font-size:11px;background:#f2f6ed}.add-area{margin-top:18px}.panel-close{position:absolute;top:14px;right:14px;background:#f2f5ef;border:0;border-radius:50%;width:30px;height:30px;font-size:20px;color:#72816b}.sheet-handle{display:none}.campus-directory{display:none;position:absolute;top:157px;left:32px;width:360px;z-index:1200;padding:12px;background:#fff;border:1px solid #e4e9e0;border-radius:18px;box-shadow:0 12px 40px #203c1920}.campus-directory.search-open{display:block}.campus-directory .section-title{display:none}.building-list{grid-template-columns:1fr;max-height:55dvh;gap:0}.building-item{border:0;border-bottom:1px solid #edf1e9;border-radius:0;min-height:58px;font-size:12px;padding:12px}.building-item:last-child{border:0}.app-nav{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:1500;display:flex;gap:4px;padding:6px;background:#fff;border:1px solid #e3e9df;box-shadow:0 6px 35px #203c1920;border-radius:24px}.app-nav button{display:flex;align-items:center;gap:8px;padding:13px 24px;border:0;border-radius:18px;color:#8a9583;background:transparent;font-size:11px;font-weight:550;min-height:44px}.app-nav button.active{background:#eaf5e5;color:#274326}.app-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.checkin-dialog{max-width:420px;padding:28px;border-radius:24px}.checkin-dialog h2{font-family:inherit;font-size:27px;letter-spacing:-.8px;line-height:1.2}.checkin-dialog p{font-size:12px;line-height:1.8}.checkin-dialog .primary,.checkin-dialog .secondary{width:100%;min-height:50px;border-radius:13px;margin-top:10px;font-size:12px}.checkin-dialog .primary{background:#c6f7be;color:#183322;font-weight:600}.checkin-dialog small{display:block;font-size:10px;color:#8e9a86;margin-top:16px;line-height:1.7}.sharing-pill{position:absolute;z-index:1040;right:26px;top:143px;max-width:300px;text-align:right;font-size:10px;color:#56764a;background:#fffD;border-radius:20px;padding:9px 13px;display:none}.sharing-pill.visible{display:block}.leaflet-control-zoom{border:1px solid #e4e9e0!important;box-shadow:0 4px 20px #203c1915!important;border-radius:12px!important;overflow:hidden}.leaflet-control-zoom a{color:#6d7f61!important}.leaflet-bottom.leaflet-right{bottom:170px;right:16px}.leaflet-bottom.leaflet-left{bottom:0}.leaflet-control-attribution{background:#ffffffc9!important;color:#86917f!important}.campus-label{border-radius:8px;box-shadow:0 3px 12px #203c1910;padding:7px 10px;font-weight:550}.app-nav~.toast,.toast{bottom:100px;border-radius:16px}.eyebrow{color:#7d8c75}h1,h2,h3{font-family:inherit}dialog{border-radius:22px;border:1px solid #e5eae1;box-shadow:0 20px 100px #152e192a}dialog::backdrop{background:#18311c50;backdrop-filter:blur(7px)}#infoDialog{max-height:85dvh;overflow:auto}#infoDialog p{font-size:12px}#infoDialog .demo-switch{padding:16px;background:#f5f7f1;border-radius:12px;display:flex;font-size:12px;white-space:normal;margin-top:20px}button,input,select{font-family:inherit}button{touch-action:manipulation}input:focus-visible,select:focus-visible{outline:2px solid #88b87a;outline-offset:3px}button:focus-visible{outline-color:#75a565}.report-options label:has(input:checked){background:#e9f5e2;border-color:#94bd7e}.report-options label{border-radius:12px;padding:16px}.field-label select,select{border-radius:12px;min-height:46px}.plan-dialog{border-radius:24px}.plan-tabs button{border-radius:12px;min-height:44px}.plan-report-list>button{min-height:55px;border-radius:12px}.plan-picture{border-radius:14px}.plan-warning{border-radius:12px}#indoorView{max-width:1250px;margin:0 auto;padding:0 32px 100px}#indoorView .heading{padding:24px 0}#indoorView h1{font-size:32px;letter-spacing:-1px}#indoorView .stats{display:none}#indoorView .heading .eyebrow{display:none}.map-panel,.details{border-radius:18px}.room-art{display:none}.details h2{margin-top:18px}.primary{border-radius:12px;min-height:44px}.chip{min-height:40px;border-radius:12px}.details .primary{background:#c6f7be;color:#183322}.app-nav button:hover{background:#f2f7ee}.sheet-collapsed .building-panel{display:none}.reduce-motion *{scroll-behavior:auto}
@media(min-width:1000px){.app-nav button{padding-inline:29px}}@media(max-width:800px){main>header{height:64px;padding:0 20px}.app-brand{font-size:21px}.campus-pill{font-size:7px;margin-left:3px;padding-left:12px}.campus-tools{top:82px;left:16px;right:16px;width:auto}.campus-tools .search{max-width:none;flex-basis:auto;border-radius:15px;padding:14px 16px}.map-note{top:82px;right:16px;font-size:9px;max-width:calc(100% - 32px);padding:8px 12px}.campus-layout{display:block}#campusMap{height:calc(100dvh - 64px);min-height:520px}.building-panel{position:fixed;top:auto;bottom:100px;left:12px;right:12px;width:auto;max-height:49dvh;border-radius:24px;padding:20px 22px;box-shadow:0 -5px 40px #203c1915;z-index:1050}.building-panel:not(.has-selection){max-height:180px}.building-panel:not(.has-selection) .eyebrow,.building-panel:not(.has-selection)>.panel-foot{display:none}.building-panel:not(.has-selection) h2{font-size:22px;margin:0 0 7px}.building-panel:not(.has-selection) h2 br{display:none}.building-panel:not(.has-selection)>p{font-size:11px;margin:0 0 12px}.building-panel:not(.has-selection) .primary{padding:12px;min-height:43px}.building-panel.has-selection h2{font-size:25px;max-width:88%;margin-top:8px}.sheet-handle{display:block;width:34px;height:4px;background:#dbe2d6;border-radius:9px;margin:-9px auto 15px}.panel-close{top:20px;right:18px}.campus-legend{left:16px;bottom:auto;top:119px;right:auto;font-size:8px;padding:8px 11px;gap:11px;border-radius:20px}.campus-tools #resetMap{right:17px;bottom:108px;z-index:1100}.leaflet-bottom.leaflet-right{bottom:164px;right:8px}.app-nav{bottom:18px;border-radius:22px;gap:2px;padding:5px;max-width:calc(100% - 24px);width:370px;justify-content:space-between}.app-nav button{flex:1;flex-direction:column;gap:5px;padding:9px 5px;font-size:9px;border-radius:16px;min-width:0}.app-nav svg{width:19px;height:19px}.campus-directory{position:absolute;top:138px;left:16px;right:16px;width:auto}.building-list{max-height:55dvh}.sharing-pill{top:195px;right:16px;font-size:9px;max-width:240px}.building-panel>.panel-foot{font-size:8px!important}.area-row{padding:12px 0}.area-row button{min-width:44px}.map-note.sample{max-width:90%}.plan-dialog{width:calc(100% - 18px);max-height:94dvh;padding:18px}.plan-picture svg{min-height:260px}.plan-layout{gap:18px}#indoorView{padding:0 16px 110px}#indoorView .heading{display:block}#indoorView .heading .primary{margin-top:15px}#indoorView h1{font-size:28px}#indoorView .heading p{font-size:11px}.details{display:flex}.toolbar{padding-top:10px}.cards{grid-template-columns:1fr}.plan-report-list{padding-bottom:10px}.app-brand .campus-pill{display:none}.header-right{gap:8px}#indoorView .workspace{grid-template-columns:1fr}.campus-tools input{font-size:14px}.building-panel .badge{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Quiet campus cartography: local geometry, no street-map POI or road labels. */
#campusMap{background:#f5f6f2}.selected-building-label{background:#fff;color:#253e28;border:1px solid #dce4d5;border-radius:10px;padding:9px 13px;font-size:11px;box-shadow:0 4px 18px #213d1712;font-weight:550;white-space:normal;max-width:230px;text-align:center}.leaflet-tooltip{border-color:#e0e6da;padding:7px 10px;border-radius:9px}.campus-map-card .leaflet-overlay-pane path{transition:fill .2s,fill-opacity .2s}.building-panel:not(.has-selection){display:none}.map-note{background:#fffffff0;box-shadow:none;color:#6b7e60}.campus-legend{box-shadow:none;border-color:#e1e7db;background:#fffffff2}.leaflet-control-attribution{font-size:8px!important}.leaflet-interactive:focus-visible{outline:3px solid #203f26;outline-offset:2px}@media(prefers-reduced-motion:reduce){.campus-map-card .leaflet-overlay-pane path{transition:none}}
#simulationControls{position:absolute;z-index:1040;right:26px;top:160px;display:flex;gap:7px;align-items:center;padding:12px;background:#fff;border:1px solid #e5eadd;border-radius:16px;box-shadow:0 5px 20px #233e1510}#simulationControls>div{padding:0 10px 0 3px}#simulationControls strong{display:block;font-size:11px;color:#2d4828}#simulationControls small{display:block;margin-top:5px;font-size:9px;color:#8a977e}#simulationControls button{border:0;background:#f1f6eb;border-radius:9px;color:#516d42;padding:10px;font-size:10px;min-height:36px}.sim-count{display:grid;place-items:center;width:32px;height:26px;border-radius:9px;background:#fff;color:#294a28;font-size:10px;font-weight:650;border:1px solid #c9dac0;box-shadow:0 2px 8px #294a2815}.simulating .map-note{background:#fff5d8;color:#846723}.simulating .map-note::before{background:#d1a342}@media(max-width:800px){#simulationControls{left:16px;right:auto;top:238px;padding:9px;gap:5px;max-width:calc(100% - 32px)}#simulationControls>div{padding-right:3px}#simulationControls strong{font-size:10px}#simulationControls small{font-size:8px}#simulationControls button{font-size:9px;padding:9px}.simulating .sharing-pill{display:none}}
.campus-tools{width:510px}.campus-tools .search{flex:1}#findCampusSpot{white-space:nowrap;background:#193a26;color:white;font-size:11px;padding:14px 17px;box-shadow:0 4px 16px #193a2612;border-radius:14px}.find-dialog{max-width:490px;max-height:90dvh;overflow:auto;padding:28px}.find-dialog h2{font-size:29px;line-height:1.15;letter-spacing:-1px}.find-dialog .primary,.find-dialog .secondary{width:100%;min-height:48px}.study-prefs{display:flex;gap:8px;margin:20px 0}.study-prefs label{font-size:11px;background:#f3f7ee;border:1px solid #e2e9db;border-radius:12px;padding:12px 10px}.study-prefs input{accent-color:#305d32}.study-result{width:100%;display:flex;justify-content:space-between;gap:10px;text-align:left;border:1px solid #e1e8da;border-radius:15px;background:white;padding:16px;margin-top:12px;color:#263b23}.study-result strong{font-size:13px}.study-result small{display:block;font-size:10px;color:#7a8c6f;line-height:1.8;margin-top:3px}.study-result b{font-size:11px;white-space:nowrap}#findResults{font-size:12px;line-height:1.7;margin-top:15px;color:#74856a}#walkPanel{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1600;background:white;border-radius:24px;border:1px solid #dfe7d7;box-shadow:0 10px 50px #183c201c;padding:23px;width:480px;max-width:calc(100% - 24px);max-height:47dvh;overflow:auto}.walk-grip{width:32px;height:4px;background:#dfe5db;border-radius:4px;margin:-10px auto 15px}.walk-title{display:flex;justify-content:space-between;align-items:start}.walk-title h2{font-size:23px;letter-spacing:-.8px;margin-top:8px}.walk-title p{color:#89957e;font-size:11px;margin:7px 0}.walk-metrics{display:flex;align-items:center;gap:15px;margin:14px 0}.walk-metrics strong{font-size:30px;letter-spacing:-1px;color:#2d6b34}.walk-metrics small{font-size:15px;font-weight:500;letter-spacing:0}.walk-metrics>span{font-size:10px;color:#7c8e72}.walk-disclaimer{font-size:10px!important;line-height:1.7!important;color:#8a987f!important}.walk-actions{display:flex;gap:8px}.walk-actions button{flex:1;margin:0;white-space:nowrap;padding:12px;font-size:10px}.walk-actions .primary{background:#327cf5}.walk-actions .secondary{width:auto}#walkSteps{font-size:11px;color:#7f9075;line-height:1.8;padding-top:10px}#walkInstruction{position:fixed;top:96px;left:50%;transform:translateX(-50%);z-index:1600;background:#193a26;color:white;padding:20px 25px;border-radius:18px;width:440px;max-width:calc(100% - 32px);font-size:16px;font-weight:550;box-shadow:0 8px 30px #193a2620}.navigating .campus-tools,.navigating .app-nav,.navigating #simulationControls,.navigating .campus-legend,.navigating .sharing-pill{display:none!important}.navigating .map-note{top:105px}.navigating .leaflet-bottom.leaflet-right{bottom:350px}@media(max-width:800px){.campus-tools{width:auto;flex-wrap:wrap}.campus-tools .search{flex-basis:calc(100% - 135px)}#findCampusSpot{font-size:10px;padding:13px 14px}.find-dialog{padding:23px}.study-prefs label{font-size:10px;padding:11px 9px}#walkInstruction{top:82px;font-size:14px;padding:18px}#walkPanel{bottom:16px;padding:20px;max-height:48dvh}.walk-title h2{font-size:21px}.walk-metrics{gap:12px}.navigating .map-note{top:100px;left:16px;right:auto;font-size:8px}}

/* Keep form controls readable without focus zoom on narrow phone screens. */
@media(max-width:800px){input:not([type=checkbox]):not([type=radio]),select,.campus-tools input,#studentBody input:not([type=checkbox]),#studentBody select{font-size:16px}}
@media(max-width:360px){main>header{padding-inline:16px}.app-brand{font-size:18px;gap:7px}.app-mark{width:28px;height:28px;font-size:24px}}
