/* Substitui estilos inline da v006 por classes; não altera a aparência. Mantém styles.css idêntico ao da v006. */
.journey-note{font-size:13px;margin-top:8px}
.route-point.right.route-point-end{top:127px}
.error-text{line-height:1.8}
.error-actions{display:flex;gap:12px;margin-top:28px}
/* Identificação discreta do calendário decorativo como ilustrativo, sem alterar o layout aprovado. */
.ilustrativo{position:absolute;right:22px;bottom:5px;margin:0;font-size:10px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);opacity:.8}
/* Cabeçalho: logotipo IGFEJ com fundo transparente (o PNG já tem canal alfa; o fundo branco vinha de styles.css) e maior destaque. */
/* O PNG oficial (3307x1181) tem margens transparentes; o contentor recorta-as sem alterar o ficheiro. */
.public-header .igfej-mark{display:block;position:relative;overflow:hidden;flex-shrink:0;width:240px;aspect-ratio:3202/709}
.public-header .igfej-logo{position:absolute;max-width:none;width:103.28%;height:166.57%;left:-1.72%;top:-34.41%;object-fit:fill;background:transparent;border-radius:0;filter:brightness(0) invert(1)}
.public-header .igfej-mark+span{min-width:0;border-left:1px solid var(--line);padding-left:14px}
.public-header .brandname{font-size:15px}
@media(max-width:760px){.public-header .igfej-mark{width:184px}.public-header .brandname{font-size:13px}.public-header .igfej-mark+span{padding-left:10px}}
/* Página /como-funciona: reutiliza .steps e .step da v006. */
.info-page{padding:72px 0 0}
.info-page h1{font-size:52px;line-height:1.1;letter-spacing:-2px;font-weight:600;margin:0 0 16px}
.info-page .info-lead{font-size:18px;line-height:1.7;color:var(--muted);max-width:620px;margin-bottom:48px}
.info-page .step h2{font-size:16px;line-height:1.3;letter-spacing:0;margin-bottom:6px}
.info-note{margin:0 0 32px;padding:16px 20px;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:var(--radius);background:var(--surface);font-size:14px;line-height:1.6}
.info-back{margin-bottom:64px}
@media(max-width:760px){.info-page{padding:40px 0 0}.info-page h1{font-size:38px;letter-spacing:-1.5px}.info-page .info-lead{font-size:16px;margin-bottom:32px}.info-back{margin-bottom:40px}}
/* Marcador da estrada (decorativo): posição original no centro; só se move com movimento permitido e suporte a offset-path. */
.route-marker{transform:translate(207.5px,74px)}
@media(prefers-reduced-motion:no-preference){@supports(offset-path:path("M0 0")){.route-marker{transform:none;offset-path:path("M24 42h116c65 0 58 68 124 68h129");offset-rotate:0deg;animation:route-travel 4s ease-in-out 1 both}}}
@keyframes route-travel{from{offset-distance:0%}to{offset-distance:100%}}
/* Pré-visualização estática do calendário: substitui os estilos inline da v006. */
.preview-note{margin:24px 0 0}
.sidebar-month{font-size:16px;letter-spacing:0;color:var(--muted);margin-left:10px}
.sidebar-year{font-size:12px;margin-top:6px}
.side-actions{margin:20px 0}
.side-actions .end-label{margin-top:16px}
.calendar-layout+.info-back{margin-top:32px}
.calendar-layout select:disabled{opacity:.7;cursor:not-allowed}
/* Calendário interativo (pré-visualização): paleta local, sem alterar tokens globais. A cor não é o único indicador: cada célula tem texto. */
.day.livre{background:var(--blue);color:#FFFFFF}
.day.parcial{background:#FCD34D;color:#422006}
.day.completo{background:#091222;color:var(--text)}
.day.livre small,.day.parcial small,.day.completo small{color:inherit}
.day.livre:not(:disabled):hover,.day.parcial:not(:disabled):hover{filter:brightness(.95)}
.day.livre:not(:disabled):hover{background:var(--blue)}
.day.parcial:not(:disabled):hover{background:#FCD34D}
.day.livre:not(:disabled):active,.day.parcial:not(:disabled):active{filter:brightness(.88)}
.day.completo:disabled{background:#091222;color:var(--text);opacity:1;cursor:not-allowed}
.day.ausente{background:#091222;color:var(--text)}
.day.ausente:hover{background:#162843}
.cal-janela{overflow-x:clip}
.month strong{min-width:8.5em;text-align:center}
.day.parcial,.day.parcial:hover,.day.parcial:focus-visible,.day.parcial.is-selected,.day.parcial .num,.day.parcial small,.day.parcial .hoje{color:#422006}
.day .num{font-size:16px;font-weight:600;line-height:1.2}
.day small{font-size:12px;font-weight:500;line-height:1.2;white-space:nowrap}
.cal .weekday{font-size:12px}
.legend{font-size:12px;flex-wrap:wrap;row-gap:8px}
.cal .day:not(.empty){overflow:hidden}
.day.is-selected::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 0 3px #F97316,inset 0 0 0 5px var(--bg)}
.cal .day:focus-visible{outline:2px solid var(--text);outline-offset:1px;z-index:3}
.day .topo,.day small{position:relative;z-index:1}
.day .topo{display:flex;align-items:baseline;gap:6px;max-width:100%}
.day .hoje{font-size:11px;font-weight:600;line-height:1.2;letter-spacing:0;border:1px solid currentColor;border-radius:3px;padding:0 3px}
.onda{position:absolute;left:50%;top:50%;width:200%;aspect-ratio:1;border-radius:50%;pointer-events:none;z-index:0;opacity:0;transform:translate(-50%,-50%) scale(0);animation:onda-dia 400ms ease-out forwards}
.day.livre .onda{background:rgba(255,255,255,.35)}
.day.parcial .onda{background:rgba(0,0,0,.18)}
.day.ausente .onda{background:rgba(255,255,255,.18)}
.day.completo .onda{background:rgba(255,255,255,.18)}
@keyframes onda-dia{from{opacity:1;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){.onda{display:none;animation:none}}
.swatch.livre,.swatch.parcial,.swatch.completo,.swatch.escolhido{flex-shrink:0;width:14px;height:14px;border-radius:3px}
.swatch.livre{background:var(--blue)}
.swatch.parcial{background:#FCD34D}
.swatch.completo{background:#091222;border:1px solid var(--line)}
.swatch.ausente{flex-shrink:0;width:14px;height:14px;border-radius:3px;background:#091222;border:1px dashed var(--muted)}
.swatch.escolhido{background:#091222;box-shadow:inset 0 0 0 3px #F97316,inset 0 0 0 5px var(--bg)}
.calendar-layout{align-items:start}
.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.time-fields select{width:100%}
.driver-select select{width:100%}
.disponibilidade{margin-top:24px;padding-top:20px;border-top:1px solid var(--line-soft)}
.faixa{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:4px}
.segmento{padding:10px 8px;border-radius:4px;font-size:12px;line-height:1.4;text-align:center;overflow-wrap:anywhere}
.segmento.livre{background:var(--blue);color:#FFFFFF}
.segmento.ocupado{background:#091222;color:var(--text);border:1px solid var(--line)}
.segmento.vazio{grid-column:1/-1;background:#091222;color:var(--text);border:1px solid var(--line)}
.side-heading{font-size:12px;letter-spacing:0;margin:0 0 6px;color:#c4cfe0;font-weight:550}
.status-box{margin:0 0 16px;padding:12px 14px;border:1px solid #203b60;border-radius:6px;background:#11213a;font-size:12px;line-height:1.6}
.status-box:empty{display:none}
.status-box p{margin:0;color:inherit}
.status-box[data-estado="livre"]{background:#142E58;border-color:#93C5FD;color:#93C5FD}
.status-box[data-estado="conflito"],.status-box[data-estado="invalido"],.status-box[data-estado="ausente"]{background:#382D13;border-color:#FCD34D;color:#FCD34D}
.side-actions .btn.block+.help{margin-top:10px}
@media(max-width:760px){.day small{letter-spacing:0}.cal .day:not(.empty){padding:5px;gap:2px;align-items:center}.day small{margin-inline:-3px}.day-cell:has(>.feriado-marca)>.day small{margin-top:20px}.day .topo{flex-wrap:wrap;justify-content:center;gap:1px 3px}.day .hoje{padding:0 2px}.faixa{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}
@media(max-width:480px){.calendar-layout{grid-template-columns:minmax(0,1fr)}.cal-janela{margin-inline:0}.cal{grid-template-columns:repeat(7,minmax(0,1fr))}.day small{letter-spacing:-.2px}}
@supports (width:1cqw){@media(max-width:480px){html{container-type:inline-size}.cal-janela{margin-inline:calc(50% - 50cqw)}}}
@media(max-width:400px){.day small{letter-spacing:-.6px}}
@media(max-width:520px){.time-fields{grid-template-columns:1fr}.faixa{grid-template-columns:1fr 1fr}}
/* Feriados, ocorrências e tempo (pré-visualização). A marca «F» tem texto: a cor não é o único indicador. */
[hidden]{display:none!important}
.coluna-lateral{min-width:0}
.coluna-interior{display:flex;flex-direction:column;gap:16px;min-width:0}
.info-area{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;flex:1;border-top:1px solid var(--line);padding-top:12px}
.painel-info{min-width:0;min-height:0;flex:1}
.acao-detalhes{margin:12px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.link-discreto{padding:2px 0;background:none;border:0;color:var(--text);font-size:12px;text-decoration:underline;cursor:pointer}
.dialogo{max-width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:24px;background:#091222;color:var(--text);border:1px solid var(--line);border-radius:8px;overflow:auto}
.dialogo::backdrop{background:rgba(0,0,0,.7)}
.dialogo h2{margin:0 0 12px}
.dialogo p{margin:0 0 12px;font-size:14px;line-height:1.5}
.dialogo-acoes{margin:16px 0 0!important}
@media(min-width:761px){
.calendar-layout{align-items:start}
.calendar-layout>aside.coluna-lateral{position:relative;padding:0}
.coluna-interior{position:static;padding:24px;gap:12px}
.coluna-interior .side-actions{margin:12px 0 0}
.coluna-interior .status-box{margin-bottom:10px}
.coluna-interior .info-area{padding-top:10px;gap:8px}
.selecao{flex:none}
.painel-info{overflow:auto}
}
@media(min-width:761px) and (max-width:1050px){.coluna-interior{padding:18px}}
@media(max-width:760px){.calendar-layout>aside.coluna-lateral{position:static}.coluna-interior{position:static}.painel-info{overflow:visible}}
.swatch.feriado{display:inline-grid;place-items:center;flex-shrink:0;width:14px;height:14px;font-size:9px;font-style:normal;font-weight:600;line-height:1;border:1px solid var(--muted);border-radius:3px;color:var(--text)}
.tempo-locais{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.tempo-resultado{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#091222;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.tempo-resultado p{margin:0;color:inherit}
.tempo-resultado[data-estado="aviso"]{background:#382D13;border-color:#FCD34D;color:#FCD34D}
.tempo-valor{font-size:16px;font-weight:600;color:var(--text)}
.tempo-local{color:var(--muted)}
.tempo-pesquisa{margin-top:14px}
.tempo-linha{display:flex;gap:8px}
.tempo-pesquisa input{flex:1;min-width:0;min-height:36px;padding:6px 10px;background:#091222;color:var(--text);border:1px solid var(--line);border-radius:6px}
.tempo-locais{margin-top:10px}
.tempo-locais .btn{width:100%;text-align:left;white-space:normal;height:auto}
#painel-tempo .btn:disabled{opacity:.6;cursor:not-allowed}
/* Diálogo de revisão da reserva: apresenta o modal aprovado (v006) sobre o calendário; sem animações. */
.revisao{width:100%;height:100%;max-width:none;max-height:none;padding:0;border:0;background:transparent;color:var(--text);overflow:auto}
.revisao[open]{display:flex;padding:16px}
.revisao::backdrop{background:#020611c9;backdrop-filter:blur(5px)}
.revisao .modal{margin:auto}
.revisao .modal-summary strong{text-align:right;overflow-wrap:anywhere}
.revisao .modal-actions{flex-wrap:wrap}
.revisao-aviso{margin:12px 0 0;text-align:right}

/* Sucesso da demonstracao: o titulo recebe o foco inicial sem contorno (nao e interativo). */
.revisao h2[tabindex="-1"]:focus{outline:none}

/* Pre-visualizacao «As minhas reservas»: tabela aprovada (v006); cartoes compactos em ecras estreitos, sem deslocamento horizontal. */
.reservas-tabela td.ref{color:#b7d7ff}
.reservas-tabela td small.hora{display:block;color:var(--muted);margin-top:3px}
.reservas-tabela td.acoes{text-align:right}
.reservas-tabela .btn:disabled{opacity:.6;cursor:not-allowed}
.vazio-reservas{margin:0;padding:32px 24px;text-align:center;color:var(--muted)}
.vazio-reservas[hidden]{display:none}
.mobile-nav a{color:inherit}
@media(max-width:760px){
.reservas-tabela,.reservas-tabela tbody,.reservas-tabela tr,.reservas-tabela td{display:block;white-space:normal}
.reservas-tabela thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.reservas-tabela tr{padding:10px 18px;border-bottom:1px solid var(--line-soft)}
.reservas-tabela tr:last-child{border-bottom:0}
.reservas-tabela td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:7px 0;border:0;text-align:right}
.reservas-tabela td::before{content:attr(data-rotulo);flex:none;color:var(--muted);font-size:10px;letter-spacing:.6px;text-transform:uppercase;text-align:left}
.reservas-tabela td.acoes:empty{display:none}
.reservas-tabela .valor{min-width:0;overflow-wrap:anywhere}
.reservas-tabela td small.hora{display:block}
.pagehead .between>.btn{align-self:flex-start}
}

/* Pré-visualização «O meu perfil»: composição da v006 (cartão + painel), empilhada em ecrãs estreitos. */
.profile-card .profile-text{line-height:1.8;margin:0}
.profile-sub{font-size:12px;margin-top:7px;max-width:52ch}
.panel input[readonly]{width:100%;min-width:0}
.between .btn:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:760px){
.panel .between{flex-wrap:wrap;gap:14px}
.panel .between .btn{flex:none}
}

/* Pré-visualização administrativa: composição da v006 (`admin()`) sem estilos inline nem JavaScript. */
.admin-voltar{margin:0 0 14px}
.preview-note + .admin-voltar{margin-top:12px}
.notice + .page-bottom{margin-top:14px}
/* Formulário de motorista: o grupo de rádios usa fieldset/legend com o aspeto da secção aprovada. */
.resource-form-page fieldset.availability-form{border:0;border-top:1px solid var(--line);margin:28px 0 0;padding:24px 0 0;min-inline-size:0}
.resource-form-page fieldset.availability-form legend{float:left;width:100%;padding:0;margin:0 0 4px;font-size:18px;font-weight:600}
.resource-form-page fieldset.availability-form legend + *{clear:both}
.resource-form-page .availability-fields > .between{margin-bottom:16px}
.resource-form-page .form-actions{flex-wrap:wrap}
.resource-form-page textarea:focus-visible{outline:2px solid var(--cyan)}
.subnav .off{padding:16px 0;color:var(--muted);font-size:13px;border-bottom:2px solid transparent;opacity:.6;cursor:not-allowed}
.admin-sub{font-size:11px;margin-top:6px}
.admin-nota{font-size:10px;margin-top:18px}
.panel.compacto{padding:18px 24px}
.panel.compacto .admin-sub{margin-top:5px}
.horario-pico{font-size:26px;letter-spacing:-1px}
.paneltitle .btn:disabled,.panel.compacto .btn:disabled{opacity:.6;cursor:not-allowed}
.bar-1{height:17px}.bar-4{height:68px}.bar-5{height:85px}.bar-6{height:102px}.bar-7{height:119px}
@media(max-width:760px){
.subnav{flex-wrap:wrap;gap:0 22px;overflow:visible;white-space:normal}
.stat-label{gap:8px}
.horario-pico{font-size:22px}
}

/* Gerir reservas */
.pesquisa-gestao{width:100%;max-width:290px}
.pesquisa-gestao svg{flex:none;width:18px;height:18px}
.reservas-tabela tbody tr[hidden]{display:none}
@media(max-width:760px){.pesquisa-gestao{max-width:none}}

/* Histórico de recursos: tabela aprovada no computador; cartões em ecrãs estreitos. */
.historico-tabela small{display:block;margin-top:5px}
.historico-hora{font-size:11px;margin:-14px 0 18px}
@media(max-width:760px){
.historico-tabela,.historico-tabela tbody,.historico-tabela tr,.historico-tabela td{display:block;white-space:normal}
.historico-tabela thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.historico-tabela caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.historico-tabela tr{padding:10px 18px;border-bottom:1px solid var(--line-soft)}
.historico-tabela tr:last-child{border-bottom:0}
.historico-tabela td,.historico-tabela td:first-child,.historico-tabela td.reason-cell{display:flex;justify-content:space-between;align-items:baseline;gap:16px;min-width:0;padding:7px 0;border:0;text-align:right}
.historico-tabela td::before{content:attr(data-rotulo);flex:none;color:var(--muted);font-size:10px;letter-spacing:.6px;text-transform:uppercase;text-align:left}
.historico-tabela .valor{min-width:0;overflow-wrap:anywhere}
}

/* Configurações: composição e controlos limitados à página administrativa. */
.config-checkbox{display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:44px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:14px;line-height:1.5;cursor:pointer}
.config-checkbox input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--blue)}
.config-checkbox span{min-width:0;overflow-wrap:anywhere}
.field-error{display:block;min-height:0;margin-top:5px;color:#FCD34D;font-size:12px;line-height:1.5}
.field-error:empty{display:none}
.field-error:not(:empty){padding-left:9px;border-left:2px solid #FCD34D}
.page-configuracoes{--config-gap:16px}
.page-configuracoes .config-card{min-width:0;padding:20px}
.page-configuracoes .config-card h2{margin:0 0 14px;font-size:17px;font-weight:600;line-height:1.4}
.page-configuracoes .config-functioning{margin:0 0 var(--config-gap)}
.page-configuracoes .functioning-hours{display:grid;grid-template-columns:minmax(270px,.8fr) minmax(0,1.2fr);align-items:start;gap:20px}
.page-configuracoes .hours-modes{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;min-width:0;margin:0;padding:0;border:0}
.page-configuracoes .hours-modes legend{width:100%;margin:0 0 2px;font-size:14px;font-weight:600;line-height:1.4}
.page-configuracoes .hours-option{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 6px;font-size:14px;line-height:1.4;cursor:pointer}
.page-configuracoes .hours-option input,.page-configuracoes .permission-option input,.page-configuracoes .config-multiday input,.page-configuracoes .config-checkin-toggle input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--blue)}
.page-configuracoes .hours-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0;margin:0;padding:0;border:0}
.page-configuracoes .hours-fields legend{margin:0 0 4px;font-size:14px;font-weight:600}
.page-configuracoes .hours-fields select:disabled{cursor:not-allowed}
.page-configuracoes .field{min-width:0}
.page-configuracoes .field .label{display:block;margin:0 0 6px;font-size:14px;line-height:1.4}
.page-configuracoes .field input:not([type="checkbox"]),.page-configuracoes .field select{width:100%;min-width:0;min-height:44px}
.page-configuracoes .config-permissions{min-width:0;margin:16px 0 0;padding:12px 0 0;border:0;border-top:1px solid var(--line-soft)}
.page-configuracoes .config-permissions legend{padding:0 0 4px;font-size:14px;font-weight:600;line-height:1.4}
.page-configuracoes .permission-options{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px}
.page-configuracoes .permission-option,.page-configuracoes .config-multiday{display:flex;align-items:center;gap:9px;min-width:0;min-height:44px;padding:4px 6px;font-size:14px;line-height:1.5;cursor:pointer}
.page-configuracoes .permission-option span,.page-configuracoes .config-multiday span{min-width:0;overflow-wrap:anywhere}
.page-configuracoes .help{margin:6px 0 0;font-size:13px;line-height:1.55}
.page-configuracoes .config-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:var(--config-gap);margin:0 0 var(--config-gap)}
.page-configuracoes .duration-line{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}
.page-configuracoes .config-multiday{margin:10px 0 0}
.page-configuracoes .config-details{margin:6px 0 0}
.page-configuracoes .config-details summary,.page-configuracoes .config-summary-details summary{display:flex;align-items:center;min-height:44px;font-size:14px;line-height:1.5;cursor:pointer}
.page-configuracoes summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:2px}
.page-configuracoes .config-details p{margin:4px 0 8px;font-size:13px;line-height:1.55}
.page-configuracoes .config-card-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:0 0 6px}
.page-configuracoes .config-card-header h2{margin:0}
.page-configuracoes .config-checkin-toggle{display:flex;align-items:center;gap:9px;min-height:44px;padding:4px 6px;font-size:14px;line-height:1.5;cursor:pointer}
.page-configuracoes .checkin-not-required{margin:0;font-size:14px;line-height:1.55}
.page-configuracoes .checkin-details{margin-top:8px}
.page-configuracoes .checkin-details>.help{margin:0 0 8px}
.page-configuracoes .checkin-group{min-width:0;margin:10px 0 0;padding:0;border:0}
.page-configuracoes .checkin-group>legend{margin:0 0 4px;padding:0;font-size:14px;font-weight:600;line-height:1.4}
.page-configuracoes .checkin-components{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.page-configuracoes .checkin-group .help{margin-top:8px}
.page-configuracoes .checkin-example{margin-top:8px}
.page-configuracoes .checkin-example p{margin:6px 0 0;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.page-configuracoes .config-notifications{margin:0 0 var(--config-gap)}
.page-configuracoes .notification-content{display:grid;grid-template-columns:minmax(260px,480px) minmax(0,1fr);align-items:center;gap:16px 28px}
.page-configuracoes .notification-email{max-width:100%}
.page-configuracoes .confirmation-note{margin:0;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.page-configuracoes .config-vehicles{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"title control" "help control";align-items:center;gap:2px 20px;margin:0 0 var(--config-gap);padding:12px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.page-configuracoes .config-vehicles h2{grid-area:title;margin:0;font-size:16px;line-height:1.4}
.page-configuracoes .config-vehicles .permission-option{grid-area:control;justify-self:start}
.page-configuracoes .config-vehicles .help{grid-area:help;margin:0}
.page-configuracoes .config-summary-section{margin:0 0 12px}
.page-configuracoes .config-summary-section h2{margin:0 0 8px;font-size:17px;font-weight:600;line-height:1.4}
.page-configuracoes .config-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px;margin:0 0 16px}
.page-configuracoes .config-summary>div{min-width:0;padding:6px 0;border-bottom:1px solid var(--line-soft)}
.page-configuracoes .config-summary dt{font-size:12px;line-height:1.45;color:var(--muted)}
.page-configuracoes .config-summary dd{margin:4px 0 0;font-size:14px;font-weight:550;line-height:1.5;overflow-wrap:anywhere}
.page-configuracoes .config-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}
.page-configuracoes .config-actions .notice{margin:0;min-width:0}
.page-configuracoes .botao-configuracao{min-width:190px;min-height:44px}
.page-configuracoes .botao-configuracao:disabled{opacity:.6;cursor:not-allowed}
.page-configuracoes .config-back{margin-top:0}
.page-configuracoes .config-back .btn{min-height:44px}
.page-configuracoes .field-error{font-size:12px;line-height:1.5}
.page-configuracoes .field-error:empty{display:none}
.page-configuracoes .field-error:not(:empty){padding-left:9px;border-left:2px solid #FCD34D}
.page-configuracoes input[aria-invalid="true"],.page-configuracoes select[aria-invalid="true"]{border-color:#FCD34D}
.page-configuracoes [hidden]{display:none!important}
@media(max-width:760px){
.page-configuracoes .config-card{padding:16px}
.page-configuracoes .functioning-hours,.page-configuracoes .config-pair,.page-configuracoes .notification-content,.page-configuracoes .config-vehicles{grid-template-columns:minmax(0,1fr)}
.page-configuracoes .config-vehicles{grid-template-areas:"title" "control" "help";align-items:start;gap:4px}
.page-configuracoes .config-summary{grid-template-columns:minmax(0,1fr)}
.page-configuracoes .config-actions{align-items:stretch;flex-direction:column}
.page-configuracoes .botao-configuracao{width:100%}
}
@media(max-width:420px){
.page-configuracoes .hours-fields{gap:10px}
.page-configuracoes .checkin-components{gap:8px}
}

/* Feriados: marcador em linha própria; a ajuda fica fixa dentro da janela visível. */
.day-cell{position:relative;min-width:0;min-height:0}
.day-cell>.day{width:100%;height:100%}
.day-cell:has(>.feriado-marca)>.day small{margin-top:8px}
.day .topo{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;justify-items:center;align-items:center;gap:2px 0;width:100%}
.day .num{grid-column:1;grid-row:1}
.legend .swatch.feriado{display:inline-block;width:auto;height:auto;padding:0;border:0;color:var(--text);font-size:11px;line-height:1.2}
.day .hoje{grid-column:1;grid-row:3}
.day-cell>.feriado-marca{position:absolute;z-index:4;top:30px;left:50%;width:max-content;max-width:calc(100% - 4px);transform:translateX(-50%);padding:1px 3px;border:1px solid var(--line);border-radius:3px;background:color-mix(in srgb,var(--surface-raised) 88%,transparent);color:var(--text);font-family:inherit;font-size:11px;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer}
.day-cell>.feriado-marca:focus-visible{outline:2px solid currentColor;outline-offset:1px}
.feriado-tooltip{position:fixed;z-index:20;top:12px;left:12px;width:280px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);color:var(--text);box-shadow:0 10px 28px rgb(0 0 0 / 24%)}
.feriado-tooltip[data-posicionada="true"]{top:var(--feriado-card-top,12px);left:var(--feriado-card-left,12px);right:auto;bottom:auto}
.feriado-tooltip-cabecalho{display:flex;align-items:center;gap:8px;color:var(--cyan);font-size:11px;line-height:1.4}
.feriado-tooltip-cabecalho svg{width:16px;height:16px;flex:none}
.feriado-tooltip-nome{display:block;margin-top:8px;color:var(--text);font-size:16px;font-weight:600;line-height:1.35}
.feriado-tooltip-data{display:block;margin-top:2px;color:var(--muted);font-size:12px;line-height:1.5}
.feriado-tooltip-descricao{margin:10px 0 0;color:var(--text);font-size:13px;line-height:1.5}
.profile-weather{margin-top:24px}
.weather-current,.weather-state,.weather-proposal-label,.weather-shared,.weather-location-notice{margin:12px 0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.weather-current strong{color:var(--text)}
.weather-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.weather-search input{width:100%;min-width:0;min-height:42px;padding:8px 12px;background:#091222;color:var(--text);border:1px solid var(--line);border-radius:6px}
.weather-results{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.weather-results button{width:100%;height:auto;min-height:38px;text-align:left;white-space:normal;overflow-wrap:anywhere}
.weather-location-notice:empty,.weather-results:empty,.weather-proposal:empty{display:none}
.weather-proposal{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#091222;font-size:14px;line-height:1.6}
.weather-consent{display:flex;align-items:flex-start;gap:10px;margin:12px 0;font-size:14px;line-height:1.5;cursor:pointer}
.weather-consent input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--blue)}
.weather-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.weather-actions button:disabled{opacity:.6;cursor:not-allowed}
.weather-privacy{margin-top:14px}
@media(max-width:760px){
.cal .day-cell{min-height:84px}
.day-cell>.day{min-height:84px;padding:5px 1px;gap:2px}
.day .topo{gap:1px 0}
.day small{font-size:12px;line-height:1.2;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}
.weather-search{grid-template-columns:minmax(0,1fr)}
.weather-search .btn{justify-self:start}
.weather-actions>*{flex:1 1 100%}
}

/* Ausências e opções avançadas da pré-visualização: sem gravação nem política institucional. */
.absence-periods{display:grid;gap:18px;margin:18px 0}
.absence-entry{min-width:0;margin:0;padding:16px 0;border:0;border-top:1px solid var(--line-soft)}
.absence-entry>legend{padding:0 10px 0 0;font-weight:600}
.absence-mode,.extension-options{display:flex;flex-wrap:wrap;gap:10px 18px;min-width:0;margin:0 0 14px;padding:0;border:0}
.absence-mode legend,.extension-options legend{width:100%;margin-bottom:8px;color:var(--muted);font-size:12px}
.absence-mode label,.extension-options label{display:flex;align-items:center;gap:8px;min-height:38px;cursor:pointer}
.absence-mode input,.extension-options input{flex:none;width:18px;height:18px;accent-color:var(--blue)}
.absence-entry .fieldrow{margin:12px 0}
.absence-entry input[type=date],.absence-entry input[type=time]{width:100%;min-width:0}
.absence-entry [data-remove]{margin-top:6px}
.booking-controls{display:grid;gap:0;margin-top:20px}
.booking-extension{min-width:0;border-top:1px solid var(--line-soft)}
.booking-extension:last-child{border-bottom:1px solid var(--line-soft)}
.booking-extension>summary{display:flex;align-items:center;min-height:52px;padding:10px 0;color:var(--text);font-size:15px;font-weight:600;cursor:pointer;list-style-position:inside}
.booking-extension>summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.extension-body{display:grid;gap:14px;min-width:0;padding:0 0 18px}
.extension-body .field{min-width:0}
.extension-body input[type=date],.extension-body input[type=time]{width:100%;min-width:0}
.weekday-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 10px}
.series-occurrences,.checkin-states{display:grid;gap:7px;min-width:0;margin:0;padding:0;list-style:none}
.series-occurrences li,.checkin-states li{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;padding:9px 10px;border-left:2px solid var(--line);background:var(--surface-raised);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.series-occurrences li[data-conflict="true"]{border-left-color:#FCD34D}
.series-occurrences li span,.checkin-states li span{min-width:0}
.series-occurrences .series-status{color:var(--muted);text-align:right}
.booking-controls input[aria-invalid="true"]{border-color:#FCD34D}
.booking-controls [hidden]{display:none}
@media(max-width:520px){.weekday-options{grid-template-columns:repeat(2,minmax(0,1fr))}.series-occurrences li,.checkin-states li{flex-direction:column;gap:2px}.series-occurrences .series-status{text-align:left}}

/* 041: meteorologia na barra do mês e modos dentro do painel lateral. */
.calendar-toolbar{align-items:center;gap:16px;flex-wrap:wrap}
.weather-inline{margin-left:auto;max-width:320px;min-width:0;text-align:right;font-size:12px}
.weather-inline .tempo-resultado{border:0;background:transparent;padding:0;margin:0 0 4px;line-height:1.4}
.weather-inline .tempo-resultado[data-estado="aviso"]{color:var(--muted)}
.weather-inline .tempo-valor{font-size:16px}
.booking-mode-fields{border:0;padding:0;margin:0 0 16px;min-width:0}
.booking-mode-fields .fieldrow{grid-template-columns:minmax(0,1fr)}
.booking-mode-fields input[type="date"],.booking-mode-fields input[type="time"]{width:100%;min-width:0;box-sizing:border-box}
.booking-mode-fields .weekday-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.series-summary{font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.series-summary .link-discreto{display:block;min-height:44px}
#dialogo-ocorrencias .series-occurrences{max-height:none;overflow:visible}
@media(max-width:760px){.weather-inline{max-width:100%;margin-left:0;text-align:left}}

/* 042: aviso administrativo em pré-visualização, texto simples. */
.service-notice{margin:20px 0;padding:14px 18px;border:1px solid #FCD34D;border-left:4px solid #FCD34D;border-radius:6px;background:#382D13;color:#fef3c7;font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.page-configuracoes .config-notices{margin-bottom:var(--config-gap)}
.page-configuracoes .config-notices textarea{width:100%;box-sizing:border-box;min-height:96px;resize:vertical;background:#091222;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:12px;font:inherit}

#aprovacoes-lista{list-style:none;padding:0;display:grid;gap:12px}
#aprovacoes-lista li{padding:16px;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}
#aprovacoes-lista h3,#aprovacoes-lista p{margin:0 0 8px}
#aprovacoes-lista details{margin-bottom:8px}
#motivo-recusa{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:8px;background:#091222;color:var(--text);border:1px solid var(--line);border-radius:6px;font:inherit}

/* Feriado: selo próprio e estado alinhado sob o número. */
.day-cell>.day.completo{align-items:center;text-align:center;padding-inline:2px}
.day-cell:has(>.feriado-marca)>.day{align-items:center;text-align:center;padding:7px 2px;gap:2px;min-height:88px;border-top:3px solid #bd92ff}
.day-cell:has(>.feriado-marca)>.day.completo{background:#28163f;color:#f4eaff}
.day-cell:has(>.feriado-marca)>.day .topo::after{content:"";grid-column:1;grid-row:2;min-height:22px}
.day-cell:has(>.feriado-marca)>.day small{margin:0;font-size:11px;line-height:1.15;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.day-cell>.feriado-marca,.legend .swatch.feriado{background:#d9b9ff;color:#321151;border:1px solid #bd92ff;border-radius:5px;padding:2px 4px;font-weight:700;line-height:1.2}
.day-cell>.feriado-marca{top:31px;font-size:11px}
.cal .day.empty{height:100%}
@media(max-width:760px){
  .day-cell:has(>.feriado-marca)>.day{min-height:96px}
  .day-cell>.feriado-marca{padding-inline:2px;font-size:10px}
}
.sessao-identidade{display:grid;justify-items:center;gap:3px;min-width:0;max-width:160px;font-size:11px;text-align:center;overflow-wrap:anywhere}
.sessao-foto{object-fit:cover}
@media(max-width:760px){.header:has(.sessao-identidade){height:auto;min-height:72px;flex-wrap:wrap;padding-block:8px}.header:has(.sessao-identidade) .headright{flex-wrap:wrap;gap:8px}}
