:root{--bg:#fff;--card:#f7f8fb;--text:#0f1f31;--muted:#5f6b7a;--primary:#f2552c;--secondary:#10243a;--line:#dfe5ee;--ok:#0f766e}body.dark{--bg:#09111d;--card:#111d2c;--text:#f4f7fb;--muted:#b7c1cf;--primary:#ff6a3d;--secondary:#e8f1ff;--line:#26384d;--ok:#2dd4bf}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.app-header{position:sticky;top:0;z-index:900;background:var(--bg);border-bottom:1px solid var(--line);padding:10px 14px;display:flex;align-items:center;gap:12px}.logo{width:46px;height:46px;object-fit:contain}.brand{font-weight:900;font-size:1.2rem}.tagline{font-size:.82rem;color:var(--muted)}.spacer{flex:1}.theme-toggle,.btn{border:0;border-radius:14px;padding:10px 14px;background:var(--primary);color:#fff;font-weight:800;cursor:pointer}.theme-toggle{background:var(--card);color:var(--text);border:1px solid var(--line)}.tabs{display:flex;gap:8px;overflow:auto;padding:10px 14px;border-bottom:1px solid var(--line)}.tab{white-space:nowrap;padding:10px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-weight:700}.tab.active{background:var(--secondary);color:var(--bg)}main{padding:16px;max-width:1100px;margin:auto}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:center}.panel,.route-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:16px}.hero h1{font-size:clamp(2rem,6vw,4rem);line-height:1;margin:0 0 10px}.hero p{color:var(--muted);font-size:1.05rem}.hero-logo{width:100%;max-width:320px;display:block;margin:auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.route-card h3{margin:0 0 8px}.badge{display:inline-block;background:rgba(242,85,44,.12);color:var(--primary);border:1px solid rgba(242,85,44,.3);border-radius:999px;padding:4px 9px;font-size:.8rem;font-weight:800;margin:2px}.muted{color:var(--muted)}select,input,textarea{width:100%;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit}label{font-weight:800;display:block;margin:10px 0 6px}.form-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.map{height:420px;border-radius:20px;border:1px solid var(--line);overflow:hidden;margin-top:14px}.small-map{height:320px}.result{border-left:4px solid var(--primary);padding:12px;margin:10px 0;background:var(--bg);border-radius:12px}.footer{padding:24px;text-align:center;color:var(--muted);border-top:1px solid var(--line)}.admin-link{font-size:.9rem;color:var(--primary);font-weight:900}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.hidden{display:none!important}@media(max-width:760px){.hero{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.map{height:360px}.brand{font-size:1rem}.tagline{display:none}}
.check-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-group label{display:flex;align-items:center;gap:8px;margin:0;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--bg);font-weight:800}.check-group input{width:auto}.type-fare-item{align-items:flex-start!important;flex-direction:column}.type-fare-item>span:first-child{display:flex;align-items:center;gap:8px}.fare-inline{width:100%}.fare-editor{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.fare-editor small{white-space:nowrap;color:var(--muted);font-weight:800}.small-text{font-size:.85rem;margin:.35rem 0 0}.fare-summary{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--card);display:grid;gap:4px}@media(max-width:760px){.check-group,.fare-editor{grid-template-columns:1fr}.fare-summary{font-size:.95rem}}

.stops-list{display:grid;gap:8px;margin-top:8px}.stop-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.stop-item small{display:block;color:var(--muted);font-weight:600;margin-top:3px}@media(max-width:760px){.stop-item{align-items:flex-start;flex-direction:column}.stop-item button{width:100%}}
