/* Source: frontend/core/tema.css */
@font-face {
  font-family: "Almox Inter";
  src: url("/brand/InterVariable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/* Global design tokens and reset. Module files must not redefine these. */
:root {
  --purple: #6035d8;
  --navy: #211747;
  --ink: #222b3d;
  --muted: #697386;
  --line: #e7e8f0;
  --bg: #f8f9fc;
  --font-ui: "Almox Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --radius-control: 8px;
  --radius-panel: 10px;
  --green: #16835b;
  --red: #bc3548;
  --orange: #b57715;
}
* {
  box-sizing: border-box;
}
[hidden] {
  display: none !important;
}
body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font: 13px/1.5 var(--font-ui);
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea {
  font: inherit;
}
button, summary {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
  opacity: .55;
}
a {
  color: var(--purple);
}
:focus-visible {
  outline: 3px solid #a991ef;
  outline-offset: 3px;
}
h1, h2, h3, h4, p {
  margin-top: 0;
}
h1 {
  font-size: 25px;
  font-weight: 750;
  letter-spacing: -.8px;
  color: #262044;
  line-height: 1.25;
}
h2 {
  font-size: 20px;
  letter-spacing: -.4px;
  line-height: 1.3;
}
h3 {
  font-size: 16px;
}
h4 {
  font-size: 15px;
}
small {
  font-size: 12px;
}
[role=alert] {
  color: var(--red);
  overflow-wrap: anywhere;
}
[role=alert]:empty {
  display: none;
}
input, select, textarea {
  min-width: 0;
  max-width: 100%;
  color: var(--ink);
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius-control);
  padding: 10px 12px;
  min-height: 42px;
}
input[type=checkbox], input[type=radio] {
  min-height: 18px;
  width: 18px;
  accent-color: var(--purple);
}
textarea {
  resize: vertical;
  min-height: 90px;
}
input:disabled, select:disabled, textarea:disabled {
  opacity: 1;
  background: #f4f5f8;
  color: #596273;
}
input[readonly], textarea[readonly] {
  background: #f8f9fb;
}

/* Source: frontend/core/layout.css */
#side {
  position: fixed;
  inset: 0 auto 0 0;
  width: 240px;
  padding: 22px 14px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  height: 100dvh;
  overflow: hidden;
  background: var(--navy);
  color: white;
  z-index: 30;
}
.logo {
  color: white;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex-shrink: 0;
  gap: 8px;
  padding-bottom: 4px;
}
.logo-image {
  display: block;
  padding: 6px;
  background: transparent;
  border-radius: 10px;
  overflow: hidden;
}
.logo-image img { display: block; width: 100%; height: auto; }
.logo small { display: block; text-align: center; font-size: 11px; font-weight: 400; letter-spacing: .3px; color: #c3b8e3; }
.logo:focus-visible { outline: 2px solid #b8a2ff; outline-offset: 4px; border-radius: 10px; }
#nav {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior-y: contain;
  display: grid;
  align-content: start;
  gap: 4px;
  padding-right: 5px;
  scrollbar-width: thin;
  scrollbar-color: #ffffff35 transparent;
}
#nav::-webkit-scrollbar { width: 5px; }
#nav::-webkit-scrollbar-track { background: transparent; }
#nav::-webkit-scrollbar-thumb { background: #ffffff35; border-radius: 10px; }
#nav::-webkit-scrollbar-thumb:hover { background: #ffffff65; }
#nav::-webkit-scrollbar-button { display: none; height: 0; }
#side > .user { flex-shrink: 0; }
.nav {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 40px;
  text-align: left;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #e3ddef;
  padding: 9px 12px;
}
.nav > span {
  width: 20px;
  text-align: center;
}
.nav:hover {
  background: #ffffff12;
}
.nav.active {
  background: #7148df;
  color: white;
}
.user {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: auto;
  padding: 12px 8px 0;
  border-top: 1px solid #ffffff24;
}
.user div, .profile div {
  min-width: 0;
}
.user b, .profile b {
  display: block;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.user small {
  color: #c3b8e3;
}
.user > span, .profile > span {
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #7451cc;
  color: white;
}
main {
  margin-left: 240px;
  min-width: 0;
}
.app-header {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 76px;
  padding: 14px 28px;
  background: white;
  border-bottom: 1px solid var(--line);
}
.global-search {
  display: flex;
  align-items: center;
  gap: 8px;
  width: min(400px, 100%);
  margin-right: auto;
}
.global-search input {
  width: 100%;
}
.profile {
  display: flex;
  align-items: center;
  gap: 10px;
}
.profile small {
  color: var(--muted);
}
#menu {
  display: none;
}
#app {
  width: 100%;
  max-width: none;
  padding: 22px 16px;
  margin: 0;
  min-width: 0;
}
.head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
}
.head h1 {
  margin-bottom: 5px;
}
.head p {
  color: var(--muted);
  margin: 0;
}
.actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.skip-link {
  position: fixed;
  top: -100px;
  left: 16px;
  z-index: 100;
  background: white;
  padding: 10px;
}
.skip-link:focus {
  top: 10px;
}
@media (max-width: 1000px) {
  #side {
    transform: translateX(-100%);
    transition: transform .15s;
  }
  #side.open {
    transform: translateX(0);
    box-shadow: 0 0 0 100vmax #17112d66;
  }
  main {
    margin-left: 0;
  }
  #menu {
    display: inline-flex;
  }
  .profile {
    display: none;
  }
}
@media (max-width: 600px) {
  .app-header {
    padding: 12px;
    gap: 8px;
    flex-wrap: wrap;
  }
  .global-search {
    flex: 1;
    min-width: 130px;
  }
  #app {
    padding: 20px 12px;
  }
  h1 {
    font-size: 24px;
  }
  .head .actions {
    width: 100%;
  }
  #liveAccount {
    font-size: 12px;
    padding: 8px;
  }
}

/* Shared shell across all modules. */
#side { background: #fff; border-right: 1px solid #e9eaf1; color: #303047; }
.logo small,
.user small { color: #85859b; }
.user { border-top-color: #edeef5; }
.nav { color: #73768b; font-size: 12px; }
.nav > span { color: #918ba8; }
.nav:hover { background: #f7f5fc; }
.nav.active { color: #6841cf; background: #f0ebfc; font-weight: 650; }
.nav.active > span { color: #6841cf; }
.app-header { min-height: 66px; border-bottom-color: #edeef5; }
.global-search input { border-color: #eeeef5; background: #fafafe; font-size: 12px; }

/* Grupos da navegação lateral. */
#nav{gap:14px}.nav-group{min-width:0}.nav-group+.nav-group{border-top:1px solid #efedf5;padding-top:12px}.nav-group-title{margin:0 10px 7px;font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:#9791a7;line-height:1.5}.nav-group-items{display:grid;gap:3px}.nav-group .nav{width:100%;text-align:left}

/* Source: frontend/components/componentes.css */
.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-control);
  background: white;
  color: #45516a;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.4;
}
.btn:hover {
  background: #f4f0ff;
  border-color: #bfaee9;
}
.btn.primary {
  background: var(--purple);
  border-color: var(--purple);
  color: white;
}
.btn.primary:hover {
  background: #5128bc;
}
.card, .tablecard {
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  min-width: 0;
}
.card {
  padding: 20px;
  box-shadow: 0 2px 4px #25204404;
}
.card + .card {
  margin-top: 20px;
}
.tablecard {
  overflow-x: auto;
  margin: 16px 0;
}
table {
  border-collapse: collapse;
  width: 100%;
}
th {
  background: #f8f9fc;
  text-align: left;
  font-size: 12px;
  color: #596579;
  font-weight: 600;
  white-space: nowrap;
}
th, td {
  padding: 12px 14px;
  border-bottom: 1px solid #edf0f5;
}
td {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  vertical-align: middle;
}
tr:last-child td {
  border-bottom: 0;
}
td .btn {
  font-size: 12px;
  margin: 3px 2px;
}
td small {
  display: block;
  color: var(--muted);
}
.tablecard > p {
  padding: 16px;
  margin: 0;
}
.form {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 18px;
}
.field {
  min-width: 0;
}
.field label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
}
.field input, .field select, .field textarea {
  width: 100%;
}
.field small {
  display: block;
  color: var(--muted);
  margin-top: 6px;
}
.field.full, .form > .full {
  grid-column: 1 / -1;
}
.field label:has(>input[type=checkbox]) {
  flex-direction: row;
  align-items: center;
}
.field input[type=checkbox] {
  width: 18px;
}
.field input[type=file] {
  font-size: 12px;
}
.toolbar, .request-tools {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  padding: 14px;
  margin-bottom: 16px;
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
}
.toolbar input, .toolbar .filter {
  flex: 1;
  min-width: 160px;
}
.search {
  display: inline-flex;
  align-items: center;
  margin: 12px 8px 12px 0;
}
.search input {
  min-width: min(260px, 100%);
  width: 100%;
}
.status {
  display: inline-block;
  background: #eee9fb;
  color: #5833a8;
  padding: 5px 9px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
}
.title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 20px 0 14px;
}
.title h3 {
  margin: 0;
}
.material-cell {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 190px;
}
.material-cell small {
  color: var(--muted);
}
.material-photo {
  width: 52px;
  height: 52px;
  object-fit: contain;
  border-radius: var(--radius-control);
  flex: 0 0 52px;
  background: #f4f1fc;
}
.photo-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #8b77b4;
  font-size: 20px;
}
.photo-empty small {
  font-size: 10px;
}
.tech {
  display: flex;
  align-items: center;
  gap: 12px;
}
.tech > span {
  padding: 8px;
  border-radius: 50%;
  background: #eee8fc;
}
.tech small {
  display: block;
  overflow-wrap: anywhere;
}
#overlay {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: #14102788;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 24px;
}
.modal {
  position: relative;
  width: min(900px,100%);
  max-height: calc(100dvh - 48px);
  overflow: auto;
  padding: 24px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 20px 80px #100b3033;
}
.modal h2, .modal h3 {
  color: #302844;
  font-weight: 700;
  padding-right: 28px;
}
.modal h2 {
  margin-bottom: 10px;
}
.modal > #close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  min-height: 34px;
  padding: 0;
  font-size: 24px;
  z-index: 5;
}
.modalactions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.dialog-open {
  overflow: hidden;
}
#toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translate(-50%,20px);
  z-index: 100;
  max-width: calc(100vw - 32px);
  background: #27203e;
  color: white;
  border-radius: 10px;
  padding: 12px 18px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s, transform .15s;
}
#toast.show {
  opacity: 1;
  transform: translate(-50%,0);
}
.option-editor {
  padding: 14px;
  background: #f7f5fc;
  border-radius: 10px;
  margin: 10px 0;
}
.option-editor label {
  display: grid;
  gap: 6px;
  margin-bottom: 12px;
}
.option-inline {
  margin-top: 8px;
}
@media (max-width:600px) {
  .form {
    grid-template-columns: minmax(0,1fr);
  }
  #overlay {
    padding: 10px;
  }
  .modal {
    max-height: calc(100dvh - 20px);
    padding: 22px 16px;
  }
  .card {
    padding: 16px;
  }
  th, td {
    padding: 12px;
  }
  .toolbar > input, .toolbar > select {
    width: 100%;
  }
  .search {
    display: flex;
    width: 100%;
  }
  .tablecard table {
    min-width: 600px;
  }
}

