/* default.css — ULSSMGo compacto */
:root{--ulssm-green-dark:#096f35;--ulssm-green:#059242;--ulssm-yellow:#e9b903;--ulssm-red:#c00;--ulssm-red-dark:#80171b;--ulssm-gray:#504f51;--brand:var(--ulssm-green);--brand-strong:var(--ulssm-green-dark);--brand-accent:var(--ulssm-yellow);--danger:var(--ulssm-red);--danger-strong:var(--ulssm-red-dark);--underline-w:220px;--footer-height:92px;--footer-real:var(--footer-height);--footer-gap:24px;--bar-pad-x:1rem;--bar-h:4px;--font-base:15.5px;--line-base:1.35;--text:#111827;--muted:#6b7280;--bg:#f6f7f9;--card-bg:#fff;--card-bd:#e5e7eb;--card-shadow:0 10px 30px rgba(17,24,39,.06)}
@media(max-width:768px){:root{--underline-w:140px}}
*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}html{font-size:var(--font-base)}body{background:var(--bg);color:var(--text);line-height:var(--line-base);font-size:var(--font-base)!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:not(.page-auth){padding-bottom:0!important}
a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-strong)}footer a[href^="mailto:"]{color:#fff!important;text-decoration:underline;text-underline-offset:2px}footer a[href^="mailto:"]:hover{text-decoration-thickness:2px}.text-muted{color:var(--muted)!important}.text-muted.small{font-size:.82rem}.text-brand{color:var(--brand)!important}.bg-brand{background-color:var(--brand)!important;color:#fff!important}.border-brand{border-color:var(--brand)!important}.link-on-dark{color:#fff!important;text-decoration:underline;text-underline-offset:2px}.link-on-dark:hover{color:#f1f5f9!important}
.card{background:var(--card-bg);border-color:var(--card-bd);border-radius:14px;box-shadow:var(--card-shadow)}.card.p-3{padding:1.15rem!important}.card .row.g-3{row-gap:1rem!important}.card .row.g-3>[class*='col-']>div:last-child{color:var(--text)}
.page-title{position:relative;display:block;width:max-content;margin:18px auto 22px;padding:0 8px 6px;border:0!important;box-shadow:none!important;background:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow) 50%,var(--ulssm-red)) left bottom/100% var(--bar-h) no-repeat;font-size:1.55rem;font-weight:650;letter-spacing:.2px}.section-title{font-size:1.2rem;font-weight:600;line-height:1.2;border:0!important;box-shadow:none!important;background-color:transparent}.card .section-title{display:block;padding-bottom:.6rem;background-image:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow) 50%,var(--ulssm-red));background-repeat:no-repeat;background-position:left 2px top 30px;background-size:100% var(--bar-h)}
.btn{border-radius:10px}.btn.btn-sm{border-radius:9px}.form-control,.form-select{border-radius:10px;min-height:42px}.auth-input:focus,.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--brand) 25%,transparent);outline:0}.form-check-input:checked,.form-switch .form-check-input:checked{background-color:var(--brand);border-color:var(--brand)}input::-webkit-calendar-picker-indicator{display:none}input[type="date"]::-webkit-input-placeholder{visibility:hidden!important}
.table{color:var(--text)}.table th{font-weight:650}.table td,.table th{vertical-align:middle}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}.dataTables_wrapper .dataTables_filter input:focus{border-color:var(--brand);box-shadow:0 0 0 .15rem color-mix(in srgb,var(--brand) 25%,transparent)}
.accordion-button{cursor:pointer}.accordion-button.section-title{padding:.7rem var(--bar-pad-x)!important;background-image:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow) 50%,var(--ulssm-red));background-repeat:no-repeat;background-position:var(--bar-pad-x) 100%;background-size:calc(100% - (var(--bar-pad-x)*2)) var(--bar-h);box-shadow:none}.accordion-button.section-title .title-text::before,.accordion-button.section-title .title-text::after{content:none!important}.accordion-button:focus{box-shadow:0 0 0 .15rem color-mix(in srgb,var(--brand) 25%,transparent)}
.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-strong);--bs-btn-hover-border-color:var(--brand-strong);--bs-btn-active-bg:var(--brand-strong);--bs-btn-active-border-color:var(--brand-strong)}.btn-danger{--bs-btn-bg:var(--danger);--bs-btn-border-color:var(--danger);--bs-btn-hover-bg:var(--danger-strong);--bs-btn-hover-border-color:var(--danger-strong);--bs-btn-active-bg:var(--danger-strong);--bs-btn-active-border-color:var(--danger-strong)}.btn-outline-primary,.btn-outline-brand{--bs-btn-color:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand)}.btn-outline-primary{--bs-btn-active-bg:var(--brand-strong);--bs-btn-active-border-color:var(--brand-strong)}.btn-outline-brand{--bs-btn-hover-color:#fff}.btn-soft-brand{color:var(--brand-strong);background:color-mix(in srgb,var(--brand) 12%,#fff);border:1px solid color-mix(in srgb,var(--brand) 35%,#fff)}.btn-soft-danger{color:var(--danger-strong);background:color-mix(in srgb,var(--danger) 12%,#fff);border:1px solid color-mix(in srgb,var(--danger) 35%,#fff)}
.alert-brand{--_bg:color-mix(in srgb,var(--brand) 12%,#fff);--_bd:color-mix(in srgb,var(--brand) 40%,#fff);--_tx:var(--brand-strong);background:var(--_bg);border-color:var(--_bd);color:var(--_tx)}.alert-danger-soft{--_bg:color-mix(in srgb,var(--danger) 12%,#fff);--_bd:color-mix(in srgb,var(--danger) 40%,#fff);--_tx:var(--danger-strong);background:var(--_bg);border-color:var(--_bd);color:var(--_tx)}.alert-soft{padding:.95rem 1rem;border-radius:.6rem;border:1px solid transparent}.alert-soft-danger{background:#fce8e8;border-color:#f5c2c7;color:#7a1b1d}.alert-soft-warning{background:#fdeceb;border-color:#f3c6c0;color:#7a4b00}.alert-soft .icon{width:1.1rem;height:1.1rem;margin-right:.5rem;vertical-align:-2px}
.badge-brand,.badge-success{background:color-mix(in srgb,var(--brand) 12%,#fff);color:var(--brand-strong);border:1px solid color-mix(in srgb,var(--brand) 40%,#fff)}.badge-brand{background:color-mix(in srgb,var(--brand) 18%,#fff);border-color:color-mix(in srgb,var(--brand) 45%,#fff)}.badge-danger,.badge-danger-quiet{background:color-mix(in srgb,var(--danger) 12%,#fff);color:var(--danger-strong);border:1px solid color-mix(in srgb,var(--danger) 45%,#fff)}.badge-danger-quiet{background:color-mix(in srgb,var(--danger) 15%,#fff)}.badge-warning{background:color-mix(in srgb,var(--ulssm-yellow) 18%,#fff);color:#6b4d00;border:1px solid color-mix(in srgb,var(--ulssm-yellow) 50%,#fff)}.badge-pendente{background:#f80;color:#fff;border:1px solid #cc5c00}.badge-estado{display:inline-flex;align-items:center;justify-content:center;min-width:10.5rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;border-radius:999px;line-height:1.1;text-align:center;white-space:normal}
.auth-title{position:relative;text-align:center;font-weight:600;font-size:1.15rem;margin:2px 0 22px;padding:6px 0;background:linear-gradient(90deg,var(--ulssm-green-dark),var(--ulssm-yellow) 50%,var(--ulssm-red-dark)) center calc(100% + 8px)/180px 4px no-repeat}.auth-wrap{display:flex;align-items:center;justify-content:center;padding:16px;background:transparent}.auth-card{width:100%;max-width:460px;background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.08);padding:28px 28px 24px}.auth-label{font-size:.92rem;color:#4a5568;margin-bottom:6px}.auth-input{height:44px;border-radius:8px;border:1px solid #e2e8f0;transition:all .15s ease}.auth-btn{width:100%;height:46px;border-radius:10px;font-weight:600;letter-spacing:.2px}.auth-btn:disabled{background:#f1f5f9!important;color:#4094ff!important;border:1px solid #e2e8f0!important;cursor:not-allowed}.auth-alert{border-radius:10px;font-size:.92rem}.auth-rgpd-notice{display:flex;align-items:flex-start;gap:.65rem}.auth-rgpd-icon{flex:0 0 22px;width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#006f35;color:#fff;font-size:.78rem;font-weight:800;font-style:normal;line-height:1;margin-top:.12rem}
body.page-auth{padding-bottom:0!important;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;background:#f3f4f6!important;overflow-x:hidden}body.page-auth .rgpd-topbar{position:static!important}body.page-auth .rgpd-footer{position:static!important;min-height:unset!important;padding-bottom:0!important;margin-top:0!important;border-top:0!important;box-shadow:none!important}body.page-auth .auth-wrap{min-height:0!important;padding:16px!important;align-items:center!important}body.page-auth main.flex-grow-1{display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:26px 16px!important;border:0!important;box-shadow:none!important;background:transparent!important}.form-actions,.form-actions .btn,.d-flex.justify-content-end>.btn,.tnu-submit-wrap{margin-bottom:var(--footer-gap)!important}
.to-top{position:fixed;right:24px;bottom:24px;width:44px;height:44px;border:0;border-radius:999px;background:#0d6efd;color:#fff;box-shadow:0 8px 20px rgba(13,110,253,.25);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:9999;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,background-color .2s ease,visibility 0s .2s}.to-top.show{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s}.to-top:hover{background:#0b5ed7}.to-top svg{width:22px;height:22px;pointer-events:none}
.rgpd-topbar{position:sticky;top:0;z-index:1030;width:100%;background:#fff;border-bottom:1px solid #dfe4ea;box-shadow:0 2px 12px rgba(16,32,51,.06)}.rgpd-topbar-inner{width:100%;min-height:78px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.rgpd-logo img{height:56px;width:auto;display:block}.rgpd-header-right{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:1.2rem;min-width:0}.rgpd-appmark{display:flex;align-items:center;gap:14px;white-space:nowrap}.rgpd-appmark strong{display:block;color:#006f35;font-size:1rem;font-weight:800}.rgpd-appmark span{display:block;color:#334155;font-size:.92rem}.rgpd-truck svg{width:26px;height:26px;fill:#006f35}.rgpd-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}.rgpd-user-name{font-size:.85rem;color:#64748b;white-space:nowrap}
.rgpd-footer{width:100%;margin-top:0!important;background:linear-gradient(120deg,#005b2c,#00753b 55%,#005b2c);color:#fff;overflow:hidden}.rgpd-footer-inner{width:100%;max-width:1320px!important;margin:0 auto;padding:16px 32px 14px!important;display:grid;grid-template-columns:minmax(250px,1.25fr) minmax(210px,.9fr) minmax(270px,1.05fr) minmax(150px,.6fr)!important;gap:30px!important;align-items:flex-start}.rgpd-footer h4,.rgpd-footer .rgpd-footer-brand h4{margin:0 0 5px!important;font-size:.9rem!important;font-weight:600!important;letter-spacing:.005em;color:#fff;background:none!important;background-image:none!important;border:0!important;box-shadow:none!important;text-decoration:none!important;padding-bottom:0!important}.rgpd-footer h4::before,.rgpd-footer h4::after,.rgpd-footer .rgpd-footer-brand h4::before,.rgpd-footer .rgpd-footer-brand h4::after{content:none!important;display:none!important}.rgpd-footer p,.rgpd-footer a{color:#fff!important;display:block;margin:0 0 4px!important;font-size:.82rem!important;line-height:1.18!important;font-weight:400!important;text-decoration:none;word-break:normal}.rgpd-footer p strong{font-weight:560!important}.rgpd-footer a:hover{text-decoration:underline;text-underline-offset:3px}.rgpd-footer-brand{display:flex;align-items:center;gap:9px!important;margin-bottom:8px!important;min-width:0}.rgpd-footer-brand img{width:33px!important;height:33px!important;object-fit:contain;display:block;flex:0 0 33px!important}.rgpd-footer-brand p{font-size:.8rem!important;margin:0!important}.rgpd-compliance-badge{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#006f35;padding:4px 8px!important;border-radius:7px!important;font-weight:700;font-size:.68rem!important;line-height:1.02;box-shadow:0 7px 16px rgba(0,0,0,.11)}.rgpd-compliance-badge svg{width:17px!important;height:17px!important;fill:#006f35}.rgpd-footer hr{border:0;border-top:1px solid rgba(255,255,255,.16);margin:6px 0!important}
.rgpd-footer-bottom{
  background:rgba(255,255,255,.09);
  padding:4px 28px!important;
  font-size:.72rem!important;
}

.rgpd-footer-bottom-inner{
  width:100%;
  max-width:none!important;
  margin:0!important;
  display:flex;
  align-items:center!important;
  justify-content:space-between;
  gap:12px;
  min-height:26px;
  text-align:left;
}

.rgpd-footer-copy{
  display:inline-flex!important;
  align-items:center!important;
  height:22px;
  margin:0!important;
  color:#fff!important;
  font-size:.70rem!important;
  line-height:1!important;
  white-space:nowrap;
}

.rgpd-footer-support{
  display:flex;
  align-items:center!important;
  justify-content:flex-end;
  gap:7px!important;
  flex-wrap:nowrap!important;
  min-height:22px;
  margin-left:auto;
}

.rgpd-footer-support span,
.rgpd-footer-support a{
  display:inline-flex!important;
  align-items:center!important;
  height:22px;
  margin:0!important;
  color:#fff!important;
  font-size:.70rem!important;
  line-height:1!important;
  white-space:nowrap;
}

.rgpd-footer-support strong{
  font-weight:600!important;
}

.rgpd-ticket-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:22px!important;
  padding:0 8px!important;
  border-radius:7px!important;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  font-weight:600!important;
  font-size:.69rem!important;
  line-height:1!important;
  transition:.18s ease;
}

.rgpd-ticket-btn:hover{
  background:#fff;
  color:#006f35!important;
  text-decoration:none!important;
}
body.rgpd-public-page{margin:0;padding-bottom:0!important;background:#f6f8fb;color:#102033;font-family:Arial,Helvetica,sans-serif;font-size:15px!important;line-height:1.55}body.rgpd-public-page *{box-sizing:border-box}body.rgpd-public-page a{color:#006f35;text-decoration:none}body.rgpd-public-page a:hover{text-decoration:underline;text-underline-offset:3px}.rgpd-page{max-width:1180px;margin:26px auto 0;padding:0 24px}.rgpd-hero{border-radius:18px;background:linear-gradient(105deg,#effaf4,#fff 58%,#fff8df);border:1px solid #e5eee8;box-shadow:0 10px 26px rgba(16,32,51,.08);padding:34px 40px 38px;margin-bottom:24px}.rgpd-hero-grid{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:start}.rgpd-eyebrow{color:#006f35;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.85rem}.rgpd-yellow-line{width:min(760px,100%);height:6px;background:#f4c400;border-radius:999px;box-shadow:0 2px 7px rgba(244,196,0,.25);margin-bottom:1rem}.rgpd-hero p{margin:0;max-width:880px;color:#26384a;font-size:1rem;line-height:1.65}.rgpd-version{color:#006f35;font-weight:800;font-size:.85rem;padding:.45rem .85rem;border:1px solid #a9d9c0;background:#fff;border-radius:999px;white-space:nowrap;box-shadow:0 6px 18px rgba(16,32,51,.06)}.rgpd-alert{margin:0 0 24px;padding:0 2px;font-size:1rem;color:#102033}.rgpd-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:10px}.rgpd-tile{background:#fff;border:1px solid #e6ebf1;border-radius:12px;padding:20px 22px;box-shadow:0 7px 20px rgba(16,32,51,.07);min-height:138px;display:grid;grid-template-columns:38px 1fr;gap:12px}.rgpd-ico svg{width:30px;height:30px;fill:#006f35;display:block}.rgpd-tile h3{margin:0 0 8px;color:#006f35;font-size:1rem;font-weight:800}.rgpd-tile p{margin:0;color:#152536;font-size:.93rem;line-height:1.55}.rgpd-tile a{display:inline-flex;gap:6px;align-items:center;font-weight:700;margin-top:4px}.rgpd-acc{margin-top:8px}.rgpd-acc-item{background:#fff;border:1px solid #e6ebf1;border-radius:10px;margin-bottom:6px;box-shadow:0 4px 12px rgba(16,32,51,.05);overflow:hidden}.rgpd-acc-btn{width:100%;border:0;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:13px 18px;cursor:pointer;font:inherit;color:#152536;font-weight:800;text-align:left}.rgpd-acc-left{display:flex;align-items:center;gap:12px}.rgpd-acc-left svg{width:24px;height:24px;color:#006f35;stroke:currentColor;fill:none}.rgpd-arrow{color:#006f35;font-size:1.2rem;transition:.18s ease}.rgpd-acc-item.open .rgpd-arrow{transform:rotate(180deg)}.rgpd-bar{height:3px;background:linear-gradient(90deg,#006f35,#f4c400,#d40000)}.rgpd-acc-body{display:none;padding:18px 22px 20px 58px;color:#26384a;background:#fff;line-height:1.65}.rgpd-acc-item.open .rgpd-acc-body{display:block}.rgpd-card{background:#fff;border:1px solid #e6ebf1;border-radius:16px;padding:24px 28px;box-shadow:0 8px 24px rgba(15,23,42,.05);margin-bottom:18px}.rgpd-card h2{margin:0 0 18px;color:#006f35;font-size:1.4rem;font-weight:800}.rgpd-card p{margin:0;color:#102033;line-height:1.65}.rgpd-card ul{margin:0;padding-left:20px}.rgpd-table-wrap{overflow:auto}.rgpd-table{width:100%;border-collapse:collapse;margin-top:14px}.rgpd-table th{background:#f3f7f4;color:#163047;text-align:left;padding:12px;border:1px solid #dbe5dd;font-weight:800}.rgpd-table td{padding:12px;border:1px solid #e4eaf0;vertical-align:top;color:#102033}
.print-toolbar,.print-header,.print-footer{display:none}@media print{.no-print{display:none!important}.card{box-shadow:none!important;border:1px solid #ddd!important}.btn{box-shadow:none!important}.print-header{display:block!important;margin-bottom:14px}.print-header-center{text-align:center}.print-header-center img{max-height:60px}.print-footer{display:block!important;position:fixed;left:0;right:0;bottom:8mm;font-size:10px;color:#333;padding:0 12mm}.print-footer .left{float:left}.print-footer .right{float:right}.page-number::before{content:counter(page)}.total-pages::before{content:counter(pages)}@page{margin:18mm 12mm 22mm}}
table.login_table{width:300px;padding:0}div.form_div{width:300px;margin:auto}table.login_table p{font-size:.8em;margin:0}div#form_container div.wrapper{padding:20px}input.xxsmall{width:5%}div#error{width:300px;margin:30px auto;text-align:center;color:red}
@media(max-width:1200px){.rgpd-footer-inner{grid-template-columns:1fr 1fr!important;gap:24px!important}}@media(max-width:1100px){.rgpd-topbar-inner{flex-direction:column;align-items:center;padding:16px 18px}.rgpd-header-right{width:100%;margin-left:0;flex-direction:column;justify-content:center}.rgpd-header-actions{justify-content:center}.rgpd-footer-inner{grid-template-columns:1fr!important;gap:18px!important}}@media(max-width:900px){.rgpd-logo img{height:44px}.rgpd-page{padding:0 16px;margin-top:22px}.rgpd-hero{padding:28px 24px}.rgpd-hero-grid{grid-template-columns:1fr;gap:1rem}.rgpd-version{width:max-content;max-width:100%;white-space:normal}.rgpd-tiles{grid-template-columns:1fr}.rgpd-footer-brand p{max-width:none}.rgpd-footer-bottom-inner{flex-direction:column;justify-content:center;text-align:center;gap:6px}.rgpd-footer-support{justify-content:center;flex-wrap:wrap!important}}@media(max-width:768px){.rgpd-topbar-inner{flex-direction:column;padding:16px 18px}.rgpd-header-right{width:100%;margin-left:0;flex-direction:column;justify-content:center}.rgpd-header-actions{justify-content:center}.rgpd-logo img{height:44px}.rgpd-footer-inner{grid-template-columns:1fr!important;gap:18px!important;padding:22px 22px!important}}
/* =========================================================
   VIATURAS — CARD + MODAIS + PAGINAÇÃO
   =========================================================
.viaturas-page{padding-bottom:150px!important}.viaturas-topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;margin-bottom:1rem}.viaturas-topbar .page-title{justify-self:center;margin:0}.viaturas-create-btn{min-width:138px;border-radius:12px;font-weight:700}.viaturas-alert{border-radius:14px;margin-bottom:1rem}.viaturas-filter-card{border-radius:18px!important;padding:1rem!important;margin-bottom:1rem!important}.viaturas-filter-card .form-label{font-size:.86rem;color:#334155;margin-bottom:.35rem}.viaturas-table-card{border-radius:18px!important;overflow:hidden;margin-bottom:2.8rem!important}.viaturas-table-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem .75rem;border-bottom:1px solid #e6ebf1;background:linear-gradient(180deg,#fff,#fbfdff)}.viaturas-table-head h5{margin:0;font-size:1rem;font-weight:750;color:#102033}.viaturas-table-head span{font-size:.82rem;color:#64748b}.viaturas-page-pill{display:inline-flex!important;align-items:center;justify-content:center;padding:.35rem .7rem;border-radius:999px;border:1px solid #a9d9c0;background:#f4fbf7;color:#006f35!important;font-weight:750!important;white-space:nowrap}.viaturas-table{margin:0!important}.viaturas-table thead th{font-size:.84rem;font-weight:750;color:#102033;background:#f8fafc;border-bottom:1px solid #e6ebf1;white-space:nowrap}.viaturas-table tbody td{font-size:.86rem;border-bottom:1px solid #eef2f6}.viatura-row{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.viatura-row:hover{background:#f8fafc}.viatura-row:hover td:first-child{box-shadow:inset 4px 0 0 var(--brand)}.viaturas-pagination-wrap{display:flex;justify-content:flex-end;padding:.8rem 1rem;border-top:1px solid #e6ebf1;background:#fbfdff}.viaturas-pagination .page-link{border-radius:10px!important;margin:0 2px;color:#006f35;border-color:#cfe6d8;font-size:.84rem}.viaturas-pagination .page-item.active .page-link{background:#006f35;border-color:#006f35;color:#fff}.viaturas-pagination .page-item.disabled .page-link{color:#94a3b8;background:#f8fafc}.viatura-modal .modal-content{border:0;border-radius:20px;box-shadow:0 24px 70px rgba(15,23,42,.22);overflow:hidden}.viatura-modal .modal-header{border-bottom:1px solid #e6ebf1;background:linear-gradient(105deg,#effaf4 0%,#fff 58%,#fff8df 100%)}.viatura-modal .modal-title{font-weight:800;color:#102033}.viatura-modal-eyebrow{color:#006f35;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.2rem}.viatura-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.viatura-detail-grid>div{border:1px solid #e6ebf1;border-radius:14px;background:#fbfdff;padding:.75rem .85rem}.viatura-detail-grid span{display:block;font-size:.76rem;color:#64748b;margin-bottom:.2rem}.viatura-detail-grid strong{display:block;font-size:.92rem;color:#102033}.viatura-modal-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.viatura-modal-actions form{display:inline-flex;margin:0}.viatura-edit-panel{border:1px solid #e6ebf1;border-radius:16px;background:#fff;padding:1rem}.viatura-edit-panel .form-label{font-size:.84rem;color:#334155;margin-bottom:.35rem}@media(max-width:900px){.viaturas-page{padding-bottom:80px!important}.viaturas-topbar{grid-template-columns:1fr}.viaturas-topbar .page-title{justify-self:start}.viaturas-create-btn{width:100%}.viaturas-table-head{align-items:flex-start;flex-direction:column}.viatura-detail-grid{grid-template-columns:1fr}.viaturas-pagination-wrap{justify-content:center}.viaturas-pagination{flex-wrap:wrap;gap:.25rem}.viaturas-table thead th,.viaturas-table tbody td{white-space:nowrap}}
/* ========================================================================
   Viaturas — Premium modal/table patch
   Colar no final do default.css
   ======================================================================== */
.viaturas-page{max-width:1200px;margin:1.15rem auto 0;padding:0 1.25rem 1.35rem!important}.viaturas-page .page-title{margin:0 auto}.viaturas-toolbar{display:grid;grid-template-columns:120px 1fr 150px;align-items:center;gap:1rem;margin-bottom:.9rem}.viaturas-filter-card{border:1px solid #e3eaf1;border-radius:16px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.055);padding:1rem}.viaturas-filter-card .form-label{font-size:.82rem;color:#344054;margin-bottom:.35rem}.viaturas-filter-card .form-control,.viaturas-filter-card .form-select{min-height:42px}.viaturas-table-card{border:1px solid #e3eaf1;border-radius:16px;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.06);overflow:hidden;margin-bottom:1.1rem}.viaturas-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem .75rem;border-bottom:1px solid #edf1f5}.viaturas-card-title{font-weight:750;color:#102033;line-height:1.1}.viaturas-card-subtitle{font-size:.82rem;color:#667085;margin-top:.2rem}.viaturas-page-badge{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 .75rem;border-radius:999px;border:1px solid #b8dec7;background:#f3fbf6;color:#006f35;font-size:.82rem;font-weight:750}.viaturas-table{margin:0!important}.viaturas-table th{background:#f7fafc!important;font-size:.82rem;font-weight:750;color:#102033;border-bottom:1px solid #e3eaf1!important;white-space:nowrap}.viaturas-table td{font-size:.85rem;border-color:#eef2f6!important;vertical-align:middle;white-space:nowrap}.viaturas-row{cursor:pointer;transition:background-color .14s ease,box-shadow .14s ease}.viaturas-row:hover{background:#f5fbf8!important}.viaturas-row:focus{outline:2px solid color-mix(in srgb,var(--brand) 40%,transparent);outline-offset:-2px}.viaturas-pagination{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;padding:.75rem 1rem;border-top:1px solid #edf1f5;background:#fbfcfe}.viaturas-pagination .btn{min-width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0 .7rem}.vehicle-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:20px;padding:0 .45rem;border-radius:999px;font-size:.70rem;font-weight:750}.vehicle-badge-ok{background:#15945c;color:#fff}.vehicle-badge-warn{background:#fff6dd;color:#946200;border:1px solid #ffd166}.vehicle-muted{color:#667085}.vehicle-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.62);z-index:2000;display:none;align-items:center;justify-content:center;padding:22px}.vehicle-modal-overlay.show{display:flex}.vehicle-modal{width:min(980px,calc(100vw - 42px));max-height:calc(100vh - 44px);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 90px rgba(15,23,42,.34);border:1px solid rgba(226,232,240,.95)}.vehicle-modal-header{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.35rem 1rem;background:linear-gradient(105deg,#f7fcf9 0%,#fff 58%,#fff8df 100%);border-bottom:1px solid #e7edf3}.vehicle-modal-kicker{color:#006f35;font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.25rem}.vehicle-modal-title{font-size:1.18rem;font-weight:850;color:#102033;line-height:1.15}.vehicle-close{width:36px;height:36px;border:0;background:transparent;border-radius:999px;color:#667085;font-size:1.55rem;line-height:1;display:flex;align-items:center;justify-content:center}.vehicle-close:hover{background:rgba(15,23,42,.06);color:#111827}.vehicle-modal-body{padding:1.05rem 1.35rem 1.2rem}.vehicle-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:.9rem}.vehicle-summary-card{display:grid;grid-template-columns:36px 1fr;gap:.7rem;align-items:center;padding:.75rem .85rem;border:1px solid #e3eaf1;border-radius:13px;background:#fbfdff}.vehicle-summary-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#f0f9f4;color:#006f35}.vehicle-summary-icon svg{width:18px;height:18px}.vehicle-summary-label{font-size:.72rem;color:#667085;line-height:1.1;margin-bottom:.18rem}.vehicle-summary-value{font-size:.88rem;color:#102033;font-weight:750;line-height:1.2}.vehicle-action-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.25rem 0 1rem}.vehicle-divider{border:0;border-top:1px solid #e7edf3;margin:1rem 0}.vehicle-edit-card{border:1px solid #e1e8f0;border-radius:15px;background:#fff;padding:1rem;box-shadow:0 10px 28px rgba(15,23,42,.035)}.vehicle-edit-title{font-size:1rem;font-weight:800;color:#102033;margin:0 0 .85rem}.vehicle-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem .85rem}.vehicle-edit-grid .form-label{font-size:.78rem;color:#475467;margin-bottom:.3rem}.vehicle-edit-grid .form-control,.vehicle-edit-grid .form-select{min-height:40px;border-radius:10px}.vehicle-field-wide{grid-column:span 2}.vehicle-edit-actions{display:flex;justify-content:flex-end;margin-top:.9rem}.vehicle-create-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem .85rem}.vehicle-create-grid .form-label{font-size:.78rem;color:#475467;margin-bottom:.3rem}.vehicle-create-actions{display:flex;justify-content:flex-end;margin-top:.9rem}.vehicle-table-spacer{height:12px}.viaturas-page + .rgpd-footer,.viaturas-page~.rgpd-footer{margin-top:0!important}@media(max-width:900px){.viaturas-toolbar{grid-template-columns:1fr}.viaturas-toolbar .page-title{justify-self:center}.vehicle-modal{width:calc(100vw - 24px)}.vehicle-summary-grid,.vehicle-edit-grid,.vehicle-create-grid{grid-template-columns:1fr}.vehicle-field-wide{grid-column:auto}.vehicle-edit-actions,.vehicle-create-actions{justify-content:stretch}.vehicle-edit-actions .btn,.vehicle-create-actions .btn{width:100%}}@media(max-height:760px) and (min-width:901px){.vehicle-modal{max-height:calc(100vh - 24px)}.vehicle-modal-header{padding:.85rem 1.15rem}.vehicle-modal-body{padding:.85rem 1.15rem}.vehicle-summary-grid{gap:.55rem}.vehicle-summary-card{padding:.62rem .72rem}.vehicle-edit-card{padding:.85rem}.vehicle-edit-grid{gap:.55rem .7rem}.vehicle-action-row{margin-bottom:.7rem}.vehicle-divider{margin:.75rem 0}}
.vehicle-action-row .btn{height:38px;padding:0 .9rem;border-radius:10px;font-size:.84rem;font-weight:600;display:inline-flex;align-items:center;gap:.45rem;box-shadow:none!important;}
.vehicle-action-row .btn svg{width:15px;height:15px;opacity:.92;}
.vehicle-summary-card{min-height:74px;padding:.72rem .85rem;border:1px solid #e7edf3;background:#fbfcfe;}
.vehicle-summary-icon{width:30px;height:30px;border-radius:9px;background:#f2f4f7;color:#475467;}
.vehicle-summary-icon svg{width:15px;height:15px;}
.vehicle-summary-value{font-size:.92rem;font-weight:650;color:#101828;}
.vehicle-summary-label{font-size:.73rem;color:#667085;}
.vehicle-edit-grid .form-control,.vehicle-edit-grid .form-select{min-height:40px;font-size:.92rem;}
.vehicle-modal{width:min(860px,calc(100vw - 42px));}
.vehicle-modal-body{padding:1rem 1.15rem 1.1rem;}
.vehicle-create-actions,
.vehicle-edit-actions{display:flex!important;justify-content:flex-end!important;align-items:center!important;margin-top:.9rem!important;}
.vehicle-create-actions .btn,
.vehicle-edit-actions .btn{width:auto!important;min-width:150px!important;height:40px!important;padding:0 1rem!important;border-radius:10px!important;font-size:.88rem!important;font-weight:600!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.45rem!important;}
.vehicle-create-actions .btn svg,
.vehicle-edit-actions .btn svg{width:15px!important;height:15px!important;}
.vehicle-create-actions .btn::before{content:"+";font-size:1rem;font-weight:700;line-height:1;}
.vehicle-edit-actions .btn::before{content:"▣";font-size:.9rem;line-height:1;}
/* FIX FINAL — botão Criar viatura compacto */
.viaturas-create-btn{width:auto!important;min-width:132px!important;height:40px!important;padding:0 .95rem!important;border-radius:11px!important;font-size:.88rem!important;font-weight:600!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.45rem!important;line-height:1!important;}
.viaturas-create-btn svg{width:15px!important;height:15px!important;flex:0 0 15px!important;fill:currentColor!important;}
/* impedir ícones gigantes em qualquer botão das viaturas */
.viaturas-page .btn svg,
.vehicle-modal .btn svg{width:15px!important;height:15px!important;flex:0 0 15px!important;fill:currentColor!important;}
/* remover pseudo-ícones duplicados */
.vehicle-create-actions .btn::before,
.vehicle-edit-actions .btn::before{content:none!important;}
.vehicle-summary-icon{color:#006f35;}
.vehicle-summary-card:nth-child(2) .vehicle-summary-icon{color:#0b6fb3;}
.vehicle-summary-card:nth-child(3) .vehicle-summary-icon{color:#d97706;}
.vehicle-summary-card:nth-child(6) .vehicle-summary-icon{color:#16a34a;}
/* =========================================================
   VIATURAS — EDIT PANEL PREMIUM
   ========================================================= */

.vehicle-edit-card{
  border:1px solid #e7edf3!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#ffffff 0%, #fbfcfd 100%)!important;
  padding:1.15rem 1.2rem 1rem!important;
  box-shadow:
    0 10px 30px rgba(15,23,42,.035),
    inset 0 1px 0 rgba(255,255,255,.7)!important;
}

.vehicle-edit-title{
  position:relative;
  margin:0 0 1rem!important;
  padding-bottom:.55rem;
  font-size:1rem!important;
  font-weight:700!important;
  letter-spacing:-.01em;
  color:#0f172a!important;
}

.vehicle-edit-title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:120px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(
    90deg,
    var(--ulssm-green),
    var(--ulssm-yellow),
    var(--ulssm-red)
  );
}

.vehicle-edit-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:.9rem 1rem!important;
}

.vehicle-edit-grid .form-label{
  font-size:.74rem!important;
  font-weight:600!important;
  color:#667085!important;
  margin-bottom:.32rem!important;
  letter-spacing:.01em;
}

.vehicle-edit-grid .form-control,
.vehicle-edit-grid .form-select{
  min-height:42px!important;
  border-radius:12px!important;
  border:1px solid #d9e2ec!important;
  background:#fcfcfd!important;
  font-size:.90rem!important;
  color:#111827!important;
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    background-color .18s ease;
}

.vehicle-edit-grid .form-control:hover,
.vehicle-edit-grid .form-select:hover{
  border-color:#b8c7d6!important;
  background:#fff!important;
}

.vehicle-edit-grid .form-control:focus,
.vehicle-edit-grid .form-select:focus{
  border-color:#16a34a!important;
  background:#fff!important;
  box-shadow:
    0 0 0 3px rgba(22,163,74,.10)!important;
}

.vehicle-edit-actions{
  margin-top:1rem!important;
  padding-top:.85rem!important;
  border-top:1px solid #edf2f7!important;
}

.vehicle-edit-actions .btn{
  min-width:170px!important;
  height:42px!important;
  border-radius:12px!important;
  font-size:.88rem!important;
  font-weight:600!important;
  letter-spacing:.01em;
  box-shadow:
    0 8px 18px rgba(0,111,53,.14)!important;
}

.vehicle-edit-actions .btn:hover{
  transform:translateY(-1px);
  box-shadow:
    0 12px 24px rgba(0,111,53,.18)!important;
}

/* reduzir vazio inferior */
.vehicle-modal-body{
  padding-bottom:.9rem!important;
}

.app-toast{
  position:fixed;
  top:94px;
  right:28px;
  z-index:3000;
  min-width:280px;
  max-width:420px;
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  padding:.9rem 1rem;
  border-radius:16px;
  background:#fff;
  border:1px solid #e7edf3;
  box-shadow:0 20px 55px rgba(15,23,42,.18);
  animation:toastIn .25s ease-out;
}

.app-toast-icon{
  width:30px;
  height:30px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  color:#fff;
  flex:0 0 30px;
}

.app-toast-success .app-toast-icon{ background:#12824c; }
.app-toast-error .app-toast-icon{ background:#c62828; }

.app-toast-title{
  font-size:.82rem;
  font-weight:750;
  color:#102033;
  margin-bottom:.15rem;
}

.app-toast-msg{
  font-size:.88rem;
  color:#334155;
  line-height:1.35;
}

.app-toast.hide{
  opacity:0;
  transform:translateY(-8px);
  transition:.25s ease;
}

@keyframes toastIn{
  from{ opacity:0; transform:translateY(-8px); }
  to{ opacity:1; transform:translateY(0); }
}

@media(max-width:768px){
  .app-toast{
    left:16px;
    right:16px;
    top:82px;
    max-width:none;
  }
}/* PEDIDOS UTD — alinhado com viaturas/motoristas */
.pedidos-filter-card{border:1px solid #e3eaf1!important;border-radius:16px!important;background:#fff!important;box-shadow:0 12px 30px rgba(15,23,42,.055)!important;padding:1rem!important}.pedidos-filter-card .form-label{font-size:.82rem!important;color:#344054!important;margin-bottom:.35rem!important}.pedidos-filter-card .form-control,.pedidos-filter-card .form-select{min-height:42px!important;border-radius:10px!important}.pedidos-table-card{border:1px solid #e3eaf1!important;border-radius:16px!important;background:#fff!important;box-shadow:0 14px 34px rgba(15,23,42,.06)!important;overflow:hidden!important;margin-bottom:1.1rem!important}.pedidos-card-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:1rem!important;padding:1rem 1.1rem .75rem!important;border-bottom:1px solid #edf1f5!important;background:linear-gradient(180deg,#fff,#fbfdff)!important}.pedidos-table{margin:0!important}.pedidos-table th{background:#f7fafc!important;font-size:.82rem!important;font-weight:750!important;color:#102033!important;border-bottom:1px solid #e3eaf1!important;white-space:nowrap!important}.pedidos-table td{font-size:.85rem!important;border-color:#eef2f6!important;vertical-align:middle!important}.pedidos-row-clickable{cursor:pointer;transition:background-color .14s ease,box-shadow .14s ease}.pedidos-row-clickable:hover{background:#f5fbf8!important}.pedidos-row-clickable:hover td:first-child{box-shadow:inset 4px 0 0 var(--brand)}.pedidos-row-clickable:focus{outline:2px solid color-mix(in srgb,var(--brand) 40%,transparent);outline-offset:-2px}.pedidos-table .badge-estado{min-width:150px!important;max-width:190px!important;padding:.38rem .7rem!important;font-size:.76rem!important}@media(max-width:900px){.pedidos-card-head{align-items:flex-start!important;flex-direction:column!important}.pedidos-table th,.pedidos-table td{white-space:nowrap!important}}

/* =========================================================
   PEDIDOS UTD — sem scroll horizontal + texto moldado + tooltip
   ========================================================= */
.pedidos-table-card .pedidos-table-responsive{overflow-x:visible!important;width:100%!important;}
.pedidos-table{width:100%!important;table-layout:fixed!important;}
.pedidos-table th,.pedidos-table td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;line-height:1.25!important;}
.pedidos-table th:nth-child(1),.pedidos-table td:nth-child(1){width:52px!important;text-align:center!important;}
.pedidos-table th:nth-child(2),.pedidos-table td:nth-child(2){width:112px!important;}
.pedidos-table th:nth-child(3),.pedidos-table td:nth-child(3){width:92px!important;}
.pedidos-table th:nth-child(4),.pedidos-table td:nth-child(4){width:120px!important;}
.pedidos-table th:nth-child(5),.pedidos-table td:nth-child(5){width:260px!important;}
.pedidos-table th:nth-child(6),.pedidos-table td:nth-child(6){width:110px!important;}
.pedidos-table th:nth-child(7),.pedidos-table td:nth-child(7){width:145px!important;text-align:center!important;}
.pedidos-table th:nth-child(8),.pedidos-table td:nth-child(8){width:180px!important;}
.pedidos-table .badge-estado{min-width:118px!important;max-width:140px!important;padding:.34rem .55rem!important;font-size:.72rem!important;cursor:help;}
.pedidos-table .estado-auto-note{display:flex!important;justify-content:center!important;margin-top:.24rem!important;}
.pedidos-table .estado-auto-note .mini-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;max-width:112px!important;padding:.17rem .48rem!important;border-radius:999px!important;background:#eef2f6!important;color:#475467!important;border:1px solid #d9e2ec!important;font-size:.68rem!important;font-weight:650!important;cursor:help!important;}
.pedidos-row-clickable td{transition:background-color .14s ease,box-shadow .14s ease;}
@media(max-width:1100px){.pedidos-table-card .pedidos-table-responsive{overflow-x:auto!important}.pedidos-table{table-layout:auto!important}.pedidos-table th,.pedidos-table td{white-space:nowrap!important}}
.rgpd-inline-badge{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  max-width:100%;
  padding:.48rem .75rem;
  border-radius:999px;
  border:1px solid #b8dec7;
  background:#f7fcf9;
  color:#102033;
  box-shadow:0 4px 14px rgba(15,23,42,.035);
  font-size:.80rem;
  line-height:1.25;
}

.rgpd-inline-icon{
  flex:0 0 21px;
  width:21px;
  height:21px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#006f35;
  color:#fff;
  font-size:.70rem;
  font-weight:800;
  font-style:normal;
}

.rgpd-inline-badge strong{
  color:#006f35;
  font-weight:750;
  margin-right:.25rem;
}

.rgpd-inline-badge a{
  color:#006f35!important;
  font-weight:650;
  text-decoration:none;
  margin-left:.25rem;
}

.rgpd-inline-badge a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}

.pedidos-empty-cell{
  width:100%;
  background:#fff;
  border-right:0!important;
}

.pedidos-col-criado{
  min-width:135px;
  white-space:nowrap;
}

.pedidos-col-data{
  min-width:150px;
  white-space:nowrap;
}

.pedidos-col-od{
  min-width:210px;
  white-space:nowrap;
}

/* FIX FINAL — Pedidos: datas e origem/destino numa linha */
.pedidos-table .pedidos-col-criado,
.pedidos-table th.pedidos-col-criado{
  width:145px!important;
  min-width:145px!important;
  max-width:145px!important;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

.pedidos-table .pedidos-col-data,
.pedidos-table th.pedidos-col-data{
  width:160px!important;
  min-width:160px!important;
  max-width:160px!important;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

.pedidos-table .pedidos-col-od,
.pedidos-table th.pedidos-col-od{
  width:230px!important;
  min-width:230px!important;
  max-width:230px!important;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

/* Ajuste específico das colunas na tabela atual */
.pedidos-table th:nth-child(3),
.pedidos-table td:nth-child(3){
  width:145px!important;
}

.pedidos-table th:nth-child(5),
.pedidos-table td:nth-child(5){
  width:160px!important;
}

.pedidos-table th:nth-child(6),
.pedidos-table td:nth-child(6){
  width:230px!important;
}

/* =========================================================
   LOGIN — Modal premium para mensagens de acesso
   ========================================================= */

.modal-backdrop.show{
  opacity:.68!important;
  background:#0f172a!important;
}

.login-message-modal .modal-dialog{
  max-width:430px!important;
}

.login-message-content{
  position:relative!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:22px!important;
  background:#ffffff!important;
  box-shadow:
    0 34px 90px rgba(15,23,42,.38),
    0 0 0 1px rgba(255,255,255,.65)!important;
}

.login-message-topbar{
  height:5px;
  width:100%;
  background:linear-gradient(
    90deg,
    var(--ulssm-green),
    var(--ulssm-yellow) 52%,
    var(--ulssm-red)
  );
}

.login-message-close{
  position:absolute;
  top:12px;
  right:14px;
  z-index:3;
  width:34px;
  height:34px;
  border:0;
  border-radius:999px;
  background:#f8fafc;
  color:#64748b;
  font-size:1.35rem;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:.16s ease;
}

.login-message-close:hover{
  background:#eef2f6;
  color:#111827;
}

.login-message-body{
  padding:2.25rem 2rem 1.75rem!important;
  text-align:center;
}

.login-message-icon{
  width:66px;
  height:66px;
  margin:0 auto 1rem;
  border-radius:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg,#fff2f2,#ffe4e6);
  border:1px solid #fecdd3;
  color:#c00000;
  box-shadow:0 12px 28px rgba(192,0,0,.12);
}

.login-message-icon span{
  width:34px;
  height:34px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#c00000;
  color:#fff;
  font-size:1.35rem;
  font-weight:800;
  line-height:1;
}

.login-message-kicker{
  margin-bottom:.25rem;
  color:#006f35;
  font-size:.74rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.login-message-title{
  margin:0 0 .55rem!important;
  color:#111827;
  font-size:1.28rem;
  font-weight:800;
  letter-spacing:-.01em;
}

.login-message-text{
  margin:0 auto 1.45rem!important;
  max-width:320px;
  color:#475467;
  font-size:.96rem;
  line-height:1.45;
}

.login-message-btn{
  min-width:118px;
  height:42px;
  border-radius:12px!important;
  font-weight:750!important;
  box-shadow:0 10px 22px rgba(0,111,53,.18);
}

.login-message-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(0,111,53,.22);
}

@media(max-width:576px){
  .login-message-modal .modal-dialog{
    max-width:calc(100vw - 32px)!important;
    margin:0 auto!important;
  }

  .login-message-body{
    padding:2rem 1.35rem 1.5rem!important;
  }
}

/* =========================================================
   UTD — Modal alinhado com Viaturas
   ========================================================= */

.utd-modal .modal-content{
  border:0!important;
  border-radius:20px!important;
  overflow:hidden!important;
  box-shadow:0 30px 90px rgba(15,23,42,.34)!important;
}

.utd-modal .modal-header{
  border-bottom:1px solid #e7edf3!important;
  background:linear-gradient(105deg,#f7fcf9 0%,#fff 58%,#fff8df 100%)!important;
  padding:1.1rem 1.35rem 1rem!important;
}

.utd-modal-eyebrow{
  color:#006f35!important;
  font-size:.72rem!important;
  font-weight:850!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  margin-bottom:.25rem!important;
}

.utd-modal-title{
  font-size:1.18rem!important;
  font-weight:850!important;
  color:#102033!important;
  line-height:1.15!important;
  margin:0!important;
}

.utd-modal .btn-close{
  opacity:.65;
}

.utd-summary-card{
  border:1px solid #e3eaf1!important;
  border-radius:13px!important;
  background:#fbfdff!important;
  padding:.75rem .85rem!important;
}

.utd-summary-label{
  font-size:.72rem!important;
  color:#667085!important;
  margin-bottom:.18rem!important;
}

.utd-summary-value{
  font-size:.92rem!important;
  color:#102033!important;
  font-weight:750!important;
  line-height:1.2!important;
}

.utd-edit-card{
  border:1px solid #e7edf3!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfd 100%)!important;
  padding:1.15rem 1.2rem 1rem!important;
  box-shadow:0 10px 30px rgba(15,23,42,.035)!important;
}

.utd-edit-title{
  position:relative;
  margin:0 0 1rem!important;
  padding-bottom:.55rem!important;
  font-size:1rem!important;
  font-weight:700!important;
  color:#0f172a!important;
}

.utd-edit-title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:120px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow),var(--ulssm-red));
}

.utd-modal .form-label{
  font-size:.74rem!important;
  font-weight:600!important;
  color:#667085!important;
  margin-bottom:.32rem!important;
}

.utd-modal .form-control,
.utd-modal .form-select{
  min-height:42px!important;
  border-radius:12px!important;
  border:1px solid #d9e2ec!important;
  background:#fcfcfd!important;
  font-size:.90rem!important;
}

.utd-modal .form-control:focus,
.utd-modal .form-select:focus{
  border-color:#16a34a!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(22,163,74,.10)!important;
}

.utd-modal .modal-footer{
  border-top:1px solid #e7edf3!important;
  background:#fbfcfd!important;
  padding:1rem 1.35rem!important;
}

.utd-modal .btn-success{
  min-width:170px!important;
  height:42px!important;
  border-radius:12px!important;
  font-weight:700!important;
  box-shadow:0 8px 18px rgba(0,111,53,.14)!important;
}
/* Modal genérico de mensagens — sucesso */
.login-message-icon.login-message-icon-success{
  background:linear-gradient(145deg,#effaf4,#dcfce7)!important;
  border-color:#bbf7d0!important;
  color:#006f35!important;
  box-shadow:0 12px 28px rgba(0,111,53,.12)!important;
}
.login-message-icon.login-message-icon-success span{
  background:#006f35!important;
  color:#fff!important;
}
.login-message-icon.login-message-icon-error{
  background:linear-gradient(145deg,#fff2f2,#ffe4e6)!important;
  border-color:#fecdd3!important;
  color:#c00000!important;
  box-shadow:0 12px 28px rgba(192,0,0,.12)!important;
}
.login-message-icon.login-message-icon-error span{
  background:#c00000!important;
  color:#fff!important;
}

/* =========================================================
   UTD — alerta de incompatibilidade tipo prescrito/viatura
   ========================================================= */
.login-message-icon.login-message-icon-warning{
  background:linear-gradient(145deg,#fff7ed,#ffedd5)!important;
  border:1px solid #fed7aa!important;
  color:#c2410c!important;
  box-shadow:0 12px 28px rgba(194,65,12,.12)!important;
}
.login-message-icon.login-message-icon-warning span{
  background:#f97316!important;
  color:#fff!important;
}
.login-message-icon.login-message-icon-success{
  background:linear-gradient(145deg,#ecfdf3,#dcfce7)!important;
  border:1px solid #bbf7d0!important;
  color:#047857!important;
  box-shadow:0 12px 28px rgba(4,120,87,.12)!important;
}
.login-message-icon.login-message-icon-success span{
  background:#059669!important;
  color:#fff!important;
}
#utdMismatchInline,
#utdDetalheMismatchInline{
  border:1px solid #fed7aa!important;
  background:#fff7ed!important;
  color:#9a3412!important;
  font-size:.88rem!important;
}

/* =========================================================
   GLOBAL — Hover premium em linhas clicáveis
   Objetivo: destacar a linha completa, não apenas a prioridade.
   ========================================================= */
:root{
  --row-hover-bg:#f5fbf8;
  --row-hover-bg-strong:#edf8f2;
  --row-hover-stripe:var(--brand);
}

.pedidos-table tbody tr.pedidos-row:hover > td,
.pedidos-table tbody tr.pedidos-row-clickable:hover > td,
.viaturas-table tbody tr.viaturas-row:hover > td,
.viaturas-table tbody tr.viatura-row:hover > td,
.table tbody tr.pedidos-row:hover > td,
.table tbody tr.pedidos-row-clickable:hover > td,
.table tbody tr.viaturas-row:hover > td,
.table tbody tr.viatura-row:hover > td{
  background:var(--row-hover-bg)!important;
}

.pedidos-table tbody tr.pedidos-row:hover > td:first-child,
.pedidos-table tbody tr.pedidos-row-clickable:hover > td:first-child,
.viaturas-table tbody tr.viaturas-row:hover > td:first-child,
.viaturas-table tbody tr.viatura-row:hover > td:first-child,
.table tbody tr.pedidos-row:hover > td:first-child,
.table tbody tr.pedidos-row-clickable:hover > td:first-child,
.table tbody tr.viaturas-row:hover > td:first-child,
.table tbody tr.viatura-row:hover > td:first-child{
  background:var(--row-hover-bg-strong)!important;
  box-shadow:inset 4px 0 0 var(--row-hover-stripe)!important;
}

.pedidos-table tbody tr.pedidos-row:focus > td,
.pedidos-table tbody tr.pedidos-row-clickable:focus > td,
.viaturas-table tbody tr.viaturas-row:focus > td,
.viaturas-table tbody tr.viatura-row:focus > td,
.table tbody tr.pedidos-row:focus > td,
.table tbody tr.pedidos-row-clickable:focus > td,
.table tbody tr.viaturas-row:focus > td,
.table tbody tr.viatura-row:focus > td{
  background:var(--row-hover-bg)!important;
}

.pedidos-table tbody tr.pedidos-row,
.pedidos-table tbody tr.pedidos-row-clickable,
.viaturas-table tbody tr.viaturas-row,
.viaturas-table tbody tr.viatura-row,
.table tbody tr.pedidos-row,
.table tbody tr.pedidos-row-clickable,
.table tbody tr.viaturas-row,
.table tbody tr.viatura-row{
  cursor:pointer;
}

.pedidos-table tbody tr.pedidos-row > td,
.pedidos-table tbody tr.pedidos-row-clickable > td,
.viaturas-table tbody tr.viaturas-row > td,
.viaturas-table tbody tr.viatura-row > td,
.table tbody tr.pedidos-row > td,
.table tbody tr.pedidos-row-clickable > td,
.table tbody tr.viaturas-row > td,
.table tbody tr.viatura-row > td{
  transition:background-color .16s ease, box-shadow .16s ease;
}

.pedidos-table-responsive{
  overflow-x: visible !important;
}

.pedidos-table{
  width:100% !important;
  table-layout:auto;
}

.pedidos-table th,
.pedidos-table td{
  white-space:nowrap;
  vertical-align:middle;
}

@media (min-width:1200px){
  .pedidos-table th,
  .pedidos-table td{
    font-size:.92rem;
    padding:.72rem .55rem;
  }
}

/* Perfil 6 — transportadora externa: sem scroll horizontal, linha clicável e layout compacto */
.pedidos-transp .pedidos-table-card{
  overflow:hidden!important;
}

.pedidos-transp .pedidos-table-responsive{
  overflow-x:hidden!important;
  overflow-y:visible!important;
  width:100%!important;
}

.pedidos-transp .pedidos-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}

.pedidos-transp .pedidos-table th,
.pedidos-transp .pedidos-table td{
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  vertical-align:middle!important;
  line-height:1.2!important;
  padding:.62rem .45rem!important;
  font-size:.82rem!important;
}

.pedidos-transp .pedidos-table th:nth-child(1),
.pedidos-transp .pedidos-table td:nth-child(1){
  width:46px!important;
  text-align:center!important;
}

.pedidos-transp .pedidos-table th:nth-child(2),
.pedidos-transp .pedidos-table td:nth-child(2){
  width:105px!important;
  white-space:nowrap!important;
}

.pedidos-transp .pedidos-table th:nth-child(3),
.pedidos-transp .pedidos-table td:nth-child(3){
  width:118px!important;
  white-space:nowrap!important;
}

.pedidos-transp .pedidos-table th:nth-child(4),
.pedidos-transp .pedidos-table td:nth-child(4){
  width:90px!important;
  white-space:nowrap!important;
}

.pedidos-transp .pedidos-table th:nth-child(5),
.pedidos-transp .pedidos-table td:nth-child(5){
  width:105px!important;
}

.pedidos-transp .pedidos-table th:nth-child(6),
.pedidos-transp .pedidos-table td:nth-child(6){
  width:115px!important;
}

.pedidos-transp .pedidos-table th:nth-child(7),
.pedidos-transp .pedidos-table td:nth-child(7){
  width:105px!important;
}

.pedidos-transp .pedidos-table th:nth-child(8),
.pedidos-transp .pedidos-table td:nth-child(8){
  width:125px!important;
  white-space:nowrap!important;
}

.pedidos-transp .pedidos-table th:nth-child(9),
.pedidos-transp .pedidos-table td:nth-child(9){
  width:190px!important;
}

.pedidos-transp .pedidos-table th:nth-child(10),
.pedidos-transp .pedidos-table td:nth-child(10){
  width:95px!important;
  text-align:center!important;
}

.pedidos-transp .pedidos-table th:nth-child(11),
.pedidos-transp .pedidos-table td:nth-child(11){
  width:150px!important;
}

.pedidos-transp .pedidos-table th:nth-child(12),
.pedidos-transp .pedidos-table td:nth-child(12){
  width:135px!important;
  text-align:center!important;
}

.pedidos-transp .pedidos-table .badge-estado{
  min-width:118px!important;
  max-width:125px!important;
  padding:.34rem .55rem!important;
  font-size:.72rem!important;
  white-space:nowrap!important;
}

.pedidos-transp .pedidos-row-clickable{
  cursor:pointer!important;
}

.pedidos-transp .pedidos-row-clickable:hover>td{
  background:#f5fbf8!important;
}

.pedidos-transp .pedidos-row-clickable:hover>td:first-child{
  background:#edf8f2!important;
  box-shadow:inset 4px 0 0 var(--brand);
}
/* V16 - permitir picker nativo nos campos de data/hora do modal UTD/Transportadora */
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input.utd-datetime-input::-webkit-calendar-picker-indicator{
  display:block!important;
  opacity:1!important;
  cursor:pointer!important;
}
input[type="datetime-local"]{
  color-scheme:light;
}

/* =========================================================
   V23.1 — Header premium centrado + viaturas TP clean table
   ========================================================= */
.app-header-grid{
  display:grid!important;
  grid-template-columns:minmax(250px, 340px) minmax(360px, 1fr) minmax(360px, 470px)!important;
  align-items:center!important;
  gap:1.25rem!important;
  min-height:78px!important;
}
.app-header-grid .rgpd-logo{justify-self:start!important;}
.app-header-actions{
  justify-self:center!important;
  justify-content:center!important;
  flex-wrap:nowrap!important;
  gap:.55rem!important;
}
.app-header-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:1.05rem!important;
  min-width:0!important;
}
.app-header-brand{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  gap:.55rem!important;
  margin:0!important;
}
.app-header-brand .rgpd-truck{
  order:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.app-header-brand .rgpd-truck svg{
  width:24px!important;
  height:24px!important;
  fill:#059242!important;
}
.app-header-brand strong{
  color:#006f35!important;
  font-size:1rem!important;
  font-weight:800!important;
  line-height:1.05!important;
}
.app-header-brand span{
  color:#334155!important;
  font-size:.84rem!important;
  line-height:1.15!important;
}
.app-header-session{
  display:flex!important;
  align-items:center!important;
  gap:.65rem!important;
  padding-left:1rem!important;
  border-left:1px solid #d7dee8!important;
  white-space:nowrap!important;
}
.app-header-session .rgpd-user-name{
  color:#64748b!important;
  font-size:.84rem!important;
  font-weight:500!important;
}
.app-header-session .btn,
.app-header-actions .btn{
  border-radius:10px!important;
  min-height:34px!important;
  display:inline-flex!important;
  align-items:center!important;
}
.viaturas-filter-card .row{align-items:end!important;}
.viaturas-filter-card .form-control,
.viaturas-filter-card .form-select{width:100%!important;}
.viaturas-table th,
.viaturas-table td{
  text-align:center!important;
  vertical-align:middle!important;
}
.viaturas-table th:nth-child(4),
.viaturas-table td:nth-child(4){
  text-align:left!important;
}
.viaturas-table td:nth-child(4){
  white-space:normal!important;
}
.viaturas-card-head{
  justify-content:flex-start!important;
}
.viaturas-table-card .viaturas-card-head:has(.viaturas-page-badge){
  justify-content:space-between!important;
}
@media(max-width:1280px){
  .app-header-grid{
    grid-template-columns:minmax(210px, 285px) 1fr minmax(320px, 420px)!important;
    gap:.8rem!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
  .app-header-actions{gap:.38rem!important;}
  .app-header-actions .btn{padding-left:.55rem!important;padding-right:.55rem!important;}
}
@media(max-width:1100px){
  .app-header-grid{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    padding:14px 18px!important;
  }
  .app-header-actions{order:2!important;flex-wrap:wrap!important;}
  .app-header-right{order:3!important;justify-content:center!important;flex-wrap:wrap!important;}
  .app-header-session{border-left:0!important;padding-left:0!important;}
}
@media(max-width:900px){
  .viaturas-filter-card .row>[class*="col-"]{width:100%!important;}
}


/* V26 — Serviços da Transportadora: 8 registos/página, tabela arredondada e folga antes do footer */
#pedidos-refresh-root{
  margin-bottom:24px!important;
}
.pedidos-transp .pedidos-table-card{
  border-radius:18px!important;
  overflow:hidden!important;
  margin-bottom:.85rem!important;
}
.pedidos-transp .pedidos-table-responsive{
  border-radius:0 0 18px 18px!important;
}
.pedidos-transp .pedidos-table tbody tr:last-child td:first-child{
  border-bottom-left-radius:18px!important;
}
.pedidos-transp .pedidos-table tbody tr:last-child td:last-child{
  border-bottom-right-radius:18px!important;
}
.pedidos-transp .pagination .page-link{
  border-radius:10px!important;
  margin:0 2px!important;
}

/* ======= TRANSPORTADORA — MOTORISTAS (uniformizado com viaturas) ======= */
.motoristas-page{padding-bottom:1.7rem!important;}
.motoristas-table-card{margin-bottom:1.6rem!important;}
.motoristas-table th,
.motoristas-table td{text-align:center;}
.motoristas-table th:first-child,
.motoristas-table td:first-child{text-align:left;}
.motoristas-table .motoristas-row{cursor:pointer;}
.motoristas-table .motoristas-row:hover{background:#f5fbf8!important;}
.vehicle-badge-muted{background:#f1f5f9;color:#475467;border:1px solid #d8e0e8;}
.motorista-create-grid,
.motorista-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem .85rem;}
.motorista-create-grid .form-label,
.motorista-edit-grid .form-label,
.motorista-password-grid .form-label{font-size:.78rem;color:#475467;margin-bottom:.3rem;}
.motorista-create-grid .form-control,
.motorista-edit-grid .form-control,
.motorista-password-grid .form-control{min-height:40px;border-radius:10px;}
.motorista-field-wide{grid-column:span 2;}
.motorista-password-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem .85rem;}
.motorista-password-card{background:linear-gradient(180deg,#fff,#fffdf7);}
.motorista-summary-grid .vehicle-summary-value{word-break:break-word;}
.motorista-password-note{
  white-space:normal;
  overflow:visible;
  overflow-x:hidden;
  display:block;
  width:100%;
  word-break:normal;
}
@media(max-width:900px){
  .motorista-create-grid,
  .motorista-edit-grid,
  .motorista-password-grid{grid-template-columns:1fr;}
  .motorista-field-wide{grid-column:auto;}
  .motoristas-table th,
  .motoristas-table td{white-space:nowrap;}
}



/* V27.3 — motorista: folga entre header e botão Filtros */
.motorista-page .motorista-topbar-gap{
  margin-top: 1.15rem !important;
}
.motorista-page .motorista-topbar-gap .btn[data-bs-target="#filtersCollapse"]{
  margin-top: .15rem !important;
}



/* V27.5 — Gestão de Viaturas: dados Transportadora/Tipo à esquerda e sem coluna de abertura */.viaturas-table .viaturas-open-col{
  display:none !important;
}
.viaturas-table tbody tr.viaturas-row{
  cursor:pointer;
}



/* V27.6 — headers centrados, dados Transportadora/Tipo à esquerda */



/* V27.7 — header centrado e dados alinhados à esquerda */
.viaturas-table th.col-transportadora,
.viaturas-table th.col-tipo{
    text-align:center !important;
}

.viaturas-table tbody td.col-transportadora,
.viaturas-table tbody td.col-tipo{
    text-align:left !important;
    padding-left:18px !important;
}



/* V27.8 — headers centrados; apenas células Transportadora e Tipo à esquerda */
.viaturas-table thead th{
  text-align:center !important;
}
.viaturas-table tbody td.col-transportadora,
.viaturas-table tbody td.col-tipo,
.viaturas-table tbody td.text-start.col-transportadora,
.viaturas-table tbody td.text-start.col-tipo{
  text-align:left !important;
  padding-left:22px !important;
}



/* V27.10 — Motoristas: Nome alinhado à esquerda, headers mantêm centro */
.motorista-nome-left{
    text-align:left !important;
    padding-left:18px !important;
}



/* V27.11 — Motoristas: headers centrados; dados da coluna Nome à esquerda */
.viaturas-table thead th{
  text-align:center !important;
}
.viaturas-table tbody td.motorista-nome-left,
td.motorista-nome-left{
  text-align:left !important;
  padding-left:18px !important;
}


/* V27.13 — botão voltar ao topo acima do footer */
.back-to-top,
.btn-back-top,
#backToTop,
.scroll-top-btn{
    bottom: 110px !important;
}



/* V27.14 — Voltar ao topo no início do footer */
.to-top,
#toTopBtn{
  bottom: 148px !important;
  right: 24px !important;
  z-index: 10050 !important;
}
@media (max-width: 991.98px){
  .to-top,
  #toTopBtn{
    bottom: calc(148px + env(safe-area-inset-bottom)) !important;
  }
}



/* V27.16 — Hierarquia SINAI no novo pedido */
.tnu-sinai-wrap{
  margin-top:.35rem;
}
.tnu-sinai-wrap .form-select{
  min-height:42px;
}
.tnu-sinai-help{
  color:#64748b;
  font-size:.82rem;
}



/* V27.19 — Modal hierárquico SINAI */
.tnu-hier-box{
  margin-top:.25rem;
}
.tnu-hier-trigger{
  width:100%;
  min-height:46px;
  border:1px solid #d7e0ea;
  background:#fff;
  border-radius:12px;
  padding:.55rem .75rem;
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.12rem;
  transition:box-shadow .16s ease, border-color .16s ease, transform .16s ease;
}
.tnu-hier-trigger:hover{
  border-color:var(--brand, #059242);
  box-shadow:0 8px 22px rgba(9,111,53,.10);
  transform:translateY(-1px);
}
.tnu-hier-trigger-main{
  color:#0f172a;
  font-weight:700;
  line-height:1.15;
}
.tnu-hier-trigger-sub{
  color:#64748b;
  font-size:.82rem;
  line-height:1.2;
}
.tnu-hier-path{
  margin-top:.45rem;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.35rem;
  color:#475569;
  font-size:.84rem;
}
.tnu-hier-path span,
.tnu-hier-path strong{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:999px;
  padding:.18rem .48rem;
}
.tnu-hier-path strong{
  color:var(--brand-strong, #096f35);
  background:#edf8f1;
  border-color:#bfe7cf;
}
.tnu-hier-clear{
  margin-top:.35rem;
  border:0;
  background:transparent;
  color:#64748b;
  padding:0;
  font-size:.82rem;
}
.tnu-hier-clear:hover{
  color:var(--brand-strong, #096f35);
  text-decoration:underline;
}

.tnu-hier-modal{
  position:fixed;
  inset:0;
  z-index:20000;
}
.tnu-hier-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.62);
  backdrop-filter:blur(2px);
}
.tnu-hier-dialog{
  position:relative;
  width:min(1120px, calc(100vw - 40px));
  max-height:calc(100vh - 60px);
  margin:30px auto;
  background:#fff;
  border-radius:22px;
  box-shadow:0 28px 80px rgba(2,6,23,.35);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.tnu-hier-head{
  padding:1.15rem 1.35rem;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  background:linear-gradient(90deg,#fff 0%,#fff7df 100%);
  border-bottom:1px solid #e5edf5;
}
.tnu-hier-eyebrow{
  color:var(--brand-strong, #096f35);
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.tnu-hier-title{
  margin:0;
  font-weight:800;
  font-size:1.35rem;
  color:#0f172a;
}
.tnu-hier-current{
  margin-top:.2rem;
  color:#64748b;
  font-size:.9rem;
}
.tnu-hier-close{
  border:0;
  background:transparent;
  font-size:1.6rem;
  line-height:1;
  color:#475569;
  width:38px;
  height:38px;
  border-radius:999px;
}
.tnu-hier-close:hover{
  background:#f1f5f9;
  color:#0f172a;
}
.tnu-hier-search-wrap{
  padding:1rem 1.35rem .75rem;
}
.tnu-hier-grid{
  padding:0 1.35rem 1.1rem;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:1rem;
  min-height:420px;
  overflow:auto;
}
.tnu-hier-col{
  border:1px solid #e2e8f0;
  border-radius:16px;
  overflow:hidden;
  background:#fbfdff;
  display:flex;
  flex-direction:column;
}
.tnu-hier-col-title{
  padding:.8rem .9rem;
  font-weight:800;
  color:#0f172a;
  border-bottom:1px solid #e2e8f0;
  background:#fff;
}
.tnu-hier-list{
  padding:.5rem;
  overflow:auto;
  max-height:390px;
}
.tnu-hier-item{
  width:100%;
  border:1px solid transparent;
  background:transparent;
  border-radius:12px;
  padding:.62rem .7rem;
  text-align:left;
  color:#0f172a;
  font-weight:600;
  line-height:1.25;
  margin-bottom:.25rem;
}
.tnu-hier-item:hover{
  background:#f1f7f4;
  border-color:#cce8d8;
}
.tnu-hier-item.active{
  background:#e8f7ef;
  border-color:#9ed6b7;
  color:var(--brand-strong, #096f35);
}
.tnu-hier-empty{
  color:#64748b;
  padding:1rem;
  font-size:.9rem;
}
.tnu-hier-foot{
  padding:.9rem 1.35rem 1.1rem;
  border-top:1px solid #e5edf5;
  display:flex;
  justify-content:flex-end;
}
body.tnu-hier-modal-open{
  overflow:hidden;
}

@media (max-width: 991.98px){
  .tnu-hier-dialog{
    width:calc(100vw - 20px);
    margin:10px auto;
    max-height:calc(100vh - 20px);
  }
  .tnu-hier-grid{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .tnu-hier-list{
    max-height:230px;
  }
}



/* V27.21 — refinamento modal hierárquico SINAI */
.tnu-hier-dialog{
  width:min(1180px, calc(100vw - 44px)) !important;
  max-height:calc(100vh - 54px) !important;
}
.tnu-hier-grid{
  gap:1.15rem !important;
}
.tnu-hier-col{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.tnu-hier-list{
  scrollbar-width:thin;
}
.tnu-hier-item{
  min-height:42px;
  display:flex;
  align-items:center;
}
.tnu-hier-trigger-main{
  white-space:normal;
}
.tnu-hier-trigger-sub{
  white-space:normal;
}


/* ======= TNU detalhe — cancelamento no card ======= */
.tnu-card-title-row{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:1rem;
}
.tnu-card-title-row .section-title{
  margin:0;
}
.tnu-btn-cancel-detail{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  border-radius:10px;
  font-weight:600;
  padding:.42rem .8rem;
  white-space:nowrap;
  box-shadow:0 6px 14px rgba(204,0,0,.06);
}
.tnu-btn-cancel-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.05rem;
  height:1.05rem;
  border-radius:999px;
  background:var(--danger);
  color:#fff;
  line-height:1;
  font-size:.9rem;
  font-weight:700;
}
@media (max-width:768px){
  .tnu-card-title-row{
    flex-direction:column;
    align-items:stretch;
  }
  .tnu-btn-cancel-detail{
    justify-content:center;
    width:100%;
  }
}
@media print{
  .tnu-card-title-row{display:none!important;}
  .tnu-card-title-print{display:block!important;}
}

/* V27.58 — Login: card informativo acima da autenticação */
body.page-auth main.flex-grow-1{
  align-items:center!important;
}
body.page-auth .auth-wrap{
  width:100%;
  display:flex;
  align-items:center!important;
  justify-content:center!important;
  padding:24px 16px 28px!important;
}
.auth-login-stack{
  width:min(920px, calc(100vw - 32px));
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:26px;
}
.auth-scope-card{
  width:100%;
  max-width:900px;
  min-height:116px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  padding:24px 34px;
  border:1px solid color-mix(in srgb, var(--ulssm-yellow) 72%, #fff);
  border-radius:16px;
  background:
    radial-gradient(circle at 18% 28%, rgba(233,185,3,.16), transparent 34%),
    linear-gradient(135deg, rgba(255,251,238,.98), rgba(255,255,255,.96) 58%, rgba(255,247,218,.92));
  box-shadow:0 18px 48px rgba(17,24,39,.09), 0 0 0 1px rgba(255,255,255,.75) inset;
}
.auth-scope-icon{
  width:78px;
  height:78px;
  flex:0 0 78px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:3px solid #f0aa00;
  border-radius:999px;
  color:#f0aa00;
  background:#fffdf5;
  box-shadow:0 10px 22px rgba(240,170,0,.12);
}
.auth-scope-icon svg{
  width:42px;
  height:42px;
  fill:currentColor;
}
.auth-scope-divider{
  width:1px;
  height:70px;
  background:linear-gradient(180deg, transparent, rgba(233,185,3,.65), transparent);
}
.auth-scope-copy{
  min-width:0;
}
.auth-scope-title{
  color:#111827;
  font-size:1.85rem;
  line-height:1.12;
  font-weight:650;
  letter-spacing:-.025em;
  margin-bottom:.45rem;
}
.auth-scope-subtitle{
  color:#111827;
  font-size:1.32rem;
  line-height:1.18;
  font-weight:520;
  letter-spacing:-.015em;
}
body.page-auth .auth-card{
  max-width:460px;
}
@media (max-width:900px){
  .auth-login-stack{gap:20px;}
  .auth-scope-card{max-width:640px;justify-content:flex-start;padding:20px 22px;gap:18px;}
  .auth-scope-icon{width:60px;height:60px;flex-basis:60px;border-width:2px;}
  .auth-scope-icon svg{width:32px;height:32px;}
  .auth-scope-divider{height:58px;}
  .auth-scope-title{font-size:1.45rem;}
  .auth-scope-subtitle{font-size:1.05rem;}
}
@media (max-width:560px){
  body.page-auth .auth-wrap{padding:18px 12px 22px!important;}
  .auth-login-stack{width:calc(100vw - 24px);gap:16px;}
  .auth-scope-card{min-height:0;padding:16px;gap:13px;border-radius:14px;}
  .auth-scope-icon{width:50px;height:50px;flex-basis:50px;}
  .auth-scope-icon svg{width:27px;height:27px;}
  .auth-scope-divider{height:48px;}
  .auth-scope-title{font-size:1.15rem;margin-bottom:.25rem;}
  .auth-scope-subtitle{font-size:.92rem;}
  body.page-auth .auth-card{padding:24px 22px 22px;}
}
@media (max-height:760px) and (min-width:769px){
  body.page-auth main.flex-grow-1{padding:18px 16px!important;}
  body.page-auth .auth-wrap{padding:12px 16px 16px!important;}
  .auth-login-stack{gap:16px;}
  .auth-scope-card{min-height:96px;padding:18px 30px;}
  .auth-scope-icon{width:64px;height:64px;flex-basis:64px;}
  .auth-scope-icon svg{width:34px;height:34px;}
  .auth-card{padding-top:24px!important;padding-bottom:20px!important;}
}


/* ======= ULSSMGo — Modal premium CP / Morada CTT ======= */
.tnu-premium-modal{
  border:0;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
}
.tnu-premium-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:22px 24px 18px;
  background:linear-gradient(180deg,#fffdf5 0%,#fff8e1 100%);
  border-bottom:1px solid #edf1f7;
}
.tnu-modal-eyebrow{
  color:var(--brand-strong);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
  margin-bottom:4px;
}
.tnu-modal-title{
  margin:0;
  font-weight:700;
  font-size:1.15rem;
  color:#06152f;
}
.tnu-modal-close{
  width:34px;
  height:34px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#64748b;
  font-size:1.6rem;
  line-height:1;
}
.tnu-modal-close:hover{
  background:#f1f5f9;
  color:#0f172a;
}
.tnu-premium-modal-body{
  padding:18px 24px 8px;
  background:#fff;
}
.tnu-premium-modal-footer{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:18px 24px 22px;
  background:#fff;
  border-top:1px solid #edf1f7;
}
.tnu-modal-alert{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  padding:12px 14px;
  border-radius:12px;
  color:var(--brand-strong);
  background:color-mix(in srgb,var(--brand) 10%,#fff);
  border:1px solid color-mix(in srgb,var(--brand) 30%,#fff);
  font-size:.92rem;
}
.tnu-modal-alert-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:999px;
  color:#fff;
  background:var(--brand);
  font-weight:800;
  font-size:.75rem;
  flex:0 0 auto;
}
.tnu-modal-grid{
  display:grid;
  grid-template-columns:minmax(260px,.78fr) minmax(420px,1.22fr);
  gap:16px;
}
.tnu-modal-card{
  border:1px solid #e6ebf2;
  border-radius:16px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%);
  padding:18px;
  box-shadow:0 10px 30px rgba(15,23,42,.045);
}
.tnu-card-mini-title{
  position:relative;
  margin-bottom:16px;
  padding-bottom:10px;
  color:#06152f;
  font-weight:700;
  font-size:1rem;
}
.tnu-card-mini-title:after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow),transparent);
  border-radius:999px;
}
.tnu-field-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.tnu-field-grid .form-label,
.tnu-modal-card .form-label{
  color:#334155;
  font-size:.82rem;
  font-weight:600;
  margin-bottom:6px;
}
.tnu-cp-input{
  font-weight:700;
  letter-spacing:.02em;
}
.tnu-mini-help{
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px;
  color:#475569;
  background:#f8fafc;
  border:1px dashed #cbd5e1;
  font-size:.82rem;
}
.tnu-address-result{
  padding:11px 13px;
  border-radius:13px;
  font-size:.88rem;
  line-height:1.35;
  border:1px solid transparent;
}
.tnu-address-result.ok{
  color:var(--brand-strong);
  background:color-mix(in srgb,var(--brand) 10%,#fff);
  border-color:color-mix(in srgb,var(--brand) 30%,#fff);
}
.tnu-address-result.err{
  color:var(--danger-strong);
  background:color-mix(in srgb,var(--danger) 9%,#fff);
  border-color:color-mix(in srgb,var(--danger) 28%,#fff);
}
.tnu-address-result.info{
  color:#334155;
  background:#f8fafc;
  border-color:#e2e8f0;
}
.tnu-address-preview{
  min-height:82px;
  white-space:pre-line;
  padding:12px 14px;
  border-radius:13px;
  background:#fff;
  border:1px solid #dbe3ee;
  color:#0f172a;
  line-height:1.5;
  font-size:.95rem;
}
.tnu-address-preview.is-empty{
  color:#64748b;
  background:#f8fafc;
  border-style:dashed;
}
.tnu-address-preview-modal{
  font-size:1rem;
}
@media (max-width:992px){
  .tnu-modal-grid{ grid-template-columns:1fr; }
  .tnu-field-grid{ grid-template-columns:1fr; }
}

/* ======= ULSSMGo — Morada CTT no estilo modal de viaturas ======= */
.tnu-address-vehicle-modal{width:min(980px,calc(100vw - 42px))}
.tnu-address-modal-alert{
  display:flex;align-items:center;gap:.6rem;
  padding:.72rem .85rem;margin-bottom:.9rem;
  border:1px solid color-mix(in srgb,var(--brand) 30%,#fff);
  background:color-mix(in srgb,var(--brand) 9%,#fff);
  color:var(--brand-strong);
  border-radius:12px;font-size:.88rem
}
.tnu-address-modal-alert-icon{
  width:22px;height:22px;border-radius:999px;background:var(--brand);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:800;flex:0 0 auto
}
.tnu-address-grid{grid-template-columns:1fr 2fr}
.tnu-address-result{min-height:40px;padding:.72rem .85rem;border-radius:12px;font-size:.86rem;line-height:1.35;border:1px solid transparent}
.tnu-address-result.ok{color:var(--brand-strong);background:color-mix(in srgb,var(--brand) 10%,#fff);border-color:color-mix(in srgb,var(--brand) 30%,#fff)}
.tnu-address-result.err{color:var(--danger-strong);background:color-mix(in srgb,var(--danger) 9%,#fff);border-color:color-mix(in srgb,var(--danger) 28%,#fff)}
.tnu-address-result.info{color:#334155;background:#f8fafc;border-color:#e2e8f0}
.tnu-address-preview{min-height:78px;white-space:pre-line;padding:.85rem .95rem;border-radius:12px;background:#fff;border:1px solid #dbe3ee;color:#102033;line-height:1.45;font-size:.94rem}
.tnu-address-preview.is-empty{color:#64748b;background:#f8fafc;border-style:dashed}
.tnu-address-preview-modal{font-size:.98rem}
@media(max-width:900px){.tnu-address-grid{grid-template-columns:1fr}}


/* =========================================================
   ULSSMGo — novo.php premium typography/layout
   Alinhado com monitorizacao.php e "Os meus pedidos"
   ========================================================= */
.tnu-request-page{
  margin-top:1.15rem!important;
}
.tnu-request-page .d-flex.align-items-center.gap-2.mt-3.mb-2{
  justify-content:center;
  position:relative;
  margin-top:1.05rem!important;
  margin-bottom:.7rem!important;
}
.tnu-request-page .btn-outline-secondary[href]{
  position:absolute;
  left:0;
  border-radius:10px;
  min-height:34px;
  padding:.38rem .72rem;
  font-size:.82rem;
  font-weight:650;
  color:#475569;
  border-color:#cbd5e1;
  background:#fff;
}
.tnu-request-page .btn-outline-secondary[href]:hover{
  background:#f8fafc;
  color:#0f172a;
  border-color:#94a3b8;
}
.tnu-request-page .page-title{
  margin:0 auto .35rem!important;
  padding:0 8px 6px!important;
  font-size:1.28rem!important;
  line-height:1.18!important;
  font-weight:760!important;
  letter-spacing:-.02em!important;
  color:#071526!important;
}
.tnu-request-form-wrap{
  padding-bottom:2rem!important;
}
.tnu-premium-form{
  font-size:.86rem;
  color:#0f172a;
}
.tnu-premium-form .card,
.tnu-premium-form .accordion-item{
  border:1px solid #dfe7ef!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:0 14px 34px rgba(15,23,42,.055)!important;
  overflow:hidden;
}
.tnu-premium-form .card{
  padding:1.05rem!important;
  margin-bottom:.95rem!important;
}
.tnu-premium-form .accordion-item{
  margin-bottom:.85rem!important;
}
.tnu-premium-form .accordion-body{
  padding:1rem 1.05rem 1.05rem!important;
  background:#fff;
}
.tnu-premium-form .section-title,
.tnu-premium-form .accordion-button.section-title{
  font-size:.98rem!important;
  line-height:1.18!important;
  font-weight:780!important;
  letter-spacing:-.01em!important;
  color:#102033!important;
}
.tnu-premium-form h5.section-title{
  margin:0 0 .95rem!important;
  padding-bottom:.55rem!important;
}
.tnu-premium-form .accordion-button.section-title{
  min-height:44px;
  padding:.72rem 1rem!important;
  background-color:#fbfdff!important;
}
.tnu-premium-form .accordion-button:not(.collapsed){
  background:#eef6ff!important;
  box-shadow:none!important;
}
.tnu-premium-form .form-label{
  margin-bottom:.28rem!important;
  font-size:.80rem!important;
  line-height:1.15!important;
  font-weight:620!important;
  color:#334155!important;
}
.tnu-premium-form .form-control,
.tnu-premium-form .form-select{
  min-height:38px!important;
  border-radius:10px!important;
  border:1px solid #d8e2ec!important;
  background-color:#fff!important;
  font-size:.84rem!important;
  color:#0f172a!important;
  box-shadow:none!important;
}
.tnu-premium-form .form-control:focus,
.tnu-premium-form .form-select:focus{
  border-color:#15945c!important;
  box-shadow:0 0 0 .16rem rgba(21,148,92,.13)!important;
}
.tnu-premium-form .form-control[readonly],
.tnu-premium-form .form-control:disabled,
.tnu-premium-form .form-select:disabled{
  background:#f8fafc!important;
  color:#334155!important;
}
.tnu-premium-form textarea.form-control{
  min-height:86px!important;
}
.tnu-premium-form .form-text,
.tnu-premium-form .small,
.tnu-premium-form small{
  font-size:.76rem!important;
  color:#64748b!important;
}
.tnu-premium-form .row.g-3{
  --bs-gutter-x:.85rem;
  --bs-gutter-y:.82rem;
}
.tnu-premium-form .rgpd-inline-badge{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  border:1px solid #bfe7d0;
  background:#f6fcf8;
  color:#14532d;
  border-radius:999px;
  padding:.62rem .9rem;
  font-size:.78rem;
  line-height:1.3;
}
.tnu-premium-form .rgpd-inline-icon{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:999px;
  background:#15945c;
  color:#fff;
  font-weight:800;
  font-size:.78rem;
}
.tnu-premium-form .rgpd-inline-badge a{
  color:#007a3d;
  font-weight:760;
  text-decoration:none;
}
.tnu-premium-form .btn{
  border-radius:10px!important;
  font-size:.84rem!important;
  font-weight:700!important;
  min-height:36px;
}
.tnu-premium-form .alert{
  border-radius:12px!important;
  font-size:.80rem!important;
}
.tnu-premium-form .tnu-address-preview{
  border-radius:12px!important;
  font-size:.82rem!important;
}
@media(max-width:768px){
  .tnu-request-page .d-flex.align-items-center.gap-2.mt-3.mb-2{
    justify-content:flex-start;
    flex-direction:column;
    align-items:stretch!important;
  }
  .tnu-request-page .btn-outline-secondary[href]{
    position:static;
    width:max-content;
  }
  .tnu-request-page .page-title{
    margin:.25rem 0 .35rem!important;
    font-size:1.14rem!important;
    width:auto!important;
  }
  .tnu-premium-form .rgpd-inline-badge{
    border-radius:14px;
  }
}

/* =========================================================
   Os meus pedidos / listagem de pedidos — filtros premium
   ========================================================= */
#pedidosFilters .form-label{
  font-size:.72rem!important;
  line-height:1.15!important;
  font-weight:650!important;
  color:#344054!important;
  margin-bottom:.32rem!important;
}
#pedidosFilters .form-control,
#pedidosFilters .form-select{
  min-height:38px!important;
  height:38px!important;
  border-radius:10px!important;
  border-color:#d9e2ec!important;
  background-color:#fff!important;
  color:#102033!important;
  font-size:.82rem!important;
  line-height:1.2!important;
  font-weight:500!important;
  padding:.48rem .72rem!important;
  box-shadow:none!important;
}
#pedidosFilters .form-control::placeholder{
  color:#667085!important;
  font-size:.82rem!important;
  font-weight:400!important;
}
#pedidosFilters .form-control:focus,
#pedidosFilters .form-select:focus{
  border-color:#16a34a!important;
  box-shadow:0 0 0 3px rgba(22,163,74,.10)!important;
  outline:0!important;
}
#pedidosFilters .form-select,
#pedidosFilters .form-select option{
  font-family:inherit!important;
  font-size:.82rem!important;
  line-height:1.25!important;
  font-weight:500!important;
  color:#102033!important;
}
#pedidosFilters .form-select option{
  padding:.36rem .55rem!important;
  background:#fff!important;
}
#pedidosFilters .form-select option:checked{
  font-weight:650!important;
}

/* =========================================================
   TNU detalhe — vista premium compacta
   ========================================================= */
.tnu-detail-premium{
  max-width:1120px!important;
  font-size:.88rem!important;
  color:#101828;
}
.tnu-detail-header{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:.85rem;
}
.tnu-detail-back{
  min-height:36px!important;
  height:36px!important;
  padding:.38rem .72rem!important;
  border-radius:10px!important;
  font-size:.82rem!important;
  font-weight:560!important;
}
.tnu-detail-title-wrap{
  min-width:0;
}
.tnu-detail-premium .page-title.tnu-detail-title{
  margin:0!important;
  width:max-content!important;
  max-width:100%;
  font-size:1.26rem!important;
  line-height:1.18!important;
  font-weight:760!important;
  letter-spacing:-.02em!important;
  padding:0 6px 6px!important;
}
.tnu-detail-subtitle{
  margin-top:.18rem;
  color:#667085;
  font-size:.78rem;
  line-height:1.2;
  font-weight:500;
}
.tnu-detail-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.5rem;
}
.tnu-detail-card{
  border:1px solid #dfe7ef!important;
  border-radius:16px!important;
  box-shadow:0 10px 26px rgba(16,24,40,.055)!important;
  background:#fff!important;
  padding:1rem 1.1rem!important;
}
.tnu-detail-card .row.g-3{
  --bs-gutter-x:1.25rem;
  --bs-gutter-y:.82rem;
}
.tnu-detail-premium .section-title.tnu-detail-section-title{
  margin:0 0 .9rem!important;
  padding-bottom:.58rem!important;
  font-size:1.02rem!important;
  line-height:1.18!important;
  font-weight:730!important;
  letter-spacing:-.015em!important;
  color:#111827!important;
  background-position:left bottom!important;
  background-size:100% 3px!important;
}
.tnu-detail-label{
  margin-bottom:.14rem!important;
  color:#667085!important;
  font-size:.72rem!important;
  line-height:1.15!important;
  font-weight:650!important;
  letter-spacing:.01em!important;
}
.tnu-detail-label + div,
.tnu-detail-card .row.g-3>[class*='col-']>div:last-child{
  color:#0f172a!important;
  font-size:.86rem!important;
  line-height:1.24!important;
  font-weight:520!important;
}
.tnu-detail-card b,
.tnu-detail-card strong{
  font-weight:720!important;
}
.tnu-status-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:7.8rem;
  max-width:100%;
  padding:.32rem .68rem;
  border-radius:999px;
  background:#eef2f6;
  border:1px solid #d7dde5;
  color:#344054;
  font-size:.74rem;
  line-height:1.05;
  font-weight:740;
  white-space:nowrap;
}
.tnu-btn-cancel-detail{
  min-height:34px!important;
  padding:.36rem .72rem!important;
  border-radius:10px!important;
  font-size:.78rem!important;
  font-weight:680!important;
  background:#fff!important;
}
.tnu-btn-cancel-icon{
  width:.98rem!important;
  height:.98rem!important;
  font-size:.78rem!important;
}
.tnu-detail-premium .alert{
  border-radius:13px!important;
  font-size:.84rem!important;
}
.tnu-detail-premium .table{
  font-size:.82rem!important;
}
.tnu-detail-premium .table th{
  color:#475467!important;
  font-size:.72rem!important;
  letter-spacing:.02em!important;
  text-transform:uppercase!important;
  background:#f8fafc!important;
}
.tnu-detail-premium .form-label{
  font-size:.76rem!important;
  font-weight:650!important;
  color:#475467!important;
  margin-bottom:.25rem!important;
}
.tnu-detail-premium .form-control,
.tnu-detail-premium .form-select{
  min-height:38px!important;
  height:38px;
  border-radius:10px!important;
  font-size:.83rem!important;
}
.tnu-detail-premium textarea.form-control{
  height:auto!important;
  min-height:72px!important;
}
@media(max-width:768px){
  .tnu-detail-header{
    grid-template-columns:1fr;
    align-items:flex-start;
  }
  .tnu-detail-header-actions{
    justify-content:flex-start;
  }
  .tnu-detail-premium .page-title.tnu-detail-title{
    width:auto!important;
    font-size:1.12rem!important;
  }
  .tnu-detail-card{
    padding:.92rem!important;
    border-radius:14px!important;
  }
}
@media print{
  .tnu-detail-premium{
    font-size:10.5pt!important;
  }
  .tnu-detail-card{
    box-shadow:none!important;
    border-color:#d0d5dd!important;
    break-inside:avoid;
  }
}

/* =========================================================
   ULSSMGo RGPD — Premium centralizado (privacy.php / retencao.php)
   Centraliza o visual RGPD no default.css para evitar ajustes página a página.
   ========================================================= */
body.rgpd-public-page{
  background:#f4f6f9!important;
  color:#101828!important;
  font-size:.88rem!important;
  line-height:1.55!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.rgpd-public-page .rgpd-page{
  max-width:1120px!important;
  margin:22px auto 0!important;
  padding:0 22px 28px!important;
}
body.rgpd-public-page .rgpd-topbar{
  background:#fff!important;
  border-bottom:1px solid #dfe7ef!important;
  box-shadow:0 4px 18px rgba(15,23,42,.045)!important;
}
body.rgpd-public-page .rgpd-topbar-inner{
  min-height:72px!important;
  padding:0 24px!important;
}
body.rgpd-public-page .rgpd-logo img{
  height:50px!important;
}
body.rgpd-public-page .rgpd-appmark strong{
  font-size:.90rem!important;
  line-height:1.05!important;
  letter-spacing:-.01em!important;
}
body.rgpd-public-page .rgpd-appmark span{
  font-size:.78rem!important;
  line-height:1.15!important;
  color:#475467!important;
}
body.rgpd-public-page .rgpd-truck svg{
  width:22px!important;
  height:22px!important;
}
body.rgpd-public-page .rgpd-hero{
  position:relative;
  overflow:hidden;
  border-radius:18px!important;
  border:1px solid #dfe7ef!important;
  background:linear-gradient(105deg,#f6fcf8 0%,#fff 58%,#fff9e5 100%)!important;
  box-shadow:0 12px 34px rgba(15,23,42,.055)!important;
  padding:1.35rem 1.55rem!important;
  margin-bottom:1rem!important;
}
body.rgpd-public-page .rgpd-hero::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:4px;
  background:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow) 52%,var(--ulssm-red));
}
body.rgpd-public-page .rgpd-hero-grid{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:1.1rem!important;
  align-items:start!important;
}
body.rgpd-public-page .rgpd-eyebrow{
  margin:0 0 .55rem!important;
  color:#006f35!important;
  font-size:.72rem!important;
  line-height:1.1!important;
  font-weight:820!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}
body.rgpd-public-page .rgpd-yellow-line{
  width:min(520px,100%)!important;
  height:4px!important;
  margin:0 0 .75rem!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow) 58%,var(--ulssm-red))!important;
  box-shadow:none!important;
}
body.rgpd-public-page .rgpd-hero p{
  margin:0!important;
  max-width:820px!important;
  color:#344054!important;
  font-size:.88rem!important;
  line-height:1.55!important;
  font-weight:430!important;
}
body.rgpd-public-page .rgpd-version{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:32px!important;
  padding:.32rem .72rem!important;
  border-radius:999px!important;
  border:1px solid #b8dec7!important;
  background:#fff!important;
  color:#006f35!important;
  box-shadow:0 8px 20px rgba(15,23,42,.055)!important;
  font-size:.76rem!important;
  line-height:1!important;
  font-weight:760!important;
  white-space:nowrap!important;
}
body.rgpd-public-page .rgpd-alert{
  margin:.85rem 0 1rem!important;
  padding:.78rem .95rem!important;
  border:1px solid #dfe7ef!important;
  border-left:4px solid var(--ulssm-green)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#344054!important;
  box-shadow:0 8px 24px rgba(15,23,42,.04)!important;
  font-size:.86rem!important;
  line-height:1.45!important;
}
body.rgpd-public-page .rgpd-alert strong{
  color:#0f172a!important;
  font-weight:760!important;
}
body.rgpd-public-page .rgpd-tiles{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:.78rem!important;
  margin-bottom:.9rem!important;
}
body.rgpd-public-page .rgpd-tile,
body.rgpd-public-page .rgpd-card,
body.rgpd-public-page .rgpd-acc-item{
  border:1px solid #dfe7ef!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:0 10px 28px rgba(15,23,42,.052)!important;
}
body.rgpd-public-page .rgpd-tile{
  min-height:132px!important;
  padding:.98rem 1.05rem!important;
  display:grid!important;
  grid-template-columns:34px 1fr!important;
  gap:.78rem!important;
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease!important;
}
body.rgpd-public-page .rgpd-tile:hover{
  transform:translateY(-1px)!important;
  border-color:#cfe5d8!important;
  box-shadow:0 14px 34px rgba(15,23,42,.07)!important;
}
body.rgpd-public-page .rgpd-ico svg,
body.rgpd-public-page .rgpd-acc-left svg{
  width:23px!important;
  height:23px!important;
  color:#006f35!important;
  fill:#006f35!important;
  stroke:currentColor!important;
}
body.rgpd-public-page .rgpd-tile h3{
  margin:0 0 .38rem!important;
  color:#006f35!important;
  font-size:.90rem!important;
  line-height:1.18!important;
  font-weight:760!important;
  letter-spacing:-.012em!important;
}
body.rgpd-public-page .rgpd-tile p,
body.rgpd-public-page .rgpd-card p,
body.rgpd-public-page .rgpd-card li,
body.rgpd-public-page .rgpd-acc-body,
body.rgpd-public-page .rgpd-acc-body p,
body.rgpd-public-page .rgpd-acc-body li{
  color:#344054!important;
  font-size:.84rem!important;
  line-height:1.55!important;
  font-weight:420!important;
}
body.rgpd-public-page .rgpd-tile a,
body.rgpd-public-page .rgpd-acc-body a{
  color:#006f35!important;
  font-size:.82rem!important;
  font-weight:720!important;
}
body.rgpd-public-page .rgpd-card{
  padding:1.08rem 1.2rem!important;
  margin-bottom:1rem!important;
}
body.rgpd-public-page .rgpd-card h2{
  margin:0 0 .85rem!important;
  padding-bottom:.55rem!important;
  color:#101828!important;
  font-size:1.02rem!important;
  line-height:1.18!important;
  font-weight:760!important;
  letter-spacing:-.018em!important;
  background:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow) 52%,var(--ulssm-red)) left bottom/100% 3px no-repeat!important;
}
body.rgpd-public-page .rgpd-card code{
  color:#006f35!important;
  background:#f2fbf6!important;
  border:1px solid #d7eadf!important;
  border-radius:6px!important;
  padding:.08rem .32rem!important;
  font-size:.80rem!important;
}
body.rgpd-public-page .rgpd-table-wrap{
  overflow:auto!important;
  border:1px solid #dfe7ef!important;
  border-radius:14px!important;
  background:#fff!important;
}
body.rgpd-public-page .rgpd-table{
  margin:0!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  font-size:.82rem!important;
}
body.rgpd-public-page .rgpd-table th{
  position:sticky;
  top:0;
  z-index:1;
  background:#f7fafc!important;
  color:#475467!important;
  border:0!important;
  border-bottom:1px solid #dfe7ef!important;
  padding:.72rem .78rem!important;
  font-size:.72rem!important;
  line-height:1.15!important;
  font-weight:760!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
body.rgpd-public-page .rgpd-table td{
  border:0!important;
  border-bottom:1px solid #edf2f7!important;
  padding:.76rem .78rem!important;
  color:#344054!important;
  font-size:.82rem!important;
  line-height:1.45!important;
  vertical-align:top!important;
}
body.rgpd-public-page .rgpd-table tr:last-child td{
  border-bottom:0!important;
}
body.rgpd-public-page .rgpd-acc{
  margin-top:.85rem!important;
}
body.rgpd-public-page .rgpd-acc-item{
  margin-bottom:.62rem!important;
  overflow:hidden!important;
}
body.rgpd-public-page .rgpd-acc-btn{
  min-height:48px!important;
  padding:.82rem 1rem!important;
  background:#fff!important;
  color:#101828!important;
  font-size:.90rem!important;
  line-height:1.15!important;
  font-weight:760!important;
  letter-spacing:-.012em!important;
}
body.rgpd-public-page .rgpd-acc-left{
  gap:.65rem!important;
}
body.rgpd-public-page .rgpd-arrow{
  color:#006f35!important;
  font-size:1rem!important;
  font-weight:760!important;
}
body.rgpd-public-page .rgpd-bar{
  height:3px!important;
  background:linear-gradient(90deg,var(--ulssm-green),var(--ulssm-yellow) 52%,var(--ulssm-red))!important;
}
body.rgpd-public-page .rgpd-acc-body{
  padding:1rem 1.15rem 1.05rem 3rem!important;
  background:#fff!important;
}
body.rgpd-public-page .rgpd-acc-body p{
  margin:0 0 .62rem!important;
}
body.rgpd-public-page .rgpd-acc-body p:last-child{
  margin-bottom:0!important;
}
body.rgpd-public-page .rgpd-acc-body ul,
body.rgpd-public-page .rgpd-card ul{
  margin:.45rem 0 0!important;
  padding-left:1.1rem!important;
}
body.rgpd-public-page .rgpd-footer{
  margin-top:0!important;
}
@media(max-width:980px){
  body.rgpd-public-page .rgpd-tiles{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:760px){
  body.rgpd-public-page .rgpd-page{
    padding:0 14px 22px!important;
  }
  body.rgpd-public-page .rgpd-hero{
    padding:1.05rem 1rem!important;
  }
  body.rgpd-public-page .rgpd-hero-grid{
    grid-template-columns:1fr!important;
  }
  body.rgpd-public-page .rgpd-tiles{
    grid-template-columns:1fr!important;
  }
  body.rgpd-public-page .rgpd-acc-body{
    padding:.95rem 1rem!important;
  }
}

/* ULSSMGo — navegação compacta premium com Administração agrupada */
.app-admin-dropdown{display:inline-flex;align-items:center}
.app-admin-menu{border:1px solid #dfe6ee;border-radius:14px;box-shadow:0 18px 42px rgba(15,23,42,.16);padding:.45rem;min-width:230px;font-size:.82rem}
.app-admin-menu .dropdown-item{border-radius:10px;padding:.48rem .7rem;color:#142033;font-weight:500}
.app-admin-menu .dropdown-item:hover,.app-admin-menu .dropdown-item:focus{background:#eefbf4;color:#007a3d}
.app-admin-menu .dropdown-divider{margin:.35rem .25rem;border-color:#e8edf3}

/* ULSSMGo — header/menu premium final */
.app-header-actions{
  gap:.42rem!important;
  align-items:center!important;
}
.app-header-actions .btn,
.app-header-session .btn{
  font-size:.78rem!important;
  line-height:1.15!important;
  font-weight:600!important;
  letter-spacing:-.005em!important;
  padding:.46rem .72rem!important;
  border-radius:10px!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
.app-header-actions .btn-success{
  background:#00884a!important;
  border-color:#00884a!important;
  color:#fff!important;
}
.app-header-actions .btn-outline-primary{
  color:#007a3d!important;
  border-color:#00884a!important;
  background:#fff!important;
}
.app-header-actions .btn-outline-primary:hover,
.app-header-actions .btn-outline-primary:focus,
.app-admin-dropdown.show > .btn,
.app-admin-dropdown .dropdown-toggle.show{
  background:#00884a!important;
  border-color:#00884a!important;
  color:#fff!important;
}
.app-header-actions .btn-outline-secondary{
  color:#475569!important;
  border-color:#b9c3d0!important;
  background:#fff!important;
}
.app-header-actions .btn-outline-secondary:hover,
.app-header-actions .btn-outline-secondary:focus{
  background:#f5f8fb!important;
  border-color:#94a3b8!important;
  color:#0f172a!important;
}
.app-admin-dropdown{display:inline-flex!important;align-items:center!important;position:relative!important}
.app-admin-dropdown .dropdown-toggle::after{
  margin-left:.42rem!important;
  vertical-align:.1em!important;
  border-top:.32em solid!important;
  border-right:.28em solid transparent!important;
  border-left:.28em solid transparent!important;
}
.app-admin-menu{
  border:1px solid #dfe6ee!important;
  border-radius:14px!important;
  box-shadow:0 18px 42px rgba(15,23,42,.16)!important;
  padding:.42rem!important;
  min-width:220px!important;
  font-size:.78rem!important;
  line-height:1.2!important;
  font-weight:500!important;
  color:#172033!important;
}
.app-admin-menu .dropdown-item{
  border-radius:10px!important;
  padding:.48rem .68rem!important;
  color:#172033!important;
  font-size:.78rem!important;
  line-height:1.2!important;
  font-weight:500!important;
  letter-spacing:-.004em!important;
}
.app-admin-menu .dropdown-item:hover,
.app-admin-menu .dropdown-item:focus{
  background:#eefbf4!important;
  color:#007a3d!important;
}
.app-admin-menu .dropdown-divider{margin:.34rem .25rem!important;border-color:#e7edf4!important}
@media (max-width:1280px){
  .app-header-actions .btn{font-size:.74rem!important;padding:.42rem .58rem!important}
  .app-admin-menu .dropdown-item{font-size:.76rem!important}
}

/* ULSSMGo — Login premium typography alignment */
body.page-auth{
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif!important;
  color:#101828!important;
  background:#f5f7fa!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.page-auth .auth-login-stack{
  width:min(840px, calc(100vw - 32px))!important;
  gap:18px!important;
}
body.page-auth .auth-scope-card{
  max-width:760px!important;
  min-height:92px!important;
  padding:18px 30px!important;
  gap:20px!important;
  border-radius:16px!important;
  box-shadow:0 16px 44px rgba(15,23,42,.08), 0 0 0 1px rgba(255,255,255,.72) inset!important;
}
body.page-auth .auth-scope-icon{
  width:58px!important;
  height:58px!important;
  flex-basis:58px!important;
  border-width:2px!important;
}
body.page-auth .auth-scope-icon svg{
  width:30px!important;
  height:30px!important;
}
body.page-auth .auth-scope-divider{
  height:52px!important;
}
body.page-auth .auth-scope-title{
  font-size:1.36rem!important;
  line-height:1.12!important;
  font-weight:720!important;
  letter-spacing:-.024em!important;
  margin-bottom:.28rem!important;
}
body.page-auth .auth-scope-subtitle{
  font-size:.92rem!important;
  line-height:1.25!important;
  font-weight:620!important;
  letter-spacing:-.012em!important;
  color:#1f2937!important;
}
body.page-auth .auth-card{
  max-width:410px!important;
  border-radius:16px!important;
  padding:24px 26px 22px!important;
  box-shadow:0 18px 46px rgba(15,23,42,.10)!important;
}
body.page-auth .auth-title{
  margin:0 0 20px!important;
  padding:4px 0 10px!important;
  background:linear-gradient(90deg,var(--ulssm-green-dark),var(--ulssm-yellow) 50%,var(--ulssm-red-dark)) center bottom/170px 3px no-repeat!important;
}
body.page-auth .auth-title h2{
  margin:0!important;
  font-size:1.42rem!important;
  line-height:1.15!important;
  font-weight:730!important;
  letter-spacing:-.025em!important;
  color:#101828!important;
}
body.page-auth .auth-label,
body.page-auth label.auth-label{
  font-size:.76rem!important;
  line-height:1.25!important;
  font-weight:600!important;
  color:#55637a!important;
  letter-spacing:-.005em!important;
}
body.page-auth .auth-input{
  min-height:38px!important;
  height:38px!important;
  border-radius:10px!important;
  font-size:.86rem!important;
  font-weight:500!important;
  color:#111827!important;
  padding:.42rem .65rem!important;
}
body.page-auth .auth-btn{
  height:40px!important;
  border-radius:10px!important;
  font-size:.82rem!important;
  font-weight:700!important;
  letter-spacing:-.004em!important;
}
body.page-auth .auth-rgpd-notice{
  gap:.58rem!important;
  align-items:flex-start!important;
}
body.page-auth .auth-rgpd-icon{
  width:20px!important;
  height:20px!important;
  flex-basis:20px!important;
  font-size:.72rem!important;
  margin-top:.05rem!important;
}
body.page-auth .auth-rgpd-notice .auth-label{
  font-size:.76rem!important;
  line-height:1.42!important;
  font-weight:500!important;
  color:#475467!important;
}
body.page-auth .auth-rgpd-notice a{
  color:#007a3d!important;
  font-weight:700!important;
  text-decoration:none!important;
}
body.page-auth .auth-rgpd-notice a:hover{
  text-decoration:underline!important;
}
@media (max-width:760px){
  body.page-auth .auth-login-stack{width:calc(100vw - 24px)!important;gap:14px!important;}
  body.page-auth .auth-scope-card{padding:15px 16px!important;gap:12px!important;}
  body.page-auth .auth-scope-icon{width:48px!important;height:48px!important;flex-basis:48px!important;}
  body.page-auth .auth-scope-icon svg{width:25px!important;height:25px!important;}
  body.page-auth .auth-scope-divider{height:44px!important;}
  body.page-auth .auth-scope-title{font-size:1.12rem!important;}
  body.page-auth .auth-scope-subtitle{font-size:.82rem!important;}
  body.page-auth .auth-card{max-width:100%!important;padding:22px 20px 20px!important;}
}

/* =========================================================
   ULSSMGo — identidade transporte de doentes: ambulância + dinamismo discreto
   Aplica Shine Effect no banner de login e Glow suave no ícone.
   ========================================================= */
.ulssmgo-ambulance-svg{
  display:block;
  width:1em;
  height:1em;
  color:#007a3d;
  overflow:visible;
}
.ulssmgo-ambulance-svg .amb-cross,
.ulssmgo-ambulance-svg .amb-beacon{
  color:#d9a404;
}
.auth-scope-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.auth-scope-card > *{
  position:relative;
  z-index:1;
}
.auth-scope-card::after{
  content:"";
  position:absolute;
  z-index:0;
  top:-20%;
  left:-42%;
  width:28%;
  height:140%;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.38), rgba(255,255,255,0));
  transform:skewX(-24deg);
  filter:blur(.2px);
  animation:ulssmgoHeroShine 8s ease-in-out infinite;
}
.auth-scope-icon{
  color:#007a3d!important;
  animation:ulssmgoAmbulanceGlow 4s ease-in-out infinite;
}
.auth-scope-icon svg{
  fill:none!important;
}
.rgpd-truck .ulssmgo-ambulance-svg,
.app-header-brand .rgpd-truck .ulssmgo-ambulance-svg{
  width:26px;
  height:26px;
  color:#007a3d;
}
body.rgpd-public-page .rgpd-truck .ulssmgo-ambulance-svg{
  width:28px;
  height:28px;
}
@keyframes ulssmgoHeroShine{
  0%{left:-42%; opacity:0;}
  8%{opacity:.72;}
  31%{left:128%; opacity:.62;}
  42%,100%{left:128%; opacity:0;}
}
@keyframes ulssmgoAmbulanceGlow{
  0%,100%{
    box-shadow:0 10px 22px rgba(240,170,0,.12), 0 0 0 rgba(217,164,4,0);
  }
  50%{
    box-shadow:0 12px 28px rgba(240,170,0,.18), 0 0 16px rgba(217,164,4,.30), 0 0 30px rgba(217,164,4,.16);
  }
}
@media (prefers-reduced-motion: reduce){
  .auth-scope-card::after,
  .auth-scope-icon{
    animation:none!important;
  }
}

/* =========================================================
   ULSSMGo — Login hero final premium (modelo aprovado)
   - Ambulância institucional verde/dourado
   - Shine apenas em hover do badge
   - Zoom-out suave no ícone em hover
   - Topbar com ambulância maior mas alinhada ao texto ULSSMGo
   ========================================================= */
body.page-auth .auth-login-stack{
  width:min(850px, calc(100vw - 32px))!important;
  gap:18px!important;
}
body.page-auth .auth-scope-card{
  max-width:790px!important;
  min-height:106px!important;
  padding:20px 48px!important;
  gap:26px!important;
  border:1px solid rgba(217,164,4,.78)!important;
  border-radius:16px!important;
  background:
    radial-gradient(circle at 20% 15%, rgba(255,255,255,.90), rgba(255,255,255,0) 24%),
    linear-gradient(105deg,#fffdf6 0%,#fff9df 46%,#fffdf8 100%)!important;
  box-shadow:0 16px 42px rgba(15,23,42,.08), 0 10px 26px rgba(217,164,4,.08)!important;
  transition:box-shadow .22s ease, transform .22s ease, border-color .22s ease!important;
}
body.page-auth .auth-scope-card:hover{
  border-color:rgba(217,164,4,.95)!important;
  box-shadow:0 18px 48px rgba(15,23,42,.10), 0 14px 32px rgba(217,164,4,.14)!important;
}
body.page-auth .auth-scope-card::after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  top:-28%!important;
  left:-34%!important;
  width:18%!important;
  height:156%!important;
  pointer-events:none!important;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.72),rgba(255,255,255,0))!important;
  transform:skewX(-24deg)!important;
  filter:blur(1.2px)!important;
  opacity:0!important;
  animation:none!important;
}
body.page-auth .auth-scope-card:hover::after{
  animation:ulssmgoHeroShineHover 1.28s cubic-bezier(.22,.61,.36,1) 1!important;
}
body.page-auth .auth-scope-icon{
  width:72px!important;
  height:72px!important;
  flex:0 0 72px!important;
  border-width:2px!important;
  color:#007a3d!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:0 10px 24px rgba(217,164,4,.16), 0 0 0 rgba(217,164,4,0)!important;
  transition:transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s ease, background-color .28s ease!important;
  animation:ulssmgoAmbulanceGlow 4.8s ease-in-out infinite!important;
}
body.page-auth .auth-scope-icon:hover,
body.page-auth .auth-scope-card:hover .auth-scope-icon{
  transform:scale(.94)!important;
  background:#fff!important;
  box-shadow:0 12px 30px rgba(217,164,4,.22), 0 0 20px rgba(217,164,4,.22)!important;
}
body.page-auth .auth-scope-icon svg{
  width:42px!important;
  height:42px!important;
}
body.page-auth .auth-scope-divider{
  height:58px!important;
  background:linear-gradient(180deg,rgba(217,164,4,0),rgba(217,164,4,.45),rgba(217,164,4,0))!important;
}
body.page-auth .auth-scope-title{
  font-size:1.52rem!important;
  line-height:1.08!important;
  font-weight:760!important;
  letter-spacing:-.03em!important;
}
body.page-auth .auth-scope-subtitle{
  margin-top:.25rem!important;
  font-size:1rem!important;
  line-height:1.22!important;
  font-weight:620!important;
}

/* Ambulância no canto superior direito: maior, mas contida pela altura do bloco textual */
.app-header-brand .rgpd-truck,
.rgpd-appmark .rgpd-truck{
  width:38px!important;
  height:38px!important;
  flex:0 0 38px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#007a3d!important;
}
.app-header-brand .rgpd-truck .ulssmgo-ambulance-svg,
.rgpd-appmark .rgpd-truck .ulssmgo-ambulance-svg{
  width:36px!important;
  height:36px!important;
  max-width:36px!important;
  max-height:36px!important;
}
.rgpd-appmark{
  gap:10px!important;
  align-items:center!important;
}
.rgpd-appmark strong{
  line-height:1.03!important;
}
.rgpd-appmark span{
  line-height:1.12!important;
}

@keyframes ulssmgoHeroShineHover{
  0%{left:-34%;opacity:0;}
  10%{opacity:.85;}
  55%{opacity:.70;}
  100%{left:120%;opacity:0;}
}
@media (max-width:760px){
  body.page-auth .auth-scope-card{padding:16px 18px!important;gap:14px!important;min-height:92px!important;}
  body.page-auth .auth-scope-icon{width:56px!important;height:56px!important;flex-basis:56px!important;}
  body.page-auth .auth-scope-icon svg{width:32px!important;height:32px!important;}
  body.page-auth .auth-scope-divider{height:46px!important;}
  body.page-auth .auth-scope-title{font-size:1.16rem!important;}
  body.page-auth .auth-scope-subtitle{font-size:.84rem!important;}
}
@media (prefers-reduced-motion: reduce){
  body.page-auth .auth-scope-card:hover::after,
  body.page-auth .auth-scope-icon{
    animation:none!important;
  }
  body.page-auth .auth-scope-icon:hover,
  body.page-auth .auth-scope-card:hover .auth-scope-icon{
    transform:none!important;
  }
}


/* =========================================================
   ULSSMGo — Ambulância final aprovada (proporção + premium)
   Mantém a identidade verde/dourado e aproxima o SVG do mockup validado.
   ========================================================= */
.ulssmgo-ambulance-svg{
  display:block!important;
  color:#007a3d!important;
  fill:none!important;
  overflow:visible!important;
}
.ulssmgo-ambulance-svg .amb-cross{fill:#d9a404!important;stroke:none!important;}
.ulssmgo-ambulance-svg .amb-beacon{stroke:#d9a404!important;}

body.page-auth .auth-scope-card{
  max-width:790px!important;
  min-height:112px!important;
  padding:20px 48px!important;
  gap:28px!important;
  overflow:hidden!important;
  position:relative!important;
  isolation:isolate!important;
  border:1px solid rgba(217,164,4,.86)!important;
  background:
    radial-gradient(circle at 19% 16%, rgba(255,255,255,.92), rgba(255,255,255,0) 28%),
    linear-gradient(105deg,#fffdf6 0%,#fff9df 48%,#fffdf8 100%)!important;
  box-shadow:0 18px 46px rgba(15,23,42,.09), 0 12px 30px rgba(217,164,4,.10)!important;
}
body.page-auth .auth-scope-card::after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  top:-32%!important;
  left:-36%!important;
  width:18%!important;
  height:166%!important;
  pointer-events:none!important;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.76),rgba(255,255,255,0))!important;
  transform:skewX(-24deg)!important;
  filter:blur(1px)!important;
  opacity:0!important;
  animation:none!important;
}
body.page-auth .auth-scope-card:hover::after{
  animation:ulssmgoHeroShineHover 1.2s cubic-bezier(.22,.61,.36,1) 1!important;
}
body.page-auth .auth-scope-card > *{position:relative!important;z-index:1!important;}
body.page-auth .auth-scope-icon{
  width:78px!important;
  height:78px!important;
  flex:0 0 78px!important;
  border:2px solid #f0aa00!important;
  background:rgba(255,255,255,.88)!important;
  color:#007a3d!important;
  box-shadow:0 10px 24px rgba(217,164,4,.18), 0 0 0 rgba(217,164,4,0)!important;
  transition:transform .26s cubic-bezier(.22,.61,.36,1), box-shadow .26s ease, background-color .26s ease!important;
  animation:ulssmgoAmbulanceGlow 4.8s ease-in-out infinite!important;
}
body.page-auth .auth-scope-icon svg{
  width:58px!important;
  height:42px!important;
  max-width:58px!important;
  max-height:42px!important;
}
body.page-auth .auth-scope-card:hover .auth-scope-icon,
body.page-auth .auth-scope-icon:hover{
  transform:scale(.94)!important;
  background:#fff!important;
  box-shadow:0 14px 32px rgba(217,164,4,.24), 0 0 20px rgba(217,164,4,.22)!important;
}
body.page-auth .auth-scope-divider{
  height:62px!important;
  background:linear-gradient(180deg,rgba(217,164,4,0),rgba(217,164,4,.48),rgba(217,164,4,0))!important;
}
body.page-auth .auth-scope-title{
  font-size:1.56rem!important;
  line-height:1.08!important;
  font-weight:760!important;
  letter-spacing:-.03em!important;
}
body.page-auth .auth-scope-subtitle{
  font-size:1rem!important;
  line-height:1.22!important;
  font-weight:620!important;
}

/* Topbar e rodapé: ambulância maior, sem ultrapassar a altura do bloco ULSSMGo */
.app-header-brand .rgpd-truck,
.rgpd-appmark .rgpd-truck{
  width:46px!important;
  height:36px!important;
  flex:0 0 46px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#007a3d!important;
}
.app-header-brand .rgpd-truck .ulssmgo-ambulance-svg,
.rgpd-appmark .rgpd-truck .ulssmgo-ambulance-svg{
  width:44px!important;
  height:32px!important;
  max-width:44px!important;
  max-height:32px!important;
}
.rgpd-appmark{gap:10px!important;align-items:center!important;}
.rgpd-appmark strong{line-height:1.02!important;}
.rgpd-appmark span{line-height:1.12!important;}

@keyframes ulssmgoHeroShineHover{
  0%{left:-36%;opacity:0;}
  10%{opacity:.86;}
  55%{opacity:.72;}
  100%{left:120%;opacity:0;}
}
@keyframes ulssmgoAmbulanceGlow{
  0%,100%{box-shadow:0 10px 24px rgba(217,164,4,.16), 0 0 0 rgba(217,164,4,0);}
  50%{box-shadow:0 14px 34px rgba(217,164,4,.22), 0 0 18px rgba(217,164,4,.18);}
}
@media (max-width:760px){
  body.page-auth .auth-scope-card{padding:16px 18px!important;gap:14px!important;min-height:94px!important;}
  body.page-auth .auth-scope-icon{width:62px!important;height:62px!important;flex-basis:62px!important;}
  body.page-auth .auth-scope-icon svg{width:46px!important;height:34px!important;}
  body.page-auth .auth-scope-divider{height:48px!important;}
  body.page-auth .auth-scope-title{font-size:1.16rem!important;}
  body.page-auth .auth-scope-subtitle{font-size:.84rem!important;}
}
@media (prefers-reduced-motion: reduce){
  body.page-auth .auth-scope-card:hover::after,
  body.page-auth .auth-scope-icon{animation:none!important;}
  body.page-auth .auth-scope-card:hover .auth-scope-icon,
  body.page-auth .auth-scope-icon:hover{transform:none!important;}
}


/* =========================================================
   ULSSMGo — Ambulância modelo escolhido v4
   Ajuste final: proporção igual ao mockup aprovado, mais presença no header
   e no badge de login, mantendo verde/dourado institucional.
   ========================================================= */
.ulssmgo-ambulance-svg{
  display:block!important;
  overflow:visible!important;
  color:#007a3d!important;
  fill:none!important;
}
.ulssmgo-ambulance-svg .amb-line,
.ulssmgo-ambulance-svg .amb-signal{
  stroke:#007a3d!important;
}
.ulssmgo-ambulance-svg .amb-cross{
  fill:#d9a404!important;
  stroke:none!important;
}
.ulssmgo-ambulance-svg .amb-beacon{
  stroke:#d9a404!important;
}

body.page-auth .auth-scope-card{
  max-width:790px!important;
  min-height:116px!important;
  padding:20px 48px!important;
  gap:28px!important;
  border:1px solid rgba(217,164,4,.88)!important;
  background:
    radial-gradient(circle at 18% 16%, rgba(255,255,255,.92), rgba(255,255,255,0) 28%),
    linear-gradient(105deg,#fffdf6 0%,#fff9df 48%,#fffdf8 100%)!important;
  box-shadow:0 18px 46px rgba(15,23,42,.09), 0 12px 30px rgba(217,164,4,.10)!important;
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
}
body.page-auth .auth-scope-card::after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  top:-32%!important;
  left:-36%!important;
  width:18%!important;
  height:166%!important;
  pointer-events:none!important;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.76),rgba(255,255,255,0))!important;
  transform:skewX(-24deg)!important;
  filter:blur(1px)!important;
  opacity:0!important;
  animation:none!important;
}
body.page-auth .auth-scope-card:hover::after{
  animation:ulssmgoHeroShineHover 1.2s cubic-bezier(.22,.61,.36,1) 1!important;
}
body.page-auth .auth-scope-card > *{position:relative!important;z-index:1!important;}
body.page-auth .auth-scope-icon{
  width:84px!important;
  height:84px!important;
  flex:0 0 84px!important;
  border:2px solid #f0aa00!important;
  background:rgba(255,255,255,.88)!important;
  color:#007a3d!important;
  box-shadow:0 12px 26px rgba(217,164,4,.18), 0 0 0 rgba(217,164,4,0)!important;
  transition:transform .26s cubic-bezier(.22,.61,.36,1), box-shadow .26s ease, background-color .26s ease!important;
  animation:ulssmgoAmbulanceGlow 4.8s ease-in-out infinite!important;
}
body.page-auth .auth-scope-icon svg{
  width:68px!important;
  height:48px!important;
  max-width:68px!important;
  max-height:48px!important;
}
body.page-auth .auth-scope-card:hover .auth-scope-icon,
body.page-auth .auth-scope-icon:hover{
  transform:scale(.94)!important;
  background:#fff!important;
  box-shadow:0 16px 34px rgba(217,164,4,.25), 0 0 22px rgba(217,164,4,.22)!important;
}
body.page-auth .auth-scope-divider{
  height:64px!important;
  background:linear-gradient(180deg,rgba(217,164,4,0),rgba(217,164,4,.48),rgba(217,164,4,0))!important;
}
body.page-auth .auth-scope-title{
  font-size:1.56rem!important;
  line-height:1.08!important;
  font-weight:760!important;
  letter-spacing:-.03em!important;
}
body.page-auth .auth-scope-subtitle{
  font-size:1rem!important;
  line-height:1.22!important;
  font-weight:620!important;
}

/* Header: ambulância com a proporção da imagem escolhida */
.app-header-brand .rgpd-truck,
.rgpd-appmark .rgpd-truck{
  width:76px!important;
  height:56px!important;
  flex:0 0 76px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#007a3d!important;
}
.app-header-brand .rgpd-truck .ulssmgo-ambulance-svg,
.rgpd-appmark .rgpd-truck .ulssmgo-ambulance-svg{
  width:74px!important;
  height:50px!important;
  max-width:74px!important;
  max-height:50px!important;
}
.rgpd-appmark{
  gap:14px!important;
  align-items:center!important;
}
.rgpd-appmark strong{
  font-size:1.26rem!important;
  line-height:1.02!important;
  font-weight:850!important;
  color:#007a3d!important;
}
.rgpd-appmark span{
  font-size:.95rem!important;
  line-height:1.12!important;
  color:#334155!important;
}

/* Footer mantém a marca discreta */
footer .rgpd-truck .ulssmgo-ambulance-svg,
.app-footer .rgpd-truck .ulssmgo-ambulance-svg{
  width:34px!important;
  height:24px!important;
}

@keyframes ulssmgoHeroShineHover{
  0%{left:-36%;opacity:0;}
  10%{opacity:.86;}
  55%{opacity:.72;}
  100%{left:120%;opacity:0;}
}
@keyframes ulssmgoAmbulanceGlow{
  0%,100%{box-shadow:0 12px 26px rgba(217,164,4,.16), 0 0 0 rgba(217,164,4,0);}
  50%{box-shadow:0 16px 36px rgba(217,164,4,.22), 0 0 20px rgba(217,164,4,.18);}
}
@media (max-width:760px){
  body.page-auth .auth-scope-card{padding:16px 18px!important;gap:14px!important;min-height:96px!important;}
  body.page-auth .auth-scope-icon{width:66px!important;height:66px!important;flex-basis:66px!important;}
  body.page-auth .auth-scope-icon svg{width:52px!important;height:38px!important;}
  body.page-auth .auth-scope-divider{height:48px!important;}
  .app-header-brand .rgpd-truck,.rgpd-appmark .rgpd-truck{width:54px!important;height:42px!important;flex-basis:54px!important;}
  .app-header-brand .rgpd-truck .ulssmgo-ambulance-svg,.rgpd-appmark .rgpd-truck .ulssmgo-ambulance-svg{width:52px!important;height:36px!important;}
  .rgpd-appmark strong{font-size:1.05rem!important;}
  .rgpd-appmark span{font-size:.78rem!important;}
}
@media (prefers-reduced-motion: reduce){
  body.page-auth .auth-scope-card:hover::after,
  body.page-auth .auth-scope-icon{animation:none!important;}
  body.page-auth .auth-scope-card:hover .auth-scope-icon,
  body.page-auth .auth-scope-icon:hover{transform:none!important;}
}


/* =========================================================
   ULSSMGo - Autocomplete premium para unidades/origens/destinos
   Mantém tipo/tamanho de letra alinhado com a UI e evita sobreposição
   de linhas nas opções com nome + morada.
   ========================================================= */
.ui-autocomplete {
  z-index: 3000 !important;
  max-height: 360px;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 6px !important;
  border: 1px solid #d7e2ef !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .14) !important;
  font-family: inherit !important;
  font-size: .82rem !important;
  line-height: 1.35 !important;
}

.ui-autocomplete .ui-menu-item {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.ui-autocomplete .ui-menu-item-wrapper,
.ui-autocomplete .ui-state-active {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
}

.ui-autocomplete .tnu-autocomplete-option {
  display: block;
  width: 100%;
  height: auto;
  min-height: 54px;
  padding: 8px 10px;
  border-radius: 10px;
  border-bottom: 1px solid #edf2f7;
  white-space: normal;
  overflow: visible;
  cursor: pointer;
}

.ui-autocomplete .ui-menu-item:last-child .tnu-autocomplete-option {
  border-bottom: 0;
}

.ui-autocomplete .tnu-autocomplete-title {
  display: block;
  color: #0f172a;
  font-size: .84rem;
  font-weight: 600;
  line-height: 1.28;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.ui-autocomplete .tnu-autocomplete-subtitle {
  display: block;
  margin-top: 2px;
  color: #64748b;
  font-size: .76rem;
  font-weight: 400;
  line-height: 1.25;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.ui-autocomplete .ui-menu-item-wrapper.ui-state-active .tnu-autocomplete-option,
.ui-autocomplete .ui-menu-item-wrapper:hover .tnu-autocomplete-option {
  background: #eefbf4;
}

/* V27.24 — alinhamento premium do modal Hierarquia Clínica */
.tnu-hier-dialog,
.tnu-hier-dialog *{
  font-family:inherit !important;
  letter-spacing:0 !important;
}
.tnu-hier-head{
  padding:1rem 1.25rem !important;
}
.tnu-hier-eyebrow{
  font-size:.68rem !important;
  font-weight:700 !important;
  line-height:1.15 !important;
  letter-spacing:.055em !important;
}
.tnu-hier-title{
  font-size:1.16rem !important;
  font-weight:750 !important;
  line-height:1.15 !important;
}
.tnu-hier-current{
  font-size:.82rem !important;
  line-height:1.25 !important;
}
.tnu-hier-search{
  font-size:.88rem !important;
  line-height:1.35 !important;
  font-weight:400 !important;
  height:42px !important;
}
.tnu-hier-col-title{
  font-size:.88rem !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  padding:.72rem .82rem !important;
}
.tnu-hier-list{
  padding:.42rem !important;
}
.tnu-hier-item{
  height:auto !important;
  min-height:38px !important;
  padding:.56rem .66rem !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  font-size:.87rem !important;
  font-weight:500 !important;
  line-height:1.28 !important;
  white-space:normal !important;
  overflow:visible !important;
  word-break:normal !important;
  overflow-wrap:anywhere !important;
}
.tnu-hier-empty{
  font-size:.84rem !important;
  line-height:1.35 !important;
  font-weight:400 !important;
}
.tnu-hier-close{
  font-size:1.35rem !important;
}


/* =========================================================
   UTD — Modal Planeamento Operacional Premium
   Alinhado com modal de utilizadores diferenciados
   ========================================================= */
#utdModal .modal-dialog,
#utdDetalheModal .modal-dialog{
  max-width:1080px!important;
}
#utdModal .modal-content,
#utdDetalheModal .modal-content{
  border:0!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 100% 0%, rgba(233,185,3,.10), transparent 28%),
    linear-gradient(180deg,#ffffff 0%,#ffffff 72%,#fbfdfc 100%)!important;
  box-shadow:0 34px 110px rgba(15,23,42,.34)!important;
  font-family:var(--bs-body-font-family,"Inter","Segoe UI",Arial,sans-serif)!important;
  color:#111827!important;
}
#utdModal .modal-header,
#utdDetalheModal .modal-header{
  position:relative!important;
  align-items:flex-start!important;
  background:#fff!important;
  border-bottom:1px solid #e7edf3!important;
  padding:1.65rem 2rem 1.45rem!important;
}
#utdModal .modal-header::before,
#utdDetalheModal .modal-header::before{
  content:""!important;
  position:absolute!important;
  top:0!important;
  left:0!important;
  right:0!important;
  height:4px!important;
  background:linear-gradient(90deg,var(--ulssm-green,#059242),var(--ulssm-yellow,#e9b903),var(--ulssm-red,#cc0000))!important;
}
#utdModal .vehicle-modal-kicker,
#utdDetalheModal .vehicle-modal-kicker{
  color:#08763a!important;
  font-size:.72rem!important;
  font-weight:760!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
  line-height:1.1!important;
  margin-bottom:.42rem!important;
}
#utdModal .vehicle-modal-title,
#utdDetalheModal .vehicle-modal-title{
  position:relative!important;
  display:inline-block!important;
  padding-bottom:.54rem!important;
  font-size:1.36rem!important;
  line-height:1.12!important;
  font-weight:720!important;
  letter-spacing:-.025em!important;
  color:#101828!important;
}
#utdModal .vehicle-modal-title::after,
#utdDetalheModal .vehicle-modal-title::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  width:150px!important;
  height:3px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--ulssm-green,#059242),var(--ulssm-yellow,#e9b903),var(--ulssm-red,#cc0000))!important;
}
#utdModal .btn-close,
#utdDetalheModal .btn-close{
  width:46px!important;
  height:46px!important;
  border-radius:999px!important;
  background-color:#f8fafc!important;
  border:1px solid #e4ebf2!important;
  opacity:.78!important;
  box-shadow:0 8px 22px rgba(15,23,42,.06)!important;
  transition:all .16s ease!important;
}
#utdModal .btn-close:hover,
#utdDetalheModal .btn-close:hover{
  opacity:1!important;
  transform:translateY(-1px)!important;
  background-color:#fff!important;
}
#utdModal .modal-body,
#utdDetalheModal .modal-body{
  padding:1.65rem 2rem 1.25rem!important;
}
#utdModal .vehicle-summary-grid,
#utdDetalheModal .vehicle-summary-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:1rem!important;
  margin-bottom:1.05rem!important;
}
#utdModal .vehicle-summary-card,
#utdDetalheModal .vehicle-summary-card{
  min-height:76px!important;
  display:flex!important;
  align-items:center!important;
  gap:.92rem!important;
  padding:1rem 1.08rem!important;
  border:1px solid #dbe5ef!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#fff 0%,#fcfdff 100%)!important;
  box-shadow:0 10px 26px rgba(15,23,42,.04)!important;
}
#utdModal .vehicle-summary-card:hover,
#utdDetalheModal .vehicle-summary-card:hover{
  border-color:#cbd8e6!important;
  box-shadow:0 14px 32px rgba(15,23,42,.06)!important;
}
#utdModal .vehicle-summary-icon,
#utdDetalheModal .vehicle-summary-icon{
  flex:0 0 auto!important;
  width:38px!important;
  height:38px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#effaf4 0%,#f7fcfa 100%)!important;
  color:#08763a!important;
  border:1px solid #e3f3ea!important;
  font-size:.92rem!important;
  font-weight:720!important;
}
#utdModal .vehicle-summary-label,
#utdDetalheModal .vehicle-summary-label{
  font-size:.76rem!important;
  font-weight:650!important;
  color:#667085!important;
  line-height:1.15!important;
  margin-bottom:.22rem!important;
}
#utdModal .vehicle-summary-value,
#utdDetalheModal .vehicle-summary-value{
  font-size:.98rem!important;
  font-weight:690!important;
  color:#111827!important;
  line-height:1.22!important;
  letter-spacing:-.012em!important;
}
#utdModal .vehicle-field-wide,
#utdDetalheModal .vehicle-field-wide{grid-column:span 2!important;}
#utdModal .utd-data-card,
#utdDetalheModal .utd-data-card{grid-column:span 2!important;}
#utdModal .vehicle-edit-card,
#utdDetalheModal .vehicle-edit-card{
  position:relative!important;
  border:1px solid #dbe5ef!important;
  border-radius:20px!important;
  background:
    linear-gradient(180deg,#fff 0%,#fff 76%,#f8fbfa 100%)!important;
  padding:1.55rem 1.65rem 1.35rem!important;
  box-shadow:0 14px 38px rgba(15,23,42,.045)!important;
  overflow:hidden!important;
}
#utdModal .vehicle-edit-card::after,
#utdDetalheModal .vehicle-edit-card::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  height:58px!important;
  pointer-events:none!important;
  background:
    radial-gradient(ellipse at 20% 100%, rgba(5,146,66,.07), transparent 45%),
    radial-gradient(ellipse at 75% 110%, rgba(5,146,66,.055), transparent 42%)!important;
}
#utdModal .vehicle-edit-title,
#utdDetalheModal .vehicle-edit-title{
  position:relative!important;
  display:inline-block!important;
  margin:0 0 1.2rem!important;
  padding-bottom:.62rem!important;
  font-size:1.16rem!important;
  font-weight:720!important;
  color:#101828!important;
  letter-spacing:-.02em!important;
}
#utdModal .vehicle-edit-title::after,
#utdDetalheModal .vehicle-edit-title::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  width:128px!important;
  height:3px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--ulssm-green,#059242),var(--ulssm-yellow,#e9b903),var(--ulssm-red,#cc0000))!important;
}
#utdModal .vehicle-edit-grid,
#utdDetalheModal .vehicle-edit-grid{
  gap:1rem 1.15rem!important;
  position:relative!important;
  z-index:1!important;
}
#utdModal .vehicle-edit-grid .form-label,
#utdDetalheModal .vehicle-edit-grid .form-label{
  font-size:.80rem!important;
  line-height:1.15!important;
  color:#526070!important;
  font-weight:660!important;
  margin-bottom:.44rem!important;
}
#utdModal .vehicle-edit-grid .form-control,
#utdModal .vehicle-edit-grid .form-select,
#utdDetalheModal .vehicle-edit-grid .form-control,
#utdDetalheModal .vehicle-edit-grid .form-select{
  min-height:48px!important;
  border-radius:14px!important;
  border:1px solid #d5e0ea!important;
  background:#fff!important;
  color:#172033!important;
  font-size:.96rem!important;
  font-weight:460!important;
  line-height:1.25!important;
  box-shadow:0 8px 18px rgba(15,23,42,.025)!important;
}
#utdModal .vehicle-edit-grid textarea.form-control,
#utdDetalheModal .vehicle-edit-grid textarea.form-control{
  min-height:92px!important;
  padding-top:.85rem!important;
}
#utdModal .vehicle-edit-grid .form-control:focus,
#utdModal .vehicle-edit-grid .form-select:focus,
#utdDetalheModal .vehicle-edit-grid .form-control:focus,
#utdDetalheModal .vehicle-edit-grid .form-select:focus{
  border-color:#159447!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(5,146,66,.11),0 10px 24px rgba(15,23,42,.045)!important;
}
#utdModal select option,
#utdDetalheModal select option{font-size:.94rem!important;font-weight:460!important;padding:.65rem .8rem!important;}
#utdModal textarea[name="utd_notas"],
#utdDetalheModal textarea[name="utd_notas"]{min-height:92px!important;resize:vertical!important;}
#utdModal .vehicle-edit-actions,
#utdDetalheModal .vehicle-edit-actions{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  justify-content:flex-end!important;
  margin-top:1.15rem!important;
}
#utdModal .vehicle-edit-actions .btn,
#utdDetalheModal .vehicle-edit-actions .btn{
  min-width:190px!important;
  height:48px!important;
  border-radius:14px!important;
  font-size:.93rem!important;
  font-weight:700!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.45rem!important;
  box-shadow:0 14px 28px rgba(5,146,66,.22)!important;
}
#utdModal .modal-footer,
#utdDetalheModal .modal-footer{
  border-top:1px solid #e7edf3!important;
  background:#fbfcfd!important;
  padding:1.25rem 2rem!important;
}
#utdModal .modal-footer .btn,
#utdDetalheModal .modal-footer .btn{
  border-radius:14px!important;
  min-height:46px!important;
  padding-left:1.05rem!important;
  padding-right:1.05rem!important;
  font-weight:650!important;
}
#utdModal .modal-footer .btn-outline-success,
#utdDetalheModal .modal-footer .btn-outline-success{
  background:#fff!important;
  border-color:#159447!important;
  color:#08763a!important;
}
#utdModal .modal-footer .btn-outline-secondary,
#utdDetalheModal .modal-footer .btn-outline-secondary{
  background:#fff!important;
  border-color:#cbd5e1!important;
  color:#526070!important;
}
@media(max-width:900px){
  #utdModal .modal-dialog,#utdDetalheModal .modal-dialog{max-width:calc(100vw - 1rem)!important;margin:.5rem auto!important;}
  #utdModal .modal-header,#utdDetalheModal .modal-header{padding:1.25rem 1rem 1rem!important;}
  #utdModal .modal-body,#utdDetalheModal .modal-body{padding:1rem!important;}
  #utdModal .modal-footer,#utdDetalheModal .modal-footer{padding:1rem!important;}
  #utdModal .vehicle-summary-grid,#utdDetalheModal .vehicle-summary-grid,#utdModal .vehicle-edit-grid,#utdDetalheModal .vehicle-edit-grid{grid-template-columns:1fr!important;}
  #utdModal .vehicle-field-wide,#utdDetalheModal .vehicle-field-wide,#utdModal .utd-data-card,#utdDetalheModal .utd-data-card{grid-column:auto!important;}
}


/* KPI faturação — ícone premium e estado dinâmico */
.kpi-icon.warning i.fa-file-invoice-dollar,
.kpi-icon.kpi-warning i.fa-file-invoice-dollar,
.kpi-icon.is-warning i.fa-file-invoice-dollar {
    display:inline-flex;
    align-items:center;
    justify-content:center;
}


/* =========================================================
   ULSSMGo — Modal premium global de alertas / bloqueios
   Modelo aprovado: card elegante, tipografia leve, ícone notificação
   ========================================================= */
.modal-backdrop.show{
  opacity:.74!important;
  background:#1f2937!important;
  backdrop-filter:blur(2px);
}
.login-message-modal .modal-dialog{
  max-width:560px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.login-message-content{
  position:relative!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:24px!important;
  background:
    radial-gradient(circle at 50% 12%, rgba(5,146,66,.055), transparent 34%),
    linear-gradient(180deg,#ffffff 0%,#ffffff 68%,#f7fbf9 100%)!important;
  box-shadow:
    0 40px 105px rgba(15,23,42,.42),
    0 0 0 1px rgba(255,255,255,.72)!important;
  font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif!important;
}
.login-message-content::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:6px;
  background:linear-gradient(90deg,var(--ulssm-green,#059242) 0%,var(--ulssm-yellow,#e9b903) 54%,var(--ulssm-red,#cc0000) 100%);
  z-index:2;
}
.login-message-content::after{
  content:"";
  position:absolute;
  left:-12%;
  right:-12%;
  bottom:88px;
  height:118px;
  pointer-events:none;
  opacity:.68;
  background:
    radial-gradient(120% 100% at 10% 100%, rgba(5,146,66,.105), transparent 48%),
    radial-gradient(120% 100% at 90% 100%, rgba(5,146,66,.095), transparent 48%);
  clip-path:polygon(0 58%,16% 52%,32% 60%,47% 64%,64% 56%,82% 43%,100% 34%,100% 100%,0 100%);
}
.login-message-topbar{display:none!important;}
.login-message-close{
  position:absolute!important;
  top:17px!important;
  right:18px!important;
  z-index:5!important;
  width:42px!important;
  height:42px!important;
  border:0!important;
  border-radius:999px!important;
  background:#f4f7fa!important;
  color:#475569!important;
  font-size:0!important;
  line-height:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 8px 20px rgba(15,23,42,.055)!important;
  transition:background-color .16s ease,color .16s ease,transform .16s ease!important;
}
.login-message-close::before,
.login-message-close::after{
  content:"";
  position:absolute;
  width:18px;
  height:2px;
  border-radius:999px;
  background:currentColor;
}
.login-message-close::before{transform:rotate(45deg);}
.login-message-close::after{transform:rotate(-45deg);}
.login-message-close:hover{
  background:#eef2f6!important;
  color:#0f172a!important;
  transform:translateY(-1px)!important;
}
.login-message-body{
  position:relative!important;
  z-index:3!important;
  padding:3.05rem 3rem 2.55rem!important;
  text-align:center!important;
}
.login-message-icon{
  width:118px!important;
  height:118px!important;
  margin:0 auto 1.2rem!important;
  border-radius:999px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(145deg,#f7fcf9 0%,#eefaf3 100%)!important;
  border:7px solid rgba(255,255,255,.96)!important;
  color:#08783a!important;
  box-shadow:
    0 16px 38px rgba(5,146,66,.10),
    0 0 0 1px rgba(5,146,66,.08),
    0 0 44px rgba(233,185,3,.08)!important;
}
.login-message-icon span{display:none!important;}
.login-message-icon::before{
  content:"";
  display:block;
  width:62px;
  height:62px;
  background:currentColor;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 22a2.7 2.7 0 0 0 2.55-1.82h-5.1A2.7 2.7 0 0 0 12 22Zm7.2-5.6-1.4-1.75V10a5.82 5.82 0 0 0-4.45-5.66V3a1.35 1.35 0 1 0-2.7 0v1.34A5.82 5.82 0 0 0 6.2 10v4.65L4.8 16.4a1.12 1.12 0 0 0 .88 1.82h12.64a1.12 1.12 0 0 0 .88-1.82ZM8.45 15.98V10a3.55 3.55 0 1 1 7.1 0v5.98h-7.1Z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 22a2.7 2.7 0 0 0 2.55-1.82h-5.1A2.7 2.7 0 0 0 12 22Zm7.2-5.6-1.4-1.75V10a5.82 5.82 0 0 0-4.45-5.66V3a1.35 1.35 0 1 0-2.7 0v1.34A5.82 5.82 0 0 0 6.2 10v4.65L4.8 16.4a1.12 1.12 0 0 0 .88 1.82h12.64a1.12 1.12 0 0 0 .88-1.82ZM8.45 15.98V10a3.55 3.55 0 1 1 7.1 0v5.98h-7.1Z"/></svg>') center/contain no-repeat;
}
.login-message-icon::after{
  content:"!";
  position:absolute;
  transform:translate(27px,15px);
  width:35px;
  height:35px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg,#f7c216,#f59e0b);
  color:#fff;
  font-size:1.18rem;
  font-weight:700;
  box-shadow:0 8px 18px rgba(245,158,11,.28);
}
.login-message-icon.login-message-icon-success{
  background:linear-gradient(145deg,#f7fcf9 0%,#ecfdf3 100%)!important;
  border-color:rgba(255,255,255,.96)!important;
  color:#08783a!important;
  box-shadow:0 16px 38px rgba(5,146,66,.10),0 0 0 1px rgba(5,146,66,.08)!important;
}
.login-message-icon.login-message-icon-success::before{
  width:56px;
  height:56px;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.2 16.6 4.95 12.35l1.7-1.7 2.55 2.55 8.15-8.15 1.7 1.7L9.2 16.6Z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.2 16.6 4.95 12.35l1.7-1.7 2.55 2.55 8.15-8.15 1.7 1.7L9.2 16.6Z"/></svg>') center/contain no-repeat;
}
.login-message-icon.login-message-icon-success::after{display:none!important;}
.login-message-icon.login-message-icon-error{
  background:linear-gradient(145deg,#fff7f7 0%,#fff1f2 100%)!important;
  border-color:rgba(255,255,255,.96)!important;
  color:#c00000!important;
  box-shadow:0 16px 38px rgba(192,0,0,.10),0 0 0 1px rgba(192,0,0,.08)!important;
}
.login-message-icon.login-message-icon-error::before{
  width:54px;
  height:54px;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1.15 15h-2.3v-2.3h2.3V17Zm0-4h-2.3V7h2.3v6Z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1.15 15h-2.3v-2.3h2.3V17Zm0-4h-2.3V7h2.3v6Z"/></svg>') center/contain no-repeat;
}
.login-message-icon.login-message-icon-error::after{display:none!important;}
.login-message-kicker{
  margin:.05rem auto .82rem!important;
  color:#05823d!important;
  font-size:.78rem!important;
  font-weight:780!important;
  letter-spacing:.30em!important;
  text-transform:uppercase!important;
}
.login-message-kicker::after{
  content:"";
  display:block;
  width:78px;
  height:2px;
  margin:.62rem auto 0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--ulssm-green,#059242),var(--ulssm-yellow,#e9b903),var(--ulssm-red,#cc0000));
}
.login-message-title{
  margin:0 auto .8rem!important;
  max-width:480px!important;
  color:#111827!important;
  font-size:1.54rem!important;
  font-weight:430!important;
  line-height:1.22!important;
  letter-spacing:-.035em!important;
}
.login-message-title::after{
  content:"";
  display:block;
  width:30px;
  height:4px;
  margin:1.05rem auto 0;
  border-radius:999px;
  background:#059242;
  box-shadow:0 0 0 1px rgba(5,146,66,.08);
}
.login-message-text{
  margin:0 auto 2.15rem!important;
  max-width:430px!important;
  color:#475569!important;
  font-size:1.04rem!important;
  font-weight:370!important;
  line-height:1.62!important;
  letter-spacing:-.012em!important;
}
.login-message-btn{
  position:relative!important;
  z-index:4!important;
  min-width:170px!important;
  height:54px!important;
  border:0!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#12a354,#07823d)!important;
  color:#fff!important;
  font-size:1.07rem!important;
  font-weight:500!important;
  letter-spacing:-.01em!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.75rem!important;
  box-shadow:0 18px 34px rgba(5,146,66,.25)!important;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important;
}
.login-message-btn::before{
  content:"›";
  width:26px;
  height:26px;
  border:2px solid rgba(255,255,255,.86);
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.45rem;
  line-height:.9;
  font-weight:300;
  transform:rotate(0deg);
}
.login-message-btn:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 22px 42px rgba(5,146,66,.30)!important;
  filter:saturate(1.04)!important;
}
@media(max-width:576px){
  .login-message-modal .modal-dialog{max-width:calc(100vw - 28px)!important;margin:0 auto!important;}
  .login-message-body{padding:2.65rem 1.45rem 2rem!important;}
  .login-message-title{font-size:1.32rem!important;}
  .login-message-text{font-size:.98rem!important;line-height:1.52!important;}
  .login-message-icon{width:96px!important;height:96px!important;}
  .login-message-icon::before{width:50px;height:50px;}
  .login-message-btn{width:100%;max-width:230px;height:50px!important;}
}


/* =========================================================
   ULSSMGo — Modal premium aprovado como padrão global
   Aplica-se a login, bloqueios, erros e futuros alertas JS.
   ========================================================= */
.login-message-modal .modal-dialog{
  width:min(560px, calc(100vw - 28px))!important;
  max-width:560px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.login-message-content{
  min-height:420px!important;
  border-radius:24px!important;
}
.login-message-body{
  min-height:420px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}
.login-message-title{
  font-weight:430!important;
  letter-spacing:-.035em!important;
}
.login-message-text{
  font-weight:370!important;
}
.login-message-icon.login-message-icon-warning{
  background:linear-gradient(145deg,#f7fcf9 0%,#eefaf3 100%)!important;
  border-color:rgba(255,255,255,.96)!important;
  color:#08783a!important;
  box-shadow:0 16px 38px rgba(5,146,66,.10),0 0 0 1px rgba(5,146,66,.08),0 0 44px rgba(233,185,3,.08)!important;
}
.login-message-icon.login-message-icon-warning::after{
  display:flex!important;
}
@media(max-width:576px){
  .login-message-content{min-height:390px!important;}
  .login-message-body{min-height:390px!important;}
}

/* =========================================================
   UTD — Compactação final do modal Planeamento Operacional
   Redução dos badges/cartões superiores e altura global
   ========================================================= */
#utdModal .modal-dialog,
#utdDetalheModal .modal-dialog{
  max-width:880px!important;
  margin-top:.75rem!important;
  margin-bottom:.75rem!important;
}
#utdModal .modal-content,
#utdDetalheModal .modal-content{
  border-radius:18px!important;
}
#utdModal .modal-header,
#utdDetalheModal .modal-header{
  padding:1.05rem 1.45rem .9rem!important;
}
#utdModal .vehicle-modal-kicker,
#utdDetalheModal .vehicle-modal-kicker{
  font-size:.66rem!important;
  font-weight:650!important;
  letter-spacing:.12em!important;
  margin-bottom:.28rem!important;
}
#utdModal .vehicle-modal-title,
#utdDetalheModal .vehicle-modal-title{
  font-size:1.18rem!important;
  font-weight:680!important;
  padding-bottom:.42rem!important;
}
#utdModal .vehicle-modal-title::after,
#utdDetalheModal .vehicle-modal-title::after{
  width:112px!important;
  height:2px!important;
}
#utdModal .btn-close,
#utdDetalheModal .btn-close{
  width:34px!important;
  height:34px!important;
  box-shadow:none!important;
}
#utdModal .modal-body,
#utdDetalheModal .modal-body{
  padding:1rem 1.25rem .75rem!important;
}
#utdModal .vehicle-summary-grid,
#utdDetalheModal .vehicle-summary-grid{
  gap:.55rem!important;
  margin-bottom:.65rem!important;
}
#utdModal .vehicle-summary-card,
#utdDetalheModal .vehicle-summary-card{
  min-height:50px!important;
  gap:.58rem!important;
  padding:.55rem .7rem!important;
  border-radius:11px!important;
  box-shadow:0 6px 16px rgba(15,23,42,.028)!important;
}
#utdModal .vehicle-summary-icon,
#utdDetalheModal .vehicle-summary-icon{
  width:28px!important;
  height:28px!important;
  border-radius:9px!important;
  font-size:.75rem!important;
  font-weight:560!important;
}
#utdModal .vehicle-summary-label,
#utdDetalheModal .vehicle-summary-label{
  font-size:.62rem!important;
  font-weight:500!important;
  line-height:1.05!important;
  margin-bottom:.12rem!important;
}
#utdModal .vehicle-summary-value,
#utdDetalheModal .vehicle-summary-value{
  font-size:.78rem!important;
  font-weight:540!important;
  line-height:1.12!important;
  letter-spacing:0!important;
}
#utdModal .vehicle-edit-card,
#utdDetalheModal .vehicle-edit-card{
  padding:1rem 1.05rem .85rem!important;
  border-radius:16px!important;
  box-shadow:0 8px 22px rgba(15,23,42,.03)!important;
}
#utdModal .vehicle-edit-card::after,
#utdDetalheModal .vehicle-edit-card::after{
  height:36px!important;
}
#utdModal .vehicle-edit-title,
#utdDetalheModal .vehicle-edit-title{
  font-size:1rem!important;
  font-weight:660!important;
  margin-bottom:.72rem!important;
  padding-bottom:.38rem!important;
}
#utdModal .vehicle-edit-title::after,
#utdDetalheModal .vehicle-edit-title::after{
  width:104px!important;
  height:2px!important;
}
#utdModal .vehicle-edit-grid,
#utdDetalheModal .vehicle-edit-grid{
  gap:.62rem .75rem!important;
}
#utdModal .vehicle-edit-grid .form-label,
#utdDetalheModal .vehicle-edit-grid .form-label{
  font-size:.68rem!important;
  font-weight:560!important;
  margin-bottom:.24rem!important;
}
#utdModal .vehicle-edit-grid .form-control,
#utdModal .vehicle-edit-grid .form-select,
#utdDetalheModal .vehicle-edit-grid .form-control,
#utdDetalheModal .vehicle-edit-grid .form-select{
  min-height:36px!important;
  border-radius:10px!important;
  font-size:.82rem!important;
  font-weight:400!important;
  padding-top:.38rem!important;
  padding-bottom:.38rem!important;
}
#utdModal .vehicle-edit-grid textarea.form-control,
#utdDetalheModal .vehicle-edit-grid textarea.form-control,
#utdModal textarea[name="utd_notas"],
#utdDetalheModal textarea[name="utd_notas"]{
  min-height:62px!important;
  padding-top:.55rem!important;
}
#utdModal .vehicle-edit-actions,
#utdDetalheModal .vehicle-edit-actions{
  margin-top:.72rem!important;
}
#utdModal .vehicle-edit-actions .btn,
#utdDetalheModal .vehicle-edit-actions .btn{
  min-width:168px!important;
  height:40px!important;
  border-radius:11px!important;
  font-size:.82rem!important;
  font-weight:650!important;
  box-shadow:0 10px 20px rgba(5,146,66,.18)!important;
}
#utdModal .modal-footer,
#utdDetalheModal .modal-footer{
  padding:.8rem 1.25rem!important;
}
#utdModal .modal-footer .btn,
#utdDetalheModal .modal-footer .btn{
  min-height:38px!important;
  border-radius:11px!important;
  font-size:.82rem!important;
  font-weight:560!important;
  padding-left:.9rem!important;
  padding-right:.9rem!important;
}
@media(max-height:760px) and (min-width:901px){
  #utdModal .modal-dialog,#utdDetalheModal .modal-dialog{max-width:840px!important;margin-top:.35rem!important;margin-bottom:.35rem!important;}
  #utdModal .modal-header,#utdDetalheModal .modal-header{padding:.85rem 1.25rem .75rem!important;}
  #utdModal .modal-body,#utdDetalheModal .modal-body{padding:.75rem 1.05rem .55rem!important;}
  #utdModal .vehicle-summary-card,#utdDetalheModal .vehicle-summary-card{min-height:46px!important;padding:.45rem .62rem!important;}
  #utdModal .vehicle-edit-card,#utdDetalheModal .vehicle-edit-card{padding:.85rem .9rem .7rem!important;}
  #utdModal .modal-footer,#utdDetalheModal .modal-footer{padding:.65rem 1.05rem!important;}
}

