:root {
  --bg: #f3f1ec;
  --surface: #ffffff;
  --surface-soft: #f8f7f4;
  --ink: #181612;
  --muted: #6f6a61;
  --line: #ded9cf;
  --line-strong: #c4bdae;
  --accent: #101010;
  --accent-soft: #ede9df;
  --warn-bg: #fff3d6;
  --warn-line: #e4bd5d;
  --danger: #9f2a2a;
  --ok: #31704b;
  --shadow: 0 18px 45px rgba(25, 23, 19, .08);
  --radius: 18px;
  --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--font);
  color: var(--ink);
  background: var(--bg);
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100vh; display: flex; }
.sidebar {
  width: 286px;
  background: #141414;
  color: #fff;
  padding: 24px 18px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  position: sticky;
  top: 0;
  height: 100vh;
}
.brand { display: flex; align-items: center; gap: 14px; }
.brand-mark {
  width: 48px; height: 48px; border-radius: 15px;
  display: grid; place-items: center;
  background: #fff; color: #111; font-weight: 800;
  letter-spacing: -.04em;
}
.brand h1 { margin: 0; font-size: 19px; line-height: 1.1; }
.brand p { margin: 5px 0 0; color: #b9b5ae; font-size: 13px; }
.nav { display: grid; gap: 8px; }
.nav-item {
  border: 1px solid transparent;
  background: transparent;
  color: #e6e2dc;
  text-align: left;
  padding: 13px 14px;
  border-radius: 12px;
  transition: .18s ease;
}
.nav-item:hover { background: rgba(255,255,255,.08); }
.nav-item.active { background: #fff; color: #111; }
.sidebar-note {
  margin-top: auto;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  border-radius: 14px;
  padding: 14px;
  display: grid;
  gap: 6px;
  color: #d8d4cc;
  font-size: 13px;
}
.sidebar-note strong { color: #fff; }
.main { flex: 1; min-width: 0; padding: 26px 28px 44px; }
.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
}
.topbar h2 { margin: 0; font-size: 28px; letter-spacing: -.035em; }
.eyebrow {
  margin: 0 0 6px;
  text-transform: uppercase;
  letter-spacing: .11em;
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
}
.top-actions, .hero-actions, .inline-actions, .form-actions, .filters { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.btn {
  border: 1px solid var(--line-strong);
  background: #fff;
  color: var(--ink);
  padding: 10px 13px;
  border-radius: 12px;
  min-height: 40px;
  transition: .16s ease;
  box-shadow: 0 1px 0 rgba(0,0,0,.03);
  white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(25,23,19,.08); }
.btn.primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.btn.ghost { background: transparent; }
.btn.danger { color: #fff; background: var(--danger); border-color: var(--danger); }
.btn.small { padding: 6px 9px; min-height: 32px; border-radius: 10px; font-size: 12px; }
.view { display: none; }
.view.active { display: block; }
.hero-card, .panel, .kpi-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.hero-card {
  padding: 26px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  margin-bottom: 18px;
}
.hero-card h3 { margin: 0 0 8px; font-size: 24px; line-height: 1.15; letter-spacing: -.04em; max-width: 760px; }
.hero-card p:not(.eyebrow) { margin: 0; color: var(--muted); max-width: 820px; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.kpi-card { padding: 18px; }
.kpi-card strong { display: block; font-size: 30px; letter-spacing: -.06em; }
.kpi-card span { color: var(--muted); font-size: 13px; }
.two-cols { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 18px; }
.grid-12 { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: 18px; }
.span-5 { grid-column: span 5; }
.span-6 { grid-column: span 6; }
.span-7 { grid-column: span 7; }
.panel { padding: 20px; min-width: 0; }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 16px; }
.panel-head.wrap { align-items: flex-start; flex-wrap: wrap; }
.panel h3 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
.muted { color: var(--muted); font-size: 12px; }
.form-stack { display: grid; gap: 14px; }
label, .label-line { display: grid; gap: 6px; color: var(--muted); font-weight: 650; font-size: 12px; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line-strong);
  background: #fff;
  color: var(--ink);
  border-radius: 12px;
  padding: 11px 12px;
  outline: none;
}
input:focus, select:focus, textarea:focus { border-color: #111; box-shadow: 0 0 0 3px rgba(0,0,0,.08); }
textarea { resize: vertical; }
.check-list { border: 1px solid var(--line); border-radius: 14px; padding: 8px; display: grid; gap: 6px; max-height: 260px; overflow: auto; background: var(--surface-soft); }
.check-option {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 9px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid transparent;
}
.check-option:hover { border-color: var(--line-strong); }
.check-option input { width: auto; margin-top: 2px; }
.check-option strong { font-size: 13px; }
.check-option span { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 14px; }
.table-wrap.wide { max-height: calc(100vh - 220px); }
.data-table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 740px; }
.data-table th, .data-table td { border-bottom: 1px solid var(--line); padding: 10px 11px; text-align: left; vertical-align: top; }
.data-table th { position: sticky; top: 0; z-index: 1; background: #111; color: #fff; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.data-table tbody tr:hover td { background: #faf8f2; }
.data-table td { font-size: 13px; }
.data-table tr:last-child td { border-bottom: 0; }
.link-btn { border: 0; padding: 0; background: transparent; color: #111; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.chip-list { display: flex; flex-wrap: wrap; gap: 5px; }
.chip {
  display: inline-flex; align-items: center; gap: 4px;
  border: 1px solid var(--line-strong);
  background: var(--surface-soft);
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  white-space: nowrap;
}
.chip.warn { background: var(--warn-bg); border-color: var(--warn-line); }
.status-select, .mini-input { min-width: 120px; padding: 7px 8px; border-radius: 9px; font-size: 12px; }
.mini-input.date { min-width: 130px; }
.warnings { display: grid; gap: 8px; margin-bottom: 12px; }
.warning {
  border: 1px solid var(--warn-line);
  background: var(--warn-bg);
  color: #5c4512;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 13px;
}
.summary-list, .activity-log { display: grid; gap: 10px; }
.summary-row, .log-row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}
.summary-row:last-child, .log-row:last-child { border-bottom: 0; padding-bottom: 0; }
.log-row { display: block; color: var(--muted); font-size: 13px; }
.log-row strong { color: var(--ink); display: block; margin-bottom: 2px; }
.sheet-header {
  display: grid;
  gap: 16px;
}
.sheet-title-card {
  background: #111;
  color: #fff;
  border-radius: var(--radius);
  padding: 22px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
}
.sheet-title-card h3 { margin: 0 0 8px; font-size: 30px; letter-spacing: -.05em; }
.sheet-title-card p { margin: 0; color: #d9d5cc; }
.sheet-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.sheet-meta .chip { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.18); }
.drawings-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 18px; }
.drawing-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.drawing-card header { padding: 16px 16px 12px; border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.drawing-card header h4 { margin: 0 0 4px; font-size: 17px; }
.check-table { width: 100%; border-collapse: collapse; }
.check-table th, .check-table td { border-bottom: 1px solid var(--line); padding: 9px; font-size: 12px; text-align: left; vertical-align: top; }
.check-table th { background: #fff; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; font-size: 10px; }
.check-table tr:last-child td { border-bottom: 0; }
.app-tag { font-weight: 750; }
.app-tag.ok { color: var(--ok); }
.app-tag.warn { color: #9b6d00; }
.app-tag.no { color: var(--muted); }
.progress-bar { height: 8px; background: #e7e1d5; border-radius: 999px; overflow: hidden; margin-top: 10px; }
.progress-bar span { display: block; height: 100%; background: #111; width: 0; }
.matrix-stage { margin-bottom: 16px; }
.matrix-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.matrix-card { border: 1px solid var(--line); border-radius: 14px; padding: 13px; background: var(--surface-soft); }
.matrix-card h4 { margin: 0 0 6px; }
.matrix-card p { margin: 0; color: var(--muted); font-size: 12px; }
.meta-list { display: grid; grid-template-columns: 150px 1fr; gap: 10px; margin: 0; }
.meta-list dt { color: var(--muted); font-weight: 700; }
.meta-list dd { margin: 0; }
.file-label input { margin-top: 6px; }
.toast {
  position: fixed;
  right: 22px;
  bottom: 22px;
  background: #111;
  color: #fff;
  border-radius: 13px;
  padding: 12px 14px;
  box-shadow: var(--shadow);
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: .2s ease;
  max-width: 360px;
}
.toast.show { opacity: 1; transform: translateY(0); }
@media (max-width: 1180px) {
  .kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .two-cols, .drawings-grid { grid-template-columns: 1fr; }
  .span-5, .span-6, .span-7 { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .app-shell { display: block; }
  .sidebar { width: auto; height: auto; position: static; }
  .nav { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .main { padding: 20px 14px 30px; }
  .topbar, .hero-card, .sheet-title-card { flex-direction: column; align-items: stretch; }
  .kpi-grid { grid-template-columns: 1fr; }
}


.preview-box {
  border: 1px solid var(--border);
  background: #fafafa;
  border-radius: 16px;
  padding: 12px;
}

.checklist-preview {
  max-height: 340px;
  overflow: auto;
  font-size: 12px;
}

.preview-drawing {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
  margin-top: 10px;
  overflow: hidden;
}

.preview-drawing header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  background: #f5f5f5;
}

.preview-drawing header span {
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}

.mini-check-items {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mini-check-items li {
  display: grid;
  grid-template-columns: 58px minmax(160px, 1fr) minmax(90px, .6fr) 112px;
  gap: 8px;
  align-items: start;
  padding: 8px 10px;
  border-bottom: 1px solid var(--border);
}

.mini-check-items li:last-child { border-bottom: 0; }
.mini-check-items li span { color: var(--muted); font-variant-numeric: tabular-nums; }
.mini-check-items li strong { font-weight: 700; }
.mini-check-items li em { font-style: normal; color: var(--muted); }
.mini-check-items li small { color: var(--muted); text-align: right; }

.matrix-details {
  margin-top: 12px;
  border-top: 1px solid var(--border);
  padding-top: 10px;
}

.matrix-details summary {
  cursor: pointer;
  font-weight: 700;
  margin-bottom: 8px;
}

@media (max-width: 900px) {
  .mini-check-items li { grid-template-columns: 54px 1fr; }
  .mini-check-items li em, .mini-check-items li small { grid-column: 2; text-align: left; }
  .preview-drawing header { align-items: flex-start; flex-direction: column; }
}

.chip.strong {
  font-weight: 800;
  letter-spacing: .02em;
  background: #111;
  color: #fff;
  border-color: #111;
}

.drawing-group-line {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 10px;
  align-items: start;
  margin: 4px 0;
}

.drawing-group-line strong {
  font-size: 11px;
  letter-spacing: .02em;
}

.type-section {
  margin-top: 18px;
}

.type-section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  padding: 0 4px;
}

.type-section-head h3 {
  margin: 0;
  font-size: 15px;
  letter-spacing: .02em;
}

.matrix-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 14px;
  padding: 13px;
  margin-bottom: 14px;
}
.matrix-toolbar strong { display: block; font-size: 13px; margin-bottom: 4px; }
.matrix-toolbar span { color: var(--muted); font-size: 12px; }
.matrix-help {
  border: 1px solid var(--warn-line);
  background: var(--warn-bg);
  color: #5c4512 !important;
  border-radius: 12px;
  padding: 9px 10px;
  margin: 8px 0 10px !important;
}
.matrix-table-wrap { max-height: 360px; }
.matrix-edit-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.matrix-edit-table th,
.matrix-edit-table td { border-bottom: 1px solid var(--line); padding: 8px; font-size: 12px; text-align: left; vertical-align: middle; }
.matrix-edit-table th { background: #111; color: #fff; text-transform: uppercase; letter-spacing: .04em; font-size: 10px; position: sticky; top: 0; z-index: 1; }
.matrix-edit-table tr.inactive td { opacity: .48; background: #f1eee7; }
.matrix-input { min-width: 110px; padding: 7px 8px; border-radius: 9px; font-size: 12px; text-transform: uppercase; }
.matrix-input.code { min-width: 70px; }
.matrix-input.item-title { min-width: 220px; }
.inline-check { width: auto; min-width: 18px; height: 18px; }
.matrix-add-form {
  border: 1px dashed var(--line-strong);
  border-radius: 14px;
  padding: 12px;
  margin-top: 12px;
  background: #fff;
}
.matrix-add-form strong { display: block; font-size: 12px; margin-bottom: 9px; }
.matrix-add-grid { display: grid; grid-template-columns: 80px 140px minmax(180px, 1fr) 170px auto; gap: 8px; align-items: center; }
.matrix-add-grid input,
.matrix-add-grid select { padding: 8px 9px; border-radius: 10px; text-transform: uppercase; }
@media (max-width: 1180px) {
  .matrix-grid { grid-template-columns: 1fr; }
  .matrix-toolbar { flex-direction: column; }
  .matrix-add-grid { grid-template-columns: 1fr; }
}

/* MVP 0.5 · matriz com edição expandida e gestão de desenhos */
.matrix-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}
.matrix-card-head h4 { margin-bottom: 6px; }
.matrix-card-head .btn { flex: 0 0 auto; }
.matrix-card.custom-drawing {
  border-style: dashed;
  background: #fffdf7;
}
.matrix-card:has(.matrix-details[open]) {
  grid-column: 1 / -1;
  background: #fff;
  box-shadow: var(--shadow);
}
.matrix-card:has(.matrix-details[open]) .matrix-table-wrap {
  max-height: none;
  overflow: visible;
}
.matrix-card:has(.matrix-details[open]) .matrix-edit-table {
  min-width: 0;
  width: 100%;
  table-layout: fixed;
}
.matrix-card:has(.matrix-details[open]) .matrix-edit-table th:nth-child(1),
.matrix-card:has(.matrix-details[open]) .matrix-edit-table td:nth-child(1) { width: 64px; }
.matrix-card:has(.matrix-details[open]) .matrix-edit-table th:nth-child(2),
.matrix-card:has(.matrix-details[open]) .matrix-edit-table td:nth-child(2) { width: 92px; }
.matrix-card:has(.matrix-details[open]) .matrix-edit-table th:nth-child(3),
.matrix-card:has(.matrix-details[open]) .matrix-edit-table td:nth-child(3) { width: 180px; }
.matrix-card:has(.matrix-details[open]) .matrix-edit-table th:nth-child(5),
.matrix-card:has(.matrix-details[open]) .matrix-edit-table td:nth-child(5) { width: 190px; }
.matrix-card:has(.matrix-details[open]) .matrix-edit-table th:nth-child(6),
.matrix-card:has(.matrix-details[open]) .matrix-edit-table td:nth-child(6) { width: 110px; }
.matrix-card:has(.matrix-details[open]) .matrix-input {
  width: 100%;
  min-width: 0;
}
.matrix-new-drawing {
  border: 1px dashed var(--line-strong);
  background: #fff;
  border-radius: 14px;
  padding: 12px 13px;
  margin-bottom: 14px;
}
.matrix-new-drawing summary {
  cursor: pointer;
  font-weight: 800;
  font-size: 13px;
}
.matrix-new-grid {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(140px, 1fr) minmax(240px, 2fr) 120px 140px auto;
  gap: 10px;
  align-items: end;
  margin-top: 12px;
}
.matrix-new-grid label {
  color: var(--muted);
  font-weight: 700;
  font-size: 11px;
}
.matrix-new-grid input,
.matrix-new-grid select { text-transform: uppercase; }
@media (max-width: 1280px) {
  .matrix-new-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .matrix-card-head { flex-direction: column; }
  .matrix-new-grid { grid-template-columns: 1fr; }
  .matrix-card:has(.matrix-details[open]) .matrix-edit-table { min-width: 760px; }
  .matrix-card:has(.matrix-details[open]) .matrix-table-wrap { overflow-x: auto; }
}

/* MVP 0.6 · revisão visual editorial / portfólio arquitetônico */
:root {
  --bg: #ffffff;
  --surface: #ffffff;
  --surface-soft: #fafafa;
  --border: #d6d0c7;
  --paper: #ffffff;
  --ink: #0d0d0b;
  --muted: #595650;
  --line: #d6d0c7;
  --line-strong: #1a1a18;
  --accent: #0d0d0b;
  --accent-soft: #ebe7df;
  --warn-bg: #f6f0df;
  --warn-line: #b9a77d;
  --danger: #7c2828;
  --ok: #1f5f3c;
  --shadow: none;
  --radius: 0px;
  --font: "Helvetica Neue", Arial, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html { background: var(--bg); }
body {
  background: var(--bg);
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: .035em;
  font-size: 13px;
  line-height: 1.42;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

button,
input,
select,
textarea,
.data-table,
.check-table,
.matrix-edit-table {
  font-family: var(--font);
  text-transform: uppercase;
  letter-spacing: .035em;
}

.app-shell {
  background: #ffffff;
}

.sidebar {
  width: 248px;
  background: #f7f5f1;
  color: var(--ink);
  border-right: 1px solid var(--ink);
  padding: 30px 18px 20px;
  gap: 44px;
}

.brand {
  align-items: flex-start;
  gap: 12px;
}

.brand-mark {
  width: 34px;
  height: 34px;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: -.02em;
}

.brand h1 {
  font-size: 14px;
  line-height: 1.05;
  letter-spacing: .02em;
  font-weight: 900;
}

.brand p {
  color: var(--ink);
  margin-top: 7px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .08em;
}

.nav {
  gap: 0;
  border-top: 1px solid var(--ink);
}

.nav-item {
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  padding: 15px 0;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .06em;
}

.nav-item:hover {
  background: transparent;
  font-weight: 800;
}

.nav-item.active {
  background: transparent;
  color: var(--ink);
  font-weight: 900;
  border-bottom-color: var(--ink);
}

.sidebar-note {
  border: 1px solid var(--ink);
  background: transparent;
  border-radius: 0;
  color: var(--ink);
  padding: 14px 12px;
  gap: 8px;
  font-size: 10px;
  letter-spacing: .055em;
}

.sidebar-note strong {
  color: var(--ink);
  font-weight: 900;
}

.main {
  padding: 28px 34px 54px;
}

.topbar {
  border-bottom: 1px solid var(--ink);
  padding-bottom: 18px;
  margin-bottom: 28px;
}

.topbar h2 {
  font-size: clamp(24px, 3vw, 48px);
  letter-spacing: -.015em;
  line-height: .95;
  font-weight: 900;
}

.eyebrow,
.muted,
label,
.label-line,
.chip,
.data-table th,
.check-table th,
.matrix-edit-table th,
.matrix-new-grid label {
  letter-spacing: .075em;
}

.eyebrow {
  color: var(--ink);
  font-size: 10px;
  font-weight: 500;
}

.muted {
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
}

.top-actions,
.hero-actions,
.inline-actions,
.form-actions,
.filters {
  gap: 8px;
}

.btn {
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  border-radius: 0;
  min-height: 36px;
  padding: 9px 12px;
  box-shadow: none;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
}

.btn:hover {
  transform: none;
  box-shadow: none;
  background: var(--ink);
  color: #fff;
}

.btn.primary {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.btn.primary:hover {
  background: transparent;
  color: var(--ink);
}

.btn.ghost {
  background: transparent;
}

.btn.danger {
  background: transparent;
  color: var(--danger);
  border-color: var(--danger);
}

.btn.danger:hover {
  background: var(--danger);
  color: #fff;
}

.btn.small {
  border-radius: 0;
  font-size: 10px;
  padding: 6px 8px;
  min-height: 30px;
}

.hero-card,
.panel,
.kpi-card,
.drawing-card,
.matrix-card,
.matrix-new-drawing,
.matrix-add-form,
.warning,
.toast,
.sheet-title-card {
  border-radius: 0;
  box-shadow: none;
}

.hero-card,
.panel,
.kpi-card {
  background: #ffffff;
  border: 1px solid var(--ink);
}

.hero-card {
  padding: 28px;
  margin-bottom: 18px;
}

.hero-card h3 {
  font-size: clamp(22px, 2.4vw, 36px);
  line-height: 1.03;
  letter-spacing: -.01em;
  font-weight: 900;
  max-width: 940px;
}

.hero-card p:not(.eyebrow) {
  color: var(--ink);
  font-size: 11px;
  font-weight: 500;
  max-width: 920px;
}

.kpi-grid,
.two-cols,
.grid-12,
.drawings-grid,
.matrix-grid {
  gap: 14px;
}

.kpi-card {
  padding: 16px;
}

.kpi-card strong {
  font-size: 34px;
  font-weight: 900;
  letter-spacing: -.03em;
}

.kpi-card span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .075em;
}

.panel {
  padding: 18px;
}

.panel h3,
.panel-head h3,
.type-section-head h3,
.matrix-card h4,
.drawing-card header h4 {
  font-weight: 900;
  letter-spacing: .01em;
}

.panel h3 {
  font-size: 16px;
}

.panel-head {
  border-bottom: 1px solid var(--ink);
  padding-bottom: 12px;
  margin-bottom: 16px;
}

label,
.label-line {
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
}

input,
select,
textarea {
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  border-radius: 0;
  padding: 11px 10px;
  font-size: 11px;
  font-weight: 650;
}

input::placeholder,
textarea::placeholder {
  color: var(--muted);
  opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--ink);
  box-shadow: inset 0 0 0 1px var(--ink);
}

.check-list {
  border: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  padding: 0;
  gap: 0;
  max-height: 280px;
}

.check-option {
  background: transparent;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  padding: 12px 11px;
}

.check-option:last-child { border-bottom: 0; }
.check-option:hover { border-color: var(--line); background: rgba(13,13,11,.035); }
.check-option strong { font-size: 12px; font-weight: 900; letter-spacing: .025em; }
.check-option span { color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: .05em; }

.table-wrap {
  border: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
}

.data-table th,
.data-table td,
.check-table th,
.check-table td,
.matrix-edit-table th,
.matrix-edit-table td {
  border-bottom: 1px solid var(--line);
}

.data-table th,
.matrix-edit-table th {
  background: var(--bg);
  color: var(--ink);
  border-bottom: 1px solid var(--ink);
  font-size: 10px;
  font-weight: 900;
}

.data-table td {
  font-size: 11px;
  font-weight: 500;
}

.data-table tbody tr:hover td {
  background: rgba(13,13,11,.035);
}

.link-btn {
  color: var(--ink);
  font-weight: 900;
  text-decoration: none;
  border-bottom: 1px solid var(--ink);
  letter-spacing: .055em;
}

.chip {
  border-radius: 0;
  border-color: var(--ink);
  background: transparent;
  padding: 3px 6px;
  font-size: 9px;
  font-weight: 600;
}

.chip.strong {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
  font-weight: 900;
}

.chip.warn {
  background: transparent;
  border-color: var(--warn-line);
}

.status-select,
.mini-input {
  border-radius: 0;
  font-size: 10px;
}

.warning,
.matrix-help {
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink) !important;
  font-size: 10px;
  font-weight: 600;
}

.summary-row,
.log-row {
  border-bottom: 1px solid var(--line);
}

.log-row,
.summary-row,
.meta-list,
.sheet-title-card p {
  font-size: 11px;
  font-weight: 500;
}

.sheet-title-card {
  background: var(--ink);
  color: #fff;
  padding: 24px;
}

.sheet-title-card h3 {
  font-size: clamp(32px, 4vw, 64px);
  font-weight: 900;
  letter-spacing: -.03em;
}

.sheet-title-card p {
  color: #fff;
}

.sheet-meta .chip {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,.7);
}

.drawing-card {
  background: transparent;
  border: 1px solid var(--ink);
}

.drawing-card header {
  background: transparent;
  border-bottom: 1px solid var(--ink);
}

.check-table th {
  background: transparent;
  color: var(--ink);
  border-bottom: 1px solid var(--ink);
  font-size: 9px;
  font-weight: 900;
}

.check-table td {
  font-size: 10px;
  font-weight: 500;
}

.progress-bar {
  height: 5px;
  background: transparent;
  border: 1px solid var(--ink);
  border-radius: 0;
}

.progress-bar span {
  background: var(--ink);
}

.matrix-toolbar,
.matrix-new-drawing,
.matrix-add-form,
.matrix-card {
  background: transparent;
  border-color: var(--ink);
}

.matrix-toolbar {
  border-radius: 0;
  padding: 12px 0 14px;
  border-left: 0;
  border-right: 0;
}

.matrix-toolbar strong,
.matrix-new-drawing summary,
.matrix-add-form strong {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
}

.matrix-toolbar span,
.matrix-card p {
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
}

.matrix-card {
  padding: 14px;
}

.matrix-card.custom-drawing {
  background: transparent;
  border-style: dashed;
}

.matrix-card:has(.matrix-details[open]) {
  background: transparent;
  border-width: 2px;
}

.matrix-details {
  border-top: 1px solid var(--ink);
}

.matrix-details summary {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
}

.matrix-input,
.matrix-add-grid input,
.matrix-add-grid select,
.matrix-new-grid input,
.matrix-new-grid select {
  border-radius: 0;
  font-size: 10px;
  font-weight: 650;
}

.matrix-edit-table th {
  background: var(--bg);
  color: var(--ink);
}

.matrix-edit-table td {
  font-size: 10px;
}

.matrix-edit-table tr.inactive td {
  opacity: .45;
  background: rgba(13,13,11,.035);
}

.inline-check {
  accent-color: var(--ink);
}

.toast {
  background: var(--ink);
  color: #fff;
  border: 1px solid var(--ink);
  font-size: 11px;
  font-weight: 700;
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--ink); border: 3px solid var(--bg); }

@media (max-width: 860px) {
  .sidebar {
    width: auto;
    border-right: 0;
    border-bottom: 1px solid var(--ink);
  }
  .nav {
    grid-template-columns: repeat(5, minmax(0,1fr));
  }
  .main {
    padding: 20px 14px 32px;
  }
}


/* === MVP 0.6.2: controle sem rolagem horizontal e link de prancha reforçado === */
#view-controle .panel {
  padding: 18px;
}

#view-controle .panel-head.wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 34%);
  align-items: start;
  gap: 20px;
}

#view-controle .filters {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

#view-controle .table-wrap.wide {
  overflow-x: hidden;
  overflow-y: visible;
  max-height: none;
}

#controlTable.control-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

#controlTable.control-table th,
#controlTable.control-table td {
  padding: 8px 6px;
  font-size: 10px;
  line-height: 1.25;
  vertical-align: top;
  white-space: normal;
  word-break: normal;
  overflow-wrap: anywhere;
}

#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) { width: 6.5%; }
#controlTable.control-table th:nth-child(2),
#controlTable.control-table td:nth-child(2) { width: 6.5%; }
#controlTable.control-table th:nth-child(3),
#controlTable.control-table td:nth-child(3) { width: 8%; }
#controlTable.control-table th:nth-child(4),
#controlTable.control-table td:nth-child(4) { width: 6%; }
#controlTable.control-table th:nth-child(5),
#controlTable.control-table td:nth-child(5) { width: 18%; }
#controlTable.control-table th:nth-child(6),
#controlTable.control-table td:nth-child(6) { width: 8%; }
#controlTable.control-table th:nth-child(7),
#controlTable.control-table td:nth-child(7) { width: 8%; }
#controlTable.control-table th:nth-child(8),
#controlTable.control-table td:nth-child(8) { width: 7.5%; }
#controlTable.control-table th:nth-child(9),
#controlTable.control-table td:nth-child(9) { width: 6%; }
#controlTable.control-table th:nth-child(10),
#controlTable.control-table td:nth-child(10) { width: 7%; }
#controlTable.control-table th:nth-child(11),
#controlTable.control-table td:nth-child(11) { width: 7%; }
#controlTable.control-table th:nth-child(12),
#controlTable.control-table td:nth-child(12) { width: 6.5%; }
#controlTable.control-table th:nth-child(13),
#controlTable.control-table td:nth-child(13) { width: 5%; }

#controlTable .chip-list {
  gap: 3px;
}

#controlTable .chip {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  padding: 3px 5px;
  line-height: 1.15;
}

#controlTable .status-select,
#controlTable .mini-input {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: 7px 5px;
  font-size: 9px;
  line-height: 1.15;
}

#controlTable .mini-input.date {
  min-width: 0;
}

#controlTable .btn.small {
  width: 100%;
  min-width: 0;
  padding: 6px 3px;
  font-size: 8px;
  white-space: normal;
}

#controlTable .sheet-link {
  display: inline-block;
  cursor: pointer;
  text-decoration: none;
  border-bottom: 1px solid var(--ink);
}

#controlTable .sheet-link:hover,
#controlTable .sheet-link:focus-visible {
  background: var(--ink);
  color: #fff;
  outline: 0;
}

@media (max-width: 1280px) {
  #view-controle .table-wrap.wide {
    overflow-x: auto;
  }
  #controlTable.control-table {
    min-width: 1180px;
  }
}

/* MVP 0.7 · PARÂMETROS DE CADASTRO */
.params-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
}
.params-block {
  border: 1px solid var(--line);
  background: var(--surface-soft);
  border-radius: 14px;
  padding: 14px;
}
.params-block-wide { grid-column: 1 / -1; }
.params-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}
.params-head h3 {
  margin: 0 0 4px;
  font-size: 15px;
  letter-spacing: .03em;
}
.params-table-wrap { margin-bottom: 12px; }
.params-table { min-width: 0; }
.params-table th,
.params-table td { padding: 8px 9px; vertical-align: middle; }
.params-table input[type="checkbox"] { width: auto; }
.param-input {
  min-width: 0;
  width: 100%;
  padding: 8px 9px;
  border-radius: 0;
  text-transform: uppercase;
  font-weight: 700;
}
.param-input.prefix { max-width: 90px; }
.param-add-form {
  border: 1px dashed var(--line-strong);
  background: #fff;
  padding: 12px;
  display: grid;
  gap: 10px;
}
.param-add-form strong {
  font-size: 11px;
  letter-spacing: .08em;
}
.param-add-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}
.param-add-grid.stage { grid-template-columns: minmax(0, 1fr) 120px auto; }
.param-add-grid.category { grid-template-columns: minmax(180px, .35fr) minmax(0, 1fr) auto; }
.param-add-grid input,
.param-add-grid select { border-radius: 0; text-transform: uppercase; font-weight: 700; }
@media (max-width: 900px) {
  .param-add-grid,
  .param-add-grid.stage,
  .param-add-grid.category { grid-template-columns: 1fr; }
}

/* MVP 0.7.3 — cadastro personalizado / lote */
.is-hidden { display: none !important; }
.nested-fields { border-top: 1px solid var(--line); padding-top: 12px; }
.batch-help {
  border: 1px dashed var(--line-strong);
  padding: 12px;
  display: grid;
  gap: 4px;
  background: #fff;
}
.batch-help strong { font-size: 12px; letter-spacing: .08em; }
.batch-help span { color: var(--muted); font-size: 11px; line-height: 1.4; }
.undefined-checklist { display: grid; gap: 12px; }
.undefined-checklist h3 { margin: 0; }
.undefined-checklist p { max-width: 760px; color: var(--muted); line-height: 1.5; }

/* MVP 0.7.4 — etapa no lote e edição da lista cadastrada */
.queue-mini-select,
.queue-drawing-select {
  width: 100%;
  min-width: 150px;
  border: 1px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 6px 8px;
}
.queue-drawing-select {
  min-width: 220px;
  height: auto;
  line-height: 1.25;
}
#queueTable td:nth-child(2),
#queueTable td:nth-child(3),
#queueTable td:nth-child(5) {
  vertical-align: top;
}

/* MVP 0.7.5 · SELEÇÃO POR HIGHLIGHT E ALTERAÇÃO EM LOTE */
.bulk-action-bar {
  border: 1px solid var(--ink);
  background: rgba(16,16,16,.035);
  padding: 12px;
  margin: 14px 0 16px;
  display: grid;
  grid-template-columns: minmax(180px, .28fr) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.bulk-action-bar.is-hidden { display: none; }
.bulk-title {
  display: grid;
  gap: 4px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.bulk-title strong {
  font-size: 11px;
  font-weight: 900;
}
.bulk-title span {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}
.bulk-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
  align-items: end;
}
.bulk-fields label {
  display: grid;
  gap: 4px;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;
}
.bulk-fields select,
.bulk-fields input {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--ink);
  background: transparent;
  padding: 8px 9px;
  min-height: 36px;
  font-size: 10px;
  text-transform: uppercase;
}
.bulk-fields .btn {
  min-height: 36px;
  padding: 8px 10px;
  border-radius: 0;
  font-size: 10px;
  box-shadow: none;
}
.selectable-row {
  cursor: pointer;
  transition: background .12s ease, outline-color .12s ease, box-shadow .12s ease;
}
.selectable-row:hover td {
  background: rgba(16,16,16,.025);
}
.selectable-row.is-selected td {
  background: #ece7dc !important;
  box-shadow: inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink);
}
.selectable-row.is-selected td:first-child {
  box-shadow: inset 2px 0 0 var(--ink), inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink);
}
.selectable-row.is-selected td:last-child {
  box-shadow: inset -2px 0 0 var(--ink), inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink);
}
#sheetBulkBar {
  margin: 0 0 18px;
}
.check-table .selectable-row.is-selected td {
  background: #ece7dc !important;
}

@media (max-width: 1280px) {
  .bulk-action-bar {
    grid-template-columns: 1fr;
  }
  .bulk-fields {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
  }
}

@media (max-width: 820px) {
  .bulk-fields {
    grid-template-columns: 1fr;
  }
}


/* MVP 0.7.6 · PARÂMETROS DE STATUS E EQUIPE */
.param-add-grid.person {
  grid-template-columns: minmax(0, 1fr) auto auto auto;
}
.inline-param-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--line);
  padding: 8px 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  white-space: nowrap;
}
.inline-param-check input { width: auto; }
.params-status-table td:nth-child(1),
.params-people-table td:nth-child(1),
.params-people-table td:nth-child(3),
.params-people-table td:nth-child(4) {
  width: 90px;
  text-align: center;
}
@media (max-width: 900px) {
  .param-add-grid.person { grid-template-columns: 1fr; }
}


/* MVP 0.7.7 · fundo branco e correções de variáveis */
html, body, .main { background: #ffffff; }
.batch-help, .param-add-form, .matrix-new-drawing, .matrix-add-form, .matrix-card, .matrix-toolbar, .table-wrap, .check-list, .drawing-card { background: #ffffff; }


/* MVP 0.7.8 · botões explícitos de salvamento em Matriz e Parâmetros */
.matrix-save-line {
  display: flex;
  justify-content: flex-end;
  margin: 8px 0 10px;
}
.params-save-toolbar {
  border: 1px solid var(--ink);
  background: #ffffff;
  padding: 12px;
  margin-bottom: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
}
.params-save-toolbar strong {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
}
.params-save-toolbar span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .055em;
}
@media (max-width: 760px) {
  .params-save-toolbar { flex-direction: column; align-items: stretch; }
  .matrix-save-line { justify-content: stretch; }
  .matrix-save-line .btn { width: 100%; }
}


/* MVP 0.7.10 · seleção única por highlight: clique, CTRL, SHIFT e arraste */
.selectable-row,
.selectable-option {
  user-select: none;
  -webkit-user-select: none;
}
.selectable-option {
  cursor: pointer;
  outline: none;
}
.selectable-option.is-selected,
.check-option.selectable-option.is-selected {
  background: #ece7dc !important;
  box-shadow: inset 2px 0 0 var(--ink), inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink), inset -1px 0 0 var(--ink);
}
.selectable-option:focus-visible {
  box-shadow: inset 0 0 0 2px var(--ink);
}
.selectable-list {
  display: grid;
  gap: 0;
  border: 1px solid var(--ink);
  background: #fff;
  max-height: 150px;
  overflow: auto;
}
.queue-drawing-option {
  padding: 6px 8px;
  border-bottom: 1px solid var(--line);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
}
.queue-drawing-option:last-child { border-bottom: 0; }
.queue-drawing-option:hover,
.check-option.selectable-option:hover {
  background: rgba(16,16,16,.04);
}
#drawingChoices .check-option.selectable-option {
  min-height: 54px;
}


/* MVP 0.7.10 · revelar itens não aplicáveis na matriz */
.matrix-save-line {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin: 8px 0 10px;
}
.matrix-edit-table tr.inactive td {
  opacity: .58;
}
.matrix-edit-table tr.inactive select[data-matrix-field="applicability"] {
  border-style: dashed;
}
@media (max-width: 780px) {
  .matrix-save-line { justify-content: stretch; flex-direction: column; }
  .matrix-save-line .btn { width: 100%; }
}


