:root{--ink:#17251f;--muted:#617069;--bg:#f4f7f5;--card:#fff;--green:#087a50;--green-dark:#075d40;--lime:#dff4e9;--line:#dce5e0;--danger:#9d2f2f;--shadow:0 8px 28px rgba(20,55,40,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.5}.topbar{min-height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:.75rem max(1rem,calc((100vw - 1120px)/2))}.brand{font-size:1.45rem;font-weight:850;color:var(--ink);text-decoration:none}.brand span{color:var(--green)}nav{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}nav a,.link-button{color:var(--ink);font:inherit;font-weight:650;text-decoration:none}.link-button{border:0;background:none;cursor:pointer}.container{width:min(1120px,calc(100% - 2rem));margin:2rem auto;min-height:calc(100vh - 160px)}footer{text-align:center;padding:1.5rem;color:var(--muted)}footer a{color:inherit}.auth-card,.form-card,.detail{background:var(--card);padding:clamp(1.25rem,4vw,2.5rem);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);max-width:560px;margin:4vh auto}.form-card.wide,.detail{max-width:920px;margin:0 auto}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-size:.75rem;font-weight:800;margin:0 0 .5rem}h1{font-size:clamp(1.8rem,5vw,2.7rem);line-height:1.1;margin:.2rem 0 1rem}h2{font-size:1.25rem}.muted,small{color:var(--muted)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label,legend{font-weight:750}input,select,textarea{width:100%;font:inherit;padding:.8rem .9rem;border:1px solid #b9c8c0;border-radius:9px;background:#fff;color:var(--ink)}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(8,122,80,.18);border-color:var(--green)}.button{display:inline-flex;justify-content:center;align-items:center;min-height:46px;padding:.7rem 1.1rem;border:0;border-radius:9px;background:var(--green);color:#fff;text-decoration:none;font:inherit;font-weight:800;cursor:pointer}.button:hover{background:var(--green-dark)}.button.secondary{background:#edf3f0;color:var(--green-dark)}.button.full{width:100%}.auth-card .button{margin:.5rem 0 1rem}.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.role-grid{display:grid;grid-template-columns:1fr;gap:.75rem;margin:1.5rem 0}.role-card{border:2px solid var(--line);border-radius:12px;padding:1rem;display:grid;grid-template-columns:auto 1fr;gap:.25rem .65rem;cursor:pointer}.role-card:has(input:checked){border-color:var(--green);background:var(--lime)}.role-card input{width:auto;grid-row:1/3}.role-card span{color:var(--muted)}.registration-fields{display:block}.check{display:flex;align-items:center;gap:.5rem;margin:.5rem 0 1rem}.check input{width:auto}.error{color:var(--danger);font-size:.85rem}.alert{padding:.9rem 1rem;border-radius:10px;margin-bottom:1rem;background:#fff3cd}.alert.success{background:var(--lime)}.alert.error{background:#fee7e7}.page-head,.row,.actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.page-head{margin-bottom:1.5rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1rem 0 2rem}.stats article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.1rem}.stats strong{display:block;font-size:1.8rem;color:var(--green)}.stats span{color:var(--muted)}.cards{display:grid;gap:1rem}.load-grid{grid-template-columns:repeat(3,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.2rem;box-shadow:0 3px 12px rgba(20,55,40,.04)}.card h2,.card h3{margin:.7rem 0}.pill,.status{display:inline-block;border-radius:99px;padding:.3rem .65rem;font-size:.78rem;font-weight:800;background:#edf3f0}.status.active{background:var(--lime);color:var(--green-dark)}.status.paused,.status.draft{background:#fff1c7;color:#765800}.status.cancelled{background:#fee7e7;color:var(--danger)}.route{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--bg);padding:.8rem;border-radius:8px}.card dl,.detail dl{margin:1rem 0}.card dl div,.detail dl div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:.45rem 0}.card dt,.detail dt{color:var(--muted)}dd{margin:0;font-weight:650}.filters{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;background:#fff;border:1px solid var(--line);padding:1rem;border-radius:12px;margin-bottom:1.25rem}.filters .check{margin:0}.empty{background:#fff;border:1px dashed #aebfb6;border-radius:14px;padding:2rem;text-align:center}.actions{justify-content:flex-start;flex-wrap:wrap}.text-action{border:0;background:transparent;color:var(--green);font:inherit;cursor:pointer}.pagination{justify-content:center;margin:1.5rem}.route-box{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;background:var(--bg);padding:1.2rem;border-radius:12px;margin:1.5rem 0}.route-box small,.route-box strong{display:block}.detail-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:2rem}.contact-box{background:#eef8f3;border:1px solid #cde6d9;padding:1.2rem;border-radius:12px}.contact-box form{margin-top:.75rem}#contact-result{margin-top:1rem}.lead{font-size:1.08rem}fieldset{border:0;border-top:1px solid var(--line);padding:1.5rem 0;margin:0}legend{padding-right:1rem}@media(max-width:800px){.load-grid{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}}@media(max-width:600px){.topbar{align-items:flex-start}.topbar nav{justify-content:flex-end;font-size:.9rem;gap:.6rem}.container{width:min(100% - 1rem,1120px);margin:1rem auto}.grid.two,.stats,.load-grid,.filters{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.page-head .button{width:100%}.auth-card,.form-card,.detail{border-radius:12px;padding:1.15rem}.route-box{grid-template-columns:1fr}.route-box>span{transform:rotate(90deg);justify-self:center}.actions{gap:.4rem}}

.menu-toggle{display:none}.sr-only{clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
.legal-document{max-width:920px}.legal-text{font-size:.96rem;line-height:1.65;white-space:pre-line}.check a,.legal-link-note a{color:var(--green-dark);font-weight:750}.legal-link-note{margin:-.5rem 0 1rem 1.75rem}
@media(max-width:600px){
  .topbar{align-items:center;justify-content:flex-start;padding:.6rem 1rem;position:relative;z-index:30}
  .menu-toggle{align-items:center;background:#edf3f0;border:0;border-radius:10px;color:var(--green-dark);cursor:pointer;display:inline-flex;height:44px;justify-content:center;margin-right:.75rem;width:44px}
  .menu-toggle:focus-visible{outline:3px solid rgba(8,122,80,.25);outline-offset:2px}
  .menu-toggle-icon{display:grid;gap:4px;width:20px}
  .menu-toggle-icon i{background:currentColor;border-radius:2px;display:block;height:2px;transition:transform .18s ease,opacity .18s ease}
  .topbar.menu-open .menu-toggle-icon i:first-child{transform:translateY(6px) rotate(45deg)}
  .topbar.menu-open .menu-toggle-icon i:nth-child(2){opacity:0}
  .topbar.menu-open .menu-toggle-icon i:last-child{transform:translateY(-6px) rotate(-45deg)}
  .topbar nav{align-items:stretch;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow);display:none;flex-direction:column;font-size:1rem;gap:0;left:0;padding:.45rem 1rem 1rem;position:absolute;right:0;top:100%}
  .topbar.menu-open nav{display:flex}
  .topbar nav a,.topbar nav .link-button{align-items:center;border-bottom:1px solid var(--line);display:flex;min-height:48px;padding:.65rem .35rem;text-align:left;width:100%}
  .topbar nav form{width:100%}
}