/* =========================================================
   UTD — Ajuste final aprovado: modal mais largo, viatura legível,
   botões alinhados e data com datepicker visível
   ========================================================= */
#utdModal .modal-dialog,
#utdDetalheModal .modal-dialog{
  max-width:1120px!important;
}
#utdModal .modal-header,
#utdDetalheModal .modal-header{
  padding:1rem 1.55rem .85rem!important;
}
#utdModal .modal-body,
#utdDetalheModal .modal-body{
  padding:1rem 1.35rem .7rem!important;
}
#utdModal .vehicle-summary-grid,
#utdDetalheModal .vehicle-summary-grid{
  gap:.7rem!important;
  margin-bottom:.8rem!important;
}
#utdModal .vehicle-summary-card,
#utdDetalheModal .vehicle-summary-card{
  min-height:50px!important;
  padding:.55rem .75rem!important;
  gap:.62rem!important;
  border-radius:13px!important;
}
#utdModal .vehicle-summary-icon,
#utdDetalheModal .vehicle-summary-icon{
  width:30px!important;
  height:30px!important;
  border-radius:10px!important;
  font-size:.74rem!important;
  font-weight:520!important;
}
#utdModal .vehicle-summary-label,
#utdDetalheModal .vehicle-summary-label{
  font-size:.62rem!important;
  font-weight:500!important;
  margin-bottom:.08rem!important;
  line-height:1.05!important;
}
#utdModal .vehicle-summary-value,
#utdDetalheModal .vehicle-summary-value{
  font-size:.82rem!important;
  font-weight:540!important;
  line-height:1.14!important;
}
#utdModal .vehicle-edit-card,
#utdDetalheModal .vehicle-edit-card{
  padding:1rem 1.15rem .9rem!important;
  border-radius:16px!important;
}
#utdModal .vehicle-edit-title,
#utdDetalheModal .vehicle-edit-title{
  font-size:1.02rem!important;
  font-weight:650!important;
  margin-bottom:.75rem!important;
  padding-bottom:.38rem!important;
}
#utdModal .vehicle-edit-grid,
#utdDetalheModal .vehicle-edit-grid{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:.7rem .85rem!important;
}
#utdModal .utd-field-full,
#utdDetalheModal .utd-field-full{
  grid-column:1 / -1!important;
}
#utdModal .utd-vehicle-field,
#utdDetalheModal .utd-vehicle-field{
  grid-column:span 6!important;
}
#utdModal .utd-driver-field,
#utdDetalheModal .utd-driver-field{
  grid-column:span 6!important;
}
#utdModal .vehicle-edit-grid .form-label,
#utdDetalheModal .vehicle-edit-grid .form-label,
#utdModal .utd-eta-sub-label,
#utdDetalheModal .utd-eta-sub-label{
  font-size:.68rem!important;
  font-weight:560!important;
  margin-bottom:.25rem!important;
  color:#526070!important;
}
#utdModal .vehicle-edit-grid .form-control,
#utdModal .vehicle-edit-grid .form-select,
#utdDetalheModal .vehicle-edit-grid .form-control,
#utdDetalheModal .vehicle-edit-grid .form-select{
  min-height:40px!important;
  border-radius:11px!important;
  font-size:.86rem!important;
  font-weight:400!important;
  padding-top:.42rem!important;
  padding-bottom:.42rem!important;
}
#utdModal .utd-vehicle-field .form-select,
#utdDetalheModal .utd-vehicle-field .form-select,
#utdModal .utd-driver-field .form-select,
#utdDetalheModal .utd-driver-field .form-select{
  width:100%!important;
}
#utdModal .utd-eta-grid,
#utdDetalheModal .utd-eta-grid{
  display:grid!important;
  grid-template-columns:minmax(360px,1fr) 120px 120px!important;
  gap:.85rem!important;
  align-items:end!important;
}
#utdModal .utd-datepicker-wrap,
#utdDetalheModal .utd-datepicker-wrap{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
}
#utdModal .utd-datepicker-icon,
#utdDetalheModal .utd-datepicker-icon{
  position:absolute!important;
  left:.75rem!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  z-index:2!important;
  width:18px!important;
  height:18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#667085!important;
  font-size:.72rem!important;
  pointer-events:none!important;
}
#utdModal .utd-date-input,
#utdDetalheModal .utd-date-input{
  padding-left:2.25rem!important;
  padding-right:2.25rem!important;
}
#utdModal .utd-date-input::-webkit-calendar-picker-indicator,
#utdDetalheModal .utd-date-input::-webkit-calendar-picker-indicator{
  display:block!important;
  opacity:.75!important;
  cursor:pointer!important;
}
#utdModal .vehicle-edit-grid textarea.form-control,
#utdDetalheModal .vehicle-edit-grid textarea.form-control,
#utdModal textarea[name="utd_notas"],
#utdDetalheModal textarea[name="utd_notas"]{
  min-height:74px!important;
}
#utdModal .vehicle-edit-actions,
#utdDetalheModal .vehicle-edit-actions{
  display:none!important;
}
#utdModal .utd-planning-footer,
#utdDetalheModal .utd-planning-footer{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:1rem!important;
  padding:.85rem 1.35rem 1rem!important;
  background:rgba(255,255,255,.95)!important;
}
#utdModal .utd-footer-actions,
#utdDetalheModal .utd-footer-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:.75rem!important;
}
#utdModal .utd-btn-consultar,
#utdDetalheModal .utd-btn-consultar,
#utdModal .utd-btn-cancelar,
#utdDetalheModal .utd-btn-cancelar,
#utdModal .utd-btn-guardar,
#utdDetalheModal .utd-btn-guardar{
  min-height:42px!important;
  border-radius:12px!important;
  font-size:.84rem!important;
  font-weight:620!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.45rem!important;
  padding:.55rem 1.05rem!important;
}
#utdModal .utd-btn-guardar,
#utdDetalheModal .utd-btn-guardar{
  min-width:180px!important;
  box-shadow:0 12px 24px rgba(5,146,66,.20)!important;
}
#utdModal .utd-btn-consultar,
#utdDetalheModal .utd-btn-consultar{
  min-width:150px!important;
}
@media(max-width:900px){
  #utdModal .modal-dialog,#utdDetalheModal .modal-dialog{max-width:calc(100vw - 18px)!important;}
  #utdModal .vehicle-summary-grid,#utdDetalheModal .vehicle-summary-grid{grid-template-columns:1fr!important;}
  #utdModal .vehicle-field-wide,#utdDetalheModal .vehicle-field-wide,#utdModal .utd-data-card,#utdDetalheModal .utd-data-card{grid-column:auto!important;}
  #utdModal .vehicle-edit-grid,#utdDetalheModal .vehicle-edit-grid{grid-template-columns:1fr!important;}
  #utdModal .utd-field-full,#utdDetalheModal .utd-field-full,#utdModal .utd-vehicle-field,#utdDetalheModal .utd-vehicle-field,#utdModal .utd-driver-field,#utdDetalheModal .utd-driver-field{grid-column:auto!important;}
  #utdModal .utd-eta-grid,#utdDetalheModal .utd-eta-grid{grid-template-columns:1fr!important;}
  #utdModal .utd-planning-footer,#utdDetalheModal .utd-planning-footer{flex-direction:column!important;align-items:stretch!important;}
  #utdModal .utd-footer-actions,#utdDetalheModal .utd-footer-actions{width:100%!important;}
  #utdModal .utd-planning-footer .btn,#utdDetalheModal .utd-planning-footer .btn{width:100%!important;}
}