/* MVP 0.7.12 · setas de abertura, separação entre informação e ação */
details > summary {
  list-style: none;
}
details > summary::-webkit-details-marker {
  display: none;
}
.matrix-details > summary,
.matrix-new-drawing > summary,
.params-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
}
.matrix-details > summary::before,
.matrix-new-drawing > summary::before,
.params-summary::before {
  content: "→";
  display: inline-flex;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ink);
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  flex: 0 0 auto;
}
.matrix-details[open] > summary::before,
.matrix-new-drawing[open] > summary::before,
.params-details[open] > .params-summary::before {
  content: "↓";
  background: var(--ink);
  color: #fff;
}
.params-details {
  display: block;
}
.params-summary {
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ink);
}
.params-summary h3 {
  margin: 0 0 4px;
  font-size: 15px;
  letter-spacing: .03em;
}
.info-list {
  align-items: center;
}
.info-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--line);
  background: #f5f5f5;
  color: var(--muted);
  padding: 3px 7px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .06em;
  white-space: nowrap;
  cursor: default;
  user-select: none;
}
.info-pill.warn {
  border-color: var(--warn-line);
  background: var(--warn-bg);
  color: #6f5518;
}
.info-pill.subtle {
  border-color: transparent;
  background: transparent;
  color: var(--muted);
  padding-left: 0;
  padding-right: 0;
}
.matrix-toolbar .chip-list {
  align-items: center;
}
.matrix-toolbar .info-pill {
  height: 30px;
}
.matrix-card .btn.danger {
  border-color: var(--danger);
  color: var(--danger);
}
.matrix-card .btn.danger:hover {
  background: var(--danger);
  color: #fff;
}
.matrix-card .chip,
.params-table .chip {
  cursor: default;
}


/* MVP 0.7.15 · dashboard com gráficos em rosca */
.dashboard-indicators-panel {
  margin-bottom: 18px;
}
.dashboard-filter-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 8px;
  margin-bottom: 16px;
}
.dashboard-filter-grid label {
  display: grid;
  gap: 5px;
}
.dashboard-charts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.chart-card {
  border: 1px solid var(--ink);
  background: #fff;
  padding: 12px;
  min-height: 120px;
}
.chart-card h4 {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .06em;
}
.chart-row {
  display: grid;
  gap: 4px;
  margin-bottom: 8px;
}
.chart-row:last-child { margin-bottom: 0; }
.chart-row-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
  font-size: 10px;
  font-weight: 700;
}
.chart-row-head span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chart-row-head strong {
  font-size: 11px;
  font-weight: 900;
}
.chart-track {
  height: 7px;
  border: 1px solid var(--ink);
  background: #fff;
}
.chart-track span {
  display: block;
  height: 100%;
  background: var(--ink);
}
.matrix-details > summary::before,
.matrix-new-drawing > summary::before,
.params-summary::before {
  content: none !important;
  display: none !important;
}
details > summary::-webkit-details-marker {
  display: inline-block !important;
}
.matrix-details > summary,
.matrix-new-drawing > summary,
.params-summary {
  display: list-item !important;
  list-style: disclosure-closed inside;
  padding-left: 0;
}
.matrix-details[open] > summary,
.matrix-new-drawing[open] > summary,
.params-details[open] > .params-summary {
  list-style-type: disclosure-open;
}
@media (max-width: 1380px) {
  .dashboard-filter-grid { grid-template-columns: repeat(4, minmax(140px, 1fr)); }
  .dashboard-charts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .dashboard-filter-grid, .dashboard-charts { grid-template-columns: 1fr; }
}


/* MVP 0.7.14 · alteração em lote na lista cadastrada */
#queueBulkBar {
  margin: 12px 0 16px;
}
.queue-bulk-fields {
  grid-template-columns: minmax(150px, .7fr) minmax(150px, .7fr) minmax(220px, 1.4fr) auto auto;
}
.queue-bulk-drawings {
  display: grid;
  gap: 4px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
}
.queue-bulk-drawing-list {
  max-height: 112px;
  min-height: 36px;
}
#queueTable .selectable-row.is-selected td {
  background: #ece7dc !important;
}
@media (max-width: 1280px) {
  .queue-bulk-fields { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
  .queue-bulk-drawings { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .queue-bulk-fields { grid-template-columns: 1fr; }
}


/* MVP 0.7.15 · gráficos do dashboard em formato rosca */
.dashboard-charts {
  align-items: stretch;
}
.donut-card {
  min-height: 270px;
  display: grid;
  grid-template-rows: auto 1fr auto;
}
.donut-layout {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}
.donut-chart {
  width: 132px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(var(--donut-segments));
  position: relative;
  border: 1px solid var(--ink);
  flex: 0 0 auto;
}
.donut-chart::after {
  content: '';
  position: absolute;
  inset: 28px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--ink);
}
.donut-center {
  position: absolute;
  inset: 28px;
  z-index: 1;
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
  line-height: 1;
}
.donut-center strong {
  display: block;
  font-size: 26px;
  font-weight: 900;
  letter-spacing: -.03em;
}
.donut-center span {
  display: block;
  margin-top: 4px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .08em;
}
.donut-legend {
  display: grid;
  gap: 5px;
  align-content: center;
  min-width: 0;
}
.donut-legend-row {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto auto;
  gap: 7px;
  align-items: center;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
}
.donut-legend-row span:nth-child(2) {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.donut-legend-row strong {
  font-size: 10px;
  font-weight: 900;
  text-align: right;
}
.donut-legend-row em {
  font-style: normal;
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  min-width: 30px;
  text-align: right;
}
.donut-swatch {
  width: 12px;
  height: 12px;
  display: inline-block;
  border: 1px solid var(--ink);
}
.chart-note {
  margin: 10px 0 0;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .07em;
}
.chart-row,
.chart-track,
.chart-row-head {
  display: none;
}
@media (max-width: 1360px) {
  .donut-layout {
    grid-template-columns: 112px minmax(0, 1fr);
  }
  .donut-chart { width: 112px; }
  .donut-chart::after,
  .donut-center { inset: 24px; }
}
@media (max-width: 900px) {
  .dashboard-charts { grid-template-columns: 1fr; }
  .donut-layout { grid-template-columns: 120px minmax(0, 1fr); }
  .donut-chart { width: 120px; }
}


/* MVP 0.7.16 · controle: cabeçalhos íntegros e desenhos como informação */
#controlTable.control-table th {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: normal;
  hyphens: none;
  line-height: 1.1;
  vertical-align: middle;
}
#controlTable.control-table td {
  overflow-wrap: anywhere;
}
#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) { width: 6.5%; }
#controlTable.control-table th:nth-child(2),
#controlTable.control-table td:nth-child(2) { width: 8%; }
#controlTable.control-table th:nth-child(3),
#controlTable.control-table td:nth-child(3) { width: 6%; }
#controlTable.control-table th:nth-child(4),
#controlTable.control-table td:nth-child(4) { width: 5.5%; }
#controlTable.control-table th:nth-child(5),
#controlTable.control-table td:nth-child(5) { width: 20%; }
#controlTable.control-table th:nth-child(6),
#controlTable.control-table td:nth-child(6) { width: 7%; }
#controlTable.control-table th:nth-child(7),
#controlTable.control-table td:nth-child(7) { width: 7%; }
#controlTable.control-table th:nth-child(8),
#controlTable.control-table td:nth-child(8) { width: 6.5%; }
#controlTable.control-table th:nth-child(9),
#controlTable.control-table td:nth-child(9) { width: 5.5%; }
#controlTable.control-table th:nth-child(10),
#controlTable.control-table td:nth-child(10) { width: 6.5%; }
#controlTable.control-table th:nth-child(11),
#controlTable.control-table td:nth-child(11) { width: 6.5%; }
#controlTable.control-table th:nth-child(12),
#controlTable.control-table td:nth-child(12) { width: 7%; }
#controlTable.control-table th:nth-child(13),
#controlTable.control-table td:nth-child(13) { width: 4%; }
#controlTable .drawing-group-line {
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  margin: 0 0 6px;
}
#controlTable .drawing-group-line strong {
  display: inline-block;
  background: var(--ink);
  color: #fff;
  border: 1px solid var(--ink);
  padding: 3px 5px;
  font-size: 8px;
  line-height: 1.1;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.drawing-info-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: flex-start;
}
.info-pill.drawing-pill {
  border-color: var(--line);
  background: #fff;
  color: var(--ink);
  font-weight: 600;
  padding: 2px 0;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  border-bottom: 1px solid var(--line);
  letter-spacing: .045em;
  line-height: 1.15;
  white-space: normal;
  text-align: left;
}
#controlTable .info-pill.drawing-pill {
  font-size: 9px;
  max-width: 100%;
}
#queueTable .info-pill.drawing-pill {
  font-size: 10px;
}


/* MVP 0.7.17 · edição em lote direta, sem cabeçalho flutuante */
#queueBulkBar, #sheetBulkBar { display: none !important; }


/* MVP 0.7.18 · sincronização visual de alterações em lote */
.selectable-row.is-selected input[type="date"] { background: #ffffff; }


/* MVP 0.8.0 · parâmetros fechados e controle com leitura em linha */
#controlTable.control-table {
  table-layout: fixed;
}

#controlTable.control-table th,
#controlTable.control-table td {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

#controlTable.control-table th {
  white-space: nowrap;
  line-height: 1.15;
}

#controlTable.control-table td:nth-child(1),
#controlTable.control-table td:nth-child(2),
#controlTable.control-table td:nth-child(3),
#controlTable.control-table td:nth-child(4),
#controlTable.control-table td:nth-child(6),
#controlTable.control-table td:nth-child(7),
#controlTable.control-table td:nth-child(8),
#controlTable.control-table td:nth-child(9),
#controlTable.control-table td:nth-child(10),
#controlTable.control-table td:nth-child(11),
#controlTable.control-table td:nth-child(12),
#controlTable.control-table td:nth-child(13) {
  white-space: nowrap;
}

#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) { width: 7%; }
#controlTable.control-table th:nth-child(2),
#controlTable.control-table td:nth-child(2) { width: 8%; }
#controlTable.control-table th:nth-child(3),
#controlTable.control-table td:nth-child(3) { width: 7%; }
#controlTable.control-table th:nth-child(4),
#controlTable.control-table td:nth-child(4) { width: 6%; }
#controlTable.control-table th:nth-child(5),
#controlTable.control-table td:nth-child(5) { width: 20%; }
#controlTable.control-table th:nth-child(6),
#controlTable.control-table td:nth-child(6) { width: 8%; }
#controlTable.control-table th:nth-child(7),
#controlTable.control-table td:nth-child(7) { width: 8%; }
#controlTable.control-table th:nth-child(8),
#controlTable.control-table td:nth-child(8) { width: 7%; }
#controlTable.control-table th:nth-child(9),
#controlTable.control-table td:nth-child(9) { width: 5.5%; }
#controlTable.control-table th:nth-child(10),
#controlTable.control-table td:nth-child(10) { width: 7%; }
#controlTable.control-table th:nth-child(11),
#controlTable.control-table td:nth-child(11) { width: 7%; }
#controlTable.control-table th:nth-child(12),
#controlTable.control-table td:nth-child(12) { width: 6.5%; }
#controlTable.control-table th:nth-child(13),
#controlTable.control-table td:nth-child(13) { width: 3%; }

#controlTable .chip.strong,
#controlTable .sheet-link,
#controlTable .status-select,
#controlTable .mini-input,
#controlTable .btn.small {
  white-space: nowrap;
}

#controlTable .chip.strong {
  display: inline-flex;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.1;
}

#controlTable .drawing-group-line {
  display: block;
  margin: 0;
}

#controlTable .drawing-info-list.drawings-only {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}

#controlTable .drawing-info-list.drawings-only .drawing-pill {
  display: inline-flex;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: break-word;
  line-height: 1.15;
}

#controlTable .info-pill.drawing-pill {
  background: transparent;
  border-color: var(--line);
  color: var(--ink);
  font-weight: 650;
}

#view-parametros .params-details:not([open]) {
  padding-bottom: 14px;
}

#view-parametros .params-details:not([open]) > :not(summary) {
  display: none;
}


/* MVP 0.8.0 · aplicabilidade por botões e seleção em lote na matriz */
.matrix-app-buttons {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
}
.matrix-app-btn {
  border: 1px solid var(--ink);
  background: #fff;
  color: var(--ink);
  min-height: 30px;
  padding: 6px 7px;
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
  cursor: pointer;
}
.matrix-app-btn:hover,
.matrix-app-btn.is-active {
  background: var(--ink);
  color: #fff;
}
.matrix-card:has(.matrix-details[open]) .matrix-edit-table th:nth-child(5),
.matrix-card:has(.matrix-details[open]) .matrix-edit-table td:nth-child(5) {
  width: 300px;
}
.matrix-edit-table .selectable-row.is-selected td {
  background: #ece7dc !important;
  box-shadow: inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink);
}


/* MVP 0.8.0 · agrupamento real dos itens da matriz e adição por grupo */
.matrix-group-row td {
  border-top: 18px solid #fff;
  border-bottom: 1px solid var(--ink) !important;
  padding: 9px 0 7px !important;
  background: #fff !important;
}
.matrix-group-row:first-child td { border-top-width: 0; }
.matrix-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.matrix-group-head strong {
  display: block;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .07em;
}
.matrix-group-head span {
  display: block;
  margin-top: 2px;
  font-size: 9px;
  color: var(--muted);
  letter-spacing: .07em;
}
.icon-btn {
  min-width: 32px;
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
}
.matrix-add-popover-row td {
  padding: 0 0 12px !important;
  border-bottom: 1px solid var(--line) !important;
  background: #fff !important;
}
.matrix-add-popover {
  border: 1px solid var(--ink);
  padding: 12px;
  margin: 8px 0 4px;
  background: #fff;
}
.matrix-add-popover-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
}
.matrix-add-popover-head strong {
  display: block;
  font-size: 11px;
  letter-spacing: .07em;
}
.matrix-add-popover-head span {
  display: block;
  color: var(--muted);
  font-size: 9px;
  margin-top: 3px;
}
.matrix-add-grid.floating {
  display: grid;
  grid-template-columns: 90px 180px minmax(220px, 1fr) 190px 120px;
  gap: 8px;
}
.matrix-add-grid.floating input,
.matrix-add-grid.floating select { min-width: 0; }
@media (max-width: 1100px) {
  .matrix-add-grid.floating { grid-template-columns: 1fr; }
}


/* MVP 0.8.0 · consolidação UX operacional */
#fieldBatchPreset {
  border-left-width: 4px;
}
.selectable-row.is-selected td,
.selectable-option.is-selected {
  background: #ece7dc !important;
}
.info-pill,
.chip.info,
.matrix-group-head span {
  cursor: default;
}
.matrix-group-row td {
  padding-top: 18px !important;
  background: #fff;
}
.matrix-group-head {
  border-top: 1px solid var(--ink);
  padding-top: 12px;
}
.matrix-group-head .icon-btn {
  font-size: 18px;
  font-weight: 900;
}
.matrix-add-popover-row td {
  background: #fbfaf7;
}
.matrix-add-popover {
  border: 1px solid var(--ink);
  padding: 12px;
}
.matrix-add-popover-head span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  margin-top: 3px;
}
#queueTable .queue-drawing-selector,
#drawingChoices {
  user-select: none;
}
#controlTable .drawing-text-list,
.drawing-text-list {
  line-height: 1.45;
}
#controlTable .drawing-info-item,
.drawing-info-item {
  display: inline;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
}
#controlTable .drawing-info-item + .drawing-info-item::before,
.drawing-info-item + .drawing-info-item::before {
  content: " · ";
  color: var(--muted);
}


/* MVP 0.8.1 · remoção em lote no controle */
#controlBulkBar { display: grid; }
#controlBulkBar.is-hidden { display: none !important; }
#queueBulkBar, #sheetBulkBar { display: none !important; }
.control-bulk-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.btn.danger {
  border-color: var(--danger);
  color: var(--danger);
  background: #fff;
}
.btn.danger:hover,
.btn.danger:focus-visible {
  background: var(--danger);
  color: #fff;
}


/* MVP 0.8.3 · presets e remoção em lote na lista */
#queueBulkBar, #controlBulkBar { display: grid; }
#queueBulkBar.is-hidden, #controlBulkBar.is-hidden { display: none !important; }
.control-bulk-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.params-preset-table th,
.params-preset-table td {
  vertical-align: top;
}
.params-preset-table th:nth-child(1),
.params-preset-table td:nth-child(1) { width: 56px; text-align: center; }
.params-preset-table th:nth-child(2),
.params-preset-table td:nth-child(2) { width: 180px; }
.params-preset-table th:nth-child(3),
.params-preset-table td:nth-child(3) { width: 160px; }
.params-preset-table th:nth-child(4),
.params-preset-table td:nth-child(4) { width: 160px; }
.params-preset-table th:nth-child(5),
.params-preset-table td:nth-child(5) { width: 150px; }
.preset-drawing-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 5px;
  min-width: 260px;
}
.preset-drawing-option {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .055em;
  text-align: left;
  padding: 6px 7px;
  cursor: pointer;
}
.preset-drawing-option.is-selected {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.param-add-grid.preset {
  grid-template-columns: minmax(180px, 1fr) minmax(150px, .8fr) minmax(150px, .8fr) minmax(150px, .8fr) auto;
}
@media (max-width: 1100px) {
  .param-add-grid.preset { grid-template-columns: 1fr; }
  .preset-drawing-list { grid-template-columns: 1fr; }
}


/* MVP 0.8.3 · prancha primeiro, texto com espaços e seleção externa limpa */
#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) { width: 7%; }
#controlTable.control-table th:nth-child(2),
#controlTable.control-table td:nth-child(2) { width: 8%; }
#controlTable.control-table th:nth-child(3),
#controlTable.control-table td:nth-child(3) { width: 8%; }
#controlTable.control-table th:nth-child(4),
#controlTable.control-table td:nth-child(4) { width: 7%; }
#controlTable.control-table th:nth-child(5),
#controlTable.control-table td:nth-child(5) { width: 22%; }
#controlTable.control-table th:nth-child(6),
#controlTable.control-table td:nth-child(6) { width: 8%; }
#controlTable.control-table th:nth-child(7),
#controlTable.control-table td:nth-child(7) { width: 8%; }
#controlTable.control-table th:nth-child(8),
#controlTable.control-table td:nth-child(8) { width: 7%; }
#controlTable.control-table th:nth-child(9),
#controlTable.control-table td:nth-child(9) { width: 5.5%; }
#controlTable.control-table th:nth-child(10),
#controlTable.control-table td:nth-child(10) { width: 7%; }
#controlTable.control-table th:nth-child(11),
#controlTable.control-table td:nth-child(11) { width: 7%; }
#controlTable.control-table th:nth-child(12),
#controlTable.control-table td:nth-child(12) { width: 6.5%; }
#controlTable.control-table th:nth-child(13),
#controlTable.control-table td:nth-child(13) { width: 4%; }
#controlTable .sheet-link { font-weight: 900; }


/* MVP 0.8.10 · refinamento visual dos gráficos de evolução */
.row-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  justify-content: flex-start;
  white-space: nowrap;
}
.btn.danger,
.btn[data-delete-control],
.btn[data-delete-selected-controls] {
  border-color: var(--danger);
  color: var(--danger);
  background: #fff;
}
.btn.danger:hover,
.btn.danger:focus-visible,
.btn[data-delete-control]:hover,
.btn[data-delete-control]:focus-visible,
.btn[data-delete-selected-controls]:hover,
.btn[data-delete-selected-controls]:focus-visible {
  background: var(--danger);
  color: #fff;
}
.control-edit-row td {
  background: #fff !important;
  border-top: 0;
}
.control-edit-panel {
  border: 1px solid var(--ink);
  padding: 14px;
  margin: 0 0 12px;
  background: #fff;
}
.control-edit-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line-strong);
}
.control-edit-head strong { display: block; margin-bottom: 4px; }
.control-edit-grid {
  display: grid;
  grid-template-columns: minmax(160px, .8fr) minmax(140px, .7fr) minmax(280px, 1.4fr) auto;
  gap: 12px;
  align-items: end;
  margin-top: 12px;
}
.control-edit-grid label {
  display: grid;
  gap: 6px;
  font-size: 10px;
  font-weight: 900;
}
.control-edit-grid select {
  width: 100%;
  min-height: 34px;
  border: 1px solid var(--ink);
  background: #fff;
  padding: 6px 10px;
  font-weight: 800;
}
.control-edit-drawings-label { grid-column: span 1; }
.control-edit-drawing-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  min-height: 34px;
}
.control-edit-drawing {
  border: 1px solid var(--line);
  background: #fff;
  padding: 7px 9px;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}
.control-edit-drawing.is-selected {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}
.control-edit-actions { display: flex; justify-content: flex-end; }
.text-free { text-transform: uppercase; }
@media (max-width: 1280px) {
  .control-edit-grid { grid-template-columns: 1fr 1fr; }
  .control-edit-drawings-label, .control-edit-actions { grid-column: 1 / -1; }
}


/* MVP 0.8.10 · pictogramas e campos livres */
.icon-only-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  min-width: 32px;
  height: 32px;
  padding: 0;
  font-size: 0;
  line-height: 1;
}
.btn-icon {
  display: inline-flex;
  width: 15px;
  height: 15px;
  pointer-events: none;
}
.btn-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#controlTable .btn.small.icon-only-btn,
#queueTable .btn.small.icon-only-btn,
.matrix-card .btn.icon-only-btn,
.control-bulk-actions .btn.icon-only-btn {
  width: 30px;
  min-width: 30px;
  height: 30px;
  padding: 0;
  white-space: nowrap;
}
.row-actions {
  justify-content: center;
  gap: 4px;
}
.notes-input {
  min-height: 32px;
  resize: vertical;
  overflow: hidden;
}
#controlTable .notes-input {
  padding-top: 8px;
  padding-bottom: 8px;
}
.text-free,
textarea.mini-input,
input.mini-input {
  letter-spacing: normal;
  word-spacing: normal;
}
.selectable-option,
.queue-drawing-option,
.control-edit-drawing,
.check-option {
  user-select: none;
}


/* MVP 0.8.7 · observações e gráficos de evolução no checklist */
.sheet-title-card {
  align-items: stretch;
}
.sheet-title-main {
  flex: 1 1 48%;
  min-width: 280px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.sheet-summary-panel {
  flex: 1 1 41%;
  min-width: 300px;
  display: grid;
  gap: 10px;
  align-content: start;
}
.sheet-reminder {
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.04);
  border-radius: 0;
  padding: 10px 12px;
}
.sheet-reminder .eyebrow {
  color: rgba(255,255,255,.62);
}
.sheet-reminder p {
  margin: 5px 0 0;
  color: #fff;
  line-height: 1.35;
  font-size: 13px;
}
.sheet-reminder.is-empty p {
  color: #d9d5cc;
}
.sheet-actions-row {
  display: flex;
  justify-content: flex-end;
}
.progress-donut-card {
  border: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  padding: 10px 12px;
}
.progress-donut-card h4 {
  margin: 0 0 8px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.progress-donut-card.full {
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.03);
  color: #fff;
}
.progress-donut-card.full .donut-layout {
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.progress-donut-card.full .donut-chart {
  width: 84px;
}
.progress-donut-card.full .donut-chart::after,
.progress-donut-card.full .donut-center {
  inset: 17px;
}
.progress-donut-card.full .donut-center strong,
.progress-donut-card.compact .donut-center strong {
  font-size: 15px;
}
.progress-donut-card.full .donut-center span,
.progress-donut-card.compact .donut-center span {
  font-size: 7px;
}
.progress-donut-card.full .donut-legend-row {
  color: #fff;
}
.progress-donut-card.full .donut-legend-row em {
  color: rgba(255,255,255,.7);
}
.progress-donut-card.compact {
  padding: 8px 10px;
  min-width: 0;
}
.progress-donut-card.compact h4 {
  font-size: 9px;
  margin-bottom: 6px;
}
.progress-donut-card.compact .donut-layout {
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}
.progress-donut-card.compact .donut-chart {
  width: 58px;
}
.progress-donut-card.compact .donut-chart::after,
.progress-donut-card.compact .donut-center {
  inset: 12px;
}
.progress-donut-card.compact .donut-legend {
  gap: 2px;
}
.progress-donut-card.compact .donut-legend-row,
.progress-donut-card.full .donut-legend-row {
  grid-template-columns: 8px minmax(0, 1fr) auto auto;
  gap: 4px;
  font-size: 8px;
}
.progress-donut-card.compact .donut-swatch,
.progress-donut-card.full .donut-swatch {
  width: 8px;
  height: 8px;
}
.drawing-card-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}
.drawing-card-copy {
  min-width: 0;
  flex: 1 1 auto;
}
.drawing-progress-wrap {
  flex: 0 0 190px;
  min-width: 175px;
}
@media (max-width: 1180px) {
  .sheet-title-card {
    flex-direction: column;
  }
  .sheet-summary-panel,
  .drawing-progress-wrap {
    min-width: 0;
  }
  .drawing-card-head {
    flex-direction: column;
  }
}
@media (max-width: 760px) {
  .progress-donut-card.full .donut-layout,
  .progress-donut-card.compact .donut-layout {
    grid-template-columns: 1fr;
  }
  .progress-donut-card.full .donut-chart,
  .progress-donut-card.compact .donut-chart {
    margin: 0 auto;
  }
  .sheet-actions-row {
    justify-content: stretch;
  }
}


/* MVP 0.8.10 · mini rosca de evolução no controle */

#controlTable .control-drawings-layout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
#controlTable .control-drawings-copy {
  min-width: 0;
  flex: 1 1 auto;
  display: grid;
  gap: 4px;
}
#controlTable .control-progress-mini {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#controlTable .control-progress-donut {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: conic-gradient(var(--donut-segments));
  position: relative;
  border: 1px solid var(--ink);
  display: grid;
  place-items: center;
}
#controlTable .control-progress-donut::after {
  content: '';
  position: absolute;
  inset: 8px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--line);
}
#controlTable .control-progress-donut span {
  position: relative;
  z-index: 1;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1;
}
#controlTable .control-progress-mini:hover .control-progress-donut,
#controlTable .control-progress-mini:focus-within .control-progress-donut {
  transform: translateY(-1px);
}
@media (max-width: 1360px) {
  #controlTable .control-drawings-layout {
    gap: 7px;
  }
  #controlTable .control-progress-donut {
    width: 34px;
    height: 34px;
  }
  #controlTable .control-progress-donut::after {
    inset: 7px;
  }
  #controlTable .control-progress-donut span {
    font-size: 7px;
  }
}


/* MVP 0.8.10 · gráficos monocromáticos e observação editável */
.progress-donut-card.full {
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.02);
}
.progress-donut-card .donut-chart {
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.18);
}
.progress-donut-card.full .donut-chart {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
}
.progress-donut-card.full .donut-chart::after {
  background: #0a0a0a;
  border-color: rgba(255,255,255,.18);
}
.progress-donut-card.compact .donut-chart::after {
  background: #f4f1ea;
}
.progress-donut-card.full .donut-center,
.progress-donut-card.compact .donut-center,
#controlTable .control-progress-donut span {
  align-items: center;
  justify-content: center;
  text-align: center;
}
.progress-donut-card.full .donut-center strong {
  font-size: 17px;
  line-height: 1;
  letter-spacing: -.03em;
}
.progress-donut-card.compact .donut-center strong {
  font-size: 13px;
  line-height: 1;
  letter-spacing: -.03em;
}
.progress-donut-card .donut-center span {
  display: none;
}
.progress-donut-card.full .donut-legend-row,
.progress-donut-card.full .donut-legend-row strong,
.progress-donut-card.full .donut-legend-row em {
  color: #fff;
}
.progress-donut-card.compact .donut-legend-row em {
  color: #5d584f;
}
#controlTable .control-progress-donut {
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.18);
}
#controlTable .control-progress-donut::after {
  background: #f4f1ea;
}
#controlTable .control-progress-donut span {
  font-size: 8px;
  font-weight: 900;
  letter-spacing: -.03em;
}
.sheet-reminder {
  padding: 12px 14px;
}
.sheet-reminder-input {
  width: 100%;
  min-height: 44px;
  border: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  text-transform: uppercase;
  resize: vertical;
  padding: 0;
  margin: 6px 0 0;
  outline: none;
}
.sheet-reminder-input::placeholder {
  color: rgba(255,255,255,.45);
}
.sheet-reminder.is-empty .sheet-reminder-input {
  color: #d9d5cc;
}


/* MVP 0.9.0 · Controle unificado */
.control-head-main {
  align-items: flex-start;
}
.control-create-block {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 0;
  margin: 16px 0 16px;
}
.control-create-block summary {
  list-style: none;
  cursor: pointer;
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-size: 12px;
}
.control-create-block summary::-webkit-details-marker { display: none; }
.control-create-block summary em {
  margin-left: auto;
  font-style: normal;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
}
.control-create-block .summary-icon {
  display: inline-flex;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  font-size: 14px;
  line-height: 1;
  transform: rotate(0deg);
  transition: transform .15s ease;
}
.control-create-block[open] .summary-icon {
  transform: rotate(90deg);
}
.control-create-form {
  border-top: 1px solid var(--line);
  padding: 18px 0 20px;
  display: grid;
  gap: 16px;
}
.control-create-form > label {
  max-width: 420px;
}
.control-create-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 14px;
  align-items: start;
}
.control-create-grid.is-hidden {
  display: none;
}
.control-create-drawings {
  grid-column: span 3;
}
.control-create-drawings .check-list,
.compact-drawings {
  max-height: 230px;
  overflow: auto;
  padding: 8px;
}
.control-create-drawings .check-option {
  padding: 10px 12px;
}
.control-create-actions {
  justify-content: flex-start;
  border-top: 1px solid var(--line-soft);
  padding-top: 14px;
}
@media (max-width: 1280px) {
  .control-create-grid { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
  .control-create-drawings { grid-column: span 2; }
}
@media (max-width: 760px) {
  .control-create-grid { grid-template-columns: 1fr; }
  .control-create-drawings { grid-column: span 1; }
}


/* MVP 0.9.1 · lista cadastrada dentro do Controle */
.control-create-queue {
  border-top: 1px solid var(--line);
  padding: 18px 0 0;
  margin-top: 4px;
}
.control-create-queue-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.control-create-queue-head h3 {
  margin: 0 0 4px;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 18px;
}
.control-create-queue .queue-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.control-create-queue .table-wrap {
  max-height: 420px;
  overflow: auto;
}
.control-create-queue #queueTable td {
  vertical-align: top;
}
.control-create-queue .bulk-action-bar {
  margin: 0 0 12px;
}
@media (max-width: 900px) {
  .control-create-queue-head {
    flex-direction: column;
  }
  .control-create-queue .queue-actions {
    justify-content: flex-start;
  }
}


/* MVP 0.9.2 · correção de seleção na lista cadastrada */
#queueTable .selectable-row { cursor: pointer; }
#queueTable .selectable-row.is-selected td { background: #ece7dc !important; }


/* MVP 0.9.3 · agrupamento visual dos itens do checklist */
.check-table-grouped th:first-child,
.check-table-grouped td:first-child {
  width: 90px;
}
.check-group-row td {
  background: #f6f3ed;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line-soft);
  padding: 9px 12px !important;
}
.check-group-label {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-height: 20px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.check-group-label strong {
  font-size: 11px;
  font-weight: 900;
  color: var(--ink);
}
.check-group-label span {
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
}
.check-item-row td {
  vertical-align: middle;
}
.check-table-grouped .mini-input {
  min-width: 130px;
}


/* MVP 0.9.4 · agrupamento do checklist apenas pelo primeiro nível */
.check-group-label span {
  display: none;
}


/* MVP 0.9.8 · filtros ampliados e separação visual do controle */
.control-filters-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 10px;
  width: min(100%, 1020px);
}
.control-filters-grid .filter-search {
  grid-column: 1 / -1;
}
.control-existing-block {
  border-top: 1px solid var(--line);
  margin-top: 18px;
  padding-top: 18px;
}
.control-existing-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.control-existing-head h3 {
  margin: 0 0 4px;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 18px;
}
@media (max-width: 1280px) {
  .control-filters-grid {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    width: 100%;
  }
}
@media (max-width: 900px) {
  .control-filters-grid {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }
}
@media (max-width: 680px) {
  .control-filters-grid {
    grid-template-columns: 1fr;
  }
}

/* MVP 0.9.9 · parâmetros compactos e reordenação por arraste */
.params-table tr[draggable="true"] {
  cursor: default;
}
.params-table tr.is-dragging {
  opacity: .45;
  outline: 2px solid var(--ink);
}
.drag-handle {
  display: inline-flex;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  border: 1px solid var(--line);
  font-size: 11px;
  line-height: 1;
  cursor: grab;
  user-select: none;
  background: var(--paper);
}
.drag-handle:active { cursor: grabbing; }
.param-add-form.compact {
  padding: 10px 12px 12px;
  margin-top: 10px;
}
.param-add-form.compact > strong {
  display: block;
  margin: 0 0 8px;
  line-height: 1;
  font-size: 11px;
  letter-spacing: .07em;
}
.param-add-grid.compact,
.param-add-grid.stage.compact,
.param-add-grid.category.compact,
.param-add-grid.type.compact,
.param-add-grid.person.compact {
  display: grid;
  grid-template-columns: 120px minmax(260px, 1fr) 120px auto;
  gap: 8px;
  align-items: end;
}
.param-add-grid.compact label {
  display: grid;
  gap: 4px;
  margin: 0;
  font-size: 9px;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.param-add-grid.compact input,
.param-add-grid.compact select,
.param-origin-select {
  height: 32px;
  min-height: 32px;
  padding: 0 10px;
}
.param-add-grid.compact .btn {
  height: 32px;
  min-height: 32px;
  padding-top: 0;
  padding-bottom: 0;
  align-self: end;
}
.param-add-grid.category.compact { grid-template-columns: minmax(180px, 260px) minmax(260px, 1fr) 120px auto; }
.param-add-grid.person.compact { grid-template-columns: minmax(260px, 1fr) auto auto 120px auto; }
.inline-param-check {
  height: 32px;
  align-items: center;
}
@media (max-width: 980px) {
  .param-add-grid.compact,
  .param-add-grid.stage.compact,
  .param-add-grid.category.compact,
  .param-add-grid.type.compact,
  .param-add-grid.person.compact {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}

/* MVP 0.10.0 · filtros compactos, destaque ativo e alinhamentos */
#view-dashboard .hero-card { display: none !important; }
#view-dashboard .kpi-grid { margin-top: 0; }
select.is-active-filter {
  background: #ece7dc !important;
  border-color: var(--ink) !important;
  box-shadow: inset 0 0 0 1px var(--ink);
}
.control-head-main {
  display: grid !important;
  grid-template-columns: minmax(280px, 1fr) minmax(680px, 1.65fr);
  align-items: start;
  column-gap: 28px;
}
.control-filters-grid {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 8px;
}
.control-filters-grid select,
.control-filters-grid input,
.control-filters-grid .btn {
  min-height: 34px;
  height: 34px;
}
.control-filters-grid .filter-search { grid-column: span 3; }
.control-filters-grid .control-clear-filters {
  grid-column: span 1;
  width: 100%;
  white-space: nowrap;
}
.dashboard-filter-grid {
  grid-template-columns: repeat(4, minmax(140px, 1fr)) !important;
}
.dashboard-filter-grid select,
.dashboard-filter-grid label select {
  min-height: 36px;
}
.control-existing-block .table-wrap.wide,
#controlTable.control-table {
  overflow-x: auto;
}
#controlTable.control-table {
  min-width: 1680px;
  table-layout: fixed;
}
#controlTable.control-table th,
#controlTable.control-table td {
  vertical-align: middle;
}
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 7%; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 8%; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 7%; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 7%; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 9%; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 15%; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 8%; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 8%; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 6.5%; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 6%; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 7%; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 7%; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 8%; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 4.5%; }
.control-drawings-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42px;
  align-items: center;
  gap: 8px;
}
.control-drawings-copy {
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.25;
}
.control-drawings-copy .drawing-chip-static {
  display: inline-block;
  margin: 0 4px 3px 0;
  white-space: normal;
}
#controlTable .mini-donut {
  flex: 0 0 auto;
}
#controlTable textarea,
#controlTable input[type="text"] {
  width: 100%;
  min-width: 0;
}
@media (max-width: 1320px) {
  .control-head-main { grid-template-columns: 1fr; row-gap: 16px; }
  .control-filters-grid { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .control-filters-grid .filter-search { grid-column: span 2; }
}
@media (max-width: 760px) {
  .control-filters-grid, .dashboard-filter-grid { grid-template-columns: 1fr !important; }
  .control-filters-grid .filter-search, .control-filters-grid .control-clear-filters { grid-column: 1; }
}


/* MVP 0.10.2 · simplificação operacional e filtros por níveis */
.control-filter-panel {
  width: 100%;
  display: grid;
  gap: 8px;
}
.control-main-filters {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) minmax(150px, 1fr) minmax(260px, 1.4fr) auto;
  gap: 8px;
  align-items: stretch;
}
.control-main-filters select,
.control-main-filters input,
.control-main-filters .btn,
.control-advanced-grid select {
  height: 34px;
  min-height: 34px;
}
.control-advanced-filters {
  border: 1px dashed var(--line-strong);
  padding: 0;
}
.control-advanced-filters summary {
  min-height: 32px;
  display: flex;
  align-items: center;
  padding: 0 10px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 800;
  cursor: pointer;
}
.control-advanced-filters summary.is-active-filter {
  background: #ece7dc !important;
  outline: 1px solid var(--ink);
}
.control-advanced-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 8px;
  padding: 8px;
  border-top: 1px dashed var(--line-strong);
}
.control-filters-grid { display: none !important; }
input.is-active-filter {
  background: #ece7dc !important;
  border-color: var(--ink) !important;
  box-shadow: inset 0 0 0 1px var(--ink);
}
.control-create-queue-head h3,
.control-existing-head h3 {
  letter-spacing: .045em;
}
@media (max-width: 1420px) {
  .control-main-filters { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .control-main-filters .filter-search { grid-column: span 2; }
  .control-advanced-grid { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
}
@media (max-width: 900px) {
  .control-main-filters,
  .control-advanced-grid { grid-template-columns: 1fr; }
  .control-main-filters .filter-search { grid-column: auto; }
}
.params-toolbar-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.params-grid:not(.is-reorder-mode) .drag-handle {
  opacity: .28;
  cursor: default;
}
.params-grid:not(.is-reorder-mode) tr[data-param-kind] {
  cursor: default;
}
.params-grid.is-reorder-mode .drag-handle {
  opacity: 1;
  border-color: var(--ink);
  background: #ece7dc;
}


/* MVP 0.10.2 · controle com filtros no mesmo padrão do dashboard */
.control-filter-section {
  border-bottom: 1px solid var(--line);
  padding-bottom: 18px;
  margin-bottom: 14px;
}
.control-filter-section .panel-head {
  margin-bottom: 12px;
}
.control-dashboard-filter-grid {
  grid-template-columns: repeat(4, minmax(160px, 1fr));
}
.control-dashboard-filter-grid .control-search-field {
  grid-column: 1 / -1;
}
.control-dashboard-filter-grid input {
  width: 100%;
}
#view-controle .control-filter-section .btn {
  white-space: nowrap;
}
#view-controle .control-create-block {
  margin-top: 0;
}
@media (max-width: 1280px) {
  .control-dashboard-filter-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
}
@media (max-width: 900px) {
  .control-dashboard-filter-grid {
    grid-template-columns: 1fr !important;
  }
  .control-dashboard-filter-grid .control-search-field {
    grid-column: auto;
  }
}


