/* TSTT NFS-e — design system v1.1 (identidade TSTT: azul #004888, vermelho #E00010, ciano #20A0D8) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{
  --tstt-blue:#004888; --tstt-blue-dark:#003566; --tstt-blue-light:#20a0d8; --tstt-blue-soft:#eaf2fb; --tstt-blue-ghost:#f3f7fc;
  --tstt-red:#e00010; --tstt-red-dark:#b8000d; --tstt-red-soft:#fdecee; --tstt-navy:#0b2a4a; --tstt-blue-text:#004888;
  --ink:#0f1c2e; --ink-2:#3b4a5e; --muted:#6b7a90; --line:#e8edf3; --line-2:#dbe2ec; --surface:#ffffff; --surface-2:#f4f7fb; --page:#eef2f7;
  --sidebar-bg:#ffffff; --sidebar-line:#eaeef4;
  --bs-primary:#004888; --bs-primary-rgb:0,72,136; --bs-danger:#e00010; --bs-danger-rgb:224,0,16; --bs-link-color:#004888; --bs-link-hover-color:#003566;
  --bs-body-bg:var(--page); --bs-body-color:var(--ink); --bs-border-color:var(--line);
  --bs-body-font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --sidebar-w:262px; --radius:14px; --radius-sm:9px;
  --shadow-sm:0 1px 2px rgba(16,30,54,.04); --shadow-card:0 1px 3px rgba(16,30,54,.04),0 6px 16px rgba(16,30,54,.05); --shadow-md:0 10px 30px rgba(16,30,54,.12);
}
[data-bs-theme=dark]{
  --ink:#e6edf6; --ink-2:#b8c4d4; --muted:#8a99ad; --line:#223146; --line-2:#2c3d56; --surface:#121c2b; --surface-2:#172336; --page:#0a111c;
  --sidebar-bg:#0e1826; --sidebar-line:#1d2b3f;
  --tstt-blue-soft:#14304e; --tstt-blue-ghost:#11253c; --tstt-red-soft:#3a1519; --tstt-blue-text:#7cc0f0;
  --bs-link-color:#7cc0f0; --bs-link-hover-color:#a9d6f7; --bs-primary-text-emphasis:#7cc0f0;
  --bs-body-bg:var(--page); --bs-body-color:var(--ink); --bs-border-color:var(--line);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4); --shadow-card:0 1px 3px rgba(0,0,0,.3),0 6px 16px rgba(0,0,0,.35); --shadow-md:0 12px 30px rgba(0,0,0,.55);
}
html{font-size:15px}
body{font-size:.9rem;letter-spacing:-.005em;-webkit-font-smoothing:antialiased}
a{text-decoration:none}
h1,h2,h3,h4,h5,h6{letter-spacing:-.015em}
::selection{background:rgba(32,160,216,.25)}

/* Bootstrap overrides */
.btn{border-radius:var(--radius-sm);font-weight:500;padding:.5rem .9rem;transition:all .15s}
.btn-sm{padding:.3rem .65rem;font-size:.8rem}
.btn-lg{padding:.7rem 1.1rem;font-size:1rem}
.btn-primary{--bs-btn-bg:#004888;--bs-btn-border-color:#004888;--bs-btn-hover-bg:#003566;--bs-btn-hover-border-color:#003566;--bs-btn-active-bg:#002c52;--bs-btn-disabled-bg:#8fb0cf;--bs-btn-disabled-border-color:#8fb0cf;box-shadow:0 1px 2px rgba(0,72,136,.25)}
.btn-outline-primary{--bs-btn-color:var(--tstt-blue-text);--bs-btn-border-color:#c9d8e8;--bs-btn-hover-bg:var(--tstt-blue-soft);--bs-btn-hover-color:var(--tstt-blue-text);--bs-btn-hover-border-color:#9dbad9;--bs-btn-active-bg:var(--tstt-blue-soft);--bs-btn-active-color:var(--tstt-blue-text);--bs-btn-active-border-color:#9dbad9}
.btn-danger{--bs-btn-bg:#e00010;--bs-btn-border-color:#e00010;--bs-btn-hover-bg:#b8000d;--bs-btn-hover-border-color:#b8000d;--bs-btn-active-bg:#9a000b;box-shadow:0 1px 2px rgba(224,0,16,.25)}
.btn-outline-danger{--bs-btn-color:#c4000e;--bs-btn-border-color:#f1b9bd;--bs-btn-hover-bg:var(--tstt-red-soft);--bs-btn-hover-color:#b8000d;--bs-btn-hover-border-color:#e58d94}
.btn-outline-secondary,.btn-outline-success{--bs-btn-border-color:var(--line-2)}
.btn-light{--bs-btn-bg:var(--surface);--bs-btn-border-color:var(--line-2);--bs-btn-color:var(--ink-2);--bs-btn-hover-bg:var(--surface-2);--bs-btn-hover-border-color:var(--line-2);--bs-btn-hover-color:var(--ink);--bs-btn-active-bg:var(--surface-2)}
.text-primary{color:var(--tstt-blue)!important}.bg-primary{background-color:var(--tstt-blue)!important}
.badge.bg-primary{background-color:var(--tstt-blue)!important}
.form-control,.form-select{border-radius:var(--radius-sm);border-color:var(--line-2);background-color:var(--surface);color:var(--ink);padding:.5rem .75rem}
.form-control:focus,.form-select:focus{border-color:#20a0d8;box-shadow:0 0 0 3px rgba(32,160,216,.18)}
.form-control-sm,.form-select-sm{padding:.3rem .55rem}
.input-group-text{background:var(--surface-2);border-color:var(--line-2);color:var(--muted);border-radius:var(--radius-sm)}
.form-label{font-weight:500;font-size:.8rem;color:var(--ink-2);margin-bottom:.3rem}
.form-text{font-size:.74rem;color:var(--muted)}
.form-check-input:checked{background-color:var(--tstt-blue);border-color:var(--tstt-blue)}
.nav-tabs{border-bottom:1px solid var(--line)}
.nav-tabs .nav-link{color:var(--muted);border:0;border-bottom:2px solid transparent;padding:.6rem .9rem;font-weight:500;margin-bottom:-1px}
.nav-tabs .nav-link:hover{color:var(--tstt-blue-text);border-color:transparent}
.nav-tabs .nav-link.active{color:var(--tstt-blue-text);background:transparent;border-color:transparent transparent var(--tstt-red)}
.dropdown-menu{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.35rem;background:var(--surface)}
.dropdown-item{border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.86rem;color:var(--ink)}
.dropdown-item:hover{background:var(--tstt-blue-ghost);color:var(--tstt-blue-text)}
.modal-content{border:0;border-radius:16px;box-shadow:var(--shadow-md);background:var(--surface)}
.modal-header{border-bottom:1px solid var(--line);padding:1rem 1.25rem}.modal-footer{border-top:1px solid var(--line)}
.modal-title{font-weight:600;font-size:1.05rem}
.alert{border:1px solid transparent;border-radius:var(--radius);font-size:.87rem}
.alert-info{background:var(--tstt-blue-ghost);border-color:#cfe0f1;color:#1d3f66}.alert-danger{background:var(--tstt-red-soft);border-color:#f3c3c7;color:#8f0810}
.alert-warning{background:#fff7e6;border-color:#f8dfa6;color:#7a4b00}.alert-success{background:#eefaf3;border-color:#bfe8cf;color:#155c37}
.alert-light{background:var(--surface);border-color:var(--line)}
[data-bs-theme=dark] .alert-info{color:#bcd7f2}[data-bs-theme=dark] .alert-danger{color:#f6b3b8;border-color:#5a2126}[data-bs-theme=dark] .alert-warning{background:#2c2410;border-color:#5a4a1c;color:#f3d38a}[data-bs-theme=dark] .alert-success{background:#0f2a1c;border-color:#1f4d33;color:#a9e6c3}
.toast{border-radius:var(--radius);box-shadow:var(--shadow-md)}
.list-group-item{border-color:var(--line);background:var(--surface);color:var(--ink)}
.list-group-item.active{background:var(--tstt-blue-soft);border-color:var(--tstt-blue-soft);color:var(--tstt-blue-text);font-weight:600}
code{color:#b3005a;background:var(--surface-2);padding:.1em .35em;border-radius:4px;font-size:.82em}
[data-bs-theme=dark] code{color:#f0a3cb}
hr{border-color:var(--line);opacity:1}

/* splash */
.splash{position:fixed;inset:0;background:radial-gradient(1200px 600px at 20% 10%,#1a5fa0 0%,var(--tstt-navy) 55%,#071a30 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2000}
.splash img{width:96px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.35))}

/* login */
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--page)}
.login-brand{position:relative;overflow:hidden;background:radial-gradient(900px 500px at 15% 15%,#1a67ad 0%,var(--tstt-blue) 40%,var(--tstt-navy) 100%);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between}
.login-brand::before{content:"";position:absolute;right:-120px;bottom:-140px;width:460px;height:460px;border-radius:50%;border:60px solid rgba(255,255,255,.06)}
.login-brand::after{content:"";position:absolute;right:120px;top:-90px;width:220px;height:220px;border-radius:50%;background:rgba(32,160,216,.25);filter:blur(2px)}
.login-brand .logo{background:#fff;border-radius:18px;padding:14px 18px;display:inline-flex;align-items:center;gap:12px;width:max-content;box-shadow:var(--shadow-md)}
.login-brand .logo img{height:64px}
.login-brand h1{font-size:2.1rem;font-weight:800;letter-spacing:-.02em;margin:32px 0 10px;line-height:1.15}
.login-brand p{opacity:.85;max-width:460px;font-size:1rem;line-height:1.6}
.login-brand ul{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:12px;position:relative;z-index:1}
.login-brand li{display:flex;gap:10px;align-items:center;font-size:.92rem;opacity:.92}
.login-brand li i{width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.14);display:inline-flex;align-items:center;justify-content:center;font-size:.95rem}
.login-brand .foot{font-size:.78rem;opacity:.7;position:relative;z-index:1}
.login-form{display:flex;align-items:center;justify-content:center;padding:40px 24px}
.login-card{width:100%;max-width:420px}
.login-card h2{font-size:1.5rem;font-weight:700;margin-bottom:4px}
.login-card .sub{color:var(--muted);margin-bottom:26px}
.login-card .form-control,.login-card .input-group-text{padding:.7rem .85rem}
.login-mobile-logo{display:none;text-align:center;margin-bottom:18px}
.login-mobile-logo img{height:64px}
@media (max-width:991.98px){.login{grid-template-columns:1fr}.login-brand{display:none}.login-mobile-logo{display:block}}

/* layout */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-line);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:1040;transition:transform .25s}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:18px 18px 12px}
.min-w-0{min-width:0}
.brand-logo{flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px;width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.brand-logo img{max-width:100%;max-height:100%}
.brand-text{line-height:1.05;color:var(--ink)}.brand-text strong{display:block;font-size:1.1rem;letter-spacing:.3px;font-weight:800}.brand-text span{font-size:.74rem;color:var(--muted);font-weight:500}
.empresa-switch{padding:6px 14px 10px}
.empresa-switch .form-select{font-size:.82rem;font-weight:500;background-color:var(--surface-2);border-color:var(--line);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:2rem}
.sidebar-nav{flex:1;overflow-y:auto;padding:6px 14px 12px}
.sidebar-nav a{position:relative;display:flex;align-items:center;gap:11px;color:var(--ink-2);padding:9px 12px;border-radius:10px;margin:2px 0;font-size:.875rem;font-weight:500;transition:background .15s,color .15s,box-shadow .15s}
.sidebar-nav a i{font-size:1.05rem;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);transition:color .15s}
.sidebar-nav a:hover{background:var(--surface-2);color:var(--ink)}
.sidebar-nav a:hover i{color:var(--ink-2)}
.sidebar-nav a.active{background:linear-gradient(180deg,var(--tstt-blue),#0a3f75);color:#fff;font-weight:600;box-shadow:0 6px 14px rgba(0,72,136,.28)}
.sidebar-nav a.active i{color:#fff}
[data-bs-theme=dark] .sidebar-nav a.active{background:linear-gradient(180deg,#1763a6,#0e4f8a);box-shadow:0 6px 14px rgba(0,0,0,.4)}
.nav-section{font-size:.64rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);padding:18px 14px 6px;font-weight:700;opacity:.75}
.sidebar-footer{padding:10px 18px;font-size:.74rem;color:var(--muted);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--sidebar-line)}
.sidebar-backdrop{position:fixed;inset:0;background:rgba(7,20,36,.5);z-index:1035;display:none;backdrop-filter:blur(2px)}
.main{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-width:0;overflow-x:hidden}
html,body{overflow-x:hidden;max-width:100%}
pre,.xml-view,.mono.bg-body-tertiary{max-width:100%;overflow:auto}
.card,.modal-body{min-width:0}
.alert,.form-text,.modal-body p,.kv dd{overflow-wrap:anywhere}
.table td,.table th{word-break:normal;overflow-wrap:normal}
.table td.text-secondary:first-child,.table td.text-nowrap{white-space:nowrap}
.card .table td,.card .table th{max-width:360px;overflow:hidden;text-overflow:ellipsis}
.table-responsive{max-width:100%}
.row>*{min-width:0}
.kv dd{overflow-wrap:anywhere}
@media (max-width:1400px){.table td,.table th{padding:.55rem .6rem;font-size:.82rem}.table thead th{padding:.6rem .6rem}.btn-icon{padding:.2rem .4rem}}
@media (max-width:1200px){.card .table td,.card .table th{max-width:200px}}
.topbar{height:62px;background:rgba(255,255,255,.8);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 26px;gap:8px;position:sticky;top:0;z-index:1020;backdrop-filter:blur(12px)}
[data-bs-theme=dark] .topbar{background:rgba(14,24,38,.8)}
.topbar-title{font-weight:650;font-size:1.02rem;color:var(--ink);letter-spacing:-.01em}
.topbar .btn-light{border-color:transparent;background:transparent}
.topbar .btn-light:hover{background:var(--surface-2)}
.content{flex:1;padding:24px;max-width:1600px;width:100%}
.footer{padding:14px 24px;font-size:.76rem;color:var(--muted);border-top:1px solid var(--line)}
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--tstt-blue),var(--tstt-blue-light));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:.82rem;overflow:hidden;flex-shrink:0}
.avatar img{width:100%;height:100%;object-fit:cover}
.notif-menu{width:360px;max-height:440px;overflow:auto}
.notif-menu .item{padding:10px 14px;border-bottom:1px solid var(--line);font-size:.85rem}
.notif-menu .item.unread{background:var(--tstt-blue-ghost)}
@media (max-width:991.98px){
  .sidebar{transform:translateX(-100%);box-shadow:var(--shadow-md)}
  .sidebar.open{transform:none}
  .sidebar.open ~ .sidebar-backdrop{display:block}
  .main{margin-left:0}
  .content{padding:14px}
  .topbar{padding:0 12px}
}

/* componentes */
.card{border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:var(--radius);background:var(--surface)}
.card-header{background:transparent;border-bottom:1px solid var(--line);font-weight:650;font-size:.92rem;padding:.9rem 1.15rem;color:var(--ink);letter-spacing:-.01em}
.card-body{padding:1.15rem}
.card-footer{background:var(--surface-2);border-top:1px solid var(--line)}
.stat{display:flex;align-items:center;gap:14px;padding:16px 18px}
.stat .ico{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0}
.stat .val{font-size:1.45rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--ink)}.stat .lbl{font-size:.78rem;color:var(--muted);margin-top:2px}
a.stat.card:hover{border-color:var(--line-2);box-shadow:var(--shadow-md)}
/* Ícones sóbrios (tom sobre tinta suave), sem gradiente/neon */
.bg-grad-blue{background:var(--tstt-blue-soft);color:var(--tstt-blue-text)}
.bg-grad-red{background:var(--tstt-red-soft);color:#c4000e}
.bg-grad-green{background:#e7f6ee;color:#0f7a43}
.bg-grad-gray{background:#eef1f6;color:#516074}
.bg-grad-amber{background:#fdf0dd;color:#a8670a}
[data-bs-theme=dark] .bg-grad-red{color:#f08a90}[data-bs-theme=dark] .bg-grad-green{background:#123024;color:#4ec489}[data-bs-theme=dark] .bg-grad-gray{background:#1c2839;color:#9fb0c6}[data-bs-theme=dark] .bg-grad-amber{background:#332413;color:#e0a94a}
.table{--bs-table-bg:transparent;--bs-table-color:var(--ink);--bs-table-border-color:var(--line);--bs-table-hover-bg:var(--tstt-blue-ghost);--bs-table-striped-bg:var(--surface-2)}
.table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line-2);white-space:nowrap;padding:.72rem .95rem;background:var(--surface-2)}
.table tbody tr{transition:background .12s}
.table td{vertical-align:middle;padding:.72rem .95rem;border-color:var(--line)}
.table.table-hover tbody tr:hover{box-shadow:inset 3px 0 0 var(--tstt-blue-light)}
.table .text-nowrap,.table td.fw-semibold{white-space:nowrap}
.table .tag-status{white-space:nowrap}
.table tfoot td{background:var(--surface-2)}
.table-responsive{border-radius:0 0 var(--radius) var(--radius)}
.card>.table-responsive:first-child{border-radius:var(--radius)}
.page-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px}
.page-header h2{font-size:1.45rem;font-weight:750;margin:0;color:var(--ink);letter-spacing:-.02em}
.page-header h2 i{color:var(--tstt-blue-text);margin-right:.35rem}
.page-header .actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.filter-bar{display:flex;flex-direction:row!important;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:14px}
.filter-bar>div{flex:0 1 auto}.filter-bar>.flex-grow-1{flex:1 1 240px}
.filter-bar .form-control,.filter-bar .form-select{min-width:140px}
.filter-bar.card{padding:14px 16px!important}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}
.xml-view{background:#0b1524;color:#dbe6f3;padding:14px;border-radius:10px;font-size:.76rem;max-height:60vh;overflow:auto;white-space:pre;border:1px solid #1c2b40}
.xml-view .tag{color:#7dd3fc}.xml-view .attr{color:#fca5a5}.xml-view .val{color:#bbf7d0}
.badge{font-weight:600}
.tag-status{font-size:.68rem;padding:.34em .72em;border-radius:999px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;display:inline-flex;align-items:center;gap:.35em}
.tag-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.badge.text-bg-light.tag-status::before{display:none}
/* Status em tom suave (mais elegante que o sólido saturado do Bootstrap) */
.tag-status.text-bg-success{background:#e7f6ee!important;color:#0f7a43!important}
.tag-status.text-bg-primary{background:var(--tstt-blue-soft)!important;color:var(--tstt-blue-text)!important}
.tag-status.text-bg-danger{background:var(--tstt-red-soft)!important;color:#c4000e!important}
.tag-status.text-bg-warning{background:#fdf0dd!important;color:#a8670a!important}
.tag-status.text-bg-info{background:#e3f3fb!important;color:#0d6b95!important}
.tag-status.text-bg-secondary{background:#eef1f6!important;color:#516074!important}
.tag-status.text-bg-dark{background:#e6e9ef!important;color:#2b3a4d!important}
[data-bs-theme=dark] .tag-status.text-bg-success{background:#123024!important;color:#4ec489!important}
[data-bs-theme=dark] .tag-status.text-bg-danger{background:#3a1519!important;color:#f08a90!important}
[data-bs-theme=dark] .tag-status.text-bg-warning{background:#332413!important;color:#e0a94a!important}
[data-bs-theme=dark] .tag-status.text-bg-info{background:#0f2a3a!important;color:#63bde0!important}
[data-bs-theme=dark] .tag-status.text-bg-secondary,[data-bs-theme=dark] .tag-status.text-bg-dark{background:#1c2839!important;color:#9fb0c6!important}
.badge.text-bg-light{background:var(--surface-2)!important;color:var(--ink-2)!important;border:1px solid var(--line)}
.itens-table input{font-size:.88rem}
.itens-table td{padding:.45rem .6rem}
.drop-zone{border:2px dashed var(--line-2);border-radius:12px;padding:24px;text-align:center;color:var(--muted);cursor:pointer;transition:.15s;background:var(--surface-2)}
.drop-zone.drag,.drop-zone:hover{border-color:var(--tstt-blue-light);background:var(--tstt-blue-ghost);color:var(--tstt-blue-text)}
.timeline{list-style:none;padding:0;margin:0;border-left:2px solid var(--line);margin-left:8px}
.timeline li{position:relative;padding:0 0 14px 18px;font-size:.85rem}
.timeline li::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--tstt-blue-light);border:2px solid var(--surface)}
.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px;min-height:18px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
.required::after{content:" *";color:var(--tstt-red)}
.autocomplete{position:relative}
.autocomplete .ac-list{position:absolute;z-index:1060;left:0;right:0;top:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;max-height:280px;overflow:auto;box-shadow:var(--shadow-md);margin-top:4px;padding:4px}
.autocomplete .ac-item{padding:8px 12px;cursor:pointer;font-size:.86rem;border-radius:7px}
.autocomplete .ac-item:hover,.autocomplete .ac-item.active{background:var(--tstt-blue-ghost);color:var(--tstt-blue-text)}
.autocomplete .ac-item small{display:block;color:var(--muted)}
.ambiente-homolog{background:#fff4e0;color:#8a4b00;border:1px solid #f6d79a;font-size:.66rem;padding:3px 9px;border-radius:999px;font-weight:700;letter-spacing:.04em}
.ambiente-prod{background:#e7f8ee;color:#0f6b3a;border:1px solid #b6e6c8;font-size:.66rem;padding:3px 9px;border-radius:999px;font-weight:700;letter-spacing:.04em}
[data-bs-theme=dark] .ambiente-homolog{background:#3a2a0d;border-color:#6b4c12;color:#f5cf7a}[data-bs-theme=dark] .ambiente-prod{background:#0f2e1e;border-color:#1f5a3a;color:#93dfb2}
.step-badge{width:24px;height:24px;border-radius:50%;background:var(--tstt-blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;margin-right:8px}
.totais{background:var(--tstt-blue-ghost);border:1px solid var(--tstt-blue-soft);border-radius:12px;padding:14px}
.totais .row>div{padding:4px 12px}
.totais .lbl{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.totais .v{font-weight:600}
.totais .big{font-size:1.5rem;font-weight:800;color:var(--tstt-blue-text);letter-spacing:-.02em}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:.86rem}
.kv dt{color:var(--muted);font-weight:500}.kv dd{margin:0;color:var(--ink)}
@media (max-width:575.98px){.kv{grid-template-columns:1fr}.kv dt{margin-top:6px}}
.btn-icon{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.pagination{margin:0;--bs-pagination-border-color:var(--line);--bs-pagination-color:var(--ink-2);--bs-pagination-active-bg:var(--tstt-blue);--bs-pagination-active-border-color:var(--tstt-blue);--bs-pagination-bg:var(--surface);--bs-pagination-hover-bg:var(--surface-2)}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--tstt-blue-soft);color:var(--tstt-blue-text);border-radius:999px;padding:4px 11px;font-size:.78rem;font-weight:600}
.progress{background:var(--surface-2)}
.progress-thin{height:6px}
.empresa-card .brand-logo{width:56px;height:56px}
.text-secondary{color:var(--muted)!important}
.bg-body-tertiary{background:var(--surface-2)!important}
.border{border-color:var(--line)!important}
.opacity-50 .card,.opacity-50{opacity:.6}
@media print{.sidebar,.topbar,.footer,.page-header .actions{display:none!important}.main{margin:0}}

[data-bs-theme=dark] .text-primary{color:var(--tstt-blue-text)!important}
[data-bs-theme=dark] .badge.text-bg-primary-subtle,[data-bs-theme=dark] .bg-primary-subtle{background:var(--tstt-blue-soft)!important;color:var(--tstt-blue-text)!important}
[data-bs-theme=dark] .btn-light{--bs-btn-bg:var(--surface-2);--bs-btn-border-color:var(--line);--bs-btn-color:var(--ink);--bs-btn-hover-bg:var(--line);--bs-btn-hover-color:var(--ink);--bs-btn-hover-border-color:var(--line-2)}
[data-bs-theme=dark] .btn-outline-secondary{--bs-btn-color:var(--ink-2);--bs-btn-border-color:var(--line-2);--bs-btn-hover-bg:var(--surface-2);--bs-btn-hover-color:var(--ink)}

.card h5 a,.card h6 a{color:var(--tstt-blue-text)}
/* modal com <form> envolvendo body+footer: mantém o rodapé visível e o corpo rolável */
.modal-dialog-scrollable .modal-content>form{display:flex;flex-direction:column;min-height:0;overflow:hidden;max-height:100%}
.modal-dialog-scrollable .modal-content>form>.modal-body{overflow-y:auto}
