/* =====================================================================
   URI Santo Ângelo — Portais (tema compartilhado)
   Base: Bootstrap 5.3 (local) + este arquivo.
   Tokens: azul URI #066C93 · petróleo #0B3A52 · papel #F3F6F8 · marcador #FFD23F
   ===================================================================== */

@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-next-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Bricolage Grotesque"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url("../fonts/bricolage-grotesque-latin-wght-normal.woff2") format("woff2-variations"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Bricolage Grotesque"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url("../fonts/bricolage-grotesque-latin-ext-wght-normal.woff2") format("woff2-variations"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+2C60-2C7F,U+A720-A7FF; }

:root {
  /* marca */
  --uri-azul: #066C93;
  --uri-azul-hover: #05587A;
  --uri-azul-claro: #E3F0F6;
  --uri-petroleo: #0B3A52;
  --uri-petroleo-2: #0F4A68;
  --uri-papel: #F3F6F8;
  --uri-superficie: #FFFFFF;
  --uri-linha: #D6E0E6;
  --uri-linha-forte: #B9C9D2;
  --uri-texto: #1C2B33;
  --uri-texto-2: #546872;
  --uri-marcador: #FFD23F;
  --uri-marcador-suave: #FFF4CC;
  /* estados acadêmicos */
  --uri-ok: #1E7F55;      --uri-ok-bg: #E2F3EA;
  --uri-alerta: #9A6512;  --uri-alerta-bg: #FBF0D9;
  --uri-erro: #B83A3A;    --uri-erro-bg: #FBE6E5;
  --uri-info: #066C93;    --uri-info-bg: #E3F0F6;
  --uri-neutro: #546872;  --uri-neutro-bg: #EDF1F4;
  /* tipografia */
  --uri-fonte: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --uri-fonte-titulo: "Bricolage Grotesque", "Atkinson Hyperlegible Next", system-ui, sans-serif;
  --uri-sidebar-w: 268px;
  --uri-raio: 10px;
  --uri-raio-sm: 6px;
  --uri-sombra-overlay: 0 12px 32px rgba(11, 58, 82, .18);

  /* Bootstrap */
  --bs-primary: #066C93; --bs-primary-rgb: 6, 108, 147;
  --bs-secondary: #546872; --bs-secondary-rgb: 84, 104, 114;
  --bs-success: #1E7F55; --bs-success-rgb: 30, 127, 85;
  --bs-warning: #E0A21B; --bs-warning-rgb: 224, 162, 27;
  --bs-danger: #B83A3A; --bs-danger-rgb: 184, 58, 58;
  --bs-info: #2A8DB3; --bs-info-rgb: 42, 141, 179;
  --bs-body-font-family: var(--uri-fonte);
  --bs-body-font-size: 1rem;
  --bs-body-line-height: 1.5;
  --bs-body-color: var(--uri-texto); --bs-body-color-rgb: 28, 43, 51;
  --bs-body-bg: var(--uri-papel);
  --bs-secondary-color: var(--uri-texto-2);
  --bs-border-color: var(--uri-linha);
  --bs-border-radius: var(--uri-raio-sm);
  --bs-border-radius-lg: var(--uri-raio);
  --bs-link-color: var(--uri-azul); --bs-link-color-rgb: 6, 108, 147;
  --bs-link-hover-color: var(--uri-azul-hover); --bs-link-hover-color-rgb: 5, 88, 122;
  --bs-focus-ring-color: rgba(6, 108, 147, .35);
  --bs-primary-text-emphasis: #04415A;
  --bs-primary-bg-subtle: var(--uri-azul-claro);
  --bs-primary-border-subtle: #A9CFDF;
  --bs-heading-color: var(--uri-petroleo);
}