/* Shared typography for forms, dialogs and data lists. */
.modal { font-family: var(--font-ui); font-size: 13px; line-height: 1.5; }
.modal h2 { font-size: 20px; letter-spacing: -.4px; }
.modal h3 { font-size: 16px; }
.modal label, .toolbar label { font-size: 13px; font-weight: 600; }
.modal input, .modal select, .modal textarea { font-family: var(--font-ui); font-size: 13px; border-radius: var(--radius-control); }
.tablecard tbody tr:hover { background: #faf9fd; }
.tablecard th { font-size: 12px; font-weight: 600; }
.tablecard td { line-height: 1.5; }
.modal .tablecard td { font-size: 13px; }
.modal .tablecard td small { font-size: 12px; }
@media (max-width: 600px) {
  .modalactions > .btn { flex: 1 1 auto; }
}

/* Source: frontend/modules/produtos/produtos.css */
.catalog-section {
  margin: 22px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.catalog-section legend {
  padding: 0 8px;
  font-weight: 600;
  color: #5833b4;
}
.modal:has(#localProductForm) {
  width: min(900px,100%);
}
.material-cell small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 4px;
}
#importPreview {
  margin-top: 20px;
}
#importPreview input:not([type=checkbox]) {
  width: 150px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
}
#saveImport {
  margin-top: 20px;
}
.modal:has(#importPreview) {
  width: min(950px,100%);
}
.product-step-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 18px 0 24px;
}
.product-step-tabs span {
  padding: 8px 12px;
  background: #f3f2f7;
  color: #777;
  border-radius: 8px;
  font-size: 12px;
}
.product-step-tabs .active {
  background: #6035e5;
  color: white;
}
.product-step-tabs .done {
  background: #e8f7ef;
  color: #27865c;
}
.product-step-panel[hidden],.product-step-actions [hidden] {
  display: none;
}
.product-step-panel h4 {
  font-size: 18px;
}
.product-step-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  position: sticky;
  bottom: -28px;
  background: white;
  border-top: 1px solid var(--line);
  padding: 16px 0;
  margin-top: 22px;
  z-index: 2;
}
.product-step-actions>span {
  flex: 1;
  color: var(--muted);
  font-size: 12px;
}
.product-review-field {
  padding: 12px;
  background: #f7f6fb;
  border-radius: 8px;
  overflow-wrap: anywhere;
}
.product-review-field small,.product-review-field b {
  display: block;
}
.product-review-field small {
  color: var(--muted);
}
.option-inline {
  justify-self: start;
  font-size: 12px;
}
.option-editor {
  padding: 14px;
  background: #f7f5fc;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.option-editor label {
  display: grid;
  gap: 6px;
  margin-bottom: 10px;
}
.product-qr {
  display: grid;
  justify-items: center;
  gap: 12px;
  text-align: center;
}
.product-qr img {
  width: min(320px,100%);
  height: auto;
}
.product-qr small {
  color: var(--muted);
}
@media(max-width:600px) {
  .product-step-tabs {
    gap: 4px;
  }
  .product-step-tabs span {
    font-size: 11px;
    padding: 6px;
  }
  .product-step-actions {
    bottom: -22px;
    flex-wrap: wrap;
  }
}
.product-complements {
  margin-top: 22px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 16px;
}
.product-complements summary {
  font-weight: 600;
  color: var(--purple);
}
.product-complements[open] summary {
  margin-bottom: 18px;
}
.product-lookup {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.product-lookup .btn {
  margin: 10px 0;
}
.product-basic-form>p {
  color: var(--muted);
}
.product-basic-form .modalactions {
  position: static;
}

/* Compact actions with labels on hover and keyboard focus. */
.product-row-actions { display: grid; grid-template-columns: repeat(4, 36px); gap: 5px; width: max-content; }
.product-row-actions .product-action-icon { display: inline-grid; place-items: center; width: 36px; min-height: 36px; height: 36px; margin: 0; padding: 8px; border-radius: 8px; color: #756689; border-color: #ebe6f2; background: #fff; }
.product-action-icon svg { display: block; width: 18px; height: 18px; }
.product-row-actions .product-action-icon:hover { color: #6035d8; background: #f4effd; border-color: #cdbbea; }
.product-row-actions .product-track { color: #693fc2; background: #f5f0ff; }
.product-row-actions .product-action-danger { color: #b34861; }
.product-row-actions .product-action-danger:hover { color: #a22544; border-color: #e7b9c4; background: #fff1f4; }
.product-action-hint { position: fixed; z-index: 110; max-width: calc(100vw - 16px); padding: 7px 10px; border-radius: 7px; background: #302344; color: #fff; font: 11px/1.4 var(--font-ui); box-shadow: 0 4px 12px #21103422; pointer-events: none; }
@media(pointer:coarse) { .product-row-actions { grid-template-columns: repeat(4, 44px); } .product-row-actions .product-action-icon { width: 44px; height: 44px; min-height: 44px; } }


.product-control-hub { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 18px; margin-bottom: 20px; border: 1px solid #e7e0f4; border-radius: 12px; background: #fcfaff; }
.product-control-hub strong { color: #3e285f; font-size: 14px; }
.product-control-hub p { margin: 5px 0 0; font-size: 12px; color: var(--muted); }
.product-track { color: #6942bc; background: #f6f1ff; border-color: #e5d9f8; }
.product-section-back { margin-bottom: 16px; }
@media(max-width:600px) { .product-control-hub .actions { width: 100%; } .product-control-hub .actions .btn { flex: 1 1 auto; } }

/* Source: frontend/modules/requisicoes/assistente.css */
.modal:has(.steps) {
  width: min(820px,96vw);
  padding: 0;
  overflow: hidden;
}
.wizard-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 24px 27px 17px;
}
.wizard-head h2 {
  margin: 0 0 5px;
}
.wizard-head p {
  margin: 0!important;
}
.wizard-head>b {
  font-size: 12px;
  color: #6540da;
  background: #f1edff;
  padding: 7px 10px;
  border-radius: 16px;
}
.steps {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  padding: 0 27px 18px;
  border-bottom: 1px solid var(--line);
}
.step {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #a0a5b1;
  font-size: 12px;
  position: relative;
}
.step:after {
  content: "";
  height: 2px;
  background: #e9e8ef;
  position: absolute;
  left: 30px;
  right: 8px;
  top: 13px;
}
.step:last-child:after {
  display: none;
}
.step i {
  width: 27px;
  height: 27px;
  border: 2px solid #e3e2e9;
  background: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-style: normal;
  font-weight: 700;
  z-index: 1;
}
.step.active {
  color: #5e38d5;
  font-weight: 700;
}
.step.active i {
  background: #6037dc;
  color: #fff;
  border-color: #6037dc;
}
.step.done {
  color: var(--green);
}
.step.done i {
  background: #e4f7ed;
  color: var(--green);
  border-color: #a8dfc3;
}
.step.done:after {
  background: #9eddbc;
}
.wizard-body {
  padding: 22px 27px;
  min-height: 390px;
  max-height: 60vh;
  overflow: auto;
}
.wizard-title h3 {
  font-size: 13px;
  margin: 0 0 5px;
}
.wizard-title p {
  font-size: 12px;
  color: var(--muted);
  margin: 0 0 17px;
}
.wizard-search {
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  align-items: center;
  padding: 0 11px;
  color: #888;
  margin-bottom: 12px;
}
.wizard-search input {
  border: 0;
  outline: 0;
  flex: 1;
  padding-left: 8px;
  font-size: 12px;
}
.tech-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.tech-option {
  position: relative;
  display: grid;
  grid-template-columns: 34px 1fr 18px;
  gap: 9px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 11px;
  cursor: pointer;
}
.tech-option input {
  display: block;
  position: absolute;
  right: 10px;
  top: 10px;
  width: 18px;
  height: 18px;
  min-height: 18px;
}
.tech-option:focus-within {
  outline: 3px solid #a991ef;
  outline-offset: 2px;
}
.tech-option>span {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #eee9ff;
  color: #5e38d5;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 700;
}
.tech-option b,.tech-option small,.tech-option em {
  display: block;
}
.tech-option b {
  font-size: 12px;
}
.tech-option small,.tech-option em {
  font-size: 12px;
  color: var(--muted);
  font-style: normal;
  margin-top: 3px;
}
.tech-option>i {
  font-style: normal;
  color: #aaa;
  font-size: 16px;
}
.tech-option.selected {
  border-color: #7048e7;
  background: #f9f7ff;
  box-shadow: 0 0 0 2px #7048e710;
}
.tech-option.selected>i:after {
  content: "✓";
  color: #6037dc;
}
.tech-option.selected>i {
  font-size: 0;
}
.item-options {
  display: grid;
  gap: 7px;
}
.wizard-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 9px 11px;
}
.wizard-item.selected {
  border-color: #8061e5;
  background: #faf9ff;
}
.wizard-item>label {
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
}
.wizard-item>label>input {
  accent-color: #6037dc;
}
.wizard-item b,.wizard-item small {
  display: block;
}
.wizard-item b {
  font-size: 12px;
}
.wizard-item small {
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
}
.qty {
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  overflow: hidden;
}
.qty button {
  border: 0;
  background: #f7f7fa;
  width: 27px;
  height: 29px;
}
.qty input {
  width: 38px;
  border: 0;
  text-align: center;
  outline: 0;
  font-size: 12px;
}
.selection-total {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
  background: #f2efff;
  color: #5e38d5;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 12px;
}
.wizard-actions {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: 8px;
  padding: 15px 27px;
  border-top: 1px solid var(--line);
  background: #fafafd;
}
.review {
  display: grid;
  gap: 10px;
}
.review section {
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 13px;
}
.review h4 {
  font-size: 12px;
  margin: 0 0 12px;
  display: flex;
  justify-content: space-between;
}
.review h4 button {
  border: 0;
  background: none;
  color: #5e38d5;
  font-size: 12px;
}
.review-item {
  display: grid;
  grid-template-columns: 100px 1fr auto;
  padding: 8px 0;
  border-top: 1px solid #f0f1f4;
  font-size: 12px;
}
.review-item span {
  color: #5e38d5;
}
.review-item em {
  font-style: normal;
  font-weight: 600;
}
.review-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.review-grid small,.review-grid b {
  display: block;
}
.review-grid small {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 4px;
}
.review-grid b {
  font-size: 12px;
}
@media(max-width:650px) {
  .tech-options {
    grid-template-columns: 1fr;
  }
  .step span {
    display: none;
  }
  .steps {
    padding-inline: 18px;
  }
  .wizard-body,.wizard-head,.wizard-actions {
    padding-inline: 18px;
  }
  .wizard-item {
    align-items: flex-start;
    gap: 8px;
  }
  .review-grid {
    grid-template-columns: 1fr;
  }
  .review-item {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}

/* Source: frontend/modules/requisicoes/carrinho.css */
.modal:has(.cart-list) {
  width: min(850px,96vw);
}
.cart-head {
  align-items: center;
}
.cart-add {
  position: relative;
  margin-bottom: 15px;
}
.cart-add .wizard-search {
  margin-bottom: 0;
}
#cartSuggestions {
  position: absolute;
  z-index: 5;
  left: 0;
  right: 0;
  top: 42px;
  background: #fff;
  border-radius: 9px;
  box-shadow: 0 12px 35px #18102e25;
  overflow: hidden;
}
#cartSuggestions button {
  display: grid;
  grid-template-columns: 34px 1fr auto;
  gap: 9px;
  align-items: center;
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
  text-align: left;
  padding: 9px 12px;
}
#cartSuggestions button:hover {
  background: #f9f7ff;
}
#cartSuggestions b,#cartSuggestions small {
  display: block;
}
#cartSuggestions b {
  font-size: 12px;
}
#cartSuggestions small {
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
}
#cartSuggestions i {
  font-style: normal;
  color: #6037d6;
  font-size: 12px;
}
.cart-title {
  margin: 18px 0 9px;
}
.cart-title h3 {
  margin-bottom: 4px;
}
.cart-title small {
  font-size: 12px;
  color: var(--muted);
}
.cart-list {
  display: grid;
  gap: 7px;
  max-height: 285px;
  overflow: auto;
  padding-right: 4px;
}
.cart-row {
  display: grid;
  grid-template-columns: 36px 1fr auto auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 10px 12px;
  background: #fff;
}
.cart-info b,.cart-info small {
  display: block;
}
.cart-info b {
  font-size: 12px;
}
.cart-info small {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.cart-qty {
  display: flex;
  border: 1px solid var(--line);
  border-radius: 7px;
  overflow: hidden;
}
.cart-qty button {
  width: 30px;
  height: 31px;
  border: 0;
  background: #f7f7fa;
}
.cart-qty input {
  width: 42px;
  border: 0;
  text-align: center;
  outline: 0;
  font-size: 12px;
}
.cart-remove {
  width: 31px;
  height: 31px;
  border: 1px solid #f1c9ce;
  border-radius: 7px;
  background: #fff6f7;
  color: var(--red);
}
.cart-view-qty {
  text-align: right;
  min-width: 80px;
}
.cart-view-qty small,.cart-view-qty b {
  display: block;
}
.cart-view-qty small {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 4px;
}
.cart-view-qty b {
  font-size: 14px;
}
.cart-empty {
  text-align: center;
  color: var(--muted);
  padding: 25px;
  border: 1px dashed var(--line);
  border-radius: 9px;
}
.request-data {
  margin-top: 17px;
  border-top: 1px solid var(--line);
  padding-top: 15px;
}
.request-data h3 {
  font-size: 13px;
  margin: 0 0 11px;
}
.request-data>div {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 8px;
}
.request-data span {
  background: #f8f7fc;
  border-radius: 7px;
  padding: 9px;
}
.request-data small,.request-data b {
  display: block;
}
.request-data small {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 4px;
}
.request-data b {
  font-size: 12px;
}
.request-data .wide-data {
  grid-column: 1/-1;
}
@media(max-width:650px) {
  .cart-row {
    grid-template-columns: 36px 1fr;
  }
  .cart-qty,.cart-view-qty {
    grid-column: 2;
  }
  .cart-remove {
    grid-column: 1;
    grid-row: 2;
  }
  .request-data>div {
    grid-template-columns: 1fr 1fr;
  }
}
/* Real catalogue and requisition cart. */
.material-cart {
  font-size: 14px;
}
.cart-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}
.cart-section-heading h3 {
  font-size: 19px;
  margin: 0 0 6px;
}
.cart-section-heading p {
  color: #75768a;
  margin: 0;
}
.material-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
}
.material-card {
  border: 1px solid #e6e3ef;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.material-card.selected {
  border-color: #7950e8;
  box-shadow: 0 0 0 1px #7950e8;
  background: #fcfaff;
}
.material-photo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 8px;
  flex-shrink: 0;
  background: #f6f5fa;
}
.photo-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: #9690ab;
  font-size: 22px;
}
.photo-empty small {
  font-size: 13px;
}
.material-card>.material-photo {
  width: 100%;
  height: 120px;
}
.material-description {
  flex: 1;
}
.material-description h4 {
  font-size: 14px;
  line-height: 1.5;
  margin: 4px 0;
  overflow-wrap: anywhere;
}
.material-description p,.material-description small {
  font-size: 12px;
  color: #77758a;
  margin: 0;
}
.material-stepper {
  display: flex;
  border: 1px solid #ded7f0;
  border-radius: 9px;
  overflow: hidden;
  background: white;
}
.material-stepper button {
  width: 42px;
  min-height: 42px;
  border: 0;
  background: #f1ebff;
  color: #6131d3;
  font-size: 23px;
  cursor: pointer;
}
.material-stepper button:disabled {
  opacity: .35;
  cursor: default;
}
.material-stepper input {
  width: 0;
  flex: 1;
  min-width: 0;
  text-align: center;
  border: 0;
  font-size: 15px;
  font-weight: 600;
  padding: 0;
  appearance: textfield;
}
.material-stepper input::-webkit-inner-spin-button {
  appearance: none;
}
.material-stepper :focus-visible {
  outline: 2px solid #6435de;
  outline-offset: -3px;
}
.material-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 20px;
  padding: 18px;
  border-radius: 12px;
  background: #f1ebff;
  color: #462195;
}
.material-summary p {
  margin: 5px 0 0;
  font-size: 12px;
}
.material-cell {
  display: flex;
  gap: 12px;
  align-items: center;
}
.material-card[hidden] {
  display: none;
}
#productImageForm .field {
  margin: 16px 0;
}
#localProductForm small {
  font-size: 12px;
  color: #77758a;
}
@media(max-width:650px) {
  .material-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .cart-section-heading,.material-summary {
    align-items: flex-start;
    flex-direction: column;
  }
  .material-card>.material-photo {
    height: 95px;
  }
}
@media(max-width:360px) {
  .material-grid {
    grid-template-columns: 1fr;
  }
}
.modal:has(.steps) {
  width: min(820px,calc(100vw - 40px));
}
.material-cart .wizard-search input {
  min-width: 0;
  width: 100%;
}