/* MVP 0.10.3 · refino visual e UX do Controle de Desenvolvimento */
#view-controle .control-panel {
  padding: 18px 18px 20px;
}
#view-controle .control-filter-section {
  border-bottom: 1px solid var(--line);
  padding-bottom: 14px;
  margin-bottom: 10px;
}
#view-controle .control-filter-section .panel-head.wrap {
  align-items: flex-end;
  margin-bottom: 10px;
  gap: 14px;
}
#view-controle .control-filter-section h3,
#view-controle .control-existing-head h3,
#view-controle .control-create-queue-head h3 {
  font-size: 17px;
  letter-spacing: .045em;
}
#view-controle .control-filter-section .muted,
#view-controle .control-existing-head .muted,
#view-controle .control-create-queue-head .muted {
  line-height: 1.35;
}
#view-controle .control-dashboard-filter-grid {
  grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
  gap: 8px 10px;
}
#view-controle .control-dashboard-filter-grid label {
  gap: 5px;
  font-size: 9px;
  letter-spacing: .08em;
}
#view-controle .control-dashboard-filter-grid select,
#view-controle .control-dashboard-filter-grid input {
  height: 34px;
  min-height: 34px;
  padding: 0 12px;
}
#view-controle .control-dashboard-filter-grid .control-search-field {
  grid-column: 1 / -1;
}
#btnControlClearFilters {
  min-height: 34px;
  height: 34px;
  padding-top: 0;
  padding-bottom: 0;
}
#view-controle .control-create-block {
  margin: 10px 0 12px;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}
#view-controle .control-create-block summary {
  min-height: 40px;
}
#view-controle .control-create-form {
  padding: 14px 0 16px;
  gap: 12px;
}
#view-controle .control-create-grid {
  gap: 10px;
}
#view-controle .control-create-form label,
#view-controle .control-create-grid label,
#view-controle .control-create-drawings {
  gap: 5px;
}
#view-controle .control-create-form select,
#view-controle .control-create-form input,
#view-controle .control-create-form textarea {
  min-height: 34px;
}
#view-controle .control-create-actions {
  padding-top: 10px;
}
#view-controle .control-create-actions .btn,
#view-controle .queue-actions .btn {
  min-height: 34px;
  height: 34px;
  padding-top: 0;
  padding-bottom: 0;
}
#view-controle .control-create-queue {
  padding-top: 14px;
}
#view-controle .control-create-queue-head,
#view-controle .control-existing-head {
  align-items: center;
  margin-bottom: 10px;
}
#view-controle .control-existing-block {
  margin-top: 12px;
  padding-top: 14px;
}
#view-controle .table-wrap.wide {
  border: 1px solid var(--line);
  overflow: auto;
  max-width: 100%;
}
#view-controle .table-wrap.wide table {
  margin: 0;
}
#controlTable.control-table,
#queueTable.queue-table {
  border: 0;
}
#controlTable.control-table {
  min-width: 1540px;
  table-layout: fixed;
}
#controlTable.control-table thead th,
#queueTable.queue-table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--paper);
  border-bottom: 1px solid var(--ink);
}
#controlTable.control-table th,
#controlTable.control-table td,
#queueTable.queue-table th,
#queueTable.queue-table td {
  padding: 7px 8px;
  vertical-align: middle;
}
#controlTable.control-table th {
  white-space: nowrap;
}
#controlTable.control-table tr.selectable-row td {
  transition: background .12s ease, box-shadow .12s ease;
}
#controlTable.control-table tr.selectable-row:hover td,
#queueTable.queue-table tr.selectable-row:hover td {
  background: #f5f1e8;
}
#controlTable.control-table tr.selectable-row.is-selected td {
  background: #ece7dc !important;
  box-shadow: inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink);
}
#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) {
  width: 6.5%;
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--paper);
}
#controlTable.control-table thead th:nth-child(1) {
  z-index: 4;
}
#controlTable.control-table tr.is-selected td:nth-child(1),
#controlTable.control-table tr.selectable-row:hover td:nth-child(1) {
  background: #ece7dc;
}
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 8%; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 6.8%; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 6.8%; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 8%; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 17%; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 7.5%; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 7.5%; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 6.5%; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 5.5%; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 6.5%; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 6.5%; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 8%; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 4%; }
#controlTable .chip.strong,
#controlTable .sheet-link,
#controlTable .status-select,
#controlTable .mini-input,
#controlTable .notes-input,
#controlTable .btn.small.icon-only-btn {
  min-height: 30px;
}
#controlTable .status-select,
#controlTable .mini-input,
#controlTable .notes-input {
  height: 30px;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 10px;
}
#controlTable .notes-input {
  resize: vertical;
  min-height: 30px;
  max-height: 74px;
}
#controlTable .notes-input:focus {
  min-height: 58px;
}
#controlTable .control-drawings-layout {
  grid-template-columns: minmax(0, 1fr) 38px;
  gap: 7px;
}
#controlTable .control-drawings-copy {
  line-height: 1.2;
  max-height: 48px;
  overflow: auto;
  padding-right: 2px;
}
#controlTable .drawing-info-item,
#controlTable .drawing-pill,
#controlTable .drawing-chip-static {
  font-size: 9px;
  line-height: 1.15;
}
#controlTable .control-progress-donut {
  width: 34px;
  height: 34px;
}
#controlTable .control-progress-donut::after {
  width: 19px;
  height: 19px;
}
#controlTable .control-progress-donut span {
  font-size: 8px;
}
#controlTable .btn.small.icon-only-btn {
  width: 30px;
  height: 30px;
}
.control-edit-row td {
  background: #faf8f2 !important;
}
.control-edit-panel {
  padding: 12px;
}
.control-edit-grid {
  gap: 10px;
}
.control-edit-actions .btn {
  min-height: 34px;
}
#queueTable.queue-table {
  min-width: 980px;
  table-layout: fixed;
}
#queueTable.queue-table th:nth-child(1), #queueTable.queue-table td:nth-child(1) { width: 13%; }
#queueTable.queue-table th:nth-child(2), #queueTable.queue-table td:nth-child(2) { width: 16%; }
#queueTable.queue-table th:nth-child(3), #queueTable.queue-table td:nth-child(3) { width: 16%; }
#queueTable.queue-table th:nth-child(4), #queueTable.queue-table td:nth-child(4) { width: 20%; }
#queueTable.queue-table th:nth-child(5), #queueTable.queue-table td:nth-child(5) { width: 10%; }
#queueTable.queue-table th:nth-child(6), #queueTable.queue-table td:nth-child(6) { width: 20%; }
#queueTable.queue-table th:nth-child(7), #queueTable.queue-table td:nth-child(7) { width: 5%; }
#queueTable .queue-mini-select,
#queueTable .queue-drawing-select {
  min-height: 30px;
  height: 30px;
  padding-top: 0;
  padding-bottom: 0;
}
#queueTable .queue-drawing-selector {
  max-height: 120px;
}
#queueTable .queue-drawing-option {
  padding: 6px 8px;
}
.bulk-action-bar {
  border-color: var(--line);
  background: #faf8f2;
}
@media (max-width: 1280px) {
  #view-controle .control-dashboard-filter-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr)) !important;
  }
}
@media (max-width: 820px) {
  #view-controle .control-dashboard-filter-grid {
    grid-template-columns: 1fr !important;
  }
  #view-controle .control-filter-section .panel-head.wrap,
  #view-controle .control-create-queue-head,
  #view-controle .control-existing-head {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* MVP 0.10.4 · lógica de ações alinhada à direita */
#view-controle .control-create-actions {
  justify-content: flex-end;
  border-top: 1px solid var(--line-soft);
  padding-top: 12px;
  margin-top: 2px;
}
#view-controle .control-create-actions .btn,
#view-controle .queue-actions-footer .btn {
  min-width: 128px;
}
#view-controle .control-create-queue-head {
  margin-bottom: 10px;
}
#view-controle .control-create-queue .queue-actions-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding-top: 10px;
  margin-top: 0;
  border-top: 1px solid var(--line-soft);
}
#view-controle .control-create-queue .queue-actions-footer .btn {
  min-height: 34px;
  height: 34px;
  padding-top: 0;
  padding-bottom: 0;
}
@media (max-width: 760px) {
  #view-controle .control-create-actions,
  #view-controle .control-create-queue .queue-actions-footer {
    justify-content: stretch;
  }
  #view-controle .control-create-actions .btn,
  #view-controle .queue-actions-footer .btn {
    flex: 1 1 auto;
  }
}


/* MVP 0.10.7 · matriz compacta com edição ao lado da lixeira e setas neutras */
#view-matriz .matrix-title-head {
  min-height: unset;
  padding-bottom: 12px;
}
#view-matriz .matrix-filter-section {
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  padding: 14px 0 12px;
  margin: 0 0 14px;
}
#view-matriz .matrix-filter-section .panel-head.compact {
  margin-bottom: 10px;
  padding: 0;
  border: 0;
}
#view-matriz .matrix-filter-section .panel-head.compact h3 {
  margin: 0 0 4px;
  font-size: 18px;
  letter-spacing: .045em;
  text-transform: uppercase;
}
#view-matriz .matrix-dashboard-filter-grid {
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(260px, 2fr) !important;
  gap: 8px 10px;
  margin-bottom: 0;
}
#view-matriz .matrix-dashboard-filter-grid label {
  gap: 5px;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
#view-matriz .matrix-dashboard-filter-grid select,
#view-matriz .matrix-dashboard-filter-grid input {
  height: 34px;
  min-height: 34px;
  padding: 0 12px;
  width: 100%;
}
.matrix-card-actions {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}
.matrix-details {
  position: relative;
}
.matrix-details > summary.matrix-edit-summary {
  display: inline-flex !important;
  list-style: none !important;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ink);
  background: #fff;
  color: var(--ink);
  padding: 0 !important;
  margin: 8px 0 10px !important;
  cursor: pointer;
}
.matrix-details[open] > summary.matrix-edit-summary {
  background: var(--ink);
  color: #fff;
}
.matrix-details > summary.matrix-edit-summary::-webkit-details-marker {
  display: none !important;
}
.matrix-details > summary.matrix-edit-summary .btn-icon {
  width: 14px;
  height: 14px;
  display: inline-flex;
}
.matrix-details > summary.matrix-edit-summary svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}
@media (max-width: 900px) {
  #view-matriz .matrix-dashboard-filter-grid {
    grid-template-columns: 1fr !important;
  }
}


/* MVP 0.10.7 · compactação dos cartões da matriz e padrão único de setas neutras */
:root {
  --arrow-ink: var(--ink);
}

/* Selects com o mesmo pictograma de seta neutro em todo o projeto */
select {
  -webkit-appearance: none !important;
  appearance: none !important;
  padding-right: 36px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Crect x='1' y='1' width='20' height='20' fill='white' stroke='%23111111' stroke-width='2'/%3E%3Cpath d='M7 9l4 4 4-4' fill='none' stroke='%23111111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 6px center !important;
  background-size: 20px 20px !important;
}
select::-ms-expand { display: none; }
select:focus,
select:focus-visible {
  outline: none !important;
  border-color: var(--ink) !important;
  box-shadow: inset 0 0 0 1px var(--ink), 0 0 0 2px rgba(0, 0, 0, .08) !important;
}

/* Setas de abertura/fechamento com o mesmo padrão neutro */
.matrix-new-drawing > summary::before,
.params-summary::before,
.control-create-block .summary-icon,
.control-advanced-filters summary::before {
  border-color: var(--ink) !important;
  color: var(--ink) !important;
  background: #fff !important;
}
.matrix-new-drawing[open] > summary::before,
.params-details[open] > .params-summary::before,
.control-advanced-filters[open] summary::before {
  border-color: var(--ink) !important;
  background: var(--ink) !important;
  color: var(--ink) !important;
}

/* O desenho usa apenas o lápis como ação de edição; sem seta extra no summary */
.matrix-details > summary.matrix-edit-summary::before {
  content: none !important;
  display: none !important;
}

.matrix-card {
  position: relative;
  padding-bottom: 12px;
}
.matrix-card-head {
  padding-right: 76px;
}
.matrix-card-actions {
  position: absolute;
  top: 13px;
  right: 13px;
  z-index: 3;
}
.matrix-details > summary.matrix-edit-summary {
  position: absolute !important;
  top: 13px;
  right: 49px;
  z-index: 3;
  margin: 0 !important;
  width: 30px;
  height: 30px;
  border-color: var(--ink) !important;
  background: #fff !important;
  color: var(--ink) !important;
}
.matrix-details[open] > summary.matrix-edit-summary {
  background: var(--ink) !important;
  color: #fff !important;
}
.matrix-details:not([open]) {
  min-height: 0;
}
.matrix-details:not([open]) > *:not(summary) {
  display: none !important;
}
.matrix-details[open] {
  margin-top: 12px;
}
.matrix-card .info-list {
  padding-right: 76px;
}

/* MVP 0.10.8 · hotfix visual da Matriz e setas sem ciano de revisão */
select {
  -webkit-appearance: none !important;
  appearance: none !important;
  padding-right: 36px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Crect x='1' y='1' width='20' height='20' fill='white' stroke='%23111111' stroke-width='1.5'/%3E%3Cpath d='M7 8.5h8l-4 5z' fill='%23111111'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 6px center !important;
  background-size: 20px 20px !important;
}
select:focus,
select:focus-visible {
  outline: none !important;
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .08) !important;
}

.matrix-new-drawing > summary::before,
.params-summary::before,
.control-advanced-filters summary::before {
  content: "▶" !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
  background: #fff !important;
  font-size: 10px !important;
}
.matrix-new-drawing[open] > summary::before,
.params-details[open] > .params-summary::before,
.control-advanced-filters[open] summary::before {
  content: "▼" !important;
  border-color: var(--ink) !important;
  background: var(--ink) !important;
  color: #fff !important;
}
.control-create-block .summary-icon {
  border-color: var(--ink) !important;
  color: var(--ink) !important;
  background: #fff !important;
  transform: none !important;
  font-size: 0 !important;
}
.control-create-block .summary-icon::before {
  content: "▶";
  font-size: 10px;
  line-height: 1;
}
.control-create-block[open] .summary-icon {
  background: var(--ink) !important;
  color: #fff !important;
}
.control-create-block[open] .summary-icon::before {
  content: "▼";
}

.matrix-card {
  position: relative !important;
  padding-bottom: 12px !important;
}
.matrix-card-head {
  padding-right: 82px !important;
}
.matrix-card-actions {
  position: absolute !important;
  top: 13px !important;
  right: 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  z-index: 5 !important;
}
.matrix-details {
  position: static !important;
}
.matrix-details > summary.matrix-edit-summary {
  position: absolute !important;
  top: 13px !important;
  right: 49px !important;
  z-index: 5 !important;
  margin: 0 !important;
  width: 30px !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid var(--ink) !important;
  background: #fff !important;
  color: var(--ink) !important;
}
.matrix-details[open] > summary.matrix-edit-summary {
  background: var(--ink) !important;
  color: #fff !important;
}
.matrix-details > summary.matrix-edit-summary::before {
  content: none !important;
  display: none !important;
}
.matrix-details:not([open]) {
  min-height: 0 !important;
  margin: 0 !important;
}
.matrix-details:not([open]) > *:not(summary) {
  display: none !important;
}
.matrix-details[open] {
  margin-top: 12px !important;
}
.matrix-card .info-list {
  padding-right: 82px !important;
}

.reorder-handle {
  width: 20px !important;
  height: 20px !important;
  flex-direction: column;
  gap: 0;
  font-size: 8px !important;
  line-height: .75 !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
  background: #fff !important;
}
.reorder-handle span {
  display: block;
  height: 8px;
  line-height: 8px;
}
.params-grid.is-reorder-mode .reorder-handle {
  display: inline-flex !important;
}

/* MVP 0.10.9 · ajuste pontual de edição da prancha e centralização das roscas */
.control-edit-grid input[data-control-edit-code] {
  width: 100%;
  min-height: 34px;
  border: 1px solid var(--ink);
  background: #fff;
  padding: 6px 10px;
  font-weight: 800;
  text-transform: uppercase;
}
.progress-donut-card.full .donut-chart {
  --progress-donut-inner: 50px;
}
.progress-donut-card.compact .donut-chart {
  --progress-donut-inner: 34px;
}
.progress-donut-card.full .donut-chart::after,
.progress-donut-card.compact .donut-chart::after,
.progress-donut-card.full .donut-center,
.progress-donut-card.compact .donut-center {
  inset: auto !important;
  top: 50% !important;
  left: 50% !important;
  width: var(--progress-donut-inner) !important;
  height: var(--progress-donut-inner) !important;
  transform: translate(-50%, -50%) !important;
}
.progress-donut-card.full .donut-center,
.progress-donut-card.compact .donut-center {
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
  justify-content: center !important;
}
#controlTable .control-progress-donut {
  --control-progress-inner: 22px;
  isolation: isolate;
  overflow: visible;
  display: grid;
  place-items: center;
}
#controlTable .control-progress-donut::after,
#controlTable .control-progress-donut span {
  inset: auto !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: var(--control-progress-inner) !important;
  height: var(--control-progress-inner) !important;
  transform: translate(-50%, -50%) !important;
}
#controlTable .control-progress-donut::after {
  z-index: 0;
}
#controlTable .control-progress-donut span {
  z-index: 1;
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
  text-align: center !important;
}
@media (max-width: 1360px) {
  #controlTable .control-progress-donut {
    --control-progress-inner: 20px;
  }
}


/* MVP 0.10.10 · padronização da seta da Matriz e correção de visibilidade dos itens editáveis */
.matrix-new-drawing > summary {
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
}
.matrix-new-drawing > summary::-webkit-details-marker {
  display: none !important;
}
.matrix-new-drawing > summary::before {
  content: "▶" !important;
  display: inline-flex !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  flex: 0 0 18px !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  border: 1px solid var(--ink) !important;
  background: #fff !important;
  color: var(--ink) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-align: center !important;
}
.matrix-new-drawing[open] > summary::before {
  content: "▼" !important;
  background: var(--ink) !important;
  color: #fff !important;
}

/* MVP 0.10.11 · alinhamento dos formulários de Parâmetros e checks da Equipe */
#view-parametros {
  --param-active-col: 120px;
  --param-prefix-col: 160px;
  --param-origin-col: 128px;
  --param-action-col: 142px;
  --param-role-col: 112px;
}
#view-parametros .params-table {
  width: 100%;
  table-layout: fixed;
}
#view-parametros .params-stage-table th:nth-child(1),
#view-parametros .params-stage-table td:nth-child(1),
#view-parametros .params-type-table th:nth-child(1),
#view-parametros .params-type-table td:nth-child(1) { width: var(--param-active-col); text-align: center; }
#view-parametros .params-stage-table th:nth-child(2),
#view-parametros .params-stage-table td:nth-child(2),
#view-parametros .params-type-table th:nth-child(2),
#view-parametros .params-type-table td:nth-child(2) { width: var(--param-prefix-col); }
#view-parametros .params-stage-table th:nth-child(4),
#view-parametros .params-stage-table td:nth-child(4),
#view-parametros .params-type-table th:nth-child(4),
#view-parametros .params-type-table td:nth-child(4) { width: var(--param-origin-col); }
#view-parametros .params-stage-table th:nth-child(5),
#view-parametros .params-stage-table td:nth-child(5),
#view-parametros .params-type-table th:nth-child(5),
#view-parametros .params-type-table td:nth-child(5) { width: var(--param-action-col); }
#view-parametros .params-category-table th:nth-child(1),
#view-parametros .params-category-table td:nth-child(1) { width: var(--param-active-col); text-align: center; }
#view-parametros .params-category-table th:nth-child(2),
#view-parametros .params-category-table td:nth-child(2) { width: calc(var(--param-prefix-col) + 100px); }
#view-parametros .params-category-table th:nth-child(4),
#view-parametros .params-category-table td:nth-child(4) { width: var(--param-origin-col); }
#view-parametros .params-category-table th:nth-child(5),
#view-parametros .params-category-table td:nth-child(5) { width: var(--param-action-col); }
#view-parametros .params-status-table th:nth-child(1),
#view-parametros .params-status-table td:nth-child(1) { width: var(--param-active-col); text-align: center; }
#view-parametros .params-status-table th:nth-child(3),
#view-parametros .params-status-table td:nth-child(3) { width: var(--param-origin-col); }
#view-parametros .params-status-table th:nth-child(4),
#view-parametros .params-status-table td:nth-child(4) { width: var(--param-action-col); }
#view-parametros .params-people-table th:nth-child(1),
#view-parametros .params-people-table td:nth-child(1) { width: var(--param-active-col); text-align: center; }
#view-parametros .params-people-table th:nth-child(3),
#view-parametros .params-people-table td:nth-child(3),
#view-parametros .params-people-table th:nth-child(4),
#view-parametros .params-people-table td:nth-child(4) { width: var(--param-role-col); text-align: center; }
#view-parametros .params-people-table th:nth-child(5),
#view-parametros .params-people-table td:nth-child(5) { width: var(--param-origin-col); }
#view-parametros .params-people-table th:nth-child(6),
#view-parametros .params-people-table td:nth-child(6) { width: var(--param-action-col); }
#view-parametros .aligned-add-grid .param-add-spacer {
  display: block;
  min-width: 0;
  height: 32px;
}
#view-parametros .param-add-grid.stage.compact,
#view-parametros .param-add-grid.type.compact {
  grid-template-columns: var(--param-active-col) var(--param-prefix-col) minmax(260px, 1fr) var(--param-origin-col) auto;
}
#view-parametros .param-add-grid.category.compact {
  grid-template-columns: var(--param-active-col) calc(var(--param-prefix-col) + 100px) minmax(260px, 1fr) var(--param-origin-col) auto;
}
#view-parametros .param-add-grid.status.compact {
  grid-template-columns: var(--param-active-col) minmax(260px, 1fr) var(--param-origin-col) auto;
}
#view-parametros .param-add-grid.person.compact {
  grid-template-columns: var(--param-active-col) minmax(260px, 1fr) var(--param-role-col) var(--param-role-col) var(--param-origin-col) auto;
}
#view-parametros .param-check-field {
  display: grid;
  gap: 4px;
  margin: 0;
  font-size: 9px;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  justify-items: center;
}
#view-parametros .param-check-slot {
  height: 32px;
  min-height: 32px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
#view-parametros .param-check-slot .inline-check,
#view-parametros .inline-param-check input,
#view-parametros .params-people-table input[type="checkbox"] {
  width: 18px;
  min-width: 18px;
  height: 18px;
  accent-color: var(--ink);
  cursor: pointer;
}
#view-parametros .param-check-field .inline-check {
  margin: 0;
}
@media (max-width: 980px) {
  #view-parametros .param-add-grid.stage.compact,
  #view-parametros .param-add-grid.category.compact,
  #view-parametros .param-add-grid.type.compact,
  #view-parametros .param-add-grid.status.compact,
  #view-parametros .param-add-grid.person.compact {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  #view-parametros .aligned-add-grid .param-add-spacer { display: none; }
  #view-parametros .param-check-field { justify-items: start; }
  #view-parametros .param-check-slot { justify-content: flex-start; }
}
#view-parametros .param-add-grid.preset.compact {
  grid-template-columns: 56px 180px 160px 160px 150px minmax(180px, 1fr) var(--param-origin-col) auto;
}
#view-parametros .param-add-grid.preset.compact .drawing-spacer {
  min-width: 0;
}
@media (max-width: 1100px) {
  #view-parametros .param-add-grid.preset.compact {
    grid-template-columns: 1fr;
  }
  #view-parametros .param-add-grid.preset.compact .param-add-spacer { display: none; }
}

/* MVP 0.10.12 · formulários de adicionar como linha compacta alinhada às tabelas */
#view-parametros .param-add-form.compact {
  padding: 8px 0;
  margin-top: 8px;
  gap: 0;
}
#view-parametros .param-add-form.compact > strong {
  display: none;
}
#view-parametros .param-add-grid.compact,
#view-parametros .param-add-grid.stage.compact,
#view-parametros .param-add-grid.category.compact,
#view-parametros .param-add-grid.type.compact,
#view-parametros .param-add-grid.status.compact,
#view-parametros .param-add-grid.person.compact,
#view-parametros .param-add-grid.preset.compact {
  column-gap: 0;
  row-gap: 6px;
  align-items: end;
  width: 100%;
}
#view-parametros .param-add-title {
  display: flex;
  align-items: center;
  min-height: 32px;
  padding: 13px 9px 0 12px;
  margin: 0;
  font-size: 11px;
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
  align-self: end;
}
#view-parametros .param-add-grid.compact label,
#view-parametros .param-check-field {
  padding: 0 9px;
}
#view-parametros .param-add-grid.compact .btn {
  width: calc(100% - 18px);
  margin: 0 9px;
  justify-content: center;
  white-space: nowrap;
}
#view-parametros .param-add-grid.stage.compact,
#view-parametros .param-add-grid.type.compact {
  grid-template-columns: var(--param-active-col) var(--param-prefix-col) minmax(260px, 1fr) var(--param-origin-col) var(--param-action-col);
}
#view-parametros .param-add-grid.category.compact {
  grid-template-columns: var(--param-active-col) calc(var(--param-prefix-col) + 100px) minmax(260px, 1fr) var(--param-origin-col) var(--param-action-col);
}
#view-parametros .param-add-grid.status.compact {
  grid-template-columns: var(--param-active-col) minmax(260px, 1fr) var(--param-origin-col) var(--param-action-col);
}
#view-parametros .param-add-grid.person.compact {
  grid-template-columns: var(--param-active-col) minmax(260px, 1fr) var(--param-role-col) var(--param-role-col) var(--param-origin-col) var(--param-action-col);
}
#view-parametros .params-preset-table th:nth-child(1),
#view-parametros .params-preset-table td:nth-child(1) { width: var(--param-active-col); text-align: center; }
#view-parametros .params-preset-table th:nth-child(2),
#view-parametros .params-preset-table td:nth-child(2) { width: 180px; }
#view-parametros .params-preset-table th:nth-child(3),
#view-parametros .params-preset-table td:nth-child(3),
#view-parametros .params-preset-table th:nth-child(4),
#view-parametros .params-preset-table td:nth-child(4) { width: 160px; }
#view-parametros .params-preset-table th:nth-child(5),
#view-parametros .params-preset-table td:nth-child(5) { width: 150px; }
#view-parametros .params-preset-table th:nth-child(7),
#view-parametros .params-preset-table td:nth-child(7) { width: var(--param-origin-col); }
#view-parametros .params-preset-table th:nth-child(8),
#view-parametros .params-preset-table td:nth-child(8) { width: var(--param-action-col); }
#view-parametros .param-add-grid.preset.compact {
  grid-template-columns: var(--param-active-col) 180px 160px 160px 150px minmax(180px, 1fr) var(--param-origin-col) var(--param-action-col);
}
#view-parametros .param-add-note {
  display: block;
  padding: 6px 9px 0 calc(var(--param-active-col) + 9px);
  line-height: 1.25;
}
@media (max-width: 980px) {
  #view-parametros .param-add-form.compact { padding: 10px 12px; }
  #view-parametros .param-add-title { padding: 0; min-height: auto; }
  #view-parametros .param-add-grid.compact label,
  #view-parametros .param-check-field { padding: 0; }
  #view-parametros .param-add-grid.compact .btn { width: 100%; margin: 0; }
  #view-parametros .param-add-note { padding-left: 0; }
}
@media (max-width: 1100px) {
  #view-parametros .param-add-grid.preset.compact {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}
@media (max-width: 980px) {
  #view-parametros .param-add-grid.stage.compact,
  #view-parametros .param-add-grid.category.compact,
  #view-parametros .param-add-grid.type.compact,
  #view-parametros .param-add-grid.status.compact,
  #view-parametros .param-add-grid.person.compact,
  #view-parametros .param-add-grid.preset.compact {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}
#view-parametros .param-add-grid.compact .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* MVP 0.10.13 · ações de edição/remoção nas linhas de Parâmetros */
#view-parametros .params-table th:last-child,
#view-parametros .params-table td:last-child {
  text-align: center;
}
#view-parametros .param-row-actions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
}
#view-parametros .params-table .btn.small.icon-only-btn {
  width: 30px;
  min-width: 30px;
  height: 30px;
  padding: 0;
}
#view-parametros .params-table tr.is-param-editing {
  outline: 1px solid var(--ink);
  outline-offset: -2px;
}
#view-parametros .params-table tr.is-param-editing .param-input:focus {
  box-shadow: inset 0 0 0 1px var(--ink);
}

/* MVP 0.10.14 · modo de edição controlada e origem editável em Parâmetros */
#view-parametros .params-table tr.is-param-readonly .param-input[readonly],
#view-parametros .params-table tr.is-param-readonly select.param-input:disabled {
  opacity: 1;
  color: var(--ink);
  background: #fff;
  border-color: var(--line-strong);
  cursor: default;
}
#view-parametros .params-table tr.is-param-readonly select.param-input:disabled {
  appearance: none;
  -webkit-appearance: none;
  background-image: none;
}
#view-parametros .params-table tr.is-param-readonly .preset-drawing-option:disabled,
#view-parametros .params-table tr.is-param-readonly input.inline-check:disabled {
  opacity: 1;
  cursor: default;
}
#view-parametros .params-table tr.is-param-editing {
  outline: 1px solid var(--ink);
  outline-offset: -2px;
  background: #fff;
}
#view-parametros .params-table tr.is-param-editing .param-input:not([readonly]):focus,
#view-parametros .params-table tr.is-param-editing select.param-input:focus {
  box-shadow: inset 0 0 0 1px var(--ink);
}
#view-parametros .params-table .btn.small.icon-only-btn.is-active {
  background: var(--ink);
  color: #fff;
}
#view-parametros .params-table .btn.small.icon-only-btn.is-active svg {
  stroke: #fff;
}
#view-parametros .param-origin-row-select {
  min-width: 96px;
  max-width: 120px;
  height: 34px;
  padding: 7px 8px;
}


/* MVP 0.10.15 · alinhamento fino das linhas e highlight padrão de edição */
#view-parametros .params-table tr[data-param-kind] td {
  vertical-align: middle;
}
#view-parametros .param-line-controls {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
}
#view-parametros .param-line-controls .reorder-handle {
  flex: 0 0 20px;
  margin: 0 !important;
}
#view-parametros .param-line-controls .inline-check,
#view-parametros .params-table td > input.inline-check,
#view-parametros .params-table input.inline-check {
  flex: 0 0 18px;
  margin: 0;
  vertical-align: middle;
}
#view-parametros .param-row-actions {
  min-height: 34px;
}
#view-parametros .params-table tr.is-param-editing {
  outline: none;
  background: transparent;
}
#view-parametros .params-table tr.is-param-editing td {
  background: #ece7dc !important;
  box-shadow: inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink);
}
#view-parametros .params-table tr.is-param-editing td:first-child {
  box-shadow: inset 2px 0 0 var(--ink), inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink);
}
#view-parametros .params-table tr.is-param-editing td:last-child {
  box-shadow: inset -2px 0 0 var(--ink), inset 0 1px 0 var(--ink), inset 0 -1px 0 var(--ink);
}
#view-parametros .params-table tr.is-param-editing .param-input,
#view-parametros .params-table tr.is-param-editing .param-origin-row-select {
  background: #fff;
}

/* MVP 0.10.16 · checklist com painéis do cabeçalho lado a lado e dashboard dos desenhos ampliado */
.sheet-title-card {
  gap: 22px;
}
.sheet-title-main {
  flex: 1 1 42%;
}
.sheet-summary-panel {
  flex: 1 1 56%;
  min-width: 620px;
  display: grid;
  gap: 10px;
  align-content: start;
}
.sheet-summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(250px, .82fr);
  gap: 10px;
  align-items: stretch;
}
.sheet-info-panel,
.sheet-progress-panel > .progress-donut-card.full {
  min-height: 134px;
  height: 100%;
}
.sheet-info-panel {
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.03);
  padding: 10px 12px;
  display: grid;
  gap: 10px;
  align-content: start;
}
.sheet-info-panel .sheet-reminder {
  border: 0;
  background: transparent;
  padding: 0;
}
.sheet-progress-panel {
  min-width: 0;
  display: grid;
}
.sheet-progress-panel .progress-donut-card.full {
  display: grid;
  align-content: center;
}
.sheet-actions-row {
  justify-content: flex-end;
}
.drawing-card-head {
  align-items: stretch;
}
.drawing-card-copy {
  flex: 1 1 52%;
}
.drawing-progress-wrap {
  flex: 0 0 42%;
  min-width: 300px;
  max-width: 390px;
  display: grid;
}
.drawing-progress-wrap .progress-donut-card.compact {
  height: 100%;
  display: grid;
  align-content: center;
}
@media (max-width: 1180px) {
  .sheet-title-card {
    flex-direction: column;
  }
  .sheet-summary-panel {
    min-width: 0;
  }
  .sheet-summary-grid {
    grid-template-columns: 1fr;
  }
  .drawing-progress-wrap {
    min-width: 0;
    max-width: none;
    width: 100%;
  }
}


/* MVP 0.11.1 · fundação visual global pré-design
   Objetivo: reduzir ruído, unificar espaçamentos/controles e suavizar linhas
   sem alterar estrutura, cálculos ou regras de negócio. */
:root {
  --bg: #fbfaf7;
  --surface: #fffefb;
  --surface-soft: #f7f4ee;
  --paper: #fffefb;
  --ink: #11100e;
  --muted: #625d54;
  --line: #e4ded3;
  --line-soft: #eee9df;
  --line-strong: #bdb4a5;
  --accent: #11100e;
  --accent-soft: #ece7dc;
  --focus-ring: rgba(17, 16, 14, .12);
  --control-height: 38px;
  --control-height-small: 30px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
}

html,
body {
  background: var(--bg);
}

body {
  text-transform: none;
  letter-spacing: .005em;
  line-height: 1.48;
}

