/* V40 | Design system de apresentação. Não modifica regras de negócio. */
:root {
  --ui-radius:14px;
  --ui-radius-sm:10px;
  --ui-focus:#FE5F4B;
  --ui-shadow:0 3px 10px rgba(13,32,49,.035),0 14px 34px rgba(13,32,49,.065);
  --ui-shadow-hover:0 8px 22px rgba(13,32,49,.07),0 20px 48px rgba(13,32,49,.09);
}
html {scroll-behavior:smooth}
body {font-size:14px;letter-spacing:-.005em}
button, input, select, textarea {font-family:inherit}
button {touch-action:manipulation}
button:disabled {opacity:.56;cursor:not-allowed;transform:none!important}
:where(button,input,select,textarea):focus-visible {outline:3px solid var(--ui-focus);outline-offset:2px}
:where(.panel,.kpi,.project-card,.modal,.project-modal,.floor-detail-card) {
  border-radius:var(--ui-radius);
  box-shadow:var(--ui-shadow);
  background-image:linear-gradient(135deg,rgba(255,255,255,.12),transparent 24%,transparent 78%,rgba(255,255,255,.055));
}
/* Navegação e marca */
.app-header,.project-home-head {background:linear-gradient(118deg,#0c2538 0%,#143b5c 58%,#1b5273 100%);box-shadow:0 4px 20px rgba(5,22,36,.12)}
.app-header {padding:16px clamp(16px,2.5vw,36px)}
.brand {gap:12px;min-width:0}
.brand-mark {border-radius:12px;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.19);box-shadow:inset 0 1px rgba(255,255,255,.13)}
.brand h1 {font-size:19px;font-weight:800;letter-spacing:-.035em;line-height:1.2}
.brand p {font-size:11px;line-height:1.45;max-width:550px;color:#d2e1eb}
.header-actions {gap:7px}
.header-actions .btn {min-height:38px}
.btn,.mini-btn,.project-primary,.project-secondary,.project-danger,.floor-tab {font-weight:700;border-radius:var(--ui-radius-sm);letter-spacing:0;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s}
.btn.secondary {border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.075)}
.btn.secondary:hover {background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.46)}
.btn.blue,.mini-btn.save {background:#1f6ea9;color:white;border-color:#1f6ea9}
.btn.blue:hover,.mini-btn.save:hover {background:#185b8e;border-color:#185b8e}
/* Conteúdo principal */
.main {margin-top:24px;padding-inline:clamp(14px,2.1vw,30px)}
.topbar {gap:14px;margin-bottom:18px;align-items:end}
.floor-tabs label {font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.filter-line {gap:8px}
.filter-line input {flex:1 1 220px}
.filter-line select,.filter-line input,.floor-tabs select {min-height:42px;border:1px solid var(--line);border-radius:var(--ui-radius-sm);padding:9px 12px;background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.02)}
.summary-grid {gap:14px;margin-bottom:20px}
.kpi {padding:18px 19px;min-width:0;border:1px solid var(--line)}
.kpi .label {font-size:10px;letter-spacing:.085em;line-height:1.5}
.kpi .value {font-size:30px;font-weight:800;letter-spacing:-.045em;margin-top:9px}
.kpi .sub {font-size:11px;margin-top:9px}
.board {gap:18px}
.panel {min-width:0;overflow:hidden;border:1px solid var(--line)}
.panel-head {padding:20px 22px 17px;gap:14px}
.panel-head h2 {font-size:16px;font-weight:800;letter-spacing:-.025em}
.panel-head p {font-size:12px;line-height:1.55;margin-top:7px}
.badge {padding:6px 10px;font-size:10px;letter-spacing:.015em}
.plan-tools {padding:12px 20px;gap:12px}
.plan-wrap {padding:16px;background:color-mix(in srgb,var(--bg) 85%,var(--surface))}
.plan-canvas img {border-radius:6px}
.map-note,.map-key {font-size:12px;line-height:1.55}
.scope-alert {margin:16px 18px 0;padding:12px 14px;line-height:1.55}
.env-select-wrap {padding:16px 18px}
.env-context {padding:17px 18px 10px}
.list-actions {padding:0 18px 14px;gap:10px}
.items-list {padding:0 18px 22px;gap:11px}
.item-card {border-radius:12px;padding:15px;border-left-width:4px;transition:border-color .16s,box-shadow .16s}
.item-card:hover {box-shadow:0 4px 15px rgba(13,32,49,.075)}
.item-title {font-size:13px;line-height:1.4}
.item-sub {line-height:1.5}
.item-badges {gap:6px}
.tag {padding:4px 7px;border-radius:6px;font-size:10px}
.item-footer {gap:8px}
/* Formulários e janelas */
.modal-backdrop,.project-modal-bg {backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.modal,.project-modal {border:1px solid var(--line);box-shadow:0 28px 90px rgba(6,18,30,.24)}
.modal-head,.project-modal-head {padding:19px 23px;gap:12px}
.modal-head h2,.project-modal-head h2 {font-size:18px;letter-spacing:-.035em;font-weight:800}
.modal-body,.project-modal-body {padding:22px 23px}
.modal-foot,.project-modal-foot {padding:15px 23px;gap:9px}
.field label,.project-field label,.env-select-wrap label {font-size:11px;font-weight:800;letter-spacing:.04em;line-height:1.4}
.field input,.field select,.field textarea,.project-field input,.project-field select,.project-field textarea,.env-select-wrap select {border-radius:var(--ui-radius-sm);min-height:42px;padding:10px 12px;font-size:13px;line-height:1.45}
.field textarea,.project-field textarea {min-height:80px}
.item-editor-grid,.project-form-grid {row-gap:15px}
.item-editor-action-row {gap:9px;margin:12px 0 15px}
.item-editor-action-row>.mini-btn {min-height:40px;padding:10px 14px;line-height:1.35}
.item-editor-action-row .bulk-edit-button.active,
:root[data-theme="dark"] .item-editor-action-row .bulk-edit-button.active {background:#FE5F4B!important;border-color:#FE5F4B!important;color:#fff!important;box-shadow:0 3px 12px rgba(254,95,75,.16)}
.item-editor-action-row .bulk-edit-button.active:hover {background:#ed4d3a!important;border-color:#ed4d3a!important}
.bulk-edit-details {padding:12px 15px;border-radius:10px;line-height:1.6}
/* Lista de construções */
.project-home-head {padding:25px clamp(18px,3vw,42px)}
.project-home-copy h1 {font-size:clamp(21px,2.1vw,28px);font-weight:800;letter-spacing:-.045em;line-height:1.2}
.project-home-copy p {font-size:13px;line-height:1.55;opacity:.88}
.project-home-main {padding:34px clamp(18px,3vw,42px) 60px}
.project-toolbar {padding-bottom:21px;margin-bottom:25px;gap:16px}
.project-toolbar h2 {font-size:24px;font-weight:800;letter-spacing:-.04em}
.project-grid {gap:18px}
.project-card {padding:22px;min-height:225px;border-radius:16px}
.project-card:hover {transform:translateY(-2px);box-shadow:var(--ui-shadow-hover);border-color:color-mix(in srgb,var(--blue) 38%,var(--line))}
.project-card h3 {font-size:18px;font-weight:800;letter-spacing:-.025em}
.project-stats {margin:19px 0}
.project-actions {gap:9px}
.project-actions button,.project-toolbar .project-primary {min-height:42px}
.project-primary {background:#1f6ea9;border-color:#1f6ea9;color:#fff}
.project-primary:hover {background:#185b8e;border-color:#185b8e}
.project-secondary:hover {border-color:var(--blue)}
/* Modo escuro: legibilidade e superfícies, sem alterar a semântica de status */
:root[data-theme="dark"] {--ui-shadow:0 4px 12px rgba(0,0,0,.10),0 14px 34px rgba(0,0,0,.17);--ui-shadow-hover:0 14px 35px rgba(0,0,0,.25)}
:root[data-theme="dark"] .panel,:root[data-theme="dark"] .kpi,:root[data-theme="dark"] .project-card,:root[data-theme="dark"] .modal,:root[data-theme="dark"] .project-modal {background-image:linear-gradient(135deg,rgba(255,255,255,.055),transparent 24%,transparent 78%,rgba(255,255,255,.025))}
:root[data-theme="dark"] .project-primary,:root[data-theme="dark"] .mini-btn.save {background:#247bb5;color:#fff;border-color:#247bb5}
:root[data-theme="dark"] .project-primary:hover,:root[data-theme="dark"] .mini-btn.save:hover {background:#318ac3}
:root[data-theme="dark"] .project-card h3,:root[data-theme="dark"] .project-toolbar h2 {color:var(--ink)}
:root[data-theme="dark"] .env-identity-name,:root[data-theme="dark"] .item-sub .env-name-strong {color:#e5edf5}
:root[data-theme="dark"] .floor-tabs label {color:var(--muted)}
/* Resolução intermediária e mobile */
@media(max-width:1200px) {.board {grid-template-columns:minmax(0,1fr)}.controls-panel {min-height:0}.items-list {max-height:none}.summary-grid {grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px) {.summary-grid {grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid {grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px) {
  .app-header {padding:13px 14px}
  .brand p {font-size:11px}
  .header-actions {gap:7px}
  .main {margin-top:16px;padding-inline:12px}
  .topbar {gap:12px}
  .filter-line {gap:7px}
  .filter-line select {flex:1 1 135px}
  .filter-line input {flex:1 1 100%;width:100%}
  .summary-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
  .kpi {padding:14px 13px}
  .kpi .value {font-size:25px}
  .board {gap:13px}
  .panel-head {padding:16px 15px;flex-wrap:wrap}
  .plan-tools {padding:11px 14px}
  .plan-wrap {padding:10px}
  .scope-alert {margin:12px 12px 0}
  .env-select-wrap,.env-context {padding-left:13px;padding-right:13px}
  .items-list {padding:0 12px 17px}
  .list-actions {padding:0 12px 12px}
  .modal-head,.project-modal-head {padding:16px 15px}
  .modal-body,.project-modal-body {padding:17px 15px}
  .modal-foot,.project-modal-foot {padding:13px 15px}
  .project-home-head {padding:20px 16px}
  .project-home-main {padding:22px 14px 38px}
  .project-grid {grid-template-columns:1fr;gap:13px}
  .project-card {padding:18px;min-height:0}
  .project-toolbar h2 {font-size:21px}
  .item-editor-action-row>.mini-btn {flex:1 1 180px}
}
@media(max-width:390px) {.item-editor-action-row>.mini-btn {flex-basis:100%}.kpi .value {font-size:23px}}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
@media print {
  .panel,.kpi,.project-card,.modal,.project-modal {box-shadow:none!important;backdrop-filter:none!important;background-image:none!important}
  .item-card {break-inside:avoid}
}