/* Source: frontend/modules/requisicoes/requisicoes.css */
/* Scoped to operational requests; shared navigation and other modules stay intact. */
.request-page {
  max-width: 1500px;
  margin: 0 auto;
  padding-bottom: 28px;
}
.request-page-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 4px 0 28px;
}
.request-page .request-eyebrow {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  color: #8a7bae;
}
.request-page-heading h1 {
  font-size: 28px;
  letter-spacing: -.8px;
  margin: 8px 0;
  color: #20183e;
}
.request-page-heading p {
  font-size: 13px;
  color: #7b8194;
  margin: 0;
  line-height: 1.6;
}
.request-heading-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.request-page .btn {
  font-size: 12px;
  min-height: 40px;
  padding: 10px 15px;
  white-space: nowrap;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
.request-page .btn.primary {
  background: linear-gradient(125deg,#7448ef,#5930d3);
  box-shadow: 0 4px 10px #6540d51a;
}
.request-page button:focus-visible,.request-page input:focus-visible,.request-page select:focus-visible {
  outline: 3px solid #bba6fb;
  outline-offset: 3px;
}
.request-metrics {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 16px;
  margin-bottom: 28px;
}
.request-metric {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #fff;
  border: 1px solid #e9e6f0;
  border-radius: 14px;
  padding: 21px 18px;
  box-shadow: 0 3px 12px #23184203;
}
.metric-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  font-size: 22px;
}
.metric-icon.purple {
  color: #7045e9;
  background: #f1ebff;
}
.metric-icon.amber {
  color: #bd8422;
  background: #fff6e6;
}
.metric-icon.blue {
  color: #437cdb;
  background: #edf4ff;
}
.metric-icon.green {
  color: #299e76;
  background: #eaf8f2;
}
.request-metric>div:last-child {
  min-width: 0;
}
.request-metric span {
  font-size: 11px;
  font-weight: 600;
  color: #7c8092;
  line-height: 1.5;
}
.request-metric strong {
  display: block;
  font-size: 28px;
  color: #24203a;
  line-height: 1.3;
  margin: 6px 0;
}
.request-metric small {
  font-size: 10px;
  line-height: 1.5;
  color: #989bae;
  display: block;
}
.request-collection-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.request-collection-title h2 {
  margin: 0 0 6px;
  font-size: 17px;
  color: #2b2541;
}
.request-collection-title p {
  font-size: 12px;
  color: #888c9d;
  margin: 0;
  line-height: 1.6;
}
.request-total {
  background: #eee9f8;
  color: #7353ac;
  border: 1px solid #e8e0f6;
  padding: 7px 11px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.request-tools {
  display: flex;
  gap: 12px;
  background: #fff;
  border: 1px solid #e9e6f0;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 20px;
}
.request-search {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid #e8e7ef;
  background: #fbfbfd;
  border-radius: 8px;
  flex: 1;
  padding: 0 13px;
  min-width: 0;
}
.request-search svg {
  width: 18px;
  height: 18px;
  color: #9590a8;
  flex-shrink: 0;
}
.request-search input {
  width: 100%;
  height: 42px;
  border: 0;
  background: transparent;
  font-size: 12px;
  color: #322b48;
  min-width: 0;
  outline: none;
}
.request-search input::placeholder {
  color: #a09bab;
}
.request-status-filter {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid #e8e7ef;
  border-radius: 8px;
  padding: 0 12px;
}
.request-status-filter>span {
  font-size: 11px;
  color: #928a9f;
}
.request-status-filter select {
  height: 42px;
  max-width: 185px;
  border: 0;
  background: white;
  color: #514862;
  font-size: 12px;
  cursor: pointer;
}
.request-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
}
.request-card {
  background: white;
  border: 1px solid #e8e4f0;
  border-radius: 15px;
  padding: 23px;
  box-shadow: 0 4px 18px #22194704;
  transition: box-shadow .2s,border-color .2s;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.request-card:hover {
  border-color: #ccbef0;
  box-shadow: 0 8px 24px #40258009;
}
.request-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.request-card .request-eyebrow {
  font-size: 8px;
  letter-spacing: 1px;
  color: #a39bad;
}
.request-card h3 {
  font-size: 19px;
  letter-spacing: -.35px;
  margin: 7px 0 0;
  overflow-wrap: anywhere;
}
.request-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 20px;
  padding: 7px 10px;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}
.request-badge i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}
.request-badge.amber {
  background: #fff5e5;
  color: #b78021;
}
.request-badge.blue {
  background: #edf3ff;
  color: #4d7bd0;
}
.request-badge.green {
  background: #eaf8f1;
  color: #238767;
}
.request-badge.red {
  background: #fff0f1;
  color: #c25164;
}
.request-person {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 20px;
}
.request-avatar {
  height: 38px;
  width: 38px;
  border-radius: 11px;
  background: #f0eaff;
  color: #7a50db;
  font-size: 12px;
  font-weight: 700;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.request-person small,.request-meta small {
  display: block;
  color: #9892a3;
  font-size: 10px;
  margin-bottom: 5px;
}
.request-person b {
  font-size: 13px;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.request-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding-bottom: 19px;
}
.request-meta b {
  font-size: 12px;
  font-weight: 500;
  color: #554e63;
  overflow-wrap: anywhere;
}
.request-materials {
  background: #faf9fd;
  border: 1px solid #f0edf5;
  border-radius: 10px;
  padding: 14px 15px;
  margin-bottom: 18px;
  flex: 1;
}
.request-materials>div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 11px;
}
.request-materials b {
  font-size: 10px;
  color: #736986;
  font-weight: 600;
}
.request-materials>div>span {
  font-size: 9px;
  color: #9b91ad;
}
.request-materials p {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin: 9px 0;
  font-size: 11px;
  color: #6b6379;
  line-height: 1.6;
}
.request-materials p span {
  overflow-wrap: anywhere;
}
.request-materials strong {
  font-size: 11px;
  white-space: nowrap;
  color: #524368;
}
.request-materials>small {
  color: #8b7d9e;
  font-size: 10px;
}
.request-progress {
  display: flex;
  gap: 5px;
  margin: 0 0 18px;
}
.request-progress>span {
  height: 4px;
  border-radius: 8px;
  flex: 1;
  background: #eeebf4;
}
.request-progress>span.reached {
  background: #9575e9;
}
.request-closed {
  font-size: 11px;
  color: #a07c86;
  margin: 0 0 18px;
  line-height: 1.6;
}
.request-card-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  border-top: 1px solid #f0edf5;
  padding-top: 15px;
}
.request-card-bottom>small {
  font-size: 10px;
  color: #aaa3b4;
  line-height: 1.5;
}
.request-card-bottom>div {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.request-card-bottom .btn {
  font-size: 11px;
  min-height: 35px;
  padding: 8px 11px;
}
.request-details {
  color: #7453b6;
  border-color: #e5daf8;
  background: #fff;
}
.request-result-count {
  text-align: center;
  font-size: 11px;
  color: #a19aac;
  padding: 15px 0;
}
.request-empty {
  background: white;
  border: 1px dashed #ddd3ef;
  border-radius: 14px;
  text-align: center;
  padding: 48px 20px;
  color: #867b99;
}
.request-empty>span {
  font-size: 30px;
  color: #a88bdd;
}
.request-empty h3 {
  font-size: 16px;
  color: #645275;
  margin: 12px 0 8px;
}
.request-empty p {
  font-size: 12px;
  line-height: 1.7;
}
.request-layout [hidden] {
  display: none!important;
}
.request-loading {
  padding: 30px;
  background: white;
  border: 1px solid #eee8f6;
  border-radius: 12px;
  color: #9385a6;
}
.request-page #liveRecords>p[role=alert] {
  background: #fff0f3;
  color: #aa3f58;
  padding: 18px;
  border-radius: 12px;
}
@media(min-width:1650px) {
  .request-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}