button,
.btn,
.nav-item,
.eyebrow,
label,
.label-line,
.chip,
.data-table th,
.check-table th,
.matrix-edit-table th,
.matrix-new-grid label,
.param-add-label,
.param-add-grid label,
.summary-icon + strong {
  text-transform: uppercase;
  letter-spacing: .065em;
}

input,
select,
textarea,
.data-table,
.check-table,
.matrix-edit-table {
  letter-spacing: .012em;
}

textarea,
.log-row,
.summary-row,
.meta-list,
.hero-card p:not(.eyebrow),
.sheet-title-card p,
.muted,
.sidebar-note span,
.check-option span,
.matrix-toolbar span,
.matrix-card p {
  text-transform: none;
}

.sidebar {
  background: #f4f1eb;
  border-right: 1px solid var(--line-strong);
}

.brand-mark,
.sidebar-note,
.table-wrap,
.check-list,
.matrix-toolbar,
.matrix-new-drawing,
.matrix-add-form,
.matrix-card,
.drawing-card,
.hero-card,
.panel,
.kpi-card,
.preview-box,
.preview-drawing,
.warning,
.matrix-help {
  border-color: var(--line-strong);
}

.topbar,
.nav,
.panel-head,
.drawing-card header,
.matrix-details,
.check-table th,
.data-table th,
.matrix-edit-table th {
  border-color: var(--line-strong) !important;
}

.nav-item,
.data-table th,
.data-table td,
.check-table th,
.check-table td,
.matrix-edit-table th,
.matrix-edit-table td,
.summary-row,
.log-row,
.check-option,
.mini-check-items li {
  border-color: var(--line) !important;
}

.hero-card,
.panel,
.kpi-card,
.drawing-card,
.matrix-card,
.matrix-new-drawing,
.table-wrap {
  background: var(--surface);
}

.panel,
.hero-card,
.kpi-card {
  border-color: var(--line-strong);
}

.panel-head {
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-4);
}

.main {
  padding: var(--space-6) 36px 56px;
}

.kpi-grid,
.two-cols,
.grid-12,
.drawings-grid,
.matrix-grid,
.dashboard-charts {
  gap: var(--space-4);
}

.btn {
  min-height: var(--control-height);
  padding: 9px 13px;
  border-color: var(--line-strong);
  background: var(--surface);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .07em;
}

.btn:hover {
  border-color: var(--ink);
  background: var(--surface-soft);
  color: var(--ink);
}

.btn.primary,
.btn.primary:hover {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}

.btn.ghost {
  background: transparent;
  border-color: var(--line-strong);
}

.btn.ghost:hover {
  background: var(--accent-soft);
  color: var(--ink);
}

.btn.danger {
  color: var(--danger);
  border-color: #c9a7a7;
  background: transparent;
}

.btn.danger:hover {
  color: #fff;
  background: var(--danger);
  border-color: var(--danger);
}

.btn.small {
  min-height: var(--control-height-small);
  padding: 6px 9px;
}

input,
select,
textarea,
.matrix-input,
.mini-input,
.status-select,
.param-input,
.matrix-add-grid input,
.matrix-add-grid select,
.matrix-new-grid input,
.matrix-new-grid select {
  min-height: var(--control-height);
  border-color: var(--line-strong);
  background: var(--surface);
  font-size: 11px;
}

input:hover,
select:hover,
textarea:hover,
.matrix-input:hover,
.mini-input:hover,
.status-select:hover,
.param-input:hover {
  border-color: var(--ink);
}

input:focus,
select:focus,
textarea:focus,
.matrix-input:focus,
.mini-input:focus,
.status-select:focus,
.param-input:focus {
  border-color: var(--ink);
  box-shadow: 0 0 0 3px var(--focus-ring);
}

.data-table th,
.matrix-edit-table th,
.check-table th {
  background: #f5f2ec;
  color: var(--ink);
}

.data-table td,
.check-table td,
.matrix-edit-table td {
  padding-top: 9px;
  padding-bottom: 9px;
}

.data-table tbody tr:hover td,
.check-table tbody tr:hover td,
.matrix-edit-table tbody tr:hover td {
  background: rgba(236, 231, 220, .45);
}

.chip {
  border-color: var(--line-strong);
  background: rgba(255,255,255,.48);
  color: var(--ink);
  font-weight: 650;
}

.chip.strong {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.warning,
.matrix-help {
  border-color: var(--warn-line);
  background: #fbf7ea;
  color: #5c4512 !important;
}

.progress-bar {
  border-color: var(--line-strong);
  background: #f0ebe2;
}

.progress-bar span {
  background: var(--ink);
}

.sheet-title-card {
  background: #11100e;
  border-color: #11100e;
}

.sheet-info-panel,
.sheet-progress-panel > .progress-donut-card.full {
  border-color: rgba(255,255,255,.24);
}

#view-parametros .params-table tr.is-param-readonly .param-input[readonly],
#view-parametros .params-table tr.is-param-readonly select.param-input:disabled {
  background: #fbfaf7;
  border-color: var(--line);
}

#view-parametros .params-table tr.is-param-editing td {
  background: var(--accent-soft) !important;
  box-shadow: inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong);
}

#view-parametros .params-table tr.is-param-editing td:first-child {
  box-shadow: inset 2px 0 0 var(--ink), inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong);
}

#view-parametros .params-table tr.is-param-editing td:last-child {
  box-shadow: inset -2px 0 0 var(--ink), inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong);
}

#view-parametros .params-table tr.is-param-editing .param-input,
#view-parametros .params-table tr.is-param-editing .param-origin-row-select {
  background: var(--surface);
  border-color: var(--ink);
}

.reorder-handle,
.summary-icon,
.icon-only-btn,
#view-parametros .params-table .btn.small.icon-only-btn {
  border-color: var(--line-strong);
}

::-webkit-scrollbar-thumb {
  background: #cfc6b7;
  border: 3px solid var(--bg);
}

@media (max-width: 860px) {
  .main {
    padding: 20px 14px 32px;
  }
}

/* MVP 0.11.2 · Rodada 2 de design — tabelas e formulários
   Objetivo: reduzir aparência de planilha pesada, diferenciar leitura/edição
   e tornar campos internos mais silenciosos sem alterar regras de negócio. */
:root {
  --table-head-bg: #f6f2ea;
  --table-row-hover: rgba(236, 231, 220, .46);
  --table-row-selected: #ece7dc;
  --field-quiet-bg: transparent;
  --field-active-bg: #fffefb;
  --field-quiet-border: transparent;
  --field-hover-border: #cfc6b7;
  --field-focus-border: var(--ink);
}

/* Superfícies de tabela mais leves e legíveis */
.table-wrap,
#view-controle .table-wrap.wide,
.params-table-wrap,
.drawing-card .table-wrap,
.control-create-queue .table-wrap {
  border-color: var(--line) !important;
  background: var(--surface) !important;
}

.data-table,
.check-table,
.matrix-edit-table,
.params-table,
#controlTable.control-table,
#queueTable.queue-table {
  background: var(--surface);
  border-collapse: separate;
  border-spacing: 0;
}

.data-table th,
.check-table th,
.matrix-edit-table th,
.params-table th,
#controlTable.control-table thead th,
#queueTable.queue-table thead th {
  background: var(--table-head-bg) !important;
  border-bottom: 1px solid var(--line-strong) !important;
  color: var(--ink) !important;
  font-size: 9px;
  font-weight: 850;
  line-height: 1.15;
  padding-top: 9px;
  padding-bottom: 9px;
}

.data-table td,
.check-table td,
.matrix-edit-table td,
.params-table td,
#controlTable.control-table td,
#queueTable.queue-table td {
  border-bottom: 1px solid var(--line-soft) !important;
  line-height: 1.32;
}

.data-table tbody tr:last-child td,
.check-table tbody tr:last-child td,
.matrix-edit-table tbody tr:last-child td,
.params-table tbody tr:last-child td {
  border-bottom: 0 !important;
}

.data-table tbody tr:hover td,
.check-table tbody tr:hover td,
.matrix-edit-table tbody tr:hover td,
.params-table tbody tr:hover td,
#controlTable.control-table tr.selectable-row:hover td,
#queueTable.queue-table tr.selectable-row:hover td {
  background: var(--table-row-hover) !important;
}

.selectable-row.is-selected td,
#controlTable.control-table tr.selectable-row.is-selected td,
#queueTable.queue-table tr.selectable-row.is-selected td,
.matrix-edit-table .selectable-row.is-selected td,
.check-table .selectable-row.is-selected td {
  background: var(--table-row-selected) !important;
  box-shadow: inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

.selectable-row.is-selected td:first-child,
#controlTable.control-table tr.selectable-row.is-selected td:first-child {
  box-shadow: inset 2px 0 0 var(--ink), inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

.selectable-row.is-selected td:last-child,
#controlTable.control-table tr.selectable-row.is-selected td:last-child {
  box-shadow: inset -2px 0 0 var(--ink), inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

/* Campos dentro de tabelas: leitura mais calma, edição aparece por hover/foco */
.data-table td input:not([type="checkbox"]),
.data-table td select,
.data-table td textarea,
.check-table td input:not([type="checkbox"]),
.check-table td select,
.matrix-edit-table td input:not([type="checkbox"]),
.matrix-edit-table td select,
.params-table td input:not([type="checkbox"]),
.params-table td select,
#controlTable td .mini-input,
#controlTable td .status-select,
#queueTable td select,
#queueTable td input:not([type="checkbox"]) {
  background-color: var(--field-quiet-bg) !important;
  border-color: var(--field-quiet-border) !important;
  box-shadow: none !important;
  min-height: 32px;
}

.data-table td textarea,
#controlTable td .notes-input,
.check-table td .mini-input {
  padding-left: 8px;
  padding-right: 8px;
}

.data-table td input:not([type="checkbox"]):hover,
.data-table td select:hover,
.data-table td textarea:hover,
.check-table td input:not([type="checkbox"]):hover,
.check-table td select:hover,
.matrix-edit-table td input:not([type="checkbox"]):hover,
.matrix-edit-table td select:hover,
.params-table td input:not([type="checkbox"]):hover,
.params-table td select:hover,
#controlTable td .mini-input:hover,
#controlTable td .status-select:hover,
#queueTable td select:hover,
#queueTable td input:not([type="checkbox"]):hover {
  background-color: var(--field-active-bg) !important;
  border-color: var(--field-hover-border) !important;
}

.data-table td input:not([type="checkbox"]):focus,
.data-table td select:focus,
.data-table td textarea:focus,
.check-table td input:not([type="checkbox"]):focus,
.check-table td select:focus,
.matrix-edit-table td input:not([type="checkbox"]):focus,
.matrix-edit-table td select:focus,
.params-table td input:not([type="checkbox"]):focus,
.params-table td select:focus,
#controlTable td .mini-input:focus,
#controlTable td .status-select:focus,
#queueTable td select:focus,
#queueTable td input:not([type="checkbox"]):focus {
  background-color: var(--field-active-bg) !important;
  border-color: var(--field-focus-border) !important;
  box-shadow: 0 0 0 3px var(--focus-ring) !important;
}

/* Preservar clareza dos selects de status e origem sem peso excessivo */
.status-select,
.param-origin-row-select,
.queue-mini-select,
.queue-drawing-select {
  background-color: var(--field-active-bg) !important;
}

/* Parâmetros: modo leitura realmente parece leitura; modo edição continua evidente */
#view-parametros .params-table tr.is-param-readonly .param-input[readonly],
#view-parametros .params-table tr.is-param-readonly select.param-input:disabled {
  background: transparent !important;
  border-color: transparent !important;
  padding-left: 0;
  padding-right: 0;
}

#view-parametros .params-table tr.is-param-readonly .param-origin-row-select,
#view-parametros .params-table tr.is-param-readonly select.param-input:disabled {
  color: var(--ink) !important;
  font-weight: 750;
}

#view-parametros .params-table tr.is-param-editing td {
  background: var(--accent-soft) !important;
  box-shadow: inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

#view-parametros .params-table tr.is-param-editing .param-input,
#view-parametros .params-table tr.is-param-editing .param-origin-row-select,
#view-parametros .params-table tr.is-param-editing .preset-drawing-option {
  background: var(--surface) !important;
  border-color: var(--line-strong) !important;
}

#view-parametros .params-table tr.is-param-editing .param-input:focus,
#view-parametros .params-table tr.is-param-editing .param-origin-row-select:focus {
  border-color: var(--ink) !important;
}

#view-parametros .param-row-actions,
.row-actions,
.matrix-card-actions {
  gap: 5px;
}

#view-parametros .params-table .btn.small.icon-only-btn,
.row-actions .icon-only-btn,
.matrix-card-actions .icon-only-btn,
#controlTable .btn.small.icon-only-btn,
#queueTable .btn.small.icon-only-btn {
  border-color: var(--line-strong) !important;
  background: transparent !important;
}

#view-parametros .params-table .btn.small.icon-only-btn:hover,
.row-actions .icon-only-btn:hover,
.matrix-card-actions .icon-only-btn:hover,
#controlTable .btn.small.icon-only-btn:hover,
#queueTable .btn.small.icon-only-btn:hover,
#view-parametros .params-table .btn.small.icon-only-btn.is-active {
  border-color: var(--ink) !important;
  background: var(--ink) !important;
  color: #fff !important;
}

/* Formulários: áreas de cadastro como continuidade da tabela, não caixas pesadas */
.control-create-form,
.control-edit-panel,
.matrix-add-popover,
.param-add-form.compact,
.matrix-add-form,
.batch-help,
.bulk-action-bar,
.params-save-toolbar {
  border-color: var(--line) !important;
  background: #fffdf9 !important;
}

.control-create-form,
.control-edit-panel,
.matrix-add-popover {
  padding: 14px;
}

.param-add-form.compact {
  border-style: solid !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  background: transparent !important;
  margin-top: 0 !important;
  padding-top: 10px !important;
}

#view-parametros .param-add-title {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
}

#view-parametros .param-add-grid.compact input,
#view-parametros .param-add-grid.compact select {
  background: var(--surface) !important;
  border-color: var(--line-strong) !important;
}

#view-parametros .param-add-grid.compact input:focus,
#view-parametros .param-add-grid.compact select:focus {
  border-color: var(--ink) !important;
}

/* Checklist: tabela mais legível e agrupamentos menos pesados */
#view-prancha .drawing-card header {
  border-bottom-color: var(--line-strong) !important;
  background: #fffdf9 !important;
}

#view-prancha .check-group-row td,
.check-group-row td,
.matrix-group-row td {
  background: #f7f4ee !important;
  border-top-color: var(--line-strong) !important;
  border-bottom-color: var(--line) !important;
}

.check-group-label strong,
.matrix-group-head strong {
  font-size: 10px;
  letter-spacing: .07em;
}

.check-item-row td {
  vertical-align: middle !important;
}

.check-table-grouped .mini-input,
.check-table-grouped .status-select {
  min-height: 32px;
  height: 32px;
}

/* Matriz expandida: reduzir sensação de grade administrativa pesada */
.matrix-card:has(.matrix-details[open]) {
  border-color: var(--line-strong) !important;
  border-width: 1px !important;
}

.matrix-edit-table th,
.matrix-edit-table td {
  padding-left: 10px;
  padding-right: 10px;
}

.matrix-app-btn,
.preset-drawing-option,
.control-edit-drawing {
  border-color: var(--line-strong) !important;
  background: var(--surface) !important;
}

.matrix-app-btn:hover,
.matrix-app-btn.is-active,
.preset-drawing-option.is-selected,
.control-edit-drawing.is-selected {
  border-color: var(--ink) !important;
  background: var(--ink) !important;
  color: #fff !important;
}

/* Controle: manter potência da tabela com leitura menos dura */
#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) {
  border-right: 1px solid var(--line) !important;
}

#controlTable.control-table td:nth-child(1) {
  font-weight: 850;
}

#controlTable .sheet-link {
  border-bottom-color: var(--line-strong);
  text-underline-offset: 4px;
}

#controlTable .sheet-link:hover,
#controlTable .sheet-link:focus-visible {
  background: var(--accent-soft) !important;
  color: var(--ink) !important;
  box-shadow: inset 0 -1px 0 var(--ink);
}

#controlTable .control-drawings-copy {
  scrollbar-width: thin;
}

/* Inputs de arquivo e formulários fora das tabelas mantêm fronteira clara */
.form-stack input,
.form-stack select,
.form-stack textarea,
.control-create-form input,
.control-create-form select,
.control-create-form textarea,
.dashboard-filter-grid input,
.dashboard-filter-grid select,
.control-dashboard-filter-grid input,
.control-dashboard-filter-grid select,
.matrix-dashboard-filter-grid input,
.matrix-dashboard-filter-grid select {
  border-color: var(--line-strong) !important;
  background: var(--surface) !important;
}

/* Pequena normalização de densidade sem apertar */
#controlTable.control-table th,
#controlTable.control-table td,
#queueTable.queue-table th,
#queueTable.queue-table td,
.params-table th,
.params-table td,
.matrix-edit-table th,
.matrix-edit-table td,
.check-table th,
.check-table td {
  padding-left: 9px;
  padding-right: 9px;
}

@media (max-width: 900px) {
  .data-table td input:not([type="checkbox"]),
  .data-table td select,
  .data-table td textarea,
  .check-table td input:not([type="checkbox"]),
  .check-table td select,
  .matrix-edit-table td input:not([type="checkbox"]),
  .matrix-edit-table td select,
  .params-table td input:not([type="checkbox"]),
  .params-table td select {
    border-color: var(--line-strong) !important;
    background: var(--surface) !important;
  }
}

/* MVP 0.11.3 · Rodada 3 de design — cards, cabeçalhos e blocos
   Objetivo: lapidar superfícies, cabeçalhos e agrupamentos sem alterar comportamento. */
:root {
  --block-bg: #fffefb;
  --block-bg-soft: #faf8f2;
  --block-border: var(--line-strong);
  --block-border-soft: var(--line);
  --block-pad: 18px;
  --block-pad-lg: 22px;
  --block-gap: 16px;
  --header-separator: var(--line-strong);
}

/* Superfícies principais: mesma família visual, menos sensação de caixa pesada. */
.hero-card,
.panel,
.kpi-card,
.chart-card,
.donut-card,
.matrix-card,
.matrix-new-drawing,
.params-block,
.params-save-toolbar,
.control-create-block,
.control-create-form,
.control-edit-panel,
.batch-help,
.warning,
.drawing-card,
.sheet-title-card {
  border-color: var(--block-border-soft) !important;
  box-shadow: none !important;
}

.hero-card,
.panel,
.kpi-card,
.chart-card,
.donut-card,
.params-block,
.control-create-form,
.control-edit-panel,
.batch-help,
.warning {
  background: var(--surface) !important;
}

.panel,
.dashboard-indicators-panel {
  padding: var(--block-pad-lg) !important;
}

.hero-card {
  padding: 30px 32px !important;
  border-color: var(--block-border) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
}

.hero-card h3 {
  max-width: 980px;
}

.hero-card .hero-actions,
.hero-card .top-actions,
.panel-head .inline-actions {
  align-self: end;
}

/* Cabeçalhos de bloco: separação mais silenciosa e proporção mais limpa. */
.panel-head,
.params-head,
.type-section-head,
.matrix-card-head,
.control-edit-head {
  border-bottom: 1px solid var(--header-separator) !important;
  padding-bottom: 12px !important;
  margin-bottom: 14px !important;
}

.panel-head h3,
.params-head h3,
.type-section-head h3,
.matrix-card h4,
.drawing-card header h4,
.chart-card h4,
.progress-donut-card h4 {
  line-height: 1.1;
}

.panel-head .muted,
.params-head .muted,
.type-section-head .muted {
  max-width: 760px;
}

/* KPIs: leitura mais premium, com número forte e label mais discreto. */
.kpi-grid {
  gap: 16px !important;
  margin-bottom: 20px !important;
}

.kpi-card {
  padding: 18px 18px 16px !important;
  border-color: var(--block-border-soft) !important;
  min-height: 104px;
  display: grid;
  align-content: space-between;
}

.kpi-card strong {
  font-size: clamp(30px, 3.1vw, 42px) !important;
  line-height: .92;
}

.kpi-card span {
  display: block;
  margin-top: 14px;
  color: var(--muted) !important;
}

/* Dashboard: gráficos como cards de análise, não caixas administrativas pesadas. */
.dashboard-indicators-panel {
  margin-bottom: 20px !important;
}

.dashboard-indicators-panel > .panel-head.wrap {
  grid-template-columns: minmax(0, 1fr) auto;
}

.dashboard-charts {
  gap: 14px !important;
}

.chart-card,
.donut-card {
  padding: 16px !important;
  min-height: 252px;
  border-color: var(--block-border-soft) !important;
  background: var(--block-bg) !important;
}

.chart-card h4,
.donut-card h4 {
  margin-bottom: 14px !important;
  color: var(--ink);
}

.chart-note {
  border-top-color: var(--block-border-soft) !important;
  color: var(--muted) !important;
}

.donut-chart,
.donut-chart::after,
.donut-swatch {
  border-color: var(--line-strong) !important;
}

/* Matriz: cards fechados mais limpos; edição aberta como estado estrutural claro. */
.matrix-grid {
  gap: 14px !important;
}

.matrix-card {
  padding: 16px !important;
  background: var(--block-bg) !important;
  border-color: var(--block-border-soft) !important;
}

.matrix-card-head {
  align-items: flex-start;
  min-height: 38px;
}

.matrix-card-head h4 {
  margin-top: 0;
}

.matrix-card .chip-list,
.drawing-card .chip-list {
  gap: 6px;
}

.matrix-card p,
.drawing-card-copy .chip-list {
  margin-top: 8px;
}

.matrix-card:has(.matrix-details[open]) {
  border-color: var(--block-border) !important;
  background: var(--surface) !important;
  box-shadow: inset 3px 0 0 var(--ink) !important;
}

.matrix-card:has(.matrix-details[open]) .matrix-card-head {
  border-bottom-color: var(--block-border) !important;
}

.matrix-details {
  margin-top: 14px;
  padding-top: 12px;
  border-top-color: var(--block-border-soft) !important;
}

.matrix-toolbar,
.matrix-new-drawing,
.matrix-add-form {
  border-color: var(--block-border-soft) !important;
}

.matrix-toolbar {
  padding: 14px 0 16px !important;
}

/* Dados: blocos mais seguros e legíveis, com ações separadas da leitura da fonte. */
#view-dados .panel {
  min-height: 100%;
}

#view-dados .form-stack {
  gap: 16px;
}

#view-dados .form-stack p {
  margin: 0;
  max-width: 620px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
  letter-spacing: .035em;
}

#view-dados .meta-list {
  grid-template-columns: minmax(150px, .42fr) minmax(0, 1fr);
  row-gap: 0;
  column-gap: 16px;
  border-top: 1px solid var(--block-border-soft);
}

#view-dados .meta-list dt,
#view-dados .meta-list dd {
  padding: 10px 0;
  border-bottom: 1px solid var(--block-border-soft);
}

#view-dados .meta-list dt {
  color: var(--muted);
}

#view-dados .meta-list dd {
  font-weight: 750;
}

/* Checklist da prancha: cabeçalho forte, mas mais respirado e com quadros internos precisos. */
.sheet-header {
  gap: 18px !important;
}

.sheet-title-card {
  border-color: var(--ink) !important;
  padding: 28px !important;
  gap: 26px !important;
}

.sheet-title-main {
  flex-basis: 45% !important;
  justify-content: center !important;
}

.sheet-title-card h3 {
  margin-bottom: 12px !important;
  line-height: .9 !important;
}

.sheet-title-card p:not(.eyebrow) {
  max-width: 760px;
  color: rgba(255,255,255,.86) !important;
}

.sheet-summary-panel {
  flex-basis: 50% !important;
  gap: 12px !important;
}

.sheet-summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(260px, .92fr);
  gap: 14px;
  align-items: stretch;
}

.sheet-info-panel,
.sheet-progress-panel,
.sheet-reminder,
.progress-donut-card.full {
  border-color: rgba(255,255,255,.20) !important;
  background: rgba(255,255,255,.035) !important;
}

.sheet-info-panel,
.sheet-progress-panel {
  min-width: 0;
}

.sheet-info-panel {
  display: grid;
  gap: 12px;
}

.sheet-reminder {
  padding: 12px !important;
}

.sheet-reminder-input {
  min-height: 72px;
}

.progress-donut-card.full {
  height: 100%;
  display: grid;
  align-content: center;
  padding: 14px !important;
}

.progress-donut-card.full h4 {
  margin-bottom: 12px !important;
}

.sheet-actions-row {
  margin-top: 0;
}

/* Cards dos desenhos: cabeçalho menos pesado e dashboard integrado. */
.drawings-grid {
  gap: 18px !important;
  margin-top: 16px !important;
}

.drawing-card {
  background: var(--surface) !important;
  border-color: var(--block-border-soft) !important;
}

#view-prancha .drawing-card header,
.drawing-card header {
  background: var(--block-bg) !important;
  border-bottom-color: var(--block-border-soft) !important;
  padding: 18px !important;
}

.drawing-card-head {
  gap: 18px !important;
  align-items: stretch !important;
}

.drawing-card-copy {
  display: grid;
  align-content: start;
}

.drawing-card-copy h4 {
  max-width: 760px;
}

.drawing-progress-wrap {
  flex: 0 0 min(44%, 360px) !important;
  min-width: 260px !important;
  display: flex;
}

.drawing-progress-wrap > div,
.drawing-progress-wrap .progress-donut-card {
  width: 100%;
}

.progress-donut-card.compact {
  border-color: var(--block-border-soft) !important;
  background: var(--surface) !important;
  padding: 12px !important;
  display: grid;
}

.progress-donut-card.compact h4 {
  margin-bottom: 8px !important;
}

.progress-donut-card.compact .donut-layout {
  grid-template-columns: 66px minmax(0, 1fr) !important;
  gap: 10px !important;
}

.progress-donut-card.compact .donut-chart {
  width: 66px !important;
}

.progress-donut-card.compact .donut-chart::after,
.progress-donut-card.compact .donut-center {
  inset: 14px !important;
}

.type-section {
  margin-top: 22px !important;
}

.type-section-head {
  padding: 0 2px 10px !important;
  border-bottom-color: var(--block-border-soft) !important;
}

/* Blocos recolhíveis: cabeçalho de seção mais limpo e previsível. */
.control-create-block,
.matrix-new-drawing,
.params-details {
  border-color: var(--block-border-soft) !important;
  background: var(--surface) !important;
}

.control-create-block > summary,
.matrix-new-drawing > summary,
.params-summary {
  min-height: 40px;
  align-items: center;
}

/* Responsivo: preservar o refinamento sem apertar. */
@media (max-width: 1320px) {
  .sheet-summary-grid {
    grid-template-columns: 1fr;
  }
  .drawing-progress-wrap {
    flex-basis: min(48%, 340px) !important;
  }
}

@media (max-width: 1180px) {
  .hero-card {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .dashboard-indicators-panel > .panel-head.wrap {
    grid-template-columns: 1fr;
  }
  .drawing-progress-wrap {
    flex-basis: 100% !important;
    width: 100%;
  }
}

@media (max-width: 760px) {
  .panel,
  .dashboard-indicators-panel,
  .sheet-title-card,
  .drawing-card header {
    padding: 16px !important;
  }
  .sheet-summary-grid {
    gap: 10px;
  }
  .drawing-card-head {
    gap: 12px !important;
  }
}


/* MVP 0.11.4 · Rodada 4 de design — botões, ícones e estados
   Objetivo: unificar hierarquia de ações e estados de interação sem alterar comportamento. */
:root {
  --action-radius: 10px;
  --action-radius-small: 9px;
  --action-border: var(--line-strong);
  --action-border-hover: var(--ink);
  --action-bg: var(--surface);
  --action-bg-hover: var(--surface-soft);
  --state-selected-bg: var(--accent-soft);
  --state-edit-bg: var(--accent-soft);
  --state-hover-bg: #f6f2ea;
  --state-disabled-bg: #f6f4ef;
  --state-disabled-ink: #8a8378;
  --danger-soft: #f4e9e7;
  --danger-line: #c9a7a7;
  --focus-outline: 2px solid rgba(17, 16, 14, .28);
}

/* Gramática única de botões: o peso visual indica importância, não repetição de bordas. */
button,
.btn,
.icon-only-btn,
.matrix-app-btn,
.preset-drawing-option,
.control-edit-drawing,
.check-option,
.queue-drawing-option {
  -webkit-tap-highlight-color: transparent;
}

.btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px;
  min-height: var(--control-height) !important;
  padding: 8px 13px !important;
  border-radius: var(--action-radius) !important;
  border: 1px solid var(--action-border) !important;
  background: var(--action-bg) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
  text-decoration: none;
  line-height: 1 !important;
  transition: background-color .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.btn:hover,
.btn:focus-visible {
  transform: none !important;
  border-color: var(--action-border-hover) !important;
  background: var(--action-bg-hover) !important;
  color: var(--ink) !important;
  box-shadow: inset 0 0 0 1px rgba(17,16,14,.04) !important;
}

.btn:focus-visible,
.icon-only-btn:focus-visible,
.matrix-app-btn:focus-visible,
.preset-drawing-option:focus-visible,
.control-edit-drawing:focus-visible,
.selectable-option:focus-visible,
.check-option:focus-visible,
.nav-item:focus-visible,
.link-btn:focus-visible {
  outline: var(--focus-outline) !important;
  outline-offset: 2px !important;
}

.btn.primary,
.btn.primary:hover,
.btn.primary:focus-visible {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: #fff !important;
}

.btn.ghost {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--ink) !important;
}

.btn.ghost:hover,
.btn.ghost:focus-visible {
  background: var(--accent-soft) !important;
  border-color: var(--line-strong) !important;
  color: var(--ink) !important;
}

.btn.danger,
.btn[data-delete-control],
.btn[data-delete-selected-controls],
.btn[data-delete-selected-queue],
.btn[data-remove-queue],
.btn[data-delete-drawing],
.btn[data-delete-matrix-item],
.btn[class*="danger"] {
  background: transparent !important;
  color: var(--danger) !important;
  border-color: transparent !important;
}

.btn.danger:hover,
.btn.danger:focus-visible,
.btn[data-delete-control]:hover,
.btn[data-delete-control]:focus-visible,
.btn[data-delete-selected-controls]:hover,
.btn[data-delete-selected-controls]:focus-visible,
.btn[data-delete-selected-queue]:hover,
.btn[data-delete-selected-queue]:focus-visible,
.btn[data-remove-queue]:hover,
.btn[data-remove-queue]:focus-visible,
.btn[data-delete-drawing]:hover,
.btn[data-delete-drawing]:focus-visible,
.btn[data-delete-matrix-item]:hover,
.btn[data-delete-matrix-item]:focus-visible,
.btn[class*="danger"]:hover,
.btn[class*="danger"]:focus-visible {
  background: var(--danger-soft) !important;
  color: var(--danger) !important;
  border-color: var(--danger-line) !important;
}

.btn.small {
  min-height: var(--control-height-small) !important;
  padding: 6px 10px !important;
  border-radius: var(--action-radius-small) !important;
  font-size: 10px !important;
}

/* Botões de ícone: mesma área clicável, mesmo eixo e feedback discreto. */
.icon-only-btn,
.btn.icon-only-btn,
.btn.small.icon-only-btn,
#controlTable .btn.small.icon-only-btn,
#queueTable .btn.small.icon-only-btn,
.matrix-card .btn.icon-only-btn,
#view-parametros .params-table .btn.small.icon-only-btn,
.control-bulk-actions .btn.icon-only-btn {
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  border-radius: 9px !important;
}

.btn-icon {
  width: 15px !important;
  height: 15px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.btn-icon svg {
  stroke-width: 1.75 !important;
}

.row-actions,
.param-row-actions,
.control-bulk-actions,
.inline-actions,
.form-actions,
.top-actions,
.hero-actions {
  align-items: center !important;
}

.row-actions,
.param-row-actions {
  display: inline-flex !important;
  justify-content: center !important;
  gap: 6px !important;
}

/* Botão ativo/edição: mesmo highlight de seleção, sem inventar nova cor. */
.btn.is-active,
#view-parametros .params-table .btn.small.icon-only-btn.is-active,
.matrix-app-btn.is-active,
.preset-drawing-option.is-selected,
.control-edit-drawing.is-selected,
.selectable-option.is-selected,
.check-option.selectable-option.is-selected {
  background: var(--state-selected-bg) !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
  box-shadow: inset 2px 0 0 var(--ink) !important;
}

#view-parametros .params-table .btn.small.icon-only-btn.is-active svg,
.btn.is-active svg {
  stroke: currentColor !important;
}

/* Estados de seleção em tabelas: claro, consistente e menos pesado que contorno total preto. */
.selectable-row.is-selected td,
#controlTable.control-table tr.selectable-row.is-selected td,
#queueTable.queue-table tr.selectable-row.is-selected td,
.matrix-edit-table .selectable-row.is-selected td,
.check-table .selectable-row.is-selected td {
  background: var(--state-selected-bg) !important;
  box-shadow: inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

.selectable-row.is-selected td:first-child,
#controlTable.control-table tr.selectable-row.is-selected td:first-child,
#queueTable.queue-table tr.selectable-row.is-selected td:first-child,
.matrix-edit-table .selectable-row.is-selected td:first-child,
.check-table .selectable-row.is-selected td:first-child {
  box-shadow: inset 3px 0 0 var(--ink), inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

.selectable-row.is-selected td:last-child,
#controlTable.control-table tr.selectable-row.is-selected td:last-child,
#queueTable.queue-table tr.selectable-row.is-selected td:last-child,
.matrix-edit-table .selectable-row.is-selected td:last-child,
.check-table .selectable-row.is-selected td:last-child {
  box-shadow: inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

.data-table tbody tr:hover td,
.check-table tbody tr:hover td,
.matrix-edit-table tbody tr:hover td,
.params-table tbody tr:hover td,
#controlTable.control-table tr.selectable-row:hover td,
#queueTable.queue-table tr.selectable-row:hover td {
  background: var(--state-hover-bg) !important;
}

/* Modo edição: destaque por estado, não por alerta visual. */
#view-parametros .params-table tr.is-param-editing td {
  background: var(--state-edit-bg) !important;
  box-shadow: inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

#view-parametros .params-table tr.is-param-editing td:first-child {
  box-shadow: inset 3px 0 0 var(--ink), inset 0 1px 0 var(--line-strong), inset 0 -1px 0 var(--line-strong) !important;
}

#view-parametros .params-table tr.is-param-editing {
  outline: 0 !important;
}

#view-parametros .params-table tr.is-param-editing .param-input,
#view-parametros .params-table tr.is-param-editing .param-origin-row-select {
  border-color: var(--ink) !important;
  background: #fff !important;
}

/* Leitura/desabilitado: preservar legibilidade, mas comunicar que não é editável. */
input[readonly],
textarea[readonly],
select:disabled,
button:disabled,
.btn:disabled,
.preset-drawing-option:disabled,
.control-edit-drawing:disabled,
.matrix-app-btn:disabled,
#view-parametros .params-table tr.is-param-readonly .param-input[readonly],
#view-parametros .params-table tr.is-param-readonly select.param-input:disabled {
  opacity: 1 !important;
}

button:disabled,
.btn:disabled,
.preset-drawing-option:disabled,
.control-edit-drawing:disabled,
.matrix-app-btn:disabled {
  cursor: not-allowed !important;
  background: var(--state-disabled-bg) !important;
  color: var(--state-disabled-ink) !important;
  border-color: var(--line) !important;
}

#view-parametros .params-table tr.is-param-readonly .param-input[readonly],
#view-parametros .params-table tr.is-param-readonly select.param-input:disabled {
  cursor: default !important;
  background: transparent !important;
  border-color: transparent !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

/* Campos e filtros ativos: mesma gramática de seleção/highlight. */
input.is-active-filter,
select.is-active-filter,
.control-advanced-filters summary.is-active-filter,
.matrix-dashboard-filter-grid input.is-active-filter,
.matrix-dashboard-filter-grid select.is-active-filter,
.control-dashboard-filter-grid input.is-active-filter,
.control-dashboard-filter-grid select.is-active-filter,
.dashboard-filter-grid input.is-active-filter,
.dashboard-filter-grid select.is-active-filter {
  background: var(--state-selected-bg) !important;
  border-color: var(--ink) !important;
  box-shadow: inset 2px 0 0 var(--ink) !important;
}

/* Opções/chips clicáveis: feedback padrão, sem parecer botão primário. */
.matrix-app-btn,
.preset-drawing-option,
.control-edit-drawing,
.check-option,
.queue-drawing-option,
.selectable-option {
  transition: background-color .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}

