:root{font-family:Tahoma,Arial,sans-serif;color:#24372e;background:#f8f6ef;line-height:1.8;--paper:#f8f6ef;--green:#365846;--muted:#586a5e;--line:#dce2d6;--accent:#a35339}
*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input{font:inherit}button{cursor:pointer}img{display:block;max-width:100%;height:auto}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #c47f61;outline-offset:4px}.shell{width:min(1120px,calc(100% - 72px));margin-inline:auto}.site-head{display:flex;align-items:center;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--line)}.brand{display:inline-flex;gap:11px;align-items:center;text-decoration:none;font-size:21px;font-weight:800}.quiet-button{border:1px solid var(--line);padding:5px 17px;border-radius:9px;text-decoration:none;font-size:13px;background:transparent;color:inherit}.quiet-button:hover{background:#e7ede2}.hero{display:grid;grid-template-columns:1fr .98fr;align-items:center;gap:62px;padding:55px 0 47px}.eyebrow{font-size:13px;color:var(--accent);font-weight:700;margin:0 0 12px}.hero h1{font-size:clamp(33px,4.1vw,57px);line-height:1.43;margin:0;letter-spacing:-.045em}.hero h1 em{font-style:normal;color:var(--green)}.lead{font-size:16px;color:var(--muted);max-width:540px;margin:21px 0 25px}.pill{display:inline-flex;gap:15px;align-items:center;padding:10px 19px;background:var(--green);color:#fff;border:0;border-radius:10px;text-decoration:none;font-size:14px}.pill:hover{background:#284433}.art{margin:0}.art img{width:100%;border-radius:25px}.art figcaption{margin-top:8px;color:var(--muted);font-size:12px}.notes{border-top:1px solid var(--line);padding-top:32px}.notes h2,.closing h2{font-size:clamp(21px,3vw,30px);margin:0 0 17px;line-height:1.55}.note-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.note-grid article{padding:21px;background:#fffcf6;border:1px solid var(--line);border-radius:15px}.index{color:var(--accent);font-weight:700;font-size:13px}.note-grid h3{margin:5px 0;font-size:17px}.note-grid p,.closing p{margin:0;color:var(--muted);font-size:14px}.closing{display:flex;align-items:center;gap:25px;margin-top:34px;padding:22px 26px;background:#e8ede1;border-radius:16px}.closing h2{margin:0 0 3px}.closing a{display:inline-block;font-size:13px;margin-top:7px;color:var(--green)}.site-foot{display:flex;gap:18px;justify-content:space-between;border-top:1px solid var(--line);margin-top:39px;padding:20px 0;font-size:13px}.site-foot span{color:var(--muted)}.login-box{width:min(440px,calc(100% - 38px));margin:clamp(45px,12vh,115px) auto;background:#fffcf6;padding:32px;border:1px solid var(--line);border-radius:18px}.login-box h1{margin:10px 0}.login-box form{display:grid;gap:7px;margin-top:20px}.login-box input{width:100%;border:1px solid #b9c7b9;border-radius:9px;padding:8px 12px;background:#fff;color:#24372e;direction:ltr}.login-box button{justify-content:center;margin-top:12px}.message{color:#a03b34;font-size:14px}.dash{background:#f3f7f4;color:#21362b}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 0;border-bottom:1px solid var(--line)}.dash-head h1{font-size:21px;margin:0}.dash-head form{margin:0}.dash-main{padding:24px 0 36px}.dash-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.dash-heading h2{margin:0;font-size:23px}.dash-heading p,.help{font-size:12px;color:var(--muted)}.summary,.route-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.card{padding:15px;background:#fff;border:1px solid var(--line);border-radius:13px;min-width:0}.card .label,.card .detail{font-size:12px;color:var(--muted)}.card strong{display:block;font-size:21px;line-height:1.5}.map{background:#e7efe8;border:1px solid #d4e2d7;border-radius:18px;margin:15px 0;padding:4px}.map svg{width:100%;max-height:286px;display:block;direction:ltr}.map text{fill:#294837;font:700 16px Tahoma,Arial,sans-serif;text-anchor:middle}.map .node{fill:#fafdf9;stroke:#a9c0ae;stroke-width:1.2}.map .origin{fill:#315a45;stroke:none}.map .origin-title{fill:#fff;font-size:18px}.map .route{stroke:#8ca798;stroke-width:2.3;fill:none}.map .route.down{stroke:#c8736b}.map .route.unknown{stroke:#9daba4;stroke-dasharray:3 5}.map .route.moving{stroke:#367554;stroke-dasharray:6 8;animation:flow 1.1s linear infinite}@keyframes flow{to{stroke-dashoffset:-28}}.route-card h3{font-size:15px;margin:0}.route-card header{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.badge{font-size:11px;color:#365d46;background:#e5f0e7;border-radius:20px;padding:1px 8px;white-space:nowrap}.badge.down{background:#f7e3e0;color:#87352e}.badge.unknown{background:#edf0ed;color:#53655a}.route-card dl{display:grid;grid-template-columns:1fr auto;gap:5px 7px;font-size:12px;margin:10px 0 0}.route-card dt{color:var(--muted)}.route-card dd{margin:0;text-align:left;font-variant-numeric:tabular-nums}.help{margin:13px 0 0}.stale{color:#a03b34}
@media(max-width:850px){.shell{width:min(100% - 38px,1120px)}.hero{gap:27px}.summary,.route-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.hero,.note-grid{grid-template-columns:1fr}.hero{padding-top:34px;gap:25px}.hero h1{font-size:clamp(30px,8vw,45px)}.note-grid{gap:10px}.closing{gap:13px;padding:18px}.closing img{width:62px}.dash-heading{display:block}.dash-heading p{margin:0 0 9px}.map{padding:0}.route-card{padding:11px}.route-card dl{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}

.qr-section{margin-top:30px;padding-top:19px;border-top:1px solid var(--line)}
.qr-section h2{margin:0;font-size:21px}.qr-section>p{margin:3px 0 14px;font-size:13px;color:var(--muted)}
.qr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.qr-card{text-align:center}.qr-card h3{margin:0;font-size:16px}.qr-card p{margin:2px 0 9px}
.qr-link{display:block;margin:auto;max-width:240px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
.qr-link img{display:block;width:100%;aspect-ratio:1}
.route-card dd[dir=ltr],.summary strong[dir=ltr]{unicode-bidi:isolate}
.summary strong[dir=ltr]{text-align:right}
@media(max-width:850px){.qr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.qr-card{padding:9px}}

.total-card{background:#e9f2eb;border-color:#cadfcf}
@media(min-width:1000px){.summary{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:999px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary .total-card{grid-column:1/-1}}