/* ======= TDNU DETALHE: SCORE EM DESTAQUE ======= */
.tnu-score-highlight{
  min-height:148px;
  padding:1rem;
  border:1px solid color-mix(in srgb,var(--brand) 30%, #dfe7e2);
  border-radius:12px;
  background:linear-gradient(145deg, color-mix(in srgb,var(--brand) 8%, #fff), #fff);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.tnu-score-label{
  color:var(--brand-strong);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.tnu-score-value{
  margin:.1rem 0;
  color:var(--brand);
  font-size:3rem;
  font-weight:700;
  line-height:1;
}
.tnu-score-scale{
  color:var(--brand-strong);
  font-size:.72rem;
  font-weight:600;
}
@media (max-width:767.98px){
  .tnu-score-highlight{min-height:112px;}
}
@media print{
  .tnu-score-highlight{min-height:auto; padding:.5rem; border:1px solid #999; background:#fff;}
  .tnu-score-value{font-size:2rem;}
}

/* V23.3 — Datepicker nativo no modal da Transportadora */
#tpServicoModal .utd-date-input{
  color-scheme:light!important;
  cursor:pointer!important;
  padding-right:2.45rem!important;
}
#tpServicoModal .utd-date-input::-webkit-calendar-picker-indicator{
  display:block!important;
  opacity:.78!important;
  cursor:pointer!important;
  width:18px!important;
  height:18px!important;
}
#tpServicoModal .utd-datepicker-icon svg{display:block!important;}


/* =========================================================
   TRANSPORTADORA — alinhamento integral com o modal UTD
   ========================================================= */
/* =========================================================
   UTD — Modal Planeamento Operacional Premium
   Alinhado com modal de utilizadores diferenciados
   ========================================================= */
#tpServicoModal .modal-dialog,
#tpServicoModal .modal-dialog{
  max-width:1080px!important;
}
#tpServicoModal .modal-content,
#tpServicoModal .modal-content{
  border:0!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 100% 0%, rgba(233,185,3,.10), transparent 28%),
    linear-gradient(180deg,#ffffff 0%,#ffffff 72%,#fbfdfc 100%)!important;
  box-shadow:0 34px 110px rgba(15,23,42,.34)!important;
  font-family:var(--bs-body-font-family,"Inter","Segoe UI",Arial,sans-serif)!important;
  color:#111827!important;
}
#tpServicoModal .modal-header,
#tpServicoModal .modal-header{
  position:relative!important;
  align-items:flex-start!important;
  background:#fff!important;
  border-bottom:1px solid #e7edf3!important;
  padding:1.65rem 2rem 1.45rem!important;
}
#tpServicoModal .modal-header::before,
#tpServicoModal .modal-header::before{
  content:""!important;
  position:absolute!important;
  top:0!important;
  left:0!important;
  right:0!important;
  height:4px!important;
  background:linear-gradient(90deg,var(--ulssm-green,#059242),var(--ulssm-yellow,#e9b903),var(--ulssm-red,#cc0000))!important;
}
#tpServicoModal .vehicle-modal-kicker,
#tpServicoModal .vehicle-modal-kicker{
  color:#08763a!important;
  font-size:.72rem!important;
  font-weight:760!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
  line-height:1.1!important;
  margin-bottom:.42rem!important;
}
#tpServicoModal .vehicle-modal-title,
#tpServicoModal .vehicle-modal-title{
  position:relative!important;
  display:inline-block!important;
  padding-bottom:.54rem!important;
  font-size:1.36rem!important;
  line-height:1.12!important;
  font-weight:720!important;
  letter-spacing:-.025em!important;
  color:#101828!important;
}
#tpServicoModal .vehicle-modal-title::after,
#tpServicoModal .vehicle-modal-title::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  width:150px!important;
  height:3px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--ulssm-green,#059242),var(--ulssm-yellow,#e9b903),var(--ulssm-red,#cc0000))!important;
}
#tpServicoModal .btn-close,
#tpServicoModal .btn-close{
  width:46px!important;
  height:46px!important;
  border-radius:999px!important;
  background-color:#f8fafc!important;
  border:1px solid #e4ebf2!important;
  opacity:.78!important;
  box-shadow:0 8px 22px rgba(15,23,42,.06)!important;
  transition:all .16s ease!important;
}
#tpServicoModal .btn-close:hover,
#tpServicoModal .btn-close:hover{
  opacity:1!important;
  transform:translateY(-1px)!important;
  background-color:#fff!important;
}
#tpServicoModal .modal-body,
#tpServicoModal .modal-body{
  padding:1.65rem 2rem 1.25rem!important;
}
#tpServicoModal .vehicle-summary-grid,
#tpServicoModal .vehicle-summary-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:1rem!important;
  margin-bottom:1.05rem!important;
}
#tpServicoModal .vehicle-summary-card,
#tpServicoModal .vehicle-summary-card{
  min-height:76px!important;
  display:flex!important;
  align-items:center!important;
  gap:.92rem!important;
  padding:1rem 1.08rem!important;
  border:1px solid #dbe5ef!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#fff 0%,#fcfdff 100%)!important;
  box-shadow:0 10px 26px rgba(15,23,42,.04)!important;
}
#tpServicoModal .vehicle-summary-card:hover,
#tpServicoModal .vehicle-summary-card:hover{
  border-color:#cbd8e6!important;
  box-shadow:0 14px 32px rgba(15,23,42,.06)!important;
}
#tpServicoModal .vehicle-summary-icon,
#tpServicoModal .vehicle-summary-icon{
  flex:0 0 auto!important;
  width:38px!important;
  height:38px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#effaf4 0%,#f7fcfa 100%)!important;
  color:#08763a!important;
  border:1px solid #e3f3ea!important;
  font-size:.92rem!important;
  font-weight:720!important;
}
#tpServicoModal .vehicle-summary-label,
#tpServicoModal .vehicle-summary-label{
  font-size:.76rem!important;
  font-weight:650!important;
  color:#667085!important;
  line-height:1.15!important;
  margin-bottom:.22rem!important;
}
#tpServicoModal .vehicle-summary-value,
#tpServicoModal .vehicle-summary-value{
  font-size:.98rem!important;
  font-weight:690!important;
  color:#111827!important;
  line-height:1.22!important;
  letter-spacing:-.012em!important;
}
#tpServicoModal .vehicle-field-wide,
#tpServicoModal .vehicle-field-wide{grid-column:span 2!important;}
#tpServicoModal .utd-data-card,
#tpServicoModal .utd-data-card{grid-column:span 2!important;}
#tpServicoModal .vehicle-edit-card,
#tpServicoModal .vehicle-edit-card{
  position:relative!important;
  border:1px solid #dbe5ef!important;
  border-radius:20px!important;
  background:
    linear-gradient(180deg,#fff 0%,#fff 76%,#f8fbfa 100%)!important;
  padding:1.55rem 1.65rem 1.35rem!important;
  box-shadow:0 14px 38px rgba(15,23,42,.045)!important;
  overflow:hidden!important;
}
#tpServicoModal .vehicle-edit-card::after,
#tpServicoModal .vehicle-edit-card::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  height:58px!important;
  pointer-events:none!important;
  background:
    radial-gradient(ellipse at 20% 100%, rgba(5,146,66,.07), transparent 45%),
    radial-gradient(ellipse at 75% 110%, rgba(5,146,66,.055), transparent 42%)!important;
}
#tpServicoModal .vehicle-edit-title,
#tpServicoModal .vehicle-edit-title{
  position:relative!important;
  display:inline-block!important;
  margin:0 0 1.2rem!important;
  padding-bottom:.62rem!important;
  font-size:1.16rem!important;
  font-weight:720!important;
  color:#101828!important;
  letter-spacing:-.02em!important;
}
#tpServicoModal .vehicle-edit-title::after,
#tpServicoModal .vehicle-edit-title::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  width:128px!important;
  height:3px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--ulssm-green,#059242),var(--ulssm-yellow,#e9b903),var(--ulssm-red,#cc0000))!important;
}
#tpServicoModal .vehicle-edit-grid,
#tpServicoModal .vehicle-edit-grid{
  gap:1rem 1.15rem!important;
  position:relative!important;
  z-index:1!important;
}
#tpServicoModal .vehicle-edit-grid .form-label,
#tpServicoModal .vehicle-edit-grid .form-label{
  font-size:.80rem!important;
  line-height:1.15!important;
  color:#526070!important;
  font-weight:660!important;
  margin-bottom:.44rem!important;
}
#tpServicoModal .vehicle-edit-grid .form-control,
#tpServicoModal .vehicle-edit-grid .form-select,
#tpServicoModal .vehicle-edit-grid .form-control,
#tpServicoModal .vehicle-edit-grid .form-select{
  min-height:48px!important;
  border-radius:14px!important;
  border:1px solid #d5e0ea!important;
  background:#fff!important;
  color:#172033!important;
  font-size:.96rem!important;
  font-weight:460!important;
  line-height:1.25!important;
  box-shadow:0 8px 18px rgba(15,23,42,.025)!important;
}
#tpServicoModal .vehicle-edit-grid textarea.form-control,
#tpServicoModal .vehicle-edit-grid textarea.form-control{
  min-height:92px!important;
  padding-top:.85rem!important;
}
#tpServicoModal .vehicle-edit-grid .form-control:focus,
#tpServicoModal .vehicle-edit-grid .form-select:focus,
#tpServicoModal .vehicle-edit-grid .form-control:focus,
#tpServicoModal .vehicle-edit-grid .form-select:focus{
  border-color:#159447!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(5,146,66,.11),0 10px 24px rgba(15,23,42,.045)!important;
}
#tpServicoModal select option,
#tpServicoModal select option{font-size:.94rem!important;font-weight:460!important;padding:.65rem .8rem!important;}
#tpServicoModal textarea[name="utd_notas"],
#tpServicoModal textarea[name="utd_notas"]{min-height:92px!important;resize:vertical!important;}
#tpServicoModal .vehicle-edit-actions,
#tpServicoModal .vehicle-edit-actions{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  justify-content:flex-end!important;
  margin-top:1.15rem!important;
}
#tpServicoModal .vehicle-edit-actions .btn,
#tpServicoModal .vehicle-edit-actions .btn{
  min-width:190px!important;
  height:48px!important;
  border-radius:14px!important;
  font-size:.93rem!important;
  font-weight:700!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.45rem!important;
  box-shadow:0 14px 28px rgba(5,146,66,.22)!important;
}
#tpServicoModal .modal-footer,
#tpServicoModal .modal-footer{
  border-top:1px solid #e7edf3!important;
  background:#fbfcfd!important;
  padding:1.25rem 2rem!important;
}
#tpServicoModal .modal-footer .btn,
#tpServicoModal .modal-footer .btn{
  border-radius:14px!important;
  min-height:46px!important;
  padding-left:1.05rem!important;
  padding-right:1.05rem!important;
  font-weight:650!important;
}
#tpServicoModal .modal-footer .btn-outline-success,
#tpServicoModal .modal-footer .btn-outline-success{
  background:#fff!important;
  border-color:#159447!important;
  color:#08763a!important;
}
#tpServicoModal .modal-footer .btn-outline-secondary,
#tpServicoModal .modal-footer .btn-outline-secondary{
  background:#fff!important;
  border-color:#cbd5e1!important;
  color:#526070!important;
}
@media(max-width:900px){
  #tpServicoModal .modal-dialog,#tpServicoModal .modal-dialog{max-width:calc(100vw - 1rem)!important;margin:.5rem auto!important;}
  #tpServicoModal .modal-header,#tpServicoModal .modal-header{padding:1.25rem 1rem 1rem!important;}
  #tpServicoModal .modal-body,#tpServicoModal .modal-body{padding:1rem!important;}
  #tpServicoModal .modal-footer,#tpServicoModal .modal-footer{padding:1rem!important;}
  #tpServicoModal .vehicle-summary-grid,#tpServicoModal .vehicle-summary-grid,#tpServicoModal .vehicle-edit-grid,#tpServicoModal .vehicle-edit-grid{grid-template-columns:1fr!important;}
  #tpServicoModal .vehicle-field-wide,#tpServicoModal .vehicle-field-wide,#tpServicoModal .utd-data-card,#tpServicoModal .utd-data-card{grid-column:auto!important;}
}