.matrix-app-btn:hover,
.preset-drawing-option:hover,
.control-edit-drawing:hover,
.check-option:hover,
.queue-drawing-option:hover,
.selectable-option:hover {
  background: var(--state-hover-bg) !important;
  border-color: var(--line-strong) !important;
}

/* Ações destrutivas em linha continuam disponíveis, mas não dominam a leitura. */
.row-actions .btn.danger:not(:hover):not(:focus-visible),
.param-row-actions .btn.danger:not(:hover):not(:focus-visible),
.matrix-card .btn.danger:not(:hover):not(:focus-visible),
#controlTable .btn.danger:not(:hover):not(:focus-visible),
#queueTable .btn.danger:not(:hover):not(:focus-visible) {
  color: var(--danger) !important;
  background: transparent !important;
  border-color: transparent !important;
}


/* MVP 0.11.5 · Rodada 5 de design — dashboards e gráficos
   Objetivo: integrar KPIs, roscas, legendas e mini gráficos com menos ruído
   visual, mantendo cálculos e estrutura de dados intactos. */
:root {
  --chart-ring: 116px;
  --chart-ring-small: 62px;
  --chart-ring-mini: 34px;
  --chart-inner-bg: var(--surface);
  --chart-track-line: rgba(17, 16, 14, .16);
  --chart-muted-line: rgba(17, 16, 14, .10);
  --chart-note-bg: #f7f4ee;
  --chart-legend-max: 172px;
}

/* KPIs como primeira leitura: número forte, card silencioso, menos competição com os gráficos. */
#view-dashboard .kpi-grid {
  grid-template-columns: repeat(4, minmax(170px, 1fr));
  gap: 14px !important;
  margin-bottom: 18px !important;
}

#view-dashboard .kpi-card {
  min-height: 96px;
  padding: 17px 18px 15px !important;
  border-color: var(--line) !important;
  background: linear-gradient(180deg, #fffefb 0%, #fbfaf7 100%) !important;
}

#view-dashboard .kpi-card strong {
  font-size: clamp(30px, 3vw, 40px) !important;
  line-height: .9 !important;
  letter-spacing: -.065em !important;
}

#view-dashboard .kpi-card span {
  margin-top: 12px !important;
  font-size: 10px !important;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted) !important;
}

/* Dashboard: roscas mais calmas e legíveis, com cards mais analíticos e menos administrativos. */
#view-dashboard .dashboard-charts {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px !important;
  align-items: stretch;
}

#view-dashboard .donut-card,
#view-dashboard .chart-card.donut-card {
  min-height: 0 !important;
  padding: 18px !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 14px;
  border-color: var(--line) !important;
  background: var(--surface) !important;
}

#view-dashboard .donut-card h4,
#view-dashboard .chart-card h4 {
  margin: 0 !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  letter-spacing: .08em !important;
  color: var(--muted) !important;
}

#view-dashboard .donut-layout {
  grid-template-columns: var(--chart-ring) minmax(0, 1fr) !important;
  gap: 16px !important;
  align-items: start !important;
}

#view-dashboard .donut-chart {
  width: var(--chart-ring) !important;
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--chart-track-line) !important;
  align-self: start;
}

#view-dashboard .donut-chart::after {
  inset: 27px !important;
  background: var(--chart-inner-bg) !important;
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--chart-muted-line) !important;
}

#view-dashboard .donut-center {
  inset: 27px !important;
}

#view-dashboard .donut-center strong {
  font-size: 24px !important;
  line-height: .92 !important;
  letter-spacing: -.055em !important;
}

#view-dashboard .donut-center span {
  margin-top: 3px !important;
  font-size: 7px !important;
  font-weight: 850 !important;
  color: var(--muted);
}

#view-dashboard .donut-legend {
  max-height: var(--chart-legend-max);
  overflow: auto;
  padding-right: 2px;
  align-content: start !important;
  gap: 4px !important;
  scrollbar-width: thin;
}

#view-dashboard .donut-legend-row {
  grid-template-columns: 8px minmax(0, 1fr) minmax(20px, auto) minmax(34px, auto) !important;
  gap: 6px !important;
  min-height: 19px;
  font-size: 9px !important;
  font-weight: 650 !important;
  color: var(--ink);
}

#view-dashboard .donut-legend-row:first-child {
  font-weight: 850 !important;
}

#view-dashboard .donut-legend-row span:nth-child(2) {
  min-width: 0;
}

#view-dashboard .donut-legend-row strong {
  font-size: 10px !important;
  font-weight: 850 !important;
  color: var(--ink);
}

#view-dashboard .donut-legend-row em {
  font-size: 9px !important;
  font-weight: 700 !important;
  color: var(--muted) !important;
}

#view-dashboard .donut-swatch {
  width: 8px !important;
  height: 8px !important;
  border: 0 !important;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(17,16,14,.12);
}

#view-dashboard .chart-note {
  margin: 0 !important;
  padding: 9px 10px !important;
  border: 0 !important;
  border-radius: 10px;
  background: var(--chart-note-bg);
  color: var(--muted) !important;
  font-size: 8px !important;
  font-weight: 800 !important;
  letter-spacing: .075em !important;
  line-height: 1.25;
}

#view-dashboard .chart-card:not(.donut-card) {
  min-height: 128px !important;
  display: grid;
  align-content: center;
}

#view-dashboard .chart-card:not(.donut-card) .muted {
  color: var(--muted) !important;
  font-size: 10px;
}

/* Gráficos de evolução: mesma gramática das roscas do dashboard, mas preservando o contraste do cabeçalho preto. */
.progress-donut-card {
  border-radius: 14px !important;
  border-color: var(--line) !important;
}

.progress-donut-card h4 {
  color: var(--muted);
  font-size: 9px !important;
  letter-spacing: .08em !important;
}

.progress-donut-card.full {
  border-color: rgba(255,255,255,.18) !important;
  background: rgba(255,255,255,.028) !important;
  color: #fff;
}

.progress-donut-card.full h4 {
  color: rgba(255,255,255,.68) !important;
}

.progress-donut-card.full .donut-layout {
  grid-template-columns: 82px minmax(0, 1fr) !important;
  gap: 13px !important;
}

.progress-donut-card.full .donut-chart {
  width: 82px !important;
  border: 0 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.20) !important;
}

.progress-donut-card.full .donut-chart::after,
.progress-donut-card.full .donut-center {
  inset: 18px !important;
}

.progress-donut-card.full .donut-chart::after {
  border: 0 !important;
  background: #11100e !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16) !important;
}

.progress-donut-card.full .donut-center strong {
  font-size: 17px !important;
}

.progress-donut-card.full .donut-legend {
  gap: 4px !important;
}

.progress-donut-card.full .donut-legend-row {
  color: rgba(255,255,255,.88) !important;
}

.progress-donut-card.full .donut-legend-row strong {
  color: #fff !important;
}

.progress-donut-card.full .donut-legend-row em {
  color: rgba(255,255,255,.62) !important;
}

.progress-donut-card.full .donut-swatch {
  border: 0 !important;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
}

/* Cards de desenhos: dashboard do desenho como resumo integrado, não caixa concorrente. */
.drawing-progress-wrap .progress-donut-card.compact {
  min-height: 112px;
  border-color: var(--line) !important;
  background: #fffdf9 !important;
}

.progress-donut-card.compact h4 {
  color: var(--muted) !important;
  margin-bottom: 9px !important;
}

.progress-donut-card.compact .donut-layout {
  grid-template-columns: var(--chart-ring-small) minmax(0, 1fr) !important;
  gap: 12px !important;
  align-items: center !important;
}

.progress-donut-card.compact .donut-chart {
  width: var(--chart-ring-small) !important;
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--chart-track-line) !important;
}

.progress-donut-card.compact .donut-chart::after,
.progress-donut-card.compact .donut-center {
  inset: 14px !important;
}

.progress-donut-card.compact .donut-chart::after {
  border: 0 !important;
  background: #fffdf9 !important;
  box-shadow: inset 0 0 0 1px var(--chart-muted-line) !important;
}

.progress-donut-card.compact .donut-center strong {
  font-size: 13px !important;
}

.progress-donut-card.compact .donut-legend {
  gap: 3px !important;
}

.progress-donut-card.compact .donut-legend-row,
.progress-donut-card.full .donut-legend-row {
  grid-template-columns: 7px minmax(0, 1fr) auto auto !important;
  gap: 5px !important;
  min-height: 16px;
}

.progress-donut-card.compact .donut-legend-row strong,
.progress-donut-card.full .donut-legend-row strong {
  font-weight: 850 !important;
}

.progress-donut-card.compact .donut-swatch,
.progress-donut-card.full .donut-swatch {
  width: 7px !important;
  height: 7px !important;
  border: 0 !important;
  border-radius: 999px;
}

/* Mini rosca no Controle: informação útil, presença visual mais silenciosa dentro da tabela. */
#controlTable .control-progress-mini {
  min-width: var(--chart-ring-mini);
}

#controlTable .control-progress-donut {
  width: var(--chart-ring-mini) !important;
  height: var(--chart-ring-mini) !important;
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--chart-track-line) !important;
}

#controlTable .control-progress-donut::after {
  inset: 8px !important;
  border: 0 !important;
  background: var(--surface) !important;
  box-shadow: inset 0 0 0 1px var(--chart-muted-line) !important;
}

#controlTable .control-progress-donut span {
  font-size: 7px !important;
  font-weight: 850 !important;
  letter-spacing: -.035em !important;
}

#controlTable .control-progress-mini:hover .control-progress-donut,
#controlTable .control-progress-mini:focus-within .control-progress-donut {
  box-shadow: inset 0 0 0 1px var(--ink), 0 0 0 3px var(--focus-ring) !important;
  transform: none !important;
}

@media (max-width: 1180px) {
  #view-dashboard .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #view-dashboard .donut-layout {
    grid-template-columns: 104px minmax(0, 1fr) !important;
  }
  #view-dashboard .donut-chart {
    width: 104px !important;
  }
  #view-dashboard .donut-chart::after,
  #view-dashboard .donut-center {
    inset: 24px !important;
  }
}

@media (max-width: 760px) {
  #view-dashboard .kpi-grid,
  #view-dashboard .dashboard-charts {
    grid-template-columns: 1fr !important;
  }
  #view-dashboard .donut-layout,
  .progress-donut-card.full .donut-layout,
  .progress-donut-card.compact .donut-layout {
    grid-template-columns: 1fr !important;
    justify-items: center;
  }
  #view-dashboard .donut-legend,
  .progress-donut-card.full .donut-legend,
  .progress-donut-card.compact .donut-legend {
    width: 100%;
  }
}


/* MVP 0.11.6 · Correções pós-Rodada 5
   Centralização robusta das roscas, suavização do cabeçalho da prancha,
   visibilidade do voltar ao controle e altura consistente no Controle. */
:root {
  --sheet-hero-bg: #1d1a16;
  --sheet-hero-bg-deep: #171511;
  --sheet-hero-panel: rgba(255, 254, 251, .055);
  --sheet-hero-panel-strong: rgba(255, 254, 251, .075);
  --sheet-hero-line: rgba(236, 231, 220, .24);
  --control-row-height: 66px;
  --control-row-content-height: 42px;
}

/* Cabeçalho da prancha: carvão quente em vez de preto absoluto. */
.sheet-title-card {
  background: linear-gradient(180deg, var(--sheet-hero-bg) 0%, var(--sheet-hero-bg-deep) 100%) !important;
  border-color: rgba(29, 26, 22, .88) !important;
  color: #fffefb !important;
}
.sheet-info-panel,
.sheet-progress-panel,
.sheet-reminder,
.progress-donut-card.full {
  border-color: var(--sheet-hero-line) !important;
  background: var(--sheet-hero-panel) !important;
}
.sheet-info-panel .sheet-reminder {
  background: transparent !important;
}
.sheet-reminder-input {
  color: #fffefb !important;
}
.sheet-reminder-input::placeholder {
  color: rgba(255, 254, 251, .54) !important;
}
.progress-donut-card.full .donut-chart::after {
  background: var(--sheet-hero-bg) !important;
  box-shadow: inset 0 0 0 1px rgba(255,254,251,.18) !important;
}
.progress-donut-card.full .donut-center strong,
.progress-donut-card.full .donut-center span {
  color: #fffefb !important;
}

/* Botão Voltar ao Controle: secundário visível sobre o cabeçalho escuro. */
.sheet-actions-row .btn[data-jump="controle"] {
  background: #fffefb !important;
  color: var(--ink) !important;
  border: 1px solid rgba(255,254,251,.78) !important;
  box-shadow: 0 1px 0 rgba(0,0,0,.24), 0 0 0 1px rgba(255,255,255,.06) !important;
  min-height: 38px !important;
  padding-inline: 18px !important;
  font-weight: 850 !important;
}
.sheet-actions-row .btn[data-jump="controle"]:hover,
.sheet-actions-row .btn[data-jump="controle"]:focus-visible {
  background: var(--accent-soft) !important;
  border-color: #fffefb !important;
  box-shadow: 0 0 0 3px rgba(236,231,220,.20), 0 1px 0 rgba(0,0,0,.26) !important;
}

/* Roscas: centralização final independente de overrides anteriores por inset. */
.donut-chart,
.progress-donut-card .donut-chart,
.progress-donut-card.full .donut-chart,
.progress-donut-card.compact .donut-chart,
#view-dashboard .donut-chart {
  position: relative !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  display: grid !important;
  place-items: center !important;
  isolation: isolate !important;
}
.progress-donut-card.full .donut-chart {
  --progress-donut-inner: 46px;
}
.progress-donut-card.compact .donut-chart {
  --progress-donut-inner: 34px;
}
.progress-donut-card.full .donut-chart::after,
.progress-donut-card.compact .donut-chart::after,
.progress-donut-card.full .donut-center,
.progress-donut-card.compact .donut-center {
  inset: auto !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: var(--progress-donut-inner) !important;
  height: var(--progress-donut-inner) !important;
  min-width: var(--progress-donut-inner) !important;
  min-height: var(--progress-donut-inner) !important;
  max-width: var(--progress-donut-inner) !important;
  max-height: var(--progress-donut-inner) !important;
  transform: translate(-50%, -50%) !important;
  border-radius: 50% !important;
}
.progress-donut-card.full .donut-chart::after,
.progress-donut-card.compact .donut-chart::after {
  content: '' !important;
  position: absolute !important;
  z-index: 0 !important;
}
.progress-donut-card.full .donut-center,
.progress-donut-card.compact .donut-center {
  position: absolute !important;
  z-index: 1 !important;
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
  pointer-events: none !important;
}
.progress-donut-card.full .donut-center strong,
.progress-donut-card.compact .donut-center strong {
  display: block !important;
  line-height: 1 !important;
  transform: translateY(0) !important;
}

/* Mini rosca do Controle: miolo e percentual exatamente no centro. */
#controlTable .control-progress-mini {
  min-width: var(--chart-ring-mini) !important;
  display: inline-grid !important;
  place-items: center !important;
  align-self: center !important;
}
#controlTable .control-progress-donut {
  --control-progress-inner: 20px;
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  width: var(--chart-ring-mini) !important;
  height: var(--chart-ring-mini) !important;
  min-width: var(--chart-ring-mini) !important;
  min-height: var(--chart-ring-mini) !important;
  aspect-ratio: 1 / 1 !important;
  isolation: isolate !important;
  overflow: hidden !important;
}
#controlTable .control-progress-donut::after,
#controlTable .control-progress-donut span {
  inset: auto !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: var(--control-progress-inner) !important;
  height: var(--control-progress-inner) !important;
  min-width: var(--control-progress-inner) !important;
  min-height: var(--control-progress-inner) !important;
  max-width: var(--control-progress-inner) !important;
  max-height: var(--control-progress-inner) !important;
  transform: translate(-50%, -50%) !important;
  border-radius: 50% !important;
}
#controlTable .control-progress-donut::after {
  content: '' !important;
  position: absolute !important;
  z-index: 0 !important;
  background: var(--surface) !important;
}
#controlTable .control-progress-donut span {
  position: absolute !important;
  z-index: 1 !important;
  display: grid !important;
  place-items: center !important;
  text-align: center !important;
  line-height: 1 !important;
  pointer-events: none !important;
}

/* Controle de pranchas: altura consistente por prancha, sem variação por conteúdo. */
#controlTable.control-table {
  table-layout: fixed !important;
}
#controlTable.control-table tr.selectable-row {
  height: var(--control-row-height) !important;
}
#controlTable.control-table tr.selectable-row > td {
  height: var(--control-row-height) !important;
  min-height: var(--control-row-height) !important;
  vertical-align: middle !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}
#controlTable .control-drawings-layout {
  min-height: var(--control-row-content-height) !important;
  height: var(--control-row-content-height) !important;
  align-items: center !important;
}
#controlTable .control-drawings-copy {
  max-height: var(--control-row-content-height) !important;
  overflow: auto !important;
  align-content: center !important;
  scrollbar-width: thin;
  padding-right: 3px;
}
#controlTable .drawing-info-item,
#controlTable .drawing-pill,
#controlTable .drawing-chip-static {
  line-height: 1.2 !important;
}
#controlTable .status-select,
#controlTable .mini-input,
#controlTable .notes-input {
  min-height: 32px !important;
  height: 32px !important;
  line-height: 1.15 !important;
}
#controlTable .notes-input {
  resize: none !important;
  overflow: auto !important;
}
#controlTable .row-actions {
  align-items: center !important;
  justify-content: center !important;
}
#controlTable .btn.small.icon-only-btn {
  align-self: center !important;
}

/* MVP 0.11.7 · simplificação estrutural e selects silenciosos
   Objetivo: reduzir quadros fechados, privilegiar fundo branco, linhas discretas,
   tipografia e espaçamento, preservando clareza operacional e funcionamento. */
:root {
  --bg: #fffefb;
  --surface: #fffefb;
  --surface-soft: #fbf9f4;
  --line: #e8e1d6;
  --line-soft: #f0ebe2;
  --line-strong: #cfc6b7;
  --minimal-rule: #ddd4c6;
  --minimal-hover: #f6f1e8;
}

html,
body,
.main,
.view {
  background: var(--surface) !important;
}

/* A interface passa a depender menos de caixas e mais de ritmo, linhas e respiro. */
.hero-card,
.panel,
.kpi-card,
.chart-card,
.donut-card,
.dashboard-indicators-panel,
.matrix-card,
.matrix-new-drawing,
.matrix-add-form,
.param-add-form,
.params-save-toolbar,
.params-details,
.control-panel,
.control-filter-section,
.control-create-block,
.control-create-queue,
.control-existing-block,
.bulk-action-bar,
.warning,
.preview-box,
.check-list {
  background: transparent !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.hero-card,
.panel,
.kpi-card,
.chart-card,
.donut-card,
.dashboard-indicators-panel,
.control-panel {
  border-top: 1px solid var(--minimal-rule) !important;
  border-bottom: 0 !important;
}

.panel,
.hero-card,
.kpi-card {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.kpi-card,
.chart-card,
.donut-card,
.dashboard-indicators-panel {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}

/* Filtros: deixam de ser um quadro fechado e passam a ser um conjunto por título + linha. */
#view-controle .control-panel,
#view-controle .control-filter-section,
.matrix-filter-section,
.control-filter-panel {
  border: 0 !important;
  border-top: 1px solid var(--minimal-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#view-controle .control-filter-section,
.matrix-filter-section {
  padding-top: 18px !important;
  padding-bottom: 18px !important;
  margin-bottom: 16px !important;
}

#view-controle .control-filter-section .panel-head,
#view-controle .panel-head.wrap,
.matrix-filter-section .panel-head,
.panel-head {
  border-bottom: 1px solid var(--minimal-rule) !important;
  padding-bottom: 13px !important;
  margin-bottom: 14px !important;
}

#view-controle .control-dashboard-filter-grid select,
#view-controle .control-dashboard-filter-grid input,
.dashboard-filter-grid select,
.dashboard-filter-grid input,
.matrix-dashboard-filter-grid select,
.matrix-dashboard-filter-grid input {
  border-color: var(--line-strong) !important;
  background: #fffefb !important;
}

/* Blocos recolhíveis e áreas auxiliares: linhas em vez de caixas pesadas. */
.control-create-block,
.control-existing-block,
.params-block,
.params-block-wide,
.matrix-card,
.drawing-card,
.type-section,
.sheet-summary-panel,
.sheet-info-panel,
.sheet-progress-panel,
.progress-donut-card,
.table-wrap,
.params-table-wrap,
.matrix-table-wrap {
  box-shadow: none !important;
}

.control-create-block,
.params-block,
.params-block-wide,
.type-section {
  border: 0 !important;
  border-top: 1px solid var(--minimal-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.params-block,
.params-block-wide {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}

.params-details {
  border: 0 !important;
  border-top: 1px solid var(--minimal-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.param-add-form,
.matrix-new-drawing,
.matrix-add-form,
.control-create-form,
.control-edit-panel {
  border: 0 !important;
  border-top: 1px dashed var(--line-strong) !important;
  border-bottom: 1px dashed var(--line-soft) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

/* Cards de desenhos e matriz: conter com linhas discretas, sem caixa fechada. */
.matrix-card,
.drawing-card {
  border: 0 !important;
  border-top: 1px solid var(--minimal-rule) !important;
  border-bottom: 1px solid var(--line-soft) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.matrix-card:hover,
.drawing-card:hover {
  background: #fffdf8 !important;
}

.matrix-card-head,
.drawing-card header,
.drawing-card-head,
.type-section-head {
  background: transparent !important;
  border-bottom: 1px solid var(--minimal-rule) !important;
}

/* Tabelas: estrutura preservada com linhas mais silenciosas. */
.table-wrap,
.params-table-wrap,
.matrix-table-wrap {
  border: 0 !important;
  border-top: 1px solid var(--minimal-rule) !important;
  border-bottom: 1px solid var(--minimal-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.data-table th,
.check-table th,
.matrix-edit-table th,
.params-table th,
#controlTable.control-table thead th,
#queueTable.queue-table thead th {
  background: var(--surface-soft) !important;
  color: var(--ink) !important;
  border-bottom: 1px solid var(--minimal-rule) !important;
}

.data-table td,
.check-table td,
.matrix-edit-table td,
.params-table td,
#controlTable.control-table td,
#queueTable.queue-table td {
  border-bottom-color: var(--line-soft) !important;
}

.data-table tbody tr:hover td,
.check-table tbody tr:hover td,
.matrix-edit-table tbody tr:hover td,
.params-table tbody tr:hover td,
#controlTable.control-table tr.selectable-row:hover td,
#queueTable.queue-table tr.selectable-row:hover td {
  background: var(--minimal-hover) !important;
}

/* Checklist: manter cabeçalho como identidade; suavizar apenas contenções internas. */
.sheet-title-card {
  border-radius: 0 !important;
  box-shadow: none !important;
}

.sheet-info-panel,
.sheet-progress-panel,
.sheet-reminder,
.progress-donut-card.full,
.progress-donut-card.compact {
  border-radius: 0 !important;
  box-shadow: none !important;
}

.progress-donut-card.compact {
  background: transparent !important;
  border-left: 0 !important;
  border-right: 0 !important;
}

/* Campos continuam reconhecíveis; em áreas densas, repouso mais silencioso. */
input,
select,
textarea {
  border-color: var(--line-strong) !important;
  background: #fffefb !important;
}
input:hover,
select:hover,
textarea:hover {
  border-color: var(--ink) !important;
}
input:focus,
select:focus,
textarea:focus {
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 3px var(--focus-ring) !important;
}

/* Controle de pranchas: selects silenciosos em repouso, editáveis no hover/focus. */
#controlTable select.status-select {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-bottom: 1px solid transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 3px 2px !important;
  min-height: 30px !important;
  height: 30px !important;
  font-weight: 800 !important;
  letter-spacing: .01em !important;
  cursor: pointer !important;
  color: var(--ink) !important;
  text-overflow: ellipsis !important;
}
#controlTable select.status-select::-ms-expand {
  display: none !important;
}
#controlTable select.status-select:hover {
  background: var(--minimal-hover) !important;
  border-bottom-color: var(--ink) !important;
}
#controlTable select.status-select:focus,
#controlTable select.status-select:focus-visible {
  background: #fffefb !important;
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 3px var(--focus-ring) !important;
  outline: none !important;
}
#controlTable select.status-select:disabled {
  opacity: .62 !important;
  cursor: default !important;
}

/* Mini inputs da tabela continuam legíveis, mas sem parecerem caixas pesadas. */
#controlTable .mini-input,
#controlTable .notes-input {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}
#controlTable .mini-input:hover,
#controlTable .notes-input:hover {
  background: var(--minimal-hover) !important;
  border-bottom: 1px solid var(--ink) !important;
}
#controlTable .mini-input:focus,
#controlTable .notes-input:focus {
  background: #fffefb !important;
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 3px var(--focus-ring) !important;
}

/* Botões mantêm hierarquia, mas não criam novas caixas desnecessárias ao redor. */
.btn.ghost,
.btn.secondary {
  background: transparent !important;
}
.inline-actions,
.row-actions,
.form-actions {
  align-items: center !important;
}

/* Remover duplicidade visual de linhas muito próximas em áreas de controle. */
#view-controle .control-create-block,
#view-controle .control-existing-block {
  border-bottom: 0 !important;
}
#view-controle .control-existing-head {
  border-bottom: 0 !important;
  margin-bottom: 10px !important;
}

/* Preservar áreas críticas: backup/restauração e ações destrutivas ainda têm contorno. */
#view-dados .warning,
.danger,
.btn.danger,
button.danger {
  border-color: var(--danger) !important;
}


/* MVP 0.11.8 · Controle de Pranchas — tipografia editorial, setor sem destaque e tabela sem barra horizontal
   Ajuste visual localizado sobre a 0.11.7, sem alteração de regras de negócio. */
:root {
  --control-cell-font-size: 10px;
  --control-cell-weight: 650;
  --control-cell-strong-weight: 720;
}

#view-controle .table-wrap.wide {
  overflow-x: hidden !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}

#controlTable.control-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}

#controlTable.control-table th,
#controlTable.control-table td {
  box-sizing: border-box !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  padding-left: 7px !important;
  padding-right: 7px !important;
}

#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) { width: 6% !important; }
#controlTable.control-table th:nth-child(2),
#controlTable.control-table td:nth-child(2) { width: 8.2% !important; }
#controlTable.control-table th:nth-child(3),
#controlTable.control-table td:nth-child(3) { width: 6% !important; }
#controlTable.control-table th:nth-child(4),
#controlTable.control-table td:nth-child(4) { width: 6% !important; }
#controlTable.control-table th:nth-child(5),
#controlTable.control-table td:nth-child(5) { width: 8.2% !important; }
#controlTable.control-table th:nth-child(6),
#controlTable.control-table td:nth-child(6) { width: 14.5% !important; }
#controlTable.control-table th:nth-child(7),
#controlTable.control-table td:nth-child(7) { width: 7.5% !important; }
#controlTable.control-table th:nth-child(8),
#controlTable.control-table td:nth-child(8) { width: 8% !important; }
#controlTable.control-table th:nth-child(9),
#controlTable.control-table td:nth-child(9) { width: 6.5% !important; }
#controlTable.control-table th:nth-child(10),
#controlTable.control-table td:nth-child(10) { width: 5.2% !important; }
#controlTable.control-table th:nth-child(11),
#controlTable.control-table td:nth-child(11) { width: 6.2% !important; }
#controlTable.control-table th:nth-child(12),
#controlTable.control-table td:nth-child(12) { width: 6.2% !important; }
#controlTable.control-table th:nth-child(13),
#controlTable.control-table td:nth-child(13) { width: 7% !important; }
#controlTable.control-table th:nth-child(14),
#controlTable.control-table td:nth-child(14) { width: 4.5% !important; }

/* Setor no Controle deixa de ser chip forte: vira texto editorial como as demais informações da linha. */
#controlTable.control-table td:nth-child(4) .chip-list {
  display: block !important;
  gap: 0 !important;
}
#controlTable.control-table td:nth-child(4) .chip,
#controlTable.control-table td:nth-child(4) .chip.strong {
  display: inline !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--ink) !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  white-space: normal !important;
}

/* Padrão tipográfico homogêneo nas zonas demarcadas da tabela. */
#controlTable.control-table td:nth-child(2),
#controlTable.control-table td:nth-child(3),
#controlTable.control-table td:nth-child(4),
#controlTable.control-table td:nth-child(5),
#controlTable.control-table td:nth-child(6),
#controlTable.control-table td:nth-child(7),
#controlTable.control-table td:nth-child(8),
#controlTable.control-table td:nth-child(9),
#controlTable.control-table td:nth-child(10) {
  font-size: var(--control-cell-font-size) !important;
  font-weight: var(--control-cell-weight) !important;
  line-height: 1.25 !important;
  letter-spacing: .01em !important;
  color: var(--ink) !important;
}

#controlTable.control-table td:nth-child(1),
#controlTable .sheet-link {
  font-size: 10.5px !important;
  font-weight: 850 !important;
}

#controlTable .status-select {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  font-size: var(--control-cell-font-size) !important;
  font-weight: var(--control-cell-strong-weight) !important;
  line-height: 1.15 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-transform: uppercase !important;
}

#controlTable .mini-input,
#controlTable .notes-input {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  font-size: var(--control-cell-font-size) !important;
  font-weight: var(--control-cell-weight) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#controlTable .mini-input.date {
  font-size: 9.5px !important;
}

#controlTable .drawing-info-list.drawings-only,
#controlTable .drawing-info-item,
#controlTable .drawing-pill,
#controlTable .drawing-chip-static,
#controlTable .info-pill.drawing-pill {
  font-size: var(--control-cell-font-size) !important;
  font-weight: var(--control-cell-weight) !important;
  line-height: 1.22 !important;
  letter-spacing: .01em !important;
  color: var(--ink) !important;
}

#controlTable .info-pill.drawing-pill {
  border: 0 !important;
  border-bottom: 1px solid var(--line-strong) !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Ações finais sempre visíveis dentro da largura disponível. */
#controlTable .row-actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 5px !important;
  min-width: 0 !important;
  width: 100% !important;
}
#controlTable .btn.small.icon-only-btn {
  width: 26px !important;
  min-width: 26px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
}

#controlTable.control-table th:nth-child(14),
#controlTable.control-table td:nth-child(14) {
  padding-left: 3px !important;
  padding-right: 3px !important;
  overflow: visible !important;
}

/* A coluna de observações fica compacta para liberar a lixeira sem perder leitura. */
#controlTable .notes-input {
  resize: none !important;
  overflow: hidden !important;
}
#controlTable .notes-input:hover,
#controlTable .notes-input:focus {
  overflow: auto !important;
}

@media (max-width: 1280px) {
  #view-controle .table-wrap.wide {
    overflow-x: auto !important;
  }
  #controlTable.control-table {
    min-width: 1180px !important;
  }
}

/* MVP 0.11.9 · Limpeza visual fina e consistência de filtros
   Ajuste localizado sobre a 0.11.8, sem alteração de regras de negócio. */

/* Textos de bastidor removidos do HTML; esta regra previne reaparições em estados legados. */
.sidebar-note,
.eyebrow:empty {
  display: none !important;
}

/* Evita a segunda linha horizontal logo abaixo do cabeçalho principal. */
.view > .panel:first-child,
#view-controle > .panel.control-panel:first-child,
#view-matriz > .panel:first-child,
#view-parametros > .panel:first-child,
#view-dados > .panel:first-child {
  border-top: 0 !important;
}

/* Em telas com conteúdo imediatamente após o topbar, a separação principal fica apenas no próprio topbar. */
.topbar + .view.active > .panel:first-child,
.topbar + .view.active > section.panel:first-child {
  border-top: 0 !important;
}

/* Controle: filtros ativos usam exatamente o mesmo highlight já percebido no Dashboard. */
#view-controle .control-dashboard-filter-grid select.is-active-filter,
#view-controle .control-dashboard-filter-grid input.is-active-filter,
#view-controle .control-main-filters select.is-active-filter,
#view-controle .control-main-filters input.is-active-filter,
#view-controle .control-advanced-grid select.is-active-filter,
#view-controle .control-advanced-grid input.is-active-filter,
#view-controle input.is-active-filter,
#view-controle select.is-active-filter {
  background: #ece7dc !important;
  border-color: var(--ink) !important;
  box-shadow: inset 0 0 0 1px var(--ink) !important;
}

/* Ao limpar, os filtros voltam ao estado silencioso padrão. */
#view-controle .control-dashboard-filter-grid select:not(.is-active-filter),
#view-controle .control-dashboard-filter-grid input:not(.is-active-filter) {
  background: #fffefb !important;
  border-color: var(--line-strong) !important;
  box-shadow: none !important;
}

/* Controle de Pranchas: tipografia de dados homogênea. */
:root {
  --control-row-font-size: 10px;
  --control-row-weight: 610;
  --control-code-weight: 820;
}

#controlTable.control-table td:nth-child(2),
#controlTable.control-table td:nth-child(3),
#controlTable.control-table td:nth-child(4),
#controlTable.control-table td:nth-child(5),
#controlTable.control-table td:nth-child(6),
#controlTable.control-table td:nth-child(7),
#controlTable.control-table td:nth-child(8),
#controlTable.control-table td:nth-child(9),
#controlTable.control-table td:nth-child(10),
#controlTable.control-table td:nth-child(11),
#controlTable.control-table td:nth-child(12),
#controlTable.control-table td:nth-child(13),
#controlTable .status-select,
#controlTable .mini-input,
#controlTable .notes-input,
#controlTable .drawing-info-item,
#controlTable .drawing-pill,
#controlTable .drawing-chip-static,
#controlTable .info-pill.drawing-pill {
  font-size: var(--control-row-font-size) !important;
  font-weight: var(--control-row-weight) !important;
  line-height: 1.24 !important;
  letter-spacing: .005em !important;
  color: var(--ink) !important;
}

#controlTable.control-table td:nth-child(1),
#controlTable .sheet-link {
  font-size: 10.5px !important;
  font-weight: var(--control-code-weight) !important;
}

#controlTable.control-table th {
  font-weight: 780 !important;
}

#controlTable .status-select {
  text-transform: uppercase !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}


/* MVP 0.11.10 · Malha visual e alinhamento estrutural entre páginas
   Ajuste de design system sobre a 0.11.9, sem alteração funcional. */
:root {
  --page-x: 36px;
  --page-top: 32px;
  --page-title-rule: #ddd4c6;
  --page-section-gap: 28px;
  --page-section-gap-sm: 18px;
  --page-info-gap: 16px;
  --page-title-size: clamp(34px, 3.1vw, 50px);
  --page-title-line: .96;
}

/* Base única da área útil: mesmo eixo X/Y e mesma largura visual para todas as telas. */
.main {
  padding: var(--page-top) var(--page-x) 56px !important;
  max-width: none !important;
}

.topbar {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 22px !important;
  min-height: 74px !important;
  padding: 0 0 18px !important;
  margin: 0 0 var(--page-section-gap) !important;
  border-bottom: 1px solid var(--page-title-rule) !important;
}

.topbar > div:first-child {
  min-width: 0 !important;
  display: grid !important;
  align-content: start !important;
}

.topbar h2 {
  margin: 0 !important;
  font-size: var(--page-title-size) !important;
  line-height: var(--page-title-line) !important;
  letter-spacing: -.035em !important;
  font-weight: 900 !important;
}

.top-actions {
  justify-content: flex-end !important;
  align-items: flex-start !important;
  align-self: start !important;
  padding-top: 3px !important;
  margin: 0 !important;
}

.top-actions .btn {
  min-height: 38px !important;
}

.view.active {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Primeiro conteúdo de cada página começa no mesmo eixo após o cabeçalho. */
#view-dashboard > .kpi-grid:first-child,
#view-controle > .panel.control-panel:first-child,
#view-matriz > .panel:first-child,
#view-parametros > .panel:first-child,
#view-dados > .grid-12:first-child,
#view-prancha > #sheetDetail:first-child {
  margin-top: 0 !important;
}

/* Painéis raiz das páginas sem recuo ou caixa extra: a malha fica no conteúdo, não no container. */
#view-controle > .panel.control-panel,
#view-matriz > .panel,
#view-parametros > .panel {
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  border-top: 0 !important;
  background: transparent !important;
}