html { -webkit-text-size-adjust: 100%; }
body { min-height: 100vh; font-feature-settings: "kern"; text-rendering: optimizeLegibility; }
.num, .table td.num, .tabular { font-variant-numeric: tabular-nums; }
h1, h2, h3, .uri-titulo { font-family: var(--uri-fonte-titulo); letter-spacing: -.01em; }
h1 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); font-weight: 650; }
h2 { font-size: 1.3rem; font-weight: 650; }
h3 { font-size: 1.1rem; font-weight: 650; }
h4, h5, h6 { font-family: var(--uri-fonte); font-weight: 700; }
a { text-underline-offset: .18em; }
:focus-visible { outline: 3px solid var(--uri-petroleo, #0B3A52); outline-offset: 2px; border-radius: 3px; box-shadow: 0 0 0 6px var(--uri-marcador); }
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible { outline: 3px solid var(--uri-petroleo, #0B3A52); outline-offset: 1px; box-shadow: 0 0 0 5px var(--uri-marcador); }
::selection { background: var(--uri-marcador); color: var(--uri-texto); }
.skip-link { position: absolute; left: -999px; top: 8px; z-index: 2000; background: var(--uri-marcador); color: var(--uri-texto); padding: .5rem 1rem; border-radius: var(--uri-raio-sm); font-weight: 700; }
.skip-link:focus { left: 8px; }

/* ---------- botões e componentes Bootstrap no tom URI ---------- */
.btn { --bs-btn-font-weight: 600; --bs-btn-border-radius: var(--uri-raio-sm); --bs-btn-padding-x: .95rem; }
.btn-primary { --bs-btn-bg: var(--uri-azul); --bs-btn-border-color: var(--uri-azul); --bs-btn-hover-bg: var(--uri-azul-hover); --bs-btn-hover-border-color: var(--uri-azul-hover);
  --bs-btn-active-bg: #044761; --bs-btn-active-border-color: #044761; --bs-btn-disabled-bg: #6FA6BD; --bs-btn-disabled-border-color: #6FA6BD; --bs-btn-focus-shadow-rgb: 6,108,147; }
.btn-outline-primary { --bs-btn-color: var(--uri-azul); --bs-btn-border-color: var(--uri-azul); --bs-btn-hover-bg: var(--uri-azul); --bs-btn-hover-border-color: var(--uri-azul);
  --bs-btn-active-bg: var(--uri-azul-hover); --bs-btn-active-border-color: var(--uri-azul-hover); --bs-btn-disabled-color: #6FA6BD; --bs-btn-disabled-border-color: #6FA6BD; }
.btn-light { --bs-btn-bg: #fff; --bs-btn-border-color: var(--uri-linha); --bs-btn-hover-bg: var(--uri-azul-claro); --bs-btn-hover-border-color: #A9CFDF; --bs-btn-color: var(--uri-texto); }
.btn-marcador { --bs-btn-bg: var(--uri-marcador); --bs-btn-border-color: var(--uri-marcador); --bs-btn-color: var(--uri-texto); --bs-btn-hover-bg: #F2C21C; --bs-btn-hover-border-color: #F2C21C; --bs-btn-hover-color: var(--uri-texto); }
.btn-link { --bs-btn-color: var(--uri-azul); --bs-btn-hover-color: var(--uri-azul-hover); }
.form-control, .form-select { border-color: var(--uri-linha-forte); }
.form-control:focus, .form-select:focus { border-color: var(--uri-azul); box-shadow: 0 0 0 .2rem rgba(6,108,147,.18); }
.form-check-input:checked { background-color: var(--uri-azul); border-color: var(--uri-azul); }
.form-check-input:focus { border-color: var(--uri-azul); box-shadow: 0 0 0 .2rem rgba(6,108,147,.18); }
.form-label { font-weight: 600; margin-bottom: .3rem; }
legend.form-label { font-size: 1rem; float: none; }
fieldset + .uri-form-acoes { margin-top: .75rem; }
.form-text { color: var(--uri-texto-2); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--uri-azul); }
.nav-link { color: var(--uri-azul); }
.pagination { --bs-pagination-color: var(--uri-azul); --bs-pagination-active-bg: var(--uri-azul); --bs-pagination-active-border-color: var(--uri-azul); --bs-pagination-hover-color: var(--uri-azul-hover); --bs-pagination-focus-color: var(--uri-azul-hover); }
.progress { --bs-progress-bar-bg: var(--uri-azul); --bs-progress-bg: #E4ECF0; --bs-progress-height: .55rem; border-radius: 99px; }
.dropdown-menu { --bs-dropdown-link-active-bg: var(--uri-azul); border-color: var(--uri-linha); box-shadow: var(--uri-sombra-overlay); }
.list-group { --bs-list-group-active-bg: var(--uri-azul); --bs-list-group-active-border-color: var(--uri-azul); }
.modal-content { border: 0; border-radius: var(--uri-raio); box-shadow: var(--uri-sombra-overlay); }
.accordion { --bs-accordion-active-bg: var(--uri-azul-claro); --bs-accordion-active-color: var(--uri-petroleo); --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem rgba(6,108,147,.18); }
.alert { border-radius: var(--uri-raio-sm); }
.table { --bs-table-color: var(--uri-texto); --bs-table-striped-bg: #F7FAFB; --bs-table-hover-bg: #EEF5F8; --bs-table-border-color: var(--uri-linha); }

/* ---------- casca do app ---------- */
.uri-app { display: flex; min-height: 100vh; }
.uri-sidebar { width: var(--uri-sidebar-w); flex: 0 0 var(--uri-sidebar-w); background: var(--uri-petroleo); color: #DCE8EE; position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; }
.uri-sidebar .uri-brand { display: flex; align-items: center; gap: .75rem; padding: 1.1rem 1.2rem 1rem; text-decoration: none; color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); }
.uri-brand img { width: 42px; height: auto; }
.uri-brand .uri-brand-txt { display: flex; flex-direction: column; line-height: 1.1; }
.uri-brand .uri-brand-portal { font-family: var(--uri-fonte-titulo); font-size: 1.15rem; font-weight: 650; letter-spacing: -.01em; }
.uri-brand .uri-brand-inst { font-size: .78rem; color: #A9C3D0; }
.uri-nav { overflow-y: auto; padding: .75rem .6rem 1rem; flex: 1 1 auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.2) transparent; }
.uri-nav-grupo { font-size: .76rem; font-weight: 700; color: #8FB0C0; padding: .9rem .75rem .35rem; letter-spacing: .02em; }
.uri-nav a { display: flex; align-items: center; gap: .7rem; padding: .52rem .75rem; margin: 1px 0; color: #DCE8EE; text-decoration: none; border-radius: var(--uri-raio-sm); position: relative; font-weight: 500; line-height: 1.25; }
.uri-nav a .bi { font-size: 1.1rem; width: 1.25rem; text-align: center; opacity: .9; flex: 0 0 auto; }
.uri-nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
.uri-nav a.ativo { background: var(--uri-petroleo-2); color: #fff; }
.uri-nav a.ativo::before { content: ""; position: absolute; left: -.6rem; top: .35rem; bottom: .35rem; width: 4px; border-radius: 0 4px 4px 0; background: var(--uri-marcador); }
.uri-nav a .uri-nav-badge { margin-left: auto; background: var(--uri-marcador); color: var(--uri-texto); font-size: .72rem; font-weight: 700; border-radius: 99px; padding: .05rem .45rem; }
.uri-sidebar-rodape { padding: .8rem 1.2rem 1rem; border-top: 1px solid rgba(255,255,255,.08); font-size: .8rem; color: #8FB0C0; }
.uri-sidebar-rodape a { color: #DCE8EE; }

.uri-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.uri-topo { position: sticky; top: 0; z-index: 1020; background: rgba(243,246,248,.92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--uri-linha); }
.uri-topo-inner { display: flex; align-items: center; gap: .75rem; padding: .6rem 1.5rem; min-height: 60px; }
.uri-topo .uri-menu-btn { display: none; }
.uri-topo-titulo { font-weight: 700; color: var(--uri-petroleo); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uri-topo-acoes { margin-left: auto; display: flex; align-items: center; gap: .4rem; }
.uri-usuario { display: flex; align-items: center; gap: .55rem; border: 1px solid var(--uri-linha); background: #fff; border-radius: 99px; padding: .2rem .7rem .2rem .2rem; color: var(--uri-texto); text-decoration: none; }
.uri-usuario:hover { border-color: #A9CFDF; }
.uri-usuario img, .uri-avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: var(--uri-azul-claro); }
.uri-usuario .uri-usuario-txt { display: flex; flex-direction: column; line-height: 1.2; }
.uri-usuario .uri-usuario-nome { font-weight: 600; max-width: 22ch; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uri-usuario .uri-usuario-cd { font-size: .75rem; color: var(--uri-texto-2); }
.uri-master { background: var(--uri-marcador); color: var(--uri-texto); font-weight: 700; font-size: .75rem; padding: .15rem .55rem; border-radius: 99px; }
.uri-icone-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; color: var(--uri-petroleo); text-decoration: none; }
.uri-icone-btn:hover { background: var(--uri-azul-claro); }
.uri-icone-btn .bi { font-size: 1.25rem; }
.uri-icone-btn .uri-ponto { position: absolute; top: 6px; right: 6px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 99px; background: var(--uri-erro); color: #fff; font-size: .7rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }

.uri-conteudo { width: 100%; max-width: 1320px; padding: 1.5rem 1.5rem 3rem; }
.uri-conteudo.largo { max-width: none; }
.uri-cabecalho { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem 1.5rem; margin-bottom: 1.25rem; }
.uri-cabecalho h1 { margin: 0; color: var(--uri-petroleo); }
.uri-cabecalho .uri-sub { color: var(--uri-texto-2); margin: .25rem 0 0; max-width: 75ch; }
.uri-cabecalho .uri-cab-acoes { margin-left: auto; display: flex; flex-wrap: wrap; gap: .5rem; }
.uri-migalhas { font-size: .85rem; margin-bottom: .35rem; color: var(--uri-texto-2); }
.uri-migalhas a { color: var(--uri-texto-2); text-decoration: none; }
.uri-migalhas a:hover { color: var(--uri-azul); text-decoration: underline; }
.uri-migalhas .sep { margin: 0 .35rem; opacity: .6; }
.uri-voltar { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; text-decoration: none; margin-bottom: .5rem; }

.uri-rodape { margin-top: auto; padding: 1rem 1.5rem 1.25rem; color: var(--uri-texto-2); font-size: .8rem; border-top: 1px solid var(--uri-linha); display: flex; flex-wrap: wrap; gap: .25rem 1rem; }

/* barra inferior (celular) */
.uri-tabbar { display: none; }

/* ---------- painéis ---------- */
.uri-painel { background: var(--uri-superficie); border: 1px solid var(--uri-linha); border-radius: var(--uri-raio); }
.uri-painel + .uri-painel, .uri-bloco + .uri-bloco { margin-top: 1.25rem; }
:is(.uri-grade-2, .uri-grade-3, .row) > :is(.uri-painel, .uri-bloco) + :is(.uri-painel, .uri-bloco) { margin-top: 0; }
.table-responsive { position: relative; }
:is(.uri-grade-2, .uri-grade-3) + :is(.uri-painel, .uri-bloco, .uri-grade-2, .uri-grade-3), :is(.uri-painel, .uri-bloco) + :is(.uri-grade-2, .uri-grade-3) { margin-top: 1.25rem; }
.uri-painel-cab { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: .9rem 1.15rem; border-bottom: 1px solid var(--uri-linha); }
.uri-painel-cab h2, .uri-painel-cab h3 { margin: 0; font-size: 1.05rem; color: var(--uri-petroleo); }
.uri-painel-cab .uri-painel-acoes { margin-left: auto; display: flex; gap: .4rem; flex-wrap: wrap; }
.uri-painel-cab > .bi { color: var(--uri-azul); }
.uri-painel-corpo { padding: 1.15rem; }
.uri-painel-corpo.sem-pad { padding: 0; }
.uri-painel-rodape { padding: .75rem 1.15rem; border-top: 1px solid var(--uri-linha); background: #FAFCFD; border-radius: 0 0 var(--uri-raio) var(--uri-raio); }
.uri-painel.destaque { border-left: 4px solid var(--uri-azul); }
.uri-painel.atencao { border-left: 4px solid var(--uri-marcador); }

/* indicadores (números) */
.uri-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .75rem; }
.uri-kpi { background: #fff; border: 1px solid var(--uri-linha); border-radius: var(--uri-raio); padding: .85rem 1rem; display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.uri-kpi .uri-kpi-rot { color: var(--uri-texto-2); font-size: .85rem; font-weight: 600; }
.uri-kpi .uri-kpi-val { font-family: var(--uri-fonte-titulo); font-size: 1.75rem; font-weight: 650; color: var(--uri-petroleo); line-height: 1.15; font-variant-numeric: tabular-nums; }
.uri-kpi .uri-kpi-det { font-size: .82rem; color: var(--uri-texto-2); }
.uri-kpi.ok .uri-kpi-val { color: var(--uri-ok); }
.uri-kpi.alerta .uri-kpi-val { color: var(--uri-alerta); }
.uri-kpi.erro .uri-kpi-val { color: var(--uri-erro); }

/* selos de status (sempre com texto) */
.uri-selo { display: inline-flex; align-items: center; gap: .3rem; font-size: .8rem; font-weight: 700; line-height: 1; padding: .3rem .55rem; border-radius: 99px; white-space: nowrap; background: var(--uri-neutro-bg); color: var(--uri-neutro); }
.uri-selo.ok { background: var(--uri-ok-bg); color: var(--uri-ok); }
.uri-selo.alerta { background: var(--uri-alerta-bg); color: var(--uri-alerta); }
.uri-selo.erro { background: var(--uri-erro-bg); color: var(--uri-erro); }
.uri-selo.info { background: var(--uri-info-bg); color: var(--uri-info); }
.uri-selo.marcador { background: var(--uri-marcador); color: var(--uri-texto); }
.uri-marca-texto { background: linear-gradient(transparent 55%, var(--uri-marcador-suave) 55%); padding: 0 .1em; }

/* avisos */
.uri-aviso { display: flex; gap: .75rem; padding: .85rem 1rem; border-radius: var(--uri-raio-sm); background: var(--uri-info-bg); color: #0D4159; border: 1px solid #C2DDE9; }
.uri-aviso > .bi { font-size: 1.2rem; line-height: 1.3; flex: 0 0 auto; }
.uri-aviso.ok { background: var(--uri-ok-bg); color: #155C3D; border-color: #BFE3CF; }
.uri-aviso.alerta { background: var(--uri-alerta-bg); color: #6F4709; border-color: #F0D9A6; }
.uri-aviso.erro { background: var(--uri-erro-bg); color: #842A2A; border-color: #F1C4C2; }
.uri-aviso.marcador { background: var(--uri-marcador-suave); color: var(--uri-texto); border-color: #F5DD85; }
.uri-aviso-corpo { min-width: 0; flex: 1; }
.uri-aviso-corpo > :last-child { margin-bottom: 0; }
.uri-avisos { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1.25rem; }
.uri-html-legado { overflow-wrap: anywhere; }
.uri-html-legado img { max-width: 100%; height: auto; }
.uri-html-legado table { max-width: 100%; }

/* conteúdo escrito no editor e mostrado para leitura (a proposta do tema da redação): citações, imagens e tabelas
   legíveis no computador e no celular — a tabela larga rola de lado dentro do quadro .uri-tabela-rola */
.uri-conteudo-rico { line-height: 1.6; overflow-wrap: break-word; }
.uri-conteudo-rico > :first-child { margin-top: 0; }
.uri-conteudo-rico > :last-child { margin-bottom: 0; }
.uri-conteudo-rico p { margin: 0 0 .85em; }
.uri-conteudo-rico h1, .uri-conteudo-rico h2, .uri-conteudo-rico h3, .uri-conteudo-rico h4, .uri-conteudo-rico h5, .uri-conteudo-rico h6 {
  font-family: var(--uri-fonte-titulo); color: var(--uri-petroleo); line-height: 1.25; margin: 1.35em 0 .5em; }
.uri-conteudo-rico h1 { font-size: 1.4rem; }
.uri-conteudo-rico h2 { font-size: 1.25rem; }
.uri-conteudo-rico h3 { font-size: 1.1rem; }
.uri-conteudo-rico h4, .uri-conteudo-rico h5, .uri-conteudo-rico h6 { font-size: 1rem; }
.uri-conteudo-rico ul, .uri-conteudo-rico ol { padding-left: 1.4em; margin: 0 0 .85em; }
.uri-conteudo-rico li { margin-bottom: .3em; }
.uri-conteudo-rico li > ul, .uri-conteudo-rico li > ol { margin: .3em 0 0; }
.uri-conteudo-rico blockquote { margin: 0 0 1em; padding: .8rem 1rem; border-left: 4px solid var(--uri-azul); background: var(--uri-papel);
  border-radius: 0 var(--uri-raio-sm) var(--uri-raio-sm) 0; }
.uri-conteudo-rico blockquote > :last-child { margin-bottom: 0; }
.uri-conteudo-rico img { max-width: 100%; height: auto; border-radius: 4px; }
.uri-conteudo-rico hr { border: 0; border-top: 1px solid var(--uri-linha-forte); margin: 1.5em 0; opacity: 1; }
.uri-conteudo-rico a { overflow-wrap: anywhere; }
.uri-conteudo-rico pre { white-space: pre-wrap; background: var(--uri-papel); border-radius: var(--uri-raio-sm); padding: .6rem .8rem; }
.uri-conteudo-rico .uri-tabela-rola { overflow-x: auto; margin: 0 0 1em; max-width: 100%; }
.uri-conteudo-rico .uri-tabela-rola:focus-visible { outline: 3px solid rgba(6, 108, 147, .35); outline-offset: 2px; }
.uri-conteudo-rico table { border-collapse: collapse; margin: 0; max-width: none; }
.uri-conteudo-rico th, .uri-conteudo-rico td { border: 1px solid var(--uri-linha-forte); padding: .45rem .65rem; vertical-align: top;
  overflow-wrap: normal; word-break: normal; min-width: 4.5em; }
.uri-conteudo-rico th { background: var(--uri-papel); font-weight: 700; text-align: left; }
.uri-conteudo-rico caption { caption-side: top; color: var(--uri-texto-2); font-size: .9rem; padding: 0 0 .35rem; text-align: left; }

/* vazio */
.uri-vazio { text-align: center; padding: 2.25rem 1rem; color: var(--uri-texto-2); }
.uri-vazio > .bi, .uri-vazio > i.bi:first-child { font-size: 2rem; color: #9DB4C0; display: block; margin-bottom: .5rem; }
.uri-vazio p { margin: 0 auto .75rem; max-width: 52ch; }

/* ---------- tabelas ---------- */
.uri-tabela-wrap { position: relative; }
.uri-tabela-ferr { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .75rem 1rem; border-bottom: 1px solid var(--uri-linha); }
.uri-tabela-ferr .uri-busca { position: relative; flex: 1 1 220px; max-width: 360px; }
.uri-tabela-ferr .uri-busca .bi { position: absolute; left: .7rem; top: 50%; transform: translateY(-50%); color: var(--uri-texto-2); }
.uri-tabela-ferr .uri-busca input { padding-left: 2.1rem; }
.uri-tabela-ferr .uri-contagem { color: var(--uri-texto-2); font-size: .85rem; margin-left: auto; }
.uri-tabela { margin: 0; font-size: .95rem; }
.uri-tabela > thead th { background: #F6F9FA; color: var(--uri-petroleo); font-weight: 700; font-size: .85rem; border-bottom: 1px solid var(--uri-linha-forte); white-space: nowrap; vertical-align: bottom; }
.uri-tabela > :not(caption) > * > * { padding: .6rem .8rem; }
.uri-tabela td { vertical-align: middle; }
.uri-tabela th[data-sort] { cursor: pointer; user-select: none; }
.uri-tabela th[data-sort]::after { content: "\F127"; font-family: "bootstrap-icons"; font-size: .7rem; margin-left: .3rem; opacity: .35; }
.uri-tabela th[data-sort].asc::after { content: "\F148"; opacity: .9; }
.uri-tabela th[data-sort].desc::after { content: "\F128"; opacity: .9; }
.uri-tabela tr.uri-linha-link { cursor: pointer; }
.uri-tabela tr.destaque > td { background: var(--uri-marcador-suave); }
.uri-tabela tfoot td, .uri-tabela tfoot th { font-weight: 700; background: #F6F9FA; }
.uri-tabela .acoes { white-space: nowrap; text-align: right; }
.uri-tabela-pag { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .6rem 1rem; border-top: 1px solid var(--uri-linha); flex-wrap: wrap; }
.uri-painel > .table-responsive:last-child .uri-tabela tr:last-child td { border-bottom: 0; }
@media (max-width: 767.98px) {
  .uri-tabela.empilha thead { display: none; }
  .uri-tabela.empilha, .uri-tabela.empilha tbody, .uri-tabela.empilha tr, .uri-tabela.empilha td { display: block; width: 100%; }
  .uri-tabela.empilha tr { border-bottom: 1px solid var(--uri-linha); padding: .5rem .2rem; }
  .uri-tabela.empilha tbody tr:nth-of-type(odd) > * { --bs-table-bg-type: transparent; }
  .uri-tabela.empilha td { border: 0; padding: .22rem .8rem; display: flex; gap: .75rem; justify-content: space-between; text-align: right; }
  .uri-tabela.empilha td::before { content: attr(data-label); font-weight: 700; color: var(--uri-texto-2); text-align: left; flex: 0 0 auto; max-width: 48%; }
  .uri-tabela.empilha td[data-label=""]::before { content: none; }
  .uri-tabela.empilha td.acoes { justify-content: flex-end; }
  .uri-tabela.empilha tfoot { display: block; }
}

/* ---------- listas de ação / atalhos ---------- */
.uri-atalhos { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .6rem; }
.uri-atalho { display: flex; align-items: center; gap: .75rem; padding: .8rem .9rem; background: #fff; border: 1px solid var(--uri-linha); border-radius: var(--uri-raio-sm); text-decoration: none; color: var(--uri-texto); font-weight: 600; line-height: 1.25; min-height: 58px; }
.uri-atalho .bi { font-size: 1.35rem; color: var(--uri-azul); flex: 0 0 auto; }
.uri-atalho small { display: block; font-weight: 400; color: var(--uri-texto-2); font-size: .8rem; }
.uri-atalho:hover { border-color: #A9CFDF; background: #F8FBFC; color: var(--uri-petroleo); }
.uri-atalho.atencao { border-color: #F5DD85; background: var(--uri-marcador-suave); }
.uri-lista { list-style: none; margin: 0; padding: 0; }
.uri-lista > li { display: flex; align-items: center; gap: .75rem; padding: .7rem 1.15rem; border-bottom: 1px solid var(--uri-linha); }
.uri-lista > li:last-child { border-bottom: 0; }
.uri-lista .uri-lista-txt { flex: 1 1 auto; min-width: 0; }
.uri-lista .uri-lista-txt small { display: block; color: var(--uri-texto-2); }
.uri-lista a.uri-lista-item { display: flex; align-items: center; gap: .75rem; color: inherit; text-decoration: none; width: 100%; }
.uri-lista a.uri-lista-item:hover .uri-lista-txt strong { color: var(--uri-azul); text-decoration: underline; }

/* definição (ficha) */
.uri-ficha { display: grid; grid-template-columns: minmax(120px, max-content) 1fr; gap: .45rem 1.25rem; margin: 0; }
.uri-ficha dt { color: var(--uri-texto-2); font-weight: 600; font-size: .9rem; }
.uri-ficha dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 575.98px) { .uri-ficha { grid-template-columns: 1fr; gap: 0; } .uri-ficha dd { margin-bottom: .55rem; } }

/* carteirinha / identidade */
.uri-identidade { display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: center; background: var(--uri-petroleo); color: #E8F1F5; border-radius: var(--uri-raio); padding: 1.25rem 1.4rem; position: relative; overflow: hidden;
  background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 27px, rgba(255,255,255,.06) 27px, rgba(255,255,255,.06) 28px); }
.uri-identidade::after { content: ""; position: absolute; right: -40px; bottom: -60px; width: 220px; height: 220px; background: url("../img/uri-marca-branco.png") no-repeat center / contain; opacity: .07; pointer-events: none; }
.uri-identidade .uri-foto { width: 96px; height: 128px; border-radius: var(--uri-raio-sm); object-fit: cover; background: #0F4A68; border: 3px solid rgba(255,255,255,.85); }
.uri-identidade h2 { color: #fff; margin: 0 0 .2rem; font-size: clamp(1.2rem, 1rem + 1vw, 1.6rem); }
.uri-identidade .uri-ident-meta { display: flex; flex-wrap: wrap; gap: .25rem 1.1rem; font-size: .92rem; color: #C5D9E2; }
.uri-identidade .uri-ident-meta strong { color: #fff; font-weight: 600; }
.uri-identidade .uri-ident-acoes { margin-top: .8rem; display: flex; flex-wrap: wrap; gap: .45rem; position: relative; z-index: 1; }
.uri-identidade .btn-light { --bs-btn-bg: rgba(255,255,255,.12); --bs-btn-border-color: rgba(255,255,255,.25); --bs-btn-color: #fff; --bs-btn-hover-bg: rgba(255,255,255,.22); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: rgba(255,255,255,.4); }
@media (max-width: 575.98px) { .uri-identidade { grid-template-columns: 1fr; text-align: left; } .uri-identidade .uri-foto { width: 78px; height: 104px; } }

/* linha do tempo (histórico/status) */
.uri-tempo { list-style: none; margin: 0; padding: 0 0 0 1.1rem; border-left: 2px solid var(--uri-linha); }
.uri-tempo > li { position: relative; padding: 0 0 1rem 1rem; }
.uri-tempo > li::before { content: ""; position: absolute; left: calc(-1.1rem - 7px); top: .35rem; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--uri-azul); }
.uri-tempo > li.atual::before { background: var(--uri-marcador); border-color: var(--uri-petroleo); }
.uri-tempo .uri-tempo-data { font-size: .8rem; color: var(--uri-texto-2); font-variant-numeric: tabular-nums; }

/* passos (assistentes) */
.uri-passos { display: flex; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1.25rem; counter-reset: passo; flex-wrap: wrap; }
.uri-passos li { counter-increment: passo; display: flex; align-items: center; gap: .5rem; padding: .45rem .8rem .45rem .45rem; border-radius: 99px; background: #fff; border: 1px solid var(--uri-linha); color: var(--uri-texto-2); font-weight: 600; font-size: .9rem; }
.uri-passos li::before { content: counter(passo); width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--uri-neutro-bg); font-size: .8rem; }
.uri-passos li.feito::before { content: "\2713"; background: var(--uri-ok-bg); color: var(--uri-ok); }
.uri-passos li.atual { border-color: var(--uri-azul); color: var(--uri-petroleo); }
.uri-passos li.atual::before { background: var(--uri-azul); color: #fff; }

/* gráficos */
.uri-grafico { position: relative; width: 100%; min-height: 120px; }
.uri-grafico canvas { width: 100% !important; }
.uri-grafico-legenda-txt { font-size: .85rem; color: var(--uri-texto-2); margin-top: .5rem; }

/* barras de progresso com rótulo */
.uri-barra { display: flex; align-items: center; gap: .6rem; min-width: 140px; }
.uri-barra .progress { flex: 1 1 auto; }
.uri-barra .uri-barra-val { font-variant-numeric: tabular-nums; font-weight: 700; font-size: .85rem; min-width: 3.2em; text-align: right; }
.uri-barra.ok .progress-bar { background: var(--uri-ok); }
.uri-barra.alerta .progress-bar { background: #D9961A; }
.uri-barra.erro .progress-bar { background: var(--uri-erro); }

/* abas */
.uri-abas { display: flex; gap: .25rem; border-bottom: 1px solid var(--uri-linha); margin-bottom: 1.25rem; overflow-x: auto; scrollbar-width: thin; }
.uri-abas a { padding: .6rem .9rem; color: var(--uri-texto-2); text-decoration: none; font-weight: 600; border-bottom: 3px solid transparent; white-space: nowrap; margin-bottom: -1px; }
.uri-abas a:hover { color: var(--uri-petroleo); }
.uri-abas a.ativo { color: var(--uri-petroleo); border-bottom-color: var(--uri-azul); }

/* grade de horário */
.uri-horario { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; }
.uri-horario th { font-size: .8rem; color: var(--uri-texto-2); font-weight: 700; text-align: center; padding: .25rem; }
.uri-horario td { background: #fff; border: 1px solid var(--uri-linha); border-radius: var(--uri-raio-sm); padding: .4rem .45rem; font-size: .8rem; vertical-align: top; height: 3.2rem; overflow-wrap: anywhere; }
.uri-horario td.vazio { background: transparent; border-style: dashed; }
.uri-horario td.ocupado { border-left: 4px solid var(--uri-azul); }
.uri-horario th.hoje { color: var(--uri-texto); background: var(--uri-marcador); border-radius: var(--uri-raio-sm); }
.uri-horario-wrap { overflow-x: auto; }
.uri-horario-wrap .uri-horario { min-width: 760px; }

/* chat */
.uri-chat { display: flex; flex-direction: column; height: min(70vh, 640px); }
.uri-chat-msgs { flex: 1 1 auto; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .5rem; background: #F8FAFB; }
.uri-chat-msg { max-width: 78%; padding: .5rem .75rem; border-radius: 12px; background: #fff; border: 1px solid var(--uri-linha); align-self: flex-start; }
.uri-chat-msg.minha { align-self: flex-end; background: var(--uri-azul-claro); border-color: #C2DDE9; }
.uri-chat-msg .uri-chat-de { font-size: .75rem; font-weight: 700; color: var(--uri-azul); }
.uri-chat-msg .uri-chat-hora { font-size: .7rem; color: var(--uri-texto-2); }
.uri-chat-form { display: flex; gap: .5rem; padding: .75rem; border-top: 1px solid var(--uri-linha); background: #fff; }

/* ---------- login ---------- */
.uri-login { min-height: 100vh; display: grid; grid-template-columns: minmax(320px, 46%) 1fr; }
.uri-login-marca { background: var(--uri-petroleo); color: #E8F1F5; padding: clamp(1.5rem, 4vw, 3.5rem); display: flex; flex-direction: column; gap: 1.5rem; position: relative; overflow: hidden;
  background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 31px, rgba(255,255,255,.055) 31px, rgba(255,255,255,.055) 32px); }
.uri-login-marca .uri-login-logo { width: 74px; }
.uri-login-marca h1 { color: #fff; font-size: clamp(2.2rem, 1.6rem + 2.6vw, 3.6rem); font-weight: 700; line-height: 1.02; letter-spacing: -.02em; margin: 0; }
.uri-login-marca .uri-login-inst { color: #A9C3D0; font-size: .95rem; max-width: 40ch; }
.uri-login-marca .uri-login-avisos { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: var(--uri-raio); padding: 1rem 1.1rem; font-size: .92rem; max-height: 45vh; overflow: auto; color: #E8F1F5; }
.uri-login-marca .uri-login-avisos a { color: var(--uri-marcador); }
.uri-login-marca .uri-login-links { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; }
.uri-login-marca .uri-login-links a { color: #DCE8EE; border: 1px solid rgba(255,255,255,.18); border-radius: 99px; padding: .3rem .8rem; text-decoration: none; font-size: .85rem; display: inline-flex; gap: .4rem; align-items: center; }
.uri-login-marca .uri-login-links a:hover { background: rgba(255,255,255,.1); }
.uri-login-form { display: flex; align-items: center; justify-content: center; padding: clamp(1.25rem, 4vw, 3rem); }
.uri-login-caixa { width: 100%; max-width: 400px; }
.uri-login-caixa h2 { font-size: 1.5rem; margin-bottom: .25rem; }
.uri-login-caixa .form-control { padding: .7rem .85rem; font-size: 1.05rem; }
.uri-login-caixa .btn-lg { width: 100%; padding: .75rem; }
.uri-login-rodape { font-size: .78rem; color: var(--uri-texto-2); margin-top: 2rem; }
.uri-captcha img { border: 1px solid var(--uri-linha); border-radius: var(--uri-raio-sm); max-width: 100%; height: auto; background: #fff; }
.uri-captcha-img { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; margin-bottom: .5rem; }
.uri-captcha-img img { display: block; }
.uri-captcha-img .btn-link { padding-left: 0; padding-right: 0; text-decoration: none; }
.uri-captcha-img .btn-link span { text-decoration: underline; }
.uri-captcha-campo { max-width: 300px; text-transform: uppercase; letter-spacing: .2em; font-weight: 600; }
@media (max-width: 991.98px) {
  .uri-login { grid-template-columns: 1fr; }
  .uri-login-marca { padding: 1.4rem 1.25rem 1.6rem; }
  .uri-login-marca .uri-login-avisos { max-height: none; }
  .uri-login-marca .uri-login-links { margin-top: 0; }
  .uri-login-form { padding: 1.5rem 1.25rem 2.5rem; align-items: flex-start; }
  .uri-login-marca h1 { font-size: 2.1rem; }
}

/* páginas públicas (wa_opendata) */
.uri-publico-topo { background: var(--uri-petroleo); color: #fff; }
.uri-publico-topo .uri-publico-inner { max-width: 1120px; margin: 0 auto; display: flex; align-items: center; gap: .9rem; padding: .85rem 1.25rem; }
.uri-publico-topo img { width: 40px; }
.uri-publico-topo .uri-publico-nome { font-family: var(--uri-fonte-titulo); font-weight: 650; font-size: 1.15rem; line-height: 1.1; color: #fff; text-decoration: none; }
.uri-publico-topo .uri-publico-nome small { display: block; font-family: var(--uri-fonte); font-weight: 400; font-size: .78rem; color: #A9C3D0; }
.uri-publico-corpo { max-width: 1120px; margin: 0 auto; padding: 1.5rem 1.25rem 3rem; }
.uri-publico-corpo.estreito { max-width: 720px; }
.uri-publico-rodape { border-top: 1px solid var(--uri-linha); color: var(--uri-texto-2); font-size: .8rem; text-align: center; padding: 1rem; }

/* resultado grande (validação, QR) */
.uri-resultado { text-align: center; padding: 2rem 1.25rem; }
.uri-resultado .uri-resultado-icone { width: 84px; height: 84px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 2.6rem; margin-bottom: 1rem; background: var(--uri-neutro-bg); color: var(--uri-neutro); }
.uri-resultado.ok .uri-resultado-icone { background: var(--uri-ok-bg); color: var(--uri-ok); }
.uri-resultado.erro .uri-resultado-icone { background: var(--uri-erro-bg); color: var(--uri-erro); }
.uri-resultado.alerta .uri-resultado-icone { background: var(--uri-alerta-bg); color: var(--uri-alerta); }
.uri-resultado h1 { font-size: 1.7rem; }

/* documentos (GED) */
.uri-doc-icone { width: 38px; height: 38px; border-radius: var(--uri-raio-sm); display: inline-flex; align-items: center; justify-content: center; background: var(--uri-azul-claro); color: var(--uri-azul); font-size: 1.2rem; flex: 0 0 auto; }
.uri-doc-icone.pdf { background: #FBE6E5; color: #B83A3A; }
.uri-doc-icone.img { background: #E2F3EA; color: #1E7F55; }
.uri-doc-icone.planilha { background: #E2F3EA; color: #1E7F55; }
.uri-arvore { list-style: none; padding-left: 0; margin: 0; }
.uri-arvore ul { list-style: none; padding-left: 1.1rem; border-left: 1px dashed var(--uri-linha-forte); margin-left: .55rem; }
.uri-arvore a { display: inline-flex; align-items: center; gap: .4rem; padding: .2rem .35rem; border-radius: 4px; text-decoration: none; color: var(--uri-texto); }
.uri-arvore a:hover { background: var(--uri-azul-claro); }
.uri-arvore a.ativo { background: var(--uri-marcador-suave); font-weight: 700; }
.uri-arvore .bi { color: #D9961A; }
.uri-visualizador { width: 100%; height: 78vh; border: 1px solid var(--uri-linha); border-radius: var(--uri-raio-sm); background: #fff; }

/* utilitários */
.uri-mudo { color: var(--uri-texto-2); }
.uri-pequeno { font-size: .85rem; }
.uri-grade-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 1.25rem; align-items: start; }
.uri-grade-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1.25rem; align-items: start; }
.uri-pilha > * + * { margin-top: 1.25rem; }
.uri-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: .9rem 1.1rem; }
.uri-form-acoes { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: 1.1rem; }
.uri-separador { border: 0; border-top: 1px solid var(--uri-linha); margin: 1.25rem 0; opacity: 1; }
/* senha para confirmar a troca do e-mail (ui_senha_confirma) e a redefinição da senha do e-mail da URI (ui_google_reset) */
.uri-senha-conf { margin-top: 1rem; max-width: 420px; }
.uri-form-grid > .uri-senha-conf { margin-top: 0; }
.uri-conf-google > summary { list-style: none; }
.uri-conf-google > summary::-webkit-details-marker { display: none; }
.uri-conf-google[open] { flex-basis: 100%; }
.uri-conf-google-form { margin-top: .75rem; max-width: 420px; }
.text-ok { color: var(--uri-ok) !important; } .text-alerta { color: var(--uri-alerta) !important; } .text-erro { color: var(--uri-erro) !important; }
.uri-nota { font-family: var(--uri-fonte-titulo); font-weight: 650; font-variant-numeric: tabular-nums; }
.uri-carregando { display: inline-block; width: 1em; height: 1em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: uri-gira .7s linear infinite; vertical-align: -.15em; }
@keyframes uri-gira { to { transform: rotate(360deg); } }

/* ---------- responsivo da casca ---------- */
@media (max-width: 991.98px) {
  .uri-sidebar { position: fixed; z-index: 1045; left: 0; top: 0; bottom: 0; transform: translateX(-100%); transition: transform .22s ease; box-shadow: var(--uri-sombra-overlay); }
  .uri-sidebar.aberta { transform: none; }
  .uri-veu { position: fixed; inset: 0; background: rgba(11,58,82,.45); z-index: 1040; display: none; }
  .uri-veu.aberto { display: block; }
  .uri-topo .uri-menu-btn { display: inline-flex; }
  .uri-topo-inner { padding: .5rem 1rem; }
  .uri-conteudo { padding: 1.1rem 1rem 6rem; }
  .uri-usuario .uri-usuario-txt { display: none; }
  .uri-usuario { padding: .2rem; }
  .uri-tabbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; background: #fff; border-top: 1px solid var(--uri-linha); padding: .25rem .25rem calc(.25rem + env(safe-area-inset-bottom)); }
  .uri-tabbar a { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: .1rem; padding: .35rem .2rem; color: var(--uri-texto-2); text-decoration: none; font-size: .7rem; font-weight: 600; border-radius: var(--uri-raio-sm); }
  .uri-tabbar a .bi { font-size: 1.3rem; }
  .uri-tabbar a.ativo { color: var(--uri-azul); background: var(--uri-azul-claro); }
  .uri-rodape { padding-bottom: 5.5rem; }
}
@media (max-width: 575.98px) {
  .uri-cabecalho .uri-cab-acoes { margin-left: 0; width: 100%; }
  .uri-painel-corpo { padding: .95rem; }
  .uri-painel-cab { padding: .8rem .95rem; }
  .uri-kpi .uri-kpi-val { font-size: 1.45rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- impressão ---------- */
@media print {
  @page { margin: 12mm; }
  body { background: #fff; font-size: 11pt; }
  .uri-sidebar, .uri-topo, .uri-tabbar, .uri-rodape, .uri-veu, .uri-cab-acoes, .uri-tabela-ferr, .uri-tabela-pag, .no-print, .btn { display: none !important; }
  .uri-conteudo { padding: 0; max-width: none; }
  .uri-painel { border-color: #999; break-inside: avoid; }
  .uri-identidade { background: #fff !important; color: #000; border: 1px solid #999; }
  .uri-identidade h2, .uri-identidade .uri-ident-meta, .uri-identidade .uri-ident-meta strong { color: #000; }
  a { color: #000; text-decoration: none; }
  .uri-print-only { display: block !important; }
}
.uri-print-only { display: none; }

/* conteúdo institucional vindo do banco */
.uri-html-legado > :last-child { margin-bottom: 0; }
/* célula de ui_tabela: no desktop não interfere; no modo empilhado (celular) vira um bloco à direita do rótulo */
.uri-tabela .uri-cel { display: contents; }
@media (max-width: 767.98px) { .uri-tabela.empilha td > .uri-cel { display: block; min-width: 0; text-align: right; } }

/* ---------- Editor de texto formatado (HugeRTE — units/uri_mod/editor.php e js/editor.js) ---------- */
.uri-editor { display: grid; gap: .4rem; min-width: 0; }
.uri-editor-fonte { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .85rem; min-height: 14rem; }
.uri-editor .tox.tox-hugerte { border-color: var(--uri-linha-forte); border-radius: var(--uri-raio-sm); }
.uri-editor .tox.tox-hugerte:focus-within { border-color: var(--uri-azul); outline: 3px solid var(--uri-petroleo); outline-offset: 1px; box-shadow: 0 0 0 5px var(--uri-marcador); }
.uri-editor-medidor { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .9rem; font-size: .875rem; color: var(--uri-texto-2); }
.uri-editor-medidor strong { color: var(--uri-texto); font-weight: 600; font-variant-numeric: tabular-nums; }
.uri-editor-barra { flex: 0 1 180px; height: 6px; border-radius: 99px; background: #E4ECF0; overflow: hidden; }
.uri-editor-barra > span { display: block; height: 100%; border-radius: inherit; background: var(--uri-azul); transition: width .2s ease; }
.uri-editor-medidor.alerta .uri-editor-barra > span { background: var(--uri-alerta); }
.uri-editor-medidor.erro { color: var(--uri-erro); }
.uri-editor-medidor.erro strong { color: var(--uri-erro); }
.uri-editor-medidor.erro .uri-editor-barra > span { background: var(--uri-erro); }
.uri-editor-aviso { flex-basis: 100%; font-weight: 600; }
.uri-editor-aviso:empty { display: none; }
.uri-editor-aviso.ok { color: var(--uri-ok); }
.uri-editor-aviso.info { color: var(--uri-petroleo); }
.uri-editor-aviso.erro { color: var(--uri-erro); }
.uri-editor-nota { flex-basis: 100%; font-size: .85rem; }
@media (prefers-reduced-motion: reduce) { .uri-editor-barra > span { transition: none; } }