@media(max-width:1150px) {
  .request-metrics {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .request-card {
    padding: 18px;
  }
  .request-card-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
  .request-card-bottom>div {
    align-self: stretch;
    justify-content: flex-end;
  }
  .request-page-heading {
    align-items: flex-start;
    flex-wrap: wrap;
  }
}
@media(max-width:700px) {
  .request-page-heading h1 {
    font-size: 24px;
  }
  .request-heading-actions {
    width: 100%;
  }
  .request-heading-actions .primary {
    flex: 1;
  }
  .request-grid {
    grid-template-columns: 1fr;
  }
  .request-tools {
    flex-direction: column;
  }
  .request-status-filter {
    justify-content: space-between;
  }
  .request-metric {
    padding: 15px 12px;
    gap: 9px;
  }
  .metric-icon {
    width: 32px;
    height: 32px;
    font-size: 18px;
    border-radius: 9px;
  }
  .request-metric strong {
    font-size: 24px;
  }
  .request-metric small {
    display: none;
  }
  .request-metric span {
    font-size: 10px;
  }
  .request-metrics {
    gap: 10px;
    margin-bottom: 24px;
  }
  .request-collection-title {
    align-items: flex-start;
  }
  .request-total {
    font-size: 10px;
  }
  .request-card-bottom {
    flex-direction: row;
    align-items: center;
  }
  .request-card-bottom>div {
    align-self: auto;
  }
  .request-page-heading {
    margin-bottom: 20px;
  }
  .request-collection-title p {
    font-size: 11px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .request-card {
    transition: none;
  }
}
/* Compact requests table and separate material viewer. */
.request-list table {
  min-width: 880px;
}
.request-list td {
  padding: 12px 16px;
}
.request-list td>small {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.request-list .request-badge {
  font-size: 12px;
}
.request-list .request-progress {
  display: flex;
  gap: 3px;
  max-width: 150px;
  margin: 8px 0 0;
  padding: 0;
}
.request-list .request-progress span {
  height: 4px;
  flex: 1;
  border-radius: 4px;
  background: #e8e4f1;
}
.request-list .request-progress .reached {
  background: #7750df;
}
.request-row-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
.request-row-actions .btn {
  margin: 0;
  min-height: 34px;
  padding: 7px 10px;
  font-size: 12px;
}
.request-list td:nth-child(4) {
  min-width: 165px;
}
.request-page .request-tools {
  margin-bottom: 16px;
}
.request-material-modal>p {
  color: var(--muted);
  margin: 8px 0 20px;
}
.request-material-list {
  display: grid;
  gap: 10px;
  max-height: 55dvh;
  overflow: auto;
}
.request-material-list article {
  display: flex;
  gap: 14px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px;
}
.request-material-list article>div {
  flex: 1;
  min-width: 0;
}
.request-material-list b {
  overflow-wrap: anywhere;
}
.request-material-list small {
  display: block;
  color: var(--muted);
  margin-top: 4px;
}
.request-material-list strong {
  white-space: nowrap;
}
.request-material-modal .modalactions {
  margin-bottom: 0;
}
@media(max-width:600px) {
  .request-material-list article {
    gap: 10px;
    padding: 10px;
  }
  .request-material-list .material-photo {
    width: 45px;
    height: 45px;
  }
  .request-material-list strong {
    font-size: 13px;
  }
}
.request-history-title{margin:26px 0 20px;font-size:18px}.request-history{list-style:none;margin:0;padding:0}.request-history-event{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:14px;padding:0 0 22px;background:transparent;color:inherit}.request-history-event:not(:last-child)::after{content:"";position:absolute;left:17px;top:36px;bottom:0;width:2px;background:#e5dfef}.request-history-event:last-child{padding-bottom:0}.request-history-marker{height:36px;width:36px;display:grid;place-items:center;border-radius:50%;background:#efe9ff;color:#6538d4;font-weight:700;z-index:1}.request-history-event.warning .request-history-marker{background:#fff2db;color:#9b650d}.request-history-event.danger .request-history-marker{background:#ffeaee;color:#b23e55}.request-history-content{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#faf9fd;min-width:0}.request-history-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.request-history-heading h4{font-size:14px;margin:0}.request-history-content p{font-size:13px;margin:5px 0;overflow-wrap:anywhere}.request-history-content time{font-size:12px;color:var(--muted)}.request-history-latest{font-size:11px;color:#6842bf;background:#eee7fc;padding:3px 8px;border-radius:12px}.request-history-empty{color:var(--muted)}@media(max-width:600px){.request-history-event{gap:10px}.request-history-content{padding:10px}.request-history-heading h4{font-size:13px}}

/* Dashboard-style cards, scoped to the filtered request list. */
.request-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 20px; }
.request-summary-item { min-width: 0; padding: 18px 20px 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 3px 12px #28203f04; }
.request-summary-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; color: #59516b; font-size: 12px; font-weight: 600; }
.request-summary-icon { display: grid; place-items: center; width: 34px; height: 34px; flex-shrink: 0; border-radius: 9px; color: #7550c5; background: #f2edfc; }
.request-summary-icon svg { width: 18px; height: 18px; }
.request-summary-items .request-summary-icon { background: #edf4fd; color: #5782bb; }
.request-summary-technicians .request-summary-icon { background: #edf8f2; color: #368364; }
.request-summary-ongoing .request-summary-icon { background: #fff6e8; color: #b2863c; }
.request-summary-item > strong { display: block; color: #302640; font-size: 32px; font-weight: 750; letter-spacing: -1px; line-height: 1.15; font-variant-numeric: tabular-nums; }
.request-summary-item > small { display: block; margin-top: 7px; color: #888292; font-size: 11px; }
.request-summary-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid #efedf4; margin-top: 16px; padding-top: 11px; min-height: 28px; color: #81738f; font-size: 10px; }
.request-summary-dot { width: 5px; height: 5px; flex-shrink: 0; border-radius: 50%; background: #c6b8dc; }
.request-summary-meter { display: block; width: 60px; flex-shrink: 0; height: 4px; overflow: hidden; border-radius: 5px; background: #f4eddf; }
.request-summary-meter i { display: block; height: 100%; border-radius: inherit; background: #c9a466; }
@media(max-width:1100px) { .request-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:600px) { .request-summary { gap: 10px; } .request-summary-item { padding: 14px 12px 12px; } .request-summary-heading { font-size: 11px; gap: 7px; } .request-summary-icon { width: 28px; height: 28px; } .request-summary-item > strong { font-size: 28px; } .request-summary-item > small { font-size: 10px; min-height: 30px; } .request-summary-foot { flex-wrap: wrap; font-size: 10px; } }

/* Source: frontend/modules/rastreabilidade/rastreabilidade.css */
.trace-search {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 16px;
  color: var(--ink);
}
.trace-search>div {
  display: flex;
  background: #f8f9fb;
  border: 1px solid #e7e9ef;
  border-radius: 9px;
  padding: 4px;
  align-items: center;
  color: #8a90a0;
}
.trace-search span {
  font-size: 18px;
  margin-left: 10px;
}
.trace-search input {
  flex: 1;
  border: 0;
  background: transparent;
  padding: 10px;
  font-size: 13px;
}
.trace-search small {
  display: block;
  margin-top: 9px;
  color: var(--muted);
  font-size: 12px;
}
/* Search results and full history are separate steps. */
.trace-results { min-width: 0; }
.trace-results > .title { margin: 22px 0 14px; }
.trace-results > .title h3 { font-size: 16px; }
#liveTraceCount { color: var(--muted); }
#liveTraceList { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.trace-card { display: flex; flex-direction: column; gap: 24px; width: 100%; min-width: 0; padding: 22px; text-align: left; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 3px 12px #25304a04; }
.trace-card:hover { border-color: #bfb0da; background: #fff; box-shadow: 0 8px 24px #33224f0c; }
.trace-card-heading { display: flex; align-items: flex-start; gap: 12px; }
.trace-card-heading > span:nth-child(2) { min-width: 0; flex: 1; }
.trace-card-heading b { display: block; font-size: 14px; line-height: 1.5; margin-bottom: 6px; overflow-wrap: anywhere; }
.trace-card-heading small { display: block; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.trace-card-heading .status { font-size: 10px; padding: 3px 6px; flex-shrink: 0; }
.trace-product { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border-radius: 10px; background: #f4f2f8; color: #77618e; font-size: 19px; }
.trace-card-balances { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: auto; padding: 20px 0 0; border-top: 1px solid #f0eef4; background: #fff; }
.trace-card-balances > span > small { display: block; color: var(--muted); font-size: 11px; margin-bottom: 7px; }
.trace-card-balances strong { font-size: 25px; font-weight: 650; letter-spacing: -.6px; font-variant-numeric: tabular-nums; }
.trace-card-balances strong small { font-size: 11px; font-weight: 400; color: var(--muted); }
.trace-card-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; border-top: 1px solid #f0eef4; }
.trace-card-bottom > span { color: var(--muted); font-size: 11px; }
.trace-card-bottom em { padding: 7px 10px; border-radius: 6px; background: #f6f3fb; color: #6b4e91; font-style: normal; font-weight: 600; font-size: 11px; white-space: nowrap; }
.trace-hint { color: var(--muted); font-size: 12px; margin: 18px 0; }
.trace-empty { grid-column: 1 / -1; padding: 40px 20px; text-align: center; border: 1px dashed #dcd4eb; border-radius: 12px; background: #fff; }
.trace-empty > span { font-size: 32px; color: #8c6bc6; }
.trace-empty h3 { margin: 12px 0 8px; }
.trace-empty p { margin: 0; color: var(--muted); }
.trace-navigation { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 18px; }
.trace-navigation > span { color: var(--muted); font-size: 12px; }
.trace-navigation > span > span { padding: 0 8px; color: #b5aac7; }
.trace-detail {
  padding: 22px;
}
.trace-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.trace-head small {
  font-size: 12px;
  color: var(--muted);
}
.trace-head h2 {
  font-size: 18px;
  margin: 5px 0;
}
.trace-head p {
  font-size: 12px;
  color: var(--muted);
  margin: 0;
}
.trace-meta {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  background: #f8f7fc;
  border: 1px solid var(--line);
  border-radius: 10px;
  margin: 17px 0 22px;
}
.trace-meta div {
  padding: 13px 15px;
  border-right: 1px solid var(--line);
}
.trace-meta div:last-child {
  border: 0;
}
.trace-meta small,.trace-meta b {
  display: block;
}
.trace-meta small {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 5px;
}
.trace-meta b {
  font-size: 12px;
}
.timeline {
  padding: 5px 8px;
}
.timeline-event {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 13px;
  position: relative;
  padding-bottom: 26px;
}
.timeline-event>i {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #eee9ff;
  color: #6139d5;
  font-style: normal;
  font-weight: 700;
  z-index: 1;
}
.timeline-event.success>i {
  background: #e6f8ef;
  color: var(--green);
}
.timeline-event.warning>i {
  background: #fff4e4;
  color: var(--orange);
}
.timeline-event>b {
  position: absolute;
  width: 2px;
  background: #e8e7ee;
  left: 14px;
  top: 30px;
  bottom: 0;
}
.timeline-event div>span {
  float: right;
  font-size: 12px;
  color: var(--muted);
}
.timeline-event h4 {
  font-size: 13px;
  margin: 2px 0 5px;
}
.timeline-event p {
  font-size: 12px;
  margin: 0 0 5px;
  color: #555d6d;
}
.timeline-event small {
  font-size: 12px;
  color: var(--muted);
}
.trace-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.form.extended {
  max-height: 62vh;
  overflow: auto;
  padding-right: 5px;
}
.field-combo {
  display: grid;
  grid-template-columns: 1fr 110px;
  gap: 6px;
}
@media(max-width:700px) {
  .trace-meta {
    grid-template-columns: 1fr;
  }
  .trace-meta div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .trace-head {
    flex-direction: column;
  }
  .trace-search>div {
    flex-wrap: wrap;
  }
  .trace-search .btn {
    width: 100%;
  }
  .timeline-event div>span {
    float: none;
    display: block;
    margin-bottom: 4px;
  }
  .field-combo {
    grid-template-columns: 1fr;
  }
}
#liveTraceList {
  grid-column: 1/-1;
  min-width: 0;
}
#liveTraceDetail {
  min-width: 0;
}
#liveTrace .trace-search input {
  min-width: 0;
}
#liveTrace .timeline-event p,#liveTrace .timeline-event small {
  overflow-wrap: anywhere;
}
#liveTrace .trace-footer {
  flex-wrap: wrap;
}

.trace-head .status { align-self: flex-start; }
#liveTrace .timeline-event > div { min-width: 0; }
#liveTrace .trace-head h2, #liveTrace .trace-head p { overflow-wrap: anywhere; }

.trace-product svg { width: 26px; height: 26px; }
.trace-availability { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; padding: 4px 7px; border-radius: 20px; font-size: 10px; background: #f4f5f7; color: #737a87; }
.trace-availability i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.trace-availability.is-active { color: #38846a; background: #f0f8f4; }
.trace-card-balances .has-pending strong { color: #a4772c; }
@media(max-width:1600px) { #liveTraceList { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media(max-width:1200px) { #liveTraceList { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:650px) { #liveTraceList { grid-template-columns: minmax(0, 1fr); } .trace-card { padding: 18px; } .trace-search { padding: 14px; } .trace-card-heading { gap: 9px; } .trace-card-balances strong { font-size: 23px; } }

/* Source: frontend/modules/configuracoes/configuracoes.css */
#accessSettings .field {
  margin: 18px 0;
}
#accessSettings .btn {
  margin: 4px;
}
#accessSettings p {
  margin-top: 16px;
}
.integration-selection-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:24px; }
.integration-selection-head h3 { margin:0; }
.integration-selection-head label { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.integration-candidates { max-height:320px; overflow:auto; border:1px solid var(--line); border-radius:7px; margin-top:12px; }
.integration-candidate { display:flex; align-items:center; gap:12px; padding:11px 13px; border-bottom:1px solid var(--line); }
.integration-candidate:last-child { border-bottom:0; }
.integration-candidate span { display:grid; gap:3px; min-width:0; }
.integration-candidate small { color:var(--muted); overflow-wrap:anywhere; }
.integration-hub { margin-top: 24px; }
.integration-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.integration-heading-actions { display:flex; gap:8px; flex-wrap:wrap; }
.integration-heading h2 { margin:0 0 8px; }
.integration-heading p { margin:0; }
.integration-toolbar { display:flex; gap:16px; align-items:end; margin:24px 0 12px; flex-wrap:wrap; }
.integration-toolbar label { display:grid; gap:8px; flex:1; min-width:180px; }
.integration-toolbar input, .integration-toolbar select, .integration-form-fields input, .integration-form-fields select { width:100%; min-width:0; }
.integration-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:18px; margin-top:20px; }
.integration-tile { padding:22px; border:1px solid var(--line,#e2e8f0); border-radius:16px; display:flex; flex-direction:column; gap:18px; min-width:0; background:var(--surface,#fff); }
.integration-tile-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.integration-mark { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; font-weight:800; flex-shrink:0; }
.integration-mark-yellow { background:#fff1a8; color:#6b5200; }
.integration-mark-blue { background:#e2efff; color:#1e559b; }
.integration-mark-green { background:#dcf4e8; color:#216241; }
.integration-mark-gray { background:#edf0f4; color:#465266; }
.integration-state { padding:6px 9px; border-radius:20px; font-size:11px; font-weight:600; background:#f1f3f6; color:#526074; text-align:center; }
.integration-state-verified { background:#e1f4e9; color:#20603b; }
.integration-state-error { background:#fde8e6; color:#992e24; }
.integration-state-configured { background:#fff1d7; color:#78561e; }
.integration-tile h3 { margin:7px 0 10px; font-size:18px; overflow-wrap:anywhere; }
.integration-tile p { margin:0; line-height:1.6; }
.integration-last-test { font-size:12px; color:var(--muted,#667085); flex:1; overflow-wrap:anywhere; }
.integration-tile-actions { display:flex; gap:8px; flex-wrap:wrap; }
.integration-form-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:20px 0; }
.integration-form-fields label { display:grid; gap:8px; align-content:start; }
.integration-form-fields label[hidden] { display:none; }
.integration-form-fields small { font-weight:400; line-height:1.5; color:var(--muted,#667085); }
#connectionNote { line-height:1.6; }
@media(max-width:600px) { .integration-form-fields { grid-template-columns:1fr; } .integration-heading > button { width:100%; } .integration-toolbar label { min-width:100%; } }

/* Source: frontend/modules/dashboard/dashboard.css */
/* Dashboard-specific composition and charts. */
#app[data-page="dashboard"] .head { margin-bottom: 16px; }
#app[data-page="dashboard"] h1 { color: #262044; font-size: 25px; font-weight: 750; letter-spacing: -.8px; }
#app[data-page="dashboard"] .head p { font-size: 13px; }
.dashboard-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.dashboard-update { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; }
.dashboard-update i { width: 6px; height: 6px; border-radius: 50%; background: #279b78; }
.dashboard-toolbar svg, .dashboard-link svg { width: 16px; height: 16px; }
.dashboard-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.dashboard-metrics > .card { margin: 0; }
.dashboard-metric { text-align: left; color: var(--ink); padding: 17px 14px; font: inherit; transition: border-color .16s, box-shadow .16s, transform .16s; }
#app[data-page="dashboard"] .card { border-color: #e7e8f0; border-radius: 10px; box-shadow: 0 2px 4px #25204404, 0 5px 18px #25204402; }
.dashboard-metric-heading { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 550; min-height: 30px; line-height: 1.5; }
.dashboard-icon { width: 34px; height: 34px; border-radius: 9px; display: inline-grid; place-items: center; flex-shrink: 0; }
.dashboard-icon svg { width: 19px; height: 19px; }
.dashboard-icon.purple, .dashboard-badge.purple { background: #f0ebfd; color: #7150d4; }
.dashboard-icon.rose, .dashboard-badge.rose { background: #fff0f2; color: #bb415e; }
.dashboard-icon.blue { background: #edf4ff; color: #427cd0; }
.dashboard-icon.amber, .dashboard-badge.amber { background: #fff7e9; color: #946217; }
.dashboard-icon.green, .dashboard-badge.green { background: #edf8f3; color: #21815e; }
.dashboard-badge.neutral { background: #f0f1f5; color: #626b7c; }
.dashboard-metric strong { display: block; font-size: 29px; font-weight: 750; letter-spacing: -.8px; line-height: 1.2; margin: 12px 0 9px; font-variant-numeric: tabular-nums; }
.dashboard-metric small { display: block; color: var(--muted); font-size: 10px; line-height: 1.6; }
#app[data-page="dashboard"] .dashboard-metric:hover { border-color: #b8a5ef; box-shadow: 0 8px 22px #6035d811; transform: translateY(-2px); }
.dashboard-grid { display: grid; grid-template-columns: 1fr 1.12fr 1fr; gap: 14px; align-items: stretch; }
.dashboard-grid > .dashboard-panel { margin: 0; padding: 18px; display: flex; flex-direction: column; min-width: 0; }
.dashboard-panel-heading h2 { font-size: 14px; font-weight: 700; letter-spacing: -.25px; margin: 0 0 5px; color: #302844; }
.dashboard-panel-heading p { color: var(--muted); font-size: 11px; margin: 0; }
.dashboard-category { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 16px; flex: 1; padding: 22px 0; }
.dashboard-donut { height: 120px; width: 120px; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; }
.dashboard-donut > div { width: 92px; height: 92px; border-radius: 50%; background: white; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.dashboard-donut strong { font-size: 27px; letter-spacing: -.8px; }
.dashboard-donut small { font-size: 10px; color: var(--muted); }
.dashboard-legend { margin: 0; padding: 0; list-style: none; flex: 1; min-width: 112px; }
.dashboard-legend li { display: flex; align-items: center; gap: 7px; font-size: 11px; margin: 13px 0; }
.dashboard-legend b { margin-left: auto; font-variant-numeric: tabular-nums; }
.dashboard-legend i, .dashboard-chart-legend i { display: inline-block; height: 7px; width: 7px; border-radius: 50%; flex-shrink: 0; }
.dashboard-panel-footer { margin-top: auto; padding-top: 12px; border-top: 1px solid #f0f0f6; display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.dashboard-panel-footer > span { font-size: 10px; color: var(--muted); }
.dashboard-link { border: 0; background: none; color: #6546bf; display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 650; min-height: 32px; padding: 4px 0 4px 4px; white-space: nowrap; }
.dashboard-link:hover { text-decoration: underline; }
.dashboard-chart { width: 100%; min-height: 180px; margin-top: 14px; flex: 1; }
.dashboard-chart text { fill: #788094; font-size: 9px; font-family: inherit; }
.dashboard-chart-legend { display: flex; justify-content: center; gap: 18px; font-size: 10px; color: var(--muted); padding: 7px 0; }
.dashboard-chart-legend span { display: flex; align-items: center; gap: 6px; }
.dashboard-chart-legend i { background: #6554df; }
.dashboard-chart-legend span + span i { background: #4e91e8; }
.dashboard-stock-list { padding: 12px 0; flex: 1; }
.dashboard-stock-row { display: flex; align-items: center; gap: 9px; padding: 11px 0; }
.dashboard-stock-row + .dashboard-stock-row { border-top: 1px solid #f2f2f7; }
.dashboard-stock-row > div { flex: 1; min-width: 0; }
.dashboard-stock-row b { display: block; font-size: 11px; overflow-wrap: anywhere; }
.dashboard-stock-row small { display: block; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.dashboard-badge { display: inline-block; padding: 3px 7px; border-radius: 5px; font-size: 10px; font-weight: 600; white-space: nowrap; }
.dashboard-panel .tablecard { border: 0; border-radius: 0; margin: 14px 0; }
.dashboard-panel th { background: transparent; color: #868b9c; font-size: 10px; font-weight: 500; padding: 8px 6px; }
.dashboard-panel td { font-size: 11px; padding: 10px 6px; }
.dashboard-panel td small { font-size: 10px; }
.dashboard-code { color: #67509e; font-size: 10px; }
.dashboard-empty { color: var(--muted); font-size: 12px; text-align: center; padding: 28px 10px; }
.dashboard-shortcuts { margin-top: 18px; padding: 20px; }
.dashboard-shortcuts > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 18px; gap: 12px; }
.dashboard-shortcuts button { display: flex; align-items: center; text-align: left; gap: 12px; padding: 15px; border: 1px solid transparent; background: white; border-radius: 10px; color: var(--ink); min-width: 0; }
.dashboard-shortcuts button:hover { background: #f4efff; border-color: #d5c7f5; }
.dashboard-shortcuts button > span:nth-child(2) { flex: 1; min-width: 0; }
.dashboard-shortcuts b { display: block; font-size: 12px; }
.dashboard-shortcuts small { display: block; font-size: 10px; color: var(--muted); margin-top: 4px; }
.dashboard-shortcuts button > svg { width: 17px; height: 17px; color: #8a73bc; flex-shrink: 0; }
@media (max-width: 1150px) { .dashboard-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .dashboard-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .dashboard-grid { grid-template-columns: minmax(0, 1fr); } .dashboard-shortcuts > div:last-child { grid-template-columns: minmax(0, 1fr); } .dashboard-panel .tablecard table { min-width: 340px; } .dashboard-metric { padding: 14px; } .dashboard-toolbar .btn { min-height: 38px; padding: 8px 10px; } }
@media (prefers-reduced-motion: reduce) { .dashboard-metric { transition: none; } #app[data-page="dashboard"] .dashboard-metric:hover { transform: none; } }

/* A single heading row and a quiet, light shell echo the reference. */
#app[data-page="dashboard"] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 20px;
}
#app[data-page="dashboard"] #summaryRecords { display: contents; }
#app[data-page="dashboard"] .head { align-self: center; margin-bottom: 22px; }
#app[data-page="dashboard"] .head h1 { margin-bottom: 5px; }
.dashboard-toolbar { justify-content: flex-end; margin-bottom: 22px; }
.dashboard-toolbar .btn { min-height: 36px; font-size: 11px; border-radius: 7px; padding: 7px 11px; }
.dashboard-metrics, .dashboard-grid, .dashboard-shortcuts { grid-column: 1 / -1; }
.dashboard-metric-heading .dashboard-icon { width: 23px; height: 25px; border-radius: 6px; background: transparent; }
.dashboard-metric-heading .dashboard-icon svg { width: 18px; height: 18px; }
.dashboard-metric small { border-top: 1px solid #f2f2f7; padding-top: 9px; }
.dashboard-shortcuts > div:last-child { gap: 0; margin-top: 12px; }
.dashboard-shortcuts button + button { border-left-color: #efedf6; border-radius: 0; }
.dashboard-legend .dashboard-percentage { font-size: 10px; color: #8990a2; min-width: 32px; text-align: right; }
@media (min-width: 1151px) { .dashboard-grid > .dashboard-panel { min-height: 270px; } }
@media (max-width: 1350px) { .dashboard-update { display: none; } }
@media (max-width: 650px) {
  #app[data-page="dashboard"] { display: block; padding: 20px 12px; }
  .dashboard-toolbar { justify-content: space-between; margin-bottom: 16px; }
  .dashboard-update { display: inline-flex; font-size: 10px; }
  .dashboard-shortcuts button + button { border-left-color: transparent; border-top-color: #efedf6; }
}

/* Source: frontend/components/modais.css */
/* Dialog presentation shared by all modules, after module-specific layouts. */
#overlay { background: #1b153e73; backdrop-filter: blur(4px); }
#overlay .modal {
  border: 1px solid #e9e5f3;
  border-radius: 16px;
  box-shadow: 0 24px 80px #1c104333, 0 4px 16px #1c104312;
  color: var(--ink);
  background: #fff;
}
#modal > h2:first-child {
  margin: 0 0 20px;
  padding: 0 38px 16px 0;
  border-bottom: 1px solid #efedf5;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: -.4px;
  color: #30234e;
}
#modal > p { font-size: 12px; line-height: 1.7; color: var(--muted); }
#modal > p[role="alert"] { color: var(--red); }
#overlay .modal > #close {
  top: 17px;
  right: 17px;
  width: 30px;
  min-height: 30px;
  border: 1px solid #ede9f5;
  border-radius: 8px;
  background: #faf8fe;
  color: #786491;
  font-size: 21px;
  box-shadow: none;
}
#overlay .modal > #close:hover { background: #eee7fb; color: var(--purple); }
#modal .form { gap: 18px 20px; }
#modal .field label { gap: 7px; font-size: 12px; font-weight: 600; color: #514660; }
#modal :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
  border: 1px solid #e5e1ee;
  border-radius: 8px;
  background: #fcfbfe;
  font-size: 13px;
  padding: 10px 12px;
  min-height: 42px;
}
#modal :is(input, select, textarea):disabled,
#modal :is(input, textarea)[readonly] { background: #f3f2f7; color: #7a7388; }
#modal :is(input, select, textarea):focus-visible { outline: 2px solid #bfa6f0; outline-offset: 2px; }
#modal input::placeholder, #modal textarea::placeholder { color: #9992a7; }
#modal .btn { border-radius: 7px; font-size: 12px; font-weight: 600; min-height: 38px; padding: 8px 13px; }
#modal .btn.primary { background: #6936d9; border-color: #6936d9; box-shadow: 0 2px 4px #6035d81a; }
#modal .btn.primary:hover { background: #5827c3; border-color: #5827c3; }
#modal :is(.modalactions, .product-step-actions, .wizard-actions) { border-top: 1px solid #efedf5; gap: 10px; }
#modal .modalactions { margin-top: 24px; padding-top: 16px; }
#modal .tablecard { border: 1px solid #edeaf3; border-radius: 10px; }
#modal .tablecard th { background: #faf9fd; color: #82798e; font-size: 11px; font-weight: 600; padding: 11px 12px; }
#modal .tablecard td { font-size: 12px; padding: 11px 12px; border-bottom-color: #f0edf6; }
#modal .tablecard td small { color: #92889f; font-size: 11px; }
#modal .status { border-radius: 5px; font-size: 11px; padding: 4px 8px; background: #f0eafa; color: #7352a8; }
#modal .product-step-tabs { gap: 0; border-bottom: 1px solid #ece8f3; margin: 12px 0 22px; }
#modal .product-step-tabs span { border-radius: 0; background: transparent; color: #8d849b; border-bottom: 2px solid transparent; padding: 10px 14px; font-size: 12px; }
#modal .product-step-tabs .active { color: #6936d9; border-bottom-color: #6936d9; font-weight: 650; }
#modal .product-step-tabs .done { color: #408268; }
#modal .wizard-head { padding-top: 24px; padding-right: 60px; }
#modal .wizard-head h2 { font-size: 18px; color: #30234e; letter-spacing: -.4px; }
#modal .wizard-head p { color: var(--muted); font-size: 12px; }
#modal .steps { border-bottom-color: #efedf5; }
#modal .step.active i { background: #6936d9; border-color: #6936d9; color: white; }
#modal .catalog-section { border-color: #ede8f6; border-radius: 10px; background: #fdfcff; }
#modal .nfe-upload {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 160px;
  padding: 24px;
  border: 1px dashed #cfc0e9;
  border-radius: 10px;
  background: #fcfaff;
  text-align: center;
  cursor: pointer;
}
#modal .nfe-upload:hover, #modal .nfe-upload:focus-within { background: #f6f0ff; border-color: #8e63df; }
#modal .nfe-upload svg { width: 30px; height: 30px; color: #8658d3; margin-bottom: 4px; }
#modal .nfe-upload strong { font-size: 13px; font-weight: 600; color: #493761; }
#modal .nfe-upload small { font-size: 11px; font-weight: 400; color: #9485a8; }
#modal .nfe-upload input { max-width: 100%; min-height: 32px; padding: 4px; border: 0; background: transparent; font-size: 11px; color: #77658f; }
#modal .nfe-upload input::file-selector-button { border: 0; border-radius: 5px; padding: 7px 10px; margin-right: 8px; background: #eee5fc; color: #68419f; font: inherit; cursor: pointer; }
@media (max-width: 600px) {
  #overlay .modal { border-radius: 12px; }
  #modal > h2:first-child { font-size: 17px; }
  #overlay .modal > #close { top: 13px; right: 12px; }
  #modal .form { gap: 16px; }
  #modal .product-step-tabs span { padding: 9px 8px; font-size: 11px; }
  #modal .nfe-upload { padding: 18px 12px; }
}

/* Carga do técnico: produtos consolidados e origem expansível. */
.load-description{font-size:12px;color:var(--muted);line-height:1.6}
.technician-load .load-product>td{padding-top:16px;padding-bottom:16px}
.technician-load .material-cell>div{min-width:140px}.technician-load .material-cell small{display:block;margin-top:5px;color:var(--muted);font-size:11px}
.technician-load .load-quantity{font-size:19px;font-variant-numeric:tabular-nums}.technician-load .load-unit{display:inline;color:var(--muted)}
.technician-load [data-load-details]{white-space:nowrap;min-width:90px}
.technician-load .load-details>td{padding:0 12px 14px;background:#faf9fc}
.load-detail-content{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}
.load-detail-content>b{display:block;font-size:12px;margin-bottom:12px}.load-detail-content table{font-size:12px}.load-detail-content th{font-size:10px}.load-detail-content td small{display:block;margin-top:4px;color:var(--muted)}

.load-category{margin-top:22px}.load-category h3{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px;margin:0 0 12px}.load-category h3 span{font-size:11px;font-weight:400;color:var(--muted);background:#f4f1f8;padding:5px 9px;border-radius:20px}.load-category .tablecard{margin:0}
.technician-applications{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.technician-applications>h3{font-size:16px;margin:0 0 8px}.application-destination{border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:16px}.application-destination>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:none;padding:0;border:0;height:auto;position:static}.application-destination h4{font-size:14px;margin:0}.application-destination header p{font-size:11px;color:var(--muted);line-height:1.6;margin:6px 0}.application-destination header>span{font-size:11px;white-space:nowrap;color:var(--muted)}.application-type h5{font-size:12px;margin:16px 0 10px}.application-type td small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.application-type .tablecard{margin:0}.application-type td{font-size:12px}.application-type th{font-size:10px}
.load-print-actions{display:flex;justify-content:flex-end;margin:0 0 12px}.load-print-actions .btn{font-size:12px}
.load-print-actions{gap:8px;flex-wrap:wrap}.load-financial-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.load-financial-summary>div{padding:16px;border:1px solid var(--line);border-radius:10px;background:#faf9fd}.load-financial-summary span{font-size:12px;color:var(--muted)}.load-financial-summary strong{display:block;font-size:20px;margin-top:10px;overflow-wrap:anywhere}.financial-warning{padding:12px;background:#fffaf0;border:1px solid #eedbb7;border-radius:8px;font-size:12px;line-height:1.6;color:#805e20}.financial-category-title{font-size:14px!important;margin-top:22px!important}.load-financial-table td small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.financial-total{text-align:right;font-size:18px;font-weight:700}@media(max-width:600px){.load-financial-summary{grid-template-columns:1fr}}

/* Source: frontend/modules/api-docs/api-docs.css */
.api-docs-frame { display: block; width: 100%; height: max(650px, calc(100dvh - 190px)); border: 1px solid var(--line); border-radius: 12px; background: #fff; }
@media(max-width:600px) { .api-docs-frame { height: calc(100dvh - 220px); min-height: 520px; } }

/* Source: frontend/modules/estoque/estoque.css */
.stock-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 18px; }
.stock-search { display: flex; align-items: center; gap: 10px; flex: 1; min-width: min(260px, 100%); color: #968ba7; padding-left: 10px; border: 1px solid #e9e5ef; border-radius: 8px; background: #fcfbfe; }
.stock-search input { width: 100%; border: 0; background: transparent; }
#stockResultCount { color: var(--muted); font-size: 12px; padding: 0 6px; }
.stock-list { margin: 0; }
.stock-list th { text-transform: none; font-size: 11px; background: #faf9fc; }
.stock-list td { padding-top: 18px; padding-bottom: 18px; }
.stock-product { display: flex; align-items: center; gap: 12px; min-width: 210px; }
.stock-product b { font-size: 13px; }
.stock-product small { font-size: 11px; margin-top: 4px; }
.stock-product-icon { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 9px; color: #85709e; background: #f4f0f9; }
.stock-product-icon svg { width: 19px; height: 19px; }
.stock-quantity { font-variant-numeric: tabular-nums; white-space: nowrap; }
.stock-quantity strong { font-size: 16px; color: #3d3550; }
.stock-reserved { color: #9b8059; }
.stock-level { min-width: 265px; --stock-level-color: #9a8cae; }
.stock-level.healthy { --stock-level-color: #66a38b; }
.stock-level.low { --stock-level-color: #cfaa63; }
.stock-level.empty { --stock-level-color: #cd8291; }
.stock-level-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 9px; }
.stock-level-heading b { font-size: 12px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.stock-level-heading b span { color: #9c94a6; font-weight: 400; }
.stock-level-status { font-size: 10px; color: #7c7189; }
.stock-level.low .stock-level-status { color: #9d752f; }
.stock-level.empty .stock-level-status { color: #af5d70; }
.stock-level.healthy .stock-level-status { color: #428367; }
.stock-level-bar { height: 6px; background: #f0edf5; border-radius: 8px; overflow: hidden; }
.stock-level-bar i { display: block; height: 100%; background: var(--stock-level-color); border-radius: inherit; }
.stock-level > small { margin-top: 7px; color: #948b9f; font-size: 10px; }
.stock-row-actions { display: flex; flex-wrap: wrap; gap: 6px; min-width: 130px; }
.stock-row-actions .btn { margin: 0; min-height: 32px; font-size: 11px; padding: 6px 9px; }
@media(max-width:600px) { .stock-toolbar { gap: 10px; } .stock-search { flex-basis: 100%; } .stock-level { min-width: 250px; } }
.stock-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.stock-overview>div{padding:20px;background:white;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:10px}
.stock-overview span{font-size:12px;color:var(--muted)}.stock-overview strong{font-size:28px;line-height:1.2}.stock-overview small{font-size:11px;color:var(--muted)}.stock-overview .stock-attention{background:#fffcf6;border-color:#eee2c9}.stock-attention strong{color:#aa7c30}
.stock-purchase-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.stock-purchase-intro b{font-size:16px}.stock-purchase-intro p{font-size:12px;color:var(--muted);margin:6px 0}.stock-purchase-note{font-size:11px;color:#9d752f;margin-top:10px}
@media(max-width:900px){.stock-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.stock-overview{gap:8px}.stock-overview>div{padding:14px}.stock-purchase-intro{align-items:flex-start;flex-direction:column}}

/* Source: frontend/modules/compras/compras.css */
.purchase-replenishment{margin-bottom:24px;padding:20px;background:#fff;border:1px solid var(--line,#e5e3ef);border-radius:14px}
.purchase-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.purchase-heading h2{font-size:17px;margin:0 0 6px}.purchase-heading p{margin:0;color:#817b92;font-size:12px;line-height:1.6}
.purchase-replenishment td{padding:16px}.purchase-replenishment td small{display:block;color:#817b92;font-size:11px;margin-top:5px}
.purchase-level{height:5px;width:150px;background:#f1edf3;border-radius:8px;margin-top:8px;overflow:hidden}.purchase-level i{height:100%;display:block;background:#cca25c}
#stockNotificationsButton{display:flex;align-items:center;gap:7px;white-space:nowrap}#stockNotificationsButton svg{width:18px;height:18px}
.stock-notice{padding:15px 0;border-bottom:1px solid #edeaf3}.stock-notice p{color:#817b92;line-height:1.6}.stock-notice small{color:#817b92}.stock-notice .btn{margin-right:8px}
@media(max-width:600px){.purchase-heading{align-items:flex-start;flex-direction:column}.purchase-replenishment{padding:12px}#stockNotificationsButton .notice-label{display:none}}

/* Source: frontend/core/autenticacao.css */
body.auth-mode #side, body.auth-mode main > header, body.auth-mode .skip-link { display:none; }
body.auth-mode main { margin:0; width:100%; padding:0; min-height:100dvh; }
body.auth-mode #app { padding:0; }
.login-layout { min-height:100dvh; display:grid; grid-template-columns:1.05fr 1fr; }
.login-brand { background:linear-gradient(145deg,#241343,#372060 70%,#503381); color:#fff; padding:clamp(40px,7vw,110px); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.login-brand img { filter:brightness(0) invert(1); width:230px; max-width:100%; margin-bottom:68px; }
.login-brand > span { font-size:11px; letter-spacing:2px; color:#d2c4ed; }
.login-brand h1 { color:#fff; font-size:clamp(28px,3.2vw,48px); line-height:1.2; margin:20px 0; font-weight:650; letter-spacing:-1.5px; }
.login-brand p { line-height:1.8; color:#d2c4ed; max-width:420px; }
.login-features { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.login-features span { padding:8px 12px; border:1px solid #ffffff30; border-radius:24px; font-size:11px; color:#e5def4; }
.login-panel { display:grid; place-items:center; background:#faf9fc; padding:32px; }
.login-panel form { width:100%; max-width:380px; }
.login-panel h2 { font-size:28px; letter-spacing:-.8px; margin:0 0 12px; }
.login-panel p { color:#726880; line-height:1.6; }
.login-panel label, .password-panel label { display:grid; gap:9px; margin-top:22px; font-weight:600; }
.login-panel input, .password-panel input { width:100%; min-width:0; height:46px; }
.login-panel .primary { width:100%; height:46px; }
.login-reveal { border:0; background:none; color:#6134bd; font-size:12px; padding:10px 0; }
.login-help { text-align:center; font-size:12px; margin-top:24px; }
#loginStatus, #passwordStatus { color:#a33242; min-height:24px; }
.password-panel { max-width:520px; margin:8vh auto; padding:32px; }
.password-panel .btn { margin-top:16px; }
@media(max-width:800px) { .login-layout { grid-template-columns:1fr; } .login-brand { display:none; } .login-panel { min-height:100dvh; padding:28px 24px; } .password-panel { margin:24px 16px; } }

/* Source: frontend/modules/relatorios/relatorios.css */
#app[data-page="relatorios"] .head { margin-bottom:24px; }
.reports-controls { display:grid; grid-template-columns:minmax(180px,1fr) minmax(220px,1.7fr) minmax(180px,1fr) auto; align-items:end; gap:18px; padding:20px; margin-bottom:20px; }
.reports-controls label { display:grid; gap:8px; font-size:12px; font-weight:600; color:#514a64; min-width:0; }
.reports-controls input, .reports-controls select { width:100%; min-width:0; min-height:42px; background:#fff; }
.reports-refresh { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; }
.reports-refresh svg { width:17px; height:17px; }
.reports-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.reports-metric { display:flex; flex-direction:column; align-items:flex-start; padding:19px 22px; border:1px solid var(--line); border-radius:12px; background:#fff; position:relative; overflow:hidden; }
.reports-metric::before { content:''; position:absolute; width:4px; top:20px; bottom:20px; left:0; background:#8d70d8; border-radius:0 4px 4px 0; }
.reports-metric-blue::before { background:#75a0dc; }
.reports-metric-amber::before { background:#dcaf60; }
.reports-metric-green::before { background:#62af92; }
.reports-metric > span { font-size:12px; color:#645d75; font-weight:550; }
.reports-metric strong { font-size:30px; font-weight:700; letter-spacing:-1px; line-height:1.25; margin:9px 0 6px; color:#332747; font-variant-numeric:tabular-nums; }
.reports-metric small { color:var(--muted); font-size:11px; }
.reports-results { border:1px solid var(--line); background:#fff; border-radius:12px; overflow:hidden; }
.reports-results-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; padding:22px 24px; }
.reports-results-heading h2 { font-size:16px; margin:0 0 5px; }
.reports-results-heading p { font-size:12px; color:var(--muted); margin:0; }
.reports-updated { color:var(--muted); font-size:11px; white-space:nowrap; }
.reports-table.tablecard { border:0; border-radius:0; margin:0; overflow-x:auto; }
.reports-table table { width:100%; min-width:720px; }
.reports-table th { background:#f8f7fb; color:#756c87; font-size:11px; padding:13px 22px; white-space:nowrap; border-top:1px solid var(--line); }
.reports-table td { padding:16px 22px; font-size:12px; border-bottom:1px solid #f0eff5; }
.reports-table .reports-number { text-align:right; font-variant-numeric:tabular-nums; }
.reports-code { display:inline-block; padding:3px 7px; border-radius:5px; color:#776192; background:#f5f1fa; font-size:11px; overflow-wrap:anywhere; }
.reports-product { color:#3a3349; font-weight:600; }
.reports-balance { display:inline-block; min-width:40px; text-align:center; padding:4px 9px; border-radius:6px; font-weight:650; }
.reports-balance.positive { background:#edf8f2; color:#23734f; }
.reports-balance.zero { background:#f1f2f6; color:#85818c; }
.reports-balance.negative { background:#fcecef; color:#ad364f; }
.reports-status { display:inline-block; padding:4px 9px; border-radius:6px; background:#f2eefb; color:#694b9a; white-space:nowrap; }
.reports-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:14px 24px; color:var(--muted); font-size:11px; }
.reports-empty { padding:40px 16px; text-align:center; }
.reports-empty strong { display:block; color:#4b405f; margin-bottom:8px; font-size:14px; }
.reports-empty p { color:var(--muted); }
@media(max-width:1150px) { .reports-controls { grid-template-columns:1fr 1fr; } }
@media(max-width:650px) { .reports-controls { grid-template-columns:1fr; gap:14px; padding:16px; } .reports-metrics { gap:8px; } .reports-metric { padding:14px 10px; } .reports-metric > span { font-size:10px; min-height:30px; } .reports-metric strong { font-size:25px; } .reports-metric small { font-size:10px; } .reports-results-heading { padding:18px 16px; } .reports-footer { padding:14px 16px; } }
.reports-table .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Source: frontend/modules/configuracoes/usuarios.css */
.access-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:20px 0 10px; }
.access-toolbar > strong { color:#21744f; margin-right:auto; }
.access-toolbar > span, .access-presence-help { color:var(--muted); font-size:12px; }
.access-presence { display:inline-flex; align-items:center; gap:7px; border-radius:20px; padding:5px 10px; background:#f1f2f6; color:#625e6c; white-space:nowrap; }
.access-presence::before { content:''; width:7px; height:7px; border-radius:50%; background:currentColor; }
.access-presence.is-online { background:#edf8f2; color:#21744f; }
#accessUsers td { vertical-align:middle; }