/* Ritmo vertical previsível entre blocos principais. */
#view-dashboard > .kpi-grid,
#view-dashboard > .dashboard-indicators-panel,
#view-dashboard > .two-cols,
#view-controle .control-filter-section,
#view-controle .control-create-block,
#view-controle .control-existing-block,
#view-matriz .matrix-title-head,
#view-matriz .matrix-filter-section,
#view-matriz .matrix-toolbar,
#view-matriz #matrixContent,
#view-parametros > .panel > .panel-head,
#view-parametros .matrix-toolbar,
#view-parametros #paramsContent,
#view-dados .grid-12,
#view-prancha #sheetDetail > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Cabeçalhos informativos: mesma distância, peso e separador inferior. */
#view-dashboard .dashboard-indicators-panel > .panel-head,
#view-controle .control-filter-section > .panel-head,
#view-matriz .matrix-title-head,
#view-matriz .matrix-filter-section > .panel-head,
#view-parametros > .panel > .panel-head,
#view-dados .panel-head,
.control-existing-head,
.control-create-queue-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 18px !important;
  padding: 0 0 14px !important;
  margin: 0 0 16px !important;
  border-bottom: 1px solid var(--page-title-rule) !important;
}

#view-dashboard .dashboard-indicators-panel > .panel-head h3,
#view-controle .control-filter-section > .panel-head h3,
#view-matriz .matrix-title-head h3,
#view-matriz .matrix-filter-section > .panel-head h3,
#view-parametros > .panel > .panel-head h3,
#view-dados .panel-head h3,
.control-existing-head h3,
.control-create-queue-head h3 {
  margin: 0 !important;
  line-height: 1.1 !important;
}

#view-dashboard .dashboard-indicators-panel > .panel-head .muted,
#view-controle .control-filter-section > .panel-head .muted,
#view-matriz .matrix-title-head .muted,
#view-matriz .matrix-filter-section > .panel-head .muted,
#view-parametros > .panel > .panel-head .muted,
#view-dados .panel-head .muted,
.control-existing-head .muted,
.control-create-queue-head .muted {
  display: block !important;
  margin-top: 5px !important;
}

/* Dashboard: KPIs ficam como primeiro conteúdo, mas com a mesma regra de início e largura. */
#view-dashboard > .kpi-grid {
  margin-bottom: var(--page-section-gap) !important;
  padding-top: 0 !important;
}

#view-dashboard > .dashboard-indicators-panel {
  margin-top: 0 !important;
  margin-bottom: var(--page-section-gap) !important;
  padding-top: 0 !important;
}

#view-dashboard > .two-cols {
  margin-top: var(--page-section-gap) !important;
}

/* Controle: filtros, criação e tabela passam a seguir o mesmo ritmo de seção. */
#view-controle .control-filter-section {
  padding-top: 0 !important;
  padding-bottom: var(--page-section-gap-sm) !important;
  margin-bottom: var(--page-section-gap-sm) !important;
  border-top: 0 !important;
}

#view-controle .control-dashboard-filter-grid,
#view-dashboard .dashboard-filter-grid,
#view-matriz .matrix-dashboard-filter-grid {
  margin-top: 0 !important;
}

#view-controle .control-create-block {
  margin-top: var(--page-section-gap) !important;
  margin-bottom: var(--page-section-gap) !important;
  padding-top: 0 !important;
  border-top: 1px solid var(--page-title-rule) !important;
}

#view-controle .control-create-block > summary {
  min-height: 48px !important;
  align-items: center !important;
  border-bottom: 1px solid var(--page-title-rule) !important;
}

#view-controle .control-existing-block {
  margin-top: var(--page-section-gap) !important;
  padding-top: 0 !important;
}

/* Matriz: intro, filtros, edição e conteúdo principal no mesmo sistema de respiro. */
#view-matriz > .panel > .matrix-title-head {
  margin-bottom: var(--page-section-gap-sm) !important;
}

#view-matriz .matrix-filter-section {
  padding-top: 0 !important;
  padding-bottom: var(--page-section-gap-sm) !important;
  margin-top: 0 !important;
  margin-bottom: var(--page-section-gap) !important;
  border-top: 0 !important;
}

#view-matriz .matrix-toolbar {
  margin-top: 0 !important;
  margin-bottom: var(--page-section-gap) !important;
  padding-top: var(--page-section-gap-sm) !important;
  padding-bottom: var(--page-section-gap-sm) !important;
  border-top: 1px solid var(--page-title-rule) !important;
  border-bottom: 1px solid var(--page-title-rule) !important;
}

#view-matriz #matrixContent {
  margin-top: var(--page-section-gap) !important;
}

/* Parâmetros: informativo, edição local, salvamento e seções com ritmo constante. */
#view-parametros > .panel > .panel-head {
  margin-bottom: var(--page-section-gap-sm) !important;
}

#view-parametros .matrix-toolbar {
  margin-top: 0 !important;
  margin-bottom: var(--page-section-gap) !important;
  padding-top: var(--page-section-gap-sm) !important;
  padding-bottom: var(--page-section-gap-sm) !important;
  border-top: 1px solid var(--page-title-rule) !important;
  border-bottom: 1px solid var(--page-title-rule) !important;
}

#view-parametros #paramsContent {
  margin-top: var(--page-section-gap) !important;
}

.params-section,
.params-details,
.param-section,
#paramsContent details {
  margin-top: 0 !important;
  margin-bottom: var(--page-section-gap) !important;
}

/* Dados: blocos começam no mesmo eixo e respeitam o cabeçalho de seção. */
#view-dados > .grid-12 {
  gap: var(--page-section-gap) !important;
  align-items: start !important;
}

#view-dados .panel {
  padding-top: 0 !important;
  border-top: 1px solid var(--page-title-rule) !important;
}

#view-dados .panel-head {
  min-height: 52px !important;
}

/* Checklist da prancha: herda o eixo do topo sem quebrar a composição própria. */
#view-prancha #sheetDetail {
  margin-top: 0 !important;
}

#view-prancha .sheet-title-card,
#view-prancha .undefined-checklist,
#view-prancha .sheet-section-title,
#view-prancha .drawing-card:first-child {
  margin-top: 0 !important;
}

#view-prancha .sheet-title-card {
  margin-bottom: var(--page-section-gap) !important;
}

/* Largura útil: tabelas, filtros e cards usam o mesmo limite visual da área principal. */
.dashboard-filter-grid,
.control-dashboard-filter-grid,
.matrix-dashboard-filter-grid,
.table-wrap,
.drawings-grid,
.matrix-grid,
.dashboard-charts,
.kpi-grid,
.two-cols,
.grid-12 {
  width: 100% !important;
  max-width: 100% !important;
}

/* Linhas duplicadas próximas perdem força: cada seção deve ter apenas uma fronteira clara. */
.panel + .panel,
.dashboard-indicators-panel + .two-cols,
.control-filter-section + .control-create-block,
.control-create-block + .control-existing-block,
.matrix-filter-section + .matrix-toolbar,
.matrix-toolbar + #matrixContent {
  border-top-color: var(--page-title-rule) !important;
}

@media (max-width: 980px) {
  .main {
    padding: 24px 22px 44px !important;
  }
  .topbar {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    gap: 14px !important;
  }
  .top-actions {
    justify-content: flex-start !important;
  }
}


/* MVP 0.11.11 · Padronização fina de botões e tipografia do Controle
   Ajuste localizado sobre a 0.11.10, sem alteração funcional. */
:root {
  --btn-height: 38px;
  --btn-small-size: 30px;
  --btn-radius: 12px;
  --btn-font-size: 10.5px;
  --btn-font-weight: 800;
  --control-body-font-size: 10px;
  --control-body-font-weight: 610;
  --control-head-font-weight: 820;
  --control-code-font-weight: 820;
}

/* Sistema único de botões: mesma proporção, ritmo e área clicável. */
.btn {
  min-height: var(--btn-height) !important;
  height: auto !important;
  padding: 0 14px !important;
  border-radius: var(--btn-radius) !important;
  border-width: 1px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  font-size: var(--btn-font-size) !important;
  font-weight: var(--btn-font-weight) !important;
  line-height: 1 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.btn.small {
  min-height: var(--btn-small-size) !important;
  height: var(--btn-small-size) !important;
  padding: 0 10px !important;
  border-radius: 9px !important;
  font-size: 10px !important;
}

.icon-only-btn,
.btn.icon-only-btn,
.btn.small.icon-only-btn,
#controlTable .btn.small.icon-only-btn,
#queueTable .btn.small.icon-only-btn,
.matrix-card .btn.icon-only-btn,
#view-parametros .params-table .btn.small.icon-only-btn,
.control-bulk-actions .btn.icon-only-btn {
  width: var(--btn-small-size) !important;
  min-width: var(--btn-small-size) !important;
  height: var(--btn-small-size) !important;
  min-height: var(--btn-small-size) !important;
  padding: 0 !important;
  flex: 0 0 var(--btn-small-size) !important;
}

.btn.primary,
button.btn.primary {
  background: var(--ink) !important;
  color: #fff !important;
  border-color: var(--ink) !important;
}

.btn.ghost,
button.btn.ghost {
  background: #fffefb !important;
  color: var(--ink) !important;
  border-color: var(--line-strong) !important;
}

.btn.danger,
button.btn.danger {
  background: #fffefb !important;
  color: var(--danger) !important;
  border-color: transparent !important;
}

.btn.danger:hover,
button.btn.danger:hover,
.btn.danger:focus-visible,
button.btn.danger:focus-visible {
  border-color: var(--danger) !important;
  color: var(--danger) !important;
  background: #fffafa !important;
}

.row-actions,
.param-row-actions,
.matrix-card-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 6px !important;
}

/* Controle de Pranchas: cabeçalhos fortes e valores homogêneos. */
#controlTable.control-table th {
  font-size: 10px !important;
  font-weight: var(--control-head-font-weight) !important;
  line-height: 1.15 !important;
  letter-spacing: .055em !important;
  color: var(--ink) !important;
  text-transform: uppercase !important;
  vertical-align: middle !important;
}

#controlTable.control-table td,
#controlTable.control-table td:nth-child(2),
#controlTable.control-table td:nth-child(3),
#controlTable.control-table td:nth-child(4),
#controlTable.control-table td:nth-child(5),
#controlTable.control-table td:nth-child(6),
#controlTable.control-table td:nth-child(7),
#controlTable.control-table td:nth-child(8),
#controlTable.control-table td:nth-child(9),
#controlTable.control-table td:nth-child(10),
#controlTable.control-table td:nth-child(11),
#controlTable.control-table td:nth-child(12),
#controlTable.control-table td:nth-child(13),
#controlTable .status-select,
#controlTable .mini-input,
#controlTable .notes-input,
#controlTable .drawing-info-item,
#controlTable .drawing-pill,
#controlTable .drawing-chip-static,
#controlTable .info-pill.drawing-pill,
#controlTable .chip.strong {
  font-size: var(--control-body-font-size) !important;
  font-weight: var(--control-body-font-weight) !important;
  line-height: 1.24 !important;
  letter-spacing: .005em !important;
  color: var(--ink) !important;
  vertical-align: middle !important;
}

/* SETOR no Controle deixa de ser chip destacado: vira texto de grade. */
#controlTable .chip.strong,
#controlTable td:nth-child(4) .chip,
#controlTable td:nth-child(4) .chip.strong {
  display: inline !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--ink) !important;
  border-radius: 0 !important;
  font: inherit !important;
  text-transform: uppercase !important;
}

#controlTable td:nth-child(4) .chip-list {
  display: block !important;
  gap: 0 !important;
  margin: 0 !important;
}

/* Remover a divisória vertical entre PRANCHA e ETAPA. */
#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) {
  border-right: 0 !important;
}

/* Código da prancha: clicável, alinhado à linha, sem sublinhado permanente. */
#controlTable.control-table td:nth-child(1),
#controlTable .sheet-link {
  font-size: 10.5px !important;
  font-weight: var(--control-code-font-weight) !important;
  line-height: 1.24 !important;
  vertical-align: middle !important;
}

#controlTable .sheet-link {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 30px !important;
  padding: 0 2px !important;
  border: 0 !important;
  border-bottom: 0 !important;
  text-decoration: none !important;
  text-underline-offset: 0 !important;
  color: var(--ink) !important;
  background: transparent !important;
}

#controlTable .sheet-link:hover,
#controlTable .sheet-link:focus-visible {
  background: var(--minimal-hover, #f5f1e8) !important;
  box-shadow: inset 0 -1px 0 var(--ink) !important;
  outline: none !important;
}

#controlTable.control-table th,
#controlTable.control-table td {
  vertical-align: middle !important;
}

#controlTable .status-select {
  font-size: var(--control-body-font-size) !important;
  font-weight: var(--control-body-font-weight) !important;
  line-height: 1.24 !important;
  min-height: 30px !important;
  height: 30px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#controlTable .mini-input.date,
#controlTable .notes-input {
  font-size: var(--control-body-font-size) !important;
  font-weight: var(--control-body-font-weight) !important;
}

/* Ações do Controle alinhadas ao eixo da linha, com padrão de ícone único. */
#controlTable .row-actions {
  width: 100% !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 6px !important;
}

#controlTable .btn.small.icon-only-btn {
  width: var(--btn-small-size) !important;
  min-width: var(--btn-small-size) !important;
  height: var(--btn-small-size) !important;
  min-height: var(--btn-small-size) !important;
}

/* MVP 0.11.12 · Correção fina de botões, tipografia e Matriz
   Ajuste localizado sobre a 0.11.11, sem alteração funcional. */
:root {
  --action-bar-min-height: 64px;
  --action-bar-py: 14px;
  --control-row-weight-final: 560;
  --control-row-font-size-final: 10px;
  --icon-button-border-final: var(--line-strong, #cfc6b8);
}

/* Barras de ação: botões ancorados na mesma malha das linhas horizontais. */
.topbar,
.panel-head.wrap,
.params-save-toolbar,
.matrix-toolbar,
.control-create-block summary,
.control-bulk-bar,
.bulk-action-bar {
  align-items: center !important;
}

.params-save-toolbar,
.matrix-toolbar,
#view-controle .control-filter-section > .panel-head.wrap,
#view-dashboard .dashboard-indicators-panel > .panel-head.wrap,
#view-matriz .matrix-toolbar {
  min-height: var(--action-bar-min-height) !important;
  padding-top: var(--action-bar-py) !important;
  padding-bottom: var(--action-bar-py) !important;
}

.params-toolbar-actions,
.matrix-toolbar .chip-list,
.panel-head.wrap > .btn,
.top-actions,
.control-bulk-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
}

.params-toolbar-actions .btn,
.matrix-toolbar .btn,
.panel-head.wrap > .btn,
.top-actions .btn,
.control-bulk-actions .btn {
  align-self: center !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Matriz: remover o bloco textual redundante dos filtros sem deixar vazio visual. */
#view-matriz .matrix-filter-section-compact {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

#view-matriz .matrix-filter-section-compact .matrix-dashboard-filter-grid {
  margin-top: 0 !important;
}

/* Controle de Pranchas: cabeçalho forte, conteúdo homogêneo e sem bold excessivo. */
#controlTable.control-table thead th,
#controlTable.control-table th {
  font-size: 10px !important;
  font-weight: 820 !important;
  line-height: 1.15 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
}

#controlTable.control-table tbody td,
#controlTable.control-table tbody td:nth-child(2),
#controlTable.control-table tbody td:nth-child(3),
#controlTable.control-table tbody td:nth-child(4),
#controlTable.control-table tbody td:nth-child(5),
#controlTable.control-table tbody td:nth-child(6),
#controlTable.control-table tbody td:nth-child(7),
#controlTable.control-table tbody td:nth-child(8),
#controlTable.control-table tbody td:nth-child(9),
#controlTable.control-table tbody td:nth-child(10),
#controlTable.control-table tbody td:nth-child(11),
#controlTable.control-table tbody td:nth-child(12),
#controlTable.control-table tbody td:nth-child(13),
#controlTable.control-table tbody td .drawing-info-item,
#controlTable.control-table tbody td .drawing-pill,
#controlTable.control-table tbody td .drawing-chip-static,
#controlTable.control-table tbody td .info-pill.drawing-pill,
#controlTable.control-table tbody td .chip,
#controlTable.control-table tbody td .chip.strong,
#controlTable .mini-input,
#controlTable .notes-input,
#controlTable select.status-select,
#controlTable select.status-select option,
#controlTable .status-select {
  font-size: var(--control-row-font-size-final) !important;
  font-weight: var(--control-row-weight-final) !important;
  line-height: 1.24 !important;
  letter-spacing: .005em !important;
  color: var(--ink) !important;
  text-transform: uppercase !important;
}

#controlTable.control-table tbody td:nth-child(1),
#controlTable .sheet-link {
  font-size: 10.5px !important;
  font-weight: 820 !important;
  line-height: 1.24 !important;
}

/* Remover definitivamente a linha vertical entre PRANCHA e ETAPA. */
#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1),
#controlTable.control-table th:nth-child(2),
#controlTable.control-table td:nth-child(2) {
  border-left: 0 !important;
  border-right: 0 !important;
}

/* Código clicável limpo: alinhado, sem linha fixa, com affordance só no hover/focus. */
#controlTable .sheet-link {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 30px !important;
  padding: 0 2px !important;
  border: 0 !important;
  border-bottom: 0 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

#controlTable .sheet-link:hover,
#controlTable .sheet-link:focus-visible {
  background: var(--minimal-hover, #f5f1e8) !important;
  box-shadow: inset 0 -1px 0 var(--ink) !important;
}

/* Botões pequenos de editar/remover: mesma gramática visual em Controle, Matriz e Parâmetros. */
.icon-only-btn,
.btn.icon-only-btn,
.btn.small.icon-only-btn,
.matrix-details > summary.matrix-edit-summary,
.matrix-card .btn.icon-only-btn,
#controlTable .btn.small.icon-only-btn,
#view-parametros .params-table .btn.small.icon-only-btn {
  width: var(--btn-small-size, 30px) !important;
  min-width: var(--btn-small-size, 30px) !important;
  height: var(--btn-small-size, 30px) !important;
  min-height: var(--btn-small-size, 30px) !important;
  padding: 0 !important;
  border: 1px solid var(--icon-button-border-final) !important;
  border-radius: 9px !important;
  background: #fffefb !important;
  color: var(--ink) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

.matrix-details > summary.matrix-edit-summary:hover,
.matrix-details > summary.matrix-edit-summary:focus-visible,
.btn.small.icon-only-btn:hover,
.btn.small.icon-only-btn:focus-visible {
  border-color: var(--ink) !important;
  background: var(--minimal-hover, #f5f1e8) !important;
  outline: none !important;
}

.matrix-details[open] > summary.matrix-edit-summary {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: #fff !important;
}

.matrix-details > summary.matrix-edit-summary .btn-icon,
.icon-only-btn .btn-icon {
  width: 14px !important;
  height: 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.matrix-details > summary.matrix-edit-summary svg,
.icon-only-btn svg {
  width: 14px !important;
  height: 14px !important;
  stroke: currentColor !important;
  fill: none !important;
  stroke-width: 2 !important;
}

/* MVP 0.11.13 · Limpeza residual de espaçamentos e composição dos gráficos
   Ajuste localizado sobre a 0.11.12, sem alteração funcional. */
:root {
  --params-compact-gap: 13px;
  --params-compact-pad-y: 10px;
  --dashboard-chart-vertical-gap: 12px;
}

/* Parâmetros: remove o bloco residual de edição local e compacta o ritmo entre abas/seções. */
#view-parametros #paramsContent {
  margin-top: 16px !important;
}

#view-parametros .params-save-toolbar {
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

#view-parametros .params-grid {
  gap: var(--params-compact-gap) !important;
}

#view-parametros .params-block,
#view-parametros .params-block-wide,
#view-parametros .params-details,
#view-parametros #paramsContent details {
  margin-top: 0 !important;
  margin-bottom: var(--params-compact-gap) !important;
  padding-top: var(--params-compact-pad-y) !important;
  padding-bottom: var(--params-compact-pad-y) !important;
}

#view-parametros .params-details:not([open]) {
  padding-bottom: var(--params-compact-pad-y) !important;
}

#view-parametros .params-summary {
  min-height: 34px !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 9px !important;
  border-bottom: 1px solid var(--ink) !important;
}

#view-parametros .params-summary h3 {
  margin-bottom: 4px !important;
}

#view-parametros .params-table-wrap,
#view-parametros .param-add-form {
  margin-top: 12px !important;
}

/* Controle: mesmo afastamento compacto entre o separador do título e a linha do bloco de filtros usado em Matriz/Parâmetros. */
#view-controle .control-filter-section {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

#view-controle .control-filter-section > .panel-head.wrap {
  min-height: auto !important;
  padding-top: 0 !important;
  padding-bottom: 14px !important;
  margin-bottom: 16px !important;
}

#view-controle .control-filter-section > .panel-head.wrap .btn {
  align-self: center !important;
}

/* Dashboard: legendas e informações textuais ficam abaixo da rosca para evitar corte de texto. */
#view-dashboard .dashboard-charts {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  align-items: start !important;
}

#view-dashboard .chart-card.donut-card,
#view-dashboard .donut-card {
  grid-template-rows: auto auto auto !important;
  align-content: start !important;
}

#view-dashboard .donut-layout {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: center !important;
  align-items: start !important;
  gap: var(--dashboard-chart-vertical-gap) !important;
}

#view-dashboard .donut-chart {
  justify-self: center !important;
  align-self: center !important;
}

#view-dashboard .donut-legend {
  width: 100% !important;
  max-height: none !important;
  overflow: visible !important;
  padding-right: 0 !important;
  align-content: start !important;
  justify-self: stretch !important;
}

#view-dashboard .donut-legend-row {
  grid-template-columns: 8px minmax(0, 1fr) auto auto !important;
  align-items: start !important;
  min-height: 0 !important;
  line-height: 1.25 !important;
}

#view-dashboard .donut-legend-row span:nth-child(2) {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  min-width: 0 !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
}

#view-dashboard .chart-note {
  width: 100% !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: anywhere !important;
}


/* MVP 0.11.14 · Consolidação tipográfica, caixa alta e limpeza final de linhas/espaços
   Ajuste localizado sobre a 0.11.13, sem alteração funcional. */
:root {
  --type-page-title: clamp(42px, 3.15vw, 58px);
  --type-section-title: 16px;
  --type-subtitle: 10px;
  --type-label: 10px;
  --type-body: 10.5px;
  --type-button: 10.5px;
  --type-tracking-title: -.045em;
  --type-tracking-ui: .065em;
  --compact-section-gap: 8px;
  --compact-line: var(--line, #ded9cf);
  --compact-line-strong: var(--line-strong, #c4bdae);
}

/* Caixa alta como linguagem operacional global. */
body,
body *:not(svg):not(path) {
  text-transform: uppercase !important;
}

/* Redução da variedade tipográfica: poucos níveis claros e reutilizáveis. */
.topbar h2,
#viewTitle {
  font-size: var(--type-page-title) !important;
  line-height: .98 !important;
  font-weight: 900 !important;
  letter-spacing: var(--type-tracking-title) !important;
}

.panel h3,
.panel-head h3,
.control-existing-head h3,
.control-create-queue-head h3,
.params-summary h3,
.matrix-card h4,
.drawing-card h4,
.type-section-head h3,
.sheet-title-card h3,
#view-dashboard .dashboard-indicators-panel h3,
#view-matriz .matrix-toolbar strong,
#view-parametros .params-save-toolbar strong,
#view-dados h3 {
  font-size: var(--type-section-title) !important;
  line-height: 1.12 !important;
  font-weight: 850 !important;
  letter-spacing: .015em !important;
}

.muted,
.eyebrow,
.panel-head span,
.matrix-card p,
.drawing-card p,
.params-summary .muted,
.matrix-toolbar span,
#view-parametros .params-save-toolbar span,
.sidebar .brand p,
.data-table caption,
.activity-log,
.warning-list,
.sidebar-note,
.matrix-help {
  font-size: var(--type-subtitle) !important;
  line-height: 1.45 !important;
  font-weight: 520 !important;
  letter-spacing: .055em !important;
}

label,
.dashboard-filter-grid label,
.control-create-form label,
.param-add-form label,
th,
.data-table th,
.params-table th,
.matrix-edit-table th,
.check-table th,
.queue-table th,
#controlTable th {
  font-size: var(--type-label) !important;
  line-height: 1.18 !important;
  font-weight: 820 !important;
  letter-spacing: var(--type-tracking-ui) !important;
}

.data-table td,
.params-table td,
.matrix-edit-table td,
.check-table td,
.queue-table td,
#controlTable.control-table tbody td,
#controlTable.control-table tbody td .drawing-info-item,
#controlTable.control-table tbody td .drawing-pill,
#controlTable.control-table tbody td .chip,
#controlTable .mini-input,
#controlTable .notes-input,
#controlTable select.status-select,
#controlTable .status-select,
input,
select,
textarea,
.chip,
.info-pill,
.donut-legend,
.donut-legend-row,
.chart-note,
.chart-row-head {
  font-size: var(--type-body) !important;
  line-height: 1.28 !important;
  font-weight: 560 !important;
  letter-spacing: .018em !important;
}

.btn,
button,
.btn.small,
.top-actions .btn,
.params-toolbar-actions .btn,
.matrix-toolbar .btn,
.form-actions .btn,
.queue-actions .btn {
  font-size: var(--type-button) !important;
  line-height: 1 !important;
  font-weight: 820 !important;
  letter-spacing: .055em !important;
}

/* Manter códigos/identificadores com hierarquia sem criar novos tamanhos. */
#controlTable .sheet-link,
.brand h1,
.brand-mark {
  font-weight: 850 !important;
  letter-spacing: .015em !important;
}

/* Parâmetros: compactar seções fechadas/abertas e remover linhas pretas residuais. */
#view-parametros #paramsContent {
  margin-top: 8px !important;
}

#view-parametros .params-save-toolbar {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  border-top: 1px solid var(--compact-line) !important;
  border-bottom: 1px solid var(--compact-line) !important;
}

#view-parametros .params-grid {
  gap: 0 !important;
  row-gap: 0 !important;
}

#view-parametros .params-block,
#view-parametros .params-block-wide,
#view-parametros .params-details,
#view-parametros #paramsContent details {
  margin: 0 !important;
  padding: 7px 0 8px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--compact-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

#view-parametros .params-summary {
  min-height: 26px !important;
  margin: 0 !important;
  padding: 0 0 4px !important;
  border: 0 !important;
  border-bottom: 0 !important;
  align-items: flex-start !important;
}

#view-parametros .params-summary h3 {
  margin: 0 0 3px !important;
}

#view-parametros .params-summary .muted {
  margin: 0 !important;
}

#view-parametros .params-table-wrap,
#view-parametros .param-add-form {
  margin-top: 8px !important;
}

#view-parametros .params-details[open] .params-summary {
  padding-bottom: 8px !important;
  border-bottom: 1px solid var(--compact-line-strong) !important;
}

#view-parametros .params-details[open] {
  padding-bottom: 10px !important;
}

/* Matriz: usar o Controle como referência de ritmo vertical e retirar a exceção pontilhada. */
#view-matriz .matrix-filter-section,
#view-matriz .matrix-filter-section-compact {
  padding-top: 0 !important;
  padding-bottom: 14px !important;
  margin-bottom: 18px !important;
  border-bottom: 1px solid var(--compact-line) !important;
}

#view-matriz .matrix-toolbar {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  padding-top: 14px !important;
  padding-bottom: 14px !important;
  border-top: 1px solid var(--compact-line) !important;
  border-bottom: 1px solid var(--compact-line) !important;
  border-style: solid !important;
}

#view-matriz .matrix-new-drawing {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  border-top: 1px solid var(--compact-line) !important;
  border-bottom: 1px solid var(--compact-line) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-style: solid !important;
  border-radius: 0 !important;
}

#view-matriz .matrix-new-drawing > summary {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#view-matriz .matrix-grid {
  margin-top: 0 !important;
  gap: 18px 28px !important;
}

#view-matriz .matrix-card {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  border-top: 1px solid var(--compact-line) !important;
  border-bottom: 1px solid var(--compact-line) !important;
  border-style: solid !important;
}

#view-matriz .matrix-card-head {
  margin-bottom: 10px !important;
}

/* Eliminar pontilhado em separadores estruturais do contexto Matriz/Parâmetros. */
#view-matriz .matrix-toolbar,
#view-matriz .matrix-new-drawing,
#view-matriz .matrix-card,
#view-parametros .param-add-form,
#view-parametros .params-details {
  border-style: solid !important;
}


/* MVP 0.11.15 · Ajuste de títulos e ritmo da Matriz
   Redução do título principal para 75% e alinhamento do bloco "Adicionar novo desenho" ao padrão do Controle. */
:root {
  --type-page-title: clamp(32px, 2.35vw, 44px);
  --page-title-size: clamp(32px, 2.35vw, 44px);
  --matrix-control-line-height: 48px;
  --matrix-control-line-gap: 18px;
}

.topbar {
  min-height: 60px !important;
  padding-bottom: 14px !important;
}

.topbar h2,
#viewTitle {
  font-size: var(--type-page-title) !important;
}

/* Matriz: o bloco de adicionar desenho passa a usar a mesma altura de linha do bloco Criar Pranchas do Controle. */
#view-matriz .matrix-new-drawing {
  margin-top: 0 !important;
  margin-bottom: var(--matrix-control-line-gap) !important;
  padding: 0 !important;
  min-height: auto !important;
  border-top: 1px solid var(--compact-line, var(--line)) !important;
  border-bottom: 1px solid var(--compact-line, var(--line)) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
  border-style: solid !important;
  background: transparent !important;
}

#view-matriz .matrix-new-drawing > summary {
  min-height: var(--matrix-control-line-height) !important;
  height: var(--matrix-control-line-height) !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
}

#view-matriz .matrix-new-drawing[open] > summary {
  border-bottom: 1px solid var(--compact-line, var(--line)) !important;
}

#view-matriz .matrix-new-grid {
  margin-top: 14px !important;
  padding-bottom: 14px !important;
}

#view-matriz .matrix-toolbar {
  margin-bottom: var(--matrix-control-line-gap) !important;
}

#view-matriz #matrixContent {
  margin-top: 0 !important;
}

/* MVP 0.11.16 · Dashboard e blocos recolhíveis
   Ajuste localizado sobre a 0.11.15, sem alteração funcional. */
:root {
  --fold-row-height: 46px;
  --fold-row-gap: 18px;
  --fold-line: var(--compact-line, var(--line));
}

/* Dashboard: filtros primeiro, KPIs em seguida, gráficos depois. */
#view-dashboard > .dashboard-indicators-panel {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  padding-top: 0 !important;
  padding-bottom: 14px !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--fold-line) !important;
}

#view-dashboard > .dashboard-indicators-panel > .panel-head.wrap {
  min-height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 12px !important;
  margin-bottom: 14px !important;
}

#view-dashboard > .kpi-grid {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

#view-dashboard > .dashboard-charts {
  margin-top: 0 !important;
  margin-bottom: 28px !important;
}

#view-dashboard > .two-cols {
  margin-top: 28px !important;
}

/* Matriz e Controle: blocos recolhíveis com a mesma gramática das seções de Parâmetros. */
#view-matriz .matrix-new-drawing,
#view-controle .control-create-block {
  margin-top: var(--fold-row-gap) !important;
  margin-bottom: var(--fold-row-gap) !important;
  padding: 0 !important;
  border-top: 1px solid var(--fold-line) !important;
  border-bottom: 1px solid var(--fold-line) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#view-matriz .matrix-new-drawing > summary,
#view-controle .control-create-block > summary {
  min-height: var(--fold-row-height) !important;
  height: var(--fold-row-height) !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  border: 0 !important;
  border-bottom: 0 !important;
  list-style: none !important;
  cursor: pointer !important;
  background: transparent !important;
}

#view-matriz .matrix-new-drawing > summary::-webkit-details-marker,
#view-controle .control-create-block > summary::-webkit-details-marker {
  display: none !important;
}

#view-matriz .matrix-new-drawing > summary::before {
  content: "▶" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  margin: 0 2px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--ink) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  flex: 0 0 auto !important;
}

#view-matriz .matrix-new-drawing[open] > summary::before {
  content: "▼" !important;
  background: transparent !important;
  color: var(--ink) !important;
}

#view-controle .control-create-block .summary-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  margin: 0 2px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--ink) !important;
  transform: none !important;
  flex: 0 0 auto !important;
  font-size: 0 !important;
}

#view-controle .control-create-block .summary-icon::before {
  content: "▶" !important;
  display: inline-block !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: var(--ink) !important;
}

#view-controle .control-create-block[open] .summary-icon::before {
  content: "▼" !important;
}

#view-matriz .matrix-new-drawing > summary,
#view-matriz .matrix-new-drawing > summary *,
#view-controle .control-create-block > summary,
#view-controle .control-create-block > summary * {
  font-size: var(--type-button, 10.5px) !important;
  font-weight: 820 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
}

#view-controle .control-create-block > summary em {
  margin-left: auto !important;
  font-style: normal !important;
  color: var(--muted) !important;
  font-size: var(--type-subtitle, 10px) !important;
  font-weight: 520 !important;
  letter-spacing: .055em !important;
}

#view-matriz .matrix-new-drawing[open] > summary,
#view-controle .control-create-block[open] > summary {
  border-bottom: 1px solid var(--fold-line) !important;
}

#view-matriz .matrix-new-drawing > .matrix-new-grid,
#view-controle .control-create-block > .control-create-form {
  margin-top: 14px !important;
  padding-top: 0 !important;
  padding-bottom: 16px !important;
  border-top: 0 !important;
}

/* Afastamento da Matriz equalizado ao bloco Criar Pranchas do Controle. */
#view-matriz .matrix-toolbar {
  margin-bottom: var(--fold-row-gap) !important;
}

#view-matriz .matrix-new-drawing + .matrix-grid {
  margin-top: 0 !important;
}

#view-controle .control-filter-section + .control-create-block {
  margin-top: var(--fold-row-gap) !important;
}


/* MVP 0.11.20 · Revisão consolidada de alinhamento, dados, parâmetros e matriz
   Ajuste localizado sobre a 0.11.16, sem alteração funcional. */
:root {
  --page-content-x: 0px;
  --section-line-color-final: var(--line, #e4ded3);
  --section-line-strong-final: var(--line-strong, #bdb4a5);
  --filter-field-height-final: 38px;
  --filter-gap-y-final: 9px;
  --filter-label-gap-final: 5px;
  --fold-row-height-final: 38px;
  --fold-row-gap-final: 14px;
}

/* Malha horizontal comum: linhas principais e conteúdo no mesmo eixo entre páginas. */
.main > .view,
#view-dashboard,
#view-controle,
#view-matriz,
#view-parametros,
#view-dados,
#view-prancha {
  --page-content-x: 0px;
}

.topbar,
#view-dashboard > .dashboard-indicators-panel,
#view-dashboard > .kpi-grid,
#view-dashboard > .dashboard-charts,
#view-dashboard > .two-cols,
#view-controle .control-panel,
#view-matriz > .panel,
#view-parametros > .panel,
#view-dados > .grid-12 {
  margin-left: var(--page-content-x) !important;
  margin-right: var(--page-content-x) !important;
}

.topbar,
.panel-head,
#view-dashboard > .dashboard-indicators-panel,
#view-controle .control-filter-section > .panel-head.wrap,
#view-matriz .matrix-title-head,
#view-matriz .matrix-filter-section,
#view-parametros .params-page-head,
#view-dados .panel-head {
  border-color: var(--section-line-color-final) !important;
}

/* Origem vertical e horizontal dos filtros: Dashboard, Controle e Matriz na mesma malha. */
#view-dashboard > .dashboard-indicators-panel,
#view-controle .control-filter-section,
#view-matriz .matrix-filter-section {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#view-dashboard .dashboard-indicators-panel > .panel-head.wrap,
#view-controle .control-filter-section > .panel-head.wrap,
#view-matriz .matrix-title-head {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#view-dashboard .dashboard-filter-grid,
#view-controle .control-dashboard-filter-grid,
#view-matriz .matrix-dashboard-filter-grid {
  margin-left: 0 !important;
  margin-right: 0 !important;
  gap: var(--filter-gap-y-final) 10px !important;
  align-items: end !important;
}

#view-dashboard .dashboard-filter-grid label,
#view-controle .control-dashboard-filter-grid label,
#view-matriz .matrix-dashboard-filter-grid label {
  display: grid !important;
  gap: var(--filter-label-gap-final) !important;
  margin: 0 !important;
}

#view-dashboard .dashboard-filter-grid select,
#view-dashboard .dashboard-filter-grid input,
#view-controle .control-dashboard-filter-grid select,
#view-controle .control-dashboard-filter-grid input,
#view-matriz .matrix-dashboard-filter-grid select,
#view-matriz .matrix-dashboard-filter-grid input {
  height: var(--filter-field-height-final) !important;
  min-height: var(--filter-field-height-final) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#view-dashboard .dashboard-filter-grid,
#view-controle .control-dashboard-filter-grid {
  grid-template-columns: repeat(4, minmax(160px, 1fr)) !important;
}

