/* Application layout. Colour values come from leguas.css. */
*{box-sizing:border-box}body{margin:0}a{text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input:not([type=radio]):not([type=checkbox]),select,textarea{max-width:100%;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:12px 14px;min-height:48px;color:var(--ink)}input[type=radio],input[type=checkbox]{accent-color:var(--brand)}label{font-size:.86rem;font-weight:600}select{padding-right:30px}small{font-size:.76rem}.skip-link{position:fixed;left:16px;top:-80px;z-index:2000;padding:14px;background:var(--surface)}.skip-link:focus{top:10px}
.app-layout{background:var(--bg)}.app-sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--surface);border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column;z-index:1100;overflow:auto}.app-brand{display:flex;align-items:center;gap:12px;font-size:1.6rem;font-weight:800;letter-spacing:-.06em}.app-brand small{display:block;font-size:.55rem;letter-spacing:.2em;color:var(--muted);margin-top:2px}.brand-symbol{position:relative;background:var(--brand);color:var(--white);border-radius:12px;width:44px;height:44px;display:grid;place-items:center;font-size:1.7rem}.brand-symbol span{position:absolute;color:var(--accent);right:6px;top:0;font-size:1.1rem}.nav-caption{font-size:.6rem;letter-spacing:.16em;font-weight:700;color:var(--muted);margin:34px 14px 10px}.primary-nav{display:flex;flex-direction:column;gap:5px}.primary-nav a{display:flex;align-items:center;gap:13px;min-height:48px;padding:12px 14px;border-radius:10px;color:var(--muted);font-weight:500;font-size:.87rem}.primary-nav a>span{font-size:1.25rem;width:22px;text-align:center}.primary-nav a:hover{background:var(--surface-2);color:var(--brand)}.primary-nav a[aria-current=page]{background:var(--p100);color:var(--brand);font-weight:700}.sidebar-note{margin-top:auto;padding:32px 14px 0;font-size:.75rem;line-height:1.7;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;background:var(--green-dark);border-radius:50%;margin-right:5px}.app-workspace{margin-left:248px;min-height:100vh;display:flex;flex-direction:column}.app-topbar{min-height:82px;padding:16px 40px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-label{font-size:.8rem;color:var(--muted)}.account{display:flex;align-items:center;gap:12px}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--p100);font-weight:700;color:var(--brand)}.account-name{font-size:.8rem;font-weight:600}.account-name small{display:block;color:var(--muted);font-weight:400}.logout-button{font-size:.75rem;min-height:48px;padding:0 8px;color:var(--muted)}.menu-toggle{display:none}.app-main{padding:38px 40px;max-width:1520px;width:100%;margin:auto;flex:1;min-width:0}.app-footer{display:flex;justify-content:space-between;gap:16px;margin:0 40px;padding:22px 0;border-top:1px solid var(--line);font-size:.65rem;color:var(--muted)}.app-guest .app-workspace{margin-left:0}.app-guest .app-main{max-width:760px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}.page-heading h1{font-size:clamp(1.7rem,2.8vw,2.35rem);letter-spacing:-.055em;margin-bottom:10px}.page-heading p:not(.lf-kicker){color:var(--muted);margin:0;font-size:.9rem}.lf-kicker{font-size:.63rem;letter-spacing:.16em}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:var(--shadow-card)}.panel-title{display:flex;align-items:center;gap:12px;margin-bottom:24px}.step-number{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:8px;background:var(--p100);font-size:.76rem;font-weight:700}.panel-title h2{margin:0;font-size:1rem}.import-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:24px;align-items:start}.import-form{display:grid;gap:24px}.file-drop{position:relative;border:1.5px dashed var(--p400);border-radius:12px;background:var(--surface-2);text-align:center;padding:34px 18px;transition:background .15s}.file-drop.is-dragging{background:var(--p100)}.upload-icon{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--brand);font-size:1.8rem}.file-drop strong{display:block;font-size:.94rem}.file-drop p{font-size:.77rem;color:var(--muted);margin:7px 0 16px}.file-drop input[type=file]{background:var(--surface);font-size:.8rem;cursor:pointer}.file-drop input::file-selector-button{background:var(--brand);color:var(--white);border:0;border-radius:6px;padding:8px 12px;margin-right:12px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label{display:block;margin-bottom:8px}.form-hint{font-size:.75rem;color:var(--muted);margin:8px 0 0}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:22px}.form-actions span{font-size:.72rem;color:var(--muted)}.info-panel{background:var(--brand);color:var(--on-chrome);border-radius:16px;padding:26px}.info-panel h2{color:var(--white);font-size:1.15rem}.info-panel p,.info-panel li{font-size:.83rem;line-height:1.7}.info-panel ol{counter-reset:steps;padding:0;list-style:none}.info-panel li{margin:18px 0;padding-left:28px;position:relative}.info-panel li:before{counter-increment:steps;content:counter(steps);position:absolute;left:0;color:var(--accent);font-weight:700}.help-panel{padding:24px 4px;color:var(--muted);font-size:.8rem}.help-panel h3{font-size:.85rem}.file-chips{display:flex;gap:8px;margin:18px 0}.file-chips span{background:var(--p100);padding:5px 10px;border-radius:6px;color:var(--brand);font-size:.67rem;font-weight:700}.errorlist{list-style:none;margin:8px 0;padding:0;color:var(--red-dark);font-size:.8rem}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:24px}.filter-bar label{display:block;margin-bottom:6px;font-size:.73rem;color:var(--muted)}.filter-field{flex:1;min-width:150px}.filter-field--search{flex:2}.filter-actions{display:flex;align-items:center;gap:12px}.filter-actions a{font-size:.8rem;padding:12px}.routes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.route-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:18px;transition:box-shadow .2s,transform .2s}.route-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.route-icon{display:grid;place-items:center;width:40px;height:40px;background:var(--p100);color:var(--brand);border-radius:10px;font-size:1.5rem}.route-card h2{font-size:1.15rem;margin:0}.route-date{font-size:.77rem;color:var(--muted);margin:6px 0 0}.route-person{display:flex;gap:10px;align-items:center;font-size:.82rem}.route-person .avatar{width:30px;height:30px;font-size:.7rem}.route-meta{display:flex;justify-content:space-between;gap:10px;font-size:.77rem;color:var(--muted)}.route-meta strong{color:var(--ink)}.progress-track{height:5px;border-radius:10px;overflow:hidden;background:var(--p100)}.progress-track span{display:block;height:100%;background:var(--green-dark)}.card-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.card-actions a{font-size:.8rem;font-weight:700;min-height:48px;display:flex;align-items:center}.card-actions button{font-size:.73rem;color:var(--muted);min-height:48px}.empty-state{text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:16px;padding:54px 22px}.empty-state h2{font-size:1.2rem}.empty-state p{color:var(--muted);font-size:.85rem}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:24px 0 16px;gap:12px}.section-heading h2{font-size:1rem;margin:0}.section-heading span{font-size:.75rem;color:var(--muted)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:16px}
/* Cartão de alarme: só aparece quando há casos, e tem de se distinguir dos contadores normais sem gritar. */
.metric-card--alarme{border-color:var(--red);border-left-width:5px}.metric-card--alarme strong{color:var(--red-dark)}
.metric-card--alarme .metric-card__acao{display:inline-flex;align-items:center;min-height:48px;margin-top:4px;color:var(--brand);font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:23px}.metric-card small{color:var(--muted)}.metric-card strong{display:block;font-size:2.2rem;letter-spacing:-.05em;margin:10px 0;color:var(--brand)}.metric-card p{font-size:.72rem;color:var(--muted);margin:0}.metric-card--hero{background:var(--brand);color:var(--white)}.metric-card--hero strong,.metric-card--hero small,.metric-card--hero p{color:var(--white)}.welcome-panel{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:24px}.welcome-panel p{color:var(--muted);font-size:.85rem}.welcome-panel h2{font-size:1.2rem}.map-panel{padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:16px}#map{height:52vh!important;min-height:300px;border-radius:10px!important}.map-tools{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:16px 0}.map-tools a{font-size:.77rem;min-height:48px;display:inline-flex;align-items:center}.stops-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:20px}.stop-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px}.stop-card h1{font-size:1rem}.stop-card h2{font-size:1rem;margin:10px 0}.stop-card a{min-height:44px;display:inline-flex;align-items:center;font-size:.75rem}.stop-card p{font-size:.8rem;margin:6px 0;color:var(--muted)}dialog{border:1px solid var(--line);max-height:90dvh;overflow:auto}dialog::backdrop{background:var(--dialog-backdrop)}#route-order{margin-top:20px}#route-order li{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:10px 0;font-size:.8rem}.leaflet-container{z-index:1}.leaflet-popup a{min-height:36px}
@media(min-width:1600px){.app-main{padding-top:48px}}@media(max-width:1100px){.app-sidebar{width:210px;padding:26px 14px}.app-workspace{margin-left:210px}.app-main{padding:28px 24px}.app-topbar{padding:14px 24px}.metrics-grid{grid-template-columns:repeat(2,1fr)}.import-layout{grid-template-columns:minmax(0,1fr) 270px}}
@media(max-width:800px){.app-sidebar{display:none;position:fixed;top:72px;bottom:0;width:min(320px,90vw);box-shadow:var(--shadow-lift)}.nav-open .app-sidebar{display:flex}.app-workspace{margin-left:0}.app-topbar{min-height:72px;padding:12px 18px;position:sticky;top:0;z-index:1200}.topbar-left{display:flex;align-items:center;gap:10px}.menu-toggle{display:grid;place-items:center;min-width:48px;min-height:48px;border:1px solid var(--line);border-radius:10px}.app-main{padding:26px 18px}.app-footer{margin:0 18px}.import-layout{grid-template-columns:1fr}.import-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.page-heading{align-items:flex-start;gap:18px}.page-heading .lf-btn{padding:12px 16px;font-size:.8rem}.topbar-label{display:none}.account-name{max-width:140px;overflow-wrap:anywhere}.welcome-panel{align-items:flex-start;flex-direction:column}.filter-field{min-width:140px}.app-footer span:last-child{display:none}}
@media(max-width:480px){.page-heading{flex-direction:column}.page-heading>.lf-btn{width:100%}.form-grid{grid-template-columns:1fr}.panel{padding:20px}.import-aside{grid-template-columns:1fr}.form-actions{align-items:stretch;flex-direction:column}.metrics-grid{gap:10px}.metric-card{padding:16px}.metric-card strong{font-size:1.85rem}.filter-field{flex-basis:100%}.filter-actions{width:100%}.filter-actions button{flex:1}.routes-grid,.stops-grid{grid-template-columns:minmax(0,1fr)}.account{gap:8px}.account-name{font-size:.73rem}.account .avatar{display:none}.app-main{padding:22px 14px}.map-tools{gap:8px}#map{height:48vh!important}.info-panel{padding:22px}}
.location-edit-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:22px;align-items:start}.location-map-panel{padding:8px}.location-map-panel .form-hint{padding:0 12px}.location-legend{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:14px 12px 6px;font-size:.75rem;color:var(--muted)}.location-legend strong{margin-left:auto;color:var(--ink)}.location-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.location-dot--original{background:var(--red-dark)}.location-dot--redirected{background:var(--green-dark)}#location-edit-map{height:58vh;min-height:360px;border-radius:10px}.route-optimize{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0}.route-optimize p{margin:4px 0 0;color:var(--muted);font-size:.78rem}.route-optimize-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.route-optimize-status{font-size:.75rem;color:var(--muted)}
@media(max-width:900px){.location-edit-layout{grid-template-columns:1fr}.location-edit-layout .location-map-panel{order:2}.route-optimize{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){#location-edit-map{height:46vh;min-height:300px}.location-legend strong{width:100%;margin-left:0}.route-optimize-actions,.route-optimize-actions .lf-btn{width:100%}}
.settings-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:24px;align-items:start}.settings-form{display:grid;gap:24px}.settings-aside{display:grid;gap:18px}.settings-aside h2{font-size:1rem}.settings-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:0 0 22px;padding:16px;background:var(--surface-2);border-radius:12px;font-size:.8rem}.settings-status dt{color:var(--muted);font-size:.7rem;margin-bottom:4px}.settings-status dd{margin:0;overflow-wrap:anywhere}.check-row{display:flex;align-items:center;gap:12px;min-height:48px;margin-bottom:12px}.check-row input{width:22px;height:22px;flex:none}.form-grid__wide{grid-column:1/-1}.map-tiles-warning{margin:8px 4px 0}
@media(max-width:800px){.settings-layout{grid-template-columns:1fr}}@media(max-width:480px){.settings-status{grid-template-columns:1fr}}
.epod-result{margin:24px 0}.epod-result__headline{margin:0 0 16px;color:var(--muted)}.epod-result__headline strong{font-size:1.6rem;color:var(--brand);margin-right:4px}.epod-result .form-actions{justify-content:flex-start;flex-wrap:wrap}.lf-table a{min-height:44px;display:inline-flex;align-items:center}
.door-question{display:grid;gap:10px;border:2px solid var(--accent);border-radius:12px;padding:14px;margin:0}.door-question[hidden]{display:none}.door-question legend{font-weight:700;padding:0 6px}.door-question .form-hint{margin:0}.door-question .lf-btn{width:100%;min-height:48px;justify-content:center}.door-choice[aria-pressed="true"]{box-shadow:0 0 0 3px var(--brand)}
.location-dot--rival{background:var(--accent)}.location-dot--pendente{background:var(--st-perdido)}.location-dot--ine{background:var(--muted)}.location-dot--escolha{background:var(--brand)}.excecao-opcoes{display:grid;gap:10px;margin:0;padding:0;border:0}.excecao-opcoes label{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;font-weight:500}.excecao-opcoes label:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}.excecao-opcoes small{display:block;color:var(--muted);font-weight:400}.excecao-contas{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.8rem;color:var(--muted);margin:0 0 16px}.excecao-contas strong{color:var(--ink)}
.procurar-local{display:flex;gap:8px;padding:4px 4px 0}.procurar-local input{flex:1 1 auto;min-width:0}.procurar-local .lf-btn{flex:none;min-height:48px}.location-map-panel .procurar-local-ajuda{margin:6px 0 10px}.location-map-panel .procurar-local-estado{margin:0 0 10px;color:var(--ink)}.procurar-local-ajuda code{font-size:.72rem;overflow-wrap:anywhere}.procurar-local-resultados{list-style:none;display:grid;gap:6px;margin:0 4px 10px;padding:0;max-height:32vh;overflow:auto}.procurar-local-resultados button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:.8rem;text-align:left}.procurar-local-resultados button:hover,.procurar-local-resultados button:focus-visible{border-color:var(--brand);background:var(--surface-2)}.procurar-local-resultados small{color:var(--muted)}
.mapa-ecra-inteiro-controlo button{display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:4px;background:var(--surface);color:var(--ink)}.mapa-ecra-inteiro-controlo button:hover,.mapa-ecra-inteiro-controlo button:focus-visible{background:var(--surface-2);color:var(--brand)}.mapa-ecra-inteiro{position:fixed;inset:0;z-index:1300;display:flex;flex-direction:column;margin:0;padding:8px;border:0;border-radius:0;background:var(--surface);overflow:auto}.mapa-ecra-inteiro #map,.mapa-ecra-inteiro #location-edit-map{flex:1 0 auto;height:auto!important;min-height:70vh;border-radius:10px!important}.com-mapa-em-ecra-inteiro,.com-mapa-em-ecra-inteiro body{overflow:hidden}
.delivery-pin.delivery-pin--fechada span{width:36px;height:36px;padding:2px;overflow:hidden;background:var(--surface);border-width:4px;border-style:solid}.delivery-pin--fechada img{display:block;width:100%;height:100%;object-fit:contain}.delivery-pin.delivery-pin--entregue span{border-color:var(--rota-entregue)}.delivery-pin.delivery-pin--ausente span{border-color:var(--rota-ausente)}.delivery-pin.delivery-pin--tempo span{border-color:var(--rota-tempo)}.delivery-pin.delivery-pin--morada span{border-color:var(--rota-morada)}.delivery-pin.delivery-pin--outras span{border-color:var(--rota-outras)}.delivery-pin.delivery-pin--cancelado span{border-color:var(--rota-cancelado)}.map-panel .route-resultado{padding:8px 8px 2px}/* Barra lateral: a rolagem fica, a barra desaparece — é feia neste modelo e o menu já cabe quase sempre. */
.app-sidebar{scrollbar-width:none;-ms-overflow-style:none}.app-sidebar::-webkit-scrollbar{width:0;height:0;display:none}
/* Grupos do menu: o summary veste-se como uma linha de navegação, com o mesmo alvo de toque de 48 px. */
.nav-grupo>summary{display:flex;align-items:center;gap:13px;min-height:48px;padding:12px 14px;border-radius:10px;color:var(--muted);font-weight:500;font-size:.87rem;cursor:pointer;list-style:none}
.nav-grupo>summary::-webkit-details-marker{display:none}
.nav-grupo>summary>span:first-child{font-size:1.25rem;width:22px;text-align:center}
.nav-grupo>summary:hover{background:var(--surface-2);color:var(--brand)}
.nav-grupo>summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.nav-grupo__seta{margin-left:auto;font-size:.85rem;transition:transform .15s}
.nav-grupo[open]>summary{color:var(--brand);font-weight:700}
.nav-grupo[open]>summary .nav-grupo__seta{transform:rotate(90deg)}
.nav-grupo .primary-nav{gap:2px;margin:2px 0 6px}
.nav-grupo .primary-nav a{padding-left:32px;font-size:.84rem}
.metric-card--hero .metric-card__acao{display:inline-flex;align-items:center;min-height:48px;margin-top:4px;color:var(--white);font-size:.8rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.metric-card--hero .metric-card__acao:hover{text-decoration-thickness:2px}
.resultado-panel{margin-top:24px}.resultado-panel .section-heading{margin-top:0}.resultado-panel .section-heading h2{font-size:1.6rem;letter-spacing:-.04em;color:var(--brand)}.resultado-panel>p{font-size:.78rem;color:var(--muted);margin:0 0 14px}.resultado-panel .progress-track{height:10px;border-radius:10px;overflow:hidden}
.quadro-rotas{width:100%;border-collapse:collapse;margin-top:22px;font-size:.8rem}.quadro-rotas caption{caption-side:top;text-align:left;font-size:.74rem;color:var(--muted);padding-bottom:10px}.quadro-rotas th,.quadro-rotas td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}.quadro-rotas thead th{font-size:.68rem;letter-spacing:.04em;color:var(--muted);font-weight:700;border-bottom-width:2px}.quadro-rotas th[scope=row],.quadro-rotas thead th:first-child{text-align:left;font-variant-numeric:normal}.quadro-rotas tbody tr:last-child th,.quadro-rotas tbody tr:last-child td{border-bottom:0}
@media(max-width:800px){.quadro-rotas{display:block;overflow-x:auto;white-space:nowrap}}
/* Reportar de onde o problema aparece: o botão vive no cabeçalho, em todos os ecrãs. */
.reportar-botao{display:grid;place-items:center;min-width:48px;min-height:48px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--brand);font-size:1.1rem}
.reportar-botao:hover{background:var(--p100)}
.reportar-modal{width:min(520px,92vw);border:1px solid var(--line);border-radius:16px;padding:26px;background:var(--surface);color:var(--ink)}
.reportar-modal::backdrop{background:var(--dialog-backdrop)}
.reportar-modal h2{font-size:1.15rem;margin:0 0 18px}
.reportar-modal form{display:grid;gap:14px}.reportar-modal label{display:block}
.reportar-modal .excecao-opcoes{display:grid;gap:8px;border:0;padding:0;margin:0}
/* Central de Evolução: o formulário à esquerda, o quadro do que falta à direita. */
.evolucao-layout{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,2.15fr);gap:22px;align-items:start}
.evolucao-form{display:grid;gap:14px}.evolucao-form label{display:block}.evolucao-form .form-hint{margin:0}
.evolucao-quadro{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;align-items:start}
.evolucao-coluna{padding:18px}.evolucao-coluna .section-heading{margin:0 0 12px}.evolucao-coluna .section-heading h2{font-size:.9rem}
.evolucao-item{border:1px solid var(--line);border-left:4px solid var(--p400);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--surface-2)}
.evolucao-item--problema{border-left-color:var(--red)}.evolucao-item--ideia{border-left-color:var(--teal)}
.evolucao-item__topo{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0}
.evolucao-item__titulo{font-size:.9rem;font-weight:600;color:var(--ink);margin:6px 0}
.evolucao-item__descricao{font-size:.78rem;color:var(--muted);margin:0 0 6px}
.evolucao-item__pe{font-size:.72rem;color:var(--muted);margin:0}
.evolucao-item__anexos{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.evolucao-item__anexos a{font-size:.72rem;padding:3px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--brand)}
.evolucao-p{font-weight:700;color:var(--brand)}.evolucao-p--vazia{color:var(--accent);font-weight:600}
.evolucao-triagem{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.evolucao-triagem input{grid-column:1/-1}.evolucao-triagem button{grid-column:1/-1;min-height:48px}
@media(max-width:1100px){.evolucao-layout{grid-template-columns:1fr}}
.prioritarios-panel{margin-top:24px;border-left:5px solid var(--pacote-prioritario)}.prioritarios-panel .section-heading{margin-top:0}.prioritarios-panel p{font-size:.83rem;color:var(--muted);margin:0 0 14px}.prioritarios-lista{list-style:none;display:grid;gap:6px;margin:0 0 16px;padding:0;font-size:.8rem}.prioritarios-lista strong{font-variant-numeric:tabular-nums;color:var(--ink)}
.stop-card .stop-fechada{margin:14px 0 0;color:var(--ink)}.stop-card .stop-prioritario{margin:8px 0 0;padding-left:10px;border-left:4px solid var(--pacote-prioritario);color:var(--ink);font-weight:600}.morada-corrigida .check-row{align-items:flex-start;margin:0;font-weight:500}.morada-corrigida .check-row strong{overflow-wrap:anywhere}.morada-corrigida-atual{margin:0}.lista-destino{display:grid;gap:6px;min-width:260px}.stop-alterar{width:100%;min-height:48px;margin-top:10px;justify-content:center}.pin-motorista{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.pin-linha-do-tempo{list-style:none;display:grid;gap:3px;margin:6px 0;padding:0;font-size:.75rem}.pin-linha-do-tempo b{margin-right:4px;font-variant-numeric:tabular-nums}
.progress-track{display:flex;height:8px}.progress-track .progress-track__parte{flex:none}.route-resultado{display:flex;flex-wrap:wrap;gap:4px 12px;list-style:none;margin:8px 0 0;padding:0;font-size:.72rem;color:var(--muted)}.route-resultado__cor{display:inline-block;width:9px;height:9px;margin-right:5px;border-radius:50%;vertical-align:-1px}
.progress-track .progress-track__parte--entregue,.route-resultado__cor--entregue{background:var(--rota-entregue)}.progress-track .progress-track__parte--ausente,.route-resultado__cor--ausente{background:var(--rota-ausente)}.progress-track .progress-track__parte--tempo,.route-resultado__cor--tempo{background:var(--rota-tempo)}.progress-track .progress-track__parte--morada,.route-resultado__cor--morada{background:var(--rota-morada)}.progress-track .progress-track__parte--outras,.route-resultado__cor--outras{background:var(--rota-outras)}.progress-track .progress-track__parte--cancelado,.route-resultado__cor--cancelado{background:var(--rota-cancelado)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Provas de entrega (POD): a encomenda no ponto de entrega, para quando a Cainiao contesta uma entrega. */
.pod-grupo{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--surface-2)}
.pod-grupo__topo{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin:0 0 10px;font-size:.78rem;color:var(--muted)}
.pod-grupo__data{font-weight:700;color:var(--ink)}
.pod-falta{margin:0 0 10px;padding-left:10px;border-left:4px solid var(--red);color:var(--ink);font-weight:600;font-size:.8rem}
.pod-galeria{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none}
.pod-foto{width:160px}
.pod-foto a{display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.pod-foto img{display:block;width:100%;height:160px;object-fit:cover}
.pod-foto__pe{display:flex;justify-content:space-between;gap:8px;margin:5px 0 0;font-size:.7rem;color:var(--muted)}
.pod-foto__pe a{color:var(--brand);min-height:24px}
/* O aviso da picagem: um bloco de cor ao meio do ecrã, que se lê de longe e desaparece sozinho.
   Verde volta à rota · âmbar fica à espera · vermelho sai da operação (remetente ou entrega fora do sistema). */
.picagem-modal{border:0;padding:0;background:transparent;overflow:visible}
.picagem-modal::backdrop{background:var(--dialog-backdrop)}
.picagem-aviso{width:min(560px,88vw);padding:30px 32px;border-radius:18px;color:var(--white);text-align:center}
.picagem-aviso--verde{background:var(--green-dark)}
.picagem-aviso--laranja{background:var(--amber-dark)}
.picagem-aviso--vermelho{background:var(--red-dark)}
.picagem-aviso__guia{margin:0;font-size:.82rem;letter-spacing:.06em;font-variant-numeric:tabular-nums;opacity:.92}
.picagem-aviso__destino{margin:8px 0 0;font-size:1.6rem;line-height:1.15;font-weight:700}
.picagem-aviso__motivo{margin:14px 0 0;font-size:.82rem;font-weight:500;opacity:.92}
.config-lista{display:grid;gap:10px}.config-item{display:block;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:inherit}.config-item>summary,.config-item__ligacao{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto 24px;align-items:center;gap:18px;min-height:64px;padding:14px 20px;cursor:pointer;list-style:none}.config-item__ligacao{grid-template-columns:minmax(0,1fr) 24px}.config-item>summary::-webkit-details-marker{display:none}.config-item>summary:hover,.config-item__ligacao:hover{background:var(--surface-2);border-radius:14px}.config-item>summary:focus-visible,.config-item__ligacao:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.config-item__nome strong{display:block;font-size:.92rem}.config-item__nome small,.config-item__dado small{display:block;color:var(--muted);font-size:.72rem}.config-item__dado{font-size:.8rem;min-width:88px}.config-item__seta{color:var(--muted);font-size:1.2rem;text-align:center;transition:transform .15s}.config-item[open]>summary .config-item__seta{transform:rotate(90deg)}.config-item[open]>summary{border-bottom:1px solid var(--line);border-radius:14px 14px 0 0}.config-item__corpo{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(220px,1fr);gap:24px;padding:22px 20px}
@media(max-width:800px){.config-item>summary{grid-template-columns:minmax(0,1fr) auto 24px}.config-item>summary .config-item__dado{display:none}.config-item__corpo{grid-template-columns:1fr}}
.config-item__corpo .settings-form h3,.config-item__corpo .settings-aside h3{font-size:.9rem;margin:0 0 10px}.sessao-app{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.sessao-app small{display:block;color:var(--muted);font-size:.72rem}.qr-instalacao{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;color:var(--ink)}.qr-instalacao h3{grid-column:1/-1}.qr-instalacao__codigo svg{display:block;width:168px;height:168px}.config-item__dado small+small{margin-top:2px}
.motoristas-ferramentas{display:grid;gap:12px;margin:0 0 16px}.motoristas-pesquisa input{width:100%;min-height:48px}.motoristas-filtros{display:flex;flex-wrap:wrap;gap:8px}.motoristas-filtros .lf-chip{cursor:pointer;min-height:40px}.motoristas-filtros .lf-chip[aria-pressed=true]{background:var(--p100);color:var(--brand);font-weight:700}.motoristas-ordem{font-size:.8rem;color:var(--muted)}.motoristas-grupo{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;font-size:.8rem;color:var(--muted)}.motorista-linha{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:6px}.motorista-linha__escolha{display:grid;place-items:center;min-height:64px}.motorista-linha__escolha input{width:22px;height:22px}.contactos{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}#lista-motoristas{margin-top:10px}
.logins-caixa{border:1px solid var(--line);border-radius:12px;padding:12px}.logins-caixa__topo{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.logins-caixa__pesquisa{flex:1;min-width:200px}.logins-caixa__pesquisa input{width:100%;min-height:44px}.logins-caixa .check-row{margin:0}.logins-lista{list-style:none;margin:10px 0 0;padding:0;max-height:260px;overflow:auto}.logins-lista label{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 6px;border-radius:8px;cursor:pointer}.logins-lista label:hover{background:var(--surface-2)}.logins-lista input{width:20px;height:20px;flex:none}.logins-lista small{margin-left:auto;color:var(--muted);font-size:.72rem}
.incidencias-corpo{display:grid;gap:10px;padding:16px 20px}
.incidencia{display:grid;grid-template-columns:96px minmax(0,1fr) auto 260px;gap:18px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:12px}.incidencia--fechada{opacity:.7}
.incidencia__foto img,.incidencia__foto--sem{display:grid;place-items:center;width:96px;height:96px;object-fit:cover;border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:.72rem}
.incidencia__texto{display:grid;gap:8px;min-width:0}.incidencia__texto p{margin:0;font-size:.85rem;line-height:1.45}
.incidencia__guia code{font-size:.85rem;word-break:break-all}.incidencia__motivo strong{font-size:.95rem}.incidencia__motivo span{color:var(--muted);margin-left:6px}
.incidencia__nota{color:var(--muted)}.incidencia__tratada{color:var(--muted)}
.incidencia__rotulo{display:block;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.incidencia__sugestao{display:grid;gap:2px;padding:8px 10px;border-radius:8px;background:var(--surface-2)}.incidencia__sugestao p+p{color:var(--muted)}
.incidencia__morada{display:grid;gap:6px;justify-items:start;padding:8px 10px;border-left:3px solid var(--amber-dark);border-radius:0 8px 8px 0;background:var(--surface-2)}.incidencia__morada--resolvida{border-left-color:var(--green-dark)}
.incidencia__ver-mapa{min-height:40px;padding:6px 14px}
.incidencia__qr{display:grid;justify-items:center;gap:4px;margin:0;color:var(--ink)}.incidencia__qr svg{display:block;width:104px;height:104px;background:var(--surface);border-radius:6px}.incidencia__qr figcaption{font-size:.7rem;color:var(--muted)}
.incidencia__acoes{display:grid;gap:8px}.incidencia__acoes form,.incidencia__acoes button{width:100%}
.incidencia__tratar{display:grid;gap:6px}.incidencia__tratar input{min-height:44px;min-width:0;width:100%}
.incidencias-por-justificar{padding:12px;border:1px dashed var(--line);border-radius:12px}.incidencias-por-justificar h3{font-size:.9rem;margin:0 0 6px}.incidencias-por-justificar ul{margin:6px 0 0;padding-left:18px;font-size:.82rem}
@media(max-width:1100px){.incidencia{grid-template-columns:96px minmax(0,1fr) auto}.incidencia__acoes{grid-column:2/-1}}
@media(max-width:700px){.incidencia{grid-template-columns:72px minmax(0,1fr)}.incidencia__foto img,.incidencia__foto--sem{width:72px;height:72px}.incidencia__qr{grid-column:1/-1;justify-self:start;grid-template-columns:auto auto;align-items:center}.incidencia__acoes{grid-column:1/-1}}
.mapa-modal{width:min(900px,94vw);border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--surface);color:var(--ink)}.mapa-modal::backdrop{background:var(--dialog-backdrop)}
.mapa-modal__topo{display:flex;justify-content:space-between;gap:12px;align-items:start}.mapa-modal__topo h2{margin:2px 0 4px;font-size:1.15rem}.mapa-modal__morada{margin:0;color:var(--muted);font-size:.85rem}
.mapa-modal__mapa{height:min(60vh,480px);margin:14px 0 10px;border-radius:12px}
.mapa-modal__legenda{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 10px;padding:0;list-style:none;font-size:.8rem}.mapa-modal__legenda li{display:flex;align-items:center;gap:6px}
.mapa-modal__ponto{width:12px;height:12px;border-radius:50%}.mapa-modal__ponto--foi{background:var(--red-dark)}.mapa-modal__ponto--pin{background:var(--amber-dark)}.mapa-modal__ponto--memoria{background:var(--green-dark)}.mapa-modal__ponto--sugestao{background:var(--brand)}
.mapa-modal__form{display:grid;gap:10px}.mapa-modal__form p{margin:0}.mapa-modal__botoes{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.download-capa{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--p800) 0%,var(--p900) 100%);color:var(--white);border-radius:20px;padding:40px 32px;margin-bottom:24px}.download-capa h1{color:var(--white);font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.05em;margin:6px 0 10px;position:relative}.download-capa p{position:relative;max-width:560px;color:var(--on-chrome);margin:0 0 6px}.download-capa .lf-kicker{color:var(--accent)}.download-capa__versao{font-weight:700;color:var(--white)!important}.download-capa__mascote{position:absolute;right:-24px;top:-10px;width:260px;opacity:.08;transform:scaleX(-1)}.download-corpo{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:24px;align-items:start}.download-principal h2,.download-qr h2{font-size:1.1rem;margin:0 0 14px}.download-principal h3{font-size:.95rem;margin:22px 0 8px}.download-botao{display:flex;justify-content:center;align-items:baseline;gap:10px;min-height:60px;font-size:1.05rem;width:100%}.download-botao small{font-weight:400;opacity:.85}.download-passos{margin:0;padding-left:20px;line-height:1.9}.download-qr{text-align:center}.download-qr__codigo{color:var(--brand);display:grid;place-items:center;margin:14px 0}.download-qr__codigo svg{width:220px;height:220px}.download-qr__endereco{word-break:break-all}.download-conferir{margin-top:24px}.download-conferir summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}.download-conferir dt{font-size:.75rem;color:var(--muted);margin-top:10px}.download-conferir dd{margin:2px 0 0;word-break:break-all;font-size:.78rem}
@media(max-width:800px){.download-corpo{grid-template-columns:1fr}.download-qr{order:2}.download-capa{padding:28px 20px}.download-capa__mascote{width:180px}}
.epod-mapa__filtros{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0 0 8px}.epod-mapa__filtros .check-row{margin:0}
.epod-mapa__mapa{height:min(70vh,620px);border-radius:12px}.epod-mapa__legenda{margin:10px 0 0}
.epod-mapa__ponto{display:inline-block;width:12px;height:12px;border-radius:50%;flex:none}.epod-mapa__ponto--corrigido{background:var(--green-dark)}.epod-mapa__ponto--antigo{background:var(--amber-dark)}.epod-mapa__ponto--rever{background:var(--red-dark)}.epod-mapa__ponto--igual{background:var(--muted)}.epod-mapa__ponto--porta{background:var(--brand)}
.epod-mapa__ir{min-height:36px;padding:4px 12px}
label.check-row.import-atribuidas{display:flex;align-items:center;gap:10px;margin:14px 0 2px;font-weight:600;line-height:1.3}label.check-row.import-atribuidas input{width:22px;height:22px;min-height:0;flex:none;margin:0}
.reclamacoes-aviso{margin:0 0 14px}.reclamacoes-relato{max-width:420px;font-size:.85rem}
.reclamacao-grelha{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px;align-items:start}.reclamacao-grelha .panel{padding:20px}.reclamacao-grelha h2{font-size:1.05rem;margin:0 0 12px}
.reclamacao-relato{padding:12px;border-radius:8px;background:var(--surface-2);white-space:normal;overflow-wrap:anywhere}
.reclamacao-dados{display:grid;grid-template-columns:130px minmax(0,1fr);gap:6px 12px;margin:0 0 12px;font-size:.88rem}.reclamacao-dados dt{color:var(--muted)}.reclamacao-dados dd{margin:0;overflow-wrap:anywhere}
.reclamacao-fotos{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}.reclamacao-fotos img{width:120px;height:120px;object-fit:cover;border-radius:8px;background:var(--surface-2)}.reclamacao-fotos figure{margin:0}.reclamacao-fotos figcaption{font-size:.72rem;color:var(--muted);max-width:120px}
.reclamacao-form{display:grid;gap:8px}.reclamacao-form--linha{grid-template-columns:minmax(0,1fr) auto}.reclamacao-form input{min-height:44px}
.reclamacao-mensagem{white-space:pre-wrap;font-family:inherit;font-size:.88rem;padding:12px;border-radius:8px;background:var(--surface-2);margin:12px 0}
@media(max-width:700px){.reclamacao-grelha{grid-template-columns:1fr}.reclamacao-dados{grid-template-columns:1fr}}
.reclamacoes-importar{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 20px;margin:0 0 18px}.reclamacoes-importar h2{font-size:1rem;margin:0 0 4px}.reclamacoes-importar p{margin:0}
.reclamacoes-importar__campo input[type=file]{width:100%}
@media(max-width:900px){.reclamacoes-importar{grid-template-columns:1fr}}
.rotina-tipos{margin:0}.rotina-tipos td{font-size:.8rem;vertical-align:top}
.minhas-reclamacoes{display:grid;gap:10px}.minha-reclamacao-cartao{display:grid;gap:4px;padding:16px;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:12px;background:var(--surface);min-height:48px}.minha-reclamacao-cartao--atrasada{border-left-color:var(--red-dark)}.minha-reclamacao-cartao code{font-size:.85rem}
.reclamacao-form textarea{min-height:88px}
