@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap");
:root {
  --navy: #05285d;
  --navy-deep: #03152f;
  --blue: #008ff0;
  --cyan: #20b9ef;
  --bg: #f3f6fa;
  --panel: #ffffff;
  --ink: #162238;
  --muted: #6b778c;
  --line: #dfe6ef;
  --success: #12845d;
  --success-bg: #e6f7f0;
  --warning: #a76208;
  --warning-bg: #fff4dc;
  --danger: #b42318;
  --danger-bg: #fff0ee;
  --shadow: 0 16px 45px rgba(3, 29, 67, .08);
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: var(--bg); font-family: var(--font-body, "Manrope", "Segoe UI", sans-serif); line-height: 1.55; }
a { color: var(--blue); text-decoration: none; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { line-height: 1.15; letter-spacing: -.025em; }
button,input,select,textarea { font: inherit; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 270px minmax(0,1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column; color: #d7e4f3; background: linear-gradient(180deg,#03152f 0%,#05285d 100%); box-shadow: 10px 0 30px rgba(1,19,43,.08); z-index: 30; }
.sidebar-brand { min-height: 106px; padding: 18px 22px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.09); }
.sidebar-brand img { width: 190px; height: 72px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.sidebar-close { display: none; color: white; background: transparent; border: 0; font-size: 1.7rem; }
.sidebar-context { padding: 19px 23px; display: grid; gap: 2px; border-bottom: 1px solid rgba(255,255,255,.08); }
.sidebar-context span { color: #85cfff; font-size: .69rem; font-weight: 850; text-transform: uppercase; letter-spacing: .16em; }
.sidebar-context strong { color: white; }
.side-nav { padding: 16px 13px; display: grid; gap: 4px; }
.nav-label { margin: 15px 10px 6px; color: #7f9bb9; font-size: .66rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.side-nav a { padding: 10px 12px; display: flex; align-items: center; gap: 11px; color: #c8d6e7; border-radius: 10px; font-size: .88rem; font-weight: 670; transition: .18s ease; }
.side-nav a b { width: 25px; height: 25px; display: grid; place-items: center; color: #75cfff; border: 1px solid rgba(117,207,255,.25); border-radius: 7px; font-size: .62rem; }
.side-nav a:hover,.side-nav a.active { color: white; background: rgba(255,255,255,.105); }
.side-nav a.active { box-shadow: inset 3px 0 var(--cyan); }
.sidebar-user { margin-top: auto; padding: 16px; display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; border-top: 1px solid rgba(255,255,255,.09); background: rgba(0,0,0,.12); }
.avatar { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; color: white; font-weight: 900; background: linear-gradient(135deg,var(--blue),var(--cyan)); }
.sidebar-user div:nth-child(2) { min-width: 0; display: grid; }
.sidebar-user strong { color: white; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .84rem; }
.sidebar-user small { color: #91a9c2; font-size: .7rem; }
.sidebar-user button { border: 0; background: transparent; color: #b7c8da; cursor: pointer; font-size: 1.1rem; }
.app-main { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 20; min-height: 74px; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.topbar-title { display: grid; }
.topbar-title span { font-weight: 850; color: var(--navy); }
.topbar-title small { color: var(--muted); }
.topbar-actions { display: flex; gap: 18px; font-size: .84rem; font-weight: 750; }
.sidebar-open { display: none; border: 1px solid var(--line); border-radius: 9px; background: white; padding: 7px 10px; }
.content { padding: 32px; max-width: 1600px; margin-inline: auto; }
.alert { padding: 14px 17px; margin-bottom: 18px; border: 1px solid #bfe6fa; border-radius: 12px; color: #07567e; background: #eaf8ff; }
.alert.success { color: var(--success); background: var(--success-bg); border-color: #bce8d6; }
.alert.danger,.alert.error { color: var(--danger); background: var(--danger-bg); border-color: #f0c7c2; }
.page-heading { margin-bottom: 26px; display: flex; justify-content: space-between; align-items: flex-end; gap: 28px; }
.page-heading h1 { margin-bottom: 8px; color: var(--navy-deep); font-size: clamp(2rem,3.5vw,3rem); }
.page-heading p { margin: 0; max-width: 760px; color: var(--muted); }
.compact-heading { max-width: 850px; }
.detail-heading { align-items: center; }
.eyebrow { display: block; margin-bottom: 7px; color: var(--blue); font-size: .68rem; font-weight: 900; text-transform: uppercase; letter-spacing: .17em; }
.heading-actions,.inline-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.btn { min-height: 42px; padding: 9px 15px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 10px; font-weight: 800; cursor: pointer; }
.btn-primary { color: white; background: linear-gradient(135deg,var(--navy),var(--blue)); box-shadow: 0 10px 22px rgba(0,143,240,.16); }
.btn-secondary { color: var(--navy); border-color: var(--line); background: white; }
.stats-grid { margin-bottom: 22px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.stat-card { padding: 21px; min-height: 145px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 17px; background: var(--panel); box-shadow: 0 9px 24px rgba(3,29,67,.045); }
.stat-card.primary { color: white; border: 0; background: linear-gradient(135deg,var(--navy-deep),#0757a8); }
.stat-card span { color: var(--muted); font-size: .82rem; font-weight: 750; }
.stat-card.primary span,.stat-card.primary small { color: #c4d9ed; }
.stat-card strong { margin: 10px 0 5px; font-size: 1.8rem; letter-spacing: -.04em; }
.stat-card small { margin-top: auto; color: var(--muted); }
.dashboard-grid { margin-top: 20px; display: grid; gap: 20px; }
.financial-grid { grid-template-columns: 1.15fr .85fr; }
.triple-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.double-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.panel,.table-panel,.filter-panel,.form-shell { border: 1px solid var(--line); border-radius: 17px; background: var(--panel); box-shadow: 0 10px 30px rgba(3,29,67,.05); }
.panel { padding: 22px; min-width: 0; }
.panel-head { margin-bottom: 16px; display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.panel-head h2 { margin: 0; color: var(--navy-deep); font-size: 1.18rem; }
.panel-head > a,.panel-head .inline-actions a { font-size: .8rem; font-weight: 800; }
.finance-panel { background: linear-gradient(150deg,#ffffff,#f0f8ff); }
.finance-list { display: grid; }
.finance-list > div { padding: 12px 0; display: flex; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); }
.finance-list > div:last-child { border-bottom: 0; }
.finance-list span { color: var(--muted); }
.finance-list strong { color: var(--navy); }
.finance-total { margin-top: 8px; padding: 14px !important; border: 0 !important; border-radius: 11px; color: white; background: var(--navy); }
.finance-total span,.finance-total strong { color: white; }
.text-success { color: var(--success)!important; }
.text-danger { color: var(--danger)!important; }
.compact-list { display: grid; }
.compact-row { padding: 12px 0; min-width: 0; display: flex; justify-content: space-between; align-items: center; gap: 13px; color: var(--ink); border-bottom: 1px solid var(--line); }
.compact-row:last-child { border-bottom: 0; }
.compact-row > div:first-child { min-width: 0; display: grid; }
.compact-row strong { font-size: .88rem; }
.compact-row small { color: var(--muted); font-size: .75rem; }
.row-amount { display: grid; justify-items: end; white-space: nowrap; }
.row-amount a { font-size: .72rem; font-weight: 800; }
.status { display: inline-flex; align-items: center; justify-content: center; padding: 5px 9px; border-radius: 999px; font-size: .68rem; font-weight: 850; white-space: nowrap; background: #eef2f6; color: #607086; }
.status.success { color: var(--success); background: var(--success-bg); }
.status.warning { color: var(--warning); background: var(--warning-bg); }
.status.danger { color: var(--danger); background: var(--danger-bg); }
.status.large { padding: 8px 13px; font-size: .77rem; }
.date-chip { padding: 6px 9px; border-radius: 8px; color: var(--navy); background: #edf6ff; font-size: .72rem; font-weight: 850; }
.empty-state,.empty-inline { padding: 25px 6px; color: var(--muted); text-align: center; }
.large-empty { min-height: 230px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px; }
.ranking-list { display: grid; }
.ranking-list > div { padding: 11px 0; display: grid; grid-template-columns: 31px 1fr auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--line); }
.ranking-list > div:last-child { border-bottom: 0; }
.ranking-list > div > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: var(--blue); background: #eaf7ff; font-size: .72rem; font-weight: 900; }
.ranking-list > div > div { display: grid; }
.ranking-list small { color: var(--muted); }
.filter-panel { margin-bottom: 18px; padding: 14px; display: grid; grid-template-columns: minmax(240px,1fr) 230px 190px auto auto; gap: 10px; align-items: center; }
.search-field { position: relative; }
.search-field span { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.search-field input { padding-left: 34px; }
.filter-panel input,.filter-panel select,.form-control { width: 100%; min-height: 42px; padding: 10px 12px; color: var(--ink); border: 1px solid #cfd9e5; border-radius: 10px; background: white; }
.filter-panel input:focus,.filter-panel select:focus,.form-control:focus { outline: 3px solid rgba(0,143,240,.11); border-color: var(--blue); }
.reset-link { text-align: center; font-size: .78rem; font-weight: 800; }
.table-panel { overflow: hidden; }
.table-scroll { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 13px 15px; color: #65748a; background: #f7f9fc; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; text-transform: uppercase; letter-spacing: .07em; font-size: .64rem; }
.data-table td { padding: 14px 15px; border-bottom: 1px solid #edf1f5; vertical-align: middle; font-size: .82rem; }
.data-table tbody tr:hover { background: #fbfdff; }
.data-table td > small,.data-table td > strong + small,.data-table .item-title + small { display: block; color: var(--muted); font-size: .7rem; margin-top: 2px; }
.item-title { color: var(--navy); font-weight: 850; }
.actions { white-space: nowrap; }
.actions a { margin-right: 10px; font-size: .73rem; font-weight: 800; }
.empty-table { padding: 50px 10px; display: grid; justify-items: center; gap: 5px; color: var(--muted); }
.pagination { padding: 14px 18px; display: flex; justify-content: space-between; color: var(--muted); font-size: .8rem; }
.pagination > div:last-child { display: flex; gap: 18px; }
.form-shell { overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) 300px; }
.model-form { padding: 25px; }
.form-aside { padding: 28px; color: #d7e5f4; background: linear-gradient(150deg,var(--navy-deep),var(--navy)); }
.form-aside h3 { color: white; font-size: 1.35rem; }
.form-aside p { color: #c4d5e8; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; }
.field { display: grid; align-content: start; gap: 7px; }
.field label { font-size: .8rem; font-weight: 780; color: #344157; }
.field label b { color: var(--danger); }
.field textarea.form-control { min-height: 120px; resize: vertical; }
.full-span { grid-column: 1/-1; }
.help { color: var(--muted); font-size: .7rem; }
.field-error { color: var(--danger); font-size: .72rem; }
.checkbox-field { display: flex; align-items: flex-end; }
.check-label { min-height: 42px; padding: 10px 12px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.form-check-input { width: 18px; height: 18px; }
.form-actions { margin-top: 25px; padding-top: 18px; display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--line); }
.breadcrumb { margin-bottom: 11px; display: flex; gap: 8px; color: var(--muted); font-size: .75rem; }
.detail-stats { margin-bottom: 20px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 16px; background: white; overflow: hidden; }
.detail-stats > div { padding: 18px; display: grid; border-right: 1px solid var(--line); }
.detail-stats > div:last-child { border-right: 0; }
.detail-stats span { color: var(--muted); font-size: .72rem; }
.detail-stats strong { margin-top: 5px; color: var(--navy); font-size: 1.08rem; }
.detail-list { margin: 0; display: grid; }
.detail-list > div { padding: 11px 0; display: grid; grid-template-columns: 155px 1fr; gap: 12px; border-bottom: 1px solid var(--line); }
.detail-list > div:last-child { border-bottom: 0; }
.detail-list dt { color: var(--muted); font-size: .78rem; }
.detail-list dd { margin: 0; font-weight: 730; font-size: .82rem; }
.section-panel { margin-top: 20px; }
.asset-block { padding: 18px 0; border-top: 1px solid var(--line); }
.asset-block:first-of-type { border-top: 0; }
.asset-block-head { margin-bottom: 12px; display: flex; justify-content: space-between; gap: 15px; }
.asset-block-head > div { display: grid; }
.asset-block-head small { color: var(--muted); }
.unit-chip-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.unit-chip { padding: 12px; display: flex; justify-content: space-between; align-items: center; gap: 10px; color: var(--ink); border: 1px solid var(--line); border-radius: 11px; background: #fafcff; }
.unit-chip > div { display: grid; }
.unit-chip small { color: var(--muted); }
.prose-internal { color: #4f5d72; font-size: .87rem; }
.report-list { display: grid; }
.report-list > div { padding: 12px 0; display: flex; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); }
.report-list > div:last-child { border-bottom: 0; }
.report-list span { color: var(--muted); }
.sidebar-overlay { display: none; }

.login-page { min-height: 100vh; display: grid; grid-template-columns: 1.05fr .95fr; background: white; }
.login-showcase { position: relative; padding: 65px; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; color: white; background: radial-gradient(circle at 80% 20%,rgba(32,185,239,.35),transparent 24%),linear-gradient(145deg,var(--navy-deep),#0757a8); }
.login-showcase::after { content:""; position:absolute; width:420px; height:420px; right:-130px; bottom:-130px; border:70px solid rgba(255,255,255,.055); border-radius:50%; }
.login-logo { width: 230px; height: 90px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.login-copy { position: relative; z-index: 2; max-width: 610px; }
.login-copy h1 { font-size: clamp(2.6rem,5vw,4.8rem); }
.login-copy p { color: #c9dbed; font-size: 1.08rem; }
.login-flow { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
.login-flow div { padding: 14px; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; background: rgba(255,255,255,.07); backdrop-filter: blur(8px); }
.login-flow span { display:block; color: var(--cyan); font-size:.68rem; font-weight:900; }
.login-flow strong { font-size:.8rem; }
.login-panel { padding: 45px; display: grid; place-items: center; background: #f7f9fc; }
.login-card { width: min(460px,100%); padding: 35px; border: 1px solid var(--line); border-radius: 21px; background: white; box-shadow: var(--shadow); }
.login-card .eyebrow { margin-bottom: 10px; }
.login-card h2 { color: var(--navy-deep); font-size: 2rem; }
.login-card > p { color: var(--muted); }
.login-form { display: grid; gap: 16px; margin-top: 25px; }
.login-field { display:grid; gap:7px; }
.login-field label { font-size:.8rem; font-weight:800; }
.login-field input { width:100%; min-height:48px; padding:12px 14px; border:1px solid #ccd7e3; border-radius:11px; }
.login-field input:focus { outline:3px solid rgba(0,143,240,.11); border-color:var(--blue); }
.login-form .btn { width:100%; min-height:49px; }
.login-back { display:block; margin-top:18px; text-align:center; font-size:.8rem; font-weight:800; }
.login-error { margin:15px 0; padding:12px; color:var(--danger); background:var(--danger-bg); border-radius:10px; font-size:.8rem; }

@media (max-width: 1180px) {
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .triple-grid { grid-template-columns: 1fr 1fr; }
  .triple-grid > :last-child { grid-column: 1/-1; }
  .filter-panel { grid-template-columns: 1fr 190px 170px auto; }
  .filter-panel .reset-link { grid-column: 1/-1; text-align: left; }
  .unit-chip-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 930px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: 0; top: 0; width: 280px; transform: translateX(-105%); transition: transform .22s ease; }
  .sidebar.is-open { transform: translateX(0); }
  .sidebar-close,.sidebar-open { display: block; }
  .sidebar-overlay { position: fixed; inset: 0; z-index: 25; background: rgba(0,15,35,.52); }
  .sidebar-overlay.is-open { display: block; }
  .financial-grid,.double-grid,.form-shell,.login-page { grid-template-columns: 1fr; }
  .topbar { padding: 0 20px; }
  .content { padding: 24px 20px; }
  .form-aside { order: -1; }
  .detail-stats { grid-template-columns: repeat(3,1fr); }
  .detail-stats > div { border-bottom: 1px solid var(--line); }
  .login-showcase { min-height: 520px; padding: 45px 30px; }
  .login-panel { padding: 35px 20px; }
}
@media (max-width: 680px) {
  .topbar-actions { display: none; }
  .content { padding: 21px 13px; }
  .page-heading { align-items: stretch; flex-direction: column; }
  .heading-actions { width: 100%; }
  .heading-actions .btn { flex: 1; }
  .stats-grid,.triple-grid,.form-grid,.unit-chip-grid { grid-template-columns: 1fr; }
  .triple-grid > :last-child { grid-column: auto; }
  .filter-panel { grid-template-columns: 1fr; }
  .detail-stats { grid-template-columns: repeat(2,1fr); }
  .detail-list > div { grid-template-columns: 1fr; gap: 3px; }
  .model-form { padding: 18px; }
  .form-aside { padding: 22px; }
  .pagination { align-items: flex-start; flex-direction: column; gap: 8px; }
  .login-flow { grid-template-columns: 1fr 1fr; }
  .login-showcase { min-height: 570px; }
}

/* ---- Extension Kholding ImmoHub : pilotage interne ---- */
.platform-stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:20px 0 24px; }
.platform-stats-grid .stat-card { min-width:0; }
.platform-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:18px; }
.platform-shortcut { display:block; padding:18px; border:1px solid #dfe6ef; border-radius:16px; background:#fff; transition:.2s ease; }
.platform-shortcut:hover { transform:translateY(-2px); border-color:#8fcbe5; box-shadow:0 12px 30px rgba(18,49,84,.08); }
.platform-shortcut strong { display:block; color:#062f68; margin-bottom:5px; }
.platform-shortcut span { color:#6d7988; font-size:.86rem; line-height:1.5; }
.platform-actions { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.platform-actions form { display:inline-flex; margin:0; }
.platform-actions button, .platform-actions a { border:1px solid #cfdae7; border-radius:8px; padding:7px 9px; background:#fff; color:#123b6e; font-size:.74rem; font-weight:700; cursor:pointer; }
.platform-actions button:hover, .platform-actions a:hover { border-color:#009fe3; }
.platform-actions .danger-link, .platform-actions button.danger-link { color:#9f3030; border-color:#edc6c6; }
@media (max-width: 1050px) { .platform-stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .platform-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .platform-stats-grid, .platform-shortcuts { grid-template-columns:1fr; } }
.platform-shortcut > span { display:inline-flex; color:#009fe3; font-size:.72rem; font-weight:800; letter-spacing:.1em; }
.platform-shortcut h2 { margin:7px 0 7px; color:#062f68; font-size:1.05rem; }
.platform-shortcut p { margin:0 0 12px; color:#6d7988; font-size:.84rem; line-height:1.55; }
.platform-shortcut b { color:#0b5f93; font-size:.78rem; }

/* ============================================================
   Centre éditorial Kholding — gestion simple des contenus
   ============================================================ */
.cms-heading { align-items:flex-start; }
.cms-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.cms-kpi { min-height:142px; padding:21px; display:flex; flex-direction:column; color:var(--ink); border:1px solid var(--line); border-radius:18px; background:white; box-shadow:0 10px 28px rgba(3,29,67,.05); transition:.2s ease; }
.cms-kpi:hover { transform:translateY(-2px); border-color:#b7d9ec; box-shadow:0 16px 36px rgba(3,29,67,.08); }
.cms-kpi.primary { color:white; border-color:transparent; background:linear-gradient(135deg,var(--navy-deep),#0877c7); }
.cms-kpi.attention { border-color:#f3d49a; background:linear-gradient(145deg,#fff,#fff9ed); }
.cms-kpi span { color:var(--muted); font-size:.77rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.cms-kpi.primary span,.cms-kpi.primary small { color:#cfe5f7; }
.cms-kpi strong { margin:10px 0 4px; font-size:2rem; line-height:1; }
.cms-kpi small { margin-top:auto; color:var(--muted); }
.cms-section-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cms-section-card { min-height:245px; padding:23px; display:flex; flex-direction:column; color:var(--ink); border:1px solid var(--line); border-radius:20px; background:white; box-shadow:0 10px 30px rgba(3,29,67,.045); transition:.22s ease; }
.cms-section-card:hover { transform:translateY(-4px); border-color:#9ed8f2; box-shadow:0 18px 46px rgba(3,29,67,.09); }
.cms-section-card.settings-card { background:linear-gradient(145deg,#f7fbff,#eef7ff); }
.cms-section-icon { width:47px; height:47px; margin-bottom:28px; display:grid; place-items:center; color:#087fc0; background:#e8f8ff; border:1px solid #c5edff; border-radius:14px; font-size:1.1rem; font-weight:900; }
.cms-section-card div { flex:1; }
.cms-section-card small { color:#0983c4; font-size:.66rem; font-weight:900; text-transform:uppercase; letter-spacing:.13em; }
.cms-section-card h2 { margin:7px 0 10px; color:var(--navy-deep); font-size:1.27rem; }
.cms-section-card p { margin:0; color:var(--muted); font-size:.84rem; }
.cms-section-card b { margin-top:18px; color:var(--navy); font-size:.79rem; }
.cms-recent-grid { margin-top:22px; }
.cms-search-bar { margin-bottom:18px; padding:13px; display:grid; grid-template-columns:minmax(260px,1fr) auto auto; gap:10px; align-items:center; border:1px solid var(--line); border-radius:16px; background:white; box-shadow:0 8px 24px rgba(3,29,67,.04); }
.cms-reset { padding:0 7px; color:var(--muted); font-size:.78rem; font-weight:800; }
.cms-content-panel { overflow:hidden; border:1px solid var(--line); border-radius:19px; background:white; box-shadow:0 10px 32px rgba(3,29,67,.05); }
.cms-content-list { display:grid; }
.cms-content-row { padding:17px 19px; display:grid; grid-template-columns:74px minmax(0,1fr) auto; gap:17px; align-items:center; border-bottom:1px solid var(--line); }
.cms-content-row:last-child { border-bottom:0; }
.cms-content-thumb { width:74px; height:74px; overflow:hidden; display:grid; place-items:center; color:#0a78b3; background:#edf8fe; border:1px solid #d7eaf4; border-radius:15px; font-size:1.35rem; font-weight:900; }
.cms-content-thumb img { width:100%; height:100%; object-fit:cover; }
.cms-content-main { min-width:0; }
.cms-content-main small { color:#0c85c4; font-size:.68rem; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.cms-content-main h2 { margin:5px 0 7px; color:var(--navy-deep); font-size:1.07rem; }
.cms-content-main p { margin:0; color:var(--muted); font-size:.8rem; }
.cms-row-actions { max-width:280px; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.cms-row-actions form { margin:0; }
.cms-row-actions a,.cms-row-actions button { min-height:34px; padding:7px 10px; display:inline-flex; align-items:center; color:#274a6e; background:white; border:1px solid #d5e0eb; border-radius:9px; font-size:.7rem; font-weight:800; cursor:pointer; }
.cms-row-actions .cms-edit-btn { color:white; border-color:var(--navy); background:var(--navy); }
.cms-row-actions .cms-delete-link { color:#a92e2e; border-color:#efcaca; }
.cms-empty-state { min-height:350px; padding:60px 25px; display:grid; justify-items:center; align-content:center; text-align:center; color:var(--muted); }
.cms-empty-state > span { width:64px; height:64px; margin-bottom:15px; display:grid; place-items:center; color:#0786c7; background:#e9f8ff; border-radius:18px; font-size:1.5rem; }
.cms-empty-state h2 { color:var(--navy-deep); }
.cms-empty-state .btn { margin-top:13px; }
.cms-form-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:20px; align-items:start; }
.cms-editor-card { padding:24px; border:1px solid var(--line); border-radius:20px; background:white; box-shadow:0 10px 32px rgba(3,29,67,.05); }
.cms-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.cms-field { display:grid; align-content:start; gap:7px; }
.cms-field.wide-field { grid-column:1/-1; }
.cms-field > label { color:#344157; font-size:.79rem; font-weight:800; }
.cms-field > label b { color:var(--danger); }
.cms-field textarea.form-control { min-height:130px; resize:vertical; }
.cms-field input[type=file] { min-height:auto; padding:10px; background:#f8fafc; }
.cms-editor-help { position:sticky; top:96px; padding:25px; color:#d5e4f1; background:linear-gradient(150deg,var(--navy-deep),#0757a8); border-radius:20px; box-shadow:0 16px 40px rgba(3,29,67,.16); }
.cms-editor-help .eyebrow { color:#73d7ff; }
.cms-editor-help h2 { color:white; font-size:1.65rem; }
.cms-editor-help p,.cms-editor-help li { color:#c6d8e7; font-size:.86rem; }
.cms-editor-help ul { padding-left:20px; }
.cms-form-actions { margin-top:28px; }
.cms-subheading { margin:30px 0 13px; padding-top:25px; border-top:1px solid var(--line); }
.cms-subheading span { display:block; color:var(--navy-deep); font-weight:850; }
.cms-subheading p { margin:4px 0 0; color:var(--muted); font-size:.8rem; }
.cms-media-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.cms-media-grid figure { margin:0; padding:8px; display:grid; gap:7px; border:1px solid var(--line); border-radius:13px; background:#fafcff; }
.cms-media-grid img { width:100%; height:125px; object-fit:cover; border-radius:9px; }
.cms-media-grid figcaption { color:var(--muted); font-size:.69rem; }
.cms-media-grid button { justify-self:start; padding:6px 9px; color:#9e2d2d; background:white; border:1px solid #edc7c7; border-radius:8px; font-size:.68rem; font-weight:800; cursor:pointer; }
.hidden-form { display:none; }
.cms-message-reader { margin-bottom:24px; display:grid; grid-template-columns:250px 1fr; gap:20px; }
.cms-message-meta,.cms-message-body { padding:20px; border:1px solid var(--line); border-radius:16px; background:#f8fafc; }
.cms-message-meta { display:grid; grid-template-columns:1fr; gap:3px; }
.cms-message-meta span { margin-top:10px; color:var(--muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; }
.cms-message-meta span:first-child { margin-top:0; }
.cms-message-body small { color:#0785c5; font-weight:850; }
.cms-message-body p { margin-top:12px; color:#3f4e63; line-height:1.75; }
.cms-delete-card { width:min(620px,100%); margin:6vh auto; padding:38px; text-align:center; border:1px solid #efd4d4; border-radius:22px; background:white; box-shadow:0 22px 60px rgba(75,20,20,.09); }
.cms-danger-mark { width:62px; height:62px; margin:0 auto 18px; display:grid; place-items:center; color:#a52929; background:#fff0f0; border-radius:50%; font-size:1.7rem; font-weight:900; }
.cms-delete-card h1 { color:var(--navy-deep); }
.cms-delete-card p { color:var(--muted); }
.cms-delete-card form { margin-top:26px; display:flex; justify-content:center; gap:10px; }
.cms-danger-btn { color:white; background:#b42318; border-color:#b42318; }

@media (max-width:1180px) {
  .cms-kpi-grid,.cms-section-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cms-form-layout { grid-template-columns:1fr; }
  .cms-editor-help { position:static; }
}
@media (max-width:760px) {
  .cms-kpi-grid,.cms-section-grid,.cms-form-grid { grid-template-columns:1fr; }
  .cms-field.wide-field { grid-column:auto; }
  .cms-search-bar { grid-template-columns:1fr; }
  .cms-content-row { grid-template-columns:58px minmax(0,1fr); align-items:start; }
  .cms-content-thumb { width:58px; height:58px; }
  .cms-row-actions { grid-column:1/-1; max-width:none; justify-content:flex-start; padding-left:75px; }
  .cms-message-reader { grid-template-columns:1fr; }
  .cms-media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:500px) {
  .cms-row-actions { padding-left:0; }
  .cms-media-grid { grid-template-columns:1fr; }
}

/* ===== Corporate typography and logo rendering ===== */
:root {
  --font-body: "Manrope", "Segoe UI Variable Text", "Segoe UI", Arial, sans-serif;
  --font-display: "Space Grotesk", "Segoe UI Variable Display", "Segoe UI", Arial, sans-serif;
}
body, button, input, select, textarea { font-family: var(--font-body); }
h1, h2, h3, h4 { font-family: var(--font-display); }
.sidebar-brand a { width: 194px; min-height: 67px; padding: 6px 10px; display: grid; place-items: center; background: #fff; border-radius: 13px; }
.sidebar-brand img { width: 100%; height: 55px; object-fit: contain; object-position: center; filter: none; }

/* ===== ImmoHub superadmin — partner accounts ===== */
.platform-security-note { margin-bottom:18px; padding:17px 20px; border:1px solid #c9e4f4; border-radius:16px; background:linear-gradient(145deg,#f5fbff,#edf8fe); }
.platform-security-note strong { display:block; color:var(--navy-deep); font-family:var(--font-display); font-size:1rem; }
.platform-security-note p { margin:6px 0 0; color:#53677d; font-size:.82rem; line-height:1.65; }
.platform-account-table { min-width:1080px; }
.platform-account-actions { min-width:330px; }
.platform-account-actions form { display:inline-flex; margin:2px 4px 2px 0; vertical-align:middle; }
.platform-account-actions button,.platform-account-actions select { min-height:34px; border:1px solid #d5e0eb; background:#fff; color:#274a6e; border-radius:9px; font-size:.69rem; font-weight:800; }
.platform-account-actions button { padding:7px 10px; cursor:pointer; }
.platform-account-actions select { max-width:170px; padding:6px 28px 6px 9px; }
.platform-account-actions .role-control-form { padding:3px; gap:4px; border:1px solid #e0e8f0; border-radius:11px; background:#f8fafc; }
.platform-account-actions .role-control-form select,.platform-account-actions .role-control-form button { border:0; }
.platform-account-actions .role-control-form button { color:#fff; background:var(--navy); }
.platform-account-actions .danger-link { color:#a42f2f; border-color:#eccaca; background:#fff8f8; }

/* ===== CMS image handling ===== */
.cms-current-media-preview { margin-bottom:22px; padding:16px; display:grid; grid-template-columns:minmax(180px,280px) minmax(0,1fr); gap:8px 18px; align-items:center; border:1px solid #dce7f0; border-radius:16px; background:#f9fbfd; }
.cms-current-media-preview > span { grid-column:1/-1; color:#087eb9; font-size:.68rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.cms-current-media-frame { overflow:hidden; display:grid; place-items:center; border:1px solid #d7e3ed; border-radius:13px; background:#eef4f8; }
.cms-current-media-frame.landscape { aspect-ratio:16/9; }
.cms-current-media-frame.portrait { width:min(180px,100%); aspect-ratio:4/5; }
.cms-current-media-frame img { width:100%; height:100%; object-fit:cover; object-position:center; }
.cms-current-media-preview p { margin:0; color:#637389; font-size:.78rem; line-height:1.6; }
.upload-live-preview { margin-top:9px; display:grid; grid-template-columns:repeat(auto-fill,minmax(105px,1fr)); gap:8px; }
.upload-live-preview figure { margin:0; overflow:hidden; border:1px solid #dbe5ee; border-radius:10px; background:#fff; }
.upload-live-preview img { width:100%; height:85px; display:block; object-fit:cover; }
.upload-live-preview figcaption { padding:6px 7px; overflow:hidden; color:#65768a; font-size:.61rem; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:680px) { .cms-current-media-preview { grid-template-columns:1fr; } .cms-current-media-preview > span { grid-column:auto; } }

/* ========================================================================== */
/* FINAL RESPONSIVE HARDENING — Kholding internal workspace                    */
/* ========================================================================== */
html, body { max-width: 100%; overflow-x: clip; }
.app-main, .content, .page-heading > *, .panel, .form-shell > *, .cms-form-layout > *,
.cms-editor-card, .cms-content-main { min-width: 0; }

/* The official logo is a dark-on-white asset: never invert or crop it. */
.sidebar-brand a { width: 202px; min-height: 72px; padding: 6px 10px; }
.sidebar-brand img { width: 100%; height: 62px; object-fit: contain !important; object-position: center !important; filter: none !important; }
.login-showcase > a:first-child { width: fit-content; padding: 8px 13px; display: grid; place-items: center; background: #fff; border-radius: 16px; box-shadow: 0 16px 38px rgba(0,0,0,.2); }
.login-logo { width: 230px; height: 78px; object-fit: contain !important; object-position: center !important; filter: none !important; }

@media (max-width: 930px) {
  .sidebar { width: min(86vw, 300px); }
  .topbar { min-height: 66px; padding: 8px 16px; gap: 12px; }
  .topbar-title { min-width: 0; }
  .topbar-title span, .topbar-title small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .content { padding: 26px 18px 42px; }
  .login-showcase { min-height: 470px; padding: 38px 28px; }
}

@media (max-width: 680px) {
  .topbar { padding-inline: 12px; }
  .topbar-title span { font-size: .82rem; }
  .topbar-title small { font-size: .65rem; }
  .content { padding: 22px 12px 36px; }
  .page-heading { gap: 14px; }
  .page-heading h1 { font-size: clamp(1.7rem,8.5vw,2.4rem); }
  .heading-actions { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
  .heading-actions .btn { width: 100%; }
  .panel { border-radius: 16px; }
  .table-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .data-table { min-width: 700px; }
  .form-shell { grid-template-columns: minmax(0,1fr); }
  .form-grid { grid-template-columns: minmax(0,1fr); }
  .full-span { grid-column: auto; }
  .form-actions { align-items: stretch; flex-direction: column-reverse; }
  .form-actions .btn { width: 100%; }
  .detail-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .detail-list > div { grid-template-columns: minmax(0,1fr); }
  .asset-block-head, .report-list > div { align-items: flex-start; flex-direction: column; gap: 5px; }
  .cms-editor-card { padding: 19px; }
  .cms-content-row { padding: 15px; gap: 12px; }
  .cms-row-actions { padding-left: 0; }
  .cms-row-actions a, .cms-row-actions button { flex: 1 1 auto; justify-content: center; }
  .cms-delete-card { margin: 2vh auto; padding: 26px 18px; }
  .cms-delete-card form { flex-direction: column-reverse; }
  .cms-delete-card .btn { width: 100%; }
  .platform-account-actions { min-width: 280px; }
  .platform-account-actions .role-control-form { display: grid; grid-template-columns: minmax(0,1fr) auto; width: 100%; }
  .platform-account-actions select { max-width: none; width: 100%; }
  .login-showcase { min-height: 0; padding: 30px 20px 38px; }
  .login-showcase > a:first-child { padding: 7px 10px; }
  .login-logo { width: min(220px,70vw); height: 72px; }
  .login-copy { margin-top: 42px; }
  .login-copy h1 { font-size: clamp(2.2rem,11vw,3.4rem); }
  .login-copy p { font-size: .95rem; }
  .login-flow { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .login-panel { padding: 28px 14px 38px; }
  .login-card { padding: 26px 20px; border-radius: 18px; }
}

@media (max-width: 420px) {
  .sidebar { width: min(90vw, 300px); }
  .sidebar-brand a { width: 194px; min-height: 68px; }
  .sidebar-brand img { height: 58px; }
  .detail-stats { grid-template-columns: minmax(0,1fr); }
  .login-flow { grid-template-columns: minmax(0,1fr); }
  .cms-media-grid { grid-template-columns: minmax(0,1fr); }
}