#view-controle .control-dashboard-filter-grid .control-search-field {
  grid-column: 1 / -1 !important;
}

#view-matriz .matrix-dashboard-filter-grid {
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(260px, 2fr) !important;
}

/* Dados: remover linhas superiores marcadas como ruído, mantendo a tabela da fonte legível. */
#view-dados .panel-head {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 16px !important;
}

#view-dados .panel {
  border-top: 0 !important;
}

#view-dados .meta-list {
  border-top: 0 !important;
}

/* Parâmetros: ações sobem para o cabeçalho operacional; bloco de salvamento deixa de existir. */
#view-parametros .params-page-head {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 14px !important;
  margin-bottom: 10px !important;
  padding-bottom: 14px !important;
}

#view-parametros .params-header-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin-left: auto !important;
  white-space: nowrap !important;
}

#view-parametros #paramsContent {
  margin-top: 0 !important;
}

#view-parametros .params-save-toolbar {
  display: none !important;
}

#view-parametros .params-grid {
  margin-top: 8px !important;
}

/* Parâmetros: compactação final das seções recolhíveis, sem grandes vazios internos. */
#view-parametros .params-details {
  padding: 6px 0 7px !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--section-line-color-final) !important;
}

#view-parametros .params-summary {
  min-height: 24px !important;
  padding: 0 !important;
  display: list-item !important;
  align-items: start !important;
}

#view-parametros .params-summary h3 {
  margin: 0 0 2px !important;
}

#view-parametros .params-summary .muted {
  margin: 0 !important;
}

#view-parametros .params-details[open] .params-summary {
  padding-bottom: 7px !important;
  border-bottom: 1px solid var(--section-line-strong-final) !important;
}

/* Blocos recolhíveis equivalentes ao padrão de Parâmetros: sem borda na seta, sem caixa de faixa. */
#view-matriz .matrix-new-drawing,
#view-controle .control-create-block {
  min-height: 0 !important;
  margin-top: var(--fold-row-gap-final) !important;
  margin-bottom: var(--fold-row-gap-final) !important;
  padding: 0 !important;
  border-top: 1px solid var(--section-line-color-final) !important;
  border-bottom: 1px solid var(--section-line-color-final) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  background: transparent !important;
}

#view-matriz .matrix-new-drawing > summary,
#view-controle .control-create-block > summary {
  min-height: var(--fold-row-height-final) !important;
  height: var(--fold-row-height-final) !important;
  padding: 0 !important;
  line-height: 1 !important;
  align-items: center !important;
}

/* Afastamento da Matriz equalizado ao Controle. */
#view-matriz .matrix-toolbar {
  margin-top: 0 !important;
  margin-bottom: var(--fold-row-gap-final) !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  border-top: 1px solid var(--section-line-color-final) !important;
  border-bottom: 1px solid var(--section-line-color-final) !important;
}

#view-matriz .matrix-new-drawing + .matrix-grid,
#view-controle .control-create-block + .control-existing-block {
  margin-top: 0 !important;
}

/* Edição da Matriz: aplicabilidade com o mesmo peso/tamanho dos valores de Grupo e Item. */
.matrix-edit-table .matrix-input,
.matrix-edit-table .matrix-app-btn,
.matrix-edit-table td {
  font-size: var(--type-body, 10.5px) !important;
  line-height: 1.28 !important;
  font-weight: 560 !important;
  letter-spacing: .018em !important;
}

.matrix-app-buttons {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-wrap: nowrap !important;
}

.matrix-app-btn {
  min-height: 28px !important;
  height: 28px !important;
  padding: 0 8px !important;
  border-radius: 0 !important;
  font-size: var(--type-body, 10.5px) !important;
  font-weight: 560 !important;
  line-height: 1.05 !important;
  letter-spacing: .018em !important;
  background: var(--surface, #fffefb) !important;
  border: 1px solid var(--line-strong, #bdb4a5) !important;
  color: var(--ink, #11100e) !important;
}

.matrix-app-btn.is-active {
  font-weight: 650 !important;
  border-color: var(--ink, #11100e) !important;
  background: var(--accent-soft, #ece7dc) !important;
  color: var(--ink, #11100e) !important;
  box-shadow: inset 2px 0 0 var(--ink, #11100e) !important;
}

.matrix-app-btn:hover,
.matrix-app-btn:focus-visible {
  border-color: var(--ink, #11100e) !important;
  background: var(--surface-soft, #f7f4ee) !important;
  color: var(--ink, #11100e) !important;
}

/* Responsivo para a nova faixa superior de Parâmetros. */
@media (max-width: 900px) {
  #view-parametros .params-page-head {
    align-items: flex-start !important;
  }
  #view-parametros .params-header-actions {
    width: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }
  #view-dashboard .dashboard-filter-grid,
  #view-controle .control-dashboard-filter-grid,
  #view-matriz .matrix-dashboard-filter-grid {
    grid-template-columns: 1fr !important;
  }
}


/* MVP 0.11.20 · limpeza fina de linhas residuais e redistribuição do dashboard */
#view-dashboard > .dashboard-charts {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: start !important;
}

#view-dashboard .dashboard-chart-column {
  display: grid !important;
  gap: 14px !important;
  align-content: start !important;
}

#view-dashboard .dashboard-chart-column > .chart-card,
#view-dashboard .dashboard-chart-column > .donut-card {
  margin: 0 !important;
}

#view-dashboard .chart-card.donut-card,
#view-dashboard .donut-card,
#view-dashboard .chart-card:not(.donut-card) {
  min-height: 0 !important;
}

#view-matriz .matrix-grid {
  gap: 12px 28px !important;
}

#view-matriz .matrix-card {
  padding-top: 10px !important;
  padding-bottom: 8px !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--section-line-color-final, var(--line)) !important;
  box-shadow: none !important;
}

#view-matriz .matrix-card-head {
  margin-bottom: 8px !important;
}

#view-matriz .matrix-card .info-list {
  padding-right: 76px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

#view-matriz .matrix-card .matrix-details,
#view-matriz .matrix-card .matrix-help,
#view-matriz .matrix-card .matrix-save-line,
#view-matriz .matrix-card .matrix-group-head,
#view-matriz .matrix-card .matrix-group-row td {
  border-top: 0 !important;
  box-shadow: none !important;
}

#view-matriz .matrix-card .matrix-details:not([open]) {
  margin-top: 0 !important;
}

#view-matriz .matrix-card .matrix-details[open] {
  margin-top: 8px !important;
}

@media (max-width: 1200px) {
  #view-dashboard > .dashboard-charts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  #view-dashboard > .dashboard-charts {
    grid-template-columns: 1fr !important;
  }
}


/* MVP 0.11.20 · alinhamento fino da origem dos filtros e linha-base da página Dados */
#view-dashboard .dashboard-indicators-panel > .panel-head.wrap,
#view-controle .control-filter-section > .panel-head.wrap,
#view-matriz .matrix-title-head {
  min-height: 58px !important;
  padding-top: 0 !important;
  padding-bottom: 10px !important;
  margin-bottom: 12px !important;
  box-sizing: border-box !important;
}

#view-dashboard .dashboard-filter-grid,
#view-controle .control-dashboard-filter-grid,
#view-matriz .matrix-dashboard-filter-grid {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#view-dashboard .dashboard-filter-grid label:first-child,
#view-controle .control-dashboard-filter-grid label:first-child,
#view-matriz .matrix-dashboard-filter-grid label:first-child {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

#view-dados > .grid-12 {
  border-top: 1px solid var(--section-line-color-final, var(--line)) !important;
  padding-top: 16px !important;
}


/* MVP 0.11.20 · dashboard com 2 linhas niveladas de 4 gráficos */
#view-dashboard > .dashboard-charts {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
}

#view-dashboard > .dashboard-charts > .dashboard-chart-slot {
  min-width: 0 !important;
}

#view-dashboard > .dashboard-charts > .dashboard-chart-slot > .chart-card,
#view-dashboard > .dashboard-charts > .dashboard-chart-slot > .donut-card,
#view-dashboard > .dashboard-charts > .chart-card,
#view-dashboard > .dashboard-charts > .donut-card {
  height: 100% !important;
  margin: 0 !important;
}

@media (max-width: 1200px) {
  #view-dashboard > .dashboard-charts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  #view-dashboard > .dashboard-charts {
    grid-template-columns: 1fr !important;
  }
}


/* MVP 0.11.21 · ajustes finais de checklist e controle */
#controlTable .mini-input.date {
  -webkit-appearance: none !important;
  appearance: none !important;
  background-image: none !important;
  padding-right: 0 !important;
}
#controlTable .mini-input.date::-webkit-calendar-picker-indicator {
  display: none !important;
  opacity: 0 !important;
  width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
#controlTable .mini-input.date::-webkit-clear-button,
#controlTable .mini-input.date::-webkit-inner-spin-button {
  display: none !important;
}
#controlTable .mini-input.date::-moz-focus-inner {
  border: 0 !important;
}

.sheet-reminder-input {
  background: #fff !important;
  color: #17130f !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 0 !important;
  padding: 12px 14px !important;
  margin-top: 8px !important;
  min-height: 72px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  box-shadow: none !important;
}
.sheet-reminder-input::placeholder {
  color: #8c8477 !important;
}
.sheet-reminder.is-empty .sheet-reminder-input {
  color: #17130f !important;
}

/* MVP 0.12.3 · Lista em preparação como etapa de qualificação */
#queueTable.queue-table {
  table-layout: fixed;
}
#queueTable.queue-table th:nth-child(1), #queueTable.queue-table td:nth-child(1) { width: 14%; }
#queueTable.queue-table th:nth-child(2), #queueTable.queue-table td:nth-child(2) { width: 13%; }
#queueTable.queue-table th:nth-child(3), #queueTable.queue-table td:nth-child(3) { width: 9%; }
#queueTable.queue-table th:nth-child(4), #queueTable.queue-table td:nth-child(4) { width: 12%; }
#queueTable.queue-table th:nth-child(5), #queueTable.queue-table td:nth-child(5) { width: 12%; }
#queueTable.queue-table th:nth-child(6), #queueTable.queue-table td:nth-child(6) { width: 24%; }
#queueTable.queue-table th:nth-child(7), #queueTable.queue-table td:nth-child(7) { width: 13%; }
#queueTable.queue-table th:nth-child(8), #queueTable.queue-table td:nth-child(8) { width: 3%; }
#queueTable .queue-mini-input {
  width: 100%;
  min-width: 0;
}
#queueTable .queue-drawing-option small {
  display: block;
  margin-top: 2px;
  font-size: 9px;
  line-height: 1.1;
  font-weight: 600;
  opacity: .64;
}

/* MVP 0.12.4 · ajuste de fluxo: ordem de lista/controle e ações visíveis */
#queueTable.queue-table th:nth-child(1), #queueTable.queue-table td:nth-child(1) { width: 14%; }
#queueTable.queue-table th:nth-child(2), #queueTable.queue-table td:nth-child(2) { width: 13%; }
#queueTable.queue-table th:nth-child(3), #queueTable.queue-table td:nth-child(3) { width: 8%; }
#queueTable.queue-table th:nth-child(4), #queueTable.queue-table td:nth-child(4) { width: 12%; }
#queueTable.queue-table th:nth-child(5), #queueTable.queue-table td:nth-child(5) { width: 12%; }
#queueTable.queue-table th:nth-child(6), #queueTable.queue-table td:nth-child(6) { width: 15%; }
#queueTable.queue-table th:nth-child(7), #queueTable.queue-table td:nth-child(7) { width: 23%; }
#queueTable.queue-table th:nth-child(8), #queueTable.queue-table td:nth-child(8) { width: 3%; }
#queueTable.queue-table td:nth-child(6),
#queueTable.queue-table td:nth-child(7) {
  vertical-align: top;
}

#controlTable.control-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
#controlTable.control-table th,
#controlTable.control-table td {
  padding: 7px 5px;
  font-size: 9px;
  line-height: 1.25;
}
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 8%; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 6%; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 6%; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 7%; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 7%; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 11%; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 13%; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 8%; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 7%; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 6.5%; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 4%; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 5.5%; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 5.5%; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 4.5%; }
#controlTable.control-table td:nth-child(6),
#controlTable.control-table td:nth-child(7) {
  white-space: normal;
  overflow-wrap: anywhere;
}
#controlTable.control-table td:nth-child(14) {
  white-space: nowrap;
  text-align: right;
}
#controlTable .row-actions {
  display: inline-flex;
  justify-content: flex-end;
  gap: 4px;
  width: auto;
}
.control-edit-notes-label {
  grid-column: span 2;
}
.control-edit-notes-label textarea {
  width: 100%;
  min-height: 56px;
  resize: vertical;
}

/* MVP 0.12.61 · ajuste fino de alinhamento da criação, lista e controle */
#formCadastro.control-create-form {
  display: grid !important;
  grid-template-columns: minmax(220px, 1.05fr) minmax(180px, .95fr) minmax(180px, .95fr) !important;
  gap: 12px 14px !important;
  align-items: end !important;
}
#formCadastro.control-create-form > label {
  grid-column: auto !important;
  margin: 0 !important;
}
#formCadastro.control-create-form > .nested-fields:not(.is-hidden) {
  display: contents !important;
}
#formCadastro.control-create-form > .nested-fields:not(.is-hidden) > label {
  min-width: 0 !important;
  margin: 0 !important;
}
#formCadastro.control-create-form > .form-actions.control-create-actions {
  grid-column: 1 / -1 !important;
  display: flex !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  margin-top: 2px !important;
}
#fieldCadastroMode,
#fieldBatchStart,
#fieldBatchQty,
#fieldCode {
  width: 100% !important;
  min-width: 0 !important;
}
@media (max-width: 920px) {
  #formCadastro.control-create-form {
    grid-template-columns: 1fr !important;
  }
  #formCadastro.control-create-form > .nested-fields:not(.is-hidden) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}

#queueTable.queue-table th:nth-child(1), #queueTable.queue-table td:nth-child(1) { width: 13%; }
#queueTable.queue-table th:nth-child(2), #queueTable.queue-table td:nth-child(2) { width: 11%; }
#queueTable.queue-table th:nth-child(3), #queueTable.queue-table td:nth-child(3) { width: 8%; }
#queueTable.queue-table th:nth-child(4), #queueTable.queue-table td:nth-child(4) { width: 10%; }
#queueTable.queue-table th:nth-child(5), #queueTable.queue-table td:nth-child(5) { width: 10%; }
#queueTable.queue-table th:nth-child(6), #queueTable.queue-table td:nth-child(6) { width: 17%; }
#queueTable.queue-table th:nth-child(7), #queueTable.queue-table td:nth-child(7) { width: 28%; }
#queueTable.queue-table th:nth-child(8), #queueTable.queue-table td:nth-child(8) { width: 3%; }
#queueTable.queue-table th,
#queueTable.queue-table td {
  vertical-align: middle !important;
}
#queueTable.queue-table td:nth-child(7) {
  vertical-align: top !important;
}
#queueTable .queue-drawing-option {
  padding: 7px 9px !important;
  line-height: 1.2 !important;
}
#queueTable .queue-drawing-option small {
  display: none !important;
}
#queueTable .selectable-list.queue-drawing-list {
  max-height: 132px !important;
}

#controlTable.control-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 0 !important;
}
#controlTable.control-table th,
#controlTable.control-table td {
  padding: 7px 4px !important;
  line-height: 1.22 !important;
}
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 6.5% !important; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 5.5% !important; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 6% !important; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 5.5% !important; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 6.5% !important; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 10% !important; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 29% !important; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 5.5% !important; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 4.8% !important; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 4.8% !important; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 3.5% !important; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 4.5% !important; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 4.5% !important; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 3% !important; }
#controlTable.control-table tbody td:nth-child(1) {
  font-weight: 560 !important;
}
#controlTable.control-table tr.selectable-row > td {
  height: auto !important;
  min-height: 0 !important;
  vertical-align: middle !important;
}
#controlTable .control-drawings-layout {
  min-height: 0 !important;
  height: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 32px !important;
  gap: 6px !important;
  align-items: center !important;
}
#controlTable .control-drawings-copy {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  padding-right: 0 !important;
  align-content: center !important;
}
#controlTable .drawing-info-list.drawings-only {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 3px !important;
  align-items: center !important;
}
#controlTable .info-pill.drawing-pill,
#controlTable .drawing-pill {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-align: left !important;
  line-height: 1.2 !important;
}
#controlTable .control-progress-donut {
  width: 28px !important;
  height: 28px !important;
}
#controlTable .control-progress-donut span {
  font-size: 8px !important;
}
#controlTable .status-select,
#controlTable .mini-input {
  min-height: 28px !important;
  height: 28px !important;
  padding: 5px 2px !important;
  font-size: 8.8px !important;
  letter-spacing: .005em !important;
}
#controlTable .row-actions {
  gap: 3px !important;
  justify-content: flex-end !important;
}
#controlTable .btn.small {
  min-width: 0 !important;
  width: 24px !important;
  height: 28px !important;
  padding: 4px 2px !important;
}
#controlTable.control-table td:nth-child(14) {
  text-align: right !important;
}


/* MVP 0.12.61 · prefixes in queue/control and compact status columns */
#controlTable.control-table {
  min-width: 1650px;
}
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 6%; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 5.5%; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 5.5%; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 6.5%; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 7%; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 8%; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 24%; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 8%; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 7%; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 7%; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 5%; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 7%; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 7%; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 3.5%; }
#controlTable .status-select,
#controlTable .mini-input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  font-size: 10px;
}
#controlTable .control-drawings-copy {
  max-height: 86px;
}
#controlTable .sheet-link {
  font-weight: 800;
}
#queueTable.queue-table {
  min-width: 1120px;
}
#queueTable.queue-table th:nth-child(1), #queueTable.queue-table td:nth-child(1) { width: 13%; }
#queueTable.queue-table th:nth-child(2), #queueTable.queue-table td:nth-child(2) { width: 12%; }
#queueTable.queue-table th:nth-child(3), #queueTable.queue-table td:nth-child(3) { width: 10%; }
#queueTable.queue-table th:nth-child(4), #queueTable.queue-table td:nth-child(4) { width: 12%; }
#queueTable.queue-table th:nth-child(5), #queueTable.queue-table td:nth-child(5) { width: 12%; }
#queueTable.queue-table th:nth-child(6), #queueTable.queue-table td:nth-child(6) { width: 12%; }
#queueTable.queue-table th:nth-child(7), #queueTable.queue-table td:nth-child(7) { width: 25%; }
#queueTable.queue-table th:nth-child(8), #queueTable.queue-table td:nth-child(8) { width: 4%; }


/* MVP 0.12.61 · tighter drawings column and redistributed status/date columns */
#controlTable.control-table {
  min-width: 1600px;
}
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 6%; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 5.5%; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 5%; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 6.5%; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 7%; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 7.5%; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 18%; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 9%; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 8%; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 8%; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 5.5%; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 8%; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 8%; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 3%; }
#controlTable .control-drawings-copy {
  max-height: 72px;
}
#controlTable .status-select,
#controlTable .mini-input {
  width: 100%;
  min-width: 0;
  padding-left: 6px;
  padding-right: 6px;
}
#controlTable.control-table th:nth-child(8),
#controlTable.control-table th:nth-child(9),
#controlTable.control-table th:nth-child(10),
#controlTable.control-table th:nth-child(11),
#controlTable.control-table th:nth-child(12),
#controlTable.control-table th:nth-child(13),
#controlTable.control-table td:nth-child(8),
#controlTable.control-table td:nth-child(9),
#controlTable.control-table td:nth-child(10),
#controlTable.control-table td:nth-child(11),
#controlTable.control-table td:nth-child(12),
#controlTable.control-table td:nth-child(13) {
  white-space: nowrap;
}


/* MVP 0.12.61 · alinhamento do bloco Criar Pranchas à malha dos filtros */
#formCadastro.control-create-form {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  column-gap: 14px !important;
  row-gap: 12px !important;
  align-items: end !important;
  width: 100% !important;
}

#formCadastro.control-create-form > label,
#formCadastro.control-create-form > .nested-fields:not(.is-hidden) > label {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
}

#formCadastro.control-create-form > .nested-fields:not(.is-hidden) {
  display: contents !important;
}

#formCadastro.control-create-form input,
#formCadastro.control-create-form select {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#formCadastro.control-create-form > .form-actions.control-create-actions {
  grid-column: 1 / -1 !important;
  display: flex !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  margin-top: 2px !important;
}

@media (max-width: 920px) {
  #formCadastro.control-create-form {
    grid-template-columns: 1fr !important;
  }
  #formCadastro.control-create-form > .nested-fields:not(.is-hidden) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}


/* MVP 0.12.61 · ordem da edição alinhada ao controle */
.control-edit-grid.control-edit-grid-ordered {
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 12px 14px;
}
.control-edit-grid.control-edit-grid-ordered .control-edit-drawings-label,
.control-edit-grid.control-edit-grid-ordered .control-edit-notes-label,
.control-edit-grid.control-edit-grid-ordered .control-edit-actions {
  grid-column: 1 / -1;
}
.control-edit-grid input[data-control-edit-code] {
  width: 100%;
  min-width: 0;
}
.control-edit-grid input[readonly] {
  background: #f7f4ec;
  border: 1px solid var(--ink);
  min-height: 34px;
  padding: 6px 10px;
  font-weight: 800;
}
@media (max-width: 1280px) {
  .control-edit-grid.control-edit-grid-ordered {
    grid-template-columns: 1fr 1fr;
  }
}


/* MVP 0.12.61 · botões de criação alinhados à malha dos campos */
#formCadastro.control-create-form > .form-actions.control-create-actions {
  grid-column: 4 / 5 !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: end !important;
  align-self: end !important;
  gap: 10px !important;
  margin-top: 0 !important;
  min-height: 34px !important;
}
#formCadastro.control-create-form > .form-actions.control-create-actions .btn {
  margin: 0 !important;
}
@media (max-width: 920px) {
  #formCadastro.control-create-form > .form-actions.control-create-actions {
    grid-column: 1 / -1 !important;
    margin-top: 2px !important;
  }
}


/* MVP 0.12.61 · alinhamento do botão fechar e redivisão do controle */
.control-edit-head {
  align-items: flex-start;
}
.control-edit-head > .btn[data-cancel-control-edit] {
  display: none !important;
}
.control-edit-grid.control-edit-grid-ordered .control-edit-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
}
#controlTable.control-table {
  min-width: 1660px;
}
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 6%; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 5.5%; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 5.5%; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 7.5%; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 7%; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 8%; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 14%; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 9.5%; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 8.5%; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 8.5%; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 6%; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 9%; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 9%; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 3%; }
#controlTable .control-drawings-copy {
  max-height: 68px;
}
#controlTable .status-select,
#controlTable .mini-input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}


/* MVP 0.12.61 · correção estrutural de layout do Controle
   Escopo: rodapé do painel de edição + redistribuição da tabela Controle.
   Não altera regras de dados, nomenclatura, filtros ou persistência. */

/* 1) Painel de edição: FECHAR e SALVAR ALTERAÇÕES no rodapé, sem stretch indevido */
.control-edit-grid.control-edit-grid-ordered .control-edit-actions,
.control-edit-actions {
  grid-column: 1 / -1 !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  margin-top: 8px !important;
}

.control-edit-actions .btn,
.control-edit-actions button,
.control-edit-actions button[data-cancel-control-edit],
.control-edit-actions button[data-save-control-edit] {
  width: auto !important;
  min-width: max-content !important;
  max-width: max-content !important;
  flex: 0 0 auto !important;
  align-self: center !important;
  justify-self: end !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

.control-edit-grid.control-edit-grid-ordered .control-edit-notes-label {
  grid-column: 1 / -1 !important;
}

.control-edit-grid.control-edit-grid-ordered .control-edit-notes-label textarea {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* 2) Controle de pranchas: largura realocada de DESENHOS para STATUS → EMITIDA */
#view-controle .table-wrap.wide {
  overflow-x: auto !important;
  overflow-y: visible !important;
}

#controlTable.control-table {
  width: 100% !important;
  min-width: 1780px !important;
  table-layout: fixed !important;
}

#controlTable.control-table th,
#controlTable.control-table td {
  box-sizing: border-box !important;
  overflow: hidden !important;
  text-overflow: clip !important;
}

/* Colunas 1 a 14: disciplina, etapa, prancha, setor, local, título, desenhos, status, responsável, revisor, revisão, prevista, emitida, ações */
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 6% !important; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 5% !important; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 5% !important; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 6% !important; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 6% !important; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 7% !important; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 13% !important; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 10% !important; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 9% !important; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 8.5% !important; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 5.5% !important; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 8% !important; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 8% !important; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 3% !important; }

/* DESENHOS compacto: reduz gap interno e impede área vazia exagerada */
#controlTable .control-drawings-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 30px !important;
  gap: 4px !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
}

#controlTable .control-drawings-copy {
  width: 100% !important;
  min-width: 0 !important;
  max-height: 64px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 0 !important;
}

#controlTable .drawing-info-list.drawings-only,
#controlTable .info-list.drawing-info-list.drawings-only {
  width: 100% !important;
  min-width: 0 !important;
  display: block !important;
}

#controlTable .info-pill.drawing-pill,
#controlTable .drawing-pill {
  display: block !important;
  max-width: 100% !important;
  width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

/* STATUS → EMITIDA: inputs/selects obedecem à largura da célula e não invadem vizinhos */
#controlTable .status-select,
#controlTable .mini-input,
#controlTable .mini-input.date {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  padding-left: 6px !important;
  padding-right: 6px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#controlTable.control-table th:nth-child(8),
#controlTable.control-table th:nth-child(9),
#controlTable.control-table th:nth-child(10),
#controlTable.control-table th:nth-child(11),
#controlTable.control-table th:nth-child(12),
#controlTable.control-table th:nth-child(13),
#controlTable.control-table td:nth-child(8),
#controlTable.control-table td:nth-child(9),
#controlTable.control-table td:nth-child(10),
#controlTable.control-table td:nth-child(11),
#controlTable.control-table td:nth-child(12),
#controlTable.control-table td:nth-child(13) {
  white-space: nowrap !important;
  overflow: hidden !important;
}

#controlTable .control-progress-mini {
  width: 30px !important;
  min-width: 30px !important;
  max-width: 30px !important;
}

#controlTable .control-progress-donut,
#controlTable .mini-donut {
  width: 30px !important;
  height: 30px !important;
}


/* MVP 0.12.61 · controle sem rolagem horizontal inferior
   Objetivo: aproximar as colunas e fazer o Controle caber na largura útil da tela. */
#view-controle .table-wrap.wide {
  overflow-x: hidden !important;
  overflow-y: visible !important;
  max-width: 100% !important;
}

#controlTable.control-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}

/* Redistribuição compacta das 14 colunas do controle */
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 5.5% !important; }  /* Disciplina */
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 4.5% !important; }  /* Etapa */
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 5% !important; }    /* Prancha */
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 5.5% !important; }  /* Setor */
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 5.5% !important; }  /* Local */
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 5.5% !important; }  /* Título */
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 20% !important; }   /* Desenhos */
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 8.5% !important; }  /* Status */
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 7.5% !important; }  /* Responsável */
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 7.5% !important; } /* Revisor */
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 5% !important; }   /* Revisão */
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 7.5% !important; } /* Prevista */
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 7.5% !important; } /* Emitida */
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 5% !important; }   /* Ações */

#controlTable.control-table th,
#controlTable.control-table td {
  padding-left: 5px !important;
  padding-right: 5px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Impedir que controles internos forcem estouro horizontal */
#controlTable .status-select,
#controlTable .mini-input,
#controlTable .mini-input.date {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 28px !important;
  min-height: 28px !important;
  padding-left: 4px !important;
  padding-right: 4px !important;
  font-size: 9px !important;
  box-sizing: border-box !important;
}

#controlTable .row-actions {
  justify-content: flex-end !important;
  gap: 4px !important;
  flex-wrap: nowrap !important;
}

#controlTable .btn.small.icon-only-btn {
  width: 26px !important;
  min-width: 26px !important;
  height: 26px !important;
  padding: 0 !important;
}

/* Desenhos continuam legíveis, mas compactos */
#controlTable .control-drawings-layout {
  grid-template-columns: minmax(0, 1fr) 28px !important;
  gap: 3px !important;
}

#controlTable .control-drawings-copy {
  max-height: 58px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

#controlTable .info-pill.drawing-pill,
#controlTable .drawing-pill {
  font-size: 9px !important;
  line-height: 1.12 !important;
}

#controlTable .control-progress-mini {
  width: 28px !important;
  min-width: 28px !important;
  max-width: 28px !important;
}

#controlTable .control-progress-donut,
#controlTable .mini-donut {
  width: 28px !important;
  height: 28px !important;
}


/* MVP 0.12.61 · cabeçalho do Checklist com código compilado */
.sheet-identity-grid {
  border: 2px solid #9df4ef;
  padding: 12px 14px 10px;
  display: grid;
  gap: 10px;
  min-width: 0;
}

.sheet-identity-item {
  display: grid;
  gap: 3px;
}

.sheet-identity-item .eyebrow {
  color: rgba(255,255,255,.72);
  margin: 0;
}

.sheet-identity-item strong {
  color: #fff;
  font-size: 14px;
  line-height: 1.1;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.sheet-identity-code h3 {
  margin: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sheet-context-line {
  color: #d9d5cc !important;
  font-size: 12px;
  line-height: 1.25;
  margin: 0 !important;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .sheet-identity-code h3 {
    white-space: normal;
    overflow-wrap: anywhere;
  }
}


/* MVP 0.12.61 · cabeçalho do Checklist: quadro integrado e sem borda ciano */
.sheet-identity-grid {
  border: 1px solid rgba(255,255,255,.18) !important;
  background: rgba(255,255,255,.04) !important;
  padding: 14px 16px 12px !important;
  min-height: 100% !important;
  align-content: start !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

.sheet-identity-code h3 {
  color: #fff !important;
  letter-spacing: -.025em !important;
}

.sheet-identity-grid .progress-bar {
  border-color: rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.07) !important;
}

.sheet-title-main {
  min-width: 0 !important;
}

.sheet-title-card {
  align-items: stretch !important;
}


/* MVP 0.12.61 · compactação do cabeçalho do Checklist */
.sheet-header {
  gap: 8px !important;
}

.sheet-title-card {
  display: grid !important;
  grid-template-columns: minmax(360px, 1.25fr) minmax(300px, .78fr) minmax(260px, .62fr) !important;
  align-items: stretch !important;
  gap: 14px !important;
  padding: 16px 22px !important;
  min-height: 0 !important;
}

.sheet-title-main,
.sheet-summary-panel {
  min-width: 0 !important;
  display: contents !important;
  flex: none !important;
}

.sheet-summary-grid {
  display: contents !important;
}

.sheet-identity-grid,
.sheet-info-panel,
.sheet-progress-panel {
  height: 100% !important;
  min-height: 150px !important;
  max-height: 170px !important;
  box-sizing: border-box !important;
  align-self: stretch !important;
}

.sheet-identity-grid {
  padding: 12px 14px !important;
  gap: 8px !important;
  align-content: start !important;
}

.sheet-identity-item {
  gap: 2px !important;
}

.sheet-identity-item strong {
  font-size: 13px !important;
}

.sheet-identity-code h3 {
  font-size: 17px !important;
  line-height: 1.05 !important;
}

.sheet-context-line {
  margin-top: 2px !important;
  font-size: 11px !important;
}

.sheet-info-panel,
.sheet-progress-panel {
  padding: 12px 14px !important;
  overflow: hidden !important;
}

.sheet-reminder {
  padding: 8px 10px !important;
}

.sheet-reminder-input,
.sheet-reminder textarea {
  min-height: 60px !important;
  height: 62px !important;
  max-height: 62px !important;
  resize: none !important;
}

.sheet-progress-panel .progress-donut-card.full,
.sheet-progress-panel .progress-donut-card {
  height: 100% !important;
  padding: 8px 10px !important;
  box-sizing: border-box !important;
}

.sheet-progress-panel .donut-chart {
  max-width: 76px !important;
}

.sheet-actions-row-outside {
  display: flex !important;
  justify-content: flex-end !important;
  margin-top: 8px !important;
  padding-right: 18px !important;
}

.sheet-actions-row-outside .btn[data-jump="controle"] {
  background: #fffefb !important;
  color: var(--ink) !important;
  border-color: var(--line-strong) !important;
}

@media (max-width: 1280px) {
  .sheet-title-card {
    grid-template-columns: 1fr !important;
  }
  .sheet-title-main,
  .sheet-summary-panel,
  .sheet-summary-grid {
    display: block !important;
  }
  .sheet-identity-grid,
  .sheet-info-panel,
  .sheet-progress-panel {
    max-height: none !important;
    min-height: 0 !important;
  }
}


/* MVP 0.12.61 · duplicidade, scroll de desenhos e respiro no controle */
#queueTable tr.has-duplicate-warning td {
  background: #f4eee4 !important;
}
#queueTable tr.has-duplicate-warning .queue-duplicate-cell input,
#queueTable tr.has-duplicate-warning .queue-mini-select {
  border-color: #8f7f66 !important;
}
#queueWarnings .warning,
.warning-list .warning {
  border-left: 3px solid #8f7f66 !important;
  background: #f7f2ea !important;
}
.queue-drawing-list {
  overflow-anchor: none !important;
}
.queue-drawing-option.is-selected {
  outline: 1px solid var(--ink) !important;
  outline-offset: -1px !important;
}
#controlTable .control-drawings-layout {
  grid-template-columns: minmax(0, 1fr) 30px !important;
  gap: 10px !important;
  align-items: center !important;
}
#controlTable .control-drawings-copy {
  padding-right: 8px !important;
  box-sizing: border-box !important;
}
#controlTable .drawing-info-list.drawings-only,
#controlTable .info-list.drawing-info-list.drawings-only {
  width: 100% !important;
  max-width: 100% !important;
  padding-right: 4px !important;
  box-sizing: border-box !important;
}
#controlTable .info-pill.drawing-pill,
#controlTable .drawing-pill {
  width: calc(100% - 8px) !important;
  max-width: calc(100% - 8px) !important;
  margin-right: 8px !important;
  box-sizing: border-box !important;
}
#controlTable .control-progress-mini {
  justify-self: end !important;
}


/* MVP 0.12.61 · refação correta: linha residual do Criar pranchas e título do Controle */
/* Manter a linha principal do summary aberta; remover apenas o traço curto da área dos botões. */
#view-controle .control-create-block[open] > summary {
  border-bottom: 1px solid var(--fold-line, var(--section-line-color-final, var(--line, #e4ded3))) !important;
}
#view-controle .control-create-actions,
#formCadastro.control-create-form > .form-actions.control-create-actions {
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  padding-top: 0 !important;
}
#view-controle .control-create-actions::before,
#view-controle .control-create-actions::after,
#formCadastro.control-create-form > .form-actions.control-create-actions::before,
#formCadastro.control-create-form > .form-actions.control-create-actions::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
}
/* Não remover divisórias estruturais da lista ou do bloco seguinte. */
#view-controle .control-create-queue {
  border-top: 0 !important;
}
#view-controle .control-create-queue-head {
  border-bottom: 1px solid var(--page-title-rule, var(--line, #e4ded3)) !important;
}
#view-controle .control-create-block {
  border-top: 1px solid var(--section-line-color-final, var(--line, #e4ded3)) !important;
  border-bottom: 0 !important;
}
/* Cabeçalho Controle de pranchas: centralizar título e subtítulo entre as linhas delimitadoras. */
#view-controle .control-existing-block {
  border-top: 1px solid var(--section-line-color-final, var(--line, #e4ded3)) !important;
  margin-top: 12px !important;
  padding-top: 0 !important;
}
#view-controle .control-existing-head {
  min-height: 58px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  border-bottom: 1px solid var(--section-line-color-final, var(--line, #e4ded3)) !important;
}
#view-controle .control-existing-head > div {
  display: grid !important;
  align-content: center !important;
  gap: 4px !important;
  min-height: 42px !important;
}
#view-controle .control-existing-head h3 {
  margin: 0 !important;
  line-height: 1.05 !important;
}
#view-controle .control-existing-head .muted {
  margin: 0 !important;
  line-height: 1.15 !important;
}


/* MVP 0.12.61 · ícone de calendário visível/acessível nos campos de data */
#controlTable input[type="date"].mini-input.date {
  -webkit-appearance: auto !important;
  appearance: auto !important;
  background-image: initial !important;
  color-scheme: light !important;
  cursor: pointer !important;
  overflow: visible !important;
  padding-left: 4px !important;
  padding-right: 20px !important;
}

