:root { --bg:#fff; --ink:#244549; --muted:#526f72; --line:#d6e6e3; --shadow:0 4px 20px rgba(28,84,84,.04); }
html { background:#fff; }
body { background:linear-gradient(180deg,#fff 20%,#f7fbfa 60%,#e7f3f0 100%); }
.view-host { background:transparent; }
.wrap { width:min(calc(100% - 44px),1050px); max-width:1050px; padding:28px 0 48px; }
.service-nav { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:22px; }
.service-nav a { padding:9px 14px; text-decoration:none; border:1px solid var(--line); border-radius:12px; background:#fff; font-weight:650; color:var(--brand); }
.card { border-color:var(--line); box-shadow:var(--shadow); padding:20px; }
.line-btn { text-align:left; padding:14px; }
.line-btn .sub { line-height:1.5; }
.search input { min-height:54px; background:#fff; border:1px solid #95bcb6; }
.stop-result h2 { margin:0; font-size:1.05rem; color:var(--brand); }
.stop-line { display:block; width:100%; text-align:left; margin-top:10px; padding:12px 16px; border:1px solid var(--line); border-radius:12px; background:#f7fbfa; color:var(--brand); cursor:pointer; line-height:1.5; }
.stop-line:hover { background:#e7f3f0; border-color:var(--brand); }
.stop-picker label { display:block; font-weight:750; margin-bottom:12px; color:var(--brand); }
.stop-picker select { width:100%; min-height:50px; padding:10px; border:1px solid #95bcb6; border-radius:12px; color:var(--ink); background:#fff; }
.stop-picker p { margin-bottom:0; font-size:.9rem; }
.tabs { gap:8px; }
.time-btn { min-height:48px; font-variant-numeric:tabular-nums; }
.itinerario { background:linear-gradient(180deg,#fff,#e7f3f0); padding:24px; }
.trajeto li { padding:12px 12px 14px 22px; border-left-color:#95bcb6; }
.trajeto li::before { top:18px; width:12px; height:12px; left:-7px; border:2px solid #fff; box-shadow:0 0 0 2px #95bcb6; }
.stop-detail { display:flex; align-items:baseline; gap:14px; font-size:.98rem !important; line-height:1.5; }
.stop-time { padding:4px 9px; border-radius:8px; background:#e1eeea; color:#1c5454; font-size:1rem; font-weight:800; font-variant-numeric:tabular-nums; flex-shrink:0; }
.selected-stop { background:#d5ebe3; border-radius:0 12px 12px 0; }
.embedded .home-link,.embedded .ambient-spacer { display:none; }
.embedded .wrap { padding-block:16px; }
.embedded .main-stage { background:linear-gradient(#fff,#e7f3f0); }
@media(max-width:700px) { .wrap { width:calc(100% - 28px); padding-top:18px; } .card { padding:14px; } .itinerario { padding:16px; } .stop-detail { gap:10px; font-size:.9rem !important; } }
@media(prefers-reduced-motion:reduce) { .motion-video { visibility:hidden; } .motion-wrapper { background:url('/assets/home/poster-animacao.webp') center/contain no-repeat; } }
.home-view { background:#fff; }
.full-app:has(#consulta:not([hidden])) .main-stage,.itinerary-page .main-stage { background:linear-gradient(180deg,#fff 0%,#f7fbfa 55%,#e7f3f0 100%); }
.full-app:has(#consulta:not([hidden])) .ambient-spacer,.itinerary-page .ambient-spacer { background:transparent; }
.tab { color:var(--brand); background:#f4f9f7; border:1px solid var(--line); }
.tab.active { color:#fff; background:var(--brand); border-color:var(--brand); box-shadow:none; }
#view-linhas > .card + .card { margin-top:16px; }
.itinerary-page .page { width:min(calc(100% - 44px),1050px); }
@media(max-width:700px) { .itinerary-page .page { width:calc(100% - 28px); } }
/* Navegação compartilhada: o mesmo menu no desktop e no celular. */
.header-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:16px; }
.header-attribution { grid-column:1 / -1; }
.menu-shell { position:relative; z-index:20; }
.menu-toggle { display:flex; align-items:center; gap:10px; min-height:48px; padding:10px 14px; border:1px solid #ffffff70; border-radius:12px; color:#fff; background:transparent; cursor:pointer; }
.menu-toggle:hover,.menu-toggle[aria-expanded="true"] { background:#ffffff18; }
.hamburger { display:grid; gap:4px; width:22px; }
.hamburger span { display:block; height:2px; background:currentColor; border-radius:2px; }
.site-menu { position:absolute; right:0; top:calc(100% + 12px); width:min(270px,calc(100vw - 28px)); padding:8px; border:1px solid var(--line); border-radius:16px; background:#fff; color:var(--brand); box-shadow:0 12px 32px #163f3f26; }
.site-menu a { display:block; padding:13px 16px; border-radius:10px; text-decoration:none; font-weight:650; }
.site-menu a:hover,.site-menu a[aria-current="page"] { background:#e7f3f0; }
.actions-area { position:relative; }
.search-suggestions { position:absolute; top:67px; left:0; right:0; z-index:10; padding:7px; max-height:340px; overflow-y:auto; background:#fff; border:1px solid #d6e6e3; border-radius:16px; box-shadow:0 12px 28px #163f3f1c; }
.point-suggestion { padding:12px 14px; border-radius:10px; cursor:pointer; line-height:1.45; }
.point-suggestion strong { display:block; font-size:.94rem; font-weight:650; color:var(--brand); }
.point-suggestion span { display:block; margin-top:3px; font-size:.8rem; color:var(--muted); }
.point-suggestion:hover,.point-suggestion[aria-selected="true"] { background:#e7f3f0; }
.search-help { margin:9px 4px 0; font-size:.82rem; line-height:1.5; color:var(--muted); }
.suggestion-empty { margin:0; padding:14px; font-size:.9rem; color:var(--muted); }
.page-title,.planner-head h1 { max-width:none; margin:0 0 12px; font-size:clamp(1.65rem,3vw,2.25rem); line-height:1.2; color:var(--brand); letter-spacing:-.025em; }
.planner-head { margin-top:6px; }
.crumbs { flex-wrap:nowrap; overflow-x:auto; padding-bottom:6px; margin-bottom:16px; }
.crumbs button { flex-shrink:0; white-space:nowrap; }
.about-page .main-stage { background:linear-gradient(#fff,#e7f3f0); }
.about-page .ambient-spacer { background:transparent; }
.about-content { padding-top:42px; }
.about-lead { margin-bottom:28px; font-size:1.1rem; color:var(--muted); }
.about-content .card + .card { margin-top:18px; }
.about-content h2 { font-size:1.2rem; color:var(--brand); margin:0 0 14px; }
.about-content p { line-height:1.7; }
.about-action { margin-top:24px; }
@media(max-width:700px) { .menu-label { display:none; } .menu-toggle { padding:10px; min-width:44px; } .header-inner { column-gap:10px; } .municipal-identity { gap:10px; } .municipal-name { font-size:clamp(1.05rem,4.6vw,1.75rem); } .search-suggestions { top:61px; } .about-content { padding-top:28px; } }
@media(max-width:380px) { .crest-frame { width:48px; min-width:48px; } .crest { width:46px; } .municipal-overline { font-size:.65rem; } }
/* Ações com altura compartilhada; períodos sempre na mesma faixa. */
.line-actions { align-items:stretch; }
.line-actions .btn-share,.line-actions .btn-pdf { display:flex; align-items:center; justify-content:center; min-height:48px; }
.tabs { display:flex; flex-wrap:nowrap; align-items:stretch; overflow-x:auto; padding:2px 2px 6px; gap:8px; }
.tabs .tab { flex:1 0 0; min-width:0; min-height:48px; display:flex; align-items:center; justify-content:center; }
.tabs:has(.tab:nth-child(4)) .tab { flex:1 0 120px; }
@media(max-width:720px) {
  .tabs { gap:6px; }
  .tabs .tab { padding:8px 4px; font-size:clamp(.72rem,2.9vw,.9rem); line-height:1.25; overflow-wrap:normal; }
  .tabs:has(.tab:nth-child(4)) .tab { flex:0 0 112px; }
  .line-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .line-actions .btn-share,.line-actions .btn-pdf { width:100%; min-width:0; min-height:56px; padding:10px 12px; font-size:.9rem; line-height:1.4; }
}
/* Terminais e integrações compartilham o mesmo significado em todas as linhas. */
.trajeto li.terminal-stop::before,.timeline li.terminal-stop::before { background:var(--brand); border:0; box-shadow:none; outline:0; }
.integration-link { color:var(--brand); text-decoration:underline; text-underline-offset:4px; font-weight:750; }
.integration-link:hover { color:#237373; }
.integration-badge { display:inline-block; margin-left:10px; padding:3px 8px; border-radius:8px; background:#d6ebe6; color:#1c5454; font-size:.75rem; font-weight:700; white-space:nowrap; }
.stop-legend { display:flex; flex-wrap:wrap; gap:10px 22px; margin:12px 0 18px; color:var(--muted); font-size:.8rem; }
.stop-legend > span { display:inline-flex; align-items:center; gap:8px; }
.terminal-symbol,.integration-symbol { display:inline-block; width:12px; height:12px; border-radius:50%; flex-shrink:0; }
.terminal-symbol { background:var(--brand); }
.integration-symbol { background:#fff; border:2px solid var(--brand); }
.trajeto li.integration-stop:not(.terminal-stop)::before { width:15px; height:15px; left:-8px; border:3px solid var(--brand); background:#fff; box-shadow:none; }
.feedback-panel { margin-top:24px; }
.feedback-panel summary { cursor:pointer; font-weight:750; color:var(--brand); min-height:28px; }
.feedback-panel p { line-height:1.6; }
.contact-options { display:grid; gap:10px; }
.contact-link { display:block; padding:12px; border:1px solid var(--line); border-radius:10px; color:var(--brand); overflow-wrap:anywhere; }
.map-card { margin-top:18px; }
.integration-map { height:360px; width:100%; margin-top:20px; border:1px solid var(--line); border-radius:14px; z-index:0; }
.map-external { max-width:100%; }
.integration-page .card + .card { margin-top:18px; }
@media(max-width:700px) { .integration-map { height:300px; } .integration-badge { display:table; margin:5px 0 0; } .map-external { font-size:.85rem; } }
.timeline li { position:relative; border-left:2px solid #95bcb6; padding-left:22px; }
.timeline li::before { content:""; position:absolute; top:17px; left:-7px; width:12px; height:12px; border-radius:50%; background:#fff; border:2px solid var(--brand); }
.timeline li.integration-stop:not(.terminal-stop)::before { width:15px; height:15px; left:-8px; border:3px solid var(--brand); }
.floating-actions{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:1000;display:flex;gap:6px;padding:5px;border-radius:30px;background:rgba(255,255,255,.82);box-shadow:0 2px 12px #1c545422;backdrop-filter:blur(8px)}
.floating-actions a,.floating-actions button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #1c545433;border-radius:50%;background:transparent;color:#1c5454;text-decoration:none;font-size:24px;cursor:pointer}
.floating-actions [hidden]{display:none}.floating-actions :focus-visible{outline:3px solid #279a9f;outline-offset:2px}.floating-actions a:hover,.floating-actions button:hover{background:#e6f2ef}
.floating-status{position:fixed;right:16px;bottom:84px;z-index:1001;max-width:calc(100vw - 32px);margin:0;color:#1c5454;background:#fff;border-radius:12px;box-shadow:0 2px 12px #1c545422}.floating-status:not(:empty){padding:12px 16px}
body{padding-bottom:0}.integration-back{margin-bottom:20px}#sugestoes{scroll-margin-top:24px}

/* Reserva no conteúdo, nunca depois do rodapé. */
.full-app:has(#consulta:not([hidden])) .ambient-spacer,.about-page .ambient-spacer,.itinerary-page .ambient-spacer{min-height:24px;flex:0 0 24px}
.embedded .main-stage{padding-bottom:76px}
.floating-actions{position:fixed;inset:auto max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) auto;margin:0}