/* KPI faturação — ícone premium e estado dinâmico */
.kpi-icon.warning i.fa-file-invoice-dollar,
.kpi-icon.kpi-warning i.fa-file-invoice-dollar,
.kpi-icon.is-warning i.fa-file-invoice-dollar {
    display:inline-flex;
    align-items:center;
    justify-content:center;
}


/* =========================================================
   ULSSMGo — Modal premium global de alertas / bloqueios
   Modelo aprovado: card elegante, tipografia leve, ícone notificação
   ========================================================= */
.modal-backdrop.show{
  opacity:.74!important;
  background:#1f2937!important;
  backdrop-filter:blur(2px);
}
.login-message-modal .modal-dialog{
  max-width:560px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.login-message-content{
  position:relative!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:24px!important;
  background:
    radial-gradient(circle at 50% 12%, rgba(5,146,66,.055), transparent 34%),
    linear-gradient(180deg,#ffffff 0%,#ffffff 68%,#f7fbf9 100%)!important;
  box-shadow:
    0 40px 105px rgba(15,23,42,.42),
    0 0 0 1px rgba(255,255,255,.72)!important;
  font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif!important;
}
.login-message-content::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:6px;
  background:linear-gradient(90deg,var(--ulssm-green,#059242) 0%,var(--ulssm-yellow,#e9b903) 54%,var(--ulssm-red,#cc0000) 100%);
  z-index:2;
}
.login-message-content::after{
  content:"";
  position:absolute;
  left:-12%;
  right:-12%;
  bottom:88px;
  height:118px;
  pointer-events:none;
  opacity:.68;
  background:
    radial-gradient(120% 100% at 10% 100%, rgba(5,146,66,.105), transparent 48%),
    radial-gradient(120% 100% at 90% 100%, rgba(5,146,66,.095), transparent 48%);
  clip-path:polygon(0 58%,16% 52%,32% 60%,47% 64%,64% 56%,82% 43%,100% 34%,100% 100%,0 100%);
}
.login-message-topbar{display:none!important;}
.login-message-close{
  position:absolute!important;
  top:17px!important;
  right:18px!important;
  z-index:5!important;
  width:42px!important;
  height:42px!important;
  border:0!important;
  border-radius:999px!important;
  background:#f4f7fa!important;
  color:#475569!important;
  font-size:0!important;
  line-height:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 8px 20px rgba(15,23,42,.055)!important;
  transition:background-color .16s ease,color .16s ease,transform .16s ease!important;
}
.login-message-close::before,
.login-message-close::after{
  content:"";
  position:absolute;
  width:18px;
  height:2px;
  border-radius:999px;
  background:currentColor;
}
.login-message-close::before{transform:rotate(45deg);}
.login-message-close::after{transform:rotate(-45deg);}
.login-message-close:hover{
  background:#eef2f6!important;
  color:#0f172a!important;
  transform:translateY(-1px)!important;
}
.login-message-body{
  position:relative!important;
  z-index:3!important;
  padding:3.05rem 3rem 2.55rem!important;
  text-align:center!important;
}
.login-message-icon{
  width:118px!important;
  height:118px!important;
  margin:0 auto 1.2rem!important;
  border-radius:999px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(145deg,#f7fcf9 0%,#eefaf3 100%)!important;
  border:7px solid rgba(255,255,255,.96)!important;
  color:#08783a!important;
  box-shadow:
    0 16px 38px rgba(5,146,66,.10),
    0 0 0 1px rgba(5,146,66,.08),
    0 0 44px rgba(233,185,3,.08)!important;
}
.login-message-icon span{display:none!important;}
.login-message-icon::before{
  content:"";
  display:block;
  width:62px;
  height:62px;
  background:currentColor;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 22a2.7 2.7 0 0 0 2.55-1.82h-5.1A2.7 2.7 0 0 0 12 22Zm7.2-5.6-1.4-1.75V10a5.82 5.82 0 0 0-4.45-5.66V3a1.35 1.35 0 1 0-2.7 0v1.34A5.82 5.82 0 0 0 6.2 10v4.65L4.8 16.4a1.12 1.12 0 0 0 .88 1.82h12.64a1.12 1.12 0 0 0 .88-1.82ZM8.45 15.98V10a3.55 3.55 0 1 1 7.1 0v5.98h-7.1Z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 22a2.7 2.7 0 0 0 2.55-1.82h-5.1A2.7 2.7 0 0 0 12 22Zm7.2-5.6-1.4-1.75V10a5.82 5.82 0 0 0-4.45-5.66V3a1.35 1.35 0 1 0-2.7 0v1.34A5.82 5.82 0 0 0 6.2 10v4.65L4.8 16.4a1.12 1.12 0 0 0 .88 1.82h12.64a1.12 1.12 0 0 0 .88-1.82ZM8.45 15.98V10a3.55 3.55 0 1 1 7.1 0v5.98h-7.1Z"/></svg>') center/contain no-repeat;
}
.login-message-icon::after{
  content:"!";
  position:absolute;
  transform:translate(27px,15px);
  width:35px;
  height:35px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg,#f7c216,#f59e0b);
  color:#fff;
  font-size:1.18rem;
  font-weight:700;
  box-shadow:0 8px 18px rgba(245,158,11,.28);
}
.login-message-icon.login-message-icon-success{
  background:linear-gradient(145deg,#f7fcf9 0%,#ecfdf3 100%)!important;
  border-color:rgba(255,255,255,.96)!important;
  color:#08783a!important;
  box-shadow:0 16px 38px rgba(5,146,66,.10),0 0 0 1px rgba(5,146,66,.08)!important;
}
.login-message-icon.login-message-icon-success::before{
  width:56px;
  height:56px;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.2 16.6 4.95 12.35l1.7-1.7 2.55 2.55 8.15-8.15 1.7 1.7L9.2 16.6Z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.2 16.6 4.95 12.35l1.7-1.7 2.55 2.55 8.15-8.15 1.7 1.7L9.2 16.6Z"/></svg>') center/contain no-repeat;
}
.login-message-icon.login-message-icon-success::after{display:none!important;}
.login-message-icon.login-message-icon-error{
  background:linear-gradient(145deg,#fff7f7 0%,#fff1f2 100%)!important;
  border-color:rgba(255,255,255,.96)!important;
  color:#c00000!important;
  box-shadow:0 16px 38px rgba(192,0,0,.10),0 0 0 1px rgba(192,0,0,.08)!important;
}
.login-message-icon.login-message-icon-error::before{
  width:54px;
  height:54px;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1.15 15h-2.3v-2.3h2.3V17Zm0-4h-2.3V7h2.3v6Z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1.15 15h-2.3v-2.3h2.3V17Zm0-4h-2.3V7h2.3v6Z"/></svg>') center/contain no-repeat;
}
.login-message-icon.login-message-icon-error::after{display:none!important;}
.login-message-kicker{
  margin:.05rem auto .82rem!important;
  color:#05823d!important;
  font-size:.78rem!important;
  font-weight:780!important;
  letter-spacing:.30em!important;
  text-transform:uppercase!important;
}
.login-message-kicker::after{
  content:"";
  display:block;
  width:78px;
  height:2px;
  margin:.62rem auto 0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--ulssm-green,#059242),var(--ulssm-yellow,#e9b903),var(--ulssm-red,#cc0000));
}
.login-message-title{
  margin:0 auto .8rem!important;
  max-width:480px!important;
  color:#111827!important;
  font-size:1.54rem!important;
  font-weight:430!important;
  line-height:1.22!important;
  letter-spacing:-.035em!important;
}
.login-message-title::after{
  content:"";
  display:block;
  width:30px;
  height:4px;
  margin:1.05rem auto 0;
  border-radius:999px;
  background:#059242;
  box-shadow:0 0 0 1px rgba(5,146,66,.08);
}
.login-message-text{
  margin:0 auto 2.15rem!important;
  max-width:430px!important;
  color:#475569!important;
  font-size:1.04rem!important;
  font-weight:370!important;
  line-height:1.62!important;
  letter-spacing:-.012em!important;
}
.login-message-btn{
  position:relative!important;
  z-index:4!important;
  min-width:170px!important;
  height:54px!important;
  border:0!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#12a354,#07823d)!important;
  color:#fff!important;
  font-size:1.07rem!important;
  font-weight:500!important;
  letter-spacing:-.01em!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.75rem!important;
  box-shadow:0 18px 34px rgba(5,146,66,.25)!important;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important;
}
.login-message-btn::before{
  content:"›";
  width:26px;
  height:26px;
  border:2px solid rgba(255,255,255,.86);
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.45rem;
  line-height:.9;
  font-weight:300;
  transform:rotate(0deg);
}
.login-message-btn:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 22px 42px rgba(5,146,66,.30)!important;
  filter:saturate(1.04)!important;
}
@media(max-width:576px){
  .login-message-modal .modal-dialog{max-width:calc(100vw - 28px)!important;margin:0 auto!important;}
  .login-message-body{padding:2.65rem 1.45rem 2rem!important;}
  .login-message-title{font-size:1.32rem!important;}
  .login-message-text{font-size:.98rem!important;line-height:1.52!important;}
  .login-message-icon{width:96px!important;height:96px!important;}
  .login-message-icon::before{width:50px;height:50px;}
  .login-message-btn{width:100%;max-width:230px;height:50px!important;}
}


/* =========================================================
   ULSSMGo — Modal premium aprovado como padrão global
   Aplica-se a login, bloqueios, erros e futuros alertas JS.
   ========================================================= */
.login-message-modal .modal-dialog{
  width:min(560px, calc(100vw - 28px))!important;
  max-width:560px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.login-message-content{
  min-height:420px!important;
  border-radius:24px!important;
}
.login-message-body{
  min-height:420px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}
.login-message-title{
  font-weight:430!important;
  letter-spacing:-.035em!important;
}
.login-message-text{
  font-weight:370!important;
}
.login-message-icon.login-message-icon-warning{
  background:linear-gradient(145deg,#f7fcf9 0%,#eefaf3 100%)!important;
  border-color:rgba(255,255,255,.96)!important;
  color:#08783a!important;
  box-shadow:0 16px 38px rgba(5,146,66,.10),0 0 0 1px rgba(5,146,66,.08),0 0 44px rgba(233,185,3,.08)!important;
}
.login-message-icon.login-message-icon-warning::after{
  display:flex!important;
}
@media(max-width:576px){
  .login-message-content{min-height:390px!important;}
  .login-message-body{min-height:390px!important;}
}

/* =========================================================
   UTD — Compactação final do modal Planeamento Operacional
   Redução dos badges/cartões superiores e altura global
   ========================================================= */
#tpServicoModal .modal-dialog,
#tpServicoModal .modal-dialog{
  max-width:880px!important;
  margin-top:.75rem!important;
  margin-bottom:.75rem!important;
}
#tpServicoModal .modal-content,
#tpServicoModal .modal-content{
  border-radius:18px!important;
}
#tpServicoModal .modal-header,
#tpServicoModal .modal-header{
  padding:1.05rem 1.45rem .9rem!important;
}
#tpServicoModal .vehicle-modal-kicker,
#tpServicoModal .vehicle-modal-kicker{
  font-size:.66rem!important;
  font-weight:650!important;
  letter-spacing:.12em!important;
  margin-bottom:.28rem!important;
}
#tpServicoModal .vehicle-modal-title,
#tpServicoModal .vehicle-modal-title{
  font-size:1.18rem!important;
  font-weight:680!important;
  padding-bottom:.42rem!important;
}
#tpServicoModal .vehicle-modal-title::after,
#tpServicoModal .vehicle-modal-title::after{
  width:112px!important;
  height:2px!important;
}
#tpServicoModal .btn-close,
#tpServicoModal .btn-close{
  width:34px!important;
  height:34px!important;
  box-shadow:none!important;
}
#tpServicoModal .modal-body,
#tpServicoModal .modal-body{
  padding:1rem 1.25rem .75rem!important;
}
#tpServicoModal .vehicle-summary-grid,
#tpServicoModal .vehicle-summary-grid{
  gap:.55rem!important;
  margin-bottom:.65rem!important;
}
#tpServicoModal .vehicle-summary-card,
#tpServicoModal .vehicle-summary-card{
  min-height:50px!important;
  gap:.58rem!important;
  padding:.55rem .7rem!important;
  border-radius:11px!important;
  box-shadow:0 6px 16px rgba(15,23,42,.028)!important;
}
#tpServicoModal .vehicle-summary-icon,
#tpServicoModal .vehicle-summary-icon{
  width:28px!important;
  height:28px!important;
  border-radius:9px!important;
  font-size:.75rem!important;
  font-weight:560!important;
}
#tpServicoModal .vehicle-summary-label,
#tpServicoModal .vehicle-summary-label{
  font-size:.62rem!important;
  font-weight:500!important;
  line-height:1.05!important;
  margin-bottom:.12rem!important;
}
#tpServicoModal .vehicle-summary-value,
#tpServicoModal .vehicle-summary-value{
  font-size:.78rem!important;
  font-weight:540!important;
  line-height:1.12!important;
  letter-spacing:0!important;
}
#tpServicoModal .vehicle-edit-card,
#tpServicoModal .vehicle-edit-card{
  padding:1rem 1.05rem .85rem!important;
  border-radius:16px!important;
  box-shadow:0 8px 22px rgba(15,23,42,.03)!important;
}
#tpServicoModal .vehicle-edit-card::after,
#tpServicoModal .vehicle-edit-card::after{
  height:36px!important;
}
#tpServicoModal .vehicle-edit-title,
#tpServicoModal .vehicle-edit-title{
  font-size:1rem!important;
  font-weight:660!important;
  margin-bottom:.72rem!important;
  padding-bottom:.38rem!important;
}
#tpServicoModal .vehicle-edit-title::after,
#tpServicoModal .vehicle-edit-title::after{
  width:104px!important;
  height:2px!important;
}
#tpServicoModal .vehicle-edit-grid,
#tpServicoModal .vehicle-edit-grid{
  gap:.62rem .75rem!important;
}
#tpServicoModal .vehicle-edit-grid .form-label,
#tpServicoModal .vehicle-edit-grid .form-label{
  font-size:.68rem!important;
  font-weight:560!important;
  margin-bottom:.24rem!important;
}
#tpServicoModal .vehicle-edit-grid .form-control,
#tpServicoModal .vehicle-edit-grid .form-select,
#tpServicoModal .vehicle-edit-grid .form-control,
#tpServicoModal .vehicle-edit-grid .form-select{
  min-height:36px!important;
  border-radius:10px!important;
  font-size:.82rem!important;
  font-weight:400!important;
  padding-top:.38rem!important;
  padding-bottom:.38rem!important;
}
#tpServicoModal .vehicle-edit-grid textarea.form-control,
#tpServicoModal .vehicle-edit-grid textarea.form-control,
#tpServicoModal textarea[name="utd_notas"],
#tpServicoModal textarea[name="utd_notas"]{
  min-height:62px!important;
  padding-top:.55rem!important;
}
#tpServicoModal .vehicle-edit-actions,
#tpServicoModal .vehicle-edit-actions{
  margin-top:.72rem!important;
}
#tpServicoModal .vehicle-edit-actions .btn,
#tpServicoModal .vehicle-edit-actions .btn{
  min-width:168px!important;
  height:40px!important;
  border-radius:11px!important;
  font-size:.82rem!important;
  font-weight:650!important;
  box-shadow:0 10px 20px rgba(5,146,66,.18)!important;
}
#tpServicoModal .modal-footer,
#tpServicoModal .modal-footer{
  padding:.8rem 1.25rem!important;
}
#tpServicoModal .modal-footer .btn,
#tpServicoModal .modal-footer .btn{
  min-height:38px!important;
  border-radius:11px!important;
  font-size:.82rem!important;
  font-weight:560!important;
  padding-left:.9rem!important;
  padding-right:.9rem!important;
}
@media(max-height:760px) and (min-width:901px){
  #tpServicoModal .modal-dialog,#tpServicoModal .modal-dialog{max-width:840px!important;margin-top:.35rem!important;margin-bottom:.35rem!important;}
  #tpServicoModal .modal-header,#tpServicoModal .modal-header{padding:.85rem 1.25rem .75rem!important;}
  #tpServicoModal .modal-body,#tpServicoModal .modal-body{padding:.75rem 1.05rem .55rem!important;}
  #tpServicoModal .vehicle-summary-card,#tpServicoModal .vehicle-summary-card{min-height:46px!important;padding:.45rem .62rem!important;}
  #tpServicoModal .vehicle-edit-card,#tpServicoModal .vehicle-edit-card{padding:.85rem .9rem .7rem!important;}
  #tpServicoModal .modal-footer,#tpServicoModal .modal-footer{padding:.65rem 1.05rem!important;}
}

