:root {
  --bg: #f4f1ec;
  --surface: #ffffff;
  --text: #1b1a18;
  --muted: #716c66;
  --line: #ded8d0;
  --black: #111111;
  --green: #8a7964;
  --green-dark: #5d5042;
  --green-soft: #eee8e0;
  --yellow: #fff1c9;
  --red: #a8322d;
  --red-soft: #fbe8e6;
  --shadow: 0 8px 28px rgba(42, 35, 28, .08);
  --radius: 14px;
}

* { box-sizing: border-box; }
html { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--text); background: var(--bg); }
body { margin: 0; min-height: 100vh; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.topbar {
  height: 72px;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 0 34px;
  background: var(--black);
  color: white;
  position: sticky;
  top: 0;
  z-index: 30;
  box-shadow: 0 5px 20px rgba(0,0,0,.16);
}
.brand { display: flex; align-items: center; gap: 12px; font-weight: 800; letter-spacing: .01em; }
.brand small { display: block; color: #aeb7b0; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; }
.brand-mark { width: 36px; height: 36px; border-radius: 10px; display: inline-grid; place-items: center; background: var(--green); font-size: 13px; font-weight: 900; }
.brand-mark.large { width: 54px; height: 54px; border-radius: 15px; font-size: 18px; }
.nav-links { display: flex; gap: 22px; margin-right: auto; }
.nav-links a { color: #dce2dc; font-size: 14px; font-weight: 650; }
.nav-links a:hover { color: white; }
.user-menu { display: flex; align-items: center; gap: 18px; text-align: right; }
.user-menu strong, .user-menu small { display: block; }
.user-menu small { color: #aeb7b0; font-size: 11px; margin-top: 2px; }

.page-shell { width: min(1440px, calc(100% - 48px)); margin: 34px auto 64px; }
.auth-shell { min-height: 100vh; width: 100%; margin: 0; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at top left, #dce9df, transparent 42%), var(--bg); }
.page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.page-header.compact { align-items: center; }
.page-header h1 { margin: 2px 0 7px; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.035em; }
.page-header p { margin: 0; color: var(--muted); }
.eyebrow { color: var(--green) !important; font-size: 12px; font-weight: 800; letter-spacing: .14em; }

.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; }
.panel + .panel { margin-top: 18px; }
.panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.panel-heading h2, .panel h3 { margin: 0; }
.panel-heading span { color: var(--muted); font-size: 13px; }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.metric-card { background: white; border: 1px solid var(--line); border-radius: 13px; padding: 19px 21px; box-shadow: var(--shadow); }
.metric-card span { color: var(--muted); font-size: 13px; }
.metric-card strong { display: block; font-size: 30px; margin-top: 5px; }
.metric-card.urgent { border-color: #e6c5c1; background: #fffafa; }
.metric-card.urgent strong { color: var(--red); }

.btn { border: 0; border-radius: 10px; padding: 11px 17px; font-weight: 750; display: inline-flex; justify-content: center; align-items: center; gap: 8px; transition: .18s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--green); color: white; box-shadow: 0 6px 16px rgba(47,111,69,.2); }
.btn-primary:hover { background: var(--green-dark); }
.btn-secondary { background: var(--black); color: white; }
.btn-ghost { background: #edf0ec; color: #303530; }
.btn-block { width: 100%; }
.button-group { display: flex; gap: 10px; flex-wrap: wrap; }
.link-button { border: 0; background: transparent; color: inherit; padding: 0; font-weight: 700; }
.table-action { font-weight: 800; color: var(--green); white-space: nowrap; }
.icon-button { border: 0; border-radius: 8px; width: 34px; height: 38px; background: #f0f1ef; color: #555; font-size: 21px; }

.alert { padding: 14px 17px; border-radius: 11px; margin-bottom: 18px; border: 1px solid; line-height: 1.45; }
.alert ul { margin: 7px 0 0 18px; }
.alert-success { background: var(--green-soft); border-color: #b8d5c0; color: #1c5a31; }
.alert-warning { background: var(--yellow); border-color: #e7cc78; color: #674e00; }
.alert-error { background: var(--red-soft); border-color: #e5b2ad; color: #7e2824; }

.filter-bar { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: 12px; align-items: end; margin-bottom: 18px; }
label { display: grid; gap: 7px; font-size: 13px; font-weight: 750; color: #333833; }
label b { color: var(--red); }
input, select, textarea { width: 100%; border: 1px solid #cfd4ce; border-radius: 9px; padding: 11px 12px; background: white; color: var(--text); outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(47,111,69,.12); }
input:disabled { background: #f0f1ef; color: #5f655f; }
textarea { resize: vertical; }

.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #747b74; padding: 11px 12px; border-bottom: 1px solid var(--line); }
td { padding: 14px 12px; border-bottom: 1px solid #ecefec; vertical-align: middle; font-size: 14px; }
td small { display: block; color: var(--muted); margin-top: 4px; }
tr:last-child td { border-bottom: 0; }
.truncate { max-width: 360px; }
.badge { display: inline-flex; border-radius: 999px; padding: 5px 9px; background: #edf0ed; font-size: 11px; font-weight: 800; white-space: nowrap; }
.priority-urgente { background: var(--yellow); color: #684e00; }
.priority-crítica, .priority-data-vencida { background: var(--red-soft); color: var(--red); }
.priority-normal { background: var(--green-soft); color: var(--green-dark); }
.status-badge { background: #eceff2; color: #3d4650; }

.login-card { width: min(430px, 100%); background: white; border: 1px solid var(--line); border-radius: 20px; padding: 30px; box-shadow: 0 22px 70px rgba(29,45,34,.15); }
.login-brand { display: flex; gap: 15px; align-items: center; margin-bottom: 27px; }
.login-brand h1 { margin: 0; font-size: 24px; }
.login-brand p { margin: 3px 0 0; color: var(--muted); }
.stack-form { display: grid; gap: 15px; }

.form-section { margin-bottom: 18px; }
.section-title { display: flex; gap: 13px; align-items: center; margin-bottom: 20px; }
.section-title > span { width: 34px; height: 34px; border-radius: 10px; background: var(--black); color: white; display: grid; place-items: center; font-weight: 900; }
.section-title h2 { margin: 0; font-size: 19px; }
.section-title p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.form-grid { display: grid; gap: 14px; margin-bottom: 16px; }
.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.items-table { display: grid; gap: 9px; margin-bottom: 13px; }
.item-row { display: grid; grid-template-columns: 1.15fr 2.3fr 1.8fr .7fr .8fr 38px; gap: 8px; align-items: center; }
.item-header { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 0 3px; }
.upload-box { border: 1.5px dashed #b9c1b9; border-radius: 12px; background: #fafbf9; padding: 21px; text-align: center; cursor: pointer; }
.upload-box input { margin-top: 10px; border: 0; padding: 0; }
.upload-box span { display: block; color: var(--muted); font-weight: 500; margin-top: 5px; }
.form-actions { display: flex; justify-content: flex-end; align-items: center; gap: 11px; position: sticky; bottom: 14px; background: rgba(244,245,242,.92); backdrop-filter: blur(8px); padding: 13px; border: 1px solid var(--line); border-radius: 13px; z-index: 10; }
.form-actions .notice { margin-right: auto; color: var(--muted); font-size: 13px; max-width: 530px; }

.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.summary-grid > div { border-left: 3px solid #dfe4df; padding-left: 12px; min-width: 0; }
.summary-grid span, .summary-grid small { display: block; color: var(--muted); font-size: 12px; }
.summary-grid strong { display: block; margin: 4px 0; overflow-wrap: anywhere; }
.purpose-text { white-space: pre-line; line-height: 1.55; }
.sticky-panel { position: sticky; top: 92px; }
.attachment-list { display: grid; gap: 8px; }
.attachment-list a { background: #f4f6f3; border-radius: 9px; padding: 10px 12px; color: var(--green-dark); font-weight: 700; }
.attachment-list small { color: var(--muted); font-weight: 500; }
.timeline { display: grid; gap: 16px; }
.timeline-item { display: grid; grid-template-columns: 17px 1fr; gap: 12px; }
.timeline-item > span { width: 11px; height: 11px; border-radius: 50%; background: var(--green); margin-top: 5px; box-shadow: 0 0 0 4px var(--green-soft); }
.timeline-item p { margin: 4px 0; color: #4f554f; }
.timeline-item small { color: var(--muted); }
.email-ok { background: var(--green-soft); color: var(--green-dark); border-radius: 9px; padding: 10px; font-size: 12px; }
.email-warning { background: var(--yellow); color: #685000; border-radius: 9px; padding: 10px; font-size: 12px; }
hr { border: 0; border-top: 1px solid var(--line); margin: 19px 0; }

.admin-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 20px; align-items: start; }
.empty-state { padding: 50px 20px; text-align: center; color: var(--muted); }
.empty-state h3, .empty-state h1 { color: var(--text); }
.error-page span { font-size: 72px; color: #c8cec8; font-weight: 900; }
.muted { color: var(--muted); }

@media (max-width: 1050px) {
  .topbar { padding: 0 20px; gap: 18px; }
  .nav-links { display: none; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .form-grid.four { grid-template-columns: repeat(2, 1fr); }
  .detail-layout, .admin-layout { grid-template-columns: 1fr; }
  .sticky-panel { position: static; }
}

@media (max-width: 720px) {
  .page-shell { width: min(100% - 24px, 1440px); margin-top: 20px; }
  .topbar { height: 64px; }
  .brand > span:last-child, .user-menu div { display: none; }
  .page-header { align-items: flex-start; flex-direction: column; }
  .metric-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .filter-bar { grid-template-columns: 1fr; }
  .form-grid.four { grid-template-columns: 1fr; }
  .item-header { display: none; }
  .item-row { grid-template-columns: 1fr; padding: 13px; background: #f7f8f6; border-radius: 12px; }
  .icon-button { width: 100%; }
  .form-actions { position: static; flex-direction: column; align-items: stretch; }
  .form-actions .notice { margin: 0 0 4px; }
  .summary-grid { grid-template-columns: 1fr 1fr; }
  .button-group { width: 100%; }
  .button-group .btn { flex: 1; }
}

/* Requisição Interna de Estoque */
.nav-links { gap: 15px; flex-wrap: wrap; align-items: center; }
.nav-links a { white-space: nowrap; }
.stock-filter { grid-template-columns: 2fr 1.1fr 1fr auto; }
.context-note { background: var(--green-soft); border: 1px solid #c5ddcb; color: #284b33; border-radius: 10px; padding: 12px 14px; margin: -5px 0 16px; font-size: 13px; line-height: 1.45; }
.stock-items-table { gap: 10px; }
.stock-item-row { display: grid; grid-template-columns: 1.55fr 1.45fr 1fr .82fr .55fr .68fr 1.05fr 38px; gap: 8px; align-items: center; }
.stock-item-row.item-header { padding: 0 3px; }
.stock-item-row input, .stock-item-row select { min-width: 0; }
.optional-context { opacity: .72; }
.stock-status { background: #e7efe9; color: #2b5f3b; }
.nature-retornavel { background: #e8edf5; color: #315278; }
.nature-consumo { background: #fff2c7; color: #6a5100; }
.stock-detail-table { min-width: 1050px; }
.stock-quantities { display: grid; gap: 10px; max-height: 490px; overflow: auto; padding-right: 3px; }
.stock-quantity-card { border: 1px solid var(--line); border-radius: 10px; padding: 11px; background: #fafbf9; display: grid; gap: 8px; }
.stock-quantity-card strong, .stock-quantity-card small { display: block; }
.stock-quantity-card small { color: var(--muted); font-size: 11px; margin-top: -5px; }
.stock-quantity-card label { font-size: 11px; }
.stock-quantity-card input { padding: 8px 9px; }
.catalog-layout { grid-template-columns: minmax(0, 1fr) 330px; }
.catalog-filter { grid-template-columns: 1fr auto; }

@media (max-width: 1250px) {
  .stock-item-row { grid-template-columns: 1.4fr 1.4fr 1fr .8fr .55fr .7fr 38px; }
  .stock-item-row > :nth-child(7) { grid-column: 1 / -2; }
}

@media (max-width: 720px) {
  .stock-filter, .catalog-filter { grid-template-columns: 1fr; }
  .stock-item-row { grid-template-columns: 1fr; padding: 13px; background: #f7f8f6; border-radius: 12px; }
  .stock-item-row.item-header { display: none; }
  .stock-item-row > :nth-child(7) { grid-column: auto; }
  .catalog-layout { grid-template-columns: 1fr; }
}


/* Identidade institucional Sal da Terra */
.topbar {
  min-height: 84px;
  height: auto;
  padding: 9px 30px;
  background: #ffffff;
  color: var(--text);
  border-bottom: 3px solid var(--black);
  box-shadow: 0 5px 20px rgba(31, 27, 22, .10);
}
.brand { min-width: 245px; gap: 14px; }
.brand-logo { width: 116px; height: 60px; object-fit: contain; flex: 0 0 auto; }
.brand-system-name { font-size: 14px; line-height: 1.2; color: var(--black); }
.brand-system-name small { color: var(--muted); margin-top: 4px; }
.nav-links { gap: 14px; }
.nav-links a { color: #4b4741; font-size: 13px; }
.nav-links a:hover { color: var(--black); }
.user-menu { color: var(--black); }
.user-menu small { color: var(--muted); }
.link-button { color: var(--green-dark); }
.eyebrow { color: var(--green-dark) !important; }
.btn-primary { background: var(--black); box-shadow: 0 6px 16px rgba(17,17,17,.18); }
.btn-primary:hover { background: #39342f; }
.btn-secondary { background: var(--green-dark); }
.table-action { color: var(--green-dark); }
input:focus, select:focus, textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(138,121,100,.16); }
.timeline-item > span { background: var(--green); box-shadow: 0 0 0 4px var(--green-soft); }
.summary-grid > div { border-left-color: #cfc5b8; }
.auth-shell {
  background:
    linear-gradient(rgba(244,241,236,.92), rgba(244,241,236,.96)),
    url('/static/logo_sal_da_terra_watermark.png') center 46% / min(620px, 72vw) auto no-repeat;
}
.institutional-login { border-top: 5px solid var(--black); }
.login-brand { align-items: center; }
.login-logo { width: 132px; height: 86px; object-fit: contain; flex: 0 0 auto; }
.company-mini-card {
  display: grid;
  gap: 3px;
  background: var(--green-soft);
  border: 1px solid #d8cec2;
  border-radius: 10px;
  padding: 11px 13px;
  margin: -8px 0 18px;
  color: #4e463d;
  font-size: 11px;
}
.company-mini-card strong { font-size: 11px; }
.login-contact { color: var(--muted); font-size: 11px; text-align: center; line-height: 1.55; margin: 18px 0 0; }
.institutional-footer {
  background: var(--black);
  color: white;
  padding: 22px 28px;
  margin-top: 42px;
}
.institutional-footer-inner {
  width: min(1440px, 100%);
  margin: 0 auto;
  display: flex;
  gap: 22px;
  align-items: center;
}
.institutional-footer img {
  width: 112px;
  height: 68px;
  object-fit: contain;
  filter: invert(1) grayscale(1) brightness(2.2);
  opacity: .95;
}
.institutional-footer-inner > div { display: grid; gap: 3px; }
.institutional-footer strong { font-size: 12px; letter-spacing: .03em; }
.institutional-footer span { color: #d2cdc6; font-size: 11px; }

@media (max-width: 1180px) {
  .brand { min-width: 150px; }
  .brand-system-name { display: none; }
  .brand-logo { width: 104px; }
}

@media (max-width: 720px) {
  .topbar { min-height: 68px; padding: 5px 14px; }
  .brand-logo { width: 92px; height: 55px; }
  .institutional-footer-inner { align-items: flex-start; }
  .institutional-footer img { width: 84px; height: 56px; }
  .institutional-footer span { font-size: 10px; }
  .login-brand { flex-direction: column; text-align: center; }
  .login-logo { width: 155px; height: 96px; }
}


/* Compartilhamento de PDFs */
.share-pdf-button { cursor: pointer; }
.share-pdf-button:disabled { cursor: wait; opacity: .65; transform: none; }
.share-feedback {
  width: 100%;
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}
@media (max-width: 720px) {
  .share-feedback { text-align: left; }
}

/* Seletor múltiplo intuitivo do catálogo de estoque */
.stock-item-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 16px 0 14px;
}
.stock-selection-help {
  color: var(--muted);
  font-size: 12px;
  margin-left: 2px;
}
.stock-multi-selector[hidden] { display: none !important; }
.stock-multi-selector {
  margin: 4px 0 20px;
  overflow: hidden;
  border: 1px solid #cfc8bf;
  border-radius: 16px;
  background: #fbfaf8;
  box-shadow: 0 12px 30px rgba(35, 31, 27, .08);
}
.stock-multi-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 19px 20px 15px;
  border-bottom: 1px solid var(--line);
  background: white;
}
.stock-multi-header h3 { margin: 2px 0 5px; font-size: 21px; }
.stock-multi-header p { margin: 0; color: var(--muted); font-size: 13px; }
.stock-multi-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 1.65fr) minmax(190px, .8fr) auto;
  align-items: end;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--line);
  background: #f5f3f0;
}
.stock-multi-toolbar label { font-size: 12px; font-weight: 750; color: #4d4842; }
.stock-multi-toolbar input,
.stock-multi-toolbar select { margin-top: 6px; background: white; }
.stock-multi-search input {
  padding-left: 38px;
  background-image: linear-gradient(transparent, transparent);
}
.stock-multi-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 20px;
  border-bottom: 1px solid var(--line);
  background: var(--green-soft);
  color: var(--green-dark);
  font-size: 13px;
}
.stock-multi-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(310px, .78fr);
  min-height: 430px;
  max-height: 660px;
}
.stock-multi-results {
  min-width: 0;
  overflow: auto;
  padding: 10px 16px 22px;
  border-right: 1px solid var(--line);
  background: white;
  overscroll-behavior: contain;
}
.stock-multi-group h4 {
  position: sticky;
  top: -10px;
  z-index: 2;
  margin: 8px -2px 7px;
  padding: 12px 4px 7px;
  background: rgba(255,255,255,.97);
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.stock-multi-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.stock-multi-option {
  position: relative;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-height: 64px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  cursor: pointer;
  transition: border-color .13s ease, background .13s ease, box-shadow .13s ease;
}
.stock-multi-option:hover { border-color: #aaa097; background: #fdfcfb; }
.stock-multi-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.stock-multi-check {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 2px solid #aaa39c;
  border-radius: 6px;
  color: transparent;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
  background: white;
}
.stock-multi-option.is-selected {
  border-color: var(--green);
  background: var(--green-soft);
  box-shadow: inset 4px 0 0 var(--green);
}
.stock-multi-option.is-selected .stock-multi-check {
  border-color: var(--green);
  background: var(--green);
  color: white;
}
.stock-multi-option.is-already-added {
  cursor: not-allowed;
  opacity: .55;
  background: #f0f0f0;
}
.stock-multi-option.is-already-added:hover { border-color: var(--line); }
.stock-multi-option-text { min-width: 0; }
.stock-multi-option-text strong,
.stock-multi-option-text small { display: block; }
.stock-multi-option-text strong {
  overflow: hidden;
  color: #292521;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.stock-multi-option-text small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.stock-multi-option-state {
  justify-self: end;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}
.stock-multi-option.is-selected .stock-multi-option-state { color: var(--green-dark); }
.stock-multi-empty { padding: 50px 15px; text-align: center; color: var(--muted); }
.stock-multi-basket {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  min-width: 0;
  padding: 16px;
  background: #f8f7f5;
}
.stock-multi-basket-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.stock-multi-basket-header span,
.stock-multi-basket-header strong { display: block; }
.stock-multi-basket-header span { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.stock-multi-basket-header strong { margin-top: 2px; color: var(--green-dark); font-size: 17px; }
.stock-multi-basket-empty {
  align-self: start;
  margin-top: 13px;
  padding: 20px 14px;
  border: 1px dashed #c8c0b7;
  border-radius: 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  background: white;
}
.stock-multi-basket-list {
  overflow: auto;
  min-height: 0;
  padding: 12px 2px 10px 0;
}
.stock-multi-basket-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 92px 32px;
  align-items: end;
  gap: 8px;
  padding: 10px;
  margin-bottom: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: white;
}
.stock-multi-basket-info { min-width: 0; align-self: center; }
.stock-multi-basket-info strong,
.stock-multi-basket-info small { display: block; }
.stock-multi-basket-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.stock-multi-basket-info small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.stock-multi-basket-item label { font-size: 9px; font-weight: 750; color: var(--muted); }
.stock-multi-basket-item input { margin-top: 4px; padding: 7px 8px; }
.stock-multi-basket-remove { align-self: end; }
.stock-multi-add { width: 100%; }
.stock-multi-feedback {
  min-height: 18px;
  margin: 8px 1px 0;
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}

@media (max-width: 1050px) {
  .stock-multi-options { grid-template-columns: 1fr; }
  .stock-multi-layout { grid-template-columns: minmax(0, 1.4fr) minmax(285px, .8fr); }
}
@media (max-width: 780px) {
  .stock-item-actions { align-items: stretch; flex-direction: column; }
  .stock-selection-help { margin: 0; }
  .stock-multi-header { align-items: stretch; flex-direction: column; }
  .stock-multi-toolbar { grid-template-columns: 1fr; }
  .stock-multi-info { align-items: flex-start; flex-direction: column; }
  .stock-multi-layout { display: block; max-height: none; }
  .stock-multi-results { max-height: 440px; border-right: 0; border-bottom: 1px solid var(--line); }
  .stock-multi-basket { min-height: 300px; }
  .stock-multi-basket-list { max-height: 320px; }
}
@media (max-width: 480px) {
  .stock-multi-selector { margin-left: -6px; margin-right: -6px; border-radius: 12px; }
  .stock-multi-option { grid-template-columns: 24px minmax(0, 1fr); }
  .stock-multi-option-state { grid-column: 2; justify-self: start; }
  .stock-multi-basket-item { grid-template-columns: minmax(0, 1fr) 82px 30px; }
}


/* v8 - rolagem confiável do seletor múltiplo e regras de movimentação */
.stock-multi-selector {
  overflow: visible;
}
.stock-multi-layout {
  height: min(660px, calc(100vh - 220px));
  min-height: 430px;
  max-height: 660px;
  overflow: hidden;
}
.stock-multi-results {
  min-height: 0;
  height: 100%;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}
.stock-multi-basket {
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.stock-multi-basket-list {
  min-height: 0;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}
.stock-nature.is-context-locked {
  pointer-events: none;
  background: #f0f0ed;
  color: #5a554f;
  border-style: dashed;
}
.field-help {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.35;
}
@media (max-width: 780px) {
  .stock-multi-selector { overflow: hidden; }
  .stock-multi-layout {
    display: block;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }
  .stock-multi-results {
    height: auto;
    max-height: 58vh;
    overflow-y: auto;
  }
  .stock-multi-basket {
    height: auto;
    min-height: 280px;
    overflow: visible;
  }
  .stock-multi-basket-list {
    max-height: 42vh;
    overflow-y: auto;
  }
}
.alert-info {
  margin: 14px 0;
  padding: 13px 15px;
  border: 1px solid #b8c9bd;
  border-radius: 10px;
  background: #eef5ef;
  color: #31543a;
  font-size: 13px;
  line-height: 1.5;
}
.consumption-no-return {
  display: grid;
  gap: 2px;
  align-content: center;
  min-height: 58px;
  padding: 9px 10px;
  border: 1px dashed #c4b9aa;
  border-radius: 8px;
  background: #f5f2ed;
  color: #5d5146;
}
.consumption-no-return strong { font-size: 11px; }
.consumption-no-return small { color: var(--muted); font-size: 9px; line-height: 1.3; }

/* v9 - catálogo unificado, códigos e automações */
.purchase-items-table,
.stock-items-table {
  overflow-x: auto;
  padding-bottom: 4px;
}
.purchase-item-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.7fr) minmax(125px, .8fr) minmax(220px, 1.55fr) minmax(150px, 1fr) minmax(180px, 1.2fr) minmax(78px, .5fr) minmax(95px, .6fr) minmax(135px, .8fr) 38px;
  gap: 8px;
  align-items: center;
  min-width: 1460px;
}
.purchase-item-row.item-header,
.stock-item-row.item-header { padding: 0 3px; }
.purchase-item-row input,
.purchase-item-row select,
.stock-item-row input,
.stock-item-row select { min-width: 0; }
.stock-item-row {
  grid-template-columns: minmax(220px, 1.7fr) minmax(125px, .8fr) minmax(205px, 1.45fr) minmax(150px, 1fr) minmax(120px, .75fr) minmax(78px, .5fr) minmax(95px, .6fr) minmax(135px, .8fr) minmax(170px, 1.05fr) 38px;
  min-width: 1500px;
}
.purchase-code[readonly],
.stock-code[readonly] {
  background: #f2f3f0;
  color: #4d514d;
  font-weight: 750;
}
.catalog-stock-display {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid #d7d9d4;
  border-radius: 9px;
  background: #f5f6f3;
  color: #5e645e;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.25;
}
.catalog-stock-display.is-ok {
  border-color: #b8d4bf;
  background: #eef7f0;
  color: #2d633b;
}
.catalog-stock-display.is-low {
  border-color: #e3c19d;
  background: #fff4e5;
  color: #8a4e13;
}
.automation-note {
  margin: 10px 0 0;
  padding: 10px 12px;
  border-left: 3px solid var(--green);
  background: #f4f7f3;
  color: #4c554d;
  font-size: 12px;
  line-height: 1.45;
}
.catalog-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  font-weight: 800;
  color: var(--green-dark);
  white-space: nowrap;
}
.catalog-stock-value {
  font-weight: 800;
  white-space: nowrap;
}
.catalog-table { min-width: 1080px; }
.catalog-table td:first-child { width: 170px; }
.catalog-import-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.catalog-import-summary > div {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fafbf8;
}
.catalog-import-summary strong,
.catalog-import-summary span { display: block; }
.catalog-import-summary strong { font-size: 20px; color: var(--green-dark); }
.catalog-import-summary span { margin-top: 3px; color: var(--muted); font-size: 11px; }

@media (max-width: 780px) {
  .purchase-items-table,
  .stock-items-table { overflow: visible; }
  .purchase-item-row,
  .stock-item-row {
    min-width: 0;
    grid-template-columns: 1fr;
    padding: 13px;
    background: #f7f8f6;
    border-radius: 12px;
  }
  .purchase-item-row.item-header,
  .stock-item-row.item-header { display: none; }
  .catalog-import-summary { grid-template-columns: 1fr; }
}

/* v10 - usuários por função e navegação móvel completa */
.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 76px;
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 10px;
  background: rgba(255,255,255,.08);
  color: white;
}
.nav-toggle-lines {
  display: grid;
  gap: 3px;
}
.nav-toggle-lines i {
  display: block;
  width: 17px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}
.nav-toggle strong { margin-left: 4px; font-size: 12px; }
.nav-links a {
  position: relative;
  padding: 8px 0;
}
.nav-links a.is-active { color: white; }
.nav-links a.is-active::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 1px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: #cdbda8;
}

.user-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.role-guide {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 22px;
}
.role-guide-card {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: white;
  box-shadow: var(--shadow);
}
.role-guide-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.role-guide-heading strong { font-size: 14px; }
.role-guide-heading span {
  flex: 0 0 auto;
  padding: 4px 7px;
  border-radius: 999px;
  background: #f0efec;
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}
.role-guide-card p {
  min-height: 56px;
  margin: 10px 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.role-guide-card ul { margin: 0; padding-left: 17px; color: #4b4742; font-size: 11px; line-height: 1.65; }
.role-guide-card.role-compras { border-top: 4px solid #8f6a39; }
.role-guide-card.role-estoque { border-top: 4px solid #56705a; }
.role-guide-card.role-admin { border-top: 4px solid #222; }
.role-guide-card.role-solicitante { border-top: 4px solid #9e968d; }

.users-admin-layout { grid-template-columns: minmax(0, 1fr) 370px; }
.users-list { display: grid; gap: 10px; }
.user-access-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.user-access-card[open] { border-color: #bfb5a8; box-shadow: 0 7px 20px rgba(46, 37, 29, .07); }
.user-access-card summary {
  display: grid;
  grid-template-columns: 42px minmax(180px, 1fr) minmax(150px, auto) auto 22px;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
}
.user-access-card summary::-webkit-details-marker { display: none; }
.user-access-card summary:hover { background: #faf9f7; }
.user-avatar {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: var(--green-soft);
  color: var(--green-dark);
  font-size: 16px;
  font-weight: 900;
}
.user-summary-main { min-width: 0; }
.user-summary-main strong,
.user-summary-main small { display: block; }
.user-summary-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-summary-main strong small { display: inline; color: var(--muted); font-size: 10px; }
.user-summary-main > small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.role-pill,
.status-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}
.role-pill.role-solicitante { background: #efedeb; color: #5d5751; }
.role-pill.role-compras { background: #f6ead9; color: #785020; }
.role-pill.role-estoque { background: #e6efe7; color: #3e6045; }
.role-pill.role-admin { background: #252525; color: white; }
.status-dot::before { content: ""; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; }
.status-dot.is-active { background: #eaf3eb; color: #36603e; }
.status-dot.is-active::before { background: #4f8a5b; }
.status-dot.is-inactive { background: #f2eeee; color: #795856; }
.status-dot.is-inactive::before { background: #a96661; }
.details-chevron { color: var(--muted); font-size: 20px; transition: transform .15s ease; }
.user-access-card[open] .details-chevron { transform: rotate(180deg); }
.user-edit-form { padding: 16px; border-top: 1px solid var(--line); background: #faf9f7; }
.user-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.user-edit-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.switch-field {
  display: flex;
  grid-template-columns: none;
  align-items: center;
  gap: 9px;
  width: max-content;
}
.switch-field input { width: 18px; height: 18px; margin: 0; }
.new-user-permission-note {
  padding: 12px;
  border-left: 3px solid var(--green);
  border-radius: 8px;
  background: #f3f1ed;
}
.new-user-permission-note strong,
.new-user-permission-note p { display: block; }
.new-user-permission-note strong { font-size: 12px; }
.new-user-permission-note p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.catalog-availability-chip {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 6px 9px;
  border-radius: 999px;
  background: #eeeae4;
  color: #5d5146;
  font-size: 11px;
  font-weight: 800;
}

@media (max-width: 1180px) {
  .role-guide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .users-admin-layout { grid-template-columns: 1fr; }
  .new-user-panel { position: static; }
}

@media (max-width: 1050px) {
  .topbar { position: sticky; height: 72px; padding: 0 18px; gap: 12px; }
  .brand { margin-right: auto; }
  .nav-toggle { display: inline-flex; }
  .nav-links {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 12px;
    left: 12px;
    z-index: 50;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    max-height: calc(100vh - 96px);
    margin: 0;
    padding: 12px;
    overflow-y: auto;
    border: 1px solid #3d3a37;
    border-radius: 14px;
    background: #161616;
    box-shadow: 0 18px 45px rgba(0,0,0,.32);
  }
  .nav-links.is-open { display: grid; }
  .nav-links a {
    display: flex;
    align-items: center;
    min-height: 47px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 10px;
    background: rgba(255,255,255,.04);
    color: #efefef;
    white-space: normal;
  }
  .nav-links a:hover,
  .nav-links a.is-active { background: rgba(255,255,255,.12); }
  .nav-links a.is-active::after { display: none; }
  .user-menu { gap: 10px; }
}

@media (max-width: 720px) {
  .topbar { height: 66px; padding: 0 12px; }
  .brand-logo { max-width: 92px; }
  .nav-toggle { min-width: 48px; padding: 8px; }
  .nav-toggle strong { display: none; }
  .user-menu { margin-left: 0; }
  .user-menu form button { padding: 8px 4px; }
  .nav-links { grid-template-columns: 1fr; }
  .user-metrics { grid-template-columns: 1fr 1fr; }
  .role-guide { grid-template-columns: 1fr; }
  .role-guide-card p { min-height: 0; }
  .user-access-card summary {
    grid-template-columns: 40px minmax(0, 1fr) 20px;
    gap: 9px;
  }
  .user-access-card summary .role-pill,
  .user-access-card summary .status-dot { grid-column: 2; justify-self: start; }
  .user-access-card summary .status-dot { margin-left: 0; }
  .details-chevron { grid-column: 3; grid-row: 1 / span 3; }
  .user-edit-grid { grid-template-columns: 1fr; }
  .user-edit-actions { align-items: stretch; flex-direction: column; }
  .user-edit-actions .btn { width: 100%; }
}

@media (max-width: 430px) {
  .user-metrics { grid-template-columns: 1fr; }
  .nav-links { right: 8px; left: 8px; }
}

/* V11 · comprador, limpeza administrativa e navegação mobile */
.btn-danger { background: #9e2f2b; color: #fff; box-shadow: 0 6px 16px rgba(158,47,43,.18); }
.btn-danger:hover { background: #7f2421; }
.field-help { color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.4; }
.form-automation-note { margin: -4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }

.catalog-create-panel {
  max-height: calc(100dvh - 116px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 28px;
}
.catalog-create-form { padding-bottom: 8px; }

.mobile-bottom-nav { display: none; }

.buyer-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.buyer-metric-card {
  min-width: 0;
  padding: 18px 19px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow);
}
.buyer-metric-card span,
.buyer-metric-card small { display: block; }
.buyer-metric-card span { color: var(--muted); font-size: 12px; font-weight: 750; }
.buyer-metric-card strong { display: block; margin: 3px 0 1px; font-size: 30px; }
.buyer-metric-card small { color: var(--muted); font-size: 10px; }
.buyer-metric-card.urgent { border-color: #e3b8b4; background: #fff9f8; }
.buyer-metric-card.urgent strong { color: var(--red); }

.purchase-workflow-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 22px;
}
.workflow-stage {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-height: 84px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(42,35,28,.05);
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.workflow-stage:hover,
.workflow-stage.is-active { transform: translateY(-2px); border-color: #a49787; box-shadow: 0 9px 24px rgba(42,35,28,.1); }
.workflow-stage > span {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 9px;
  background: var(--black);
  color: white;
  font-size: 12px;
  font-weight: 900;
}
.workflow-stage div { min-width: 0; }
.workflow-stage strong,
.workflow-stage small { display: block; }
.workflow-stage strong { font-size: 12px; }
.workflow-stage small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.workflow-stage b { color: var(--green-dark); font-size: 22px; }
.dashboard-panel-heading p { margin: 4px 0 0; }
.purchase-dashboard-table { min-width: 1050px; }
.buyer-chip {
  display: inline-flex;
  max-width: 170px;
  padding: 5px 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #eee8e0;
  color: #5d5042;
  font-size: 10px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.buyer-chip.is-unassigned { background: #f7e7d2; color: #80531c; }

.purchase-progress-panel { overflow: hidden; }
.purchase-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.purchase-progress-step {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 7px;
  min-width: 0;
  padding: 10px 5px;
  color: #918b84;
  text-align: center;
}
.purchase-progress-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 22px;
  left: calc(50% + 19px);
  width: calc(100% - 38px);
  height: 2px;
  background: #ded8d0;
}
.purchase-progress-step > span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 2px solid #cfc8bf;
  border-radius: 50%;
  background: white;
  font-size: 11px;
  font-weight: 900;
}
.purchase-progress-step small { font-size: 9px; font-weight: 750; line-height: 1.25; }
.purchase-progress-step.is-current { color: var(--black); }
.purchase-progress-step.is-current > span { border-color: var(--black); background: var(--black); color: white; }
.purchase-progress-step.is-complete { color: var(--green-dark); }
.purchase-progress-step.is-complete > span { border-color: var(--green); background: var(--green); color: white; }
.purchase-progress-step.is-complete::after { background: var(--green); }

.admin-cleanup-panel { margin-top: 22px; border-color: #dfbbb7; }
.admin-cleanup-panel .panel-heading { align-items: flex-start; }
.admin-cleanup-panel .eyebrow { margin: 0 0 5px; }
.cleanup-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 220px));
  gap: 12px;
  margin-bottom: 16px;
}
.cleanup-summary > div { padding: 13px 15px; border-radius: 10px; background: #f7f3ef; }
.cleanup-summary strong,
.cleanup-summary span { display: block; }
.cleanup-summary strong { font-size: 24px; }
.cleanup-summary span { color: var(--muted); font-size: 11px; }
.cleanup-form {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(260px, 1fr) auto;
  align-items: end;
  gap: 12px;
  padding: 15px;
  border: 1px solid #ead0cd;
  border-radius: 12px;
  background: #fff8f7;
}

@media (max-width: 1180px) {
  .catalog-create-panel { position: static; max-height: none; overflow: visible; }
  .purchase-workflow-board { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cleanup-form { grid-template-columns: 1fr 1fr; }
  .cleanup-form .btn { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .institutional-footer { margin-bottom: 0; }
  .mobile-bottom-nav {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 80;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-height: 66px;
    padding: 5px 7px calc(5px + env(safe-area-inset-bottom));
    border-top: 1px solid #d7d0c8;
    background: rgba(255,255,255,.97);
    box-shadow: 0 -8px 24px rgba(25,21,18,.12);
    backdrop-filter: blur(12px);
  }
  .mobile-bottom-nav a {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 2px;
    min-width: 0;
    min-height: 54px;
    border-radius: 10px;
    color: #5d5750;
  }
  .mobile-bottom-nav a.is-active { background: var(--green-soft); color: var(--black); }
  .mobile-bottom-nav span { font-size: 18px; line-height: 1; }
  .mobile-bottom-nav small { overflow: hidden; font-size: 9px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
  .buyer-metric-grid { grid-template-columns: 1fr 1fr; }
  .purchase-workflow-board { display: flex; overflow-x: auto; padding-bottom: 7px; scroll-snap-type: x mandatory; }
  .workflow-stage { flex: 0 0 230px; scroll-snap-align: start; }
  .purchase-progress { display: flex; overflow-x: auto; padding-bottom: 8px; }
  .purchase-progress-step { flex: 0 0 120px; }
  .purchase-progress-step:not(:last-child)::after { display: none; }
  .cleanup-summary { grid-template-columns: 1fr 1fr; }
  .cleanup-form { grid-template-columns: 1fr; }
  .cleanup-form .btn { grid-column: auto; width: 100%; }
  .catalog-create-panel { max-height: none; overflow: visible; }
}

@media (max-width: 430px) {
  .buyer-metric-grid { grid-template-columns: 1fr; }
  .cleanup-summary { grid-template-columns: 1fr; }
}

/* V12 — acompanhamento delicado de eventos e auditoria */
.stock-metric-grid { grid-template-columns: repeat(6, minmax(145px, 1fr)); }
.metric-card.danger { border-color: #d8aaa5; background: #fff8f7; }
.metric-card.danger strong { color: #9b2f24; }
.metric-card.success { border-color: #b8d5c2; background: #f5fbf7; }
.metric-card.success strong { color: #27633f; }
.metric-card small { display:block; margin-top:6px; color:var(--muted); font-size:11px; }

.event-process-strip { margin-bottom:18px; }
.event-steps { display:grid; grid-template-columns:repeat(7,minmax(90px,1fr)); gap:8px; }
.event-step { position:relative; display:flex; align-items:center; gap:8px; min-width:0; padding:9px 10px; border:1px solid var(--line); border-radius:10px; background:#f7f5f2; color:var(--muted); font-size:11px; font-weight:700; }
.event-step i { display:grid; place-items:center; flex:0 0 25px; width:25px; height:25px; border-radius:50%; background:#ded8d0; color:#57514a; font-style:normal; }
.event-step.is-current { border-color:#111; background:#fff; color:#111; box-shadow:0 5px 14px rgba(0,0,0,.08); }
.event-step.is-current i { background:#111; color:#fff; }
.event-step.is-done { border-color:#b8d5c2; background:#f4fbf6; color:#27633f; }
.event-step.is-done i { background:#3f7651; color:#fff; }

.stock-event-layout { align-items:start; }
.event-action-column { display:flex; flex-direction:column; gap:16px; }
.event-action-column .sticky-panel { position:static; }
.event-control-table td strong { display:block; margin-top:4px; }
.event-control-table td small { display:block; margin-top:4px; color:var(--muted); }
.conference-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.conference-card { border-top:4px solid #9c8d7b; }
.conference-card.has-nonconformity { border-top-color:#9b2f24; background:#fffafa; }
.signature-summary { margin:0; }
.signature-summary div { display:grid; grid-template-columns:150px minmax(0,1fr); gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.signature-summary div:last-child { border-bottom:0; }
.signature-summary dt { color:var(--muted); font-size:12px; font-weight:700; }
.signature-summary dd { margin:0; font-size:13px; white-space:pre-line; }
.event-form-panel { border-top:4px solid #7e6f5d; }
.return-panel { border-top-color:#315e43; }
.form-intro { margin:-4px 0 14px; color:var(--muted); font-size:12px; line-height:1.5; }
.conference-item-row { padding:12px; border:1px solid var(--line); border-radius:10px; background:#faf9f7; }
.conference-item-row + .conference-item-row { margin-top:9px; }
.conference-item-row > strong, .conference-item-row > small { display:block; }
.conference-item-row > small { margin:3px 0 9px; color:var(--muted); }
.return-item-row { background:#f5faf7; }
.check-line { display:flex !important; align-items:flex-start; gap:9px; padding:11px; border-radius:9px; background:#f3f0ec; font-size:12px !important; line-height:1.45; }
.check-line input { width:auto; margin-top:2px; }
.compact-quantities { max-height:440px; overflow-y:auto; padding-right:3px; }
.conformity-nao-conforme, .conformity-avariado, .conformity-incompleto, .conformity-nao-devolvido { background:#fae7e5; color:#922d22; }
.conformity-conforme { background:#e5f3e9; color:#27633f; }

.return-agenda-panel { margin-bottom:18px; }
.return-agenda-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.return-agenda-card { display:flex; justify-content:space-between; gap:14px; padding:14px; border:1px solid var(--line); border-radius:12px; color:inherit; text-decoration:none; background:#fbfaf8; transition:.18s ease; }
.return-agenda-card:hover { transform:translateY(-1px); border-color:#918475; box-shadow:0 8px 18px rgba(0,0,0,.06); }
.return-agenda-card > div:first-child span, .return-agenda-card small { display:block; color:var(--muted); font-size:11px; }
.return-agenda-card > div:first-child strong { display:block; margin:4px 0; }
.return-date { text-align:center; min-width:60px; }
.return-date strong { display:block; font-size:21px; }
.return-date small { font-weight:800; }
.return-agenda-card.is-overdue { border-color:#d9aaa5; background:#fff6f5; }
.return-agenda-card.is-overdue .return-date { color:#9b2f24; }
.return-agenda-card.is-today { border-color:#d6bf88; background:#fffaf0; }
.mini-check { display:block; width:max-content; margin:2px 0; padding:3px 6px; border-radius:6px; background:#eeeae5; color:#6d665e; font-size:10px; }
.mini-check.is-ok { background:#e4f3e9; color:#27633f; }
.row-nonconforming { background:#fff7f6 !important; }
.text-danger { color:#9b2f24 !important; font-weight:700; }

.audit-filter { grid-template-columns:minmax(210px,1.4fr) minmax(180px,1fr) minmax(130px,.7fr) minmax(170px,1fr) 130px 130px auto auto; }
.audit-log-list { display:flex; flex-direction:column; gap:8px; }
.audit-log-card { display:grid; grid-template-columns:92px minmax(0,1fr) 180px; gap:16px; align-items:start; padding:13px 14px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.audit-log-time strong, .audit-log-time span { display:block; }
.audit-log-time span { margin-top:3px; color:var(--muted); font-size:12px; }
.audit-log-heading { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.audit-log-heading a { padding:3px 7px; border-radius:6px; background:#eee9e2; color:#4b443d; font-size:11px; text-decoration:none; }
.audit-log-main p { margin:7px 0; font-size:13px; line-height:1.45; white-space:pre-line; }
.audit-log-main small { color:var(--muted); }
.audit-log-origin { min-width:0; text-align:right; }
.audit-log-origin span, .audit-log-origin small { display:block; color:var(--muted); font-size:10px; }
.audit-log-origin strong { display:block; margin:3px 0; font-size:12px; }
.audit-log-origin small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

@media (max-width: 1180px) {
  .stock-metric-grid { grid-template-columns:repeat(3,minmax(150px,1fr)); }
  .event-steps { grid-template-columns:repeat(4,minmax(100px,1fr)); }
  .return-agenda-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .audit-filter { grid-template-columns:repeat(3,minmax(170px,1fr)); }
}
@media (max-width: 760px) {
  .stock-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .event-steps { display:flex; overflow-x:auto; padding-bottom:4px; }
  .event-step { flex:0 0 135px; }
  .conference-grid { grid-template-columns:1fr; }
  .return-agenda-grid { grid-template-columns:1fr; }
  .signature-summary div { grid-template-columns:1fr; gap:3px; }
  .audit-filter { grid-template-columns:1fr; }
  .audit-log-card { grid-template-columns:1fr; gap:8px; }
  .audit-log-origin { text-align:left; }
  .stock-event-layout { display:block; }
  .event-action-column { margin-top:16px; }
}

/* V13 — navegação por módulos, auditoria, produtos e usuários */
.nav-links { align-items: stretch; gap: 8px; }
.nav-group { position: relative; display: flex; align-items: center; gap: 3px; padding: 5px; border-radius: 10px; }
.nav-group.is-active { background: rgba(255,255,255,.08); }
.nav-group-title { padding: 7px 8px; color: #bec9c1; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.nav-group a { padding: 8px 9px; border-radius: 7px; font-size: 12px; }
.nav-group a.is-active { background: rgba(255,255,255,.14); }
.nav-group a.is-active::after { display: none; }

fieldset { min-width: 0; margin: 0 0 14px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fbfaf8; }
fieldset legend { padding: 0 7px; color: var(--green-dark, #253c2e); font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.form-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Catálogo profissional */
.catalog-layout-v13 { grid-template-columns: minmax(0, 1fr) minmax(310px, 390px); align-items: start; }
.catalog-filter-v13 { display: grid; grid-template-columns: minmax(240px, 1.8fr) minmax(180px, 1fr) 150px auto auto; gap: 10px; align-items: end; margin-bottom: 16px; }
.catalog-filter-v13 label { margin: 0; }
.catalog-metrics { grid-template-columns: repeat(5, minmax(130px, 1fr)); }
.product-card-list { display: flex; flex-direction: column; gap: 10px; }
.product-card { display: grid; grid-template-columns: 82px minmax(0, 1fr) 150px; gap: 14px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.product-card:hover { border-color: #b9afa2; box-shadow: 0 7px 22px rgba(43, 37, 30, .06); }
.product-card.is-inactive { opacity: .68; background: #f7f5f2; }
.product-card-photo { display: grid; width: 82px; height: 82px; overflow: hidden; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: #f1eee9; color: #6d655d; font-size: 30px; font-weight: 900; }
.product-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.product-card-main { min-width: 0; }
.product-card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.product-card-title h3 { margin: 4px 0 8px; font-size: 15px; line-height: 1.25; }
.product-card-title h3 a { color: inherit; }
.product-meta-grid { display: grid; grid-template-columns: repeat(3, minmax(110px, 1fr)); gap: 8px 14px; }
.product-meta-grid span { min-width: 0; color: var(--muted); font-size: 12px; }
.product-meta-grid b { display: block; margin-bottom: 2px; color: #33302d; font-size: 10px; text-transform: uppercase; }
.product-card-actions { display: flex; flex-direction: column; gap: 7px; }
.catalog-create-panel { max-height: calc(100dvh - 105px); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.catalog-create-form fieldset { padding: 12px; }
.catalog-create-form textarea { resize: vertical; }

.product-detail-layout { display: grid; grid-template-columns: minmax(270px, .75fr) minmax(0, 1.55fr); gap: 18px; align-items: start; }
.product-gallery-panel { position: sticky; top: 88px; }
.product-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.product-image-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #faf8f5; }
.product-image-card img { display: block; width: 100%; aspect-ratio: 1 / .85; object-fit: cover; }
.product-image-card > div { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 8px; }
.product-image-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-photo-empty { display: grid; grid-column: 1 / -1; min-height: 220px; place-items: center; align-content: center; border: 1px dashed #bdb5aa; border-radius: 13px; color: var(--muted); }
.product-photo-empty span { display: grid; width: 76px; height: 76px; place-items: center; border-radius: 50%; background: #ece8e2; font-size: 34px; font-weight: 900; }
.product-edit-form { display: flex; flex-direction: column; gap: 2px; }
.product-status-form { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.product-readonly-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.product-readonly-grid div { padding: 12px; border-radius: 10px; background: #f7f5f1; }
.product-readonly-grid span, .product-readonly-grid strong { display: block; }
.product-readonly-grid span { margin-bottom: 4px; color: var(--muted); font-size: 11px; }
.danger-link { color: #a52d2d !important; }

/* Usuários detalhados */
.users-layout-v13 { grid-template-columns: minmax(0, 1fr) minmax(330px, 410px); }
.user-access-card-v13 summary { grid-template-columns: 44px minmax(0, 1fr) auto auto 24px; }
.user-account-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 13px 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f8f6f2; }
.user-account-overview div { min-width: 0; }
.user-account-overview span, .user-account-overview strong { display: block; }
.user-account-overview span { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.user-account-overview strong { margin-top: 3px; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.user-edit-form-v13 { padding: 16px; }
.user-edit-form-v13 fieldset { background: #fff; }
.user-switch-group { display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.new-user-panel-v13 { max-height: calc(100dvh - 105px); overflow-y: auto; scrollbar-gutter: stable; }
.new-user-form-v13 fieldset { padding: 12px; }

/* Central de auditoria */
.audit-page-header { align-items: flex-end; }
.audit-metrics { grid-template-columns: repeat(5, minmax(125px, 1fr)); }
.audit-metrics .metric-card small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; }
.audit-filter-panel .panel-heading { align-items: center; }
.audit-filter-form { display: block; }
.audit-quick-periods { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.filter-chip { padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #514c46; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.filter-chip:hover, .filter-chip.is-active { border-color: var(--green); background: var(--green-soft); color: var(--black); }
.audit-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 11px; }
.audit-filter-grid .filter-wide { grid-column: span 2; }
.audit-filter-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.audit-filter-toggle { display: none; }
.audit-live-indicator { display: inline-flex; align-items: center; gap: 7px; color: #44614c; font-size: 11px; font-weight: 800; }
.audit-live-indicator i { width: 8px; height: 8px; border-radius: 50%; background: #3aa35b; box-shadow: 0 0 0 4px rgba(58, 163, 91, .13); }
.audit-timeline { position: relative; display: flex; flex-direction: column; gap: 12px; padding-left: 19px; }
.audit-timeline::before { position: absolute; top: 4px; bottom: 4px; left: 5px; width: 2px; background: #ded9d2; content: ""; }
.audit-entry { position: relative; }
.audit-entry-marker { position: absolute; top: 18px; left: -18px; z-index: 1; width: 11px; height: 11px; border: 2px solid #fff; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 2px #b8c6bb; }
.audit-entry-card { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.audit-entry-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; border-bottom: 1px solid var(--line); background: #fbfaf8; }
.audit-entry-header > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
.audit-module-badge { padding: 4px 7px; border-radius: 999px; background: #e9eee9; color: #3d5d45; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.audit-entry-header strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.audit-entry-header time { flex: 0 0 auto; text-align: right; }
.audit-entry-header time b, .audit-entry-header time span { display: block; }
.audit-entry-header time b { font-size: 11px; }
.audit-entry-header time span { color: var(--muted); font-size: 10px; }
.audit-entry-body { display: grid; grid-template-columns: 220px minmax(0, 1fr) 230px; gap: 14px; padding: 14px; }
.audit-actor { display: flex; align-items: center; gap: 10px; min-width: 0; }
.audit-actor > div { min-width: 0; }
.audit-actor strong, .audit-actor span, .audit-actor small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.audit-actor strong { font-size: 12px; }
.audit-actor span, .audit-actor small { color: var(--muted); font-size: 10px; }
.audit-description p { margin: 0 0 9px; font-size: 12px; line-height: 1.5; white-space: pre-line; }
.audit-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.audit-tags a, .audit-tags span { padding: 4px 7px; border-radius: 6px; background: #f0ece6; color: #575049; font-size: 10px; font-weight: 700; }
.audit-technical-details { align-self: start; border: 1px solid var(--line); border-radius: 9px; background: #faf9f7; }
.audit-technical-details summary { padding: 8px 10px; cursor: pointer; color: #4e4944; font-size: 10px; font-weight: 800; }
.audit-technical-details dl { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 0; padding: 0 10px 10px; }
.audit-technical-details dl div { min-width: 0; }
.audit-technical-details dl .full { grid-column: 1 / -1; }
.audit-technical-details dt { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.audit-technical-details dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 10px; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 18px; }
.pagination span { color: var(--muted); font-size: 12px; }

@media (max-width: 1180px) {
  .catalog-metrics, .audit-metrics { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .catalog-layout-v13, .users-layout-v13 { grid-template-columns: 1fr; }
  .catalog-create-panel, .new-user-panel-v13 { position: static; max-height: none; overflow: visible; }
  .product-detail-layout { grid-template-columns: 1fr; }
  .product-gallery-panel { position: static; }
  .audit-filter-grid { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .audit-entry-body { grid-template-columns: 190px minmax(0, 1fr); }
  .audit-technical-details { grid-column: 1 / -1; }
}

@media (max-width: 1050px) {
  .nav-links { align-items: stretch; }
  .nav-group { display: grid; grid-template-columns: 1fr 1fr; padding: 8px; border: 1px solid rgba(255,255,255,.12); }
  .nav-group-title { grid-column: 1 / -1; padding: 2px 6px 4px; }
  .nav-group a { display: block; min-width: 0; white-space: normal; }
}

@media (max-width: 760px) {
  .page-shell { padding-bottom: 88px; }
  .mobile-bottom-nav[data-has-admin-item="true"] { grid-template-columns: repeat(5, 1fr); }
  .catalog-metrics, .audit-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-filter-v13 { grid-template-columns: 1fr 1fr; }
  .catalog-filter-v13 .filter-wide { grid-column: 1 / -1; }
  .product-card { grid-template-columns: 64px minmax(0, 1fr); }
  .product-card-photo { width: 64px; height: 64px; }
  .product-card-actions { grid-column: 1 / -1; flex-direction: row; }
  .product-card-actions .btn { flex: 1; }
  .product-meta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-detail-header .button-group { width: 100%; }
  .product-gallery { grid-template-columns: 1fr 1fr; }
  .form-grid.two-columns, .form-grid.three-columns, .product-readonly-grid { grid-template-columns: 1fr; }
  .user-access-card-v13 summary { grid-template-columns: 42px minmax(0, 1fr) 24px; }
  .user-access-card-v13 summary .role-pill, .user-access-card-v13 summary .status-dot { grid-column: 2; justify-self: start; }
  .user-account-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .audit-filter-toggle { display: inline-flex; }
  .audit-filter-form.is-collapsed .audit-filter-grid, .audit-filter-form.is-collapsed .audit-filter-actions { display: none; }
  .audit-filter-grid { grid-template-columns: 1fr; }
  .audit-filter-grid .filter-wide { grid-column: auto; }
  .audit-filter-actions { justify-content: stretch; }
  .audit-filter-actions .btn { flex: 1; }
  .audit-entry-body { grid-template-columns: 1fr; }
  .audit-entry-header { align-items: flex-start; }
  .audit-entry-header > div { align-items: flex-start; flex-direction: column; }
  .audit-entry-header strong { white-space: normal; }
  .audit-technical-details { grid-column: auto; }
  .audit-technical-details dl { grid-template-columns: 1fr; }
  .audit-technical-details dl .full { grid-column: auto; }
  .pagination { justify-content: space-between; }
}

@media (max-width: 430px) {
  .mobile-bottom-nav[data-has-admin-item="true"] a { padding-inline: 2px; }
  .mobile-bottom-nav[data-has-admin-item="true"] small { font-size: 8px; }
  .catalog-metrics, .audit-metrics { grid-template-columns: 1fr 1fr; }
  .catalog-filter-v13 { grid-template-columns: 1fr; }
  .catalog-filter-v13 .filter-wide { grid-column: auto; }
  .product-gallery { grid-template-columns: 1fr; }
  .product-meta-grid { grid-template-columns: 1fr 1fr; }
  .user-account-overview { grid-template-columns: 1fr; }
}
.password-change-panel { width: min(520px, 100%); margin: 30px auto; }

/* V13.1 — navegação compacta com atalhos de uma etapa */
.topbar.topbar-compact {
  min-height: 72px;
  height: 72px;
  gap: 14px;
  padding: 7px 20px;
}
.topbar-compact .brand {
  min-width: 220px;
  gap: 10px;
}
.topbar-compact .brand-logo {
  width: 94px;
  height: 50px;
}
.topbar-compact .brand-system-name { font-size: 13px; }
.topbar-compact .nav-links.nav-compact {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin: 0 auto 0 0;
}
.nav-module {
  display: inline-flex;
  align-items: stretch;
  min-height: 42px;
  overflow: hidden;
  border: 1px solid #ddd6ce;
  border-radius: 11px;
  background: #faf9f7;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.nav-module:hover,
.nav-module.is-active {
  border-color: #bdb2a6;
  background: #f1ece6;
  box-shadow: 0 4px 13px rgba(30, 25, 20, .07);
}
.nav-links.nav-compact .nav-module a {
  position: static;
  min-height: 40px;
  padding: 0;
  color: #38332e;
}
.nav-links.nav-compact .nav-module a::after { display: none; }
.nav-module-main {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  white-space: nowrap;
}
.nav-module-icon {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border-radius: 7px;
  background: #e6dfd6;
  color: #51483f;
  font-size: 13px;
}
.nav-module-main.is-active .nav-module-icon { background: #111; color: #fff; }
.nav-module-add {
  display: grid;
  place-items: center;
  width: 39px;
  border-left: 1px solid #ddd6ce;
  background: #fff;
  font-size: 19px !important;
  font-weight: 500 !important;
}
.nav-module-add:hover,
.nav-module-add.is-active { background: #111 !important; color: #fff !important; }

.nav-dropdown,
.user-dropdown { position: relative; }
.nav-dropdown > summary,
.user-dropdown > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.nav-dropdown > summary::-webkit-details-marker,
.user-dropdown > summary::-webkit-details-marker { display: none; }
.nav-dropdown > summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  padding: 0 11px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: #514a43;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
.nav-dropdown > summary > i,
.user-dropdown > summary > i {
  font-style: normal;
  font-size: 12px;
  transition: transform .16s ease;
}
.nav-dropdown[open] > summary > i,
.user-dropdown[open] > summary > i { transform: rotate(180deg); }
.nav-dropdown > summary:hover,
.nav-dropdown[open] > summary,
.nav-dropdown.is-active > summary {
  border-color: #ddd6ce;
  background: #f3efe9;
  color: #111;
}
.nav-dropdown-panel,
.user-dropdown-panel {
  position: absolute;
  top: calc(100% + 9px);
  z-index: 90;
  display: grid;
  min-width: 245px;
  padding: 8px;
  border: 1px solid #d8d0c7;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(32, 27, 22, .18);
}
.nav-dropdown-panel { left: 0; }
.nav-dropdown-panel-wide { min-width: 285px; }
.nav-links.nav-compact .nav-dropdown-panel a {
  display: grid;
  gap: 3px;
  min-height: 0;
  padding: 11px 12px;
  border-radius: 9px;
  color: #302c28;
}
.nav-links.nav-compact .nav-dropdown-panel a:hover,
.nav-links.nav-compact .nav-dropdown-panel a.is-active { background: #f1ece6; color: #111; }
.nav-dropdown-panel a strong { font-size: 12px; }
.nav-dropdown-panel a small { color: var(--muted); font-size: 10px; font-weight: 550; }

.user-dropdown { flex: 0 0 auto; }
.user-dropdown > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 172px;
  padding: 4px 7px 4px 4px;
  border: 1px solid transparent;
  border-radius: 12px;
}
.user-dropdown > summary:hover,
.user-dropdown[open] > summary { border-color: #ddd6ce; background: #f6f2ed; }
.user-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #111;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
}
.user-dropdown-label { min-width: 0; flex: 1; }
.user-dropdown-label strong,
.user-dropdown-label small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-dropdown-label strong { max-width: 135px; font-size: 12px; }
.user-dropdown-label small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.user-dropdown-panel { right: 0; left: auto; min-width: 255px; }
.user-dropdown-account { display: grid; gap: 3px; padding: 10px 11px 12px; border-bottom: 1px solid var(--line); }
.user-dropdown-account strong { font-size: 13px; }
.user-dropdown-account small { overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.user-dropdown-account span { width: max-content; margin-top: 4px; padding: 4px 7px; border-radius: 999px; background: #eee8e0; color: #5d5042; font-size: 9px; font-weight: 800; }
.user-dropdown-panel form { padding-top: 7px; }
.user-logout-button {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 10px 11px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #87322d;
  font-size: 11px;
  font-weight: 800;
  text-align: left;
}
.user-logout-button:hover { background: #fbe8e6; }

@media (max-width: 1280px) {
  .topbar-compact .brand { min-width: 180px; }
  .topbar-compact .brand-logo { width: 82px; }
  .topbar-compact .brand-system-name { font-size: 12px; }
  .nav-module-main { padding-inline: 9px !important; }
  .nav-dropdown > summary { padding-inline: 9px; }
  .user-dropdown > summary { min-width: 48px; }
  .user-dropdown-label { display: none; }
}

@media (max-width: 1050px) {
  .topbar.topbar-compact { height: 68px; min-height: 68px; }
  .topbar-compact .brand { min-width: 0; }
  .topbar-compact .nav-links.nav-compact {
    display: none;
    align-items: stretch;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .topbar-compact .nav-links.nav-compact.is-open { display: grid; }
  .nav-module {
    width: 100%;
    border-color: rgba(255,255,255,.13);
    background: rgba(255,255,255,.05);
  }
  .nav-module:hover,
  .nav-module.is-active { border-color: rgba(255,255,255,.26); background: rgba(255,255,255,.10); }
  .nav-links.nav-compact .nav-module a { color: #fff; }
  .nav-module-main { flex: 1; }
  .nav-module-icon { background: rgba(255,255,255,.12); color: #fff; }
  .nav-module-main.is-active .nav-module-icon { background: #fff; color: #111; }
  .nav-module-add { border-left-color: rgba(255,255,255,.14); background: rgba(255,255,255,.04); }
  .nav-dropdown { width: 100%; }
  .nav-dropdown > summary {
    width: 100%;
    min-height: 47px;
    justify-content: flex-start;
    border-color: rgba(255,255,255,.1);
    background: rgba(255,255,255,.04);
    color: #efefef;
  }
  .nav-dropdown > summary i { margin-left: auto; }
  .nav-dropdown > summary:hover,
  .nav-dropdown[open] > summary,
  .nav-dropdown.is-active > summary { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.11); color: #fff; }
  .nav-dropdown-panel,
  .nav-dropdown-panel-wide {
    position: static;
    min-width: 0;
    margin-top: 6px;
    border-color: rgba(255,255,255,.12);
    background: rgba(255,255,255,.06);
    box-shadow: none;
  }
  .nav-links.nav-compact .nav-dropdown-panel a { color: #fff; }
  .nav-links.nav-compact .nav-dropdown-panel a:hover,
  .nav-links.nav-compact .nav-dropdown-panel a.is-active { background: rgba(255,255,255,.12); color: #fff; }
  .nav-dropdown-panel a small { color: #c9c5c0; }
  .user-dropdown > summary { min-width: 46px; padding: 3px; }
  .user-dropdown > summary > i { display: none; }
}

@media (max-width: 720px) {
  .topbar-compact .brand-logo { width: 86px; height: 46px; }
  .topbar-compact .nav-links.nav-compact { grid-template-columns: 1fr; }
  .user-avatar { width: 32px; height: 32px; flex-basis: 32px; }
}

/* V14 · Pedidos de Compra e inteligência de custos */
.order-origin-summary { margin-bottom: 18px; }
.po-items-table input { min-width: 105px; }
.po-items-table td:first-child { min-width: 280px; }
.po-items-table small { display: block; margin-top: 4px; color: var(--muted, #6d6862); }
.po-total-box { display: flex; justify-content: flex-end; align-items: center; gap: 18px; padding: 18px 20px; margin: 18px 0; border-radius: 14px; background: #111; color: #fff; }
.po-total-box span { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; opacity: .72; }
.po-total-box strong { font-size: 1.55rem; }
.price-alert-high { color: #b42318 !important; font-weight: 700; }
.price-alert-low { color: #067647 !important; font-weight: 700; }
.row-alert { background: #fff4ed; }
.order-totals { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.order-totals span { padding: 9px 12px; border-radius: 10px; background: #f6f3ef; font-size: .82rem; }
.order-totals span:last-child { background: #111; color: #fff; }
.receipt-item-list { display: grid; gap: 10px; }
.receipt-item-list label { display: grid; grid-template-columns: minmax(0, 1fr) 105px; align-items: center; gap: 10px; padding: 10px; border: 1px solid #ded8d1; border-radius: 12px; }
.receipt-item-list span, .receipt-item-list small { display: block; }
.analytics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.analytics-card { min-width: 0; }
.cost-ranking { display: grid; gap: 15px; }
.cost-ranking > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, 45%); gap: 14px; align-items: center; }
.cost-ranking span, .cost-ranking small { display: block; }
.cost-ranking progress { width: 100%; height: 12px; accent-color: #111; }
.monthly-cost-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 12px; }
.monthly-cost-grid article { padding: 16px; border: 1px solid #ded8d1; border-radius: 14px; background: #faf8f5; }
.monthly-cost-grid span, .monthly-cost-grid strong { display: block; }
.cost-alert-panel { border-left: 5px solid #b54708; }
.cost-alert-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.cost-alert-grid article { padding: 14px; border-radius: 12px; background: #fff4ed; }
.cost-alert-grid strong, .cost-alert-grid span, .cost-alert-grid small { display: block; }
.cost-filter { align-items: end; }

@media (max-width: 900px) {
  .analytics-grid { grid-template-columns: 1fr; }
  .cost-ranking > div { grid-template-columns: 1fr; gap: 6px; }
  .po-total-box { justify-content: space-between; }
}

@media (max-width: 760px) {
  .mobile-bottom-nav[data-item-count="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mobile-bottom-nav[data-item-count="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .mobile-bottom-nav[data-item-count="6"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .mobile-bottom-nav[data-item-count="6"] a { padding-inline: 1px; }
  .mobile-bottom-nav[data-item-count="6"] small { font-size: 7.5px; }
}

/* V14.1 · CNPJ, orçamento dinâmico e aprovação administrativa */
.input-action-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.input-action-row .btn { min-height: 43px; white-space: nowrap; }
.supplier-form-side { min-width: 360px; }
.supplier-address-card { margin-bottom: 18px; }
.preserve-lines { white-space: pre-line; }
.text-danger { color: #b42318 !important; }
.badge-danger { background: #fee4e2 !important; color: #b42318 !important; border-color: #fda29b !important; }
.row-budget-over { background: #fff0f0 !important; box-shadow: inset 5px 0 0 #b42318; }
.row-budget-over:hover { background: #ffe4e4 !important; }

.budget-monitor { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 16px; margin: 0 0 18px; border: 1px solid #d8d1c8; border-radius: 14px; background: #faf8f5; transition: .2s ease; }
.budget-monitor > div { padding: 10px; border-radius: 10px; background: #fff; }
.budget-monitor span, .budget-monitor strong { display: block; }
.budget-monitor span { color: #6d6862; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; }
.budget-monitor strong { margin-top: 4px; font-size: 1rem; }
.budget-monitor p { grid-column: 1 / -1; margin: 2px 0 0; font-size: .82rem; color: #5f5a54; }
.budget-monitor.is-near-budget { border-color: #f79009; background: #fffaeb; }
.budget-monitor.is-over-budget { border-color: #d92d20; background: #fff0f0; box-shadow: 0 0 0 2px rgba(217,45,32,.08); }
.budget-monitor.is-over-budget p { color: #b42318; font-weight: 700; }

.budget-over-alert { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px; margin-bottom: 18px; border: 2px solid #d92d20; border-radius: 16px; background: #fff0f0; color: #7a271a; }
.budget-over-alert span { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.budget-over-alert h2 { margin: 4px 0; font-size: 1.2rem; }
.budget-over-alert p { margin: 0; }
.budget-over-alert > strong { flex: 0 0 auto; font-size: 1.45rem; color: #b42318; }
.approval-panel { border: 2px solid #d92d20; background: #fff8f7; }
.approval-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.approval-history { margin: 14px 0 0; padding: 12px; border-radius: 10px; background: #f5f2ee; }

.cost-center-overview-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); gap: 16px; margin-bottom: 18px; }
.cost-center-decision-card { padding: 18px; border: 1px solid #ded8d1; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(30,25,20,.05); }
.cost-center-decision-card.is-near-budget { border-color: #f79009; background: #fffcf2; }
.cost-center-decision-card.is-over-budget { border-color: #d92d20; background: #fff5f5; box-shadow: 0 8px 24px rgba(217,45,32,.08); }
.cost-center-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.cost-center-card-head span:first-child { font-size: .72rem; font-weight: 800; letter-spacing: .08em; color: #766d64; }
.cost-center-card-head h2 { margin: 3px 0 2px; font-size: 1.08rem; }
.cost-center-card-head small { color: #77706a; }
.cost-center-card-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 16px 0 10px; }
.cost-center-card-metrics > div { min-width: 0; padding: 9px; border-radius: 10px; background: rgba(246,243,239,.9); }
.cost-center-card-metrics span, .cost-center-card-metrics strong { display: block; }
.cost-center-card-metrics span { font-size: .67rem; color: #6d6862; text-transform: uppercase; }
.cost-center-card-metrics strong { margin-top: 4px; font-size: .88rem; overflow-wrap: anywhere; }
.budget-progress { height: 9px; overflow: hidden; border-radius: 999px; background: #e8e2db; }
.budget-progress span { display: block; height: 100%; border-radius: inherit; background: #222; }
.is-near-budget .budget-progress span { background: #f79009; }
.is-over-budget .budget-progress span { background: #d92d20; }
.cost-center-decision-card > p { margin: 7px 0 12px; font-size: .78rem; color: #6d6862; }
.cost-center-card-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding-top: 10px; border-top: 1px solid #ebe6e0; font-size: .77rem; }

@media (max-width: 900px) {
  .budget-monitor { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .supplier-form-side { min-width: 0; }
}

@media (max-width: 620px) {
  .input-action-row { grid-template-columns: 1fr; }
  .budget-monitor { grid-template-columns: 1fr; }
  .budget-over-alert { align-items: flex-start; flex-direction: column; }
  .approval-actions { grid-template-columns: 1fr; }
  .cost-center-card-metrics { grid-template-columns: 1fr; }
}

/* V14.3 · Central de notificações, custo por centro/evento e controles gerenciais */
.notification-dropdown { position: relative; flex: 0 0 auto; }
.notification-dropdown > summary, .notification-trigger { position: relative; display: grid; place-items: center; width: 44px; height: 44px; padding:0; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background:transparent; color: #fff; cursor: pointer; list-style: none; }
.notification-dropdown > summary::-webkit-details-marker { display: none; }
.notification-dropdown > summary:hover, .notification-trigger:hover, .notification-dropdown.is-active > summary, .notification-dropdown.is-active .notification-trigger, .notification-dropdown.is-open .notification-trigger { background: rgba(255,255,255,.12); }
.notification-bell { font-size: 1.2rem; line-height: 1; }
.notification-count { position: absolute; top: -5px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px; display: grid; place-items: center; border: 2px solid #1d1a18; border-radius: 999px; background: #d92d20; color: #fff; font-size: .65rem; line-height: 1; }
.notification-dropdown-panel { position: absolute; z-index: 130; top: calc(100% + 10px); right: 0; width: min(420px, calc(100vw - 24px)); overflow: hidden; border: 1px solid #d9d2ca; border-radius: 16px; background: #fff; box-shadow: 0 22px 60px rgba(20,16,13,.24); color: #292522; }
.notification-dropdown:not([open]):not(.is-open) .notification-dropdown-panel { display: none; }
.notification-dropdown-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 15px 16px; border-bottom: 1px solid #eee8e1; background: #faf8f5; }
.notification-dropdown-head strong, .notification-dropdown-head small { display: block; }
.notification-dropdown-head small { color: #746d66; }
.notification-dropdown-head a, .notification-all-link { color: #5c3b2e; font-weight: 700; text-decoration: none; }
.notification-preview-list { max-height: 390px; overflow: auto; }
.notification-preview-item { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 10px; padding: 13px 16px; border-bottom: 1px solid #f0ece7; color: inherit; text-decoration: none; }
.notification-preview-item:hover { background: #faf8f5; }
.notification-preview-item > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: #f0ece7; font-weight: 900; }
.notification-preview-item strong, .notification-preview-item small { display: block; }
.notification-preview-item strong { font-size: .86rem; }
.notification-preview-item small { margin-top: 3px; color: #6c655f; line-height: 1.35; }
.notification-preview-item.is-danger > span { background: #fee4e2; color: #b42318; }
.notification-preview-item.is-urgent > span { background: #ffead5; color: #b54708; }
.notification-preview-item.is-warning > span { background: #fef0c7; color: #93370d; }
.notification-preview-item.is-info > span { background: #e8f3ee; color: #067647; }
.notification-all-link { display: block; padding: 13px 16px; text-align: center; background: #faf8f5; }
.notification-empty { padding: 28px 18px; text-align: center; }
.notification-empty strong, .notification-empty small { display: block; }
.notification-empty small { margin-top: 4px; color: #766f68; }
.notification-page-header { align-items: center; }
.notification-page-count { min-width: 140px; padding: 18px; border-radius: 15px; background: #1e1b19; color: #fff; text-align: center; }
.notification-page-count strong, .notification-page-count span { display: block; }
.notification-page-count strong { font-size: 1.8rem; }
.notification-page-count span { font-size: .76rem; opacity: .72; }
.notification-category-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 12px; margin-bottom: 18px; }
.notification-category-grid article { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 15px; border: 1px solid #ded8d1; border-radius: 13px; background: #fff; }
.notification-category-grid span { color: #6c655f; font-size: .8rem; }
.notification-category-grid strong { font-size: 1.25rem; }
.notification-center-list { display: grid; gap: 10px; }
.notification-center-item { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 16px; border: 1px solid #e4ddd6; border-left-width: 5px; border-radius: 14px; color: inherit; text-decoration: none; transition: .15s ease; }
.notification-center-item:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(35,28,23,.08); }
.notification-center-item.is-danger { border-left-color: #d92d20; background: #fff8f7; }
.notification-center-item.is-urgent { border-left-color: #f79009; background: #fffcf5; }
.notification-center-item.is-warning { border-left-color: #fdb022; }
.notification-center-item.is-info { border-left-color: #45966f; }
.notification-center-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: #f1ede8; font-weight: 900; font-size: 1.1rem; }
.notification-center-item small, .notification-center-item strong, .notification-center-item p { display: block; }
.notification-center-item small { color: #7a726b; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.notification-center-item strong { margin-top: 3px; }
.notification-center-item p { margin: 3px 0 0; color: #625b55; font-size: .84rem; }
.notification-center-item > b { color: #5c3b2e; font-size: .8rem; }
.notification-center-empty { padding: 45px 20px; text-align: center; }
.notification-center-empty > span { width: 58px; height: 58px; display: grid; place-items: center; margin: auto; border-radius: 50%; background: #e8f3ee; color: #067647; font-size: 1.5rem; }
.notification-rules-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 12px; }
.notification-rules-grid article { padding: 15px; border-radius: 12px; background: #f7f4f0; }
.notification-rules-grid strong, .notification-rules-grid span { display: block; }
.notification-rules-grid span { margin-top: 5px; color: #6c655f; font-size: .8rem; }
.mobile-notification-icon { position: relative; }
.mobile-notification-icon b { position: absolute; top: -8px; right: -10px; min-width: 16px; height: 16px; display: grid; place-items: center; padding: 0 3px; border-radius: 999px; background: #d92d20; color: #fff; font-size: 7px; }
.purchase-order-delete-panel { border: 1px solid #fda29b; background: #fff8f7; }
.purchase-order-delete-panel h2 { color: #b42318; }
.is-payment-field-hidden { display: none !important; }
.center-event-cost-list { display: grid; gap: 16px; }
.center-event-cost-card { overflow: hidden; border: 1px solid #ddd6cf; border-radius: 15px; background: #fff; }
.center-event-cost-card > header { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 16px 18px; background: #f6f2ed; }
.center-event-cost-card header span { display: block; color: #746b63; font-size: .67rem; font-weight: 800; letter-spacing: .09em; }
.center-event-cost-card header h3 { margin: 3px 0 0; font-size: 1rem; }
.center-event-cost-card header > strong { font-size: 1.15rem; }
.center-event-cost-card > div { padding: 6px 18px 14px; }
.center-event-cost-row { display: grid; grid-template-columns: minmax(180px,1fr) minmax(120px,35%) 130px; gap: 14px; align-items: center; padding: 11px 0; border-bottom: 1px solid #eee9e4; }
.center-event-cost-row:last-child { border-bottom: 0; }
.center-event-cost-row span strong, .center-event-cost-row span small { display: block; }
.center-event-cost-row span small { color: #746c65; font-size: .72rem; }
.center-event-cost-row progress { width: 100%; accent-color: #5c3b2e; }
.center-event-cost-row > b { text-align: right; }

@media (max-width: 900px) {
  .notification-dropdown-panel { position: fixed; top: 70px; right: 12px; }
  .center-event-cost-row { grid-template-columns: 1fr; gap: 5px; }
  .center-event-cost-row > b { text-align: left; }
}
@media (max-width: 760px) {
  .mobile-bottom-nav[data-item-count="7"] { grid-template-columns: repeat(7,minmax(0,1fr)); }
  .mobile-bottom-nav[data-item-count="7"] a { padding-inline: 0; }
  .mobile-bottom-nav[data-item-count="7"] small { font-size: 7px; }
  .notification-center-item { grid-template-columns: 40px minmax(0,1fr); }
  .notification-center-item > b { grid-column: 2; }
  .notification-page-count { width: 100%; }
}

/* V14.4 — estoque discreto, fotos, itens parciais e Via Evento */
.purchase-item-row {
  grid-template-columns: minmax(245px,1.8fr) minmax(115px,.75fr) minmax(210px,1.45fr) minmax(145px,.95fr) minmax(175px,1.15fr) minmax(76px,.5fr) minmax(90px,.55fr) 38px;
  min-width: 1330px;
}
.stock-item-row {
  grid-template-columns: minmax(245px,1.8fr) minmax(115px,.75fr) minmax(200px,1.4fr) minmax(140px,.9fr) minmax(115px,.72fr) minmax(76px,.5fr) minmax(90px,.55fr) minmax(170px,1.05fr) 38px;
  min-width: 1390px;
}
.catalog-picker-cell { display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 8px; min-width: 0; }
.catalog-row-thumb { width: 42px; height: 42px; border-radius: 9px; object-fit: cover; border: 1px solid #ddd7d0; background: #f5f2ee; }
.catalog-picker-cell > div { min-width: 0; }
.catalog-picker-cell select { width: 100%; }
.catalog-stock-display { min-height: auto; margin-top: 4px; padding: 2px 7px; display: inline-flex; border-radius: 999px; font-size: 9px; line-height: 1.35; }
.stock-multi-option { grid-template-columns: 24px 42px minmax(0,1fr) auto; }
.stock-multi-option-photo { width: 42px; height: 42px; border-radius: 9px; object-fit: cover; border: 1px solid #e1dbd4; background: #f5f2ee; display: grid; place-items: center; color: #8a8178; }
.stock-multi-option-photo.is-placeholder { font-size: 18px; }
.stock-multi-basket-info { display: flex; align-items: center; gap: 9px; }
.stock-multi-basket-info > div { min-width: 0; }
.stock-multi-basket-photo { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 8px; object-fit: cover; border: 1px solid #e1dbd4; }
.po-selectable-items th, .po-selectable-items td { vertical-align: middle; }
.po-item-not-selected { opacity: .58; background: #faf9f7; }
.po-item-not-selected input[type="number"] { background: #f2f0ed; }
.po-item-check { display: grid; justify-items: center; gap: 4px; font-size: 10px; font-weight: 800; }
.po-item-check input { width: 18px; height: 18px; }
.empty-state-inline { margin-top: 14px; color: var(--muted); }
.event-view-tabs { padding: 0; overflow: hidden; }
.event-tab-buttons { display: flex; gap: 4px; padding: 8px; border-bottom: 1px solid #e7e1da; background: #f7f4f0; }
.event-tab-button { border: 0; border-radius: 9px; padding: 10px 16px; background: transparent; color: #5f5851; font: inherit; font-weight: 800; cursor: pointer; }
.event-tab-button.is-active { background: #fff; color: #4c3328; box-shadow: 0 1px 5px rgba(38,29,24,.12); }
.event-tab-panel { display: none; padding: 16px 18px; }
.event-tab-panel.is-active { display: block; }
.event-tab-panel > p { margin: 0; color: var(--muted); }
.event-route-summary { margin-bottom: 15px; }
.event-route-table th { white-space: nowrap; }
.event-item-identification { display: flex; align-items: center; gap: 9px; min-width: 220px; }
.event-item-identification img { width: 42px; height: 42px; border-radius: 8px; object-fit: cover; border: 1px solid #ddd7d0; }
.event-item-identification strong, .event-item-identification small { display: block; }
.event-return-declaration-panel { border-color: #c9d9cc; background: #f8fbf8; }
@media (max-width: 760px) {
  .catalog-picker-cell { grid-template-columns: 48px minmax(0,1fr); }
  .catalog-row-thumb { width: 48px; height: 48px; }
  .stock-multi-option { grid-template-columns: 24px 42px minmax(0,1fr); }
  .stock-multi-option-state { grid-column: 3; }
  .event-tab-buttons { overflow-x: auto; }
  .event-tab-button { white-space: nowrap; flex: 1; }
}
.payment-method-cost-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(175px,1fr)); gap: 12px; }
.payment-method-cost-grid article { padding: 15px; border: 1px solid #e1dbd4; border-radius: 13px; background: #faf8f5; }
.payment-method-cost-grid span, .payment-method-cost-grid strong, .payment-method-cost-grid small { display: block; }
.payment-method-cost-grid span { color: #6e665f; font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.payment-method-cost-grid strong { margin-top: 5px; font-size: 1.05rem; }
.payment-method-cost-grid small { margin-top: 3px; color: #7b746d; }
.btn.is-disabled { opacity: .52; cursor: not-allowed; pointer-events: none; }

/* V14.5 — aprovação por item, requisição compacta e fluxo horizontal de evento */
.approval-inline-form { margin: 0; }
.approval-inline-panel { border-color: #d9aaa5; }
.approval-inline-table { min-width: 900px; }
.approval-inline-table th:first-child { width: 38%; }
.approval-inline-table input,
.approval-inline-table select { width: 100%; }
.compact-product-cell { min-width: 280px; }
.approval-signature-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,1fr); gap: 14px; margin-top: 16px; align-items: stretch; }
.digital-signature-box { display: grid; gap: 8px; padding: 14px; border: 1px solid #b9cdbf; border-radius: 12px; background: #f4faf5; }
.digital-signature-box span,
.digital-signature-box strong,
.digital-signature-box small { display: block; }
.signature-proof { display: inline-grid; gap: 3px; padding: 10px 12px; border: 1px solid #b9cdbf; border-radius: 10px; background: #f4faf5; }
.approval-actions-inline { margin-top: 12px; }
.approval-waiting-note { margin-top: 12px; }

.stock-items-compact { overflow-x: auto; }
.stock-items-compact .stock-item-row {
  display: grid;
  grid-template-columns: minmax(430px,1fr) 120px minmax(240px,.65fr) 38px;
  gap: 9px;
  align-items: center;
  min-width: 860px;
}
.stock-items-compact .stock-item-row.item-header { padding: 0 3px; }
.stock-item-cell { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 9px; align-items: center; min-width: 0; }
.stock-item-main-fields { display: grid; grid-template-columns: minmax(220px,1.05fr) minmax(210px,.95fr); gap: 7px; min-width: 0; }
.stock-item-main-fields .catalog-stock-display { grid-column: 1 / -1; justify-self: start; }
.stock-item-hidden-meta { display: none !important; }
.stock-description[readonly] { background: #f3f4f1; color: #454b46; font-weight: 750; }

.stock-summary-compact { grid-template-columns: repeat(6,minmax(135px,1fr)); }
.event-tab-flow { display: grid; grid-template-columns: repeat(4,minmax(170px,1fr)); gap: 8px; padding: 10px; }
.event-tab-flow .event-tab-button { position: relative; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border: 1px solid #ded7cf; background: #fbfaf8; }
.event-tab-flow .event-tab-button:not(:last-child)::after { content: ""; position: absolute; right: -9px; top: 50%; width: 10px; height: 2px; background: #cfc6bd; z-index: 2; }
.event-tab-flow .event-tab-button i { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #e6e0d9; color: #5d554e; font-style: normal; font-size: 11px; }
.event-tab-flow .event-tab-button.is-active { border-color: #66816f; background: #f2f8f3; color: #274533; }
.event-tab-flow .event-tab-button.is-active i { background: #345c43; color: #fff; }
.event-stage-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.event-stage-heading h2 { margin: 2px 0 4px; }
.event-stage-heading p { margin: 0; color: var(--muted); }
.event-inline-form { display: grid; gap: 14px; }
.event-validation-line { display: grid; grid-template-columns: minmax(170px,.7fr) minmax(220px,.9fr) minmax(300px,1.4fr); gap: 10px; align-items: end; }
.event-validation-line > label { margin: 0; }
.event-notes-field { min-width: 0; }
.event-item-input-list { display: grid; gap: 8px; }
.event-item-input-row { display: grid; grid-template-columns: minmax(300px,1fr) minmax(180px,230px); gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: #fbfaf8; }
.event-item-input-row > div > strong,
.event-item-input-row > div > small { display: block; }
.event-item-input-row > div > small { margin-top: 3px; color: var(--muted); }
.event-item-input-row label { margin: 0; }
.event-stage-actions { display: flex; justify-content: flex-end; }
.event-confirm-line { align-self: center; min-height: 45px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; background: #faf9f7; }
.signature-stage-summary { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 9px; margin-bottom: 14px; }
.signature-stage-summary > div { padding: 11px 12px; border: 1px solid #c8d8cc; border-radius: 10px; background: #f5faf6; }
.signature-stage-summary span,
.signature-stage-summary strong { display: block; }
.signature-stage-summary span { color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }
.signature-stage-summary strong { margin-top: 4px; }

.return-cost-list { display: grid; gap: 9px; }
.return-cost-row { display: grid; grid-template-columns: minmax(220px,1.2fr) minmax(135px,.7fr) minmax(145px,.72fr) minmax(145px,.72fr) minmax(220px,1fr) minmax(135px,.62fr); gap: 9px; align-items: end; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fbfaf8; }
.return-cost-row label { margin: 0; }
.return-cost-item { align-self: center; }
.return-cost-item strong,
.return-cost-item small { display: block; }
.return-cost-item small { margin-top: 4px; color: var(--muted); }
.return-cost-value { align-self: stretch; display: grid; align-content: center; padding: 8px 10px; border-radius: 9px; background: #f2f5f1; }
.return-cost-value span,
.return-cost-value strong,
.return-cost-value small { display: block; }
.return-cost-value span { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.return-cost-value strong { margin: 3px 0; }
.return-validation-line { grid-template-columns: minmax(160px,.65fr) minmax(260px,1.2fr) minmax(220px,1fr) minmax(170px,.7fr); }
.replacement-total-preview { display: grid; align-content: center; min-height: 68px; padding: 10px 12px; border: 1px solid #c8d8cc; border-radius: 10px; background: #f3faf5; }
.replacement-total-preview span,
.replacement-total-preview strong { display: block; }
.replacement-total-preview span { color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.replacement-total-preview strong { margin-top: 4px; font-size: 18px; color: #2c5d3d; }
.replacement-final-total { display: flex; justify-content: flex-end; align-items: center; gap: 14px; margin-top: 12px; padding: 12px 14px; border-radius: 10px; background: #f2f8f3; }
.replacement-final-total span { color: var(--muted); font-weight: 800; }
.replacement-final-total strong { font-size: 19px; color: #285b3a; }
.validation-signature-line { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.validation-signature-line article { position: relative; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #faf9f7; }
.validation-signature-line article:not(:last-child)::after { content: "→"; position: absolute; right: -11px; top: 50%; transform: translateY(-50%); z-index: 2; color: #8a8178; font-weight: 900; }
.validation-signature-line span,
.validation-signature-line strong,
.validation-signature-line small { display: block; }
.validation-signature-line span { color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.validation-signature-line strong { margin: 5px 0 3px; }
.validation-signature-line small { color: var(--muted); }
.internal-note { margin-top: 12px; padding: 11px 13px; border-left: 3px solid #6d806f; background: #f4f6f3; }
.internal-note p { margin: 4px 0 0; }
.event-consolidated-panel table small { display: block; margin-top: 3px; color: var(--muted); }

@media (max-width: 1180px) {
  .stock-summary-compact { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .event-validation-line,
  .return-validation-line { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .return-cost-row { grid-template-columns: repeat(3,minmax(180px,1fr)); }
  .return-occurrence { grid-column: span 2; }
}
@media (max-width: 800px) {
  .approval-signature-row { grid-template-columns: 1fr; }
  .approval-inline-table { min-width: 760px; }
  .stock-items-compact .stock-item-row { min-width: 0; grid-template-columns: 1fr; padding: 12px; }
  .stock-items-compact .stock-item-row.item-header { display: none; }
  .stock-item-cell { grid-template-columns: 48px minmax(0,1fr); }
  .stock-item-main-fields { grid-template-columns: 1fr; }
  .stock-item-main-fields .catalog-stock-display { grid-column: auto; }
  .stock-summary-compact { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .event-tab-flow { display: flex; overflow-x: auto; }
  .event-tab-flow .event-tab-button { flex: 0 0 185px; }
  .event-tab-flow .event-tab-button:not(:last-child)::after { display: none; }
  .event-stage-heading { display: grid; }
  .event-item-input-row,
  .event-validation-line,
  .return-validation-line,
  .return-cost-row { grid-template-columns: 1fr; }
  .return-occurrence { grid-column: auto; }
  .validation-signature-line { display: flex; overflow-x: auto; }
  .validation-signature-line article { flex: 0 0 230px; }
  .validation-signature-line article:not(:last-child)::after { display: none; }
}
@media (max-width: 520px) {
  .stock-summary-compact { grid-template-columns: 1fr; }
}

/* V14.6 · rolagem previsível, campos em linha e registros fotográficos */
html { overflow-x: hidden; scroll-behavior: smooth; }
body { overflow-x: hidden; }
.table-wrap,
.approval-scroll-area,
.notification-preview-list,
.stock-multi-results,
.stock-multi-basket-list,
.catalog-create-panel,
.new-user-panel-v13 {
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}
.table-wrap { position: relative; max-width: 100%; }
.table-wrap select,
.table-wrap input { position: static; }
.approval-scroll-area { max-height: min(68vh, 720px); overflow: auto; }
.approval-metrics-table { min-width: 1180px; }
.approval-metrics-table td { vertical-align: middle; }
.approval-metrics-table td > small { display: block; margin-top: 3px; color: var(--muted); }
.notification-dropdown-panel { max-height: min(78vh, 650px); }
.notification-preview-list { max-height: min(62vh, 500px); }

.event-validation-grid { grid-template-columns: repeat(3, minmax(190px, 1fr)); }
.organized-item-lines { max-height: min(65vh, 760px); overflow-y: auto; padding-right: 4px; overscroll-behavior: contain; }
.stock-decision-row { grid-template-columns: minmax(250px, 1.2fr) minmax(150px, .65fr) minmax(145px, .55fr) minmax(230px, 1fr) minmax(130px, .55fr); }
.event-conformity-row { grid-template-columns: minmax(260px, 1fr) minmax(150px, .55fr) minmax(165px, .65fr) minmax(280px, 1.1fr); }
.item-refusal-field input { border-color: #dec9c2; background: #fffafa; }
.item-inline-state { align-self: stretch; display: grid; align-content: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; background: #f7f5f2; }
.item-inline-state span { font-size: 11px; font-weight: 850; }
.item-inline-state small { margin-top: 3px; color: #8b332c; }
.event-stage-actions { flex-wrap: wrap; gap: 8px; }

.stage-photo-box,
.process-photo-panel { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.stage-photo-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.stage-photo-heading span { color: var(--muted); font-size: 11px; }
.photo-upload-row { display: grid; grid-template-columns: minmax(150px,.6fr) minmax(220px,1fr) minmax(250px,1.2fr) auto; gap: 10px; align-items: end; }
.photo-upload-row.compact { grid-template-columns: minmax(220px,1fr) minmax(260px,1.2fr) auto; }
.photo-upload-row label { margin: 0; }
.process-photo-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(155px,1fr)); gap: 10px; margin-top: 12px; }
.process-photo-card { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: inherit; text-decoration: none; }
.process-photo-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; background: #eee9e3; }
.process-photo-card span { margin-top: 3px; color: var(--green-dark); font-size: 9px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.process-photo-card strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.process-photo-card small { color: var(--muted); font-size: 10px; line-height: 1.3; }
.static-flow { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.static-flow > span { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 46px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #faf9f7; font-weight: 800; }
.static-flow > span i { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #e9e3dc; font-style: normal; }
.static-flow > span.is-active { border-color: #8ca092; background: #f1f7f2; color: #31553d; }

@media (max-width: 1180px) {
  .event-validation-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stock-decision-row,
  .event-conformity-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stock-decision-row > :first-child,
  .event-conformity-row > :first-child { grid-column: 1 / -1; }
  .photo-upload-row,
  .photo-upload-row.compact { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 800px) {
  .notification-dropdown-panel { position: fixed; top: 68px; right: 12px; left: 12px; width: auto; max-height: calc(100dvh - 86px); }
  .notification-preview-list { max-height: calc(100dvh - 205px); }
  .stock-multi-selector { position: static !important; inset: auto !important; max-height: none !important; overflow: visible !important; }
  .stock-multi-layout { max-height: none !important; overflow: visible !important; }
  .stock-multi-results,
  .stock-multi-basket-list { max-height: 44vh !important; }
  .approval-scroll-area { max-height: 65vh; }
  .event-validation-grid,
  .stock-decision-row,
  .event-conformity-row,
  .photo-upload-row,
  .photo-upload-row.compact { grid-template-columns: 1fr; }
  .stock-decision-row > :first-child,
  .event-conformity-row > :first-child { grid-column: auto; }
  .organized-item-lines { max-height: none; overflow: visible; }
  .static-flow { display: flex; overflow-x: auto; padding-bottom: 5px; }
  .static-flow > span { flex: 0 0 175px; }
}

/* V14.7 · Gestão de Contratos e Medições */
.contract-metric-grid,
.contract-detail-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.contract-filter-bar { grid-template-columns: minmax(240px, 2fr) repeat(3, minmax(170px, 1fr)) auto; }
.contracts-table td small,
.contracts-table td strong { display: block; }
.contracts-table td small { margin-top: 4px; color: var(--muted, #716b65); line-height: 1.35; }
.contract-origin-summary { grid-template-columns: 1fr 1fr 1fr 2fr; }
.contract-checks { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 14px; }
.contract-checks .check-row { width: auto; min-height: 42px; }
.contract-status-strip,
.measurement-status-banner {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px;
  margin: 0 0 18px; padding: 1px; border: 1px solid #ddd5cc; border-radius: 16px;
  overflow: hidden; background: #ddd5cc; box-shadow: 0 10px 28px rgba(66,47,36,.06);
}
.contract-status-strip > div,
.measurement-status-banner > div { padding: 15px 16px; background: #fff; min-width: 0; }
.contract-status-strip span,
.measurement-status-banner span { display: block; margin-bottom: 5px; color: #766f68; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.contract-status-strip strong,
.measurement-status-banner strong { display: block; color: #342d29; font-size: 15px; line-height: 1.25; overflow-wrap: anywhere; }
.contract-status-strip small,
.measurement-status-banner small { display: block; margin-top: 4px; color: #766f68; }
.contract-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; align-items: start; }
.contract-main-column,
.contract-side-column { display: grid; gap: 18px; min-width: 0; }
.compact-panel { padding: 18px; }
.contract-object-box { padding: 18px; border: 1px solid #e1d9d1; border-radius: 12px; background: #fbf9f6; line-height: 1.65; white-space: pre-line; }
.contract-object-box strong { display: block; margin: 0 0 6px; }
.contract-object-box p { margin: 0 0 14px; }
.contract-object-box p:last-child { margin-bottom: 0; }
.contract-detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 16px; }
.contract-notes { margin-top: 16px; padding: 15px 17px; border-left: 4px solid #8a9a82; border-radius: 8px; background: #f4f2ec; }
.contract-notes p { margin: 7px 0 0; white-space: pre-line; }
.contract-flow-line {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; overflow-x: auto;
  margin: 0 0 16px; padding: 12px 14px; border: 1px solid #ded6ce; border-radius: 12px; background: #faf8f5;
}
.contract-flow-line span { flex: 1 0 auto; padding: 8px 11px; border-radius: 999px; background: #fff; border: 1px solid #e4ddd6; font-size: 12px; font-weight: 800; text-align: center; white-space: nowrap; }
.contract-flow-line i { color: #987864; font-style: normal; font-weight: 900; }
.contract-flow-line span.is-complete { background: #edf4ec; border-color: #b7cbb2; color: #365534; }
.contract-flow-line span.is-rejected { background: #fff0ee; border-color: #e7b2aa; color: #912a1f; }
.contract-link-panel { display: grid; gap: 10px; }
.contract-link-panel h2 { margin: 0 0 6px; }
.contract-link-panel a { display: block; padding: 12px 13px; border: 1px solid #e1d9d1; border-radius: 10px; background: #fff; text-decoration: none; }
.contract-link-panel a span { display: block; color: #777069; font-size: 11px; text-transform: uppercase; font-weight: 800; }
.contract-link-panel a strong { display: block; margin-top: 4px; color: #5e4033; overflow-wrap: anywhere; }
.contract-attachment-list { display: grid; gap: 8px; }
.contract-attachment-list a { display: grid; grid-template-columns: 28px 1fr; gap: 9px; align-items: center; padding: 10px; border: 1px solid #e3dcd4; border-radius: 10px; text-decoration: none; background: #fff; }
.contract-attachment-list a > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: #f0ebe5; color: #6f4a3a; }
.contract-attachment-list strong,
.contract-attachment-list small { display: block; overflow-wrap: anywhere; }
.contract-attachment-list small { margin-top: 3px; color: #777069; }
.contract-upload-form { margin-top: 14px; padding-top: 14px; border-top: 1px solid #e4ddd6; }
.contract-timeline article { grid-template-columns: 126px 1fr; }
.contract-measurement-values { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.measurement-calculation-strip { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1.35fr; gap: 10px; align-items: stretch; margin-top: 16px; }
.measurement-calculation-strip > div { padding: 13px 14px; border: 1px solid #e0d8d0; border-radius: 11px; background: #fff; }
.measurement-calculation-strip > i { align-self: center; color: #816757; font-style: normal; font-size: 20px; font-weight: 900; }
.measurement-calculation-strip span { display: block; color: #746c65; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.measurement-calculation-strip strong { display: block; margin-top: 5px; font-size: 16px; }
.measurement-calculation-strip .is-total { background: #f3ece5; border-color: #bea99a; }
.measurement-calculation-strip .is-total strong { color: #5c3b2e; font-size: 20px; }
.measurement-detail-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.measurement-detail-grid .measurement-final-value { background: #f2eae3; border-color: #bca696; }
.measurement-detail-grid .measurement-final-value strong { font-size: 20px; color: #5c3b2e; }
.approval-action-box { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-top: 16px; padding: 17px; border: 1px solid #d9cbbc; border-radius: 12px; background: #faf6f1; }
.approval-action-box p { margin: 4px 0 0; color: #6f6861; }
.contract-approval-form { margin-top: 18px; padding: 18px; border: 1px solid #cbb8a8; border-radius: 14px; background: #fbf7f2; }
.approval-decision-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.approval-decision-head p { margin: 5px 0 0; color: #6f6861; }
.approval-decision-head > span { flex: 0 0 auto; padding: 9px 12px; border-radius: 9px; background: #6f4a3a; color: #fff; font-size: 18px; font-weight: 900; }
.approval-buttons { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px; }
.digital-signature-card { margin-top: 16px; padding: 16px 18px; border: 1px solid #b7ccb2; border-left: 5px solid #6f8b68; border-radius: 12px; background: #f3f8f2; }
.digital-signature-card.is-rejected { border-color: #e4b2aa; border-left-color: #b44335; background: #fff4f2; }
.digital-signature-card > span { display: block; margin-bottom: 6px; color: #657060; font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.digital-signature-card p { margin: 7px 0; white-space: pre-line; }
.digital-signature-card small { color: #6f6861; overflow-wrap: anywhere; }
.auto-order-panel { border-top: 4px solid #8a9a82; }

@media (max-width: 1180px) {
  .contract-metric-grid,
  .contract-detail-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .contract-layout { grid-template-columns: 1fr; }
  .contract-side-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contract-link-panel { grid-column: 1 / -1; }
  .contract-filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contract-filter-bar .btn { align-self: end; }
  .contract-origin-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .contract-metric-grid,
  .contract-detail-metrics,
  .contract-status-strip,
  .measurement-status-banner,
  .contract-detail-grid,
  .measurement-detail-grid,
  .contract-side-column,
  .contract-filter-bar,
  .contract-origin-summary,
  .contract-measurement-values { grid-template-columns: 1fr; }
  .contract-status-strip,
  .measurement-status-banner { gap: 1px; }
  .contract-flow-line { justify-content: flex-start; }
  .measurement-calculation-strip { grid-template-columns: 1fr; }
  .measurement-calculation-strip > i { display: none; }
  .approval-action-box,
  .approval-decision-head { align-items: stretch; flex-direction: column; }
  .approval-buttons { flex-direction: column-reverse; }
  .approval-buttons .btn { width: 100%; }
  .contract-timeline article { grid-template-columns: 1fr; }
}

/* V15.1 — navegação inteligente e Dashboard Comercial */
.topbar-compact {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  padding: 7px 18px;
  overflow: visible;
}
.topbar-compact .brand { min-width: 215px; }
.topbar-compact .brand-logo { width: 96px; height: 52px; }
.topbar-compact .nav-toggle { flex: 0 0 auto; }
.topbar-compact .nav-links {
  display: flex;
  flex-wrap: nowrap;
  gap: 7px;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  padding: 5px 2px 8px;
  scrollbar-width: thin;
  scrollbar-color: #c7c1b8 transparent;
}
.topbar-compact .nav-links::-webkit-scrollbar { height: 4px; }
.topbar-compact .nav-links::-webkit-scrollbar-thumb { background: #c7c1b8; border-radius: 99px; }
.topbar-compact .nav-module { flex: 0 0 auto; min-width: max-content; }
.topbar-compact .nav-module-main { padding: 9px 12px; }
.topbar-compact .nav-module-add { width: 38px; }
.topbar-compact .nav-dropdown { flex: 0 0 auto; }
.topbar-compact .notification-dropdown,
.topbar-compact .user-dropdown { flex: 0 0 auto; }
.page-shell { width: min(100% - 34px, 1540px); }

.commercial-app-shell { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 22px; align-items: start; }
.commercial-sidebar {
  position: sticky; top: 96px; min-height: calc(100vh - 126px);
  border-radius: 18px; padding: 19px 13px; color: #eef5f0;
  background: linear-gradient(180deg,#10283a 0%,#0d2030 100%);
  box-shadow: 0 18px 45px rgba(12,31,45,.16);
}
.commercial-sidebar-title { display: grid; gap: 4px; padding: 4px 10px 17px; border-bottom: 1px solid rgba(255,255,255,.12); }
.commercial-sidebar-title span { font-size: 10px; letter-spacing: .16em; color: #9fb2bf; }
.commercial-sidebar-title strong { font-size: 16px; }
.commercial-sidebar nav { display: grid; gap: 5px; padding: 14px 0; }
.commercial-sidebar nav a { display: flex; align-items: center; gap: 11px; padding: 11px 12px; color: #dbe7ec; border-radius: 10px; font-size: 13px; font-weight: 700; }
.commercial-sidebar nav a span { width: 19px; text-align: center; opacity: .9; }
.commercial-sidebar nav a:hover, .commercial-sidebar nav a.is-active { background: #1768e5; color: white; box-shadow: 0 7px 18px rgba(23,104,229,.25); }
.commercial-sidebar-note { margin-top: 12px; padding: 13px; border-radius: 12px; background: rgba(255,255,255,.07); display: grid; gap: 5px; }
.commercial-sidebar-note strong { font-size: 12px; }
.commercial-sidebar-note small { color: #aec0ca; font-size: 10px; line-height: 1.5; }
.commercial-workspace { min-width: 0; display: grid; gap: 17px; }
.commercial-hero { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 4px 2px; }
.commercial-hero h1 { margin: 4px 0 5px; font-size: clamp(27px,3vw,38px); }
.commercial-hero p { margin: 0; color: var(--muted); }
.commercial-hero-actions { display: flex; gap: 9px; flex-wrap: wrap; justify-content: flex-end; }
.commercial-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; }
.commercial-kpis article { background: white; border: 1px solid var(--line); border-radius: 15px; padding: 17px; display: flex; gap: 13px; min-width: 0; box-shadow: 0 8px 24px rgba(31,37,32,.045); }
.commercial-kpis article > div:last-child { min-width: 0; display: grid; gap: 3px; }
.commercial-kpis small { color: var(--muted); font-size: 11px; }
.commercial-kpis strong { font-size: 22px; overflow-wrap: anywhere; }
.commercial-kpis span { color: #338253; font-size: 10px; }
.kpi-icon { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; font-weight: 900; flex: 0 0 auto; }
.kpi-blue { background:#e8f1ff;color:#1768e5 }.kpi-orange{background:#fff2df;color:#df8612}.kpi-green{background:#e5f7eb;color:#24924d}.kpi-red{background:#ffe9e7;color:#d44135}
.commercial-dashboard-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(300px,.75fr); gap: 16px; }
.commercial-dashboard-grid .panel { margin: 0; }
.commercial-funnel { display: grid; gap: 7px; align-items: center; padding: 7px 4px 3px; }
.commercial-funnel div { width: var(--w); max-width: 100%; min-width: 230px; justify-self: center; display: flex; justify-content: space-between; padding: 10px 18px; color: white; background: linear-gradient(90deg,#1d6fec,#40a27c); clip-path: polygon(6% 0,94% 0,100% 50%,94% 100%,6% 100%,0 50%); }
.commercial-funnel div:nth-child(2){background:linear-gradient(90deg,#347de7,#3d9ec0)}.commercial-funnel div:nth-child(3){background:linear-gradient(90deg,#3a91cc,#46a679)}.commercial-funnel div:nth-child(4){background:linear-gradient(90deg,#df9b2c,#55a86f)}.commercial-funnel div:nth-child(5){background:linear-gradient(90deg,#35a66b,#208c55)}
.commercial-funnel span { font-size: 11px; font-weight: 700; }.commercial-funnel strong{font-size:13px}
.commercial-health-card { display: grid; align-content: start; }
.capacity-donut { --value:0; width: 164px; aspect-ratio:1; margin: 4px auto 14px; border-radius:50%; display:grid; place-items:center; background: conic-gradient(#239452 calc(var(--value)*1%),#edf1ed 0); position:relative; }
.capacity-donut::before { content:""; position:absolute; inset:18px; background:white; border-radius:50%; }
.capacity-donut div { position:relative; z-index:1; display:grid; text-align:center; }.capacity-donut strong{font-size:29px}.capacity-donut span{font-size:11px;color:var(--muted)}
.capacity-legend { display:grid; gap:8px; }.capacity-legend>div{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;font-size:12px}.capacity-legend i{width:8px;height:8px;border-radius:50%}.dot-green{background:#239452}.dot-red{background:#d8483e}
.commercial-warning { margin-top:14px; padding:10px 11px; border-radius:9px; background:#fff0ee; color:#aa3029; font-size:11px; }
.commercial-card-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px; }
.menu-capacity-card { border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;display:grid;gap:7px;min-width:0;transition:.18s ease; }
.menu-capacity-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(27,34,28,.08)}.menu-capacity-card.is-critical{border-color:#efc0bc}.menu-capacity-card.is-warning{border-color:#ead29c}
.menu-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.menu-card-placeholder{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#e3eee6,#c7dacb);display:grid;place-items:center;color:#386147;font-size:20px;font-weight:900}
.menu-capacity-card>small{color:var(--muted);font-size:10px}.menu-capacity-card h3{margin:0;font-size:16px}.menu-card-numbers{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:5px 0}.menu-card-numbers div{background:#f6f8f5;border-radius:9px;padding:9px;display:grid;gap:3px}.menu-card-numbers span{font-size:9px;color:var(--muted)}.menu-card-numbers strong{font-size:12px}.menu-capacity-card>a{font-size:11px;font-weight:800;color:#1768e5}
.commercial-table table { min-width: 700px; }.commercial-table td,.commercial-table th{padding-top:13px;padding-bottom:13px}
.button.small { min-height: 34px; padding: 7px 11px; font-size: 11px; }

@media (max-width: 1280px){
  .topbar-compact { grid-template-columns:auto auto minmax(280px,1fr) auto; }
  .topbar-compact .user-dropdown-label { display:none; }
  .commercial-kpis{grid-template-columns:repeat(2,1fr)}
  .commercial-card-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 1050px){
  .topbar-compact .nav-links { display:flex; }
  .commercial-app-shell{grid-template-columns:1fr}.commercial-sidebar{position:static;min-height:auto;padding:10px}.commercial-sidebar-title,.commercial-sidebar-note{display:none}.commercial-sidebar nav{display:flex;overflow-x:auto;padding:0}.commercial-sidebar nav a{flex:0 0 auto}
}
@media (max-width: 760px){
  .topbar-compact { display:flex; min-height:64px; overflow:visible; }.topbar-compact .nav-links{display:none}.topbar-compact .brand{min-width:0;margin-right:auto}
  .commercial-hero{align-items:flex-start;flex-direction:column}.commercial-hero-actions{justify-content:flex-start;width:100%}.commercial-hero-actions .button{flex:1;text-align:center}
  .commercial-kpis,.commercial-dashboard-grid,.commercial-card-grid{grid-template-columns:1fr}.commercial-funnel div{min-width:190px}.page-shell{width:min(100% - 20px,1540px)}
}

/* V15.2 — Comercial, Financeiro e Contratos */
.input-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center}.input-action-row .btn{white-space:nowrap}.client-layout{align-items:start}.client-card-list{display:grid;gap:.7rem;max-height:72vh;overflow:auto;padding-right:.25rem}.finance-kpis{grid-template-columns:repeat(5,minmax(150px,1fr))}.finance-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-title-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--border-color,#e5e7eb)}.finance-title-row div{display:grid;gap:.2rem}.finance-title-row small{color:var(--muted,#64748b)}
@media(max-width:1100px){.finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-dashboard-grid{grid-template-columns:1fr}}@media(max-width:640px){.input-action-row{grid-template-columns:1fr}.finance-kpis{grid-template-columns:1fr}}

/* V15.3 — correção definitiva dos dashboards e cache visual */
.finance-app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}.finance-sidebar{position:sticky;top:96px;min-height:calc(100vh - 126px);border-radius:18px;padding:19px 13px;color:#eef5f0;background:linear-gradient(180deg,#10283a 0%,#0d2030 100%);box-shadow:0 18px 45px rgba(12,31,45,.16)}.finance-sidebar-title{display:grid;gap:4px;padding:4px 10px 17px;border-bottom:1px solid rgba(255,255,255,.12)}.finance-sidebar-title span{font-size:10px;letter-spacing:.16em;color:#9fb2bf}.finance-sidebar-title strong{font-size:16px}.finance-sidebar nav{display:grid;gap:5px;padding:14px 0}.finance-sidebar nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;color:#dbe7ec;border-radius:10px;font-size:13px;font-weight:700}.finance-sidebar nav a span{width:19px;text-align:center}.finance-sidebar nav a:hover,.finance-sidebar nav a.is-active{background:#1768e5;color:#fff;box-shadow:0 7px 18px rgba(23,104,229,.25)}.finance-sidebar-note{margin-top:12px;padding:13px;border-radius:12px;background:rgba(255,255,255,.07);display:grid;gap:5px}.finance-sidebar-note strong{font-size:12px}.finance-sidebar-note small{color:#aec0ca;font-size:10px;line-height:1.5}.finance-workspace{min-width:0;display:grid;gap:17px}.finance-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:4px 2px}.finance-hero h1{margin:4px 0 5px;font-size:clamp(27px,3vw,38px)}.finance-hero p{margin:0;color:var(--muted)}.finance-hero-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.finance-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.finance-summary-grid article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;display:flex;gap:13px;min-width:0;box-shadow:0 8px 24px rgba(31,37,32,.045)}.finance-summary-grid article>div:last-child{display:grid;gap:3px;min-width:0}.finance-summary-grid small{color:var(--muted);font-size:11px}.finance-summary-grid strong{font-size:21px;overflow-wrap:anywhere}.finance-summary-grid span{font-size:10px;color:#64748b}.finance-kpi-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.finance-kpi-icon.pay{background:#ffe9e7;color:#d44135}.finance-kpi-icon.receive{background:#e5f7eb;color:#24924d}.finance-kpi-icon.alert{background:#fff0ee;color:#c43128}.finance-kpi-icon.warning{background:#fff2df;color:#df8612}.finance-dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:16px}.finance-dashboard-main-grid .panel,.finance-list-grid .panel{margin:0}.finance-balance-value{display:grid;gap:4px;padding:12px 0 19px}.finance-balance-value span{font-size:11px;color:var(--muted)}.finance-balance-value strong{font-size:34px;color:#238a4d}.finance-balance-value.negative strong{color:#d44135}.finance-bars{display:grid;gap:16px}.finance-bars>div{display:grid;gap:7px}.finance-bars label{display:flex;justify-content:space-between;gap:12px;font-size:11px}.finance-bars i{height:12px;border-radius:99px;background:#edf1ed;overflow:hidden}.finance-bars b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1d8c4e,#4fb578)}.finance-bars .out b{background:linear-gradient(90deg,#dd493f,#f08a65)}.attention-list{display:grid;gap:10px;margin-bottom:15px}.attention-list div{display:flex;justify-content:space-between;gap:10px;padding:12px;border-radius:10px;background:#f7f8f6}.attention-list span{font-size:11px;color:var(--muted)}.attention-list strong{font-size:13px}.finance-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.finance-list{display:grid}.empty-state.compact{min-height:auto;padding:24px}.empty-state.compact span{color:var(--muted);font-size:11px}.responsive-table small{display:block;margin-top:3px;color:var(--muted);font-size:10px}

/* Evita que estilos básicos antigos desorganizem os cards quando o navegador usa cache parcial */
.commercial-app-shell,.finance-app-shell{width:100%}.commercial-workspace>* ,.finance-workspace>*{min-width:0}.commercial-kpis article,.finance-summary-grid article{box-sizing:border-box}.commercial-funnel div{box-sizing:border-box}.commercial-hero-actions a,.finance-hero-actions a{white-space:nowrap}

@media(max-width:1280px){.finance-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1050px){.finance-app-shell{grid-template-columns:1fr}.finance-sidebar{position:static;min-height:auto;padding:10px}.finance-sidebar-title,.finance-sidebar-note{display:none}.finance-sidebar nav{display:flex;overflow-x:auto;padding:0}.finance-sidebar nav a{flex:0 0 auto}}@media(max-width:760px){.finance-hero{align-items:flex-start;flex-direction:column}.finance-hero-actions{justify-content:flex-start;width:100%}.finance-hero-actions .button{flex:1;text-align:center}.finance-summary-grid,.finance-dashboard-main-grid,.finance-list-grid{grid-template-columns:1fr}}

/* V15.4 — proposta comercial institucional e linha do tempo */
.header-actions,.proposal-decision-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.proposal-public-shell{max-width:1180px;margin:0 auto;padding:24px}.proposal-brand-card{display:flex;align-items:center;gap:22px;background:linear-gradient(135deg,#153a32,#245f4d);color:#fff;border-radius:18px;padding:24px 28px;margin-bottom:20px;box-shadow:0 16px 40px rgba(20,48,40,.16)}.proposal-brand-card img{width:125px;max-height:65px;object-fit:contain;background:#fff;border-radius:10px;padding:8px}.proposal-brand-card h1{margin:4px 0}.proposal-brand-card p{margin:0;opacity:.9}.proposal-brand-card .status-badge{margin-left:auto;background:rgba(255,255,255,.16);padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800}.proposal-public-grid,.proposal-detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,.8fr);gap:20px}.proposal-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.proposal-info-grid div{border:1px solid #e7e3dd;border-radius:10px;padding:12px;background:#fbfaf8}.proposal-info-grid small{display:block;color:#746d65;margin-bottom:5px}.proposal-total{display:flex;justify-content:space-between;align-items:center;margin-top:15px;padding:16px 18px;background:#edf8f2;border-radius:10px}.proposal-total strong{font-size:24px;color:#176b4b}.proposal-conditions{margin-top:16px;padding:14px 16px;background:#f7f3ee;border-left:4px solid #8a9a82;border-radius:8px}.proposal-timeline{position:relative;padding-left:4px}.timeline-step{display:flex;gap:13px;position:relative;padding:0 0 24px}.timeline-step:not(:last-child):before{content:"";position:absolute;left:8px;top:17px;bottom:0;width:2px;background:#ddd}.timeline-step i{width:18px;height:18px;border-radius:50%;background:#d8d8d8;border:4px solid #f4f4f4;box-shadow:0 0 0 1px #ccc;flex:0 0 18px;z-index:1}.timeline-step.done i{background:#2b9b6c;box-shadow:0 0 0 1px #2b9b6c}.timeline-step.rejected i{background:#d95050;box-shadow:0 0 0 1px #d95050}.timeline-step strong,.timeline-step small{display:block}.timeline-step small{color:#777;margin-top:3px;line-height:1.35}.proposal-decision-card{margin-top:20px}.proposal-decision-form{display:grid;gap:14px}.proposal-decision-actions{justify-content:flex-end}.button.danger{background:#b84242;border-color:#b84242;color:#fff}.proposal-company-footer{text-align:center;color:#726c65;padding:22px;display:grid;gap:4px}.proposal-response-result{text-align:center;max-width:620px;margin:70px auto}.result-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;font-size:42px;color:#fff}.result-icon.approved{background:#289b6b}.result-icon.rejected{background:#c94b4b}.proposal-action-panel{margin-top:20px}
@media(max-width:900px){.proposal-public-grid,.proposal-detail-grid{grid-template-columns:1fr}.proposal-info-grid{grid-template-columns:1fr 1fr}.proposal-brand-card{align-items:flex-start;flex-wrap:wrap}.proposal-brand-card .status-badge{margin-left:0}}@media(max-width:620px){.proposal-public-shell{padding:12px}.proposal-info-grid{grid-template-columns:1fr}.proposal-brand-card{padding:18px}.proposal-brand-card img{width:105px}.proposal-decision-actions{display:grid;grid-template-columns:1fr}.proposal-decision-actions .button{width:100%}}

/* V15.5 — menu modular em duas linhas e dashboards executivos */
.topbar.topbar-compact.topbar-modular {
  display: grid;
  grid-template-columns: 205px auto minmax(0, 1fr) 46px auto;
  grid-template-rows: 64px 48px;
  align-items: center;
  gap: 0 10px;
  width: 100%;
  min-height: 112px;
  height: auto;
  padding: 0 18px;
  overflow: visible;
  border-bottom: 2px solid #171411;
  background: #fff;
  color: #211e1b;
}
.topbar-modular .brand { grid-column: 1; grid-row: 1; min-width: 0; gap: 9px; }
.topbar-modular .brand-logo { width: 82px; height: 50px; }
.topbar-modular .brand-system-name { font-size: 13px; white-space: nowrap; }
.topbar-modular .nav-toggle { grid-column: 2; grid-row: 1; }
.topbar-modular #main-navigation {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: visible;
}
.topbar-modular .primary-module-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 1 auto;
  min-width: 0;
  min-height: 40px;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #4b453f;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.topbar-modular .primary-module-link::after { display: none; }
.topbar-modular .primary-module-link:hover {
  border-color: #ddd5cc;
  background: #f5f1ec;
  color: #111;
}
.topbar-modular .primary-module-link.is-active {
  border-color: #1c1916;
  background: #171411;
  color: #fff;
  box-shadow: 0 6px 15px rgba(24,20,17,.14);
}
.topbar-modular .primary-module-link .nav-module-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 7px;
  background: #eee8e1;
  color: #4b433b;
}
.topbar-modular .primary-module-link.is-active .nav-module-icon { background: #fff; color: #111; }
.topbar-modular .notification-dropdown { grid-column: 4; grid-row: 1; }
.topbar-modular .user-dropdown { grid-column: 5; grid-row: 1; }
.topbar-modular .notification-dropdown > summary,
.topbar-modular .notification-trigger {
  width: 42px;
  height: 42px;
  border: 1px solid #ddd6ce;
  border-radius: 11px;
  background: #fff;
  color: #211e1b;
}
.topbar-modular .notification-dropdown > summary:hover,
.topbar-modular .notification-trigger:hover,
.topbar-modular .notification-dropdown.is-active > summary,
.topbar-modular .notification-dropdown.is-active .notification-trigger,
.topbar-modular .notification-dropdown.is-open .notification-trigger { background: #f3eee8; }
.topbar-modular .module-subnav {
  grid-column: 1 / -1;
  grid-row: 2;
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  height: 48px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 6px 2px 7px;
  border-top: 1px solid #eee8e1;
  scrollbar-width: thin;
  scrollbar-color: #c9c0b7 transparent;
}
.topbar-modular .module-subnav::-webkit-scrollbar { height: 3px; }
.topbar-modular .module-subnav::-webkit-scrollbar-thumb { background: #c9c0b7; border-radius: 99px; }
.module-subnav-title {
  display: grid;
  flex: 0 0 auto;
  min-width: 165px;
  padding: 0 14px 0 6px;
  border-right: 1px solid #ddd6ce;
  line-height: 1.15;
}
.module-subnav-title b { font-size: 12px; }
.module-subnav-title small { margin-top: 3px; color: #7a726a; font-size: 9px; }
.module-subnav a {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 32px;
  padding: 7px 11px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #5d5650;
  font-size: 11px;
  font-weight: 750;
  white-space: nowrap;
}
.module-subnav a::after { display: none; }
.module-subnav a:hover { border-color: #ddd6ce; background: #f5f1ec; color: #111; }
.module-subnav a.is-active { border-color: #cfc5ba; background: #ede7df; color: #111; }
.module-subnav a.subnav-action { color: #fff; background: #171411; }
.module-subnav a.subnav-action:hover,
.module-subnav a.subnav-action.is-active { border-color: #171411; background: #3b342e; color: #fff; }

.commercial-app-shell,
.finance-app-shell { display: block; width: 100%; }
.commercial-workspace,
.finance-workspace { width: 100%; }
.commercial-sidebar,
.finance-sidebar { display: none !important; }

.executive-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.executive-kpi {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  min-width: 0;
  padding: 15px;
  border: 1px solid #ded8d0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(37,31,26,.05);
}
.executive-kpi-icon {
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 11px;
  background: #eee8e0;
  color: #4f453c;
  font-size: 12px;
  font-weight: 900;
}
.executive-kpi > div { min-width: 0; display: grid; gap: 3px; }
.executive-kpi small { color: #716a63; font-size: 10px; font-weight: 700; }
.executive-kpi strong { overflow-wrap: anywhere; font-size: 18px; line-height: 1.15; }
.executive-kpi em { color: #817a73; font-size: 9px; font-style: normal; line-height: 1.35; }
.executive-kpi.is-warning { border-color: #e9cf9c; background: #fffaf1; }
.executive-kpi.is-warning .executive-kpi-icon { background: #fff0cf; color: #9b6411; }
.executive-kpi.is-danger { border-color: #e7bbb6; background: #fff8f7; }
.executive-kpi.is-danger .executive-kpi-icon { background: #fae3e0; color: #a8322d; }
.finance-filter-bar { grid-template-columns: minmax(240px, 2fr) minmax(180px, 1fr) auto; }
.finance-titles-table,
.finance-documents-table { min-width: 940px; }

@media (max-width: 1420px) {
  .topbar.topbar-compact.topbar-modular { grid-template-columns: 155px auto minmax(0,1fr) 46px 48px; padding-inline: 13px; }
  .topbar-modular .brand-system-name { display: none; }
  .topbar-modular .brand-logo { width: 88px; }
  .topbar-modular .primary-module-link { padding-inline: 8px; font-size: 11px; }
  .topbar-modular .user-dropdown-label { display: none; }
  .topbar-modular .user-dropdown > summary { min-width: 44px; }
  .executive-dashboard-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1180px) {
  .topbar.topbar-compact.topbar-modular {
    grid-template-columns: auto auto minmax(0,1fr) 46px 46px;
    grid-template-rows: 64px 46px;
    min-height: 110px;
  }
  .topbar-modular .brand { grid-column: 1; }
  .topbar-modular .nav-toggle { display: inline-flex; grid-column: 2; border-color: #d8d0c7; background: #f5f1ec; color: #211e1b; }
  .topbar-modular #main-navigation {
    display: none;
    position: fixed;
    z-index: 160;
    top: 68px;
    right: 12px;
    left: 12px;
    grid-template-columns: repeat(2, minmax(0,1fr));
    max-height: calc(100dvh - 90px);
    overflow-y: auto;
    padding: 12px;
    border: 1px solid #3b3631;
    border-radius: 14px;
    background: #171411;
    box-shadow: 0 20px 55px rgba(0,0,0,.3);
  }
  .topbar-modular #main-navigation.is-open { display: grid; }
  .topbar-modular .primary-module-link {
    width: 100%;
    min-height: 48px;
    justify-content: flex-start;
    border-color: rgba(255,255,255,.13);
    background: rgba(255,255,255,.04);
    color: #fff;
    font-size: 12px;
  }
  .topbar-modular .primary-module-link:hover,
  .topbar-modular .primary-module-link.is-active { border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.13); color: #fff; }
  .topbar-modular .primary-module-link .nav-module-icon,
  .topbar-modular .primary-module-link.is-active .nav-module-icon { background: rgba(255,255,255,.13); color: #fff; }
  .topbar-modular .notification-dropdown { grid-column: 4; }
  .topbar-modular .user-dropdown { grid-column: 5; }
  .module-subnav-title { min-width: 145px; }
}

@media (max-width: 760px) {
  .topbar.topbar-compact.topbar-modular {
    grid-template-columns: auto auto minmax(0,1fr) 42px 42px;
    grid-template-rows: 60px 44px;
    min-height: 104px;
    padding-inline: 10px;
    gap: 0 6px;
  }
  .topbar-modular .brand-logo { width: 74px; height: 45px; }
  .topbar-modular .nav-toggle { min-width: 42px; min-height: 40px; padding: 8px; }
  .topbar-modular .nav-toggle strong { display: none; }
  .topbar-modular .notification-dropdown > summary,
.topbar-modular .notification-trigger { width: 39px; height: 39px; }
  .topbar-modular .user-avatar { width: 31px; height: 31px; flex-basis: 31px; }
  .topbar-modular .user-dropdown > summary { min-width: 39px; padding: 3px; }
  .topbar-modular .module-subnav { height: 44px; padding-block: 5px; }
  .module-subnav-title { min-width: auto; padding-left: 3px; padding-right: 10px; }
  .module-subnav-title small { display: none; }
  .module-subnav a { min-height: 31px; padding: 6px 9px; font-size: 10px; }
  .topbar-modular #main-navigation { top: 62px; grid-template-columns: 1fr; }
  .executive-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-filter-bar { grid-template-columns: 1fr; }
  .mobile-bottom-nav { grid-template-columns: repeat(auto-fit, minmax(58px, 1fr)) !important; }
}

@media (max-width: 480px) {
  .executive-dashboard-grid { grid-template-columns: 1fr; }
  .topbar.topbar-compact.topbar-modular { grid-template-columns: auto auto minmax(0,1fr) 40px 40px; }
  .topbar-modular .brand-logo { width: 66px; }
}

/* V15.6 — financeiro operacional, comercial com margem e assinatura eletrônica */
.page-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 22px;
}
.page-heading h1 {
  margin: 4px 0 6px;
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.02;
  letter-spacing: -.035em;
}
.page-heading p { margin: 0; color: var(--muted); line-height: 1.45; }
.page-heading > div:first-child { min-width: 0; }
.page-heading .header-actions { justify-content: flex-end; }
.btn-danger { background: #b52e2a; color: #fff; box-shadow: 0 6px 16px rgba(181,46,42,.16); }
.btn-danger:hover { background: #8f211e; }
.btn-large { min-height: 48px; padding-inline: 21px; }
.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  padding: 6px 10px;
  border-radius: 999px;
  background: #eeeae5;
  color: #514a43;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
}
.status-success { background: #e3f4e9 !important; color: #247347 !important; }
.status-warning { background: #fff0cf !important; color: #8a5c10 !important; }
.status-danger { background: #fbe4e2 !important; color: #a5312d !important; }
.text-danger { color: #ad312c !important; }
.success-callout,.warning-callout,.danger-callout,.permission-callout {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid;
  line-height: 1.4;
}
.success-callout { background: #edf8f1; border-color: #bcdcc8; color: #225f3d; }
.warning-callout,.permission-callout { background: #fff8e9; border-color: #ead19b; color: #70501c; }
.danger-callout { background: #fff1ef; border-color: #e9b6b1; color: #8e2c28; }
.success-callout.large { padding: 18px 20px; }

/* Cabeçalho das solicitações: título e ações alinhados, sem quebra no desktop */
.request-detail-header {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 20px;
}
.request-detail-header h1 { white-space: nowrap; }
.request-header-actions { justify-content: flex-end; max-width: 720px; }
.request-header-actions form { margin: 0; }
.share-feedback { grid-column: 1 / -1; min-height: 0; }

/* Cadastro e consulta de clientes separados */
.client-list-toolbar { display: flex; justify-content: space-between; gap: 14px; align-items: end; margin-bottom: 16px; }
.client-code-badge { display: inline-flex; padding: 5px 8px; border-radius: 8px; background: #eee8e0; font-size: 10px; font-weight: 900; color: #51483f; }
.client-form-code-card { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 14px 16px; border: 1px dashed #c8bfb5; border-radius: 12px; background: #faf7f3; margin-bottom: 17px; }
.client-form-code-card strong { font-size: 18px; }

/* Construtor de proposta e margem em tempo real */
.proposal-builder-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 20px; align-items: start; }
.proposal-builder-main { min-width: 0; display: grid; gap: 18px; }
.proposal-builder-main .panel { margin: 0; }
.proposal-builder-layout .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.proposal-builder-layout .form-grid .full { grid-column: 1 / -1; }
.step-chip { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: #171411; color: #fff !important; font-weight: 900; }
.proposal-items-builder { display: grid; gap: 10px; }
.proposal-item-row {
  display: grid;
  grid-template-columns: minmax(190px,1.45fr) minmax(90px,.55fr) minmax(110px,.65fr) minmax(190px,1fr) 38px;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid #e1dbd4;
  border-radius: 12px;
  background: #fbfaf8;
}
.proposal-item-insight { min-height: 44px; display: grid; align-content: center; gap: 2px; padding: 8px 10px; border-radius: 9px; background: #f0ece7; }
.proposal-item-insight strong,.proposal-item-insight span { display: block; font-size: 11px; }
.proposal-item-insight span { color: var(--muted); }
.icon-action { width: 38px; height: 42px; border: 0; border-radius: 9px; font-size: 20px; font-weight: 900; }
.icon-action.danger { background: #fbe8e6; color: #a8322d; }
.add-proposal-row { margin-top: 12px; }
.adjustment-request-panel { border-color: #e3d1a7; background: linear-gradient(180deg,#fffdf7,#fff); }
.adjustment-request-panel.is-manager { border-color: #bdd9c7; background: linear-gradient(180deg,#f7fcf9,#fff); }
.proposal-submit-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.proposal-margin-sidebar { position: sticky; top: 128px; }
.proposal-margin-card { margin: 0 !important; }
.proposal-margin-card h2 { margin: 5px 0 18px; }
.margin-gauge {
  --margin: 0;
  width: 154px;
  height: 154px;
  margin: 0 auto 20px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: conic-gradient(#2b8d55 calc(var(--margin) * 1%), #ebe6df 0);
  position: relative;
}
.margin-gauge::before { content:""; position:absolute; inset:13px; border-radius:50%; background:#fff; }
.margin-gauge > * { position: relative; z-index:1; }
.margin-gauge strong { display:block; text-align:center; font-size:28px; }
.margin-gauge span { display:block; color:var(--muted); font-size:10px; text-align:center; }
.proposal-live-values { display:grid; gap:9px; }
.proposal-live-values > div { display:flex; justify-content:space-between; gap:12px; padding-bottom:8px; border-bottom:1px solid #eee8e1; }
.proposal-live-values span { color:var(--muted); font-size:11px; }
.proposal-live-values strong { font-size:12px; text-align:right; }
.proposal-live-values .total { padding:12px; border:0; border-radius:10px; background:#171411; color:#fff; }
.proposal-live-values .total span { color:#d7d0c9; }
.margin-status { display:grid; gap:3px; margin-top:14px; padding:11px 12px; border-radius:10px; background:#f4f1ec; }
.margin-status span { color:var(--muted); font-size:10px; }
.margin-status.is-good { background:#e8f5ed; color:#246c43; }
.margin-status.is-warning { background:#fff3da; color:#855a12; }
.margin-status.is-danger { background:#fbe8e6; color:#9b302b; }
.capacity-summary { margin-top:14px; padding-top:14px; border-top:1px solid #e5dfd8; }
.capacity-summary span { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.capacity-summary p { margin:5px 0 0; font-size:11px; line-height:1.45; }

/* Detalhe da proposta, ajustes e contrato */
.proposal-detail-heading h1 { overflow-wrap:anywhere; }
.proposal-header-actions form { margin:0; }
.proposal-metric-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.proposal-metric-grid .metric-card strong { font-size:24px; }
.margin-metric.is-success { border-color:#bad9c5; background:#f5fbf7; }
.margin-metric.is-warning { border-color:#ebd09a; background:#fffaf0; }
.margin-metric.is-danger { border-color:#e7b9b4; background:#fff7f6; }
.metric-status-text { font-size:18px !important; line-height:1.25; }
.proposal-commercial-summary { margin-bottom:18px; }
.payment-schedule-preview { display:grid; gap:8px; margin-top:16px; padding:13px 15px; border-radius:11px; background:#f5f1ec; }
.payment-schedule-preview > div { display:flex; flex-wrap:wrap; gap:7px; }
.payment-schedule-preview span { padding:6px 9px; border-radius:8px; background:#fff; border:1px solid #e2dbd3; font-size:10px; }
.commercial-adjustment-panel { margin-top:18px; }
.adjustment-request-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.adjustment-request-summary > div { display:grid; gap:4px; padding:12px; border-radius:10px; background:#f7f4ef; }
.adjustment-request-summary span { color:var(--muted); font-size:10px; }
.adjustment-request-summary p { grid-column:1 / -1; margin:0; padding:11px 13px; border-left:3px solid #d7c5a2; background:#fffaf1; }
.adjustment-decision-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:end; }
.adjustment-decision-form .full { grid-column:1 / -1; }
.action-explanation { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px; border:1px solid #ddd6ce; border-radius:12px; background:#fbfaf8; }
.action-explanation p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.action-number { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:#171411; color:#fff; font-weight:900; }
.action-link-box { display:flex; align-items:end; gap:10px; margin-top:14px; padding:14px; border:1px solid #dcd5cd; border-radius:12px; background:#f7f4ef; }
.action-link-box > div { min-width:0; flex:1; }
.action-link-box strong { display:block; margin-bottom:7px; }
.contract-action-card,.signature-evidence-card { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:15px; border:1px solid #d9d2ca; border-radius:12px; background:#fff; }
.contract-action-card > div:first-child,.signature-evidence-card > div:first-child { display:flex; gap:12px; align-items:center; min-width:0; }
.contract-icon,.signature-evidence-card > div:first-child > span { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:12px; background:#171411; color:#fff; font-size:20px; }
.contract-action-card p,.signature-evidence-card p { margin:3px 0; color:var(--muted); font-size:11px; }
.signature-evidence-card { background:#f2faf5; border-color:#badbc7; }
.signature-evidence-card > div:first-child > span { background:#2b8d55; }

/* Página pública de assinatura eletrônica */
.contract-sign-shell { max-width:1040px; margin:24px auto; padding:0 18px; }
.contract-sign-hero { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:22px; border-radius:18px; background:linear-gradient(135deg,#171411,#514337); color:#fff; box-shadow:0 16px 38px rgba(30,24,20,.18); }
.contract-sign-hero img { width:120px; max-height:68px; object-fit:contain; padding:7px; border-radius:10px; background:#fff; }
.contract-sign-hero h1 { margin:5px 0; font-size:clamp(23px,3vw,35px); }
.contract-sign-hero p { margin:0; color:#ded6ce; }
.contract-sign-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:18px; margin-top:18px; }
.contract-summary-card,.contract-sign-form-card { margin:0 !important; }
.contract-sign-form { display:grid; gap:12px; }
.contract-sign-form .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.contract-sign-form .full { grid-column:1 / -1; }
.contract-consent { display:grid; gap:9px; padding:13px; border:1px solid #e0d8d0; border-radius:11px; background:#faf8f5; }
.contract-consent label { display:flex; grid-template-columns:none; align-items:flex-start; gap:9px; font-weight:650; line-height:1.4; }
.contract-consent input { width:auto; margin-top:3px; }
.evidence-note { padding:12px 14px; border-radius:10px; background:#f1f5f2; color:#506057; font-size:11px; line-height:1.5; }

/* Contas a pagar e a receber */
.finance-section-heading { margin-bottom:16px; }
.finance-ledger-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:14px; }
.finance-ledger-tabs a { display:flex; align-items:center; gap:10px; padding:13px 14px; border:1px solid #ded7cf; border-radius:12px; background:#fff; }
.finance-ledger-tabs a > span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:#eee8e0; font-weight:900; }
.finance-ledger-tabs a > strong { font-size:12px; }
.finance-ledger-tabs a > small { margin-left:auto; color:var(--muted); font-size:9px; }
.finance-ledger-tabs a.is-active { border-color:#171411; background:#171411; color:#fff; }
.finance-ledger-tabs a.is-active > span { background:#fff; color:#171411; }
.finance-ledger-tabs a.is-active > small { color:#d6cec6; }
.finance-ledger-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:11px; margin-bottom:14px; }
.finance-ledger-metrics article { display:grid; gap:4px; padding:0; border:1px solid #ded7cf; border-radius:12px; background:#fff; overflow:hidden; }
.finance-metric-link { display:grid; gap:4px; min-height:100%; padding:14px; color:inherit; text-decoration:none; }
.finance-metric-link:hover { background:rgba(74,55,42,.035); }
.finance-ledger-metrics small,.finance-ledger-metrics span { color:var(--muted); font-size:10px; }
.finance-ledger-metrics strong { font-size:20px; overflow-wrap:anywhere; }
.finance-ledger-metrics .is-danger { background:#fff7f6; border-color:#e8bbb6; }
.finance-ledger-metrics .is-warning { background:#fffaf0; border-color:#ead09b; }
.finance-ledger-metrics .is-success { background:#f4fbf6; border-color:#bddbc8; }
.finance-ledger-filter,.finance-ledger-panel { margin-top:0 !important; }
.finance-ledger-filter { margin-bottom:14px; }
.finance-ledger-filter .filter-bar { grid-template-columns:minmax(240px,2fr) minmax(170px,.8fr) auto; margin:0; }
.finance-ledger-table { min-width:1120px; }
.finance-ledger-table tr.is-overdue { background:#fff7f6; }
.finance-ledger-table tr.is-due-soon { background:#fffdf7; }
.finance-ledger-table tr.is-settled { background:#f7fbf8; opacity:.92; }
.due-date-cell,.finance-ledger-table td:nth-child(2) { display:grid; gap:2px; }
.installment-badge { display:inline-flex; padding:5px 8px; border-radius:8px; background:#f0ece7; font-size:10px; font-weight:850; }
.barcode-preview { max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ledger-amount { white-space:nowrap; }
.remaining-value { color:#9a5c11 !important; font-weight:800; }
.ledger-reference { display:inline-block; margin-top:5px; color:#6f5d4b; font-size:10px; font-weight:800; }
.ledger-result-count { padding:5px 9px; border-radius:999px; background:#eee8e0; }
.ledger-action-menu { position:relative; }
.ledger-action-menu > summary { list-style:none; white-space:nowrap; }
.ledger-action-menu > summary::-webkit-details-marker { display:none; }
.ledger-action-menu[open] > summary { background:#5d5042; }
.ledger-settlement-form {
  position:absolute;
  z-index:20;
  right:0;
  top:calc(100% + 7px);
  width:360px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:15px;
  border:1px solid #cfc6bc;
  border-radius:13px;
  background:#fff;
  box-shadow:0 18px 48px rgba(34,28,23,.2);
}
.ledger-settlement-form .full,.settlement-form-head { grid-column:1 / -1; }
.settlement-form-head { display:flex; justify-content:space-between; gap:10px; padding-bottom:9px; border-bottom:1px solid #eee8e1; }
.settlement-form-head span { color:var(--muted); font-size:10px; }
.ledger-settlement-form label small { color:var(--muted); font-size:9px; font-weight:500; }
.settlement-actions { display:flex; justify-content:flex-end; }
.settled-action-cell { display:grid; gap:7px; }
.settled-action-cell > strong { color:#247347; }
.reopen-action > summary { color:#a8322d; font-size:10px; font-weight:800; cursor:pointer; }
.reopen-action form { display:grid; gap:8px; margin-top:8px; padding:10px; border:1px solid #ebc0bc; border-radius:10px; background:#fff7f6; }
.permission-label { color:var(--muted); font-size:10px; font-weight:750; }
.finance-empty-state span { display:block; font-size:30px; color:#2b8d55; }

/* Dashboard Comercial: condições de pagamento */
.commercial-payment-dashboard { margin-top:0 !important; }
.payment-terms-dashboard-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.payment-terms-dashboard-grid article { display:flex; gap:10px; align-items:center; padding:12px; border:1px solid #e1dad2; border-radius:11px; background:#faf8f5; }
.payment-terms-dashboard-grid article > span { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:10px; background:#171411; color:#fff; font-weight:900; }
.payment-terms-dashboard-grid strong,.payment-terms-dashboard-grid small { display:block; }
.payment-terms-dashboard-grid small { color:var(--muted); font-size:9px; }

@media (max-width: 1180px) {
  .proposal-builder-layout { grid-template-columns:1fr; }
  .proposal-margin-sidebar { position:static; }
  .proposal-margin-card { display:grid; grid-template-columns:180px minmax(0,1fr); gap:16px; align-items:center; }
  .proposal-margin-card > .eyebrow,.proposal-margin-card > h2 { grid-column:1 / -1; }
  .finance-ledger-metrics,.proposal-metric-grid,.payment-terms-dashboard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .page-heading,.request-detail-header { display:flex; flex-direction:column; align-items:stretch; }
  .request-detail-header h1 { white-space:normal; }
  .request-header-actions,.page-heading .header-actions { justify-content:flex-start; max-width:none; }
  .proposal-builder-layout .form-grid,.contract-sign-form .form-grid { grid-template-columns:1fr; }
  .proposal-builder-layout .form-grid .full,.contract-sign-form .full { grid-column:auto; }
  .proposal-item-row { grid-template-columns:1fr 1fr; }
  .proposal-item-product,.proposal-item-insight { grid-column:1 / -1; }
  .proposal-item-row .icon-action { width:100%; }
  .contract-sign-grid { grid-template-columns:1fr; }
  .action-explanation { grid-template-columns:42px minmax(0,1fr); }
  .action-explanation form { grid-column:1 / -1; }
  .action-explanation .btn { width:100%; }
  .finance-ledger-tabs { grid-template-columns:1fr; }
  .finance-ledger-filter .filter-bar { grid-template-columns:1fr; }
  .ledger-settlement-form { position:fixed; left:12px; right:12px; top:auto; bottom:12px; width:auto; max-height:80vh; overflow:auto; }
}
@media (max-width: 640px) {
  .page-heading h1 { font-size:29px; }
  .proposal-margin-card { display:block; }
  .proposal-item-row { grid-template-columns:1fr; }
  .proposal-item-product,.proposal-item-insight { grid-column:auto; }
  .finance-ledger-metrics,.proposal-metric-grid,.payment-terms-dashboard-grid { grid-template-columns:1fr; }
  .adjustment-request-summary,.adjustment-decision-form { grid-template-columns:1fr; }
  .adjustment-request-summary p,.adjustment-decision-form .full { grid-column:auto; }
  .action-link-box,.contract-action-card,.signature-evidence-card,.contract-sign-hero { align-items:stretch; flex-direction:column; }
  .contract-sign-hero img { width:100px; }
  .proposal-submit-actions { display:grid; grid-template-columns:1fr; }
  .ledger-settlement-form { grid-template-columns:1fr; }
  .ledger-settlement-form .full,.settlement-form-head { grid-column:auto; }
}

/* Complementos visuais V15.6 */
.client-filter-panel .filter-bar { grid-template-columns:minmax(260px,2fr) minmax(180px,.7fr) auto; margin:0; }
.client-table table { min-width:1080px; }
.client-code-preview { display:inline-flex; padding:7px 10px; border-radius:9px; background:#171411; color:#fff !important; font-weight:900; }
.commercial-client-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
.commercial-client-form .full { grid-column:1 / -1; }
.input-with-action { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.input-with-action .btn { white-space:nowrap; }
.field-feedback { min-height:15px; color:#6f5d4b; font-size:10px; font-weight:600; }
.table-row-actions { display:flex; align-items:center; gap:8px; }
.table-row-actions form { margin:0; }
.table-delete-action { width:32px; height:32px; display:grid; place-items:center; border:0; border-radius:8px; background:#fbe8e6; color:#a8322d; }
.table-delete-action:hover { background:#efd0cc; }

.contract-brand-card { margin-bottom:18px; }
.contract-already-signed { text-align:center; max-width:680px; margin:30px auto !important; }
.contract-version-note { display:grid; gap:3px; padding:12px 14px; border-left:4px solid #8a7964; border-radius:8px; background:#f7f3ee; }
.contract-version-note span { color:var(--muted); font-size:11px; }
.document-check-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.document-check-grid article { display:grid; gap:5px; padding:13px; border:1px solid #e1dad2; border-radius:11px; background:#faf8f5; }
.document-check-grid article > span { width:29px; height:29px; display:grid; place-items:center; border-radius:9px; background:#171411; color:#fff; font-weight:900; }
.document-check-grid p { margin:0; color:var(--muted); font-size:10px; line-height:1.45; }
.contract-sign-form { align-self:start; position:sticky; top:128px; }
.secure-chip { padding:5px 8px; border-radius:999px; background:#e8f5ed; color:#246c43 !important; font-size:9px !important; font-weight:850; }
.contract-upload-field { display:grid; gap:5px; padding:11px; border:1px dashed #cfc5ba; border-radius:10px; background:#faf8f5; }
.contract-upload-field input { padding:8px; background:#fff; }
.contract-upload-field small { color:var(--muted); font-size:9px; }
.contract-consent-check { display:flex; align-items:flex-start; gap:9px; padding:11px; border:1px solid #ded7cf; border-radius:10px; background:#f7f4ef; line-height:1.4; font-weight:650; }
.contract-consent-check input { width:auto; margin-top:3px; flex:0 0 auto; }
.contract-sign-submit { width:100%; min-height:48px; background:#171411; color:#fff; border:0; border-radius:10px; font-weight:850; }
.contract-sign-submit:hover { background:#3d342c; }
.contract-privacy-note { margin:0; color:var(--muted); font-size:9px; text-align:center; line-height:1.45; }

@media(max-width:900px){
  .client-filter-panel .filter-bar,.commercial-client-form { grid-template-columns:1fr; }
  .commercial-client-form .full { grid-column:auto; }
  .document-check-grid { grid-template-columns:1fr; }
  .contract-sign-form { position:static; }
}
@media(max-width:560px){
  .input-with-action { grid-template-columns:1fr; }
}
.proposal-info-grid strong,.proposal-info-grid span { display:block; overflow-wrap:anywhere; }
.proposal-info-grid span { margin-top:3px; color:var(--muted); font-size:10px; }

/* V15.7 · captura de fotos de produtos e documentos em celular */
.mobile-photo-picker { display:grid; gap:10px; }
.photo-picker-label { font-size:12px; font-weight:850; color:var(--text); }
.photo-picker-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.photo-action-card { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:9px; row-gap:2px; align-items:center; min-height:76px; padding:13px; border:1px solid #d9d0c7; border-radius:12px; background:#fff; cursor:pointer; font-size:22px; transition:.16s ease; }
.photo-action-card:hover,.photo-action-card:focus-within { border-color:#74624f; box-shadow:0 5px 18px rgba(41,32,24,.09); transform:translateY(-1px); }
.photo-action-card strong { font-size:12px; line-height:1.25; }
.photo-action-card span { grid-column:2; color:var(--muted); font-size:9px; line-height:1.35; }
.photo-action-card input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.camera-action { background:#f4f8f2; border-color:#cfe2d0; }
.gallery-action { background:#f7f4ef; }
.photo-preview-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(74px,1fr)); gap:8px; }
.photo-preview-item { position:relative; aspect-ratio:1; overflow:hidden; border-radius:10px; border:1px solid #ded6cd; background:#f2eee9; }
.photo-preview-item img { width:100%; height:100%; object-fit:cover; display:block; }
.photo-preview-item span { position:absolute; left:4px; right:4px; bottom:4px; padding:3px 5px; border-radius:5px; background:rgba(18,16,14,.72); color:#fff; font-size:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mobile-contract-upload > span { font-size:11px; font-weight:800; }
.contract-mobile-upload-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.contract-mobile-upload-actions label { position:relative; display:flex; align-items:center; justify-content:center; min-height:42px; padding:9px; border:1px solid #d8d0c8; border-radius:9px; background:#fff; font-size:10px; font-weight:800; text-align:center; cursor:pointer; }
.contract-mobile-upload-actions label:hover { border-color:#756350; background:#f7f3ee; }
.contract-mobile-upload-actions input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.company-sign-action { border-color:#b9d9c2; background:#f1faf4; }

@media (max-width:640px) {
  .photo-picker-actions,.contract-mobile-upload-actions { grid-template-columns:1fr; }
  .photo-action-card { min-height:68px; }
  .photo-preview-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .mobile-photo-picker { margin-top:3px; }
}

/* V15.8 · responsividade mobile, notificações e itens contratuais */
html, body { max-width: 100%; }
.page-shell, .panel, .request-form, .product-detail-layout, .catalog-layout-v13,
.contract-form, .table-wrap, .po-selectable-items, .product-edit-form,
.catalog-create-form, fieldset { min-width: 0; max-width: 100%; }
.notification-trigger { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.notification-dropdown.is-open .notification-dropdown-panel { display: block; }
.contract-items-table, .contract-balance-table { min-width: 860px; }
.contract-total-card { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:14px; padding:15px 17px; border:1px solid #d8d0c7; border-radius:12px; background:#171411; color:#fff; }
.contract-total-card span, .contract-total-card small { display:block; }
.contract-total-card strong { margin-left:auto; font-size:22px; white-space:nowrap; }
.contract-total-card small { max-width:340px; color:#d8d1ca; font-size:10px; line-height:1.35; }
.contract-items-table input { min-width:130px; }

@media (max-width: 760px) {
  html, body { overflow-x: hidden; }
  .page-shell { width: calc(100% - 16px); margin: 16px auto 80px; }
  .panel { padding: 14px; border-radius: 12px; }
  .page-header, .page-header.compact { align-items: stretch; flex-direction: column; gap: 14px; }
  .page-header .button-group, .page-header .header-actions { display:grid; grid-template-columns:1fr; width:100%; }
  .page-header .btn, .form-actions .btn { width:100%; }
  .form-actions { position:static; display:grid; grid-template-columns:1fr; padding:12px; }
  .form-actions .notice { margin:0; max-width:none; }
  .summary-grid, .form-grid.two, .form-grid.three, .form-grid.four, .form-grid.five,
  .form-grid.two-columns, .form-grid.three-columns { grid-template-columns:1fr !important; }
  .catalog-layout-v13, .product-detail-layout { display:flex; flex-direction:column; width:100%; }
  .catalog-list-panel, .catalog-create-panel, .product-gallery-panel, .product-cost-panel, .product-edit-panel { width:100%; min-width:0; }
  .catalog-create-panel { position:static; max-height:none; overflow:visible; }
  .catalog-create-form fieldset, .product-edit-form fieldset { width:100%; min-width:0; padding:10px; }
  input, select, textarea, input[type="file"] { max-width:100%; min-width:0; }
  input[type="file"] { padding:8px; font-size:12px; overflow:hidden; }
  .photo-action-card { width:100%; min-width:0; }
  .photo-action-card strong, .photo-action-card span { min-width:0; overflow-wrap:anywhere; }

  .po-items-table.po-selectable-items { display:block; min-width:0; width:100%; }
  .po-items-table.po-selectable-items thead { display:none; }
  .po-items-table.po-selectable-items tbody { display:grid; gap:12px; width:100%; }
  .po-items-table.po-selectable-items tr { display:grid; gap:0; width:100%; padding:12px; border:1px solid #ddd5cc; border-radius:12px; background:#fff; box-shadow:0 4px 14px rgba(38,31,25,.05); }
  .po-items-table.po-selectable-items tr.po-item-not-selected { opacity:.82; }
  .po-items-table.po-selectable-items td,
  .po-items-table.po-selectable-items td:first-child { display:grid; grid-template-columns:minmax(92px, .42fr) minmax(0, 1fr); gap:10px; align-items:center; width:100%; min-width:0; padding:9px 0; border-bottom:1px solid #eee8e1; }
  .po-items-table.po-selectable-items td:last-child { border-bottom:0; }
  .po-items-table.po-selectable-items td::before { content:attr(data-label); color:#746d66; font-size:10px; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
  .po-items-table.po-selectable-items td > * { min-width:0; }
  .po-items-table.po-selectable-items input { width:100%; min-width:0; }
  .po-items-table.po-selectable-items .po-item-check { width:100%; }
  .po-items-wrap { overflow:visible; }

  .contract-items-wrap, .contract-balance-wrap { overflow:visible; }
  .contract-items-table, .contract-balance-table { display:block; min-width:0; width:100%; }
  .contract-items-table thead, .contract-balance-table thead { display:none; }
  .contract-items-table tbody, .contract-balance-table tbody { display:grid; gap:12px; }
  .contract-items-table tr, .contract-balance-table tr { display:grid; width:100%; padding:12px; border:1px solid #ddd5cc; border-radius:12px; background:#fff; }
  .contract-items-table td, .contract-balance-table td { display:grid; grid-template-columns:minmax(100px,.45fr) minmax(0,1fr); gap:10px; align-items:center; width:100%; min-width:0; padding:8px 0; border-bottom:1px solid #eee8e1; }
  .contract-items-table td:last-child, .contract-balance-table td:last-child { border-bottom:0; }
  .contract-items-table td::before, .contract-balance-table td::before { content:attr(data-label); color:#746d66; font-size:10px; font-weight:850; text-transform:uppercase; }
  .contract-items-table input { width:100%; min-width:0; }
  .contract-total-card { align-items:flex-start; flex-direction:column; }
  .contract-total-card strong { margin:0; }

  .notification-dropdown-panel { position:fixed !important; z-index:999; top:64px !important; right:8px !important; left:8px !important; width:auto !important; max-height:calc(100dvh - 78px) !important; overflow:hidden; }
  .notification-preview-list { max-height:calc(100dvh - 195px) !important; overflow:auto; -webkit-overflow-scrolling:touch; }
  .notification-dropdown-head { align-items:flex-start; }
  .notification-dropdown-head a { display:inline-flex; min-height:38px; align-items:center; padding:0 6px; }
  .notification-all-link { min-height:44px; display:flex; align-items:center; justify-content:center; }
}

@media (max-width: 430px) {
  .page-shell { width: calc(100% - 12px); }
  .panel { padding:12px; }
  .po-items-table.po-selectable-items td,
  .contract-items-table td, .contract-balance-table td { grid-template-columns:1fr; gap:4px; }
  .po-items-table.po-selectable-items td::before,
  .contract-items-table td::before, .contract-balance-table td::before { margin-bottom:2px; }
}

/* V15.9 · propostas, sino nativo e validação de notas fiscais */
.notification-dropdown > summary.notification-trigger { -webkit-user-select:none; user-select:none; }
.notification-dropdown[open] > summary.notification-trigger { background:#f3eee8; }
.notification-dropdown[open] .notification-dropdown-panel { display:block; }

.fiscal-document-form { max-width:1180px; margin:0 auto; }
.form-span-2 { grid-column:span 2; }
.input-action-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.input-action-row .btn { min-height:44px; white-space:nowrap; }
.nfe-key-result { margin-top:14px; padding:13px 15px; border:1px solid #d8d1c9; border-radius:11px; line-height:1.45; background:#f8f6f3; }
.nfe-key-result strong,.nfe-key-result small { display:block; }
.nfe-key-result small { margin-top:5px; color:#706961; }
.nfe-key-result.is-success { border-color:#b8d9c3; background:#f0f8f2; }
.nfe-key-result.is-warning { border-color:#e2c995; background:#fff8e9; }
.nfe-key-result.is-danger { border-color:#e2aaa7; background:#fff1f0; }
.fiscal-upload-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.fiscal-upload-card { position:relative; display:flex; flex-direction:column; justify-content:center; min-height:116px; padding:18px; border:1px dashed #c9bdb1; border-radius:12px; background:#faf8f5; cursor:pointer; }
.fiscal-upload-card strong { font-size:15px; }
.fiscal-upload-card span { margin:5px 0 12px; color:#6f6861; font-size:12px; line-height:1.45; }
.fiscal-upload-card input { width:100%; }
.nfe-preview-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.nfe-preview-meta span { padding:7px 10px; border-radius:8px; background:#f5f2ee; font-size:12px; }
.nfe-preview-table { min-width:760px; }
.fiscal-comparison-box { margin-top:13px; padding:13px 15px; border:1px solid #d8d1c9; border-radius:11px; line-height:1.5; }
.fiscal-comparison-box ul { margin:8px 0 0; padding-left:20px; }
.fiscal-comparison-box.is-success { border-color:#b8d9c3; background:#f0f8f2; }
.fiscal-comparison-box.is-warning { border-color:#e2c995; background:#fff8e9; }
.fiscal-comparison-box.is-danger { border-color:#e2aaa7; background:#fff1f0; }
.fiscal-form-actions { display:flex; justify-content:flex-end; gap:10px; }
.fiscal-approval-alert { margin-bottom:14px; }
.fiscal-detail-layout .detail-main { min-width:0; }
.break-value { overflow-wrap:anywhere; word-break:break-word; font-size:11px !important; }
.fiscal-mismatch-summary,.fiscal-approval-notes { margin-top:14px; padding:13px 15px; border-radius:11px; }
.fiscal-mismatch-summary { border:1px solid #e2aaa7; background:#fff1f0; }
.fiscal-approval-notes { border:1px solid #b8d9c3; background:#f0f8f2; }
.fiscal-mismatch-summary strong,.fiscal-approval-notes strong { display:block; margin-bottom:6px; }
.fiscal-items-table { min-width:940px; }
.fiscal-items-table td:first-child strong,.fiscal-items-table td:first-child small { display:block; }
.fiscal-items-table td:first-child small { color:#746d66; margin-top:3px; }
.fiscal-items-table tr.is-divergent { background:#fff3f1; }
.fiscal-items-table input { min-width:100px; width:100%; }
.fiscal-manager-decision { border-top:4px solid #b12f29; }
.status-pill.is-danger { background:#fae5e3; color:#982b26; }
.status-pill.is-success { background:#e5f3e8; color:#24643b; }

@media (max-width:760px) {
  .form-span-2 { grid-column:span 1; }
  .input-action-row { grid-template-columns:1fr; }
  .fiscal-upload-grid { grid-template-columns:1fr; }
  .fiscal-upload-card { min-height:100px; padding:14px; }
  .fiscal-form-actions { display:grid; grid-template-columns:1fr; }
  .fiscal-form-actions .btn { width:100%; }
  .fiscal-detail-layout { display:block; }
  .fiscal-detail-layout .detail-side { margin-top:14px; }
  .fiscal-items-table,.nfe-preview-table { min-width:760px; }
  .notification-dropdown[open] .notification-dropdown-panel { display:block !important; }
}

/* V16.0 — Orçamentos de serviços, reservas, scanner e fluxos responsivos */
.commercial-view-tabs{display:flex;gap:10px;align-items:stretch;margin:0 0 18px;overflow-x:auto;padding-bottom:3px}
.commercial-view-tabs a{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 16px;border:1px solid #ded7cf;border-radius:13px;background:#fff;color:#342d28;text-decoration:none;font-weight:750;white-space:nowrap}
.commercial-view-tabs a b{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:#eee8e1;font-size:.78rem}
.commercial-view-tabs a.is-active{border-color:#72513d;background:#f4eee8;color:#4f3326;box-shadow:0 5px 18px rgba(57,39,29,.08)}
.commercial-budget-hub{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}
.commercial-budget-hub>a{display:flex;gap:13px;align-items:center;padding:17px;border:1px solid #ded7cf;border-radius:16px;background:#fff;color:#302a26;text-decoration:none;box-shadow:0 7px 22px rgba(46,35,29,.05)}
.commercial-budget-hub>a>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#f3eee8;font-size:1.15rem}.commercial-budget-hub strong,.commercial-budget-hub small{display:block}.commercial-budget-hub small{margin-top:3px;color:#746d66}
.proposal-material-builder,.item-photo-list{display:grid;gap:12px}.proposal-material-row{display:grid;grid-template-columns:minmax(280px,2fr) minmax(130px,.6fr) minmax(190px,.8fr) 42px;gap:12px;align-items:end;padding:13px;border:1px solid #e4ddd5;border-radius:14px;background:#fcfaf8}.proposal-material-row label{margin:0}.material-availability{min-height:46px;display:flex;align-items:center;padding:10px 12px;border-radius:10px;background:#f1ede8;color:#5c554e;font-size:.9rem}.internal-only-banner{padding:12px 14px;margin-bottom:13px;border:1px solid #d9c9b7;border-radius:12px;background:#fff8eb;color:#644827;font-weight:650}.rates-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.rates-grid input{font-size:1.05rem}.profit-approval-warning{display:flex;gap:10px;align-items:flex-start;margin-top:15px;padding:13px 15px;border:1px solid #e2b68a;border-radius:12px;background:#fff4e7;color:#753c16}.profit-approval-warning strong,.profit-approval-warning span{display:block}.proposal-live-values .net-profit{padding-top:12px;border-top:1px solid #ddd2c7}.proposal-live-values .net-profit strong{font-size:1.18rem}.rates-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.rates-summary-grid>div{padding:14px;border:1px solid #e1dad2;border-radius:13px;background:#faf8f5}.rates-summary-grid span,.rates-summary-grid strong,.rates-summary-grid small{display:block}.rates-summary-grid strong{margin-top:4px;font-size:1.13rem}.rates-summary-grid small{margin-top:3px;color:#746d66}.rates-summary-grid .highlight{background:#f4eee8;border-color:#ccb9a8}.inline-approval-form{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:10px;align-items:end;margin-top:14px}.commercial-reservations-panel table small,.commercial-table table small{display:block;margin-top:3px;color:#746d66}.table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.table-actions form{margin:0}.table-action.danger{border:0;background:transparent;color:#aa2c27;cursor:pointer;font:inherit}.negotiation-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.negotiation-summary>div{padding:14px;border-radius:13px;background:#f7f3ef;border:1px solid #e1d9d0}.negotiation-summary span,.negotiation-summary strong{display:block}.negotiation-summary strong{margin-top:4px;font-size:1.1rem}.negotiation-timeline{display:grid;gap:10px}.negotiation-timeline article{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;padding:12px;border-left:3px solid #8a6650;background:#fbf9f7;border-radius:0 12px 12px 0}.negotiation-timeline article>span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#6b4b39;color:#fff;font-weight:800}.negotiation-timeline strong,.negotiation-timeline small{display:block}.negotiation-timeline small{margin-top:3px;color:#746d66}.negotiation-form{display:grid;grid-template-columns:180px 220px 1fr auto;gap:12px;align-items:end;margin-top:16px}.negotiation-form .full{grid-column:auto}.negotiation-finalize-form{display:flex;gap:12px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid #e6dfd7}.contract-stage-approval{border-color:#d8a96f;background:#fffaf3}.contract-stage-result{display:flex;gap:12px;align-items:center;margin:0 0 16px;padding:11px 15px;border:1px solid #d9d1c9;border-radius:12px;background:#f8f5f1}.contract-stage-result strong{padding:5px 9px;border-radius:999px;background:#ece5de}.item-photo-entry{padding:14px;border:1px solid #ded7cf;border-radius:15px;background:#fff}.item-photo-title{display:flex;gap:12px;align-items:center;margin-bottom:12px}.item-photo-title strong,.item-photo-title small{display:block}.item-photo-title small{margin-top:3px;color:#746d66}.item-photo-form{display:grid;grid-template-columns:160px minmax(220px,1fr) auto;gap:10px;align-items:end}.camera-file-action{position:relative;display:flex!important;align-items:center;justify-content:center;min-height:44px;padding:0 13px;border-radius:10px;background:#5c4437;color:#fff;font-weight:750;cursor:pointer}.camera-file-action input{position:absolute;inset:0;opacity:0;cursor:pointer}.process-photo-grid.compact{margin-top:12px}.barcode-scanner-dialog{width:min(560px,calc(100vw - 24px));padding:0;border:0;border-radius:18px;background:#171411;color:#fff;box-shadow:0 28px 90px rgba(0,0,0,.45)}.barcode-scanner-dialog::backdrop{background:rgba(11,9,8,.75);backdrop-filter:blur(3px)}.barcode-scanner-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:17px}.barcode-scanner-head strong,.barcode-scanner-head small{display:block}.barcode-scanner-head small{margin-top:4px;color:#cabfb7}.barcode-scanner-head button{width:38px;height:38px;border:0;border-radius:10px;background:#302a26;color:#fff;font-size:1.4rem;cursor:pointer}.barcode-video-frame{position:relative;aspect-ratio:4/3;overflow:hidden;background:#000}.barcode-video-frame video{width:100%;height:100%;object-fit:cover}.barcode-video-frame::after{content:"";position:absolute;inset:18% 7%;border:2px solid rgba(255,255,255,.85);border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.25)}.barcode-scan-line{position:absolute;z-index:2;left:9%;right:9%;top:50%;height:2px;background:#ff4d3d;box-shadow:0 0 10px #ff4d3d;animation:barcodeScan 1.8s ease-in-out infinite}@keyframes barcodeScan{0%,100%{transform:translateY(-90px)}50%{transform:translateY(90px)}}#barcode-scanner-status{padding:14px 17px;margin:0;color:#e8e0da}.barcode-scanner-actions{display:flex;justify-content:flex-end;gap:9px;padding:0 17px 17px}.input-action-row{flex-wrap:wrap}.input-action-row input{min-width:260px;flex:1}
.notification-dropdown-panel[hidden]{display:none!important}.notification-dropdown.is-open .notification-dropdown-panel:not([hidden]){display:block!important}.notification-trigger{font:inherit}
@media(max-width:1100px){.commercial-budget-hub{grid-template-columns:repeat(2,minmax(0,1fr))}.rates-grid,.rates-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.proposal-material-row{grid-template-columns:1fr 150px 1fr 42px}.negotiation-form{grid-template-columns:1fr 1fr}.negotiation-form .full{grid-column:1/-1}.negotiation-form button{grid-column:1/-1;justify-self:start}}
@media(max-width:720px){.commercial-budget-hub,.rates-grid,.rates-summary-grid,.negotiation-summary{grid-template-columns:1fr}.commercial-view-tabs{margin-inline:-4px}.proposal-builder-layout{display:block!important}.proposal-margin-sidebar{position:static!important;width:auto!important}.proposal-item-row,.proposal-material-row{grid-template-columns:1fr!important}.proposal-item-row .icon-action,.proposal-material-row .icon-action{justify-self:end}.material-availability{min-height:auto}.inline-approval-form,.item-photo-form{grid-template-columns:1fr}.negotiation-form{grid-template-columns:1fr}.negotiation-finalize-form{display:grid;grid-template-columns:1fr}.commercial-budget-filters{display:grid;grid-template-columns:1fr}.barcode-scanner-dialog{max-height:calc(100dvh - 18px)}.input-action-row{display:grid!important;grid-template-columns:1fr 1fr}.input-action-row input{grid-column:1/-1;min-width:0;width:100%}.fiscal-document-form,.fiscal-document-form .panel{max-width:100%;min-width:0;overflow:hidden}.nfe-preview-table{min-width:760px}.commercial-kpis{grid-template-columns:1fr!important}}

/* V16.1 — staff do orçamento e salvamento automático. */
.proposal-staff-builder { display:grid; gap:12px; }
.proposal-staff-row { display:grid; grid-template-columns:minmax(150px,1fr) 105px 120px minmax(145px,.8fr) minmax(145px,.8fr) minmax(220px,1.25fr) 42px; gap:10px; align-items:end; padding:14px; border:1px solid #e4ddd5; border-radius:14px; background:#fff; }
.proposal-staff-row label { min-width:0; }
.proposal-staff-row .staff-description { min-width:0; }
.proposal-staff-row .icon-action { margin-bottom:2px; }
.internal-staff-cost { background:#faf6f1; border-radius:10px; padding:8px; }
.proposal-autosave-status { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin:0 0 14px; padding:11px 13px; border:1px solid #ddd5cc; border-radius:12px; background:#faf8f5; color:#625b54; }
.proposal-autosave-status span { color:#c49338; font-size:12px; }
.proposal-autosave-status strong { color:#403a35; }
.proposal-autosave-status small { flex-basis:100%; margin-left:19px; }
.proposal-autosave-status[data-state="saved"] { border-color:#b8d8c1; background:#f1faf3; }
.proposal-autosave-status[data-state="saved"] span { color:#248345; }
.proposal-autosave-status[data-state="error"] { border-color:#edb5b0; background:#fff3f2; }
.proposal-autosave-status[data-state="error"] span { color:#b42318; }
.notification-dropdown > summary.notification-trigger { list-style:none; }
.notification-dropdown > summary.notification-trigger::-webkit-details-marker { display:none; }

@media (max-width: 1180px) {
  .proposal-staff-row { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .proposal-staff-row .staff-description { grid-column:span 2; }
}
@media (max-width: 720px) {
  .proposal-staff-row { grid-template-columns:1fr 1fr; }
  .proposal-staff-row .staff-description { grid-column:1 / -1; }
  .proposal-staff-row .internal-staff-cost { grid-column:1 / -1; }
  .proposal-staff-row .icon-action { grid-column:2; justify-self:end; }
}
@media (max-width: 460px) {
  .proposal-staff-row { grid-template-columns:1fr; }
  .proposal-staff-row .staff-description,
  .proposal-staff-row .internal-staff-cost,
  .proposal-staff-row .icon-action { grid-column:1; }
}

/* V16.2 — negociação por item, múltiplas datas e banco de fotos */
.event-days-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:22px 0 12px;padding-top:18px;border-top:1px solid #e7dfd7}.event-days-heading h3,.event-days-heading p{margin:0}.event-days-heading p{margin-top:4px;color:#746d66}.event-days-heading>strong{white-space:nowrap;padding:8px 12px;border-radius:999px;background:#f1ebe5;color:#644b3c}.proposal-event-days-builder{display:grid;gap:12px}.proposal-event-day-row{display:grid;grid-template-columns:150px 120px 115px 115px minmax(210px,1fr) minmax(220px,1fr) 42px;gap:10px;align-items:end;padding:14px;border:1px solid #e4ddd5;border-radius:14px;background:#fff}.proposal-event-day-row label{min-width:0;margin:0}.proposal-item-negotiation-row{grid-template-columns:minmax(220px,1.35fr) 110px 145px 155px minmax(210px,1fr) minmax(180px,.9fr) 42px!important}.proposal-item-negotiation-row .item-negotiation-notes{min-width:0}.proposal-item-negotiation-row .proposal-item-insight{min-width:0}.proposal-photo-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.proposal-photo-option{position:relative;display:grid;grid-template-rows:130px auto;overflow:hidden;margin:0;border:2px solid transparent;border-radius:14px;background:#f8f5f1;cursor:pointer;transition:.18s ease}.proposal-photo-option input{position:absolute;top:10px;right:10px;z-index:2;width:22px;height:22px;accent-color:#6f4a3a}.proposal-photo-option img{width:100%;height:130px;object-fit:cover}.proposal-photo-option>span{display:block;padding:10px 12px}.proposal-photo-option strong,.proposal-photo-option small{display:block}.proposal-photo-option small{margin-top:3px;color:#746d66}.proposal-photo-option.is-selected{border-color:#6f4a3a;box-shadow:0 0 0 3px rgba(111,74,58,.11)}.form-help{display:block;margin-top:10px;color:#756d66}.proposal-selected-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.proposal-selected-photos figure{margin:0;overflow:hidden;border:1px solid #e0d8d0;border-radius:14px;background:#fff}.proposal-selected-photos img{display:block;width:100%;height:150px;object-fit:cover}.proposal-selected-photos figcaption{padding:9px 11px;font-weight:700}.photo-bank-layout{display:grid;grid-template-columns:minmax(300px,.7fr) minmax(0,1.5fr);gap:18px;align-items:start}.photo-bank-upload-panel{position:sticky;top:145px}.camera-upload-card{padding:15px;border:1px dashed #cdbbab;border-radius:13px;background:#fbf8f5}.camera-upload-card input{margin-top:7px}.camera-upload-card small{display:block;margin-top:6px;color:#746d66}.photo-bank-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.photo-bank-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid #dfd7cf;border-radius:15px;background:#fff}.photo-bank-card>img{width:100%;height:170px;object-fit:cover}.photo-bank-card>div{flex:1;padding:12px}.photo-bank-card>div span,.photo-bank-card>div strong,.photo-bank-card>div small{display:block}.photo-bank-card>div span{font-size:.76rem;font-weight:800;text-transform:uppercase;color:#846a58}.photo-bank-card>div strong{margin-top:4px}.photo-bank-card>div p{margin:7px 0;color:#5f5953}.photo-bank-card>div small{color:#7a736c}.photo-bank-card form,.photo-bank-card>.status-pill{margin:0 12px 12px}.photo-bank-card.is-inactive{opacity:.62}.text-success{color:#2b7a4b;font-weight:700}
@media(max-width:1180px){.proposal-event-day-row{grid-template-columns:repeat(4,minmax(0,1fr))}.proposal-event-day-row .event-day-location,.proposal-event-day-row .event-day-notes{grid-column:span 2}.proposal-event-day-row .icon-action{grid-column:4;justify-self:end}.proposal-item-negotiation-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}.proposal-item-negotiation-row .proposal-item-product,.proposal-item-negotiation-row .item-negotiation-notes,.proposal-item-negotiation-row .proposal-item-insight{grid-column:span 2}.proposal-item-negotiation-row .icon-action{grid-column:3;justify-self:end}.photo-bank-layout{grid-template-columns:1fr}.photo-bank-upload-panel{position:static}}
@media(max-width:720px){.event-days-heading{display:grid}.event-days-heading>strong{justify-self:start}.proposal-event-day-row,.proposal-item-negotiation-row{grid-template-columns:1fr!important}.proposal-event-day-row .event-day-location,.proposal-event-day-row .event-day-notes,.proposal-event-day-row .icon-action,.proposal-item-negotiation-row .proposal-item-product,.proposal-item-negotiation-row .item-negotiation-notes,.proposal-item-negotiation-row .proposal-item-insight,.proposal-item-negotiation-row .icon-action{grid-column:1}.proposal-event-day-row .icon-action,.proposal-item-negotiation-row .icon-action{justify-self:end}.proposal-photo-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.proposal-photo-option{grid-template-rows:105px auto}.proposal-photo-option img{height:105px}.photo-bank-gallery{grid-template-columns:1fr}.proposal-selected-photos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.proposal-photo-picker,.proposal-selected-photos{grid-template-columns:1fr}}

/* V16.3 · fotos anexadas diretamente ao orçamento */
.proposal-direct-photo-upload{display:flex;flex-direction:column;gap:7px;padding:18px;border:2px dashed #cdbbab;border-radius:14px;background:#fbf8f5;cursor:pointer}.proposal-direct-photo-upload>span{font-weight:800;color:#4d382d}.proposal-direct-photo-upload input{width:100%}.proposal-direct-photo-upload small{color:#746d66}.proposal-existing-photos{margin-top:16px}.proposal-existing-photos>strong{display:block;margin-bottom:10px}.existing-photo-option input{accent-color:#b22d28}.existing-photo-option:not(.is-selected){opacity:.55}.direct-photo-preview{cursor:default}.net-profit small{display:block;margin-top:4px;font-size:.72rem;line-height:1.35;color:#776f68;font-weight:500}

/* V16.4 - distribuição operacional do orçamento */
.operational-allocation-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:18px 0 10px; padding-top:16px; border-top:1px solid var(--line); }
.operational-allocation-heading div { display:grid; gap:3px; }
.operational-allocation-heading span { color:var(--muted); font-size:.82rem; }
.operational-allocation-heading > span { padding:7px 10px; border-radius:999px; background:#f3eee8; color:#5e4033; font-weight:800; white-space:nowrap; }
.allocation-validation { margin-top:10px; padding:10px 12px; border-radius:10px; background:#fff0f0; color:#9b1c1c; font-weight:800; }
@media (max-width:700px) { .operational-allocation-heading { align-items:flex-start; flex-direction:column; } .operational-allocation-heading > span { white-space:normal; } }

/* V16.5 - margem preservada, limite de distribuição e bloqueio de alçada */
.allocation-capacity-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 4px}.allocation-capacity-panel>div{padding:13px 14px;border:1px solid #d9d0c7;border-radius:12px;background:#faf7f3}.allocation-capacity-panel span,.allocation-capacity-panel strong,.allocation-capacity-panel small{display:block}.allocation-capacity-panel span{font-size:.78rem;color:#6f665f}.allocation-capacity-panel strong{margin-top:4px;font-size:1.16rem;color:#4f3326}.allocation-capacity-panel small{margin-top:3px;color:#7a7169}.allocation-available-card{border-color:#b7d5c0!important;background:#f1faf4!important}.btn:disabled{cursor:not-allowed;opacity:.55;filter:grayscale(.25)}
@media(max-width:760px){.allocation-capacity-panel{grid-template-columns:1fr}.allocation-capacity-panel>div{padding:12px}}

/* V16.7 · exceção de margem e hierarquia orçamentária */
.margin-override-panel{margin-top:14px;padding:14px;border:1px solid #e5a43b;border-radius:14px;background:#fff9ec}.margin-override-panel .check-line{align-items:flex-start}.margin-override-panel .check-line span{display:grid;gap:3px}.margin-override-panel small{color:#725b32}.margin-override-panel textarea{margin-top:8px}.cost-center-decision-card:has(.cost-center-card-head small:first-child){scroll-margin-top:120px}

/* V16.7 · dashboard financeiro profissional */
.finance-pro-shell{display:block}.finance-pro-hero{padding-bottom:6px}.finance-period-filter{display:grid;grid-template-columns:minmax(260px,1.4fr) repeat(3,minmax(145px,.55fr)) auto;gap:12px;align-items:end;margin:0}.finance-period-filter>div{display:grid;gap:3px;align-self:center}.finance-period-filter>div span{color:var(--muted);font-size:.82rem}.finance-pro-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.finance-pro-kpis article{display:grid;gap:4px;padding:17px;border:1px solid #ddd5cc;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,37,32,.04)}.finance-pro-kpis small,.finance-pro-kpis span{color:var(--muted)}.finance-pro-kpis strong{font-size:1.55rem;overflow-wrap:anywhere}.finance-pro-kpis article.is-income{border-color:#acd2b8;background:#f3fbf5}.finance-pro-kpis article.is-expense{border-color:#e5bbb5;background:#fff6f5}.finance-pro-kpis article.is-profit{border-color:#b6d0e7;background:#f4f9fd}.finance-pro-kpis article.is-danger{border-color:#e3aaa5;background:#fff2f1}.finance-liquidity-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:16px}.finance-liquidity-grid .panel{margin:0}.finance-liquidity-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.finance-liquidity-cards>div{display:grid;gap:4px;padding:14px;border-radius:12px;background:#f7f5f2}.finance-liquidity-cards span,.finance-liquidity-cards small{color:var(--muted)}.finance-liquidity-cards strong{font-size:1.25rem}.finance-liquidity-cards .negative strong,.finance-quality-grid .negative strong,.finance-forecast-grid .negative{color:#b42318}.finance-quality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.finance-quality-grid>div{display:grid;gap:3px;padding:13px;border:1px solid #e0d8cf;border-radius:11px}.finance-quality-grid span{font-size:.76rem;color:var(--muted)}.finance-quality-grid strong{font-size:1rem}.finance-flow-panel{margin:0}.finance-flow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.finance-flow-grid article{padding:13px;border:1px solid #e2dad2;border-radius:12px;background:#fbfaf8}.finance-flow-grid header{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px}.finance-flow-grid header span{font-weight:800;color:#2c7e4a}.finance-flow-grid header span.negative{color:#b42318}.finance-flow-grid small{display:block;margin:4px 0 8px;color:var(--muted)}.finance-flow-bar{height:9px;border-radius:99px;background:#e8ebe8;overflow:hidden}.finance-flow-bar i{display:block;height:100%;min-width:2px;border-radius:inherit;background:#2f9a59}.finance-flow-bar.expense i{background:#d75b50}.finance-breakdown-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.finance-breakdown-grid .panel{margin:0}.finance-ranking{display:grid;gap:12px}.finance-ranking>div{display:grid;gap:5px}.finance-ranking header{display:flex;justify-content:space-between;gap:12px;font-size:.82rem}.finance-ranking header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-ranking i{display:block;height:8px;border-radius:99px;background:#edf0ec;overflow:hidden}.finance-ranking b{display:block;height:100%;border-radius:inherit;background:#2f9a59}.finance-ranking.expense b{background:#d75b50}.finance-ranking small{color:var(--muted);font-size:.72rem}.finance-cost-center-table{min-width:760px}.finance-forecast-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.finance-forecast-grid .panel{display:grid;gap:10px;margin:0}.finance-forecast-grid>article>small{font-weight:800;color:var(--muted)}.finance-forecast-grid>article>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eee8e1}.finance-forecast-grid footer{font-weight:900;color:#277a47}.finance-title-row.is-overdue{background:#fff5f4;padding-inline:8px;border-radius:8px}.text-success{color:#277a47}.text-danger{color:#b42318}
@media(max-width:1180px){.finance-period-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-period-filter>div{grid-column:1/-1}.finance-pro-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-breakdown-grid{grid-template-columns:1fr 1fr}.finance-breakdown-grid .panel:last-child{grid-column:1/-1}}
@media(max-width:800px){.finance-period-filter,.finance-pro-kpis,.finance-liquidity-grid,.finance-breakdown-grid,.finance-forecast-grid{grid-template-columns:1fr}.finance-period-filter>div,.finance-breakdown-grid .panel:last-child{grid-column:1}.finance-liquidity-cards{grid-template-columns:1fr}.finance-flow-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.finance-flow-grid,.finance-quality-grid{grid-template-columns:1fr}}

/* V16.7 — finalidade em cascata, pedido direto, custos hierárquicos e financeiro profissional */
.event-cost-center-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0;padding:18px;border:1px solid #d8c7ad;background:#fffaf1;border-radius:16px}
.event-cost-center-step{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}.event-cost-center-step>span{width:32px;height:32px;border-radius:10px;background:#171411;color:#fff;display:grid;place-items:center;font-weight:800}.event-cost-center-flow[hidden],#general-cost-center-flow[hidden]{display:none!important}
.direct-order-items{overflow-x:auto}.direct-order-item{display:grid;grid-template-columns:minmax(180px,1.4fr) 110px minmax(180px,1.5fr) 150px 90px 90px 120px 125px 42px;gap:8px;align-items:center;min-width:1120px;padding:10px;border-bottom:1px solid var(--line,#e6dfd7)}.direct-order-item.item-header{font-weight:800;background:#f6f2ed;border-radius:12px}.direct-order-item input,.direct-order-item select{min-width:0}.direct-line-total{white-space:nowrap}
.cost-hierarchy-list{display:grid;gap:20px}.cost-event-card{border:1px solid #ddd5cc;border-radius:18px;overflow:hidden;background:#fff}.cost-event-card>header{padding:18px;background:#f7f3ee;display:flex;gap:20px;justify-content:space-between;align-items:flex-start}.cost-event-card h3{margin:3px 0 0}.cost-event-kpis{display:grid;grid-template-columns:repeat(4,minmax(125px,1fr));gap:10px;min-width:min(680px,100%)}.cost-event-kpis span{background:#fff;border:1px solid #e1d9d0;border-radius:12px;padding:10px;color:#6a625b}.cost-event-kpis strong{display:block;color:#171411;margin-top:5px}.cost-subcenter-grid{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:12px;padding:16px}.cost-subcenter-card{border:1px solid #e3dbd2;border-radius:14px;padding:14px}.cost-subcenter-card.is-over{border-color:#d45345;background:#fff5f3}.cost-subcenter-title{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.cost-subcenter-title span{font-weight:900}.cost-subcenter-card dl{display:grid;gap:5px;margin:0 0 10px}.cost-subcenter-card dl div{display:flex;justify-content:space-between;gap:10px}.cost-subcenter-card dt{color:#746b64}.cost-subcenter-card dd{margin:0;font-weight:800}.is-negative,.is-negative strong,.is-negative dd{color:#b42b22!important}.cost-subcenter-card progress{width:100%}
.finance-pro-shell{max-width:1600px;margin:0 auto}.finance-pro-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.finance-hero-actions{display:flex;flex-wrap:wrap;gap:8px}.finance-period-filter{display:grid;grid-template-columns:minmax(250px,1.6fr) repeat(3,minmax(150px,.7fr)) auto;gap:12px;align-items:end}.finance-period-filter>div span{display:block;color:#726a63;margin-top:4px}.finance-pro-kpis{display:grid;grid-template-columns:repeat(6,minmax(180px,1fr));gap:12px;margin:16px 0}.finance-pro-kpis article{padding:16px;border:1px solid #ded7cf;border-radius:16px;background:#fff}.finance-pro-kpis small,.finance-pro-kpis span{display:block;color:#716961}.finance-pro-kpis strong{display:block;font-size:1.45rem;margin:7px 0}.finance-pro-kpis .is-income{border-top:4px solid #278257}.finance-pro-kpis .is-expense{border-top:4px solid #bb4a40}.finance-pro-kpis .is-profit{border-top:4px solid #315f8b}.finance-pro-kpis .is-danger{background:#fff1ef;border-color:#d96a5e}.finance-liquidity-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}.finance-liquidity-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.finance-liquidity-cards>div,.finance-quality-grid>div{padding:14px;border-radius:13px;background:#f7f3ee}.finance-liquidity-cards span,.finance-quality-grid span{display:block;color:#716961}.finance-liquidity-cards strong,.finance-quality-grid strong{display:block;margin:6px 0;font-size:1.15rem}.finance-quality-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.finance-flow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.finance-flow-grid article{border:1px solid #e1dad2;border-radius:14px;padding:13px}.finance-flow-grid header{display:flex;justify-content:space-between}.finance-flow-bar{height:9px;background:#eee8e2;border-radius:99px;overflow:hidden;margin:9px 0 4px}.finance-flow-bar i{height:100%;display:block;background:#2d8b62}.finance-flow-bar.expense i{background:#c65a50}.finance-breakdown-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.finance-ranking{display:grid;gap:13px}.finance-ranking header{display:flex;justify-content:space-between;gap:12px}.finance-ranking i{height:8px;background:#ece7e1;border-radius:99px;display:block;overflow:hidden;margin:6px 0}.finance-ranking b{height:100%;display:block;background:#2d8b62}.finance-ranking.expense b{background:#bd5a50}.finance-forecast-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.finance-forecast-grid article>div{display:flex;justify-content:space-between;margin:9px 0}.finance-forecast-grid footer{font-weight:900;border-top:1px solid #e3ddd6;padding-top:10px}.finance-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.finance-due-list{display:grid;gap:8px}.finance-title-row{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e4ddd5;border-radius:12px;text-decoration:none;color:inherit}.finance-title-row div:last-child{text-align:right}.finance-title-row small,.finance-title-row span{display:block;color:#746c65}.finance-title-row.is-overdue{border-color:#d76b60;background:#fff5f3}.negative,.text-danger{color:#b32b24!important}.text-success{color:#267653!important}
@media(max-width:1100px){.finance-pro-kpis{grid-template-columns:repeat(3,1fr)}.finance-breakdown-grid,.cost-subcenter-grid{grid-template-columns:repeat(2,1fr)}.cost-event-card>header{display:block}.cost-event-kpis{margin-top:14px;min-width:0}.finance-period-filter{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.event-cost-center-flow,.finance-liquidity-grid,.finance-list-grid,.finance-breakdown-grid,.finance-forecast-grid{grid-template-columns:1fr}.finance-pro-hero{display:block}.finance-hero-actions{margin-top:12px}.finance-pro-kpis{grid-template-columns:1fr 1fr}.finance-period-filter{grid-template-columns:1fr}.finance-liquidity-cards,.finance-quality-grid,.cost-event-kpis,.cost-subcenter-grid{grid-template-columns:1fr}.cost-event-card>header{padding:14px}.direct-order-item{min-width:1040px}}


/* V16.9 — orçamento organizado por momentos e OS departamental */
.proposal-moments-builder{display:grid;gap:18px}.proposal-moment-card{border:1px solid #ded5cb;border-radius:18px;background:#fff;padding:18px;box-shadow:0 8px 24px rgba(47,37,29,.05)}.moment-card-heading,.moment-items-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.moment-card-heading h3,.moment-items-heading h4{margin:2px 0 0}.moment-header-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin-top:14px}.moment-location{grid-column:span 2}.moment-commercial-box{margin-top:16px;padding:16px;border-radius:14px;background:#f8f5f1;border:1px solid #e8dfd6}.moment-commercial-box h4{margin:0 0 12px}.moment-commercial-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.moment-commercial-grid .full{grid-column:1/-1}.moment-value-preview{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #e4d9cf}.moment-value-preview strong{font-size:1.15rem}.moment-items-section{margin-top:16px}.moment-items-list{display:grid;gap:10px;margin-top:12px}.moment-item-row{display:grid;grid-template-columns:1.4fr 1.6fr .75fr .55fr .8fr 1.3fr auto;gap:10px;align-items:end;padding:12px;border-radius:12px;border:1px solid #e7dfd7;background:#fbfaf8}.moment-item-notes{min-width:0}.service-order-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.service-order-card{border:1px solid #e4dcd3;border-radius:14px;padding:16px;background:#fff}.service-order-card h3{margin:0 0 6px}.service-order-card .status-pill{display:inline-flex;margin:8px 0}.moment-client-block{margin:10px 0 14px;padding:12px;border:1px solid #ded5cb;border-radius:12px}.moment-client-block h4{margin:0 0 6px}.moment-client-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px;color:#6f655d}.moment-client-list{margin:0;padding-left:18px}.os-department-banner{padding:14px;border-radius:12px;background:#f2ede7;border-left:5px solid #6f4a3a;margin-bottom:14px}.os-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.os-summary-grid>div{border:1px solid #e4ddd5;border-radius:12px;padding:12px}.os-summary-grid span,.os-summary-grid strong{display:block}.os-summary-grid strong{margin-top:4px}
@media(max-width:1100px){.moment-header-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}.moment-commercial-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.moment-item-row{grid-template-columns:repeat(3,minmax(0,1fr))}.moment-item-notes{grid-column:span 2}.service-order-grid{grid-template-columns:1fr}}
@media(max-width:700px){.proposal-moment-card{padding:12px}.moment-header-grid,.moment-commercial-grid,.moment-item-row,.os-summary-grid{grid-template-columns:1fr}.moment-location,.moment-commercial-grid .full,.moment-item-notes{grid-column:auto}.moment-card-heading,.moment-items-heading{align-items:stretch}.moment-items-heading{flex-direction:column}.moment-items-heading .btn{width:100%}}

/* V16.9 — detalhes por momento e ordens de serviço */
.proposal-moment-detail-list{display:grid;gap:18px}.proposal-moment-detail-card{border:1px solid #dfd5ca;border-radius:18px;padding:18px;background:#fff}.moment-detail-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.moment-detail-header h3{margin:3px 0 0;font-size:1.35rem}.moment-detail-pax{min-width:78px;padding:10px 14px;border-radius:14px;background:#f4efe9;text-align:center}.moment-detail-pax strong{display:block;font-size:1.35rem}.moment-detail-pax span{font-size:.72rem;font-weight:800;letter-spacing:.08em}.moment-detail-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px;margin:10px 0 14px;font-size:.88rem;color:#4b4650}.moment-client-note{padding:10px 12px;border-left:4px solid #6f5b47;background:#faf7f2;border-radius:8px;margin-bottom:10px}.internal-only-banner.compact{padding:9px 12px;margin:0 0 12px}.moment-commercial-summary{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:flex-end;padding-top:12px;border-top:1px solid #eee4da;font-size:.86rem}.service-order-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.service-order-card{border:1px solid #dfd5ca;border-radius:16px;padding:16px;background:#fbf8f4;display:flex;flex-direction:column;justify-content:space-between;gap:14px}.service-order-card h3{margin:4px 0}.service-order-card p{margin:0;font-weight:700}.service-order-card-actions{display:flex;flex-direction:column;gap:8px}.service-order-card-actions small{color:#6d655e}.proposal-moments-builder .moment-card-heading{position:sticky;top:0;z-index:2;background:inherit;padding-bottom:8px}.moment-items-section{border-top:1px dashed #d8cabd;margin-top:14px;padding-top:14px}.moment-items-section h4{margin:0}.moment-item-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(180px,1.3fr) 120px 90px 150px minmax(180px,1.2fr) 44px;gap:10px;align-items:end;padding:12px;border:1px solid #e6ddd4;border-radius:14px;margin-top:10px;background:#fff}.moment-item-row label{margin:0}.moment-item-row .icon-action{align-self:center}.proposal-moment-card{overflow:visible}
@media(max-width:1000px){.service-order-card-grid{grid-template-columns:1fr}.moment-detail-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.moment-item-row{grid-template-columns:repeat(2,minmax(0,1fr))}.moment-item-row .icon-action{grid-column:2;justify-self:end}}
@media(max-width:650px){.moment-detail-header{align-items:flex-start}.moment-detail-meta{grid-template-columns:1fr}.moment-commercial-summary{justify-content:flex-start;flex-direction:column;gap:6px}.moment-item-row{grid-template-columns:1fr}.moment-item-row .icon-action{grid-column:1;justify-self:end}.proposal-moment-detail-card{padding:13px}.moment-header-grid,.moment-commercial-grid{grid-template-columns:1fr!important}.proposal-moment-card{padding:13px!important}}

/* V17.0 — fichas técnicas, explosão e unidade obrigatória */
.source-record,.ingredient-source,.recipe-explosion-preview{padding:.65rem .8rem;border-radius:10px;background:#f6f1ea;border:1px solid #e3d8ca}.recipe-explosion-actions{min-width:180px}.recipe-explosion-preview{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;margin-top:.35rem}.explosion-result{margin-top:1rem}.ingredient-row{align-items:start}.ingredient-source{grid-column:1/-1}.status-pill.warning{background:#fff1cf;color:#815700}.alert.info{background:#edf7f1;border:1px solid #b9ddc7;color:#244f35;padding:1rem;border-radius:12px;margin-bottom:1rem}

/* V17.1 — programação por dia e nomes editáveis dos momentos */
.moment-rule-banner{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:12px 0 18px;padding:14px 16px;border:1px solid #d8c9b8;border-radius:12px;background:#fffaf2}.moment-rule-banner span{color:#65584d}.moment-builder-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.moment-custom-name{grid-column:span 2}.moment-card-heading small{display:block;margin-top:3px;color:#75675b;font-weight:700}.proposal-moment-card:has(input:invalid),.proposal-moment-card:has(select:invalid){border-color:#d8b36b}.proposal-moment-card input:invalid,.proposal-moment-card select:invalid{box-shadow:none}@media(max-width:760px){.moment-rule-banner{align-items:flex-start;flex-direction:column}.moment-custom-name{grid-column:1/-1}.moment-builder-actions .btn{width:100%}}

/* V17.2 fallback: cards financeiros e sino */
.finance-cash-position{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.finance-cash-position article{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid #ded6cc;border-radius:14px;background:#fff}.finance-cash-position small,.finance-cash-position strong,.finance-cash-position span{display:block}.finance-dre-table{display:grid;border:1px solid #e1d8ce;border-radius:14px;overflow:hidden}.finance-dre-row{display:grid;grid-template-columns:minmax(170px,1.5fr) repeat(2,minmax(120px,1fr));gap:14px;align-items:center;padding:12px 14px;border-bottom:1px solid #ece5dd}.finance-dre-row strong{text-align:right;white-space:nowrap}.finance-dre-head{background:#f3eee8}.notification-dropdown.is-open .notification-dropdown-panel{display:block!important}@media(max-width:760px){.finance-cash-position{grid-template-columns:1fr}.finance-dre-row{grid-template-columns:1fr}.finance-dre-row strong{text-align:left}}

/* V17.5 — Pedido de Compra profissional */
.po-exception-card{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.5fr);gap:1.25rem;align-items:start;margin:1rem 0;padding:1rem 1.15rem;border:1px solid #f0b45f;border-left:5px solid #d97706;border-radius:14px;background:#fffaf0}.po-exception-card[hidden]{display:none}.po-exception-card p{margin:.3rem 0 0;color:#7c4a03}.po-item-over-request{background:#fff7ed!important;box-shadow:inset 4px 0 #d97706}.po-item-over-request [data-po-qty]{border-color:#d97706;background:#fff}.po-items-table input[type=number]{min-width:105px}.po-total-box{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-radius:14px;background:linear-gradient(135deg,#17261f,#294b3a);color:#fff;margin:1rem 0}.po-total-box strong{font-size:1.45rem}@media(max-width:760px){.po-exception-card{grid-template-columns:1fr}.po-total-box{align-items:flex-start;gap:.4rem;flex-direction:column}}

.po-overrun-panel{border-left:5px solid #d97706}.po-overrun-panel .panel-heading{align-items:flex-start}.order-totals{display:grid!important;grid-template-columns:repeat(4,minmax(130px,1fr));gap:.7rem}.order-totals span{display:flex;flex-direction:column;gap:.25rem;padding:.8rem;border:1px solid var(--border,#d9dedb);border-radius:12px;background:#fafcfb}.order-totals strong{font-size:1.05rem}@media(max-width:760px){.order-totals{grid-template-columns:1fr 1fr!important}}

/* V17.5 — detalhes do Pedido de Compra */
.po-overrun-panel{border-left:5px solid #d97706}.po-overrun-panel .panel-heading{align-items:flex-start}.order-totals{display:grid!important;grid-template-columns:repeat(4,minmax(130px,1fr));gap:.7rem}.order-totals span{display:flex;flex-direction:column;gap:.25rem;padding:.8rem;border:1px solid var(--border,#d9dedb);border-radius:12px;background:#fafcfb}.order-totals strong{font-size:1.05rem}@media(max-width:760px){.order-totals{grid-template-columns:1fr 1fr!important}}

/* V17.5 — Fechamento do evento */
.closure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1rem}.closure-card{display:block;padding:1.2rem;border:1px solid var(--border,#dce2de);border-radius:18px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 8px 28px rgba(19,42,31,.06);transition:.2s}.closure-card:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(19,42,31,.12)}.closure-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.closure-card-head h2{margin:.2rem 0}.closure-card-head p{margin:0;color:#67766e}.closure-metrics{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1rem}.closure-metrics div,.closure-hero>div{padding:.8rem;border-radius:12px;background:#f6f9f7}.closure-metrics span,.closure-hero span{display:block;font-size:.76rem;text-transform:uppercase;color:#66766e}.closure-metrics strong,.closure-hero strong{display:block;margin-top:.25rem}.closure-hero{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:.75rem}.closure-departments{display:grid;grid-template-columns:repeat(auto-fit,minmax(370px,1fr));gap:1rem}.closure-entry{border-top:4px solid #e1a33b}.closure-entry.is-complete{border-top-color:#2b7c56}.closure-entry-read{padding:.4rem 0}.closure-finalize{border:2px solid #294b3a}.success-panel{background:#eef8f2;border-color:#86c6a2}@media(max-width:900px){.closure-hero{grid-template-columns:1fr 1fr}.closure-departments{grid-template-columns:1fr}}@media(max-width:560px){.closure-grid{grid-template-columns:1fr}.closure-hero{grid-template-columns:1fr}.closure-metrics{grid-template-columns:1fr}}

/* V17.5 — Sino independente e acima de qualquer painel */
.notification-dropdown{position:relative;z-index:1200}.notification-dropdown-panel{z-index:1300!important;pointer-events:none;visibility:hidden;opacity:0;transform:translateY(-6px)}.notification-dropdown.is-open .notification-dropdown-panel{pointer-events:auto;visibility:visible;opacity:1;transform:translateY(0)}.notification-trigger{touch-action:manipulation;cursor:pointer}.notification-dropdown-panel a,.notification-dropdown-panel button{pointer-events:auto}@media(max-width:760px){.notification-dropdown-panel{position:fixed!important;top:72px!important;left:12px!important;right:12px!important;width:auto!important;max-height:calc(100dvh - 110px)!important;overflow:auto!important}}

/* V17.5 — aprovação contratual em faixa central */
.contract-stage-approval{border:2px solid #d9a441;background:linear-gradient(135deg,#fffaf0,#fff)}.contract-stage-approval .inline-approval-form{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:.75rem;align-items:end}.contract-stage-result{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-radius:14px;background:#f2f7f4;margin-bottom:1rem}@media(max-width:800px){.contract-stage-approval .inline-approval-form{grid-template-columns:1fr}.contract-stage-result{flex-direction:column}}

/* V17.6 — sino resiliente, com fallback de link e painel realmente removido do fluxo quando fechado */
.notification-dropdown-panel[hidden]{display:none!important;visibility:hidden!important;pointer-events:none!important;opacity:0!important}
.notification-dropdown.is-open>.notification-dropdown-panel:not([hidden]){display:block!important;visibility:visible!important;pointer-events:auto!important;opacity:1!important;transform:none!important}
.notification-trigger[data-notification-trigger-v176]{text-decoration:none;position:relative}
.notification-panel-open{overflow-x:hidden}

/* V17.6 - privacidade de budget, fechamento executivo e inteligencia de contas a pagar */
.budget-privacy-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:16px;border:1px solid #b9d5c5;border-left:5px solid #2f7654;border-radius:15px;background:linear-gradient(135deg,#eef8f2,#fff)}
.budget-privacy-banner strong{display:block;margin-bottom:4px}.budget-privacy-banner p{margin:0;color:#52665b}.budget-privacy-banner .badge{white-space:nowrap}
.event-final-metrics,.finance-intelligence-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:16px 0}
.event-final-metrics article,.finance-intelligence-kpis article{min-width:0;padding:16px;border:1px solid #dce4df;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(20,48,34,.06)}
.event-final-metrics span,.finance-intelligence-kpis span{display:block;color:#66776e;font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.event-final-metrics strong,.finance-intelligence-kpis strong{display:block;margin:7px 0 4px;font-size:1.18rem;overflow-wrap:anywhere}.event-final-metrics small,.finance-intelligence-kpis small{color:#6a756f}
.finance-intelligence-kpis article.is-success{border-top:4px solid #2c865b}.finance-intelligence-kpis article.is-danger{border-top:4px solid #b94343}
.event-executive-summary{border-left:6px solid #294b3a;background:linear-gradient(135deg,#f1f7f3,#fff)}.event-executive-summary h2{margin:.3rem 0}.event-executive-summary p{font-size:1.04rem;line-height:1.65;margin-bottom:0}
.event-closure-analytics,.payables-analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.closure-occurrence-list{display:grid;gap:9px}.closure-occurrence-list article{display:grid;gap:4px;padding:11px 12px;border:1px solid #e4e9e6;border-radius:12px;background:#fafcfb}.closure-occurrence-list span{line-height:1.45}.closure-occurrence-list small{color:#68766f}
.final-report-ready{display:flex;align-items:center;justify-content:space-between;gap:20px;border:2px solid #3a805d;background:linear-gradient(135deg,#edf8f1,#fff)}.final-report-ready h2{margin-top:0}.final-report-ready p:last-child{margin-bottom:0}
.imported-payables-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;border-left:6px solid #2d6b4c;background:linear-gradient(135deg,#edf7f1,#fff)}.imported-payables-callout h2{margin:.25rem 0}.imported-payables-callout p{margin:0;color:#596b62}
.finance-source-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;border-left:6px solid #315f91;background:linear-gradient(135deg,#eef5fb,#fff)}.finance-source-banner>div{display:grid;gap:4px}.finance-source-banner span{color:#5f6e77}.finance-source-banner>strong{font-size:1.35rem;white-space:nowrap}
.finance-history-filter{display:grid;grid-template-columns:minmax(210px,1.5fr) minmax(140px,.65fr) minmax(220px,1.1fr) minmax(190px,.9fr) auto auto;align-items:end}.finance-history-filter label{min-width:0}.finance-history-filter select,.finance-history-filter input{width:100%}
.finance-month-flow{display:grid;gap:12px}.finance-month-flow article{display:grid;gap:6px}.finance-month-flow header{display:flex;justify-content:space-between;gap:12px}.finance-month-flow article>div{height:10px;overflow:hidden;border-radius:999px;background:#e6ece8}.finance-month-flow i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#315f91,#4f8f70)}
.payables-analysis-grid .cost-ranking>div{padding-bottom:10px;border-bottom:1px solid #edf0ee}.ledger-result-count{white-space:nowrap}
.finance-source-banner,.imported-payables-callout,.final-report-ready{box-shadow:0 8px 26px rgba(22,50,37,.05)}
@media(max-width:1250px){.event-final-metrics,.finance-intelligence-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-history-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-history-filter .btn{align-self:end}}
@media(max-width:850px){.event-closure-analytics,.payables-analysis-grid{grid-template-columns:1fr}.budget-privacy-banner,.finance-source-banner,.imported-payables-callout,.final-report-ready{align-items:flex-start;flex-direction:column}.finance-source-banner>strong{white-space:normal}.finance-history-filter{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.event-final-metrics,.finance-intelligence-kpis,.finance-history-filter{grid-template-columns:1fr}.event-final-metrics article,.finance-intelligence-kpis article{padding:14px}.imported-payables-callout .btn,.final-report-ready .btn{width:100%}}
.supplier-import-banner{border-left:6px solid #2f7654;background:linear-gradient(135deg,#edf8f1,#fff)}.supplier-import-banner>div{display:grid;gap:5px}.supplier-import-banner strong{font-size:1.04rem}.supplier-import-banner small,.import-source-label{color:#5e7167}.import-source-label{font-weight:700}.supplier-history-link{text-decoration:none}.supplier-history-link strong{color:inherit}

/* V18.1 — contratos flexíveis, central de aprovações e financeiro enxuto */
.contract-quick-actions,.contract-origin-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:0 0 18px}
.contract-quick-actions>a,.contract-origin-option{display:flex;align-items:flex-start;gap:13px;padding:16px 18px;border:1px solid #d9ddd9;border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 7px 22px rgba(28,48,38,.05)}
.contract-quick-actions>a:hover,.contract-origin-option.is-direct:hover{border-color:#739982;transform:translateY(-1px)}
.contract-quick-actions>a>span,.contract-origin-option>span{display:grid;place-items:center;min-width:38px;height:38px;border-radius:11px;background:#edf4ef;font-size:1.25rem;font-weight:900;color:#315f49}
.contract-quick-actions strong,.contract-origin-option strong{display:block;font-size:1rem;margin-bottom:4px}.contract-quick-actions small,.contract-origin-option p{display:block;margin:0;color:#67746d;line-height:1.45}
.contract-origin-option{min-height:150px}.contract-origin-option>div{width:100%}.contract-origin-option .stack-form{margin-top:14px}
.contract-origin-option.is-direct{border-left:5px solid #386a50;background:linear-gradient(135deg,#f0f8f3,#fff)}
.contract-form-tip{display:grid;align-content:center;gap:4px;padding:12px 14px;border:1px solid #e0e5e1;border-radius:12px;background:#f8faf8}.contract-form-tip span{color:#68756e;font-size:.82rem}
.direct-contract-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px}.direct-contract-actions .contract-total-card{margin:0;min-width:300px}.direct-contract-items input{min-width:90px}.direct-contract-items td:first-child input{min-width:260px}.icon-button{border:0;background:#f3f1ed;border-radius:9px;width:34px;height:34px;cursor:pointer;font-size:1.15rem}.icon-button:hover{background:#f8dfdc;color:#9c2f24}
.contract-kpi-strip,.measurement-contract-context{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:11px;margin-bottom:16px}.contract-kpi-strip article,.measurement-contract-context article{display:grid;gap:4px;padding:14px 15px;border:1px solid #dde2de;border-radius:14px;background:#fff}.contract-kpi-strip span,.measurement-contract-context span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#68766f;font-weight:800}.contract-kpi-strip strong,.measurement-contract-context strong{font-size:1.02rem}.contract-kpi-strip small,.measurement-contract-context small{color:#6d7972}
.contract-static-link{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid #ece9e5}.contract-static-link span{font-size:.76rem;color:#6c7770}.contract-static-link strong{font-size:.9rem}
.approval-filter-strip{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:15px}.approval-filter-strip a{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;border:1px solid #d9dedb;background:#fff;color:inherit;text-decoration:none}.approval-filter-strip a.is-active{background:#1c211e;color:#fff;border-color:#1c211e}.approval-filter-strip strong{font-size:1.05rem}.approval-filter-strip span{font-size:.82rem}
.approval-card-list{display:grid;gap:12px}.contract-approval-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr);gap:18px;padding:16px;border:1px solid #dedfdb;border-radius:15px;background:#fff}.contract-approval-main h3{margin:.25rem 0}.contract-approval-main p{margin:.2rem 0 .7rem;color:#66736c}.contract-approval-main>small{color:#6c7770}.contract-stage-change{display:flex;align-items:center;gap:10px;margin:9px 0;padding:9px 11px;border-radius:10px;background:#f5f4f1}.contract-stage-change strong{color:#2f704e}.approval-inline-form{display:grid;gap:9px;align-content:start}.approval-inline-form textarea{min-height:58px}.approval-inline-form .button-group{justify-content:flex-end}.approval-inline-form .table-action{text-align:right}
.measurement-form-actions{align-items:flex-end}.mini-action{display:block;margin-top:5px;border:0;background:transparent;padding:0;color:#2d6d4c;font-size:.74rem;font-weight:800;cursor:pointer}.mini-action:hover{text-decoration:underline}
.contract-approval-gate{display:flex;align-items:center;justify-content:space-between;gap:18px}.approval-gate-form{display:grid;grid-template-columns:minmax(200px,1fr) auto auto;gap:8px;align-items:end}.approval-gate-form input{min-width:220px}
.finance-attention-metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}
@media(max-width:900px){.contract-approval-card{grid-template-columns:1fr}.approval-inline-form .button-group{justify-content:flex-start}.approval-inline-form .table-action{text-align:left}.contract-approval-gate{align-items:stretch;flex-direction:column}.approval-gate-form{grid-template-columns:1fr}.direct-contract-actions{align-items:stretch;flex-direction:column}.direct-contract-actions .contract-total-card{min-width:0;width:100%}}
@media(max-width:620px){.contract-quick-actions,.contract-origin-choice,.contract-kpi-strip,.measurement-contract-context{grid-template-columns:1fr}.direct-contract-items td:first-child input{min-width:180px}}


/* V18.2 — Financeiro principal + Central de Aprovações de Compras */
.finance-ledger-tabs[data-mode="single"]{grid-template-columns:minmax(260px,520px);margin-bottom:14px}.finance-ledger-tabs[data-mode="single"]>a{min-height:70px}.finance-filter-bar{align-items:end}.finance-filter-bar label:first-child{min-width:180px}.subnav-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:#6f4a3a;color:#fff;font-size:11px}.approval-subnav-link.is-active .subnav-count{background:#fff;color:#6f4a3a}
.approval-center-heading{align-items:flex-end}.approval-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.approval-kpi{display:flex;flex-direction:column;gap:5px;padding:16px 18px;border:1px solid #dfd8cf;border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 6px 18px rgba(49,38,30,.05)}.approval-kpi small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#786b60}.approval-kpi strong{font-size:30px;line-height:1;color:#1e1a17}.approval-kpi span{font-size:12px;color:#7c7167}.approval-kpi.is-active{border-color:#6f4a3a;box-shadow:0 0 0 2px rgba(111,74,58,.12)}.approval-kpi.is-budget{background:#fff9ef}.approval-search-panel{margin-bottom:18px}.approval-section{margin:24px 0}.approval-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.approval-section-head>div{display:flex;align-items:center;gap:12px}.approval-section-head h2{margin:0 0 3px;font-size:20px}.approval-section-head p{margin:0;color:#776d64;font-size:13px}.approval-section-head>strong{font-size:22px}.approval-section-icon{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 9px;border-radius:12px;background:#211b17;color:#fff;font-weight:800;font-size:12px}.approval-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.approval-work-card{padding:18px;border:1px solid #ded8d1;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(50,39,31,.05)}.approval-work-card.is-urgent{border-color:#e8b2a7}.approval-work-card.is-budget{border-color:#e3c58f;background:#fffdf8}.approval-work-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.approval-work-card h3{font-size:21px;margin:2px 0 0}.approval-money{font-size:18px;white-space:nowrap}.approval-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.approval-facts div{padding:10px 12px;border-radius:12px;background:#f7f5f2}.approval-facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7e7369}.approval-facts dd{margin:3px 0 0;font-size:13px;font-weight:700}.approval-summary,.approval-alert{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#f7f5f2;font-size:13px}.approval-alert{background:#fff2df}.approval-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:15px}.approval-inline-decision{display:flex;gap:8px}.approval-quick{position:relative}.approval-quick>summary{list-style:none;cursor:pointer}.approval-quick>summary::-webkit-details-marker{display:none}.approval-quick[open]>form{position:absolute;right:0;z-index:20;width:340px;padding:14px;margin-top:8px;border:1px solid #d9d1c9;border-radius:14px;background:#fff;box-shadow:0 15px 40px rgba(32,25,20,.18)}.approval-quick form label{display:grid;gap:5px;font-size:12px;font-weight:700}.approval-quick form textarea{width:100%;resize:vertical}.approval-quick form>div{display:flex;gap:8px;margin-top:10px}.approval-empty-state{grid-column:1/-1;display:flex;flex-direction:column;gap:3px;padding:22px;border:1px dashed #d5cec7;border-radius:16px;color:#756b63;background:#faf9f7}.approval-all-clear{display:flex;align-items:center;gap:16px;padding:24px}.approval-all-clear>span{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:#edf8f1;color:#28784b;font-size:24px}.approval-all-clear p{margin:4px 0 0;color:#746b63}
@media(max-width:1000px){.approval-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.approval-card-grid{grid-template-columns:1fr}}@media(max-width:640px){.approval-kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.approval-kpi{padding:12px}.approval-kpi strong{font-size:24px}.approval-facts{grid-template-columns:1fr}.approval-card-actions{justify-content:stretch}.approval-card-actions>.btn,.approval-card-actions form,.approval-card-actions details{width:100%}.approval-inline-decision{display:grid;grid-template-columns:1fr 1fr}.approval-quick>summary{width:100%}.approval-quick[open]>form{position:fixed;left:14px;right:14px;bottom:78px;width:auto;max-height:70vh;overflow:auto}.finance-filter-bar label{min-width:100%!important}}

/* V18.3.5 · Engenharia profissional de receitas, custos e seletores visuais */
.modal-open{overflow:hidden}.catalog-picker-modal[hidden]{display:none!important}.catalog-picker-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px}.catalog-picker-backdrop{position:absolute;inset:0;background:rgba(27,24,21,.62);backdrop-filter:blur(3px)}.catalog-picker-dialog{position:relative;z-index:1;width:min(1080px,96vw);max-height:88vh;overflow:hidden;background:#fff;border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.28);display:flex;flex-direction:column}.catalog-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 14px;border-bottom:1px solid #ebe4dd}.catalog-picker-header h2{margin:2px 0 3px}.catalog-picker-header p{margin:0;color:#6e655d}.catalog-picker-toolbar{display:grid;grid-template-columns:1fr 260px;gap:12px;padding:14px 24px;border-bottom:1px solid #eee7df}.catalog-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px 24px 24px;overflow:auto}.catalog-product-card{appearance:none;text-align:left;border:1px solid #e4ddd5;border-radius:16px;padding:0;background:#fff;overflow:hidden;cursor:pointer;transition:.15s ease;display:flex;flex-direction:column;min-width:0}.catalog-product-card:hover,.catalog-product-card:focus-visible{transform:translateY(-2px);border-color:#80664f;box-shadow:0 10px 24px rgba(55,43,33,.12)}.catalog-product-image{height:120px;background:#f4f0eb;display:grid;place-items:center;overflow:hidden;color:#8c8178;font-size:.75rem;font-weight:800}.catalog-product-image img{width:100%;height:100%;object-fit:cover}.catalog-product-info{padding:11px 12px 13px;display:flex;flex-direction:column;gap:4px;min-width:0}.catalog-product-info strong{font-size:.92rem;line-height:1.25}.catalog-product-info small,.catalog-product-info em{font-size:.72rem;color:#756b63;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-product-card.is-cost-pending{border-color:#e4b968;background:#fffaf0}.menu-period-tabs{display:flex;gap:8px;padding:14px 24px 0;overflow:auto}.menu-period-tab{border:1px solid #ddd3c9;background:#f9f6f2;border-radius:999px;padding:8px 12px;font-weight:800;font-size:.75rem;white-space:nowrap;cursor:pointer}.menu-period-tab.is-active{background:#2f4b3d;color:#fff;border-color:#2f4b3d}
.menu-native-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.commercial-menu-choice{position:relative}.menu-picker-trigger,.recipe-product-selector,.kitchen-product-selector{width:100%;min-height:58px;border:1px solid #ded5cc;border-radius:12px;background:#fff;display:flex;align-items:center;gap:10px;text-align:left;padding:7px 9px;cursor:pointer}.menu-picker-trigger:hover,.recipe-product-selector:hover,.kitchen-product-selector:hover{border-color:#8a715d;background:#fffdf9}.menu-picker-thumb,.recipe-product-thumb,.kitchen-product-thumb{flex:0 0 46px;width:46px;height:46px;border-radius:10px;background:#eee8e1;display:grid;place-items:center;overflow:hidden;color:#8b8077;font-size:.62rem;font-weight:900}.menu-picker-thumb img,.recipe-product-thumb img,.kitchen-product-thumb img{width:100%;height:100%;object-fit:cover}.menu-picker-trigger>span:last-child,.recipe-product-copy,.kitchen-product-selector>span:last-child{min-width:0;display:flex;flex-direction:column}.menu-picker-trigger strong,.recipe-product-selector strong,.kitchen-product-selector strong{font-size:.83rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-picker-trigger small,.recipe-product-selector small,.kitchen-product-selector small{font-size:.68rem;color:#786e65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forecast-cost-field{background:#fff7e7;border:1px solid #e9c77f;border-radius:10px;padding:7px}.forecast-cost-field[hidden]{display:none!important}.legacy-price-line{display:none!important}
.recipe-engineering-form{display:grid;gap:18px}.recipe-identity-grid{display:grid;grid-template-columns:220px 1fr;gap:22px}.recipe-photo-uploader{display:flex;flex-direction:column;gap:10px}.recipe-photo-frame{aspect-ratio:1/1;border:1px dashed #cfc3b7;border-radius:16px;overflow:hidden;background:#f8f5f1;display:grid;place-items:center}.recipe-photo-frame img{width:100%;height:100%;object-fit:cover}.recipe-photo-placeholder{display:flex;flex-direction:column;gap:4px;text-align:center;color:#80746a}.recipe-photo-placeholder span{font-size:.72rem}.recipe-photo-button{justify-content:center}.recipe-main-fields{align-content:start}.recipe-cost-kpis,.cost-engineering-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 18px}.recipe-cost-kpis>div,.cost-engineering-kpis>article{padding:15px;border:1px solid #e4ddd5;border-radius:14px;background:#fbfaf8}.recipe-cost-kpis span,.cost-engineering-kpis span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#746a62;font-weight:800}.recipe-cost-kpis strong,.cost-engineering-kpis strong{display:block;font-size:1.3rem;margin:4px 0}.recipe-cost-kpis small,.cost-engineering-kpis small{color:#766d66}.cost-engineering-kpis article.is-alert{background:#fff1ee;border-color:#e6a69b}.cost-engineering-kpis article.is-warning{background:#fff8e8;border-color:#e8c981}.recipe-ingredient-head,.recipe-ingredient-row{display:grid;grid-template-columns:minmax(260px,2fr) minmax(85px,.7fr) 75px minmax(85px,.7fr) 80px minmax(110px,.8fr) minmax(110px,.8fr) 42px;gap:9px;align-items:center}.recipe-ingredient-head{padding:0 10px 7px;color:#776d65;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.recipe-ingredient-row{padding:10px;border:1px solid #e7e0d9;border-radius:14px;background:#fff}.recipe-ingredient-list{display:grid;gap:9px}.recipe-qty-cell{display:flex;flex-direction:column;gap:3px}.recipe-qty-cell small{font-size:.62rem;color:#83786e}.recipe-line-cost{display:flex;flex-direction:column}.recipe-line-cost strong{font-size:.84rem}.recipe-line-cost small{font-size:.61rem;color:#83786e}.recipe-cost-explainer,.professional-method-note{margin-top:14px;padding:12px 14px;border-left:4px solid #52735e;border-radius:10px;background:#f2f7f3;display:flex;gap:10px;align-items:flex-start}.recipe-cost-explainer span,.professional-method-note span{color:#5e665f;font-size:.82rem}.recipe-form-actions{display:flex;justify-content:flex-end;gap:10px}.source-record{padding:10px 12px;border-radius:10px;background:#f5f1ec;color:#6f665e;font-size:.78rem}
.cost-filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}.cost-engineering-table td small{display:block;color:#786f67;margin-top:3px}.cost-item-cell{display:flex;align-items:center;gap:10px;min-width:250px}.cost-item-cell img,.cost-item-placeholder{width:48px;height:48px;border-radius:10px;object-fit:cover;background:#eee8e2;display:grid;place-items:center;font-weight:900;color:#756a60}.cost-item-cell span:last-child{min-width:0}.cost-item-cell strong{display:block}.status-danger{background:#fff0ed!important;color:#9f3528!important;border-color:#e7b2a9!important}
.kitchen-manual-professional{margin-top:12px;border:1px solid #e1d7cd;border-radius:14px;padding:12px;background:#fbf9f6}.manual-box-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.manual-box-heading strong,.manual-box-heading small{display:block}.manual-box-heading small{color:#756c64;margin-top:3px}.kitchen-manual-list{display:grid;gap:9px}.kitchen-manual-row{display:grid;grid-template-columns:minmax(230px,2fr) minmax(110px,.8fr) 90px minmax(160px,1fr) 40px;gap:8px;align-items:end;padding:9px;border:1px solid #e8e0d8;border-radius:12px;background:#fff}.kitchen-manual-row label{margin:0}
.moment-item-row-simple{grid-template-columns:minmax(155px,.8fr) minmax(220px,1.7fr) minmax(170px,1.1fr) minmax(135px,.8fr) minmax(120px,.75fr) minmax(140px,.8fr) minmax(95px,.6fr) minmax(150px,1fr) 42px!important}.moment-item-row-simple .forecast-cost-field{grid-column:auto}.menu-product-card em{font-weight:800;color:#496453}.menu-product-card.is-cost-pending em{color:#9a671d}
@media(max-width:1050px){.catalog-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-ingredient-head{display:none}.recipe-ingredient-row{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-product-selector{grid-column:1/-1}.kitchen-manual-row{grid-template-columns:1fr 1fr}.kitchen-product-selector{grid-column:1/-1}.moment-item-row-simple{grid-template-columns:repeat(2,minmax(0,1fr))!important}.recipe-cost-kpis,.cost-engineering-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.catalog-picker-modal{padding:0}.catalog-picker-dialog{width:100vw;max-height:100vh;height:100vh;border-radius:0}.catalog-picker-toolbar{grid-template-columns:1fr;padding:12px 14px}.catalog-picker-header,.menu-period-tabs{padding-left:14px;padding-right:14px}.catalog-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 14px}.recipe-identity-grid{grid-template-columns:1fr}.recipe-photo-uploader{max-width:260px}.recipe-cost-kpis,.cost-engineering-kpis,.cost-filter-bar{grid-template-columns:1fr}.recipe-ingredient-row,.kitchen-manual-row,.moment-item-row-simple{grid-template-columns:1fr!important}.recipe-form-actions{flex-direction:column}.recipe-form-actions .button{width:100%}}