#controlTable input[type="date"].mini-input.date::-webkit-calendar-picker-indicator {
  display: block !important;
  visibility: visible !important;
  opacity: .68 !important;
  width: 14px !important;
  min-width: 14px !important;
  height: 14px !important;
  margin: 0 0 0 2px !important;
  padding: 0 !important;
  cursor: pointer !important;
  filter: grayscale(1) contrast(.9) opacity(.85) !important;
}

#controlTable input[type="date"].mini-input.date:hover::-webkit-calendar-picker-indicator,
#controlTable input[type="date"].mini-input.date:focus::-webkit-calendar-picker-indicator {
  opacity: 1 !important;
  filter: grayscale(1) contrast(1.05) opacity(1) !important;
}

#controlTable input[type="date"].mini-input.date::-webkit-clear-button,
#controlTable input[type="date"].mini-input.date::-webkit-inner-spin-button {
  display: none !important;
}


/* MVP 0.12.61 · padronização dos cards do cabeçalho do Checklist e alinhamento do setor */
/* Card informativo da prancha: mesmo sistema visual dos cards laterais, sem offset/camada interna diferente. */
#view-prancha .sheet-identity-grid {
  border: 1px solid var(--sheet-hero-line, rgba(255,255,255,.20)) !important;
  background: var(--sheet-hero-panel, rgba(255,255,255,.035)) !important;
  box-shadow: none !important;
  outline: 0 !important;
  border-radius: 0 !important;
  background-clip: padding-box !important;
  transform: none !important;
  filter: none !important;
  padding: 12px 14px !important;
  height: 100% !important;
  min-height: 150px !important;
  max-height: 170px !important;
  align-self: stretch !important;
  box-sizing: border-box !important;
}
#view-prancha .sheet-identity-grid::before,
#view-prancha .sheet-identity-grid::after {
  content: none !important;
  display: none !important;
}
#view-prancha .sheet-title-main {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
#view-prancha .sheet-identity-item,
#view-prancha .sheet-identity-code,
#view-prancha .sheet-context-line {
  background: transparent !important;
  box-shadow: none !important;
}

/* Cabeçalho da seção SETOR: texto centralizado verticalmente entre a linha superior da seção e a linha inferior do cabeçalho. */
#view-prancha .type-section {
  padding-top: 0 !important;
}
#view-prancha .type-section-head {
  min-height: 44px !important;
  padding: 0 2px !important;
  margin: 0 0 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  border-bottom: 1px solid var(--minimal-rule, var(--line, #e4ded3)) !important;
}
#view-prancha .type-section-head h3,
#view-prancha .type-section-head .muted {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1.1 !important;
}
#view-prancha .type-section-head .muted {
  align-self: center !important;
  white-space: nowrap !important;
}


/* MVP 0.12.61 · padronização final das bordas dos cards do cabeçalho do Checklist */
/* O card "Evolução geral da prancha" passa a usar o mesmo padrão visual dos demais cards:
   uma única borda no container externo e nenhum contorno/fundo intermediário no card interno. */
#view-prancha .sheet-progress-panel {
  border: 1px solid var(--sheet-hero-line, rgba(255,255,255,.20)) !important;
  background: var(--sheet-hero-panel, rgba(255,255,255,.035)) !important;
  box-shadow: none !important;
  outline: 0 !important;
  border-radius: 0 !important;
  background-clip: padding-box !important;
  transform: none !important;
  filter: none !important;
  padding: 12px 14px !important;
  box-sizing: border-box !important;
}

#view-prancha .sheet-progress-panel::before,
#view-prancha .sheet-progress-panel::after,
#view-prancha .sheet-progress-panel .progress-donut-card::before,
#view-prancha .sheet-progress-panel .progress-donut-card::after {
  content: none !important;
  display: none !important;
}

#view-prancha .sheet-progress-panel .progress-donut-card.full,
#view-prancha .sheet-progress-panel .progress-donut-card {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
}

#view-prancha .sheet-progress-panel .progress-donut-card.full .donut-layout,
#view-prancha .sheet-progress-panel .progress-donut-card .donut-layout {
  height: 100% !important;
  align-items: center !important;
}


/* MVP 0.12.61 · botão dedicado "Abrir prancha" na coluna Ações */
#controlTable .sheet-link {
  pointer-events: none !important;
}

#controlTable .control-code-value {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 28px !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  color: inherit !important;
  text-decoration: none !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: default !important;
}

/* Redistribuição final para acomodar o botão de acesso sem sobrepor colunas */
#controlTable.control-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}

#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 5.3% !important; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 4.2% !important; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 4.6% !important; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 5.0% !important; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 5.2% !important; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 5.0% !important; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 17.0% !important; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 8.2% !important; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 7.3% !important; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 7.0% !important; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 4.8% !important; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 7.0% !important; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 7.0% !important; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 12.4% !important; }

#controlTable.control-table th:nth-child(14),
#controlTable.control-table td:nth-child(14) {
  text-align: right !important;
  overflow: visible !important;
}

#controlTable .control-row-actions,
#controlTable .row-actions.control-row-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 5px !important;
  flex-wrap: nowrap !important;
  width: auto !important;
  min-width: 0 !important;
}

#controlTable .open-sheet-action,
#controlTable .btn.small.open-sheet-action {
  width: auto !important;
  min-width: 106px !important;
  max-width: 128px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  border: 1px solid var(--line-strong, #cdbfAC) !important;
  border-radius: 6px !important;
  background: #fffefb !important;
  color: var(--ink, #0a0a0a) !important;
  font-size: 8.2px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  letter-spacing: .04em !important;
  white-space: nowrap !important;
  text-transform: uppercase !important;
}

#controlTable .open-sheet-action:hover,
#controlTable .open-sheet-action:focus-visible {
  border-color: var(--ink, #0a0a0a) !important;
  background: var(--minimal-hover, #f5f1e8) !important;
  outline: none !important;
}

#controlTable .open-sheet-action-icon {
  font-size: 11px !important;
  line-height: 1 !important;
  transform: translateY(-.5px) !important;
}

#controlTable .control-row-actions .icon-only-btn,
#controlTable .control-row-actions .btn.small.icon-only-btn {
  width: 24px !important;
  min-width: 24px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
}


/* MVP 0.12.61 · relação visual entre status do checklist e evolução do desenho */
:root {
  --check-ok: #2f7d4f;
  --check-ajustar: #d48612;
  --check-ajustar-soft: rgba(212, 134, 18, .075);
  --check-ajustar-line: rgba(212, 134, 18, .55);
  --check-pendente: #8f877b;
  --check-na: #5f5850;
}

.progress-donut-card .donut-legend-row {
  transition: color .12s ease, background .12s ease, border-color .12s ease;
}

.progress-donut-card .donut-legend-row.status-ok span:nth-child(2),
.progress-donut-card .donut-legend-row.status-ok strong {
  color: var(--check-ok) !important;
}

.progress-donut-card .donut-legend-row.status-ajustar {
  color: var(--check-ajustar) !important;
}

.progress-donut-card .donut-legend-row.status-ajustar span:nth-child(2),
.progress-donut-card .donut-legend-row.status-ajustar strong,
.progress-donut-card .donut-legend-row.status-ajustar em {
  color: var(--check-ajustar) !important;
  font-weight: 900 !important;
}

.progress-donut-card .donut-legend-row.status-pendente span:nth-child(2),
.progress-donut-card .donut-legend-row.status-na span:nth-child(2) {
  color: var(--muted, #6f675d);
}

.check-table .check-status-select {
  font-weight: 850 !important;
  text-transform: uppercase !important;
  transition: color .12s ease, border-color .12s ease, background .12s ease;
}

.check-table .check-status-select.status-ok {
  color: var(--check-ok) !important;
  border-color: rgba(47,125,79,.28) !important;
  background: rgba(47,125,79,.035) !important;
}

.check-table .check-status-select.status-ajustar {
  color: var(--check-ajustar) !important;
  border-color: var(--check-ajustar-line) !important;
  background: var(--check-ajustar-soft) !important;
  font-weight: 950 !important;
}

.check-table .check-status-select.status-pendente {
  color: var(--ink, #0a0a0a) !important;
  border-color: var(--line, #e4ded3) !important;
  background: transparent !important;
}

.check-table .check-status-select.status-na {
  color: var(--check-na) !important;
  border-color: rgba(95,88,80,.22) !important;
  background: rgba(95,88,80,.025) !important;
}

.check-table .check-item-row.status-row-ajustar td {
  background:
    linear-gradient(90deg, rgba(212,134,18,.16), rgba(212,134,18,.045) 34%, transparent 82%) !important;
}

.check-table .check-item-row.status-row-ajustar td:first-child {
  border-left: 3px solid var(--check-ajustar) !important;
}

.check-table .check-item-row.status-row-ok .check-status-select {
  color: var(--check-ok) !important;
}

.check-table .check-item-row.status-row-ajustar .check-status-select {
  box-shadow: inset 0 0 0 1px rgba(212,134,18,.18) !important;
}


/* MVP 0.12.61 · refino visual dos status e padronização cromática Controle/Checklist */
/* Status no checklist: destaque somente pela tipografia, sem massa gráfica de fundo. */
.check-table .check-item-row.status-row-ajustar td,
.check-table .check-item-row.status-row-ok td,
.check-table .check-item-row.status-row-pendente td,
.check-table .check-item-row.status-row-na td {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.check-table .check-item-row.status-row-ajustar td:first-child,
.check-table .check-item-row.status-row-ok td:first-child,
.check-table .check-item-row.status-row-pendente td:first-child,
.check-table .check-item-row.status-row-na td:first-child {
  border-left: 0 !important;
}

.check-table .check-status-select,
.check-table .check-status-select.status-ok,
.check-table .check-status-select.status-ajustar,
.check-table .check-status-select.status-pendente,
.check-table .check-status-select.status-na {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border-color: var(--line, #e4ded3) !important;
}

.check-table .check-status-select.status-ok {
  color: var(--check-ok) !important;
}

.check-table .check-status-select.status-ajustar {
  color: var(--check-ajustar) !important;
  font-weight: 950 !important;
}

.check-table .check-status-select.status-pendente {
  color: var(--ink, #0a0a0a) !important;
}

.check-table .check-status-select.status-na {
  color: var(--check-na) !important;
}

/* Mini-donut do Controle usa a mesma paleta do donut/legenda do Checklist. */
#controlTable .control-progress-donut {
  background: conic-gradient(var(--donut-segments)) !important;
}

#controlTable .control-progress-donut span {
  color: var(--ink, #0a0a0a) !important;
}


/* MVP 0.12.61 · PENDENTE branco nos gráficos/donuts */
/* Mantém a tipografia de PENDENTE neutra, mas usa branco no segmento/swatch do gráfico. */
.progress-donut-card .donut-legend-row.status-pendente .donut-swatch {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.18) !important;
  box-sizing: border-box !important;
}

.progress-donut-card.full .donut-legend-row.status-pendente .donut-swatch {
  border-color: rgba(255,255,255,.42) !important;
}

#controlTable .control-progress-donut {
  background: conic-gradient(var(--donut-segments)) !important;
}


/* MVP 0.12.61 · status automático e observação no Controle */
#controlTable.control-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}

/* Colunas 1 a 15: disciplina, etapa, prancha, setor, local, título, desenhos, status,
   responsável, revisor, revisão, prevista, emitida, observação, ações */
#controlTable.control-table th:nth-child(1), #controlTable.control-table td:nth-child(1) { width: 4.2% !important; }
#controlTable.control-table th:nth-child(2), #controlTable.control-table td:nth-child(2) { width: 3.5% !important; }
#controlTable.control-table th:nth-child(3), #controlTable.control-table td:nth-child(3) { width: 4.0% !important; }
#controlTable.control-table th:nth-child(4), #controlTable.control-table td:nth-child(4) { width: 4.3% !important; }
#controlTable.control-table th:nth-child(5), #controlTable.control-table td:nth-child(5) { width: 4.4% !important; }
#controlTable.control-table th:nth-child(6), #controlTable.control-table td:nth-child(6) { width: 4.2% !important; }
#controlTable.control-table th:nth-child(7), #controlTable.control-table td:nth-child(7) { width: 14.0% !important; }
#controlTable.control-table th:nth-child(8), #controlTable.control-table td:nth-child(8) { width: 8.0% !important; }
#controlTable.control-table th:nth-child(9), #controlTable.control-table td:nth-child(9) { width: 6.8% !important; }
#controlTable.control-table th:nth-child(10), #controlTable.control-table td:nth-child(10) { width: 6.3% !important; }
#controlTable.control-table th:nth-child(11), #controlTable.control-table td:nth-child(11) { width: 4.4% !important; }
#controlTable.control-table th:nth-child(12), #controlTable.control-table td:nth-child(12) { width: 6.2% !important; }
#controlTable.control-table th:nth-child(13), #controlTable.control-table td:nth-child(13) { width: 6.2% !important; }
#controlTable.control-table th:nth-child(14), #controlTable.control-table td:nth-child(14) { width: 8.4% !important; }
#controlTable.control-table th:nth-child(15), #controlTable.control-table td:nth-child(15) { width: 15.1% !important; }

#controlTable.control-table th:nth-child(15),
#controlTable.control-table td:nth-child(15) {
  text-align: right !important;
  overflow: visible !important;
}

#controlTable.control-table th:nth-child(14),
#controlTable.control-table td:nth-child(14) {
  overflow: hidden !important;
}

#controlTable .control-note-input {
  width: 100% !important;
  min-width: 0 !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 7px !important;
  box-sizing: border-box !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--ink, #0a0a0a) !important;
  font-size: 9px !important;
  font-weight: 750 !important;
  letter-spacing: .02em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
}

#controlTable .control-note-input:hover,
#controlTable .control-note-input:focus {
  border-color: var(--line, #d9cebf) !important;
  background: #fffefb !important;
  outline: none !important;
}


/* MVP 0.12.61 · Redefinir desenho e status da prancha no card de evolução */
.drawing-card .reset-drawing-btn {
  margin-top: 14px !important;
  width: auto !important;
  min-width: 0 !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid var(--line-strong, #cdbfac) !important;
  background: transparent !important;
  color: var(--ink, #0a0a0a) !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
}

.drawing-card .reset-drawing-btn:hover,
.drawing-card .reset-drawing-btn:focus-visible {
  background: var(--minimal-hover, #f5f1e8) !important;
  border-color: var(--ink, #0a0a0a) !important;
  outline: none !important;
}

.progress-donut-card.full .sheet-status-callout {
  margin: 0 0 10px 0 !important;
  padding: 0 0 8px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.16) !important;
}

.sheet-status-callout span {
  display: block !important;
  margin-bottom: 3px !important;
  color: var(--muted, #8f877b) !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.sheet-status-callout strong {
  display: block !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
  font-weight: 950 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  color: var(--ink-inverse, #ffffff) !important;
}

.sheet-status-callout.status-ok strong {
  color: var(--check-ok, #2f7d4f) !important;
}

.sheet-status-callout.status-ajustar strong {
  color: var(--check-ajustar, #d48612) !important;
}

.sheet-status-callout.status-na strong {
  color: #aaa39a !important;
}

.sheet-status-callout.status-progress strong {
  color: #f2ede5 !important;
}


/* MVP 0.12.61 · correções pontuais de edição, reset do desenho e status automático */
#controlTable .control-edit-actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
}

#controlTable .control-edit-actions .btn,
#controlTable .control-edit-actions .btn.small,
#controlTable .control-edit-actions [data-cancel-control-edit],
#controlTable .control-edit-actions [data-save-control-edit] {
  width: auto !important;
  min-width: max-content !important;
  max-width: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  flex: 0 0 auto !important;
  padding-left: 14px !important;
  padding-right: 14px !important;
  box-sizing: border-box !important;
}

#controlTable .control-edit-actions [data-cancel-control-edit] {
  min-height: 34px !important;
  line-height: 1 !important;
}

.drawing-card .drawing-card-copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

.drawing-card .drawing-card-copy .chip-list {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.drawing-card .reset-drawing-btn {
  align-self: flex-start !important;
  margin-left: 0 !important;
  margin-top: 14px !important;
  margin-bottom: 0 !important;
  width: auto !important;
  min-width: max-content !important;
  max-width: none !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}


/* MVP 0.12.61 · alinhamento dos cabeçalhos Observação/Ações e proteção da coluna Disciplina */
#controlTable.control-table th:nth-child(1),
#controlTable.control-table td:nth-child(1) {
  width: 5.2% !important;
  min-width: 58px !important;
  text-align: left !important;
  overflow: visible !important;
  white-space: nowrap !important;
}

#controlTable.control-table th:nth-child(2),
#controlTable.control-table td:nth-child(2) {
  width: 3.2% !important;
}

#controlTable.control-table th:nth-child(7),
#controlTable.control-table td:nth-child(7) {
  width: 13.3% !important;
}

#controlTable.control-table th:nth-child(14),
#controlTable.control-table td:nth-child(14) {
  width: 8.5% !important;
  text-align: left !important;
}

#controlTable.control-table th:nth-child(15),
#controlTable.control-table td:nth-child(15) {
  width: 14.8% !important;
  text-align: left !important;
}

#controlTable .control-row-actions,
#controlTable .row-actions.control-row-actions {
  justify-content: flex-start !important;
  text-align: left !important;
}

#controlTable .control-note-input {
  text-align: left !important;
}


/* MVP 0.12.61 · Status automático sem select, histórico e cancelamento */
#controlTable .control-auto-status {
  display: inline-block !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: .025em !important;
  text-transform: uppercase !important;
  color: var(--ink, #0a0a0a) !important;
}

#controlTable .control-auto-status.status-ok {
  color: var(--check-ok, #2f7d4f) !important;
}

#controlTable .control-auto-status.status-ajustar {
  color: var(--check-ajustar, #d48612) !important;
}

#controlTable .control-auto-status.status-na {
  color: #8f1f1f !important;
}

#controlTable tr.is-cancelled > td:not(:last-child),
#controlTable tr.is-cancelled > td:not(:last-child) input,
#controlTable tr.is-cancelled > td:not(:last-child) select,
#controlTable tr.is-cancelled > td:not(:last-child) span,
#controlTable tr.is-cancelled > td:not(:last-child) strong,
#controlTable tr.is-cancelled > td:not(:last-child) .control-drawings-copy,
#controlTable tr.is-cancelled > td:not(:last-child) .drawing-pill {
  color: #9b1c1c !important;
  border-color: rgba(155,28,28,.28) !important;
}

#controlTable tr.is-cancelled > td:not(:last-child) .control-progress-donut {
  opacity: .7 !important;
}

#controlTable .control-row-actions {
  gap: 4px !important;
}

#controlTable .control-row-actions .icon-only-btn {
  flex: 0 0 auto !important;
}

#controlTable .control-row-actions [data-cancel-control] {
  color: #9b1c1c !important;
  border-color: rgba(155,28,28,.38) !important;
}

#controlTable .control-row-actions [data-cancel-control]:hover {
  background: rgba(155,28,28,.055) !important;
}

#controlTable .control-row-actions [data-history-control] {
  border-color: var(--line-strong, #cdbfac) !important;
}

.control-history-panel {
  padding-bottom: 22px !important;
}

.control-history-grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 18px 22px !important;
  margin-top: 18px !important;
}

.control-history-field {
  min-width: 0 !important;
  border-top: 1px solid var(--line, #e3d8c8) !important;
  padding-top: 8px !important;
}

.control-history-field span {
  display: block !important;
  margin-bottom: 8px !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: var(--muted, #6c6359) !important;
}

.control-history-field strong {
  display: block !important;
  min-height: 16px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  letter-spacing: .02em !important;
  text-transform: uppercase !important;
  color: var(--ink, #0a0a0a) !important;
}

.control-bulk-actions [data-cancel-selected-controls] {
  border-color: rgba(155,28,28,.36) !important;
  color: #9b1c1c !important;
}


/* MVP 0.12.61 · histórico de emissão e redefinição de status */
#controlTable .reset-status-btn {
  color: #9b1c1c !important;
  border-color: rgba(155,28,28,.36) !important;
}

#controlTable .reset-status-btn:hover,
#controlTable .reset-status-btn:focus-visible {
  background: rgba(155,28,28,.055) !important;
}

.control-history-mini {
  width: min(520px, 100%) !important;
  margin-top: 16px !important;
}

.control-history-mini table {
  width: 100% !important;
  border-collapse: collapse !important;
  table-layout: fixed !important;
}

.control-history-mini th,
.control-history-mini td {
  height: 34px !important;
  border-top: 1px solid var(--line, #e3d8c8) !important;
  border-bottom: 1px solid var(--line, #e3d8c8) !important;
  text-align: left !important;
  padding: 0 10px !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  letter-spacing: .025em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.control-history-mini th {
  font-size: 9px !important;
  font-weight: 950 !important;
}


/* MVP 0.12.61 · bloqueio de emissão sem prevista e ações no histórico */
.control-history-mini th:nth-child(4),
.control-history-mini td:nth-child(4) {
  width: 88px !important;
}

.history-row-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 6px !important;
}

.history-row-actions .icon-only-btn {
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  min-height: 28px !important;
}


/* MVP 0.12.61 · histórico da emissão com código completo */
.control-history-panel .control-edit-head .muted {
  max-width: 920px !important;
  line-height: 1.35 !important;
}


/* MVP 0.12.61 · prancha cancelada: texto vermelho sem borda vermelha */
#controlTable tr.is-cancelled > td:not(:last-child),
#controlTable tr.is-cancelled > td:not(:last-child) span,
#controlTable tr.is-cancelled > td:not(:last-child) strong,
#controlTable tr.is-cancelled > td:not(:last-child) .control-drawings-copy,
#controlTable tr.is-cancelled > td:not(:last-child) .drawing-pill,
#controlTable tr.is-cancelled > td:not(:last-child) .control-auto-status {
  color: #9b1c1c !important;
}

#controlTable tr.is-cancelled > td:not(:last-child) input,
#controlTable tr.is-cancelled > td:not(:last-child) select,
#controlTable tr.is-cancelled > td:not(:last-child) textarea,
#controlTable tr.is-cancelled > td:not(:last-child) .mini-input,
#controlTable tr.is-cancelled > td:not(:last-child) .status-select,
#controlTable tr.is-cancelled > td:not(:last-child) .control-note-input {
  color: #9b1c1c !important;
  border-color: var(--line-strong, #cdbfac) !important;
  box-shadow: none !important;
  outline-color: var(--line-strong, #cdbfac) !important;
}

#controlTable tr.is-cancelled > td:not(:last-child) input:focus,
#controlTable tr.is-cancelled > td:not(:last-child) select:focus,
#controlTable tr.is-cancelled > td:not(:last-child) textarea:focus,
#controlTable tr.is-cancelled > td:not(:last-child) .mini-input:focus,
#controlTable tr.is-cancelled > td:not(:last-child) .status-select:focus,
#controlTable tr.is-cancelled > td:not(:last-child) .control-note-input:focus {
  border-color: var(--ink, #0a0a0a) !important;
  outline: none !important;
  box-shadow: none !important;
}


/* MVP 0.12.61 · canceladas sem contorno nos valores editáveis */
#controlTable tr.is-cancelled > td:not(:last-child) input,
#controlTable tr.is-cancelled > td:not(:last-child) select,
#controlTable tr.is-cancelled > td:not(:last-child) textarea,
#controlTable tr.is-cancelled > td:not(:last-child) .mini-input,
#controlTable tr.is-cancelled > td:not(:last-child) .status-select,
#controlTable tr.is-cancelled > td:not(:last-child) .control-note-input {
  color: #9b1c1c !important;
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

#controlTable tr.is-cancelled > td:not(:last-child) input:hover,
#controlTable tr.is-cancelled > td:not(:last-child) select:hover,
#controlTable tr.is-cancelled > td:not(:last-child) textarea:hover,
#controlTable tr.is-cancelled > td:not(:last-child) .mini-input:hover,
#controlTable tr.is-cancelled > td:not(:last-child) .status-select:hover,
#controlTable tr.is-cancelled > td:not(:last-child) .control-note-input:hover {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

#controlTable tr.is-cancelled > td:not(:last-child) input:focus,
#controlTable tr.is-cancelled > td:not(:last-child) select:focus,
#controlTable tr.is-cancelled > td:not(:last-child) textarea:focus,
#controlTable tr.is-cancelled > td:not(:last-child) .mini-input:focus,
#controlTable tr.is-cancelled > td:not(:last-child) .status-select:focus,
#controlTable tr.is-cancelled > td:not(:last-child) .control-note-input:focus {
  border-color: var(--line-strong, #cdbfac) !important;
  background: #fff !important;
  box-shadow: none !important;
  outline: none !important;
}


/* MVP 0.12.61 · seletor de desenho ativo no Checklist */
.drawing-switcher {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 12px 4px;
  margin: 8px 0 14px;
}

.drawing-switcher-label {
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  padding-top: 9px;
}

.drawing-switcher-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.drawing-switcher-btn {
  appearance: none;
  border: 1px solid var(--line-strong);
  background: #fff;
  color: var(--ink);
  min-height: 34px;
  padding: 8px 10px;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .02em;
}

.drawing-switcher-btn em {
  font-style: normal;
  font-size: 9px;
  color: var(--muted);
  border-left: 1px solid var(--line);
  padding-left: 8px;
}

.drawing-switcher-btn:hover,
.drawing-switcher-btn:focus-visible {
  border-color: var(--ink);
  outline: none;
}

.drawing-switcher-btn.is-active {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.drawing-switcher-btn.is-active em {
  color: #fff;
  border-left-color: rgba(255,255,255,.35);
}

.drawings-grid.is-single-active {
  grid-template-columns: minmax(0, 1fr);
}

.drawing-card[hidden] {
  display: none !important;
}

@media (max-width: 760px) {
  .drawing-switcher {
    grid-template-columns: 1fr;
  }
}


/* MVP 0.12.61 · correção do clique no seletor de desenho ativo */
.drawing-switcher-btn,
.drawing-switcher-btn * {
  pointer-events: auto;
}


/* MVP 0.12.61 · manter padrão de afastamento do desenho ativo */
.drawings-grid.is-single-active {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: start !important;
}

.drawings-grid.is-single-active > .drawing-card.is-active {
  max-width: none !important;
  width: auto !important;
}

.drawings-grid.is-single-active > .drawing-card.is-active .drawing-card-top {
  grid-template-columns: minmax(0, 1.05fr) minmax(260px, .95fr) !important;
  column-gap: 28px !important;
  align-items: start !important;
}

@media (max-width: 1180px) {
  .drawings-grid.is-single-active {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .drawings-grid.is-single-active > .drawing-card.is-active .drawing-card-top {
    grid-template-columns: minmax(0, 1fr) !important;
    row-gap: 16px !important;
  }
}


/* MVP 0.12.61 · remoção da linha excedente acima da engrenagem */
.nav-admin-group {
  display: grid;
  gap: 0;
  justify-items: start;
  width: 100%;
  margin: 12px 0 10px;
  border-top: 0;
  border-bottom: 1px solid var(--line-strong, #d4c8b9);
}

.nav-config-toggle {
  width: 100%;
  min-height: 38px;
  border: 0;
  background: transparent;
  color: var(--ink, #0a0a0a);
  display: inline-flex;
  align-items: center;
  padding: 0 0 0 4px;
  cursor: pointer;
  font: inherit;
}

.nav-config-toggle:hover,
.nav-config-toggle:focus-visible {
  background: transparent;
  outline: none;
  opacity: .78;
}

.nav-config-toggle:focus-visible .nav-config-gear {
  outline: 1px solid var(--line-strong, #cdbfac);
  outline-offset: 3px;
}

.nav-config-gear {
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  font-size: 18px;
  line-height: 1;
  border: 0;
}

.nav-config-label,
.nav-config-arrow {
  display: none !important;
}

.nav-submenu {
  display: grid;
  gap: 0;
  width: 100%;
  padding: 0 0 2px;
}

.nav-submenu[hidden] {
  display: none !important;
}

.nav-subitem {
  min-height: 32px !important;
  font-size: 10px !important;
}

.nav-subitem.active {
  background: transparent !important;
  color: var(--ink, #0a0a0a) !important;
  box-shadow: inset 3px 0 0 var(--ink, #0a0a0a);
  padding-left: 8px !important;
}

@media (max-width: 760px) {
  .nav-admin-group {
    margin-bottom: 6px;
  }

  .nav-submenu {
    padding-left: 10px;
  }
}


/* MVP 0.12.61 · seta preenchida no acesso ao submenu lateral */
.nav-config-gear {
  font-size: 17px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  transform: none !important;
  font-family: Arial, Helvetica, sans-serif !important;
}

.nav-admin-group.is-open .nav-config-gear {
  transform: none !important;
}


/* MVP 0.12.61 · remoção da linha superior da navegação e subida do menu lateral */
.nav {
  border-top: 0 !important;
}

.sidebar {
  gap: 18px !important;
}

.nav-admin-group {
  margin: 2px 0 8px !important;
}

.nav-config-toggle {
  min-height: 28px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}


/* MVP 0.12.61 · remover realce/borda indevida da primeira prancha no Controle */
#controlTable tbody tr:first-child,
#controlTable tbody tr:first-child td {
  outline: none !important;
  box-shadow: none !important;
}

#controlTable tbody tr:first-child input:not(:focus),
#controlTable tbody tr:first-child select:not(:focus),
#controlTable tbody tr:first-child textarea:not(:focus),
#controlTable tbody tr:first-child .mini-input:not(:focus),
#controlTable tbody tr:first-child .control-note-input:not(:focus) {
  box-shadow: none !important;
}


/* MVP 0.12.61 · empreendimento como contexto operacional */
.enterprise-admin-group {
  margin-top: 0 !important;
}

.enterprise-toggle {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 14px;
  align-items: center;
  column-gap: 6px;
  min-height: 42px !important;
  text-align: left;
}

.enterprise-current-label {
  min-width: 0;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink, #0a0a0a);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.enterprise-admin-submenu {
  gap: 0 !important;
  padding: 4px 0 7px !important;
}

.enterprise-options {
  display: grid;
  gap: 1px;
  max-height: 220px;
  overflow: auto;
  padding: 0 0 4px;
}

.enterprise-option,
.enterprise-manage-action {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line, #ded9cf);
  background: transparent;
  color: var(--ink, #0a0a0a);
  text-align: left;
  padding: 8px 0;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.enterprise-option span,
.enterprise-option small {
  display: block;
}

.enterprise-option small {
  margin-top: 2px;
  color: var(--muted, #6f6a61);
  font-size: 9px;
  font-weight: 600;
}

.enterprise-option.is-active span {
  color: var(--ink, #0a0a0a);
  font-weight: 900;
}

.enterprise-option:hover,
.enterprise-manage-action:hover {
  font-weight: 900;
}

.nav-submenu-separator {
  height: 1px;
  background: var(--line-strong, #d4c8b9);
  margin: 5px 0 4px;
}

.params-enterprise-table .enterprise-code-input {
  min-width: 118px;
}


/* MVP 0.12.61 · seletor de empreendimento isolado e menu administrativo separado */
.enterprise-selector {
  display: grid;
  gap: 0;
  width: 100%;
  margin: 0 0 6px;
  border-bottom: 1px solid var(--line-strong, #d4c8b9);
}

.enterprise-toggle {
  width: 100%;
  min-height: 48px;
  border: 0;
  background: transparent;
  color: var(--ink, #0a0a0a);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 14px;
  align-items: center;
  column-gap: 8px;
  text-align: left;
  padding: 4px 0;
  cursor: pointer;
}

.enterprise-toggle:hover,
.enterprise-toggle:focus-visible {
  background: transparent;
  outline: none;
  opacity: .82;
}

.enterprise-current-text {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.enterprise-current-label {
  color: var(--ink, #0a0a0a) !important;
  font-size: 12px !important;
  font-weight: 650 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

.enterprise-current-code {
  min-width: 0;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted, #6f6a61);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.enterprise-arrow {
  justify-self: end;
}

.enterprise-menu {
  display: grid;
  width: 100%;
  padding: 2px 0 8px;
}

.enterprise-menu[hidden] {
  display: none !important;
}

.enterprise-options {
  max-height: 224px;
  overflow: auto;
}

.enterprise-option {
  padding: 8px 0 !important;
  color: var(--ink, #0a0a0a) !important;
}

.enterprise-option.is-active {
  background: rgba(0,0,0,.035);
  box-shadow: inset 3px 0 0 var(--ink, #0a0a0a);
  padding-left: 7px !important;
}

.enterprise-option.is-active span {
  color: var(--ink, #0a0a0a) !important;
  font-weight: 900 !important;
}

.enterprise-manage-action,
.nav-submenu-separator {
  display: none !important;
}

.nav-admin-group {
  margin: 0 0 8px !important;
}


/* MVP 0.12.61 · edição de parâmetros sem salto de cursor */
#view-parametros .params-table tr.is-param-editing .param-input {
  text-align: left !important;
  overflow: hidden;
  text-overflow: clip;
}


/* MVP 0.12.62 · reposicionamento da seta do menu administrativo na sidebar */
.nav-admin-group {
  justify-items: stretch !important;
}

.nav-config-toggle {
  width: 100% !important;
  justify-content: flex-end !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.nav-config-icon-only .nav-config-gear {
  margin-left: auto !important;
}


/* MVP 0.12.63 · menu administrativo reposicionado para a parte inferior da sidebar */
.enterprise-selector {
  margin: 0 !important;
}

.nav-admin-group-bottom {
  margin: 0 !important;
  border-bottom: 0 !important;
}

.nav-admin-group-bottom .nav-config-toggle {
  border-bottom: 1px solid var(--line, #ded7cb);
}

.nav-admin-group-bottom.is-open .nav-config-toggle {
  border-bottom-color: var(--ink, #0a0a0a);
}


/* MVP 0.12.71 · menu administrativo com engrenagem e sem linha lateral */
.nav-admin-group-bottom {
  border-top: 0 !important;
  border-bottom: 0 !important;
  margin-top: 2px !important;
}

.nav-admin-group-bottom .nav-config-toggle {
  border-top: 0 !important;
  border-bottom: 0 !important;
  min-height: 24px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.nav-config-icon-only .nav-config-gear {
  font-size: 16px !important;
  font-weight: 700 !important;
  width: 18px !important;
  height: 18px !important;
}


/* MVP 0.12.71 · rolagem controlada da lista de empreendimentos */
.enterprise-options {
  overscroll-behavior: contain !important;
  scroll-behavior: auto !important;
  scrollbar-width: thin;
}


/* MVP 0.12.71 · edição de itens do checklist por empreendimento */
.drawing-card-actions-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.enterprise-item-editor {
  margin: 14px 0 16px;
  border: 1px solid var(--line-strong);
  background: rgba(255,255,255,.45);
  padding: 14px;
}

.enterprise-item-editor-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.enterprise-item-editor h5 {
  margin: 0 0 5px;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.enterprise-item-editor p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.enterprise-item-table-wrap {
  max-height: 420px;
}

.enterprise-item-row.inactive td {
  color: var(--muted);
  background: rgba(0,0,0,.025);
}

.enterprise-item-row .info-pill.warn {
  color: #9f6b00;
  border-color: #d8b56a;
}

.enterprise-item-row .info-pill.ok {
  color: #1d6b42;
  border-color: #9fc6ae;
}

.enterprise-item-app-buttons {
  justify-content: flex-start;
}

@media (max-width: 900px) {
  .enterprise-item-editor-head {
    display: grid;
  }
}


/* MVP 0.12.71 · padronização dos botões do desenho no Checklist */
.drawing-card .drawing-card-actions-line {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  margin-top: 10px !important;
  margin-bottom: 0 !important;
  min-height: 30px !important;
}

.drawing-card .drawing-card-actions-line .reset-drawing-btn,
.drawing-card .drawing-card-actions-line [data-edit-enterprise-items] {
  margin: 0 !important;
  align-self: center !important;
  width: auto !important;
  min-width: 132px !important;
  max-width: none !important;
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid var(--line-strong, #cdbfac) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--ink, #0a0a0a) !important;
  box-shadow: none !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.drawing-card .drawing-card-actions-line .reset-drawing-btn:hover,
.drawing-card .drawing-card-actions-line .reset-drawing-btn:focus-visible,
.drawing-card .drawing-card-actions-line [data-edit-enterprise-items]:hover,
.drawing-card .drawing-card-actions-line [data-edit-enterprise-items]:focus-visible {
  background: var(--minimal-hover, #f5f1e8) !important;
  border-color: var(--ink, #0a0a0a) !important;
  color: var(--ink, #0a0a0a) !important;
  outline: none !important;
  transform: none !important;
  box-shadow: none !important;
}

@media (max-width: 760px) {
  .drawing-card .drawing-card-actions-line .reset-drawing-btn,
  .drawing-card .drawing-card-actions-line [data-edit-enterprise-items] {
    min-width: 0 !important;
    flex: 1 1 140px !important;
  }
}
