/* Rotier UI 1.1 · adaptação dos tokens Sirio / INPS.
   Origem, versões e licenças: NOTICE.md. Compartilhado por Hub e Sign. */
@font-face { font-family: 'Titillium Web'; src: url('fonts/titillium-regular.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'Titillium Web'; src: url('fonts/titillium-semibold.woff2') format('woff2'); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: 'Titillium Web'; src: url('fonts/titillium-bold.woff2') format('woff2'); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: 'Titillium Web'; src: url('fonts/titillium-italic.woff2') format('woff2'); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: Lora; src: url('fonts/lora-regular.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'Roboto Mono'; src: url('fonts/roboto-mono-regular.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; }
:root {
  color-scheme: light;
  --ds-brand: #2f6dd5;
  --ds-brand-rgb: 47, 109, 213;
  --ds-brand-hover: #00368f;
  --ds-brand-pressed: #00173d;
  --ds-brand-dark: #002460;
  --ds-brand-soft: #d9e4f7;
  --ds-canvas: #f3f6fa;
  --ds-surface: #fff;
  --ds-text: #263342;
  --ds-muted: #586577;
  --ds-border: #e1e7ee;
  --ds-border-soft: #edf0f4;
  --ds-field-border: #8793a6;
  --ds-success: #008069;
  --ds-success-text: #005c4b;
  --ds-success-soft: #e5f3ef;
  --ds-danger: #aa224f;
  --ds-danger-soft: #faedf1;
  --ds-warning: #9c3a16;
  --ds-warning-soft: #fff3df;
  --ds-info: #2357ae;
  --ds-info-soft: #edf3fc;
  --ds-focus: #0065d1;
  --ds-font: 'Titillium Web', system-ui, -apple-system, sans-serif;
  --ds-editorial: Lora, Georgia, serif;
  --ds-mono: 'Roboto Mono', ui-monospace, monospace;
  --ds-radius: 6px;
  --ds-panel-radius: 12px;
  --ds-sheet-radius: 16px;
  --ds-space-1: 4px;
  --ds-space-2: 8px;
  --ds-space-3: 12px;
  --ds-space-4: 16px;
  --ds-space-6: 24px;
  --ds-space-8: 32px;
  --ds-shadow: 0 2px 8px rgb(0 23 61 / 6%);
  --bs-body-font-family: var(--ds-font);
  --bs-body-color: var(--ds-text);
  --bs-body-bg: var(--ds-canvas);
  --bs-primary: var(--ds-brand);
  --bs-primary-rgb: var(--ds-brand-rgb);
  --bs-link-color: var(--ds-brand-hover);
  --bs-link-hover-color: var(--ds-brand-pressed);
  --bs-border-color: var(--ds-border);
  --bs-border-radius: var(--ds-radius);
  --bs-border-radius-sm: var(--ds-radius);
  --bs-border-radius-lg: var(--ds-radius);
  --bs-success-rgb: 0, 128, 105;
  --bs-danger-rgb: 170, 34, 79;
  --bs-warning-rgb: 255, 162, 23;
}
:root[data-rotier-product='hub'] {
  --ds-brand: #5e7257;
  --ds-brand-rgb: 94, 114, 87;
  --ds-brand-hover: #4a5e44;
  --ds-brand-pressed: #2f3835;
  --ds-brand-dark: #2f3835;
  --ds-brand-soft: #dae8d4;
  --ds-canvas: #f3f6f2;
  --ds-focus: #4a5e44;
}
[data-rotier-product] *, [data-rotier-product] *::before, [data-rotier-product] *::after { box-sizing: border-box; }
[data-rotier-product] body {
  margin: 0; background: var(--ds-canvas); color: var(--ds-text);
  font-family: var(--ds-font); font-size: .9375rem; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
[data-rotier-product] :where(h1, h2, h3, h4, h5, h6) { font-family: var(--ds-font); font-weight: 600; line-height: 1.25; }
[data-rotier-product] :where(h1, .h1) { font-size: 1.75rem; letter-spacing: -.025em; }
[data-rotier-product] :where(h2, .h2) { font-size: 1.5rem; letter-spacing: -.015em; }
[data-rotier-product] :where(h3, .h3) { font-size: 1.25rem; }
[data-rotier-product] :where(h4, .h4) { font-size: 1.125rem; }
[data-rotier-product] :where(h5, .h5, h6, .h6) { font-size: 1rem; }
[data-rotier-product] a:where(:not(.btn)) { color: var(--ds-brand-hover); text-underline-offset: .2em; }
[data-rotier-product] a:where(:not(.btn)):hover { color: var(--ds-brand-pressed); }
[data-rotier-product] :where(input, select, textarea, button) { font: inherit; }
[data-rotier-product] :where(code, pre, kbd, .font-monospace) { font-family: var(--ds-mono); }
[data-rotier-product] :focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 3px; }
[data-rotier-product] ::selection { background: var(--ds-brand-soft); color: var(--ds-brand-pressed); }
[data-rotier-product] .text-muted, [data-rotier-product] .text-body-secondary { color: var(--ds-muted) !important; }
[data-rotier-product] .text-primary { color: var(--ds-brand-hover) !important; }
[data-rotier-product] .text-warning { color: var(--ds-warning) !important; }
[data-rotier-product] .text-danger, [data-rotier-product] .errorlist { color: var(--ds-danger) !important; }
[data-rotier-product] .card {
  --bs-card-border-color: var(--ds-border); --bs-card-border-radius: var(--ds-panel-radius);
  background: var(--ds-surface); border: 1px solid var(--ds-border);
  border-radius: var(--ds-panel-radius); box-shadow: none; color: var(--ds-text);
}
[data-rotier-product] .card-header { background: var(--ds-surface); border-bottom: 1px solid var(--ds-border-soft); font-weight: 700; }
[data-rotier-product] :where(.modal-content, .dropdown-menu, .list-group) { border-color: var(--ds-border); border-radius: var(--ds-radius); }
[data-rotier-product] .dropdown-item { min-height: 44px; display: flex; align-items: center; color: var(--ds-text); }
[data-rotier-product] .dropdown-item:hover { background: var(--ds-canvas); }
[data-rotier-product] .dropdown-item.active { background: var(--ds-brand); color: #fff; }
[data-rotier-product] .list-group-item { border-color: var(--ds-border-soft); padding: 1rem; }
[data-rotier-product] .list-group-item-action:hover { background: var(--ds-canvas); }
[data-rotier-product] .btn {
  --bs-btn-border-radius: var(--ds-radius); --bs-btn-font-weight: 600;
  --bs-btn-disabled-opacity: .55; --bs-btn-focus-box-shadow: 0 0 0 3px var(--ds-brand-soft);
  min-height: 40px; padding: .5rem 1rem; font-size: .9375rem; line-height: 1.45;
  border-radius: var(--ds-radius); font-weight: 600; box-shadow: none;
  transition: background-color .15s, border-color .15s, color .15s;
  text-decoration: none;
}
[data-rotier-product] .btn-primary {
  --bs-btn-color: #fff; --bs-btn-bg: var(--ds-brand); --bs-btn-border-color: var(--ds-brand);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ds-brand-hover); --bs-btn-hover-border-color: var(--ds-brand-hover);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ds-brand-pressed); --bs-btn-active-border-color: var(--ds-brand-pressed);
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--ds-brand); --bs-btn-disabled-border-color: var(--ds-brand);
  color: #fff; background: var(--ds-brand); border-color: var(--ds-brand);
}
[data-rotier-product] .btn-primary:hover { background: var(--ds-brand-hover); border-color: var(--ds-brand-hover); color: #fff; transform: none; box-shadow: none; }
[data-rotier-product] .btn-primary:active { background: var(--ds-brand-pressed); border-color: var(--ds-brand-pressed); }
[data-rotier-product] :where(.btn-outline-primary, .btn-outline-secondary, .btn-outline-dark) {
  --bs-btn-color: var(--ds-brand-hover); --bs-btn-border-color: var(--ds-brand);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ds-brand-hover); --bs-btn-hover-border-color: var(--ds-brand-hover);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ds-brand-pressed); --bs-btn-active-border-color: var(--ds-brand-pressed);
  --bs-btn-disabled-color: var(--ds-muted); --bs-btn-disabled-border-color: var(--ds-border);
}
[data-rotier-product] .btn-danger {
  --bs-btn-bg: var(--ds-danger); --bs-btn-border-color: var(--ds-danger);
  --bs-btn-hover-bg: #7f1a3b; --bs-btn-hover-border-color: #7f1a3b;
}
[data-rotier-product] .btn-outline-danger { --bs-btn-color: var(--ds-danger); --bs-btn-border-color: var(--ds-danger); --bs-btn-hover-bg: var(--ds-danger); --bs-btn-hover-border-color: var(--ds-danger); }
[data-rotier-product] .btn-link { color: var(--ds-brand-hover); }
[data-rotier-product] .btn-sm { min-height: 34px; padding: .3125rem .75rem; font-size: .875rem; }
[data-rotier-product] :where(.form-control, .form-select) {
  min-height: 44px; background-color: var(--ds-surface); color: var(--ds-text);
  border: 1px solid var(--ds-field-border); border-radius: var(--ds-radius);
  font-size: .9375rem; padding: .5625rem .75rem; box-shadow: none;
}
[data-rotier-product] :where(.form-control, .form-select):focus {
  border-color: var(--ds-brand); box-shadow: 0 0 0 2px var(--ds-brand-soft);
}
[data-rotier-product] :where(.form-control, .form-select):disabled { background-color: var(--ds-border-soft); color: var(--ds-muted); }
[data-rotier-product] .form-control::placeholder { color: var(--ds-muted); opacity: 1; }
[data-rotier-product] :where(.form-label, .col-form-label) { font-weight: 600; color: var(--ds-text); }
[data-rotier-product] .form-text { color: var(--ds-muted); font-size: .875rem; }
[data-rotier-product] :where(input[type='checkbox'], input[type='radio']) { accent-color: var(--ds-brand); }
[data-rotier-product] .form-check-input:checked { background-color: var(--ds-brand); border-color: var(--ds-brand); }
[data-rotier-product] .table { --bs-table-bg: var(--ds-surface); --bs-table-color: var(--ds-text); --bs-table-border-color: var(--ds-border-soft); --bs-table-hover-bg: var(--ds-canvas); font-size: .9375rem; }
[data-rotier-product] .table thead th { background: var(--ds-surface); color: var(--ds-text); font-weight: 600; text-transform: none; letter-spacing: normal; font-size: .875rem; padding: .75rem 1rem; }
[data-rotier-product] .table td { padding: .875rem 1rem; }
[data-rotier-product] .table-responsive { border-radius: var(--ds-radius); }
[data-rotier-product] .nav-tabs { --bs-nav-tabs-link-active-color: var(--ds-brand-hover); --bs-nav-tabs-link-active-border-color: var(--ds-border) var(--ds-border) var(--ds-surface); border-color: var(--ds-border); }
[data-rotier-product] .nav-tabs .nav-link { min-height: 48px; color: var(--ds-muted); font-weight: 600; }
[data-rotier-product] .nav-tabs .nav-link.active { color: var(--ds-brand-hover); box-shadow: inset 0 -3px var(--ds-brand); }
[data-rotier-product] .page-link { --bs-pagination-active-bg: var(--ds-brand); --bs-pagination-active-border-color: var(--ds-brand); min-width: 44px; min-height: 44px; display: grid; place-items: center; color: var(--ds-brand-hover); }
[data-rotier-product] .active > .page-link { color: #fff; background: var(--ds-brand); border-color: var(--ds-brand); }
[data-rotier-product] .badge { border-radius: var(--ds-radius); font-weight: 600; line-height: 1.4; }
[data-rotier-product] .alert { border-radius: var(--ds-radius); border-width: 1px; padding: 1rem; }
[data-rotier-product] .alert-success { --bs-alert-color: var(--ds-success-text); --bs-alert-bg: var(--ds-success-soft); --bs-alert-border-color: var(--ds-success); }
[data-rotier-product] .alert-danger { --bs-alert-color: var(--ds-danger); --bs-alert-bg: var(--ds-danger-soft); --bs-alert-border-color: var(--ds-danger); }
[data-rotier-product] .alert-warning { --bs-alert-color: var(--ds-warning); --bs-alert-bg: var(--ds-warning-soft); --bs-alert-border-color: var(--ds-warning); }
[data-rotier-product] .alert-info { --bs-alert-color: var(--ds-info); --bs-alert-bg: var(--ds-info-soft); --bs-alert-border-color: var(--ds-info); }
.ds-editorial { font-family: var(--ds-editorial); }
.ds-skip-link { position: fixed; left: 16px; top: 12px; z-index: 2000; background: var(--ds-surface); color: var(--ds-brand-hover); padding: 12px 20px; border: 2px solid var(--ds-brand); }
.ds-skip-link:not(:focus) { clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  [data-rotier-product] *, [data-rotier-product] *::before, [data-rotier-product] *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
  [data-rotier-product] body { background: #fff; color: #000; }
  .ds-skip-link { display: none; }
}
/* Papéis de layout compartilhados: moldura, folha, ferramentas e dados. */
[data-rotier-product] input, [data-rotier-product] textarea { caret-color: var(--ds-brand); }
[data-rotier-product] .rs-icon { display: inline-block; width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.rs-page-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
.rs-page-header h1, .rs-page-header h2 { margin: 0 0 6px; }
.rs-page-header p { margin: 0; color: var(--ds-muted); max-width: 65ch; }
.rs-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rs-panel { background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-panel-radius); padding: 24px; }
.rs-section-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.rs-section-title h2, .rs-section-title h3 { margin: 0; font-size: 1.125rem; }
.rs-toolbar { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(160px, 220px) auto; gap: 12px; align-items: end; }
.rs-toolbar .form-label { font-size: .8125rem; margin-bottom: 6px; }
.rs-filter-region { margin-bottom: 24px; }
.rs-filter-more { margin-top: 10px; }
.rs-filter-more > summary { display: list-item; width: fit-content; min-height: 36px; padding-block: 6px; font-size: .875rem; color: var(--ds-muted); cursor: pointer; }
.rs-filter-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 16px; padding: 16px; margin-top: 8px; border-radius: 8px; background: var(--ds-canvas); }
.rs-filter-fields .form-label { font-size: .875rem; }
.rs-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 28px; border-block: 1px solid var(--ds-border); }
.rs-metric { padding: 18px 20px; min-width: 0; border-inline-end: 1px solid var(--ds-border); }
.rs-metric:last-child { border-inline-end: 0; }
.rs-metric-label { display: block; color: var(--ds-muted); font-size: .875rem; margin-bottom: 6px; }
.rs-metric-value { display: block; font-size: 1.75rem; line-height: 1.15; font-weight: 600; color: var(--ds-text); font-variant-numeric: tabular-nums; }
.rs-metric-note { display: block; color: var(--ds-muted); font-size: .8125rem; margin-top: 6px; }
.rs-status { display: inline-flex; align-items: center; flex: none; gap: 6px; padding: 3px 9px; border-radius: 4px; color: var(--ds-brand-hover); background: var(--ds-brand-soft); font-size: .8125rem; font-weight: 600; white-space: nowrap; }
.rs-status[data-status='completed'] { color: var(--ds-success-text); background: var(--ds-success-soft); }
.rs-status[data-status='failed'], .rs-status[data-status='expired'] { color: var(--ds-warning); background: var(--ds-warning-soft); }
.rs-status[data-status='canceled'], .rs-status[data-status='draft'], .rs-status[data-status='queued'] { color: var(--ds-muted); background: var(--ds-border-soft); }
.rs-empty { padding: 40px 24px; text-align: center; border: 1px dashed var(--ds-border); border-radius: var(--ds-panel-radius); }
.rs-empty h2, .rs-empty h3 { font-size: 1.125rem; margin: 0 0 8px; }
.rs-empty p { max-width: 48ch; margin: 0 auto; color: var(--ds-muted); }
.rs-empty .rs-actions { justify-content: center; margin-top: 20px; }
.rs-pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 20px; color: var(--ds-muted); font-size: .875rem; }
.rs-settings-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 32px; margin-top: 28px; }
.rs-settings-grid > * { min-width: 0; }
.rs-settings-grid p { color: var(--ds-muted); max-width: 60ch; }
[data-rotier-product] :where(.rs-metric-value, .table .num) { font-variant-numeric: tabular-nums; }
@media (max-width: 767.98px) {
  [data-rotier-product] .btn, [data-rotier-product] .btn-sm { min-height: 44px; }
  .rs-page-header { margin-bottom: 24px; gap: 12px; }
  .rs-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .rs-toolbar .rs-search { grid-column: 1 / -1; }
  .rs-toolbar .form-select { min-width: 0; }
  .rs-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 24px; }
  .rs-metric { padding: 14px 12px; border-bottom: 1px solid var(--ds-border); }
  .rs-metric:nth-child(even) { border-inline-end: 0; }
  .rs-metric:nth-last-child(-n+2) { border-bottom: 0; }
  .rs-metric-value { font-size: 1.5rem; }
  .rs-settings-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .rs-panel { padding: 20px; }
  .rs-empty { padding: 32px 16px; }
  .rs-filter-fields { gap: 10px; padding: 12px; }
  .rs-filter-fields input { min-width: 0; }
}
@media (max-width: 767.98px) { [data-rotier-product] :is(.form-control,.form-select,input,select,textarea) { font-size: 1rem; } }