/* =========================================================
   UTD — Ajuste final aprovado: modal mais largo, viatura legível,
   botões alinhados e data com datepicker visível
   ========================================================= */
#tpServicoModal .modal-dialog,
#tpServicoModal .modal-dialog{
  max-width:1120px!important;
}
#tpServicoModal .modal-header,
#tpServicoModal .modal-header{
  padding:1rem 1.55rem .85rem!important;
}
#tpServicoModal .modal-body,
#tpServicoModal .modal-body{
  padding:1rem 1.35rem .7rem!important;
}
#tpServicoModal .vehicle-summary-grid,
#tpServicoModal .vehicle-summary-grid{
  gap:.7rem!important;
  margin-bottom:.8rem!important;
}
#tpServicoModal .vehicle-summary-card,
#tpServicoModal .vehicle-summary-card{
  min-height:50px!important;
  padding:.55rem .75rem!important;
  gap:.62rem!important;
  border-radius:13px!important;
}
#tpServicoModal .vehicle-summary-icon,
#tpServicoModal .vehicle-summary-icon{
  width:30px!important;
  height:30px!important;
  border-radius:10px!important;
  font-size:.74rem!important;
  font-weight:520!important;
}
#tpServicoModal .vehicle-summary-label,
#tpServicoModal .vehicle-summary-label{
  font-size:.62rem!important;
  font-weight:500!important;
  margin-bottom:.08rem!important;
  line-height:1.05!important;
}
#tpServicoModal .vehicle-summary-value,
#tpServicoModal .vehicle-summary-value{
  font-size:.82rem!important;
  font-weight:540!important;
  line-height:1.14!important;
}
#tpServicoModal .vehicle-edit-card,
#tpServicoModal .vehicle-edit-card{
  padding:1rem 1.15rem .9rem!important;
  border-radius:16px!important;
}
#tpServicoModal .vehicle-edit-title,
#tpServicoModal .vehicle-edit-title{
  font-size:1.02rem!important;
  font-weight:650!important;
  margin-bottom:.75rem!important;
  padding-bottom:.38rem!important;
}
#tpServicoModal .vehicle-edit-grid,
#tpServicoModal .vehicle-edit-grid{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:.7rem .85rem!important;
}
#tpServicoModal .utd-field-full,
#tpServicoModal .utd-field-full{
  grid-column:1 / -1!important;
}
#tpServicoModal .utd-vehicle-field,
#tpServicoModal .utd-vehicle-field{
  grid-column:span 6!important;
}
#tpServicoModal .utd-driver-field,
#tpServicoModal .utd-driver-field{
  grid-column:span 6!important;
}
#tpServicoModal .vehicle-edit-grid .form-label,
#tpServicoModal .vehicle-edit-grid .form-label,
#tpServicoModal .utd-eta-sub-label,
#tpServicoModal .utd-eta-sub-label{
  font-size:.68rem!important;
  font-weight:560!important;
  margin-bottom:.25rem!important;
  color:#526070!important;
}
#tpServicoModal .vehicle-edit-grid .form-control,
#tpServicoModal .vehicle-edit-grid .form-select,
#tpServicoModal .vehicle-edit-grid .form-control,
#tpServicoModal .vehicle-edit-grid .form-select{
  min-height:40px!important;
  border-radius:11px!important;
  font-size:.86rem!important;
  font-weight:400!important;
  padding-top:.42rem!important;
  padding-bottom:.42rem!important;
}
#tpServicoModal .utd-vehicle-field .form-select,
#tpServicoModal .utd-vehicle-field .form-select,
#tpServicoModal .utd-driver-field .form-select,
#tpServicoModal .utd-driver-field .form-select{
  width:100%!important;
}
#tpServicoModal .utd-eta-grid,
#tpServicoModal .utd-eta-grid{
  display:grid!important;
  grid-template-columns:minmax(360px,1fr) 120px 120px!important;
  gap:.85rem!important;
  align-items:end!important;
}
#tpServicoModal .utd-datepicker-wrap,
#tpServicoModal .utd-datepicker-wrap{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
}
#tpServicoModal .utd-datepicker-icon,
#tpServicoModal .utd-datepicker-icon{
  position:absolute!important;
  left:.75rem!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  z-index:2!important;
  width:18px!important;
  height:18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#667085!important;
  font-size:.72rem!important;
  pointer-events:none!important;
}
#tpServicoModal .utd-date-input,
#tpServicoModal .utd-date-input{
  padding-left:2.25rem!important;
  padding-right:2.25rem!important;
}
#tpServicoModal .utd-date-input::-webkit-calendar-picker-indicator,
#tpServicoModal .utd-date-input::-webkit-calendar-picker-indicator{
  display:block!important;
  opacity:.75!important;
  cursor:pointer!important;
}
#tpServicoModal .vehicle-edit-grid textarea.form-control,
#tpServicoModal .vehicle-edit-grid textarea.form-control,
#tpServicoModal textarea[name="utd_notas"],
#tpServicoModal textarea[name="utd_notas"]{
  min-height:74px!important;
}
#tpServicoModal .vehicle-edit-actions,
#tpServicoModal .vehicle-edit-actions{
  display:none!important;
}
#tpServicoModal .utd-planning-footer,
#tpServicoModal .utd-planning-footer{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:1rem!important;
  padding:.85rem 1.35rem 1rem!important;
  background:rgba(255,255,255,.95)!important;
}
#tpServicoModal .utd-footer-actions,
#tpServicoModal .utd-footer-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:.75rem!important;
}
#tpServicoModal .utd-btn-consultar,
#tpServicoModal .utd-btn-consultar,
#tpServicoModal .utd-btn-cancelar,
#tpServicoModal .utd-btn-cancelar,
#tpServicoModal .utd-btn-guardar,
#tpServicoModal .utd-btn-guardar{
  min-height:42px!important;
  border-radius:12px!important;
  font-size:.84rem!important;
  font-weight:620!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.45rem!important;
  padding:.55rem 1.05rem!important;
}
#tpServicoModal .utd-btn-guardar,
#tpServicoModal .utd-btn-guardar{
  min-width:180px!important;
  box-shadow:0 12px 24px rgba(5,146,66,.20)!important;
}
#tpServicoModal .utd-btn-consultar,
#tpServicoModal .utd-btn-consultar{
  min-width:150px!important;
}
@media(max-width:900px){
  #tpServicoModal .modal-dialog,#tpServicoModal .modal-dialog{max-width:calc(100vw - 18px)!important;}
  #tpServicoModal .vehicle-summary-grid,#tpServicoModal .vehicle-summary-grid{grid-template-columns:1fr!important;}
  #tpServicoModal .vehicle-field-wide,#tpServicoModal .vehicle-field-wide,#tpServicoModal .utd-data-card,#tpServicoModal .utd-data-card{grid-column:auto!important;}
  #tpServicoModal .vehicle-edit-grid,#tpServicoModal .vehicle-edit-grid{grid-template-columns:1fr!important;}
  #tpServicoModal .utd-field-full,#tpServicoModal .utd-field-full,#tpServicoModal .utd-vehicle-field,#tpServicoModal .utd-vehicle-field,#tpServicoModal .utd-driver-field,#tpServicoModal .utd-driver-field{grid-column:auto!important;}
  #tpServicoModal .utd-eta-grid,#tpServicoModal .utd-eta-grid{grid-template-columns:1fr!important;}
  #tpServicoModal .utd-planning-footer,#tpServicoModal .utd-planning-footer{flex-direction:column!important;align-items:stretch!important;}
  #tpServicoModal .utd-footer-actions,#tpServicoModal .utd-footer-actions{width:100%!important;}
  #tpServicoModal .utd-planning-footer .btn,#tpServicoModal .utd-planning-footer .btn{width:100%!important;}
}




