/* === Unified PRO UI layer === */

:root{
  --pro-bg:#f3f6fb;
  --pro-card:#ffffff;
  --pro-border:#dbe3ef;
  --pro-text:#0f172a;
  --pro-muted:#64748b;
  --pro-blue:#2563eb;
  --pro-blue-soft:#eff6ff;
  --pro-shadow:0 12px 30px rgba(15,23,42,.07);
  --pro-radius:18px;
}

body{
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.07), transparent 28%),
    linear-gradient(180deg,#f8fafc 0%,var(--pro-bg) 100%) !important;
  color:var(--pro-text) !important;
}

.container,
main,
.page,
.content{
  max-width:1500px;
}

h1{
  font-size:30px !important;
  font-weight:950 !important;
  letter-spacing:-.03em;
  color:var(--pro-text) !important;
}

h2{
  font-size:22px !important;
  font-weight:900 !important;
  color:var(--pro-text) !important;
}

h3{
  font-size:18px !important;
  font-weight:900 !important;
  color:var(--pro-text) !important;
}

.section,
.section-card,
.card,
.panel,
.box,
.tab-content{
  background:var(--pro-card) !important;
  border:1px solid var(--pro-border) !important;
  border-radius:var(--pro-radius) !important;
  box-shadow:var(--pro-shadow) !important;
}

.section,
.section-card,
.tab-content{
  padding:18px !important;
}

.tabs{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px !important;
  padding:8px !important;
  background:rgba(255,255,255,.95) !important;
  border:1px solid var(--pro-border) !important;
  border-radius:18px !important;
  box-shadow:0 8px 22px rgba(15,23,42,.06) !important;
}

.tab{
  border:0 !important;
  border-radius:13px !important;
  background:transparent !important;
  color:#475569 !important;
  padding:9px 14px !important;
  font-size:14px !important;
  font-weight:850 !important;
}

.tab:hover{
  background:#f1f5f9 !important;
  color:#0f172a !important;
}

.tab.active{
  background:#0f172a !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(15,23,42,.18) !important;
}

.btn,
button,
input[type="submit"],
.btn-light{
  border-radius:12px !important;
  font-weight:850 !important;
}

.btn,
input[type="submit"]{
  background:#0f172a !important;
  color:#fff !important;
  border:1px solid #0f172a !important;
}

.btn-light{
  background:#f1f5f9 !important;
  color:#0f172a !important;
  border:1px solid #dbe3ef !important;
}

input,
select,
textarea{
  border:1px solid #cbd5e1 !important;
  border-radius:12px !important;
  padding:10px 12px !important;
  background:#fff !important;
  color:#0f172a !important;
}

input:focus,
select:focus,
textarea:focus{
  outline:none !important;
  border-color:#2563eb !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.14) !important;
}

.kv{
  display:grid !important;
  grid-template-columns:minmax(180px, .42fr) minmax(220px, 1fr) !important;
  gap:6px 12px !important;
}

.kv .label,
.label{
  color:#64748b !important;
  font-weight:850 !important;
}

.kv .value,
.value{
  color:#0f172a !important;
  font-weight:750 !important;
}

table{
  border-collapse:separate !important;
  border-spacing:0 !important;
  width:100%;
  overflow:hidden;
  border-radius:16px;
}

th{
  background:#f1f5f9 !important;
  color:#475569 !important;
  font-weight:900 !important;
}

td,
th{
  border-bottom:1px solid #e5e7eb !important;
  padding:10px 12px !important;
}

tr:hover td{
  background:#f8fafc !important;
}

@media(max-width:900px){
  .kv{
    grid-template-columns:1fr !important;
  }

  h1{
    font-size:24px !important;
  }
}

/* === Object card tabs PRO layer === */

#content-general,
#content-search,
#content-paperwork,
#content-estimate,
#content-finance,
#content-kp,
#content-implementation,
#content-operators,
#content-documents,
#content-contractors,
#content-history{
  margin-top:14px !important;
  padding:18px !important;
  border-radius:22px !important;
}

.object-card-section-title{
  font-size:18px;
  font-weight:950;
  color:#0f172a;
  margin:0 0 14px;
}

.tab-content .kv{
  display:grid !important;
  grid-template-columns:180px minmax(220px,1fr) 180px minmax(220px,1fr) !important;
  gap:8px 12px !important;
  align-items:stretch !important;
}

.tab-content .kv .label{
  background:#f8fafc !important;
  border:1px solid #e5e7eb !important;
  border-radius:12px !important;
  padding:8px 10px !important;
  font-size:12px !important;
  line-height:1.25 !important;
}

.tab-content .kv .value{
  background:#ffffff !important;
  border:1px solid #e5e7eb !important;
  border-radius:12px !important;
  padding:8px 10px !important;
  font-size:13px !important;
  line-height:1.25 !important;
  min-height:36px !important;
  display:flex !important;
  align-items:center !important;
}

.tab-content .kv .label.wide-field{
  grid-column:1 / 2 !important;
}

.tab-content .kv .label.wide-field + .value{
  grid-column:2 / -1 !important;
}

.tab-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  padding:0 0 12px !important;
  margin-bottom:14px !important;
  border-bottom:1px solid #eef2f7 !important;
}

@media(max-width:1200px){
  .tab-content .kv{
    grid-template-columns:170px minmax(220px,1fr) !important;
  }
}

@media(max-width:700px){
  .tab-content .kv{
    grid-template-columns:1fr !important;
  }

  .tab-content .kv .label.wide-field,
  .tab-content .kv .label.wide-field + .value{
    grid-column:auto !important;
  }
}

/* === Empty value badge === */
.empty-value,
.field-value:has(> span.empty-value){
  color:#991b1b !important;
}

.empty-value{
  display:inline-flex;
  align-items:center;
  padding:4px 9px;
  border-radius:999px;
  background:#fee2e2;
  color:#991b1b;
  font-size:11px;
  font-weight:900;
  letter-spacing:.02em;
  white-space:nowrap;
}

/* === Compact empty badge force === */
.field-value.empty-cell,
.value.empty-cell{
  background:#fff !important;
  color:#0f172a !important;
}

.empty-value{
  display:inline-flex !important;
  align-items:center;
  width:auto !important;
  max-width:max-content !important;
  padding:4px 9px !important;
  border-radius:999px !important;
  background:#fee2e2 !important;
  color:#991b1b !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.02em !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
