@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{--bg:#f5f7f5;--paper:#fff;--ink:#17231f;--muted:#64716b;--line:#dce4df;--green:#0d5a4f;--pale:#e8f4ef;--orange:#d56b33;--shadow:0 8px 24px #1232210d}[data-theme=dark]{--bg:#111916;--paper:#1a2520;--ink:#edf5f0;--muted:#afbbb4;--line:#304139;--green:#58b59c;--pale:#19362d;--orange:#f09b69;--shadow:none}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:15px/1.5 DM Sans,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--green);font-weight:700;text-decoration:none}h1,h2,h3{margin:0 0 .55rem;font-family:Manrope,sans-serif;line-height:1.15}h1{letter-spacing:-.06em;font-size:clamp(2rem,4vw,3.5rem)}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:.35rem 0 1rem}.shell main{max-width:1200px;margin:auto;padding:2rem 24px 6rem}header{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:1.5rem;height:68px;padding:0 max(24px,50vw - 600px);display:flex;position:sticky;top:0}.brand{color:var(--ink);white-space:nowrap;align-items:center;gap:.6rem;display:flex}.brand span{background:var(--green);color:#fff;border-radius:10px;padding:.35rem .4rem;font-size:.72rem}.brand i{color:var(--green);font-style:normal}header nav{flex:1;gap:.1rem;display:flex}header nav a{color:var(--muted);align-items:center;gap:.3rem;padding:.5rem .45rem;font-size:.78rem;display:flex}header nav a.active{color:var(--green)}.search-link,.search-box{border:1px solid var(--line);color:var(--muted);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.hero{justify-content:space-between;align-items:end;padding:2rem 0 2.4rem;display:flex}.hero p,.page-head p{color:var(--muted);font-size:1.05rem}.eyebrow{letter-spacing:.12em;color:var(--green);font-size:.72rem;font-weight:800}.quick-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin:1rem 0 2rem;display:grid}.quick-grid button{border:1px solid var(--line);background:var(--paper);color:var(--ink);text-align:left;box-shadow:var(--shadow);border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:1rem;display:grid}.quick-grid svg:first-child{color:var(--green)}.card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin:1rem 0;padding:1.2rem}.dashboard-grid,.cards-grid,.campus-layout{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.cards-grid{grid-template-columns:repeat(3,1fr)}.section-head{justify-content:space-between;align-items:start;gap:1rem;display:flex}.muted,small{color:var(--muted)}.location{align-items:center;gap:.35rem;display:flex}.badge{letter-spacing:.07em;color:#40505a;background:#e9edf0;border-radius:99px;padding:.22rem .45rem;font-size:.61rem;font-weight:800;display:inline-block}.badge.official{color:#216145;background:#e2f3ea}.badge.student-reported{color:#95581e;background:#fff0dc}.badge.community-verified{color:#34548d;background:#e4edff}.chips{flex-wrap:wrap;gap:.35rem;display:flex}.chips span{background:var(--pale);border-radius:99px;padding:.25rem .5rem;font-size:.78rem}.note{background:var(--pale);border-radius:9px;align-items:flex-start;gap:.5rem;padding:.65rem;display:flex}.primary,.secondary,.danger-button{border:0;border-radius:9px;align-items:center;gap:.35rem;padding:.6rem .8rem;font-weight:800;display:inline-flex}.primary{background:var(--green);color:#fff}.secondary{background:var(--pale);color:var(--green)}.danger-button,.danger{color:#b2403c}.link-button{margin-top:.7rem}.text-link{align-items:center;gap:.3rem;display:flex}.text-button{color:var(--green);background:0 0;border:0;font-weight:700}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:.5rem;padding:2rem;display:flex}.tip{align-items:start;gap:1rem;display:flex}.tip>svg{color:var(--orange)}.page-head{padding:1.5rem 0}.search-field{background:var(--paper);border:1px solid var(--line);border-radius:12px;align-items:center;gap:.5rem;max-width:600px;padding:.7rem;display:flex}.search-field input,.search-input{color:var(--ink);background:0 0;border:0;outline:0;width:100%}.schematic{background:linear-gradient(135deg,var(--pale),var(--paper));height:600px;position:relative;overflow:hidden}.schematic:before{content:"Schematic only · not GPS";color:var(--line);place-items:center;font-size:2rem;font-weight:800;display:grid;position:absolute;inset:0;transform:rotate(-25deg)}.map-node{z-index:1;border:1px solid var(--green);background:var(--paper);color:var(--ink);border-radius:8px;max-width:120px;padding:.3rem .45rem;font-size:.65rem;position:absolute;transform:translate(-50%,-50%)}.map-node.selected{background:var(--green);color:#fff}.map-label{color:var(--muted);font-size:.7rem;font-weight:800;position:absolute}.north{top:10px;left:50%}.east{top:50%;right:10px}.details{margin:1rem 0}.route-form,.form-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.route-step{align-items:center;gap:.7rem;margin:.9rem 0;display:flex}.route-step span{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:25px;height:25px;display:grid}.route-step svg{color:var(--green)}label{gap:.35rem;margin:.7rem 0;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:.6rem}textarea{min-height:120px}.report-status{background:var(--pale);border-radius:8px;margin:1rem 0;padding:.65rem;display:grid}.tabs{gap:.3rem;display:flex;overflow:auto}.tabs button{color:var(--muted);background:0 0;border:0;padding:.45rem}.tabs button.active{background:var(--pale);color:var(--green);border-radius:7px}.schedule-list article{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr auto auto;gap:1rem;padding:1rem 0;display:grid}.modal-backdrop{z-index:20;background:#0008;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{width:min(560px,100%);max-height:90vh;overflow:auto}.close{float:right;color:var(--muted);background:0 0;border:0}.error{color:#c44945}.onboarding{background:var(--pale);place-items:center;min-height:100vh;padding:20px;display:grid}.onboard-card{background:var(--paper);max-width:620px;box-shadow:var(--shadow);border-radius:24px;padding:clamp(1.5rem,6vw,4rem)}.onboard-card h1{margin-top:.8rem}.actions{align-items:center;gap:.6rem;margin-top:1rem;display:flex}.toggle{justify-content:space-between;align-items:center;display:flex}.toggle span{display:grid}.result-list button,.result{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;justify-content:space-between;padding:.75rem 0;display:flex}.result span{color:var(--muted);font-size:.85rem}.mobile-nav,.more-menu{display:none}@media (width<=900px){header nav{display:none}.cards-grid,.quick-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=620px){header{padding:0 16px}.search-link{display:none}.shell main{padding:1.2rem 16px 90px}.hero{padding-top:1rem;display:block}.hero .search-box{margin-top:1rem}.quick-grid{gap:8px}.quick-grid button{padding:.75rem;font-size:.86rem}.dashboard-grid,.cards-grid,.campus-layout,.route-form,.form-grid{grid-template-columns:1fr}.schematic{height:460px}.map-node{max-width:90px;font-size:.55rem}.cards-grid{gap:0}.mobile-nav{z-index:10;background:var(--paper);border-top:1px solid var(--line);justify-content:space-around;padding:.45rem;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav a,.mobile-nav button{color:var(--muted);background:0 0;border:0;place-items:center;gap:.15rem;font-size:.64rem;display:grid}.mobile-nav a.active{color:var(--green)}.more-menu{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:.5rem;display:grid;position:absolute;bottom:60px;right:8px}.more-menu a{color:var(--ink);align-items:center;gap:.5rem;padding:.55rem;font-size:.85rem;display:flex}.schedule-list article{grid-template-columns:88px 1fr}.schedule-list article button{justify-self:start}.section-head{align-items:center}.page-head{padding-top:.5rem}}