/* V27.x — Dados do Pedido em duas linhas e Score mais compacto */
.tnu-detail-main-card .tnu-score-highlight{
  min-height:100%;
  padding:.8rem .55rem;
}
@media (min-width:768px){
  .tnu-detail-main-card .col-md-2 > .tnu-score-highlight{
    min-width:0;
  }
}

/* =========================================================
   ULSSMGo — Vista de impressão premium do detalhe TDNU
   Mantém as mesmas regras de visibilidade/perfil da aplicação.
   ========================================================= */
@media print{
  @page{size:A4 portrait;margin:11mm 10mm 14mm}
  html,body{background:#fff!important;color:#111827!important;font-family:"Segoe UI",Arial,sans-serif!important;font-size:9pt!important;line-height:1.25!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body>*:not(main){display:none!important}
  main{padding:0!important;margin:0!important}
  .container.tnu-detail-premium{max-width:none!important;width:100%!important;padding:0!important;margin:0!important}
  .tnu-detail-header{display:none!important}
  .print-header{display:block!important;margin:0 0 5mm!important;padding:0 0 3mm!important;border-bottom:2px solid #059242!important;text-align:center!important}
  .print-header-center img{height:42px!important;max-height:42px!important;width:auto!important}
  .print-doc-title{margin-top:1.5mm;font-size:13pt!important;font-weight:700!important;color:#096f35!important}
  .print-doc-meta{display:flex!important;justify-content:center!important;gap:8mm!important;margin-top:1.5mm!important;font-size:8.4pt!important;color:#344054!important}
  .print-doc-meta strong{color:#101828!important}

  .tnu-print-section{display:block!important;margin:0 0 3mm!important;padding:3mm!important;border:1px solid #d0d5dd!important;border-radius:3mm!important;box-shadow:none!important;background:#fff!important;break-inside:avoid-page!important;page-break-inside:avoid!important}
  .tnu-print-page-break-before{break-before:page!important;page-break-before:always!important}
  .tnu-detail-section-title{display:block!important;margin:0 0 2.2mm!important;padding:0 0 1.4mm!important;font-size:10.2pt!important;font-weight:700!important;color:#096f35!important;border-bottom:1.5px solid #e9b903!important;background:none!important;line-height:1.15!important}
  .tnu-card-title-print{display:block!important}

  .row{display:flex!important;flex-wrap:wrap!important;margin:-1mm!important}
  .row>*{padding:1mm!important;min-width:0!important}
  .col-md-1{width:8.333333%!important}.col-md-2{width:16.666667%!important}.col-md-3{width:25%!important}.col-md-4{width:33.333333%!important}.col-md-5{width:41.666667%!important}.col-md-6{width:50%!important}.col-md-10{width:83.333333%!important}.col-md-12,.col-12{width:100%!important}
  .tnu-print-section-1 .col-md-10{width:84%!important}.tnu-print-section-1>.row>.col-md-2{width:16%!important}

  .tnu-info-item,.tnu-exec-group,.tnu-exec-kpi,.tnu-exec-notes>div{height:100%!important;min-height:0!important;padding:2mm 2.2mm!important;border:1px solid #e4e7ec!important;border-radius:2mm!important;background:#fafcfb!important;box-shadow:none!important;overflow:visible!important}
  .tnu-info-item-accent{background:#f3faf6!important;border-color:#cfe5d7!important}
  .tnu-detail-label{margin:0 0 .7mm!important;font-size:7.2pt!important;font-weight:700!important;line-height:1.1!important;color:#667085!important;text-transform:none!important;letter-spacing:0!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important}
  .tnu-info-value,.tnu-info-item>div:not(.tnu-detail-label),.tnu-print-section-1 .row>div>div:last-child{font-size:8.5pt!important;font-weight:600!important;line-height:1.22!important;color:#101828!important;word-break:normal!important;overflow-wrap:break-word!important;hyphens:none!important}
  .text-nowrap{white-space:nowrap!important}

  .tnu-score-highlight{height:100%!important;min-height:27mm!important;padding:2mm!important;border:1px solid #b7dfc6!important;border-radius:2.5mm!important;background:#f3faf6!important;box-shadow:none!important}
  .tnu-score-label{font-size:7.2pt!important}.tnu-score-value{font-size:25pt!important;margin:.6mm 0!important}.tnu-score-scale{font-size:6.8pt!important}

  .tnu-print-section-3 .col-md-1{width:10%!important}.tnu-print-section-3 .col-md-2:first-child{width:18%!important}.tnu-print-section-3 .col-md-4{width:32%!important}.tnu-print-section-3 .col-md-2{width:18%!important}.tnu-print-section-3 .col-md-3{width:22%!important}
  .tnu-print-section-4 .tnu-detail-label{white-space:normal!important}
  .tnu-print-section-4 .row>*{min-width:16.666%!important}

  .tnu-exec-summary{display:block!important}
  .tnu-exec-group{margin:0 0 2mm!important}
  .tnu-exec-group-title{margin:0 0 1.2mm!important;font-size:8pt!important;font-weight:700!important;color:#096f35!important}
  .tnu-exec-steps{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:1.2mm!important;margin:0!important}
  .tnu-exec-step{display:block!important;min-width:0!important;padding:1.7mm!important;border:1px solid #e4e7ec!important;border-radius:2mm!important;background:#fbfcfd!important}
  .tnu-exec-dot{display:none!important}.tnu-exec-step strong{font-size:7.8pt!important;white-space:nowrap!important}
  .tnu-exec-kpis{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:1.2mm!important;margin:2mm 0 0!important}
  .tnu-exec-kpi{min-height:14mm!important}.tnu-exec-kpi span{display:block!important;font-size:7pt!important;color:#667085!important}.tnu-exec-kpi strong{display:block!important;margin-top:.6mm!important;font-size:8pt!important;color:#101828!important}
  .tnu-exec-notes{display:grid!important;grid-template-columns:1fr 1fr!important;gap:1.2mm!important;margin-top:2mm!important}

  .tnu-print-section-8{break-inside:auto!important;page-break-inside:auto!important}
  .tnu-timeline{margin:0!important;padding:0!important}
  .tnu-timeline-item{display:grid!important;grid-template-columns:24mm 1fr!important;gap:2mm!important;padding:1.3mm 0!important;border-bottom:1px solid #eaecf0!important;break-inside:avoid!important}
  .tnu-timeline-marker{display:none!important}.tnu-timeline-content{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
  .tnu-timeline-head{display:contents!important}.tnu-timeline-head time{grid-column:1!important;grid-row:1!important;font-size:7.3pt!important;color:#667085!important;white-space:nowrap!important}.tnu-timeline-head strong{grid-column:2!important;grid-row:1!important;font-size:8pt!important;color:#101828!important}
  .tnu-timeline-detail,.tnu-timeline-user{grid-column:2!important;font-size:7.3pt!important;line-height:1.2!important;color:#475467!important}

  .alert{padding:2mm!important;margin:1.5mm 0 0!important;border-radius:2mm!important;font-size:7.8pt!important}
  .print-footer{display:block!important;position:fixed!important;left:10mm!important;right:10mm!important;bottom:5mm!important;padding-top:1.5mm!important;border-top:1px solid #d0d5dd!important;font-size:7pt!important;color:#667085!important}
  .print-footer .left{float:left!important}.print-footer .right{float:right!important}.page-number::before{content:counter(page)!important}

  a[href]:after{content:none!important}
  .no-print,.modal,.text-end.mt-3,.to-top,footer,nav{display:none!important}
}


/* V28 — Impressão compacta, sem Histórico Operacional nem duplicações */
@media print{
  /* O histórico continua disponível na App, mas não é impresso. */
  .tnu-print-section-8{display:none!important;}

  /* Recursos já constam na secção 6 (UTD); na impressão evitamos repeti-los. */
  .tnu-print-section-7 .tnu-exec-resources{display:none!important;}

  /* O cabeçalho premium é o único cabeçalho do documento. */
  .tnu-detail-header{display:none!important;height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;}

  /* Não forçar a secção 5 para uma nova página. */
  .tnu-print-page-break-before{break-before:auto!important;page-break-before:auto!important;}

  /* Permitir composição contínua da página; evitar apenas partir cada cartão interno. */
  .tnu-print-section{break-inside:auto!important;page-break-inside:auto!important;margin-bottom:2mm!important;padding:2.4mm!important;}
  .tnu-info-item,
  .tnu-exec-group,
  .tnu-exec-kpi,
  .tnu-exec-step,
  .tnu-exec-notes>div{break-inside:avoid!important;page-break-inside:avoid!important;}

  /* Compactação controlada para aproveitar melhor o A4 sem perder legibilidade. */
  .tnu-detail-section-title{margin-bottom:1.5mm!important;padding-bottom:1mm!important;}
  .row{margin:-.65mm!important;}
  .row>*{padding:.65mm!important;}
  .tnu-info-item{padding:1.55mm 1.8mm!important;}
  .tnu-score-highlight{min-height:22mm!important;}
  .tnu-exec-group{padding:1.7mm!important;margin-bottom:1.4mm!important;}
  .tnu-exec-kpis{margin-top:1.4mm!important;gap:1mm!important;}
  .tnu-exec-kpi{min-height:11mm!important;padding:1.5mm 1.7mm!important;}
  .tnu-exec-steps{gap:1mm!important;}
  .tnu-exec-step{padding:1.35mm!important;}
  .tnu-exec-notes{margin-top:1.4mm!important;}
}

/* ===== Gestão de Viaturas: modal alinhado com Planeamento UTD/Transportadora ===== */
.vehicle-modal-overlay .vehicle-modal{
  position:relative;
  width:min(900px,calc(100vw - 38px));
  border-radius:18px;
  overflow:auto;
  border:1px solid #dfe7ef;
  font-family:inherit;
}
.vehicle-modal-overlay .vehicle-modal::before{
  content:"";
  position:absolute;left:0;right:0;top:0;height:4px;z-index:8;
  background:linear-gradient(90deg,#079447 0%,#e6bd00 52%,#c90018 100%);
}
.vehicle-modal-overlay .vehicle-modal-header{
  padding:1.25rem 1.45rem 1rem;
  align-items:center;
  background:linear-gradient(105deg,#fff 0%,#fff 70%,#fff8df 100%);
}
.vehicle-modal-overlay .vehicle-modal-kicker{
  font-size:.70rem;font-weight:800;letter-spacing:.12em;margin-bottom:.28rem;
}
.vehicle-modal-overlay .vehicle-modal-title{
  position:relative;display:inline-block;font-size:1.22rem;font-weight:750;padding-bottom:.58rem;
}
.vehicle-modal-overlay .vehicle-modal-title::after{
  content:"";position:absolute;left:0;bottom:0;width:110px;height:2px;
  background:linear-gradient(90deg,#079447 0%,#e6bd00 55%,#c90018 100%);
}
.vehicle-modal-overlay .vehicle-modal-body{padding:1rem 1.25rem 0;}
.vehicle-modal-overlay .vehicle-summary-grid{gap:.7rem;margin-bottom:1rem;}
.vehicle-modal-overlay .vehicle-summary-card{
  min-height:74px;padding:.78rem .85rem;border-radius:13px;background:#fbfcfe;
}
.vehicle-modal-overlay .vehicle-summary-label{font-size:.70rem;color:#667085;}
.vehicle-modal-overlay .vehicle-summary-value{font-size:.87rem;font-weight:700;}
.vehicle-modal-overlay .vehicle-edit-card{
  padding:1rem 1.05rem 1.1rem;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#fbfffc 100%);
  box-shadow:none;margin-bottom:1rem;
}
.vehicle-modal-overlay .vehicle-edit-title{
  position:relative;display:inline-block;font-size:1rem;font-weight:750;padding-bottom:.55rem;margin-bottom:1rem;
}
.vehicle-modal-overlay .vehicle-edit-title::after{
  content:"";position:absolute;left:0;bottom:0;width:118px;height:2px;
  background:linear-gradient(90deg,#079447 0%,#e6bd00 55%,#c90018 100%);
}
.vehicle-modal-overlay .vehicle-edit-grid{grid-template-columns:1fr 2fr 1fr;gap:.8rem .9rem;}
.vehicle-modal-overlay .vehicle-edit-grid .form-control,
.vehicle-modal-overlay .vehicle-edit-grid .form-select{min-height:42px;border-radius:10px;}
.vehicle-modal-overlay .vehicle-modal-footer{
  position:sticky;bottom:0;z-index:4;margin:0 -1.25rem;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1rem 1.25rem;background:#fff;border-top:1px solid #e6edf3;
}
.vehicle-modal-overlay .vehicle-footer-left,
.vehicle-modal-overlay .vehicle-footer-right{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;}
.vehicle-modal-overlay .vehicle-modal-footer .btn{
  min-height:38px;border-radius:10px;padding:.52rem .95rem;font-size:.84rem;font-weight:650;
  display:inline-flex;align-items:center;justify-content:center;gap:.42rem;box-shadow:none!important;
}
.vehicle-modal-overlay .vehicle-modal-footer .btn-success{
  background:#118e55;border-color:#118e55;min-width:165px;
}
.vehicle-modal-overlay .vehicle-modal-footer .btn-outline-success{color:#078845;border-color:#10a258;}
@media(max-width:900px){
  .vehicle-modal-overlay .vehicle-edit-grid{grid-template-columns:1fr;}
  .vehicle-modal-overlay .vehicle-field-wide{grid-column:auto;}
  .vehicle-modal-overlay .vehicle-modal-footer{align-items:stretch;flex-direction:column;}
  .vehicle-modal-overlay .vehicle-footer-left,.vehicle-modal-overlay .vehicle-footer-right{width:100%;}
  .vehicle-modal-overlay .vehicle-footer-right{justify-content:flex-end;}
}
@media(max-width:600px){
  .vehicle-modal-overlay{padding:8px;}
  .vehicle-modal-overlay .vehicle-modal{width:calc(100vw - 16px);max-height:calc(100vh - 16px);}
  .vehicle-modal-overlay .vehicle-summary-grid{grid-template-columns:1fr;}
  .vehicle-modal-overlay .vehicle-footer-left .btn,
  .vehicle-modal-overlay .vehicle-footer-right .btn,
  .vehicle-modal-overlay .vehicle-footer-right form{width:100%;}
}

/* ===== Gestão de Viaturas — alinhamento final com o modal de Planeamento ===== */
.vehicle-modal-overlay .vehicle-modal{
  width:min(900px,calc(100vw - 38px))!important;
  max-height:calc(100vh - 30px)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 28px 80px rgba(15,23,42,.32)!important;
}
.vehicle-modal-overlay .vehicle-modal-header{
  padding:1rem 1.25rem .82rem!important;
  min-height:88px!important;
  align-items:flex-start!important;
  background:linear-gradient(105deg,#fff 0%,#fff 72%,#fff9e8 100%)!important;
}
.vehicle-modal-overlay .vehicle-modal-kicker{
  font-size:.68rem!important;
  font-weight:800!important;
  letter-spacing:.11em!important;
  line-height:1!important;
  margin-bottom:.34rem!important;
}
.vehicle-modal-overlay .vehicle-modal-title{
  font-size:1.12rem!important;
  font-weight:700!important;
  line-height:1.15!important;
  padding-bottom:.48rem!important;
}
.vehicle-modal-overlay .vehicle-modal-title::after{width:108px!important;height:2px!important;}
.vehicle-modal-overlay .vehicle-close{width:32px!important;height:32px!important;font-size:1.35rem!important;margin-top:.05rem!important;}
.vehicle-modal-overlay .vehicle-modal-body{padding:1rem 1.25rem 0!important;}
.vehicle-modal-overlay .vehicle-summary-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:.65rem!important;
  margin-bottom:.85rem!important;
}
.vehicle-modal-overlay .vehicle-summary-card{
  min-height:64px!important;
  padding:.65rem .75rem!important;
  border-radius:12px!important;
  gap:.62rem!important;
  background:#fbfcfe!important;
  box-shadow:none!important;
}
.vehicle-modal-overlay .vehicle-summary-icon{width:30px!important;height:30px!important;border-radius:9px!important;}
.vehicle-modal-overlay .vehicle-summary-icon svg{width:16px!important;height:16px!important;}
.vehicle-modal-overlay .vehicle-summary-label{font-size:.65rem!important;font-weight:500!important;line-height:1.05!important;margin-bottom:.12rem!important;}
.vehicle-modal-overlay .vehicle-summary-value{font-size:.82rem!important;font-weight:600!important;line-height:1.15!important;}
.vehicle-modal-overlay .vehicle-edit-card{
  margin:0!important;
  padding:1rem 1rem .9rem!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#fff 0%,#fbfffc 100%)!important;
  box-shadow:none!important;
}
.vehicle-modal-overlay .vehicle-edit-title{font-size:1rem!important;font-weight:650!important;margin-bottom:.8rem!important;padding-bottom:.42rem!important;}
.vehicle-modal-overlay .vehicle-edit-title::after{width:106px!important;height:2px!important;}
.vehicle-modal-overlay .vehicle-edit-grid{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:.72rem .85rem!important;
}
.vehicle-modal-overlay .vehicle-edit-grid > div:nth-child(1){grid-column:span 4!important;}
.vehicle-modal-overlay .vehicle-edit-grid > div:nth-child(2){grid-column:span 8!important;}
.vehicle-modal-overlay .vehicle-edit-grid > div:nth-child(3),
.vehicle-modal-overlay .vehicle-edit-grid > div:nth-child(4),
.vehicle-modal-overlay .vehicle-edit-grid > div:nth-child(5){grid-column:span 4!important;}
.vehicle-modal-overlay .vehicle-edit-grid .form-label{font-size:.68rem!important;font-weight:520!important;color:#667085!important;margin-bottom:.25rem!important;}
.vehicle-modal-overlay .vehicle-edit-grid .form-control,
.vehicle-modal-overlay .vehicle-edit-grid .form-select{min-height:40px!important;border-radius:10px!important;font-size:.82rem!important;padding:.4rem .72rem!important;}
.vehicle-modal-overlay .vehicle-modal-footer{
  position:sticky!important;
  bottom:0!important;
  margin:1rem -1.25rem 0!important;
  padding:.85rem 1.25rem!important;
  min-height:74px!important;
  background:#fff!important;
  border-top:1px solid #e5ebf1!important;
  box-shadow:0 -8px 20px rgba(15,23,42,.025)!important;
}
.vehicle-modal-overlay .vehicle-footer-right{margin-left:auto!important;justify-content:flex-end!important;}
.vehicle-modal-overlay .vehicle-modal-footer .btn{
  min-height:38px!important;
  border-radius:10px!important;
  padding:.5rem .9rem!important;
  font-size:.80rem!important;
  font-weight:600!important;
}
.vehicle-modal-overlay .vehicle-modal-footer .btn-success{min-width:162px!important;background:#168d57!important;border-color:#168d57!important;}
@media(max-width:900px){
 .vehicle-modal-overlay .vehicle-summary-grid{grid-template-columns:1fr!important;}
 .vehicle-modal-overlay .vehicle-edit-grid{grid-template-columns:1fr!important;}
 .vehicle-modal-overlay .vehicle-edit-grid > div{grid-column:1 / -1!important;}
 .vehicle-modal-overlay .vehicle-modal-footer{position:static!important;flex-direction:column!important;align-items:stretch!important;}
 .vehicle-modal-overlay .vehicle-footer-left,.vehicle-modal-overlay .vehicle-footer-right{width:100%!important;}
}

/* ===== Modal Gestão de Motoristas — alinhado com o padrão premium de Planeamento/Viaturas ===== */
.vehicle-modal-overlay .motorista-management-modal{
  width:min(900px,calc(100vw - 42px))!important;
  max-height:calc(100vh - 24px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-modal-header{
  flex:0 0 auto!important;
  padding:1rem 1.25rem .9rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-modal-body{
  flex:1 1 auto!important;
  overflow:auto!important;
  padding:1rem 1.25rem 1.1rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-summary-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:.72rem!important;
  margin-bottom:1rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-summary-card{
  min-height:74px!important;
  padding:.72rem .82rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-edit-card{
  margin:0 0 .9rem!important;
  padding:1rem 1.05rem!important;
  border-radius:15px!important;
  box-shadow:none!important;
  background:linear-gradient(180deg,#fff 0%,#fbfefd 100%)!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:.78rem .9rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid>div:nth-child(1){grid-column:span 8!important;}
.vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid>div:nth-child(2){grid-column:span 4!important;}
.vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid>div:nth-child(3){grid-column:span 4!important;}
.vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid>div:nth-child(4){grid-column:span 4!important;}
.vehicle-modal-overlay .motorista-management-modal .motorista-password-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:.8rem .9rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-password-actions{
  display:flex!important;
  justify-content:flex-end!important;
  margin-top:.85rem!important;
  padding-top:.8rem!important;
  border-top:1px solid #e7edf3!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-password-actions .btn{
  min-height:40px!important;
  border-radius:10px!important;
  font-size:.82rem!important;
  font-weight:700!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.42rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer{
  flex:0 0 auto!important;
  position:sticky!important;
  bottom:0!important;
  z-index:4!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:1rem!important;
  padding:.9rem 1.25rem!important;
  background:#fff!important;
  border-top:1px solid #e7edf3!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .vehicle-footer-left,
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .vehicle-footer-right{
  display:flex!important;
  align-items:center!important;
  gap:.65rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .vehicle-footer-right{margin-left:auto!important;}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .btn{
  min-height:40px!important;
  border-radius:10px!important;
  padding:.55rem 1rem!important;
  font-size:.82rem!important;
  font-weight:700!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.42rem!important;
  white-space:nowrap!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .btn-success{
  min-width:168px!important;
  background:#168d57!important;
  border-color:#168d57!important;
}
@media(max-width:760px){
  .vehicle-modal-overlay .motorista-management-modal{width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-summary-grid{grid-template-columns:1fr!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid,
  .vehicle-modal-overlay .motorista-management-modal .motorista-password-grid{grid-template-columns:1fr!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid>div{grid-column:1 / -1!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer{position:static!important;flex-direction:column!important;align-items:stretch!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .vehicle-footer-left,
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .vehicle-footer-right{width:100%!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .vehicle-footer-right{margin-left:0!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .btn,
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer form{width:100%!important;}
}

/* ===== Afinação final — ações do modal de Motoristas ===== */
.vehicle-modal-overlay .motorista-management-modal .vehicle-modal-body{
  padding-left:1.5rem!important;
  padding-right:1.5rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-edit-card{
  padding-left:1.2rem!important;
  padding-right:1.2rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-password-actions{
  padding-right:.15rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer{
  padding-left:1.5rem!important;
  padding-right:1.5rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .btn-outline-warning{
  color:#7a5200!important;
  border-color:#d99a00!important;
  background:#fff8df!important;
}
.vehicle-modal-overlay .motorista-management-modal .btn-outline-warning:hover,
.vehicle-modal-overlay .motorista-management-modal .btn-outline-warning:focus,
.vehicle-modal-overlay .motorista-management-modal .btn-outline-warning:active{
  color:#5f3f00!important;
  border-color:#c88900!important;
  background:#ffefb8!important;
  box-shadow:0 0 0 .18rem rgba(217,154,0,.15)!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-password-actions .btn{
  padding-left:1.05rem!important;
  padding-right:1.05rem!important;
}
@media(max-width:760px){
  .vehicle-modal-overlay .motorista-management-modal .vehicle-modal-body{
    padding-left:.9rem!important;
    padding-right:.9rem!important;
  }
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer{
    padding-left:.9rem!important;
    padding-right:.9rem!important;
  }
}

/* ===== Gestão de Motoristas — conformidade exata com Gestão de Viaturas ===== */
.vehicle-modal-overlay .motorista-management-modal{
  width:min(900px,calc(100vw - 38px))!important;
  max-height:calc(100vh - 30px)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 28px 80px rgba(15,23,42,.32)!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-modal-header{
  padding:1rem 1.25rem .82rem!important;
  min-height:88px!important;
  align-items:flex-start!important;
  background:linear-gradient(105deg,#fff 0%,#fff 72%,#fff9e8 100%)!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-modal-kicker{
  font-size:.68rem!important;
  font-weight:800!important;
  letter-spacing:.11em!important;
  line-height:1!important;
  margin-bottom:.34rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-modal-title{
  font-size:1.12rem!important;
  font-weight:700!important;
  line-height:1.15!important;
  padding-bottom:.48rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-modal-title::after{width:108px!important;height:2px!important;}
.vehicle-modal-overlay .motorista-management-modal .vehicle-close{width:32px!important;height:32px!important;font-size:1.35rem!important;margin-top:.05rem!important;}
.vehicle-modal-overlay .motorista-management-modal .vehicle-modal-body{
  padding:1rem 1.25rem 0!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-summary-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:.65rem!important;
  margin-bottom:.85rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-summary-card{
  min-height:64px!important;
  padding:.65rem .75rem!important;
  border-radius:12px!important;
  gap:.62rem!important;
  background:#fbfcfe!important;
  box-shadow:none!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-summary-icon{width:30px!important;height:30px!important;border-radius:9px!important;}
.vehicle-modal-overlay .motorista-management-modal .vehicle-summary-icon svg{width:16px!important;height:16px!important;}
.vehicle-modal-overlay .motorista-management-modal .vehicle-summary-label{font-size:.65rem!important;font-weight:500!important;line-height:1.05!important;margin-bottom:.12rem!important;}
.vehicle-modal-overlay .motorista-management-modal .vehicle-summary-value{font-size:.82rem!important;font-weight:600!important;line-height:1.15!important;}
.vehicle-modal-overlay .motorista-management-modal .vehicle-edit-card{
  margin:0 0 .85rem!important;
  padding:1rem 1rem .9rem!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#fff 0%,#fbfffc 100%)!important;
  box-shadow:none!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-edit-title{
  font-size:1rem!important;
  font-weight:650!important;
  margin-bottom:.8rem!important;
  padding-bottom:.42rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .vehicle-edit-title::after{width:106px!important;height:2px!important;}
.vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid,
.vehicle-modal-overlay .motorista-management-modal .motorista-password-grid{
  gap:.72rem .85rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid .form-label,
.vehicle-modal-overlay .motorista-management-modal .motorista-password-grid .form-label{
  font-size:.68rem!important;
  font-weight:520!important;
  color:#667085!important;
  margin-bottom:.25rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid .form-control,
.vehicle-modal-overlay .motorista-management-modal .motorista-password-grid .form-control{
  min-height:40px!important;
  border-radius:10px!important;
  font-size:.82rem!important;
  padding:.4rem .72rem!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-password-actions{
  margin-top:.75rem!important;
  padding-top:.75rem!important;
  padding-right:0!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-password-actions .btn{
  min-height:38px!important;
  border-radius:10px!important;
  padding:.5rem .9rem!important;
  font-size:.80rem!important;
  font-weight:600!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer{
  position:sticky!important;
  bottom:0!important;
  margin:0!important;
  padding:.85rem 1.25rem!important;
  min-height:74px!important;
  background:#fff!important;
  border-top:1px solid #e5ebf1!important;
  box-shadow:0 -8px 20px rgba(15,23,42,.025)!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .btn{
  min-height:38px!important;
  border-radius:10px!important;
  padding:.5rem .9rem!important;
  font-size:.80rem!important;
  font-weight:600!important;
}
.vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .btn-success{
  min-width:162px!important;
  background:#168d57!important;
  border-color:#168d57!important;
}
/* Exatamente o mesmo amarelo e contraste usado no modal de viaturas */
.vehicle-modal-overlay .motorista-management-modal .btn-outline-warning{
  color:#a66a00!important;
  border-color:#ffb000!important;
  background:#fff!important;
}
.vehicle-modal-overlay .motorista-management-modal .btn-outline-warning:hover,
.vehicle-modal-overlay .motorista-management-modal .btn-outline-warning:focus,
.vehicle-modal-overlay .motorista-management-modal .btn-outline-warning:active{
  color:#7d5000!important;
  border-color:#e99b00!important;
  background:#fff8df!important;
  box-shadow:0 0 0 .18rem rgba(255,176,0,.14)!important;
}
@media(max-width:900px){
  .vehicle-modal-overlay .motorista-management-modal .motorista-summary-grid{grid-template-columns:1fr!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid,
  .vehicle-modal-overlay .motorista-management-modal .motorista-password-grid{grid-template-columns:1fr!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-edit-grid>div{grid-column:1 / -1!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer{position:static!important;flex-direction:column!important;align-items:stretch!important;}
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .vehicle-footer-left,
  .vehicle-modal-overlay .motorista-management-modal .motorista-modal-footer .vehicle-footer-right{width:100%!important;}
}

/* Login ULSSMGo — centrar texto introduzido em Utilizador e Palavra-passe */
.login-card input[type="text"],
.login-card input[type="password"],
.login-form input[type="text"],
.login-form input[type="password"],
input[name="username"],
input[name="password"] {
    text-align: center !important;
}


/* ULSSMGo — paleta única de estados (desktop + mobile) */
.ext-status-badge,
.tp-state.ext-status-badge,
.badge.ext-status-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:92px!important;
  padding:.28rem .68rem!important;
  border-radius:999px!important;
  border:1px solid transparent!important;
  font-size:.72rem!important;
  line-height:1.1!important;
  font-weight:700!important;
  white-space:nowrap!important;
  text-align:center!important;
  box-shadow:none!important;
}
.ext-status-planning{background:#18bfe0!important;color:#063b49!important;border-color:#18bfe0!important}
.ext-status-course{background:#1677f0!important;color:#fff!important;border-color:#1677f0!important}
.ext-status-execution{background:#138a5b!important;color:#fff!important;border-color:#138a5b!important}
.ext-status-closed{background:#27313b!important;color:#fff!important;border-color:#27313b!important}
.ext-status-cancelled{background:#dc3545!important;color:#fff!important;border-color:#dc3545!important}
.ext-status-warning{background:#f59e0b!important;color:#332600!important;border-color:#f59e0b!important}
.ext-status-submitted{background:#6b7280!important;color:#fff!important;border-color:#6b7280!important}
.ext-status-neutral{background:#e9eef3!important;color:#344054!important;border-color:#d0d5dd!important}

@media (max-width:767px){
  .motorista-head-badge .ext-status-badge{
    min-width:0!important;
    font-size:.70rem!important;
    padding:.28rem .62rem!important;
  }
}


/* v7.61 — Motoristas API externa: alinhamento e margem de ações */
.motoristas-table td.motorista-nome-left,.viaturas-table td.motorista-nome-left,td.motorista-nome-left{text-align:left!important;padding-left:1.15rem!important}
.driver-unified-modal .vehicle-modal-footer{padding-right:2rem!important}
.driver-unified-modal .vehicle-footer-right{margin-left:auto!important;margin-right:.65rem!important;padding-right:0!important}
@media (min-width:761px) and (max-width:1180px){.driver-unified-modal .vehicle-modal-footer{padding-right:2.5rem!important}.driver-unified-modal .vehicle-footer-right{margin-right:.85rem!important}}
@media(max-width:760px){.driver-unified-modal .vehicle-modal-footer{padding-right:1.35rem!important}.driver-unified-modal .vehicle-footer-right{margin-right:.25rem!important}}


/* =========================================================
   v7.64 — Header tablet simplificado + menu de utilizador
   Mantém toda a sincronização/refresh silencioso da v7.63.
   ========================================================= */
.app-header-session{
  gap:.55rem!important;
  padding-left:1rem!important;
  margin-left:.2rem!important;
  border-left:1px solid #d7dee8!important;
}
.app-user-dropdown{position:relative!important;display:inline-flex!important;align-items:center!important;min-width:0!important}
.app-user-menu-toggle{
  display:inline-flex!important;align-items:center!important;gap:.38rem!important;
  border:0!important;background:transparent!important;padding:.38rem .2rem!important;
  color:#475569!important;border-radius:9px!important;white-space:nowrap!important;
  font:inherit!important;box-shadow:none!important;
}
.app-user-menu-toggle:hover,.app-user-menu-toggle:focus,.app-user-menu-toggle.show{
  background:#f3f7f5!important;color:#006f35!important;outline:0!important;
}
.app-user-menu-toggle::after{margin-left:.15rem!important;border-top:.3em solid!important;border-right:.27em solid transparent!important;border-left:.27em solid transparent!important}
.app-user-menu-toggle .rgpd-user-name{color:inherit!important;font-weight:600!important;max-width:135px!important;overflow:hidden!important;text-overflow:ellipsis!important}
.app-user-menu{
  min-width:190px!important;padding:.42rem!important;border:1px solid #dfe6ee!important;
  border-radius:14px!important;box-shadow:0 18px 42px rgba(15,23,42,.16)!important;
  font-size:.8rem!important;
}
.app-user-menu .dropdown-item{border-radius:10px!important;padding:.55rem .7rem!important;color:#172033!important;font-weight:500!important}
.app-user-menu .dropdown-item:hover,.app-user-menu .dropdown-item:focus{background:#eefbf4!important;color:#007a3d!important}
.app-user-menu .app-user-logout{color:#b42318!important}
.app-user-menu .app-user-logout:hover,.app-user-menu .app-user-logout:focus{background:#fff1f0!important;color:#912018!important}

/* Reserva zonas independentes: navegação nunca invade a marca ULSSMGo. */
@media (min-width:1101px){
  .app-header-grid{
    grid-template-columns:minmax(235px,310px) minmax(245px,1fr) minmax(430px,520px)!important;
    gap:.75rem!important;padding-left:18px!important;padding-right:18px!important;
  }
  .app-header-actions{min-width:0!important;justify-self:center!important}
  .app-header-right{min-width:0!important;gap:.72rem!important}
  .app-header-brand{min-width:0!important}
  .app-header-brand span{font-size:.78rem!important}
}
@media (min-width:1101px) and (max-width:1280px){
  .app-header-grid{grid-template-columns:minmax(205px,265px) minmax(225px,1fr) minmax(385px,445px)!important;gap:.55rem!important}
  .app-header-grid .rgpd-logo img{max-width:100%!important;height:auto!important;max-height:50px!important}
  .app-header-actions .btn{font-size:.72rem!important;padding:.4rem .5rem!important}
  .app-header-brand .rgpd-truck svg{width:22px!important;height:22px!important}
  .app-header-brand strong{font-size:.92rem!important}
  .app-header-brand span{font-size:.72rem!important}
  .ext-conn{font-size:.74rem!important}
  .app-user-menu-toggle .rgpd-user-name{max-width:105px!important;font-size:.78rem!important}
}
@media (max-width:1100px){
  .app-user-menu-toggle .rgpd-user-name{max-width:180px!important}
}
@media (max-width:760px){
  .app-header-session{border-left:0!important;padding-left:0!important;margin-left:0!important}
}

/* v7.75 — Layout operacional aprovado */
.motorista-detail-body{padding:10px 12px 12px!important;background:#fff}
.motorista-detail-section{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;padding:13px 14px;margin:0 0 10px;border:1px solid #e1e8ef;border-radius:16px;background:#fff;box-shadow:0 6px 20px rgba(15,23,42,.035)}
.motorista-section-icon{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#eefaf3;color:#08763a;border:1px solid #d9f0e3;font-weight:800;font-size:17px}
.motorista-section-title{margin:0 0 7px;font-size:1rem;line-height:1.15;font-weight:760;color:#101828;position:relative;padding-bottom:5px}
.motorista-section-title:after{content:"";position:absolute;left:0;bottom:0;width:72px;height:2px;border-radius:999px;background:linear-gradient(90deg,#059242,#e9b903,#cc0000)}
.motorista-detail-line{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:5px;align-items:baseline;font-size:.92rem;line-height:1.35;margin:3px 0;color:#253246}
.motorista-detail-line span{color:#667085;font-weight:520}.motorista-detail-line strong{font-weight:650;color:#172033;min-width:0}
.op-plan-card{border:1px solid #dce6ef;border-radius:18px;background:#fff;padding:14px 16px 13px;box-shadow:0 8px 26px rgba(15,23,42,.04)}
.op-plan-heading{display:flex;align-items:center;gap:9px;font-weight:760;color:#101828;font-size:1.02rem;margin-bottom:13px}.op-plan-heading-icon{color:#08763a;font-size:18px}
.op-timeline{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;margin:6px 0 14px}.op-step{flex:0 1 160px;text-align:center;min-width:0;color:#667085}
.op-step-node{width:38px;height:38px;margin:0 auto 6px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef1f5;border:1px solid #d8dee7;font-size:15px;box-shadow:0 5px 12px rgba(15,23,42,.05)}
.op-step-eta .op-step-node,.op-step.is-done .op-step-node{background:#e7f8ed;border-color:#9ddbb2;color:#067a38}
.op-step-title{font-size:.78rem;font-weight:700;color:#273244;line-height:1.15}.op-step-value{font-size:.75rem;font-weight:650;color:#667085;margin-top:3px;line-height:1.15}
.op-step-eta .op-step-value,.op-step.is-done .op-step-value{color:#08763a}.op-line{flex:1 1 60px;height:1px;background:linear-gradient(90deg,#38a865,#ccd4dd);margin-top:19px;min-width:24px}
.op-plan-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.motorista-plan-meta-single{grid-template-columns:1fr}.op-meta-card{min-height:58px;display:flex;align-items:center;gap:10px;border:1px solid #dfe7ef;border-radius:13px;padding:9px 12px;background:#f8fbf9}
.op-meta-card.op-meta-eta{background:#edf5ff;border-color:#cfdef3}.op-meta-icon{width:31px;height:31px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #dce5ed;color:#08763a;font-weight:800}
.op-meta-card span{display:block;font-size:.72rem;color:#667085;font-weight:600}.op-meta-card strong{display:block;font-size:.88rem;color:#172033;font-weight:750;margin-top:1px}
.motorista-planning-section .motorista-section-content{min-width:0}.motorista-op-timeline{margin-top:7px}.motorista-plan-meta{margin-top:11px}.motorista-observations-section{margin-bottom:5px}
.motorista-obs{min-height:64px!important;max-height:150px;resize:vertical;border-radius:12px!important}.motorista-action-grid{margin-top:7px}.motorista-action-grid .btn{min-height:46px;border-radius:11px;font-weight:650}
.app-rgpd-footer .rgpd-footer-inner{max-width:1180px!important;display:grid!important;grid-template-columns:1.15fr 1fr 1fr .8fr!important;gap:18px!important;padding:14px 24px 10px!important;align-items:start!important}
.app-rgpd-footer .rgpd-footer-inner>div{min-width:0!important}.app-rgpd-footer .rgpd-footer-brand{gap:8px!important;margin-bottom:5px!important}.app-rgpd-footer .rgpd-footer-brand img{width:32px!important;height:32px!important}
.app-rgpd-footer .rgpd-footer-brand h4,.app-rgpd-footer .rgpd-footer-inner>div>h4{font-size:.76rem!important;margin:0 0 4px!important}.app-rgpd-footer .rgpd-footer-brand p,.app-rgpd-footer .rgpd-footer-inner a{font-size:.68rem!important;line-height:1.25!important;margin:0 0 2px!important}
.app-rgpd-footer .rgpd-compliance-badge{padding:3px 7px!important;font-size:.58rem!important;line-height:1!important}.app-rgpd-footer .rgpd-compliance-badge svg{width:16px!important;height:16px!important}.app-rgpd-footer hr{margin:3px 0!important;opacity:.18!important}
.app-rgpd-footer .rgpd-footer-bottom-inner{max-width:1180px!important;padding:5px 24px!important;min-height:25px!important;font-size:.61rem!important}.app-rgpd-footer .rgpd-footer-support{gap:6px!important}
@media(max-width:900px){.motorista-detail-section{grid-template-columns:34px minmax(0,1fr);gap:9px;padding:11px}.motorista-section-icon{width:31px;height:31px;font-size:14px}.op-timeline{gap:3px}.op-step{flex-basis:125px}.op-step-node{width:32px;height:32px;margin-bottom:5px;font-size:13px}.op-line{margin-top:16px;min-width:10px}.op-step-title{font-size:.68rem}.op-step-value{font-size:.66rem}.app-rgpd-footer .rgpd-footer-inner{grid-template-columns:1fr 1fr!important;gap:10px 20px!important;padding:11px 18px 8px!important}.app-rgpd-footer .rgpd-footer-bottom-inner{padding:5px 18px!important;gap:8px!important}}
@media(max-width:620px){.motorista-detail-body{padding:7px!important}.motorista-detail-section{display:block;padding:10px}.motorista-section-icon{display:none}.motorista-detail-line{grid-template-columns:1fr;gap:0;margin:5px 0}.op-timeline{display:grid;grid-template-columns:1fr 1fr;gap:8px}.op-line{display:none}.op-step{border:1px solid #e0e6ed;border-radius:12px;padding:8px;max-width:none;background:#fbfcfd}.op-plan-meta{grid-template-columns:1fr}.app-rgpd-footer .rgpd-footer-inner{grid-template-columns:1fr!important;padding:10px 15px 7px!important}.app-rgpd-footer .rgpd-footer-bottom-inner{display:block!important;text-align:center!important;padding:5px 12px!important}.app-rgpd-footer .rgpd-footer-support{justify-content:center!important;flex-wrap:wrap!important;margin-top:3px!important}}

/* v7.78 — pedidos Fechados: modal da transportadora estritamente read-only.
   Esta regra fica no fim do CSS para não ser anulada pelo layout flex do footer. */
#tpServicoModal #tpPlanningActions.d-none{display:none!important;}
#tpServicoModal #tpCancelExecutionBtn.d-none{display:none!important;}

/* Prioridades ULSSMGo 2026-08-27 */
.prio-muito-urgente{background:#dc3545!important;color:#fff!important}.prio-alta{background:#fd7e14!important;color:#fff!important}.prio-urgente{background:#ffc107!important;color:#212529!important}.prio-baixa{background:#198754!important;color:#fff!important}.prio-sem{background:#6c757d!important;color:#fff!important}.prio-legend{display:inline-flex;align-items:center;padding:.28rem .6rem;border-radius:999px;font-weight:600}

.prio-kpi{display:inline-flex;align-items:center;padding:.45rem .75rem;border-radius:10px;font-weight:700;font-size:.88rem}


/* EXT MATCH INTERNAL PRIORITIES START */
.extmatch-prio-summary{
  border:1px solid #dfe6ec !important;
  border-radius:16px !important;
  background:#fff !important;
  padding:10px 12px !important;
  box-shadow:0 7px 22px rgba(15,23,42,.035) !important;
}
.extmatch-prio-summary-grid{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:8px !important;
}
.extmatch-prio-summary-total,
.extmatch-prio-kpi{
  -webkit-appearance:none !important;
  appearance:none !important;
  font-family:inherit !important;
  cursor:pointer !important;
  text-decoration:none !important;
  margin:0 !important;
  line-height:1.15 !important;
  box-sizing:border-box !important;
  transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease !important;
}
.extmatch-prio-summary-total{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:7px !important;
  min-height:38px !important;
  padding:4px 6px 4px 10px !important;
  border:1px solid #dce5e1 !important;
  border-radius:999px !important;
  background:#f7fbf8 !important;
  color:#52606d !important;
  font-size:.76rem !important;
  font-weight:500 !important;
  white-space:nowrap !important;
}
.extmatch-prio-summary-total strong{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:25px !important;
  height:25px !important;
  padding:0 7px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#08763a !important;
  color:#fff !important;
  font-size:.82rem !important;
  font-weight:650 !important;
}
.extmatch-prio-kpi{
  display:grid !important;
  grid-template-columns:8px auto auto !important;
  align-items:center !important;
  gap:8px !important;
  flex:0 0 auto !important;
  min-width:165px !important;
  max-width:220px !important;
  min-height:38px !important;
  padding:6px 8px 6px 10px !important;
  border-radius:10px !important;
  color:#26323f !important;
  font-size:.78rem !important;
  font-weight:500 !important;
  text-align:left !important;
}
.extmatch-prio-muito-urgente{
  border:1px solid #f4bcc2 !important;
  border-left:4px solid #dc3545 !important;
  background:#fff6f7 !important;
}
.extmatch-prio-alta{
  border:1px solid #f7cfb1 !important;
  border-left:4px solid #f47b20 !important;
  background:#fff8f2 !important;
}
.extmatch-prio-urgente{
  border:1px solid #eadc9e !important;
  border-left:4px solid #d5a800 !important;
  background:#fffbed !important;
}
.extmatch-prio-baixa{
  border:1px solid #b9ddc9 !important;
  border-left:4px solid #198754 !important;
  background:#f3faf6 !important;
}
.extmatch-prio-sem{
  border:1px solid #d5dbe0 !important;
  border-left:4px solid #6c757d !important;
  background:#f6f7f8 !important;
}
.extmatch-prio-kpi-dot{
  width:7px !important;
  height:7px !important;
  border-radius:50% !important;
}
.extmatch-prio-muito-urgente .extmatch-prio-kpi-dot{background:#dc3545 !important;box-shadow:0 0 0 3px rgba(220,53,69,.12) !important}
.extmatch-prio-alta .extmatch-prio-kpi-dot{background:#f47b20 !important;box-shadow:0 0 0 3px rgba(244,123,32,.12) !important}
.extmatch-prio-urgente .extmatch-prio-kpi-dot{background:#d5a800 !important;box-shadow:0 0 0 3px rgba(213,168,0,.12) !important}
.extmatch-prio-baixa .extmatch-prio-kpi-dot{background:#198754 !important;box-shadow:0 0 0 3px rgba(25,135,84,.12) !important}
.extmatch-prio-sem .extmatch-prio-kpi-dot{background:#6c757d !important;box-shadow:0 0 0 3px rgba(108,117,125,.12) !important}
.extmatch-prio-kpi-label{
  color:#26323f !important;
  font-size:.78rem !important;
  font-weight:500 !important;
  white-space:nowrap !important;
}
.extmatch-prio-kpi-value{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:24px !important;
  height:24px !important;
  padding:0 6px !important;
  border-radius:7px !important;
  background:#fff !important;
  font-size:.78rem !important;
  font-weight:650 !important;
}
.extmatch-prio-muito-urgente .extmatch-prio-kpi-value{border:1px solid #f4c8cd !important;color:#dc3545 !important}
.extmatch-prio-alta .extmatch-prio-kpi-value{border:1px solid #f9d8bf !important;color:#f47b20 !important}
.extmatch-prio-urgente .extmatch-prio-kpi-value{border:1px solid #eee2af !important;color:#b38c00 !important}
.extmatch-prio-baixa .extmatch-prio-kpi-value{border:1px solid #c6e3d2 !important;color:#198754 !important}
.extmatch-prio-sem .extmatch-prio-kpi-value{border:1px solid #dce1e5 !important;color:#6c757d !important}
.extmatch-prio-kpi:hover,
.extmatch-prio-summary-total:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 5px 14px rgba(15,23,42,.07) !important;
}
.extmatch-prio-summary-total.is-active{
  border-color:#9bcfb0 !important;
  box-shadow:0 0 0 2px rgba(8,118,58,.08) !important;
}
.extmatch-prio-muito-urgente.is-active{box-shadow:0 0 0 2px rgba(220,53,69,.10),0 5px 14px rgba(15,23,42,.05) !important}
.extmatch-prio-alta.is-active{box-shadow:0 0 0 2px rgba(244,123,32,.10),0 5px 14px rgba(15,23,42,.05) !important}
.extmatch-prio-urgente.is-active{box-shadow:0 0 0 2px rgba(213,168,0,.10),0 5px 14px rgba(15,23,42,.05) !important}
.extmatch-prio-baixa.is-active{box-shadow:0 0 0 2px rgba(25,135,84,.10),0 5px 14px rgba(15,23,42,.05) !important}
.extmatch-prio-sem.is-active{box-shadow:0 0 0 2px rgba(108,117,125,.10),0 5px 14px rgba(15,23,42,.05) !important}

.extmatch-page-badge{
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
  min-height:38px !important;
  padding:4px 6px 4px 10px !important;
  margin-left:auto !important;
  border:1px solid #dce5e1 !important;
  border-radius:999px !important;
  background:#f7fbf8 !important;
  color:#52606d !important;
  font-size:.76rem !important;
  font-weight:500 !important;
  white-space:nowrap !important;
}
.extmatch-page-badge strong{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:25px !important;
  height:25px !important;
  padding:0 7px !important;
  border-radius:999px !important;
  background:#08763a !important;
  color:#fff !important;
  font-size:.82rem !important;
  font-weight:650 !important;
}

@media(max-width:900px){
  .extmatch-prio-summary-grid{flex-wrap:wrap !important}
  .extmatch-prio-kpi{
    min-width:155px !important;
    max-width:none !important;
    flex:1 1 180px !important;
  }
}
@media(max-width:520px){
  .extmatch-prio-summary{padding:10px !important}
  .extmatch-prio-summary-grid{
    flex-direction:column !important;
    align-items:stretch !important;
  }
  .extmatch-prio-summary-total{width:max-content !important}
  .extmatch-prio-kpi{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
}
/* EXT MATCH INTERNAL PRIORITIES END */

/* =========================================================
   ULSSMGo External — Login integrado aprovado 27-08-2026
   Mantém o header institucional com logótipo ULSSM.
   ========================================================= */
body.page-auth .auth-login-integrated{
  width:min(650px, calc(100vw - 32px))!important;
  gap:0!important;
}
body.page-auth .auth-card-integrated{
  width:100%!important;
  max-width:650px!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid #e1e7ec!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 20px 56px rgba(15,23,42,.10)!important;
}
body.page-auth .auth-scope-integrated{
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  margin:0!important;
  padding:22px 34px 20px!important;
  gap:20px!important;
  border:0!important;
  border-bottom:2px solid #e1b000!important;
  border-radius:0!important;
  background:
    radial-gradient(circle at 16% 20%,rgba(255,248,219,.55),rgba(255,255,255,0) 33%),
    #fff!important;
  box-shadow:none!important;
  transition:none!important;
}
body.page-auth .auth-scope-integrated::after{display:none!important}
body.page-auth .auth-scope-integrated:hover{
  transform:none!important;
  border-color:#e1b000!important;
  box-shadow:none!important;
}
body.page-auth .auth-scope-integrated .auth-scope-icon{
  width:66px!important;height:66px!important;flex:0 0 66px!important;
  background:#fff!important;
  box-shadow:0 7px 18px rgba(15,23,42,.07)!important;
  animation:none!important;
  transform:none!important;
}
body.page-auth .auth-scope-integrated:hover .auth-scope-icon{
  transform:none!important;
  box-shadow:0 7px 18px rgba(15,23,42,.07)!important;
}
body.page-auth .auth-scope-integrated .auth-scope-icon svg{
  width:37px!important;height:37px!important;
}
body.page-auth .auth-scope-integrated .auth-scope-divider{
  width:1px!important;height:54px!important;background:#e9c24e!important;
}
body.page-auth .auth-scope-integrated .auth-scope-title{
  font-size:1.34rem!important;font-weight:750!important;
  letter-spacing:-.025em!important;color:#101828!important;
}
body.page-auth .auth-scope-integrated .auth-scope-subtitle{
  margin-top:.2rem!important;font-size:.91rem!important;
  font-weight:560!important;color:#475467!important;
}
body.page-auth .auth-form-panel{
  width:min(430px, calc(100% - 40px));
  margin:0 auto;
  padding:24px 0 26px;
}
body.page-auth .auth-form-panel .auth-title{margin-bottom:20px!important}
@media(max-width:760px){
  body.page-auth .auth-login-integrated{width:calc(100vw - 24px)!important}
  body.page-auth .auth-card-integrated{max-width:100%!important}
  body.page-auth .auth-scope-integrated{padding:17px 18px 16px!important;gap:13px!important}
  body.page-auth .auth-scope-integrated .auth-scope-icon{
    width:52px!important;height:52px!important;flex-basis:52px!important;
  }
  body.page-auth .auth-scope-integrated .auth-scope-icon svg{width:29px!important;height:29px!important}
  body.page-auth .auth-scope-integrated .auth-scope-divider{height:44px!important}
  body.page-auth .auth-scope-integrated .auth-scope-title{font-size:1.1rem!important}
  body.page-auth .auth-scope-integrated .auth-scope-subtitle{font-size:.8rem!important}
  body.page-auth .auth-form-panel{width:calc(100% - 36px);padding:20px 0 22px}
}

/* ULSSMGo External v7.90 — logótipo do login com sirenes */
body.page-auth .auth-scope-integrated .auth-scope-icon img{
  display:block!important;
  width:54px!important;
  height:auto!important;
  max-height:54px!important;
  object-fit:contain!important;
}
@media(max-width:760px){
  body.page-auth .auth-scope-integrated .auth-scope-icon img{
    width:42px!important;
    max-height:42px!important;
  }
}

/* ULSSMGo External v7.91 — logótipo superior direito com sirenes */
.top-brand-ambulance{
  display:block;
  width:58px;
  height:auto;
  object-fit:contain;
  flex:0 0 auto;
}
@media(max-width:760px){
  .top-brand-ambulance{
    width:46px;
  }
}

/* ULSSMGo External v7.94 — teste de arranque dinâmico */
.ulssmgo-startup-loader{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#fff;
  opacity:1;
  visibility:visible;
  transition:opacity .26s ease,visibility .26s ease;
}
.ulssmgo-startup-loader.is-leaving{opacity:0;visibility:hidden}
.ulssmgo-startup-logo{
  position:relative;
  width:150px;
  height:112px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ulssmgo-startup-logo img{
  display:block;
  width:136px;
  height:auto;
  object-fit:contain;
  animation:ulssmgoVehiclePulse 1.35s ease-in-out infinite;
}
.ulssmgo-startup-logo::before,
.ulssmgo-startup-logo::after{
  content:"";
  position:absolute;
  top:17px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#d9a404;
  box-shadow:0 0 0 rgba(217,164,4,0);
}
.ulssmgo-startup-logo::before{
  left:54px;
  animation:ulssmgoBeacon .72s ease-in-out infinite alternate;
}
.ulssmgo-startup-logo::after{
  left:79px;
  animation:ulssmgoBeacon .72s .36s ease-in-out infinite alternate;
}
.ulssmgo-signal{
  position:absolute;
  right:13px;
  top:27px;
  width:25px;
  height:25px;
  border-top:3px solid #08783f;
  border-right:3px solid #08783f;
  border-radius:0 22px 0 0;
  opacity:0;
  transform:scale(.45);
  transform-origin:left bottom;
}
.ulssmgo-signal-1{animation:ulssmgoSignal 1.2s ease-out infinite}
.ulssmgo-signal-2{
  width:38px;height:38px;right:4px;top:17px;
  animation:ulssmgoSignal 1.2s .28s ease-out infinite;
}
.ulssmgo-startup-name{
  margin-top:8px;
  color:#08783f;
  font-size:1.34rem;
  line-height:1;
  font-weight:750;
  letter-spacing:-.02em;
}
.ulssmgo-startup-sub{
  margin-top:8px;
  color:#667085;
  font-size:.78rem;
  font-weight:500;
}
@keyframes ulssmgoBeacon{
  0%{opacity:.35;box-shadow:0 0 0 0 rgba(217,164,4,.12)}
  100%{opacity:1;box-shadow:0 0 0 7px rgba(217,164,4,0)}
}
@keyframes ulssmgoSignal{
  0%{opacity:0;transform:scale(.45)}
  30%{opacity:.85}
  100%{opacity:0;transform:scale(1.08)}
}
@keyframes ulssmgoVehiclePulse{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-2px)}
}
@media(prefers-reduced-motion:reduce){
  .ulssmgo-startup-logo img,
  .ulssmgo-startup-logo::before,
  .ulssmgo-startup-logo::after,
  .ulssmgo-signal{animation:none!important}
}

/* ULSSMGo 2026-09-07 — marcos de espera/aceitação */
.op-timeline{gap:.28rem!important}.op-timeline .op-step{min-width:0!important;flex:1 1 0!important}.op-timeline .op-step-title{font-size:.69rem!important;line-height:1.08!important}.op-timeline .op-step-value{font-size:.64rem!important}.op-timeline .op-step-node{width:31px!important;height:31px!important;font-size:.82rem!important}.op-timeline .op-line{min-width:12px!important;flex:.45 1 26px!important}
@media(max-width:1100px){.op-timeline .op-step-title{font-size:.64rem!important}.op-timeline .op-step-node{width:28px!important;height:28px!important}}

/* v7.110 — Transportadora: Planeamento do Serviço compacto e movível */
#tpServicoModal .modal-dialog{
  max-width:1080px!important;
  width:calc(100% - 28px)!important;
  margin:.45rem auto!important;
}
#tpServicoModal .modal-content{
  max-height:calc(100vh - 14px)!important;
  overflow:hidden!important;
}
#tpServicoModal .modal-header{
  padding:.68rem 1.15rem .58rem!important;
  cursor:move;
  user-select:none;
  touch-action:none;
}
#tpServicoModal .vehicle-modal-kicker{font-size:.65rem!important;margin-bottom:.12rem!important;}
#tpServicoModal .vehicle-modal-title{font-size:1.05rem!important;line-height:1.12!important;padding-bottom:.30rem!important;}
#tpServicoModal .modal-body{
  padding:.58rem .95rem!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}
#tpServicoModal .vehicle-summary-grid{
  gap:.42rem!important;
  margin-bottom:.48rem!important;
}
#tpServicoModal .vehicle-summary-card{
  min-height:50px!important;
  padding:.42rem .58rem!important;
  border-radius:12px!important;
}
#tpServicoModal .vehicle-summary-icon{
  width:30px!important;height:30px!important;border-radius:10px!important;font-size:.75rem!important;
}
#tpServicoModal .vehicle-summary-label{font-size:.66rem!important;line-height:1.05!important;}
#tpServicoModal .vehicle-summary-value{font-size:.84rem!important;line-height:1.1!important;}
#tpServicoModal #tpOperationalSummary{
  padding:.55rem .72rem .48rem!important;
  margin-bottom:.52rem!important;
  border-radius:14px!important;
}
#tpServicoModal .op-plan-heading{
  margin-bottom:.38rem!important;
  font-size:.88rem!important;
  gap:.35rem!important;
}
#tpServicoModal .op-plan-heading-icon{font-size:.9rem!important;}
#tpServicoModal .op-timeline{
  margin:.12rem 0 .25rem!important;
  gap:.16rem!important;
}
#tpServicoModal .op-step-node{
  width:27px!important;height:27px!important;margin-bottom:3px!important;font-size:.72rem!important;
}
#tpServicoModal .op-step-title{font-size:.61rem!important;line-height:1.02!important;}
#tpServicoModal .op-step-value{font-size:.59rem!important;line-height:1.02!important;margin-top:2px!important;}
#tpServicoModal .op-line{margin-top:13px!important;min-width:8px!important;flex:.35 1 18px!important;}
#tpServicoModal .vehicle-edit-card{
  padding:.58rem .78rem .55rem!important;
  border-radius:14px!important;
}
#tpServicoModal .vehicle-edit-title{
  font-size:.96rem!important;
  padding-bottom:.34rem!important;
  margin-bottom:.46rem!important;
}
#tpServicoModal .vehicle-edit-title::after{width:105px!important;height:2px!important;}
#tpServicoModal .vehicle-edit-grid{gap:.48rem .62rem!important;}
#tpServicoModal .vehicle-edit-grid .form-label{font-size:.69rem!important;margin-bottom:.20rem!important;}
#tpServicoModal .vehicle-edit-grid .form-control,
#tpServicoModal .vehicle-edit-grid .form-select{
  min-height:36px!important;
  height:36px!important;
  padding:.34rem .58rem!important;
  border-radius:9px!important;
  font-size:.78rem!important;
}
#tpServicoModal .utd-eta-sub-label{font-size:.64rem!important;margin-bottom:.15rem!important;}
#tpServicoModal .utd-datepicker-wrap .form-control{padding-left:2rem!important;}
#tpServicoModal #tpReasonWrap textarea.form-control{height:auto!important;min-height:58px!important;}
#tpServicoModal .modal-footer{
  padding:.52rem .9rem!important;
  min-height:52px!important;
}
#tpServicoModal .modal-footer .btn{
  min-height:36px!important;
  padding:.42rem .78rem!important;
  border-radius:10px!important;
  font-size:.76rem!important;
  min-width:104px!important;
}
#tpServicoModal.tp-drag-positioned .modal-dialog{
  position:fixed!important;
  margin:0!important;
  transform:none!important;
}
.modal-backdrop.tp-servico-backdrop{opacity:.30!important;}
@media (max-height:820px) and (min-width:901px){
  #tpServicoModal .modal-dialog{margin:.25rem auto!important;}
  #tpServicoModal .modal-header{padding:.52rem 1rem .45rem!important;}
  #tpServicoModal .modal-body{padding:.42rem .8rem!important;}
  #tpServicoModal .vehicle-summary-card{min-height:46px!important;padding:.34rem .5rem!important;}
  #tpServicoModal #tpOperationalSummary{padding:.42rem .6rem .34rem!important;margin-bottom:.4rem!important;}
  #tpServicoModal .vehicle-edit-card{padding:.46rem .68rem .42rem!important;}
  #tpServicoModal .modal-footer{padding:.4rem .8rem!important;min-height:46px!important;}
}
@media (max-width:900px){
  #tpServicoModal .modal-header{cursor:default;touch-action:auto;}
  #tpServicoModal .modal-content{max-height:calc(100vh - 10px)!important;}
}

/* v7.111 — badges sem bold + Administração: modais compactos e movíveis */
.vehicle-badge,
.badge-estado,
.ext-status-badge,
#tpServicoModal .op-step-title,
#tpServicoModal .op-step-value{
  font-weight:500!important;
}

@media (min-width:901px){
  .vehicle-modal-overlay{padding:10px!important;}
  .vehicle-modal{
    width:min(940px,calc(100vw - 24px))!important;
    max-height:calc(100vh - 20px)!important;
    overflow:hidden!important;
    position:relative;
  }
  .vehicle-modal-header{
    position:relative!important;
    top:auto!important;
    padding:.72rem 1rem .62rem!important;
    cursor:move;
    user-select:none;
    touch-action:none;
  }
  .vehicle-modal-kicker{font-size:.66rem!important;margin-bottom:.12rem!important;}
  .vehicle-modal-title{font-size:1.02rem!important;font-weight:600!important;}
  .vehicle-modal-body{
    padding:.68rem 1rem .75rem!important;
    overflow-y:auto!important;
    max-height:calc(100vh - 130px)!important;
  }
  .vehicle-summary-grid{gap:.5rem!important;margin-bottom:.58rem!important;}
  .vehicle-summary-card{padding:.52rem .65rem!important;min-height:52px!important;}
  .vehicle-summary-value{font-size:.84rem!important;font-weight:500!important;}
  .vehicle-edit-card{padding:.7rem!important;}
  .vehicle-edit-title{font-size:.94rem!important;font-weight:600!important;margin-bottom:.55rem!important;}
  .vehicle-edit-grid,.vehicle-create-grid,.motorista-create-grid,.driver-unified-grid{gap:.52rem .65rem!important;}
  .vehicle-edit-grid .form-control,.vehicle-edit-grid .form-select,
  .vehicle-create-grid .form-control,.vehicle-create-grid .form-select,
  .motorista-create-grid .form-control,.motorista-create-grid .form-select,
  .driver-unified-grid .form-control,.driver-unified-grid .form-select{min-height:36px!important;height:36px!important;font-size:.8rem!important;}
  .vehicle-modal-footer{padding:.5rem .9rem!important;min-height:50px!important;}
  .vehicle-modal-footer .btn{min-height:34px!important;padding:.38rem .72rem!important;font-size:.78rem!important;}
}

/* v7.112 — Planeamento Transportadora: remover bolds residuais no modal */
#tpServicoModal .vehicle-summary-value,
#tpServicoModal .vehicle-summary-value strong,
#tpServicoModal .vehicle-summary-value b,
#tpServicoModal .op-step-title,
#tpServicoModal .op-step-value,
#tpServicoModal .form-control,
#tpServicoModal .form-select{
  font-weight:400!important;
}
#tpServicoModal .vehicle-summary-label,
#tpServicoModal .form-label{
  font-weight:400!important;
}

/* v7.123 — ícones limpos no cartão do motorista e leitura imediata da fase operacional */
.motorista-line-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:0 0 16px;margin-right:5px;vertical-align:-3px}
.motorista-line-icon svg{width:15px;height:15px;display:block;fill:currentColor}
.motorista-patient-icon{color:#087a3d}
.motorista-route-icon{color:#667085}
.motorista-op-timeline .op-step.is-done .op-step-title,
.motorista-op-timeline .op-step-eta .op-step-title{color:#08763a!important}
.motorista-op-timeline .op-step.is-current .op-step-node{background:#e7f8ed!important;border:2px solid #18a558!important;color:#08763a!important;box-shadow:0 0 0 4px rgba(24,165,88,.10)!important}
.motorista-op-timeline .op-step.is-current .op-step-title{color:#08763a!important;font-weight:800!important}
.motorista-op-timeline .op-step.is-current .op-step-value{color:#08763a!important;font-weight:700!important}

/* v7.124 — Planeamento Operacional: fases futuras visualmente inativas */
.motorista-op-timeline .op-step:not(.op-step-eta):not(.is-done):not(.is-current) .op-step-node{
  background:#f1f3f5!important;
  border-color:#d7dde3!important;
  color:#98a2ad!important;
  box-shadow:none!important;
  filter:grayscale(1);
  opacity:.82;
}
.motorista-op-timeline .op-step:not(.op-step-eta):not(.is-done):not(.is-current) .op-step-title,
.motorista-op-timeline .op-step:not(.op-step-eta):not(.is-done):not(.is-current) .op-step-value{
  color:#98a2ad!important;
  font-weight:400!important;
}
.motorista-op-timeline .op-line{
  background:#d7dde3!important;
  border-color:#d7dde3!important;
  opacity:.9;
}
.motorista-op-timeline .op-step.op-step-eta + .op-line,
.motorista-op-timeline .op-step.is-done + .op-line{
  background:#65b887!important;
  border-color:#65b887!important;
}

/* v7.132 — Planeamento Operacional motorista: qualquer marco concluído fica integralmente verde */
.motorista-op-timeline .op-step.is-done .op-step-node{
  background:#e7f8ed!important;
  border-color:#9ddbb2!important;
  color:#067a38!important;
  box-shadow:0 0 0 1px rgba(6,122,56,.04)!important;
  filter:none!important;
  opacity:1!important;
}
.motorista-op-timeline .op-step.is-done .op-step-title,
.motorista-op-timeline .op-step.is-done .op-step-value{
  color:#08763a!important;
  opacity:1!important;
}
.motorista-op-timeline .op-step.is-done + .op-line{
  background:#65b887!important;
  border-color:#65b887!important;
  opacity:1!important;
}

/* v7.133 — Motorista: retorno em circuito U (IDA em cima, RETORNO em baixo) */
.motorista-op-timeline.has-return{
  position:relative!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  grid-template-rows:auto auto!important;
  column-gap:12px!important;
  row-gap:14px!important;
  padding:14px 24px 12px!important;
  margin:6px 0 10px!important;
  border-radius:14px!important;
  overflow:visible!important;
  background:
    linear-gradient(to bottom,
      rgba(5,146,66,.055) 0%, rgba(5,146,66,.055) 47%,
      transparent 47%, transparent 53%,
      rgba(13,110,253,.045) 53%, rgba(13,110,253,.045) 100%)!important;
}
.motorista-op-timeline.has-return>.op-line{display:none!important;}
.motorista-op-timeline.has-return>.op-step{position:relative;z-index:2;max-width:none!important;}
.motorista-op-timeline.has-return .op-role-eta{grid-column:1;grid-row:1;}
.motorista-op-timeline.has-return .op-role-pickup{grid-column:2;grid-row:1;}
.motorista-op-timeline.has-return .op-role-pickup-ready{grid-column:3;grid-row:1;}
.motorista-op-timeline.has-return .op-role-start{grid-column:4;grid-row:1;}
.motorista-op-timeline.has-return .op-role-arrive{grid-column:5;grid-row:1;}
.motorista-op-timeline.has-return .op-role-return-end{grid-column:1;grid-row:2;}
.motorista-op-timeline.has-return .op-role-origin-accept{grid-column:2;grid-row:2;}
.motorista-op-timeline.has-return .op-role-return-arrive{grid-column:3;grid-row:2;}
.motorista-op-timeline.has-return .op-role-return-start{grid-column:4;grid-row:2;}
.motorista-op-timeline.has-return .op-role-dest-accept{grid-column:5;grid-row:2;}
.motorista-op-timeline.has-return .op-role-pickup::before,
.motorista-op-timeline.has-return .op-role-pickup-ready::before,
.motorista-op-timeline.has-return .op-role-start::before,
.motorista-op-timeline.has-return .op-role-arrive::before,
.motorista-op-timeline.has-return .op-role-origin-accept::before,
.motorista-op-timeline.has-return .op-role-return-arrive::before,
.motorista-op-timeline.has-return .op-role-return-start::before,
.motorista-op-timeline.has-return .op-role-dest-accept::before{
  content:"";position:absolute;z-index:-1;top:15px;left:-55%;width:110%;height:2px;border-radius:99px;
}
.motorista-op-timeline.has-return .op-role-pickup::before,
.motorista-op-timeline.has-return .op-role-pickup-ready::before,
.motorista-op-timeline.has-return .op-role-start::before,
.motorista-op-timeline.has-return .op-role-arrive::before{background:#43ad70;}
.motorista-op-timeline.has-return .op-role-origin-accept::before,
.motorista-op-timeline.has-return .op-role-return-arrive::before,
.motorista-op-timeline.has-return .op-role-return-start::before,
.motorista-op-timeline.has-return .op-role-dest-accept::before{background:#3b82f6;}
.motorista-op-timeline.has-return .op-u-turn{
  display:block;position:absolute;z-index:1;right:9.1%;top:29px;bottom:calc(50% - 29px);width:34px;
  border-top:2px solid #43ad70;border-right:2px solid #43ad70;border-bottom:2px solid #3b82f6;
  border-radius:0 26px 26px 0;pointer-events:none;
}
.motorista-op-timeline.has-return .op-u-phase{
  position:absolute;left:8px;font-size:.61rem;font-weight:800;letter-spacing:.08em;line-height:1;padding:4px 6px;border-radius:7px;z-index:3;pointer-events:none;
}
.motorista-op-timeline.has-return .op-u-phase-ida{top:10px;color:#08763a;background:rgba(5,146,66,.09);}
.motorista-op-timeline.has-return .op-u-phase-return{top:calc(53% + 5px);color:#0b5ed7;background:rgba(13,110,253,.08);}
@media(max-width:760px){
  .motorista-op-timeline.has-return{grid-template-columns:1fr 1fr!important;grid-template-rows:auto!important;padding:10px!important;background:transparent!important;}
  .motorista-op-timeline.has-return>.op-step{grid-column:auto!important;grid-row:auto!important;border:1px solid #e0e6ed;border-radius:12px;padding:8px;background:#fbfcfd;}
  .motorista-op-timeline.has-return>.op-step::before,
  .motorista-op-timeline.has-return .op-u-turn,
  .motorista-op-timeline.has-return .op-u-phase{display:none!important;}
}

/* v7.134 — Transportadora: retorno em circuito U, alinhado com UTD interna */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return{
  position:relative!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  grid-template-rows:auto auto!important;
  column-gap:12px!important;
  row-gap:14px!important;
  padding:14px 24px 12px!important;
  margin:6px 0 10px!important;
  border-radius:14px!important;
  overflow:visible!important;
  background:
    linear-gradient(to bottom,
      rgba(5,146,66,.055) 0%, rgba(5,146,66,.055) 47%,
      transparent 47%, transparent 53%,
      rgba(13,110,253,.045) 53%, rgba(13,110,253,.045) 100%)!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return>.op-line{display:none!important;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return>.op-step{position:relative;z-index:2;max-width:none!important;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepEta{grid-column:1;grid-row:1;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepPickup{grid-column:2;grid-row:1;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepPickupReady{grid-column:3;grid-row:1;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepStart{grid-column:4;grid-row:1;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepArrive{grid-column:5;grid-row:1;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnEnd{grid-column:1;grid-row:2;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepOriginAccept{grid-column:2;grid-row:2;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnArrive{grid-column:3;grid-row:2;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnStart{grid-column:4;grid-row:2;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepDestAccept{grid-column:5;grid-row:2;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepEnd{display:none!important;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepPickup::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepPickupReady::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepStart::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepArrive::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepOriginAccept::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnArrive::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnStart::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepDestAccept::before{
  content:"";position:absolute;z-index:-1;top:15px;left:-55%;width:110%;height:2px;border-radius:99px;background:#b9c5d1;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepPickup::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepPickupReady::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepStart::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepArrive::before{background:#43ad70;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepOriginAccept::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnArrive::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnStart::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepDestAccept::before{background:#3b82f6;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-turn{
  display:block!important;position:absolute;z-index:1;right:9.1%;top:29px;bottom:calc(50% - 29px);width:34px;
  border-top:2px solid #43ad70;border-right:2px solid #43ad70;border-bottom:2px solid #3b82f6;
  border-radius:0 26px 26px 0;pointer-events:none;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-phase{
  display:block!important;position:absolute;left:8px;font-size:.61rem;font-weight:800;letter-spacing:.08em;line-height:1;
  padding:4px 6px;border-radius:7px;z-index:3;pointer-events:none;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-phase-ida{top:10px;color:#08763a;background:rgba(5,146,66,.09);}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-phase-return{top:calc(53% + 5px);color:#0b5ed7;background:rgba(13,110,253,.08);}
@media(max-width:760px){
  #tpServicoModal #tpOperationalSummary .op-timeline.has-return{grid-template-columns:1fr 1fr!important;grid-template-rows:auto!important;padding:10px!important;background:transparent!important;}
  #tpServicoModal #tpOperationalSummary .op-timeline.has-return>.op-step{grid-column:auto!important;grid-row:auto!important;border:1px solid #e0e6ed;border-radius:12px;padding:8px;background:#fbfcfd;}
  #tpServicoModal #tpOperationalSummary .op-timeline.has-return>.op-step::before,
  #tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-turn,
  #tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-phase{display:none!important;}
}

/* v7.135 — Transportadora: tipografia dos cards superiores alinhada ao Planeamento Operacional */
#tpServicoModal .vehicle-summary-label{
  font-size:.61rem!important;
  line-height:1.05!important;
  font-weight:500!important;
  margin-bottom:.06rem!important;
}
#tpServicoModal .vehicle-summary-value{
  font-size:.61rem!important;
  line-height:1.08!important;
  font-weight:560!important;
  letter-spacing:0!important;
}


/* v7.136 — Transportadora: cards superiores com tipografia realmente igual ao Planeamento Operacional.
   Seletores explícitos + cache-bust no index.php para impedir CSS antigo em cache. */
#tpServicoModal .vehicle-summary-grid .vehicle-summary-card .vehicle-summary-label,
#tpServicoModal .vehicle-summary-grid .vehicle-summary-card .vehicle-summary-value{
  font-size:.61rem!important;
  line-height:1.08!important;
  font-weight:400!important;
  letter-spacing:0!important;
}
#tpServicoModal .vehicle-summary-grid .vehicle-summary-card .vehicle-summary-label{
  margin-bottom:.08rem!important;
}

/* v7.137 — Planeamento retorno: cards compactos, curva mais aberta e badges IDA/RETORNO uniformes */
#tpServicoModal .tp-summary-card,
#tpServicoModal .tp-info-card,
#tpServicoModal .utd-summary-card{
  min-height:0!important;
}
#tpServicoModal .tp-summary-card,
#tpServicoModal .tp-info-card{
  padding-top:.55rem!important;
  padding-bottom:.55rem!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return{
  padding-right:42px!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-turn{
  right:5.6%!important;
  width:54px!important;
  border-radius:0 34px 34px 0!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-phase{
  box-sizing:border-box!important;
  width:64px!important;
  min-width:64px!important;
  height:22px!important;
  padding:0 6px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  white-space:nowrap!important;
}
/* v7.137b — classes reais dos cards de resumo */
#tpServicoModal .vehicle-summary-card{
  min-height:68px!important;
  padding:.58rem .72rem!important;
}
#tpServicoModal .vehicle-summary-icon{
  width:38px!important;height:38px!important;min-width:38px!important;
}

/* v7.139 — cards superiores Transportadora: tipografia uniforme em todos os valores */
#tpServicoModal .vehicle-summary-grid .vehicle-summary-card .vehicle-summary-value{
  font-size:.88rem!important;
  line-height:1.2!important;
  font-weight:560!important;
  letter-spacing:0!important;
}


/* v7.140 — Transportadora: cabeçalho igual à UTD interna, com PRIORIDADE + RETORNO */
#tpServicoModal .tp-priority-header{
  display:grid!important;
  grid-template-columns:auto minmax(180px,1fr) 36px!important;
  align-items:center!important;
  column-gap:14px!important;
}
#tpServicoModal .tp-priority-header-title{min-width:0!important;}
#tpServicoModal .tp-header-badges{
  justify-self:center!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  min-width:0!important;
}
#tpServicoModal .tnu-priority-badge{
  --prio:#6c757d;--bg:#f6f7f8;
  display:inline-flex;align-items:center;gap:7px;
  box-sizing:border-box;height:28px;min-height:28px;
  padding:2px 9px 2px 4px;border:1px solid #d8dee3;border-radius:999px;
  background:var(--bg);color:#26323f;font-size:.66rem;font-weight:500;white-space:nowrap;
  margin:0;box-shadow:0 5px 14px rgba(15,23,42,.07);
}
#tpServicoModal .tnu-priority-badge strong{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:25px;height:22px;min-height:22px;padding:0 6px;border-radius:999px;
  background:var(--prio);color:#fff;font-size:.66rem;font-weight:650;
}
#tpServicoModal .tnu-priority-badge.prio-muito-urgente{--prio:#dc3545;--bg:#fff6f7}
#tpServicoModal .tnu-priority-badge.prio-alta{--prio:#f47b20;--bg:#fff8f2}
#tpServicoModal .tnu-priority-badge.prio-urgente{--prio:#d5a800;--bg:#fffbed}
#tpServicoModal .tnu-priority-badge.prio-baixa{--prio:#198754;--bg:#f3faf6}
#tpServicoModal .tnu-priority-badge.prio-sem{--prio:#6c757d;--bg:#f6f7f8}
#tpServicoModal .tp-header-return{
  display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;height:28px;min-height:28px;padding:0 10px;margin:0;
  border-radius:999px;border:1px solid #9ec5fe;background:#eef5ff;color:#0b5ed7;
  font-size:.66rem;font-weight:800;line-height:1;letter-spacing:.02em;white-space:nowrap;
  box-shadow:0 5px 14px rgba(15,23,42,.06);
}
#tpServicoModal .tp-header-return.d-none,#tpServicoModal .tp-header-priority.d-none{display:none!important;}
#tpServicoModal .vehicle-close{justify-self:end!important;}
@media(max-width:760px){
 #tpServicoModal .tp-priority-header{grid-template-columns:minmax(0,1fr) 36px!important;row-gap:8px!important;}
 #tpServicoModal .tp-header-badges{grid-column:1/-1!important;grid-row:2!important;justify-self:start!important;flex-wrap:wrap!important;}
}

/* v7.141 — Planeamento Operacional: ambulância ULSSMGo como posição operacional */
#tpServicoModal #tpOperationalSummary .op-step-node-ambulance{padding:2px!important;overflow:visible!important}
#tpServicoModal #tpOperationalSummary .op-ambulance-base{display:block;width:28px;height:22px;object-fit:contain}
#tpServicoModal #tpOperationalSummary .op-current-ambulance{position:absolute;z-index:6;width:34px;height:25px;object-fit:contain;pointer-events:none;transition:left .55s ease,top .55s ease,transform .35s ease;filter:drop-shadow(0 2px 2px rgba(0,0,0,.10))}
#tpServicoModal #tpOperationalSummary .op-current-ambulance.op-dir-ida{transform:translate(-50%,-50%)}
#tpServicoModal #tpOperationalSummary .op-current-ambulance.op-dir-return{transform:translate(-50%,-50%) scaleX(-1)}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance{top:29px}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepEta"]{left:14%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepPickup"]{left:30%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepPickupReady"]{left:50%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepStart"]{left:70%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepArrive"]{left:88%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepDestAccept"],#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnStart"],#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnArrive"],#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepOriginAccept"],#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnEnd"]{top:calc(53% + 20px)}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepDestAccept"]{left:88%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnStart"]{left:70%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnArrive"]{left:50%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepOriginAccept"]{left:30%}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnEnd"]{left:14%}
@media(max-width:760px){#tpServicoModal #tpOperationalSummary .op-current-ambulance{display:none!important}}

/* v7.142 — ETA com ícone próprio e ambulância ligeiramente após a fase atual */
#tpServicoModal #tpOperationalSummary .op-step-eta .op-ambulance-base{width:25px!important;height:25px!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepEta"]{left:17%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepPickup"]{left:33%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepPickupReady"]{left:53%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepStart"]{left:73%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepArrive"]{left:91%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepDestAccept"]{left:85%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnStart"]{left:67%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnArrive"]{left:47%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepOriginAccept"]{left:27%!important}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnEnd"]{left:11%!important}

/* v7.143 — Motorista: prioridade/retorno no cabeçalho + ambulância operacional, sem blocos redundantes */
.motorista-head-title{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important}
.motorista-head-flags{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.motorista-prio-badge,.motorista-return-top{box-sizing:border-box;height:25px;min-height:25px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;white-space:nowrap;font-size:.64rem;line-height:1;font-weight:700}
.motorista-prio-badge{gap:5px;padding:2px 8px 2px 3px;border:1px solid #d8dee3;background:#f6f7f8;color:#26323f}
.motorista-prio-badge b{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:19px;padding:0 5px;border-radius:999px;background:#6c757d;color:#fff;font-size:.62rem}
.motorista-prio-badge.prio-muito-urgente{background:#fff6f7}.motorista-prio-badge.prio-muito-urgente b{background:#dc3545}
.motorista-prio-badge.prio-alta{background:#fff8f2}.motorista-prio-badge.prio-alta b{background:#f47b20}
.motorista-prio-badge.prio-urgente{background:#fffbed}.motorista-prio-badge.prio-urgente b{background:#d5a800}
.motorista-prio-badge.prio-baixa{background:#f3faf6}.motorista-prio-badge.prio-baixa b{background:#198754}
.motorista-return-top{padding:0 9px;border:1px solid #9ec5fe;background:#eef5ff;color:#0b5ed7;letter-spacing:.02em}

/* U mais aberto: a curva fica fora da zona útil dos textos */
.motorista-op-timeline.has-return{padding-right:44px!important}
.motorista-op-timeline.has-return .op-u-turn{right:2.8%!important;width:50px!important;border-radius:0 34px 34px 0!important}
.motorista-op-timeline.has-return .op-u-phase{box-sizing:border-box!important;width:64px!important;min-width:64px!important;height:22px!important;padding:0 6px!important;display:flex!important;align-items:center!important;justify-content:center!important}

/* Ambulância ULSSMGo = posição operacional atual. IDA →, RETORNO ← */
.motorista-op-timeline.has-return .motorista-current-ambulance{position:absolute;z-index:7;width:34px;height:25px;object-fit:contain;pointer-events:none;top:29px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.10));transform:translate(-50%,-50%)}
.motorista-op-timeline.has-return .motorista-current-ambulance.op-dir-return{transform:translate(-50%,-50%) scaleX(-1)}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="pickup"]{left:32%}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="pickupReady"]{left:52%}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="start"]{left:72%}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="arrive"]{left:90%}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="destAccept"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnStart"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnArrive"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="originAccept"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnEnd"]{top:calc(53% + 20px)}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="destAccept"]{left:86%}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnStart"]{left:68%}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnArrive"]{left:48%}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="originAccept"]{left:28%}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnEnd"]{left:12%}
@media(max-width:760px){.motorista-op-timeline.has-return .motorista-current-ambulance{display:none!important}}

/* v7.145 — Motorista: posição da ambulância entre fases + U ligado + linhas ocultas sob os nós */
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="pickup"]{left:27%!important}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="pickupReady"]{left:47%!important}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="start"]{left:67%!important}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="arrive"]{left:85%!important}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="destAccept"]{left:91%!important}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnStart"]{left:73%!important}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnArrive"]{left:53%!important}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="originAccept"]{left:33%!important}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnEnd"]{left:17%!important}
/* prolonga a curva para tocar visualmente nas duas linhas sem a aproximar dos textos */
.motorista-op-timeline.has-return .op-u-turn{right:2.8%!important;width:72px!important}
/* o traço termina visualmente no aro do ícone, não aparece por baixo do círculo */
.motorista-op-timeline.has-return>.op-step .op-step-node{position:relative!important;z-index:4!important;box-shadow:0 0 0 4px #f4fbf7,0 5px 12px rgba(15,23,42,.05)!important}
.motorista-op-timeline.has-return>.op-step:nth-of-type(n+6) .op-step-node{box-shadow:0 0 0 4px #f5f8ff,0 5px 12px rgba(15,23,42,.05)!important}

/* v7.147 — Motorista: ambulância sobre a estrada, posição responsiva e próximo marco ainda pendente */
.motorista-op-timeline.has-return .motorista-current-ambulance{
  left:var(--motorista-amb-left,22%)!important;
  top:16.5px!important; /* rodas a tocar na linha verde; a linha deixa de atravessar a carroçaria */
  z-index:8!important;
}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="destAccept"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnStart"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnArrive"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="originAccept"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnEnd"]{
  top:calc(53% + 8px)!important; /* rodas a tocar na linha azul */
}
/* O próximo marco não está concluído: permanece cinza. A ambulância mostra a posição atual. */
.motorista-op-timeline .op-step.is-current:not(.is-done) .op-step-node{
  background:#f3f5f7!important;
  border:1px solid #d2d8df!important;
  color:#6f7782!important;
  box-shadow:0 0 0 4px #f4fbf7,0 5px 12px rgba(15,23,42,.04)!important;
}
.motorista-op-timeline .op-step.is-current:not(.is-done) .op-step-title,
.motorista-op-timeline .op-step.is-current:not(.is-done) .op-step-value{
  color:#8a94a3!important;
  font-weight:500!important;
}
.motorista-op-timeline.has-return .op-role-dest-accept.is-current:not(.is-done) .op-step-node,
.motorista-op-timeline.has-return .op-role-return-start.is-current:not(.is-done) .op-step-node,
.motorista-op-timeline.has-return .op-role-return-arrive.is-current:not(.is-done) .op-step-node,
.motorista-op-timeline.has-return .op-role-origin-accept.is-current:not(.is-done) .op-step-node,
.motorista-op-timeline.has-return .op-role-return-end.is-current:not(.is-done) .op-step-node{
  box-shadow:0 0 0 4px #f5f8ff,0 5px 12px rgba(15,23,42,.04)!important;
}


/* v7.148 — Motorista: posição final da ambulância + máscara das linhas nos marcos */
/* A linha é a estrada: as rodas mantêm-se apoiadas nela; o JS recua meia ambulância no sentido oposto à marcha. */
.motorista-op-timeline.has-return .motorista-current-ambulance{
  top:16.5px!important;
}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="destAccept"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnStart"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnArrive"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="originAccept"],
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnEnd"]{
  top:calc(53% + 8px)!important;
}
/* Mascara sólida à volta de cada marco para a estrada terminar no aro e nunca atravessar o ícone. */
.motorista-op-timeline.has-return>.op-step .op-step-node{
  position:relative!important;
  z-index:6!important;
  box-shadow:0 0 0 7px #f4fbf7,0 5px 12px rgba(15,23,42,.05)!important;
}
.motorista-op-timeline.has-return>.op-role-return-end .op-step-node,
.motorista-op-timeline.has-return>.op-role-origin-accept .op-step-node,
.motorista-op-timeline.has-return>.op-role-return-arrive .op-step-node,
.motorista-op-timeline.has-return>.op-role-return-start .op-step-node,
.motorista-op-timeline.has-return>.op-role-dest-accept .op-step-node{
  box-shadow:0 0 0 7px #f5f8ff,0 5px 12px rgba(15,23,42,.05)!important;
}
/* O próximo marco continua pendente/cinza, mesmo com a máscara reforçada. */
.motorista-op-timeline .op-step.is-current:not(.is-done) .op-step-node{
  background:#f3f5f7!important;
  border-color:#d2d8df!important;
  color:#6f7782!important;
}


/* v7.150 — Planeamento Operacional: circuito contínuo, marcos limpos e ambulância a meio de cada troço */
/* Segmentos horizontais terminam ANTES do aro de cada marco; deixam de passar por cima dos ícones. */
.motorista-op-timeline.has-return .op-role-pickup::before,
.motorista-op-timeline.has-return .op-role-pickup-ready::before,
.motorista-op-timeline.has-return .op-role-start::before,
.motorista-op-timeline.has-return .op-role-arrive::before,
.motorista-op-timeline.has-return .op-role-origin-accept::before,
.motorista-op-timeline.has-return .op-role-return-arrive::before,
.motorista-op-timeline.has-return .op-role-return-start::before,
.motorista-op-timeline.has-return .op-role-dest-accept::before{
  left:calc(-50% + 10px)!important;
  width:calc(100% - 32px)!important;
  z-index:0!important;
}
.motorista-op-timeline.has-return>.op-step{z-index:2!important;}
.motorista-op-timeline.has-return>.op-step .op-step-node{
  position:relative!important;z-index:6!important;
  box-shadow:none!important;
}
/* pequeno halo sólido: garante que nenhuma linha toca/atravessa o conteúdo do ícone */
.motorista-op-timeline.has-return>.op-step .op-step-node::after{
  content:""!important;position:absolute!important;inset:-5px!important;border-radius:999px!important;
  background:#f4fbf7!important;z-index:-1!important;pointer-events:none!important;
}
.motorista-op-timeline.has-return>.op-role-return-end .op-step-node::after,
.motorista-op-timeline.has-return>.op-role-origin-accept .op-step-node::after,
.motorista-op-timeline.has-return>.op-role-return-arrive .op-step-node::after,
.motorista-op-timeline.has-return>.op-role-return-start .op-step-node::after,
.motorista-op-timeline.has-return>.op-role-dest-accept .op-step-node::after{background:#f5f8ff!important;}

/* Curva: começa imediatamente no bordo dos ícones Chegada ao destino / Doente aceite no destino. */
.motorista-op-timeline.has-return .op-u-turn{
  left:var(--motorista-u-left,calc(90% + 16px))!important;
  right:12px!important;
  width:auto!important;
  top:29px!important;
  bottom:calc(50% - 29px)!important;
  border-radius:0 34px 34px 0!important;
  z-index:1!important;
}

/* Fallbacks coerentes com os pontos médios; o JS calcula a posição exata pelos centros reais. */
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="pickup"]{left:20%!important;}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="pickupReady"]{left:40%!important;}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="start"]{left:60%!important;}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="arrive"]{left:80%!important;}
/* a variável calculada em JS tem prioridade e mantém a ambulância exatamente a meio do troço */
.motorista-op-timeline.has-return .motorista-current-ambulance{left:var(--motorista-amb-left,20%)!important;}


/* v7.151 — Ambulância: deslocação visível após cada ação, sem refresh */
.motorista-op-timeline.has-return .motorista-current-ambulance{
  transition:left 1.45s cubic-bezier(.22,.61,.36,1), top 1.45s cubic-bezier(.22,.61,.36,1), transform .25s ease!important;
  will-change:left,top;
}

/* v7.153 — Terminologia operacional + curva U do motorista mais próxima dos marcos */
.motorista-op-timeline.has-return{
  padding-right:24px!important;
}
.motorista-op-timeline.has-return .op-u-turn{
  right:8.2%!important;
  width:32px!important;
  border-radius:0 26px 26px 0!important;
}


/* v7.154 — UTD/Transportadora: geometria do circuito igual ao motorista */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return{
  --tp-u-left:calc(90% + 16px);
  position:relative!important;
}
/* Segmentos terminam antes dos aros; nenhuma linha verde/azul atravessa os ícones. */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepPickup::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepPickupReady::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepStart::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepArrive::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepOriginAccept::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnArrive::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnStart::before,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepDestAccept::before{
  left:calc(-50% + 10px)!important;
  width:calc(100% - 32px)!important;
  z-index:0!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return>.op-step{z-index:2!important;}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return>.op-step .op-step-node{
  position:relative!important;
  z-index:6!important;
  box-shadow:none!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return>.op-step .op-step-node::after{
  content:""!important;
  position:absolute!important;
  inset:-5px!important;
  border-radius:999px!important;
  background:#f4fbf7!important;
  z-index:-1!important;
  pointer-events:none!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnEnd .op-step-node::after,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepOriginAccept .op-step-node::after,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnArrive .op-step-node::after,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepReturnStart .op-step-node::after,
#tpServicoModal #tpOperationalSummary .op-timeline.has-return #tpStepDestAccept .op-step-node::after{
  background:#f5f8ff!important;
}
/* Curva U encosta aos dois últimos marcos, tal como no motorista. */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-turn{
  left:var(--tp-u-left)!important;
  right:12px!important;
  width:auto!important;
  top:29px!important;
  bottom:calc(50% - 29px)!important;
  border-radius:0 26px 26px 0!important;
  z-index:1!important;
}
/* Ambulância sempre a meio do troço que antecede a próxima ação. */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance{
  left:var(--tp-amb-left,20%)!important;
  top:16.5px!important;
  z-index:8!important;
  transition:left 1.45s cubic-bezier(.22,.61,.36,1),top 1.45s cubic-bezier(.22,.61,.36,1),transform .25s ease!important;
  will-change:left,top;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepDestAccept"],
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnStart"],
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnArrive"],
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepOriginAccept"],
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step="tpStepReturnEnd"]{
  top:calc(53% + 8px)!important;
}

/* v7.156 — Transportadora/UTD externa: circuito espelhado ao motorista */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-turn{
  right:8.2%!important; width:32px!important; border-radius:0 26px 26px 0!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance{
  left:var(--tp-amb-left,20%)!important;
  transition:left 1.45s cubic-bezier(.22,.61,.36,1),top 1.45s cubic-bezier(.22,.61,.36,1),transform .25s ease!important;
}


/* v7.156 — UTD externa: a posição calculada geometricamente prevalece sobre fallbacks legacy data-step */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[data-step]{
  left:var(--tp-amb-left,20%)!important;
}


/* v7.158 — Motorista: retorno centrado + U mais aberto + passagem animada pelo U */
.motorista-op-timeline.has-return .motorista-current-ambulance{
  left:var(--motorista-amb-left,20%)!important;
}
/* O U fica um pouco mais largo, mantendo o início junto ao bordo dos dois marcos. */
.motorista-op-timeline.has-return .op-u-turn{
  left:var(--motorista-u-left,calc(90% + 16px))!important;
  right:3.8%!important;
  width:auto!important;
  border-radius:0 34px 34px 0!important;
}

/* v7.158 — Motorista: posição exata no troço Doente entregue ↔ Chegada à origem.
   A variável é calculada pelos centros reais dos marcos; nenhuma regra data-step pode sobrepor. */
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="originAccept"]{
  left:var(--motorista-amb-left)!important;
  top:calc(53% + 8px)!important;
}


/* v7.159 — Motorista: fallback robusto no retorno.
   Quando a próxima ação é Doente entregue (originAccept), a ambulância fica
   a meio entre Doente entregue (coluna 2) e Chegada à origem (coluna 3).
   O JS substitui este 40% pelos centros reais quando o timeline está visível. */
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="originAccept"]{
  left:var(--motorista-amb-left,40%)!important;
  top:calc(53% + 8px)!important;
}

/* v7.161 — Motorista: ambulância acompanha a curva U verde→azul */
.motorista-op-timeline.has-return .motorista-ambulance-path-ghost{
  position:absolute!important;
  z-index:20!important;
  width:34px!important;
  height:25px!important;
  object-fit:contain!important;
  pointer-events:none!important;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.10))!important;
  transform-origin:50% 50%!important;
  will-change:left,top,transform!important;
}

/* v7.163 — Motorista: progressão geométrica completa no retorno.
   - destAccept: ambulância pára no centro do U (verde->azul)
   - returnStart: meio entre Doente aceite no destino e Início do retorno
   - returnArrive: meio entre Início do retorno e Chegada à origem
   - originAccept: meio entre Chegada à origem e Doente entregue */
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnStart"]{left:var(--motorista-amb-left,80%)!important;}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnArrive"]{left:var(--motorista-amb-left,60%)!important;}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="originAccept"]{left:var(--motorista-amb-left,40%)!important;}
.motorista-op-timeline.has-return .motorista-current-ambulance[data-step="returnEnd"]{left:var(--motorista-amb-left,20%)!important;}
.motorista-op-timeline.has-return .motorista-current-ambulance.op-dir-turning{
  transform:translate(-50%,-50%) rotate(90deg)!important;
}

/* v7.164 — durante a animação U a ambulância real fica invisível; só o clone percorre o traçado. */
.motorista-op-timeline.has-return .motorista-current-ambulance[style*="opacity: 0"]{transition:none!important;}

/* v7.165 — ghost do percurso U totalmente independente da ambulância real */
.motorista-op-timeline.has-return .motorista-ambulance-path-ghost{left:0;top:0;transition:none!important;}

/* v7.166 — SVG/path motion: durante o percurso o clone é comandado exclusivamente pelo path. */
.motorista-op-timeline.has-return .motorista-ambulance-path-ghost{
  position:absolute!important;z-index:20!important;width:34px!important;height:25px!important;
  object-fit:contain!important;pointer-events:none!important;transition:none!important;
  transform-origin:50% 50%!important;will-change:left,top,transform!important;
}

/* v7.168 — UTD/Transportadora externa: curva U e estados futuros iguais ao motorista/UTD interna */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-u-turn{
  left:var(--tp-u-left,calc(90% + 16px))!important;
  right:3.8%!important;
  width:auto!important;
  top:29px!important;
  bottom:calc(50% - 29px)!important;
  border-radius:0 34px 34px 0!important;
  border-top:2px solid #43ad70!important;
  border-right:2px solid #43ad70!important;
  border-bottom:2px solid #3b82f6!important;
}
#tpServicoModal #tpOperationalSummary .op-step:not(.op-step-eta):not(.is-done) .op-step-node{
  background:#f1f3f5!important;
  border-color:#d7dde3!important;
  color:#98a2ad!important;
  box-shadow:none!important;
  filter:grayscale(1)!important;
  opacity:.82!important;
}
#tpServicoModal #tpOperationalSummary .op-step:not(.op-step-eta):not(.is-done) .op-step-title,
#tpServicoModal #tpOperationalSummary .op-step:not(.op-step-eta):not(.is-done) .op-step-value{
  color:#98a2ad!important;
  font-weight:500!important;
}
/* Mantém explicitamente o motorista com a mesma geometria visual do U. */
.motorista-op-timeline.has-return .op-u-turn{
  left:var(--motorista-u-left,calc(90% + 16px))!important;
  right:3.8%!important;
  width:auto!important;
  border-radius:0 34px 34px 0!important;
}
/* v7.169 — UTD externa: orientação da ambulância durante a curva U, igual ao motorista. */
#tpServicoModal #tpOperationalSummary .op-current-ambulance.op-dir-turning{transform:translate(-50%,-50%) rotate(90deg)!important;}

/* v7.176 — UTD externa: estado visual dos marcos concluídos forçado de forma consistente. */
#tpServicoModal #tpOperationalSummary .op-step.is-done .op-step-title,
#tpServicoModal #tpOperationalSummary .op-step.is-done .op-step-value,
#tpServicoModal #tpOperationalSummary .op-step-eta .op-step-title,
#tpServicoModal #tpOperationalSummary .op-step-eta .op-step-value{
  color:#08763a!important;
  font-weight:700!important;
}
#tpServicoModal #tpOperationalSummary .op-step:not(.is-done):not(.op-step-eta) .op-step-title,
#tpServicoModal #tpOperationalSummary .op-step:not(.is-done):not(.op-step-eta) .op-step-value{
  color:#98a2b3!important;
  font-weight:500!important;
}

/* v7.177 — UTD externa: durante o path motion da curva U, a ambulância real não interpola left/top. */
#tpServicoModal #tpOperationalSummary .op-timeline.has-return .op-current-ambulance[style*="opacity: 0"]{
  transition:none!important;
}

/* v7.184 — UTD externa SEM RETORNO: linha contínua visual entre marcos + ambulância ancorada ao timeline */
#tpServicoModal #tpOperationalSummary .op-timeline:not(.has-return){
  position:relative!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:0!important;
  overflow:visible!important;
  padding:8px 12px 6px!important;
  margin:.12rem 0 .25rem!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline:not(.has-return)>.op-step{
  position:relative!important;
  z-index:3!important;
  flex:1 1 0!important;
  min-width:0!important;
  max-width:none!important;
}
#tpServicoModal #tpOperationalSummary .op-timeline:not(.has-return)>.op-line{
  position:relative!important;
  z-index:1!important;
  flex:1.05 1 72px!important;
  min-width:42px!important;
  height:2px!important;
  margin-top:13px!important;
  margin-left:-34px!important;
  margin-right:-34px!important;
  background:linear-gradient(90deg,#43ad70,#cbd5df)!important;
}
/* Os círculos dos marcos ficam acima da linha para esta tocar visualmente no bordo sem os atravessar. */
#tpServicoModal #tpOperationalSummary .op-timeline:not(.has-return) .op-step-node{
  position:relative!important;
  z-index:4!important;
  background-clip:padding-box!important;
  box-shadow:0 0 0 4px #fff,0 4px 10px rgba(15,23,42,.05)!important;
}
/* A ambulância absoluta deve usar o próprio timeline como referencial, nunca o modal. */
#tpServicoModal #tpOperationalSummary .op-timeline:not(.has-return) .op-current-ambulance{
  position:absolute!important;
  z-index:8!important;
}
@media(max-width:900px){
  #tpServicoModal #tpOperationalSummary .op-timeline:not(.has-return)>.op-line{
    flex:.9 1 54px!important;
    min-width:28px!important;
    margin-left:-28px!important;
    margin-right:-28px!important;
  }
}


/* v7.186 — MOTORISTA SEM RETORNO: layout definitivo no tablet/desktop.
   7 marcos uniformes, linhas a ligar os ícones e ambulância ancorada ao próprio timeline. */
.motorista-op-timeline:not(.has-return){
  position:relative!important;
  display:grid!important;
  grid-template-columns:
    minmax(66px,1fr) minmax(24px,.52fr)
    minmax(66px,1fr) minmax(24px,.52fr)
    minmax(66px,1fr) minmax(24px,.52fr)
    minmax(66px,1fr) minmax(24px,.52fr)
    minmax(66px,1fr) minmax(24px,.52fr)
    minmax(66px,1fr) minmax(24px,.52fr)
    minmax(66px,1fr)!important;
  align-items:start!important;
  gap:0!important;
  overflow:visible!important;
  padding:7px 8px 10px!important;
  margin:.12rem 0 .25rem!important;
}
.motorista-op-timeline:not(.has-return)>.op-step{
  position:relative!important;
  z-index:3!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  flex:none!important;
}
.motorista-op-timeline:not(.has-return)>.op-line{
  position:relative!important;
  z-index:1!important;
  width:calc(100% + 18px)!important;
  min-width:0!important;
  height:2px!important;
  margin-top:13px!important;
  margin-left:-9px!important;
  margin-right:-9px!important;
  background:#d7dde3!important;
  border:0!important;
  opacity:1!important;
  align-self:start!important;
}
.motorista-op-timeline:not(.has-return)>.op-step.op-step-eta + .op-line,
.motorista-op-timeline:not(.has-return)>.op-step.is-done + .op-line{
  background:#65b887!important;
}
.motorista-op-timeline:not(.has-return) .op-step-node{
  position:relative!important;
  z-index:5!important;
  background-clip:padding-box!important;
  box-shadow:0 0 0 4px #fff,0 4px 10px rgba(15,23,42,.05)!important;
}
.motorista-op-timeline:not(.has-return) .op-step-title,
.motorista-op-timeline:not(.has-return) .op-step-time{
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-height:1.12!important;
  max-width:82px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.motorista-op-timeline:not(.has-return) .op-step-title{font-size:.66rem!important;}
.motorista-op-timeline:not(.has-return) .op-step-time{font-size:.62rem!important;}
.motorista-op-timeline:not(.has-return) .motorista-current-ambulance{
  position:absolute!important;
  z-index:12!important;
  width:34px!important;
  height:25px!important;
  max-width:34px!important;
  max-height:25px!important;
  object-fit:contain!important;
  pointer-events:none!important;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.10))!important;
  transform:translate(-50%,-50%)!important;
  transition:left 1.2s cubic-bezier(.22,.61,.36,1),top 1.2s cubic-bezier(.22,.61,.36,1)!important;
  will-change:left,top,transform!important;
}
.motorista-op-timeline:not(.has-return) .motorista-current-ambulance.op-dir-ida{
  transform:translate(-50%,-50%)!important;
}
@media(max-width:760px){
  .motorista-op-timeline:not(.has-return){
    grid-template-columns:
      minmax(58px,1fr) minmax(16px,.36fr)
      minmax(58px,1fr) minmax(16px,.36fr)
      minmax(58px,1fr) minmax(16px,.36fr)
      minmax(58px,1fr) minmax(16px,.36fr)
      minmax(58px,1fr) minmax(16px,.36fr)
      minmax(58px,1fr) minmax(16px,.36fr)
      minmax(58px,1fr)!important;
    padding-left:4px!important;padding-right:4px!important;
  }
  .motorista-op-timeline:not(.has-return)>.op-line{
    width:calc(100% + 12px)!important;margin-left:-6px!important;margin-right:-6px!important;
  }
  .motorista-op-timeline:not(.has-return) .op-step-title{font-size:.62rem!important;max-width:70px!important;}
  .motorista-op-timeline:not(.has-return) .op-step-time{font-size:.58rem!important;max-width:70px!important;}
  .motorista-op-timeline:not(.has-return) .motorista-current-ambulance{width:31px!important;height:23px!important;}
}


/* v7.188 — MOTORISTA SEM RETORNO: geometria final robusta em tablet/desktop. */
.motorista-op-timeline:not(.has-return){
  position:relative!important;
  display:grid!important;
  grid-template-columns:
    minmax(56px,1fr) minmax(18px,.38fr)
    minmax(56px,1fr) minmax(18px,.38fr)
    minmax(56px,1fr) minmax(18px,.38fr)
    minmax(56px,1fr) minmax(18px,.38fr)
    minmax(56px,1fr) minmax(18px,.38fr)
    minmax(56px,1fr) minmax(18px,.38fr)
    minmax(56px,1fr)!important;
  align-items:start!important;
  gap:0!important;
  overflow:visible!important;
  padding:8px 4px 10px!important;
}
.motorista-op-timeline:not(.has-return)>.op-step{
  position:relative!important;
  z-index:4!important;
  min-width:0!important;
  width:auto!important;
  max-width:none!important;
}
.motorista-op-timeline:not(.has-return)>.op-line{
  position:relative!important;
  z-index:1!important;
  align-self:start!important;
  width:calc(100% + 18px)!important;
  height:2px!important;
  min-width:0!important;
  margin-top:13px!important;
  margin-left:-9px!important;
  margin-right:-9px!important;
  background:#d5dce4!important;
  opacity:1!important;
  border:0!important;
}
.motorista-op-timeline:not(.has-return)>.op-step.op-step-eta + .op-line,
.motorista-op-timeline:not(.has-return)>.op-step.is-done + .op-line{background:#65b887!important;}
.motorista-op-timeline:not(.has-return) .op-step-node{
  position:relative!important;
  z-index:5!important;
  box-shadow:0 0 0 4px #fff,0 4px 10px rgba(15,23,42,.05)!important;
}
.motorista-op-timeline:not(.has-return) .op-step-title,
.motorista-op-timeline:not(.has-return) .op-step-value{
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-height:1.08!important;
  max-width:74px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.motorista-op-timeline:not(.has-return) .op-step-title{font-size:.64rem!important;}
.motorista-op-timeline:not(.has-return) .op-step-value{font-size:.60rem!important;}
.motorista-op-timeline:not(.has-return) .motorista-current-ambulance{
  position:absolute!important;
  z-index:12!important;
  width:34px!important;
  height:25px!important;
  max-width:34px!important;
  max-height:25px!important;
  object-fit:contain!important;
  pointer-events:none!important;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.10))!important;
  transform:translate(-50%,-100%)!important;
  transition:left 1.15s cubic-bezier(.22,.61,.36,1),top 1.15s cubic-bezier(.22,.61,.36,1)!important;
  will-change:left,top!important;
}
.motorista-op-timeline:not(.has-return) .motorista-current-ambulance.op-dir-ida{
  transform:translate(-50%,-100%)!important;
}
@media(max-width:760px){
  .motorista-op-timeline:not(.has-return){
    grid-template-columns:
      minmax(50px,1fr) minmax(12px,.26fr)
      minmax(50px,1fr) minmax(12px,.26fr)
      minmax(50px,1fr) minmax(12px,.26fr)
      minmax(50px,1fr) minmax(12px,.26fr)
      minmax(50px,1fr) minmax(12px,.26fr)
      minmax(50px,1fr) minmax(12px,.26fr)
      minmax(50px,1fr)!important;
    padding-left:2px!important;padding-right:2px!important;
  }
  .motorista-op-timeline:not(.has-return)>.op-line{width:calc(100% + 14px)!important;margin-left:-7px!important;margin-right:-7px!important;}
  .motorista-op-timeline:not(.has-return) .op-step-title{font-size:.60rem!important;max-width:64px!important;}
  .motorista-op-timeline:not(.has-return) .op-step-value{font-size:.56rem!important;max-width:64px!important;}
  .motorista-op-timeline:not(.has-return) .motorista-current-ambulance{width:31px!important;height:23px!important;}
}

/* v7.189 — UTD externa SEM RETORNO: ambulância visível e ancorada ao circuito linear */
#tpServicoModal #tpOperationalSummary .op-timeline:not(.has-return) .op-current-ambulance:not(.d-none){
  display:block!important;visibility:visible!important;opacity:1!important;
  position:absolute!important;z-index:20!important;width:34px!important;height:25px!important;
}

/* v7.194 — UTD: a deslocação é controlada exclusivamente pelo path-motion JS.
   Impede o segundo movimento causado pela transition CSS do elemento real
   quando o ghost termina e a posição final é consolidada. */
#tpServicoModal #tpOperationalSummary .op-current-ambulance{
  transition:none!important;
  will-change:auto!important;
}


/* ULSSMGo: modais de planeamento adaptativos — 2026-09-30.
   Apenas geometria; não interfere com o percurso operacional. */
#utdModal .modal-dialog,
#utdDetalheModal .modal-dialog,
#tpServicoModal .modal-dialog {
  width: min(1120px, calc(100% - 24px));
  max-width: 1120px;
  max-height: calc(100dvh - 32px);
  margin: 16px auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
#utdModal .modal-content,
#utdDetalheModal .modal-content,
#tpServicoModal .modal-content {
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: calc(100dvh - 32px);
  overflow: hidden;
}
#utdModal .modal-header,
#utdDetalheModal .modal-header,
#tpServicoModal .modal-header,
#utdModal .modal-footer,
#utdDetalheModal .modal-footer,
#tpServicoModal .modal-footer {
  flex: 0 0 auto;
  position: relative;
  z-index: 2;
}
#utdModal .modal-body,
#utdDetalheModal .modal-body,
#tpServicoModal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}
#utdModal .modal-footer,
#utdDetalheModal .modal-footer,
#tpServicoModal .modal-footer {
  background: #fff;
  border-top: 1px solid #e5eaf2;
}
@media (max-width: 767.98px) {
  #utdModal .modal-dialog,
  #utdDetalheModal .modal-dialog,
  #tpServicoModal .modal-dialog {
    width: calc(100% - 12px);
    max-height: calc(100dvh - 12px);
    margin: 6px auto;
  }
  #utdModal .modal-content,
  #utdDetalheModal .modal-content,
  #tpServicoModal .modal-content { max-height: calc(100dvh - 12px); }
  #utdModal .modal-footer,
  #utdDetalheModal .modal-footer,
  #tpServicoModal .modal-footer { gap: 8px; flex-wrap: wrap; }
  #utdModal .utd-footer-actions,
  #utdDetalheModal .utd-footer-actions,
  #tpServicoModal .utd-footer-actions { display: flex; flex-wrap: wrap; gap: 8px; }
}
@supports not (height: 100dvh) {
  #utdModal .modal-dialog, #utdDetalheModal .modal-dialog, #tpServicoModal .modal-dialog,
  #utdModal .modal-content, #utdDetalheModal .modal-content, #tpServicoModal .modal-content {
    max-height: calc(100vh - 32px);
  }
}
/* ULSSMGo — correção estrutural da altura dos modais de planeamento (30-09-2026).
   A altura é definida no dialog; o body é a única região com scroll. */
#utdModal .modal-dialog,
#utdDetalheModal .modal-dialog,
#tpServicoModal .modal-dialog {
  height: calc(100vh - 24px) !important;
  height: calc(100dvh - 24px) !important;
  max-height: calc(100dvh - 24px) !important;
  min-height: 0 !important;
  margin-top: 12px !important;
  margin-bottom: 12px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
}
#utdModal .modal-dialog > .modal-content,
#utdDetalheModal .modal-dialog > .modal-content,
#tpServicoModal .modal-dialog > .modal-content {
  height: 100% !important;
  max-height: 100% !important;
  min-height: 0 !important;
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
#utdModal .modal-content > .modal-header,
#utdDetalheModal .modal-content > .modal-header,
#tpServicoModal .modal-content > .modal-header,
#utdModal .modal-content > .modal-footer,
#utdDetalheModal .modal-content > .modal-footer,
#tpServicoModal .modal-content > .modal-footer {
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
}
#utdModal .modal-content > .modal-body,
#utdDetalheModal .modal-content > .modal-body,
#tpServicoModal .modal-content > .modal-body {
  flex: 1 1 0% !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
@media (max-width: 767.98px) {
  #utdModal .modal-dialog,
  #utdDetalheModal .modal-dialog,
  #tpServicoModal .modal-dialog {
    height: calc(100dvh - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
    margin-top: 6px !important;
    margin-bottom: 6px !important;
  }
}
