.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:0 16px; border:1px solid transparent; border-radius:999px; font-weight:720; font-size:.74rem; letter-spacing:.01em; transition:background var(--transition),color var(--transition),border-color var(--transition),opacity var(--transition); }
.button:disabled { opacity:.38; cursor:not-allowed; }
.button-primary,.button-light { background:var(--white); color:var(--black); border-color:var(--white); }
.button-primary:hover,.button-light:hover { background:#dedee1; border-color:#dedee1; }
.button-secondary,.button-ghost { background:rgba(255,255,255,.045); color:var(--text); border-color:var(--line-strong); }
.button-secondary:hover,.button-ghost:hover { background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.3); }
.button-danger { color:#fff; background:rgba(255,111,114,.12); border-color:rgba(255,111,114,.35); }
.button-danger:hover { background:rgba(255,111,114,.2); }
.button-inverse { color:var(--white); background:rgba(255,255,255,.055); border-color:var(--line); }
.button-inverse:hover { background:rgba(255,255,255,.11); }
.button-large { min-height:51px; width:100%; font-size:.8rem; }
.button-full { width:100%; }
.button-small { min-height:33px; padding:0 12px; font-size:.67rem; }
.text-button { border:0; background:transparent; color:var(--text-muted); font-size:.73rem; font-weight:720; padding:8px 0; }
.text-button:hover { color:var(--white); }
.icon-button { border:1px solid var(--line); width:42px; height:42px; display:inline-grid; place-items:center; border-radius:50%; background:var(--surface); color:var(--text); }
.icon-button:hover { border-color:var(--line-strong); background:var(--surface-raised); }
.icon-button.compact { width:auto; height:30px; padding:0 8px; border:0; font-size:.68rem; color:var(--text-muted); background:transparent; }
.avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:var(--black); background:var(--white); font-size:.7rem; font-weight:900; }
.avatar-small { width:34px; height:34px; }
.form-stack { display:grid; gap:16px; margin-top:27px; }
.form-stack label,.form-grid label { display:grid; gap:7px; color:var(--text-muted); font-size:.7rem; font-weight:710; }
input,select,textarea { width:100%; border:1px solid var(--line); border-radius:12px; padding:11px 12px; outline:0; color:var(--text); background:rgba(255,255,255,.045); transition:border-color var(--transition),background var(--transition); }
input::placeholder,textarea::placeholder { color:var(--text-faint); }
input:focus,select:focus,textarea:focus { border-color:rgba(255,255,255,.42); background:rgba(255,255,255,.065); }
select option { color:#111; background:#fff; }
textarea { min-height:94px; resize:vertical; }
.password-field { display:flex; align-items:center; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.045); }
.password-field:focus-within { border-color:rgba(255,255,255,.42); }
.password-field input { border:0; background:transparent; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.form-grid .span-2 { grid-column:span 2; }
.form-error { min-height:18px; color:var(--danger); font-size:.72rem; }
.demo-divider { display:flex; align-items:center; gap:14px; color:var(--text-faint); font-size:.63rem; text-transform:uppercase; letter-spacing:.12em; margin:24px 0 14px; }
.demo-divider::before,.demo-divider::after { content:""; height:1px; background:var(--line); flex:1; }
.demo-accounts { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.demo-account { min-width:0; display:grid; justify-items:start; gap:10px; min-height:108px; padding:12px; text-align:left; color:var(--text); border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.025); }
.demo-account:hover { background:rgba(255,255,255,.065); border-color:var(--line-strong); }
.demo-account span:last-child { min-width:0; }
.demo-account strong { display:block; font-size:.71rem; margin-bottom:3px; }
.demo-account small { display:block; color:var(--text-muted); font-size:.59rem; line-height:1.35; }
.demo-role-mark { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; color:var(--black); background:var(--white); font-size:.65rem; font-weight:900; }
.panel,.premium-panel { background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.025)); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:0 1px 0 rgba(255,255,255,.025) inset; }
.panel-header,.premium-panel-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 22px; border-bottom:1px solid var(--line); }
.panel-header h3,.premium-panel-header h3 { margin:0; font-size:1.03rem; }
.panel-header p,.premium-panel-header p { margin:5px 0 0; color:var(--text-muted); font-size:.72rem; }
.premium-panel-header > div > span { display:block; color:var(--text-faint); font-size:.61rem; font-weight:760; letter-spacing:.14em; margin-bottom:7px; }
.panel-body,.premium-panel-body { padding:21px 22px; }
.card-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.stat-card { padding:20px; min-height:137px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.stat-card.clickable { cursor:pointer; }
.stat-card.clickable:hover { border-color:var(--line-strong); background:var(--surface-raised); }
.stat-card.dark { color:var(--black); background:var(--white); border-color:var(--white); }
.stat-card .stat-label { color:var(--text-muted); font-size:.68rem; font-weight:750; text-transform:uppercase; letter-spacing:.09em; }
.stat-card.dark .stat-label { color:#666; }
.stat-card strong { font-size:clamp(1.65rem,3vw,2.45rem); letter-spacing:-.055em; }
.stat-card small { color:var(--text-muted); font-size:.69rem; }
.stat-card.dark small { color:#666; }
.status-chip { display:inline-flex; align-items:center; min-height:25px; padding:0 9px; border-radius:999px; border:1px solid var(--line-strong); color:var(--text-muted); font-size:.62rem; font-weight:820; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.status-chip.occupied,.status-chip.active,.status-chip.paid { color:#07120d; background:var(--success); border-color:var(--success); }
.status-chip.booked,.status-chip.upcoming { color:#171006; background:var(--warning); border-color:var(--warning); }
.status-chip.vacant,.status-chip.draft { color:var(--text); background:#39393f; border-color:#4b4b52; }
.status-chip.maintenance,.status-chip.renovation,.status-chip.inspection,.status-chip.expiring { color:var(--text); background:repeating-linear-gradient(135deg,#222226 0,#222226 5px,#34343a 5px,#34343a 10px); }
.status-chip.expired,.status-chip.overdue,.status-chip.terminated { color:#fff; border-color:rgba(255,111,114,.45); background:rgba(255,111,114,.14); }
.status-chip.completed { color:var(--text-muted); background:var(--surface-muted); }
.data-table-wrap { width:100%; overflow:auto; }
.data-table { width:100%; border-collapse:collapse; font-size:.74rem; }
.data-table th { padding:13px 14px; color:var(--text-faint); background:rgba(255,255,255,.025); border-bottom:1px solid var(--line); text-align:left; font-size:.6rem; text-transform:uppercase; letter-spacing:.1em; white-space:nowrap; }
.data-table td { padding:14px; border-bottom:1px solid var(--line); vertical-align:middle; }
.data-table tbody tr { transition:background var(--transition); }
.data-table tbody tr.clickable { cursor:pointer; }
.data-table tbody tr.clickable:hover { background:rgba(255,255,255,.035); }
.data-table tbody tr:last-child td { border-bottom:0; }
.data-table td small { display:block; color:var(--text-muted); margin-top:3px; }
.table-title { font-weight:800; }
.table-subtitle { color:var(--text-muted); font-size:.66rem; margin-top:3px; }
.toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:16px; }
.toolbar .search-input { min-width:240px; flex:1; max-width:420px; }
.toolbar-spacer { margin-left:auto; }
.segmented { display:inline-flex; padding:3px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.025); }
.segmented button { border:0; border-radius:999px; padding:7px 11px; background:transparent; color:var(--text-muted); font-size:.66rem; font-weight:750; }
.segmented button.active { color:var(--black); background:var(--white); }
.empty-state { min-height:230px; display:grid; place-items:center; text-align:center; padding:40px; color:var(--text-muted); }
.empty-state strong { display:block; color:var(--text); margin-bottom:7px; }
.search-result-item { width:100%; display:flex; justify-content:space-between; gap:14px; border:0; border-radius:11px; padding:11px; text-align:left; color:var(--text); background:transparent; }
.search-result-item:hover { background:rgba(255,255,255,.06); }
.search-result-item span { display:grid; gap:3px; }
.search-result-item strong { font-size:.73rem; }
.search-result-item small { color:var(--text-muted); font-size:.63rem; }
.search-result-type { color:var(--text-faint); font-size:.59rem; text-transform:uppercase; }
.modal-root:empty { display:none; }
.modal-root { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:24px; background:rgba(0,0,0,.72); backdrop-filter:blur(14px); }
.modal { width:min(680px,100%); max-height:calc(100vh - 48px); display:flex; flex-direction:column; background:#111113; border:1px solid var(--line-strong); border-radius:var(--radius-lg); box-shadow:var(--shadow-modal); overflow:hidden; }
.modal.modal-wide { width:min(1180px,100%); }
.modal.modal-medium { width:min(860px,100%); }
.modal-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding:23px 25px; border-bottom:1px solid var(--line); }
.modal-header h2 { margin:3px 0 0; font-size:1.35rem; }
.modal-body { overflow-y:auto; padding:25px; }
.modal-close { flex:none; }
.modal-footer { padding:17px 24px; border-top:1px solid var(--line); display:flex; justify-content:flex-end; gap:9px; }
.toast-root { position:fixed; right:22px; bottom:22px; z-index:150; display:grid; gap:9px; }
.toast { width:min(390px,calc(100vw - 44px)); padding:14px 16px; border:1px solid var(--line-strong); border-radius:14px; color:var(--text); background:#17171a; box-shadow:var(--shadow-modal); font-size:.74rem; animation:toast-in .2s ease; }
.toast.error { border-color:rgba(255,111,114,.4); }
.toast.success { border-color:rgba(91,216,157,.45); }
@keyframes toast-in { from { opacity:0; transform:translateY(8px); } }
.loading-overlay { position:fixed; inset:0; z-index:200; display:grid; place-items:center; align-content:center; gap:15px; color:var(--white); background:#050506; }
.loader-mark { width:60px; height:60px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.45); font-weight:900; animation:pulse 1.1s infinite alternate; }
.loading-overlay span { color:rgba(255,255,255,.55); font-size:.74rem; }
@keyframes pulse { to { transform:scale(1.06); border-color:var(--white); } }
.detail-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.detail-item { min-height:78px; padding:15px 16px; background:rgba(255,255,255,.018); border-bottom:1px solid var(--line); }
.detail-item:nth-child(odd) { border-right:1px solid var(--line); }
.detail-item span { display:block; color:var(--text-faint); font-size:.61rem; text-transform:uppercase; letter-spacing:.09em; margin-bottom:7px; }
.detail-item strong { font-size:.8rem; }
.callout { padding:16px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.035); color:var(--text-muted); font-size:.73rem; line-height:1.6; }
.callout.warning { border-color:rgba(242,184,90,.35); background:rgba(242,184,90,.07); }
.callout.danger { border-color:rgba(255,111,114,.35); background:rgba(255,111,114,.07); }
.callout.success { border-color:rgba(91,216,157,.35); background:rgba(91,216,157,.07); }
.dashboard-hero { min-height:250px; padding:38px 40px; display:flex; align-items:flex-end; justify-content:space-between; gap:32px; position:relative; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius-xl); background:radial-gradient(circle at 76% 12%,rgba(255,255,255,.14),transparent 28%),radial-gradient(circle at 20% 110%,rgba(255,255,255,.07),transparent 35%),linear-gradient(145deg,#0b0b0d,#17171a 55%,#0a0a0b); box-shadow:var(--shadow-soft); }
.dashboard-hero::after { content:"59"; position:absolute; right:34px; top:-42px; color:rgba(255,255,255,.035); font-size:16rem; font-weight:900; letter-spacing:-.12em; pointer-events:none; }
.dashboard-hero-copy { position:relative; z-index:1; max-width:820px; }
.live-eyebrow { display:flex; align-items:center; gap:8px; color:rgba(255,255,255,.55); font-size:.63rem; font-weight:760; letter-spacing:.17em; }
.live-eyebrow span { width:8px; height:8px; border-radius:50%; background:var(--success); box-shadow:0 0 0 5px rgba(91,216,157,.09); }
.dashboard-hero h1 { margin:18px 0 11px; font-size:clamp(3.2rem,6vw,6.2rem); line-height:.84; letter-spacing:-.075em; }
.dashboard-hero p { max-width:720px; margin:0; color:rgba(255,255,255,.56); font-size:.9rem; line-height:1.6; }
.dashboard-hero-actions { position:relative; z-index:1; display:flex; gap:10px; flex:none; }

.portfolio-kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-top:15px; }
.portfolio-kpi { min-height:154px; padding:20px 22px; display:flex; flex-direction:column; justify-content:space-between; border:1px solid var(--line); border-radius:22px; background:linear-gradient(180deg,rgba(255,255,255,.048),rgba(255,255,255,.025)); transition:background var(--transition),border-color var(--transition); }
.portfolio-kpi.clickable { cursor:pointer; }
.portfolio-kpi:hover { background:rgba(255,255,255,.065); border-color:var(--line-strong); }
.portfolio-kpi > span { color:var(--text-muted); font-size:.64rem; font-weight:760; letter-spacing:.11em; text-transform:uppercase; }
.portfolio-kpi strong { font-size:clamp(2.25rem,4vw,4rem); line-height:.9; letter-spacing:-.07em; }
.portfolio-kpi small { color:var(--text-faint); font-size:.67rem; }
.portfolio-kpi.occupied strong { color:var(--success); }
.portfolio-kpi.booked strong { color:var(--warning); }
.portfolio-kpi.vacant strong { color:var(--danger); }
.portfolio-kpi.revenue { background:var(--white); color:var(--black); border-color:var(--white); }
.portfolio-kpi.revenue > span,.portfolio-kpi.revenue small { color:#6d6d72; }
.portfolio-kpi.revenue:hover { background:#e5e5e7; }

.executive-strip { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin:13px 0 36px; border:1px solid var(--line); border-radius:17px; overflow:hidden; background:rgba(255,255,255,.02); }
.executive-strip > div { min-height:78px; padding:15px 18px; display:flex; flex-direction:column; justify-content:center; gap:6px; border-right:1px solid var(--line); }
.executive-strip > div:last-child { border-right:0; }
.executive-strip span { color:var(--text-faint); font-size:.6rem; text-transform:uppercase; letter-spacing:.1em; }
.executive-strip strong { font-size:.84rem; }
.executive-strip .integrity-ok strong { color:var(--success); }
.executive-strip .integrity-bad strong { color:var(--danger); }

.dashboard-section { margin-top:36px; }
.dashboard-section-header { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin:0 2px 15px; }
.dashboard-section-header span { display:block; color:var(--text-faint); font-size:.61rem; font-weight:760; letter-spacing:.16em; margin-bottom:8px; }
.dashboard-section-header h2 { margin:0; font-size:clamp(1.45rem,2.6vw,2.4rem); }
.property-performance-panel { overflow:hidden; }
.performance-table { width:100%; border-collapse:collapse; font-size:.71rem; }
.performance-table th { padding:14px 13px; color:var(--text-faint); background:rgba(255,255,255,.025); border-bottom:1px solid var(--line); text-align:right; font-size:.57rem; text-transform:uppercase; letter-spacing:.09em; white-space:nowrap; }
.performance-table th:first-child,.performance-table td:first-child { text-align:left; }
.performance-table td { padding:13px; border-bottom:1px solid var(--line); text-align:right; white-space:nowrap; }
.performance-table tbody tr { cursor:pointer; transition:background var(--transition); }
.performance-table tbody tr:hover { background:rgba(255,255,255,.035); }
.performance-table tfoot td { padding:15px 13px; color:var(--black); background:var(--white); border:0; font-weight:850; }
.property-table-name { display:flex; align-items:center; gap:11px; min-width:220px; }
.property-table-name > span { width:39px; height:39px; display:grid; place-items:center; flex:none; border:1px solid var(--line); border-radius:11px; color:var(--text-muted); font-size:.58rem; font-weight:850; }
.property-table-name div { min-width:0; }
.property-table-name strong { display:block; overflow:hidden; text-overflow:ellipsis; }
.property-table-name small { display:block; color:var(--text-faint); font-size:.59rem; margin-top:4px; }
.count-positive { color:var(--success); }
.count-booked { color:var(--warning); }
.count-vacant { color:var(--danger); }
.occupancy-cell { display:grid; gap:7px; min-width:125px; }
.occupancy-cell > strong { justify-self:end; }
.occupancy-cell > strong.excellent { color:var(--success); }
.occupancy-cell > strong.good { color:var(--warning); }
.occupancy-cell > strong.attention { color:var(--danger); }
.premium-stacked-bar { height:7px; display:flex; overflow:hidden; border-radius:999px; background:var(--surface-soft); position:relative; }
.premium-stacked-bar span { display:block; height:100%; }
.premium-stacked-bar .occupied { background:var(--status-occupied); }
.premium-stacked-bar .booked { background:var(--status-booked); }
.premium-stacked-bar .vacant { background:var(--danger); }
.premium-stacked-bar .maintenance { background:repeating-linear-gradient(135deg,#6d6d75 0,#6d6d75 3px,#34343a 3px,#34343a 6px); }

.dashboard-visual-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(330px,.62fr); gap:15px; margin-top:15px; }
.premium-legend { display:flex; align-items:center; gap:9px; color:var(--text-faint); font-size:.58rem; flex-wrap:wrap; justify-content:flex-end; }
.premium-legend i,.status-mix-list i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.premium-legend i.occupied,.status-mix-list i.occupied { background:var(--status-occupied); }
.premium-legend i.booked,.status-mix-list i.booked { background:var(--status-booked); }
.premium-legend i.vacant,.status-mix-list i.vacant { background:var(--danger); }
.premium-legend i.maintenance,.status-mix-list i.maintenance { background:#56565e; }
.occupancy-chart-list { display:grid; gap:2px; }
.occupancy-chart-row { width:100%; display:grid; grid-template-columns:180px minmax(200px,1fr) 52px; gap:15px; align-items:center; padding:9px 10px; border:0; border-radius:11px; color:var(--text); background:transparent; text-align:left; }
.occupancy-chart-row:hover { background:rgba(255,255,255,.04); }
.chart-property { min-width:0; }
.chart-property b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.68rem; }
.chart-property small { display:block; color:var(--text-faint); font-size:.56rem; margin-top:3px; }
.occupancy-chart-row > strong { text-align:right; font-size:.67rem; }
.status-mix-body { display:grid; align-items:center; justify-items:center; gap:25px; }
.status-donut { width:210px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; position:relative; box-shadow:0 0 0 1px var(--line); }
.status-donut::after { content:""; position:absolute; width:65%; aspect-ratio:1; border-radius:50%; background:#111113; box-shadow:0 0 0 1px var(--line); }
.status-donut > div { position:relative; z-index:1; display:grid; justify-items:center; gap:4px; }
.status-donut strong { font-size:2.4rem; letter-spacing:-.07em; }
.status-donut span { color:var(--text-faint); font-size:.62rem; }
.status-mix-list { width:100%; display:grid; }
.status-mix-list button { display:grid; grid-template-columns:10px 1fr auto; align-items:center; gap:10px; padding:11px 5px; border:0; border-bottom:1px solid var(--line); color:var(--text); background:transparent; text-align:left; }
.status-mix-list button:last-child { border-bottom:0; }
.status-mix-list span { display:grid; gap:2px; font-size:.66rem; }
.status-mix-list small { color:var(--text-faint); font-size:.55rem; }
.status-mix-list b { font-size:.77rem; }

.revenue-grid { grid-template-columns:minmax(0,1.42fr) minmax(330px,.72fr); }
.revenue-ranking-panel .premium-panel-header > strong { font-size:.83rem; }
.revenue-ranking-list { display:grid; gap:2px; }
.revenue-rank-row { width:100%; display:grid; grid-template-columns:29px 180px minmax(120px,1fr) 62px; gap:12px; align-items:center; padding:10px 8px; border:0; border-radius:10px; color:var(--text); background:transparent; text-align:left; }
.revenue-rank-row:hover { background:rgba(255,255,255,.04); }
.rank-number { color:var(--text-faint); font-size:.58rem; }
.rank-property { min-width:0; }
.rank-property b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.67rem; }
.rank-property small { color:var(--text-faint); font-size:.55rem; }
.premium-revenue-bar { height:8px; border-radius:999px; background:var(--surface-soft); overflow:hidden; }
.premium-revenue-bar i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#707078,#f5f5f6); }
.revenue-rank-row > strong { text-align:right; font-size:.66rem; }
.insight-list { display:grid; padding-top:7px; padding-bottom:7px; }
.insight-list button { display:grid; gap:6px; padding:16px 5px; border:0; border-bottom:1px solid var(--line); color:var(--text); background:transparent; text-align:left; }
.insight-list button:last-child { border-bottom:0; }
.insight-list button:hover { padding-left:10px; }
.insight-list span { color:var(--text-faint); font-size:.58rem; text-transform:uppercase; letter-spacing:.09em; }
.insight-list strong { font-size:1rem; }
.insight-list small { color:var(--text-muted); font-size:.63rem; }

.lease-panel { display:grid; grid-template-columns:minmax(380px,.72fr) minmax(500px,1.28fr); overflow:hidden; }
.lease-risk-table-wrap { border-right:1px solid var(--line); overflow:auto; }
.lease-risk-table { width:100%; border-collapse:collapse; font-size:.69rem; }
.lease-risk-table th { padding:13px 16px; color:var(--text-faint); background:rgba(255,255,255,.025); text-align:left; font-size:.56rem; text-transform:uppercase; letter-spacing:.09em; }
.lease-risk-table td { padding:11px 16px; border-top:1px solid var(--line); }
.lease-risk-table td:nth-child(2) { text-align:center; }
.risk-chip { display:inline-flex; min-width:48px; justify-content:center; padding:5px 7px; border-radius:999px; font-size:.55rem; font-weight:850; }
.risk-chip.low { color:var(--success); background:rgba(91,216,157,.08); }
.risk-chip.medium { color:var(--warning); background:rgba(242,184,90,.08); }
.risk-chip.high { color:var(--danger); background:rgba(255,111,114,.09); }
.premium-expiry-chart { min-height:410px; display:grid; grid-template-columns:35px 1fr; gap:12px; padding:28px 27px 24px 18px; }
.expiry-axis { display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; padding-bottom:35px; color:var(--text-faint); font-size:.54rem; }
.expiry-bars { display:grid; grid-template-columns:repeat(12,minmax(28px,1fr)); gap:8px; align-items:end; border-bottom:1px solid var(--line-strong); background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(50% - 1px),var(--line) 50%,transparent calc(50% + 1px)); }
.expiry-bars button { height:100%; min-width:0; display:grid; grid-template-rows:1fr 18px 30px; align-items:end; justify-items:center; gap:5px; padding:0; border:0; color:var(--text); background:transparent; }
.expiry-bars button > span { height:100%; width:72%; display:flex; align-items:flex-end; }
.expiry-bars i { display:block; width:100%; min-height:3px; border-radius:6px 6px 2px 2px; background:linear-gradient(180deg,#fff,#77777f); }
.expiry-bars b { font-size:.59rem; }
.expiry-bars small { color:var(--text-faint); font-size:.54rem; writing-mode:vertical-rl; transform:rotate(180deg); }

.executive-action-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.executive-action-card { min-height:155px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; position:relative; padding:19px; border:1px solid var(--line); border-radius:20px; color:var(--text); background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02)); text-align:left; }
.executive-action-card:hover { border-color:var(--line-strong); background:rgba(255,255,255,.065); }
.executive-action-card::before { content:""; width:34px; height:3px; border-radius:999px; background:var(--text-muted); margin-bottom:5px; }
.executive-action-card.danger::before { background:var(--danger); }
.executive-action-card.warning::before { background:var(--warning); }
.action-type { color:var(--text-faint); font-size:.57rem; text-transform:uppercase; letter-spacing:.1em; }
.executive-action-card strong { max-width:90%; font-size:.78rem; line-height:1.45; }
.executive-action-card small { margin-top:auto; color:var(--text-muted); font-size:.61rem; }
.executive-action-card > i { position:absolute; right:18px; bottom:17px; font-style:normal; color:var(--text-faint); }
.action-empty { grid-column:1/-1; min-height:150px; display:grid; place-items:center; align-content:center; gap:6px; color:var(--text-muted); }
.action-empty strong { color:var(--text); }

/* Import center */
.premium-heading { margin-top:4px; }
.import-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:16px; }
.import-steps article { min-height:118px; display:flex; gap:13px; padding:18px; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.025); }
.import-steps > article > span { width:31px; height:31px; display:grid; place-items:center; flex:none; border:1px solid var(--line-strong); border-radius:50%; color:var(--text-muted); font-size:.6rem; font-weight:800; }
.import-steps strong { display:block; font-size:.76rem; margin:4px 0 6px; }
.import-steps p { margin:0; color:var(--text-muted); font-size:.63rem; line-height:1.5; }
.import-layout { display:grid; grid-template-columns:minmax(340px,.65fr) minmax(560px,1.35fr); gap:15px; }
.drop-zone { min-height:180px; display:grid; place-items:center; align-content:center; gap:8px; padding:25px; border:1px dashed rgba(255,255,255,.25); border-radius:18px; background:rgba(255,255,255,.022); text-align:center; cursor:pointer; }
.drop-zone:hover { border-color:rgba(255,255,255,.5); background:rgba(255,255,255,.045); }
.drop-zone input { display:none; }
.drop-icon { width:45px; height:45px; display:grid; place-items:center; border-radius:50%; color:var(--black); background:var(--white); font-size:1.25rem; }
.drop-zone strong { font-size:.78rem; }
.drop-zone small { color:var(--text-faint); font-size:.62rem; }
.import-mode { display:grid; gap:8px; margin:15px 0; }
.import-mode label { display:grid; grid-template-columns:18px 1fr; gap:9px; align-items:start; padding:12px; border:1px solid var(--line); border-radius:13px; cursor:pointer; }
.import-mode input { width:auto; margin-top:3px; accent-color:#fff; }
.import-mode span { display:grid; gap:3px; }
.import-mode strong { font-size:.69rem; }
.import-mode small { color:var(--text-muted); font-size:.59rem; line-height:1.45; }
.import-security-note { color:var(--text-faint); font-size:.59rem; line-height:1.55; margin:13px 2px 0; }
.import-preview-panel .panel-body { min-height:482px; }
.import-empty { min-height:400px; display:grid; place-items:center; align-content:center; gap:8px; text-align:center; }
.import-empty > span { width:58px; height:58px; display:grid; place-items:center; border:1px solid var(--line-strong); border-radius:17px; color:var(--text-muted); font-size:.64rem; }
.import-empty strong { font-size:.9rem; }
.import-empty p { max-width:330px; color:var(--text-muted); font-size:.66rem; line-height:1.55; }
.import-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px 16px; border:1px solid var(--line); border-radius:15px; margin-bottom:12px; }
.import-summary.valid { border-color:rgba(91,216,157,.35); background:rgba(91,216,157,.05); }
.import-summary.invalid { border-color:rgba(255,111,114,.35); background:rgba(255,111,114,.05); }
.import-summary > div:first-child { display:grid; gap:5px; }
.import-summary span { color:var(--text-faint); font-size:.55rem; letter-spacing:.09em; }
.import-summary strong { font-size:1rem; }
.import-summary-metrics { display:flex; gap:15px; }
.import-summary-metrics span { display:grid; gap:3px; }
.import-summary-metrics b { color:var(--text); font-size:.79rem; }
.import-messages { padding:12px 14px; border:1px solid var(--line); border-radius:12px; margin-bottom:11px; font-size:.62rem; }
.import-messages.error { border-color:rgba(255,111,114,.3); background:rgba(255,111,114,.05); }
.import-messages.warning { border-color:rgba(242,184,90,.28); background:rgba(242,184,90,.04); }
.import-messages p { margin:6px 0 0; color:var(--text-muted); }
.import-preview-table { border:1px solid var(--line); border-radius:13px; }
.import-more { color:var(--text-faint); font-size:.59rem; margin-top:9px; text-align:right; }
.import-field-guide { margin-top:15px; }
.guide-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; padding:0; }
.guide-grid > div { min-height:105px; padding:18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.guide-grid > div:nth-child(3n) { border-right:0; }
.guide-grid > div:nth-last-child(-n+3) { border-bottom:0; }
.guide-grid span { display:block; color:var(--text-faint); font-size:.56rem; letter-spacing:.11em; margin-bottom:8px; }
.guide-grid strong { font-size:.7rem; line-height:1.5; }
.property-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.property-card {
  min-width:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:0;
  border:1px solid rgba(200,169,101,.28);
  border-radius:19px;
  color:var(--text);
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018));
  cursor:pointer;
  box-shadow:0 18px 48px rgba(0,0,0,.16);
  transition:border-color var(--transition),box-shadow var(--transition),background var(--transition);
}
.property-card:hover {
  border-color:rgba(200,169,101,.7);
  background:rgba(255,255,255,.045);
  box-shadow:0 24px 68px rgba(0,0,0,.28),0 0 0 1px rgba(200,169,101,.06);
}
.property-card-media {
  position:relative;
  min-height:184px;
  overflow:hidden;
  isolation:isolate;
  background:#0b0b0c;
}
.property-card-media img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.06) brightness(.83);
  transform:scale(1.015);
  transition:filter var(--transition);
}
.property-card:hover .property-card-media img {
  filter:grayscale(1) contrast(1.08) brightness(.9);
}
.property-card-media-shade {
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.1) 38%,rgba(5,5,6,.92) 100%),
    linear-gradient(90deg,rgba(0,0,0,.15),transparent 54%);
}
.property-card-heading {
  position:absolute;
  z-index:2;
  inset:auto 17px 15px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}
.property-code {
  color:rgba(255,255,255,.62);
  font-size:.58rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.property-card h3 {
  margin:5px 0 0;
  color:#fff;
  font-size:1.16rem;
  letter-spacing:-.035em;
  text-shadow:0 2px 18px rgba(0,0,0,.55);
}
.property-total {
  flex:none;
  display:grid;
  justify-items:end;
  gap:2px;
  color:#fff;
}
.property-total strong { font-size:1.08rem; line-height:1; }
.property-total span {
  color:rgba(255,255,255,.52);
  font-size:.5rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.property-card-body {
  min-height:226px;
  display:flex;
  flex-direction:column;
  padding:0 16px 15px;
}
.property-filter-context {
  min-height:31px;
  display:flex;
  align-items:center;
  margin:0;
  color:var(--text-faint);
  font-size:.57rem;
}
.property-status-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.property-status-grid > div {
  min-width:0;
  display:grid;
  gap:4px;
  padding:12px 9px 11px;
  border-right:1px solid var(--line);
}
.property-status-grid > div:first-child { padding-left:0; }
.property-status-grid > div:last-child { padding-right:0; border-right:0; }
.property-status-grid strong { font-size:.87rem; }
.property-status-grid span {
  overflow:hidden;
  color:var(--text-muted);
  font-size:.52rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.property-card-finance {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:14px 0;
}
.property-card-finance > div:first-child,
.property-occupancy > div {
  display:grid;
  gap:4px;
}
.property-card-finance strong { font-size:.92rem; }
.property-card-finance span {
  color:var(--text-muted);
  font-size:.54rem;
}
.property-occupancy {
  display:flex;
  align-items:center;
  gap:11px;
  padding-left:15px;
  border-left:1px solid var(--line);
}
.property-rate-ring {
  --rate:0deg;
  position:relative;
  width:38px;
  height:38px;
  display:block;
  flex:none;
  border-radius:50%;
  background:conic-gradient(var(--gold) 0 var(--rate),rgba(255,255,255,.1) var(--rate) 360deg);
}
.property-rate-ring::after {
  content:"";
  position:absolute;
  inset:5px;
  border-radius:50%;
  background:var(--surface);
}
.property-card-footer {
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:auto;
  color:var(--gold);
  font-size:.61rem;
  font-weight:850;
  letter-spacing:.01em;
}
.property-card-footer b { font-size:.86rem; transition:transform var(--transition); }
.property-card:hover .property-card-footer b { transform:translateX(3px); }
.property-match-badge {
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 8px;
  border:1px solid rgba(200,169,101,.5);
  border-radius:999px;
  color:var(--gold-strong);
  background:var(--gold-wash);
  font-size:.52rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.property-hero {
  position:relative;
  min-height:360px;
  padding:0;
  color:var(--white);
  background:#0a0a0b;
  border:1px solid rgba(200,169,101,.28);
  border-radius:var(--radius-lg);
  margin-bottom:18px;
  overflow:hidden;
  box-shadow:0 22px 70px rgba(0,0,0,.25);
}
.property-hero-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.08) brightness(.72);
}
.property-hero-shade {
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(4,4,5,.96) 0%,rgba(4,4,5,.72) 45%,rgba(4,4,5,.22) 100%),
    linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.18) 48%,rgba(4,4,5,.92) 100%);
}
.property-hero-content {
  position:relative;
  z-index:1;
  min-height:360px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:31px;
}
.property-hero-top { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.property-hero h1 { font-size:clamp(2.2rem,4vw,4rem); margin:6px 0 11px; text-shadow:0 8px 30px rgba(0,0,0,.45); }
.property-hero p { max-width:700px; color:rgba(255,255,255,.64); }
.property-hero-metrics { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:31px; }
.property-hero-metric { border-top:1px solid rgba(255,255,255,.2); padding-top:14px; }
.property-hero-metric span { display:block; color:rgba(255,255,255,.5); font-size:.6rem; margin-bottom:6px; }
.property-hero-metric strong { color:#fff; font-size:1.18rem; }
.breadcrumb { display:flex; gap:8px; align-items:center; color:var(--text-muted); font-size:.69rem; margin-bottom:16px; }
.breadcrumb button { border:0; padding:0; background:transparent; color:var(--text); font-weight:750; }

.portfolio-browser-section { margin-bottom:18px; }
.section-title-row { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:14px; }
.section-title-row h2 { margin:4px 0 7px; font-size:1.42rem; }
.section-title-row p { color:var(--text-muted); font-size:.72rem; }
.unit-directory-panel { margin-top:22px; }
.unit-directory-header { align-items:flex-end; gap:20px; }
.unit-directory-header .segmented { max-width:100%; flex-wrap:wrap; }
.unit-directory-header .segmented button { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.unit-directory-header .segmented button b { display:inline-grid; place-items:center; min-width:23px; height:23px; padding:0 7px; border-radius:999px; background:rgba(255,255,255,.08); font-size:.61rem; }
.unit-directory-header .segmented button.active b { background:var(--black); color:var(--white); }
.unit-directory-help { display:grid; gap:12px; padding-bottom:14px; }
.status-explanation { padding:12px 14px; border:1px solid var(--line); border-radius:14px; color:var(--text-muted); background:rgba(255,255,255,.025); font-size:.69rem; line-height:1.55; }
@media (max-width: 900px) {
  .unit-directory-header { align-items:flex-start; flex-direction:column; }
  .unit-directory-header .segmented { width:100%; }
}

/* v0.3.2 unified portfolio search and status navigation */
.portfolio-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.portfolio-search-box {
  min-width: 290px;
  flex: 1 1 420px;
  max-width: 620px;
  height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 15px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface);
}
.portfolio-search-box > span { color: var(--text-muted); font-size: .95rem; }
.portfolio-search-box .search-input {
  width: 100%;
  min-width: 0;
  max-width: none;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.portfolio-search-box .search-input:focus { border: 0; box-shadow: none; background: transparent; }
.portfolio-status-tabs {
  flex: 0 1 auto;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
.portfolio-status-tabs::-webkit-scrollbar { display: none; }
.portfolio-status-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  min-height: 38px;
  padding-inline: 12px;
}
.portfolio-status-tabs button b {
  min-width: 22px;
  height: 22px;
  display: inline-grid;
  place-items: center;
  padding: 0 6px;
  border-radius: 999px;
  color: var(--text-muted);
  background: rgba(255,255,255,.07);
  font-size: .58rem;
}
.portfolio-status-tabs button.active b {
  color: #111;
  background: var(--gold);
}
.portfolio-filter-summary {
  min-height: 39px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding: 9px 13px;
  border: 1px solid var(--line);
  border-radius: 13px;
  color: var(--text-muted);
  background: var(--surface-raised);
  font-size: .67rem;
}
.portfolio-filter-summary strong {
  color: var(--text);
  font-size: .66rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.property-unit-toolbar-wrap { display: grid; gap: 12px; }
.property-detail-toolbar { margin-bottom: 0; }

@media (max-width: 1180px) {
  .portfolio-toolbar { align-items: stretch; flex-direction: column; }
  .portfolio-search-box { width: 100%; max-width: none; flex-basis: auto; }
  .portfolio-status-tabs { width: 100%; }
}

@media (max-width: 700px) {
  .portfolio-search-box { min-width: 0; }
  .portfolio-filter-summary { align-items: flex-start; flex-direction: column; gap: 4px; }
  .portfolio-status-tabs { border-radius: 15px; }
}


/* v0.4.0 property photography */
.property-photo-field {
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:16px;
  align-items:center;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface-raised);
}
.property-photo-preview {
  height:110px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:13px;
  background:#09090a;
}
.property-photo-preview img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.04) brightness(.82);
}
.property-photo-field label { margin:0; }
.property-photo-field small {
  display:block;
  margin-top:7px;
  color:var(--text-faint);
  font-size:.58rem;
  line-height:1.45;
}

@media (max-width: 1180px) {
  .property-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .property-grid { grid-template-columns:1fr; }
  .property-card-media { min-height:175px; }
  .property-status-grid > div { padding-inline:6px; }
  .property-photo-field { grid-template-columns:1fr; }
  .property-photo-preview { height:150px; }
  .property-hero-content { padding:23px; }
  .property-hero-top { flex-direction:column; }
  .property-hero-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}


.property-page-heading {
  align-items:center;
  margin-bottom:22px;
}
.property-page-heading h1 {
  font-size:clamp(1.9rem,3.2vw,3rem);
}
.property-photo-notice {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin-top:16px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.022);
}
.property-photo-notice-icon {
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border:1px solid var(--line-strong);
  border-radius:50%;
  color:var(--text-muted);
  font-size:.64rem;
  font-weight:850;
}
.property-photo-notice > div {
  display:grid;
  gap:3px;
}
.property-photo-notice strong {
  font-size:.68rem;
}
.property-photo-notice span {
  color:var(--text-muted);
  font-size:.58rem;
}
.photo-manager-list {
  display:grid;
  gap:9px;
}
.photo-manager-row {
  width:100%;
  display:grid;
  grid-template-columns:96px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  padding:9px;
  border:1px solid var(--line);
  border-radius:14px;
  color:var(--text);
  background:var(--surface-raised);
  text-align:left;
}
.photo-manager-row:hover {
  border-color:var(--gold);
  background:var(--gold-wash);
}
.photo-manager-row img {
  width:96px;
  height:58px;
  object-fit:cover;
  border-radius:10px;
  filter:grayscale(1) contrast(1.05) brightness(.84);
}
.photo-manager-row > span {
  min-width:0;
  display:grid;
  gap:4px;
}
.photo-manager-row strong {
  overflow:hidden;
  font-size:.72rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.photo-manager-row small {
  color:var(--text-muted);
  font-size:.59rem;
}
.photo-manager-row b {
  color:var(--gold);
  font-size:.58rem;
}

@media (max-width:700px) {
  .property-photo-notice { grid-template-columns:auto 1fr; }
  .property-photo-notice .button { grid-column:1 / -1; }
  .photo-manager-row { grid-template-columns:74px minmax(0,1fr); }
  .photo-manager-row img { width:74px; height:52px; }
  .photo-manager-row b { grid-column:2; }
}
.unit-modal-body { padding:0; }
.unit-header { padding:25px 27px 21px; background:radial-gradient(circle at 85% 0,rgba(255,255,255,.12),transparent 35%),#0b0b0d; color:var(--white); }
.unit-header-main { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.unit-header h2 { font-size:1.8rem; margin:6px 0 9px; }
.unit-header p { color:rgba(255,255,255,.54); margin:0; font-size:.72rem; }
.unit-tabs { display:flex; overflow-x:auto; border-bottom:1px solid var(--line); background:#111113; padding:0 16px; }
.unit-tab { flex:none; border:0; border-bottom:2px solid transparent; padding:16px 11px 14px; color:var(--text-muted); background:transparent; font-size:.67rem; font-weight:800; }
.unit-tab.active { color:var(--white); border-color:var(--white); }
.unit-tab-content { padding:24px 26px 30px; min-height:420px; }
.unit-summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
.unit-summary-card { padding:15px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.025); }
.unit-summary-card span { display:block; color:var(--text-muted); font-size:.6rem; margin-bottom:8px; }
.unit-summary-card strong { font-size:.9rem; }
.timeline { position:relative; display:grid; gap:0; }
.timeline-item { display:grid; grid-template-columns:16px 1fr auto; gap:12px; padding:0 0 18px; }
.timeline-mark { width:10px; height:10px; margin-top:3px; border-radius:50%; background:var(--white); position:relative; }
.timeline-item:not(:last-child) .timeline-mark::after { content:""; position:absolute; left:4px; top:10px; width:1px; height:37px; background:var(--line); }
.timeline-item strong { display:block; font-size:.73rem; }
.timeline-item p { margin:4px 0 0; color:var(--text-muted); font-size:.65rem; }
.timeline-item time { color:var(--text-faint); font-size:.59rem; }
.document-list { display:grid; gap:8px; }
.document-row { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:13px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.02); }
.document-row strong { font-size:.71rem; }
.document-row small { display:block; color:var(--text-muted); margin-top:3px; }
.report-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.report-card { min-height:200px; padding:21px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:21px; background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.02)); }
.report-card .report-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; color:var(--black); background:var(--white); font-weight:900; }
.report-card h3 { margin:21px 0 8px; font-size:1rem; }
.report-card p { color:var(--text-muted); font-size:.7rem; line-height:1.55; }
.report-card .button { margin-top:auto; align-self:flex-start; }
.settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.settings-card { padding:21px; background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.02)); border:1px solid var(--line); border-radius:21px; }
.settings-card h3 { margin-bottom:9px; }
.settings-card p { color:var(--text-muted); font-size:.71rem; line-height:1.58; }
.maintenance-hero { margin-bottom:18px; }
.maintenance-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.maintenance-kpi { min-height:126px; padding:19px; text-align:left; border:1px solid var(--line); border-radius:var(--radius-md); color:var(--text); background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02)); display:flex; flex-direction:column; justify-content:space-between; }
.maintenance-kpi:hover { border-color:var(--gold); background:var(--gold-wash); }
.maintenance-kpi span { color:var(--text-muted); font-size:.67rem; text-transform:uppercase; letter-spacing:.09em; font-weight:800; }
.maintenance-kpi strong { font-size:clamp(1.75rem,3vw,2.45rem); letter-spacing:-.055em; }
.maintenance-kpi small { color:var(--text-muted); font-size:.68rem; }
.maintenance-kpi.warning strong { color:var(--warning); }
.maintenance-kpi.cost { color:#111; background:var(--gold); border-color:var(--gold); }
.maintenance-kpi.cost span,.maintenance-kpi.cost small { color:rgba(17,17,17,.68); }
.maintenance-tabs { display:flex; gap:6px; overflow:auto; padding:5px; margin-bottom:16px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.025); }
.maintenance-tabs button { flex:0 0 auto; min-height:36px; padding:0 15px; border:0; border-radius:999px; color:var(--text-muted); background:transparent; font-size:.68rem; font-weight:800; }
.maintenance-tabs button.active { color:#111; background:var(--gold); }
.maintenance-overview-grid,.maintenance-cost-grid { display:grid; grid-template-columns:1.25fr .95fr; gap:14px; margin-bottom:14px; }
.maintenance-priority-list { display:grid; gap:9px; }
.maintenance-job-card { width:100%; padding:15px; text-align:left; border:1px solid var(--line); border-radius:15px; color:var(--text); background:rgba(255,255,255,.025); }
.maintenance-job-card:hover { border-color:var(--gold); background:var(--gold-wash); }
.maintenance-job-card.overdue { border-color:rgba(255,111,114,.38); }
.maintenance-job-card > strong { display:block; margin:10px 0 4px; font-size:.8rem; }
.maintenance-job-card > small { display:block; color:var(--text-muted); font-size:.65rem; }
.maintenance-card-top,.maintenance-card-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.maintenance-job-number { color:var(--gold); font-size:.62rem; font-weight:850; letter-spacing:.05em; }
.maintenance-card-meta { margin-top:12px; color:var(--text-muted); font-size:.62rem; }
.maintenance-card-meta b { color:var(--text); }
.priority-chip { display:inline-flex; min-height:24px; align-items:center; padding:0 8px; border-radius:999px; border:1px solid var(--line-strong); color:var(--text-muted); font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; font-weight:850; }
.priority-chip.urgent { color:#fff; border-color:rgba(255,111,114,.5); background:rgba(255,111,114,.18); }
.priority-chip.high { color:#161006; border-color:var(--warning); background:var(--warning); }
.priority-chip.normal { color:var(--text); }
.priority-chip.low { opacity:.72; }
.status-chip.reported,.status-chip.reviewed,.status-chip.reopened { color:var(--text); background:rgba(255,255,255,.08); }
.status-chip.scheduled,.status-chip.dispatched { color:#111; background:var(--gold); border-color:var(--gold); }
.status-chip.in_progress { color:#07120d; background:var(--success); border-color:var(--success); }
.status-chip.waiting_parts { color:#171006; background:var(--warning); border-color:var(--warning); }
.status-chip.verified,.status-chip.closed { color:var(--text-muted); background:rgba(255,255,255,.045); }
.maintenance-cost-summary { display:grid; gap:18px; }
.maintenance-cost-lead span { display:block; color:var(--text-muted); font-size:.67rem; text-transform:uppercase; letter-spacing:.08em; }
.maintenance-cost-lead strong { display:block; margin:6px 0; font-size:2rem; letter-spacing:-.05em; }
.maintenance-cost-lead small { color:var(--text-muted); }
.maintenance-cost-bars { display:grid; gap:10px; }
.maintenance-cost-bars button { display:grid; grid-template-columns:minmax(120px,1fr) minmax(90px,1.4fr) auto; gap:12px; align-items:center; border:0; color:var(--text); background:transparent; text-align:left; }
.maintenance-cost-bars button span { font-size:.69rem; }
.maintenance-cost-bars button i,.cost-ranking-list i { height:5px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.maintenance-cost-bars button i b,.cost-ranking-list i b { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--gold-strong),var(--gold)); }
.maintenance-cost-bars button strong { font-size:.68rem; }
.maintenance-recent-panel { margin-bottom:14px; }
.maintenance-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.maintenance-table-panel,.maintenance-schedule-panel { margin-bottom:14px; }
.maintenance-table td small { margin-top:4px; }
.maintenance-row-overdue { background:rgba(255,111,114,.045); }
.maintenance-schedule-list { display:grid; gap:13px; }
.maintenance-schedule-day { border:1px solid var(--line); border-radius:15px; overflow:hidden; }
.maintenance-schedule-day > header { display:flex; justify-content:space-between; gap:12px; padding:13px 15px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.025); }
.maintenance-schedule-day > header strong { font-size:.75rem; }
.maintenance-schedule-day > header span { color:var(--text-muted); font-size:.65rem; }
.maintenance-schedule-day button { width:100%; display:grid; grid-template-columns:70px 1fr auto; gap:14px; align-items:center; padding:13px 15px; border:0; border-bottom:1px solid var(--line); color:var(--text); background:transparent; text-align:left; }
.maintenance-schedule-day button:last-child { border-bottom:0; }
.maintenance-schedule-day button:hover { background:var(--gold-wash); }
.maintenance-schedule-day time { color:var(--gold); font-size:.7rem; font-weight:850; }
.maintenance-schedule-day button span:nth-child(2) strong,.maintenance-schedule-day button span:nth-child(2) small { display:block; }
.maintenance-schedule-day button span:nth-child(2) strong { font-size:.73rem; }
.maintenance-schedule-day button span:nth-child(2) small { margin-top:4px; color:var(--text-muted); font-size:.63rem; }
.cost-ranking-list { display:grid; gap:7px; }
.cost-ranking-list button,.cost-ranking-list > div { display:grid; grid-template-columns:34px minmax(140px,1fr) minmax(100px,1.4fr) auto; gap:12px; align-items:center; padding:10px 8px; border:0; border-radius:12px; color:var(--text); background:transparent; text-align:left; }
.cost-ranking-list button:hover { background:var(--gold-wash); }
.cost-ranking-list span:nth-child(2) strong,.cost-ranking-list span:nth-child(2) small { display:block; }
.cost-ranking-list span:nth-child(2) strong { font-size:.71rem; }
.cost-ranking-list span:nth-child(2) small { margin-top:3px; color:var(--text-muted); font-size:.61rem; }
.cost-ranking-list > button > strong,.cost-ranking-list > div > strong { font-size:.69rem; }
.maintenance-guidance { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
.maintenance-guidance div { padding:15px 17px; border:1px solid var(--line); border-radius:15px; background:rgba(255,255,255,.02); }
.maintenance-guidance strong,.maintenance-guidance span { display:block; }
.maintenance-guidance strong { margin-bottom:5px; font-size:.72rem; }
.maintenance-guidance span { color:var(--text-muted); font-size:.65rem; line-height:1.55; }
.maintenance-detail-head { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; margin-bottom:18px; }
.maintenance-detail-head h2 { margin:13px 0 7px; font-size:1.45rem; }
.maintenance-detail-head p { max-width:700px; margin:0; color:var(--text-muted); line-height:1.6; }
.maintenance-detail-head .priority-chip { margin-left:7px; }
.maintenance-detail-cost { min-width:180px; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--gold-wash); }
.maintenance-detail-cost span,.maintenance-detail-cost small,.maintenance-detail-cost strong { display:block; }
.maintenance-detail-cost span { color:var(--text-muted); font-size:.62rem; text-transform:uppercase; }
.maintenance-detail-cost strong { margin:6px 0; font-size:1.45rem; }
.maintenance-detail-cost small { color:var(--text-muted); }
.maintenance-cost-breakdown { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:15px 0; }
.maintenance-cost-breakdown div { padding:13px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.02); }
.maintenance-cost-breakdown span,.maintenance-cost-breakdown strong { display:block; }
.maintenance-cost-breakdown span { margin-bottom:5px; color:var(--text-muted); font-size:.6rem; text-transform:uppercase; }
.maintenance-cost-breakdown strong { font-size:.73rem; }
.maintenance-form { align-items:start; }

.dashboard-maintenance-grid { display:grid; grid-template-columns:1.15fr .9fr .9fr; gap:13px; }
.dashboard-maintenance-summary { display:grid; grid-template-columns:repeat(2,1fr); }
.dashboard-maintenance-summary > div { min-height:112px; padding:18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.dashboard-maintenance-summary > div:nth-child(2n) { border-right:0; }
.dashboard-maintenance-summary > div:nth-last-child(-n+2) { border-bottom:0; }
.dashboard-maintenance-summary span,.dashboard-maintenance-summary strong,.dashboard-maintenance-summary small { display:block; }
.dashboard-maintenance-summary span { color:var(--text-muted); font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; }
.dashboard-maintenance-summary strong { margin:7px 0; font-size:1.45rem; }
.dashboard-maintenance-summary small { color:var(--text-muted); font-size:.62rem; }
.dashboard-maintenance-properties header,.dashboard-maintenance-urgent header { padding:16px 17px; border-bottom:1px solid var(--line); }
.dashboard-maintenance-properties header span,.dashboard-maintenance-urgent header span { display:block; color:var(--text-faint); font-size:.58rem; letter-spacing:.1em; }
.dashboard-maintenance-properties header strong,.dashboard-maintenance-urgent header strong { display:block; margin-top:5px; font-size:.74rem; }
.dashboard-maintenance-properties > div,.dashboard-maintenance-urgent > div { padding:8px; }
.dashboard-maintenance-properties button { width:100%; display:grid; grid-template-columns:28px 1fr auto; gap:9px; align-items:center; padding:10px; border:0; border-radius:10px; color:var(--text); background:transparent; text-align:left; }
.dashboard-maintenance-properties button:hover,.dashboard-maintenance-urgent button:hover { background:var(--gold-wash); }
.dashboard-maintenance-properties button span { color:var(--text-faint); font-size:.58rem; }
.dashboard-maintenance-properties button strong { font-size:.68rem; }
.dashboard-maintenance-properties button b { font-size:.65rem; }
.dashboard-maintenance-urgent button { width:100%; display:grid; grid-template-columns:10px 1fr; gap:8px 10px; align-items:center; padding:10px; border:0; border-radius:10px; color:var(--text); background:transparent; text-align:left; }
.dashboard-maintenance-urgent button strong { font-size:.68rem; }
.dashboard-maintenance-urgent button small { grid-column:2; color:var(--text-muted); font-size:.6rem; }
.priority-dot { width:8px; height:8px; border-radius:50%; background:var(--warning); }
.priority-dot.urgent { background:var(--danger); box-shadow:0 0 0 4px rgba(255,111,114,.1); }

html[data-theme="day"] .maintenance-kpi { background:#fff; }
html[data-theme="day"] .maintenance-job-card,html[data-theme="day"] .maintenance-guidance div,html[data-theme="day"] .maintenance-schedule-day,html[data-theme="day"] .maintenance-cost-breakdown div { background:#fff; }
html[data-theme="day"] .maintenance-kpi.cost { background:var(--gold); }

@media (max-width:1150px) {
  .maintenance-kpi-grid { grid-template-columns:repeat(2,1fr); }
  .maintenance-overview-grid,.maintenance-cost-grid,.dashboard-maintenance-grid { grid-template-columns:1fr; }
  .maintenance-card-grid { grid-template-columns:1fr; }
}
@media (max-width:720px) {
  .maintenance-kpi-grid,.maintenance-guidance { grid-template-columns:1fr; }
  .maintenance-detail-head { flex-direction:column; }
  .maintenance-detail-cost { width:100%; }
  .maintenance-cost-breakdown { grid-template-columns:repeat(2,1fr); }
  .maintenance-schedule-day button { grid-template-columns:55px 1fr; }
  .maintenance-schedule-day button .status-chip { grid-column:2; justify-self:start; }
}

.modal-footer { flex-wrap:wrap; }

/* v0.6.0 account, notification and administration components */
.account-menu,.notification-panel{position:absolute;right:0;top:calc(100% + 12px);z-index:120;width:min(360px,calc(100vw - 28px));border:1px solid var(--line-strong);border-radius:18px;background:rgba(16,16,18,.98);box-shadow:0 28px 80px rgba(0,0,0,.5);backdrop-filter:blur(24px);overflow:hidden}.account-menu{width:285px;padding:8px}.account-menu-profile{display:flex;align-items:center;gap:11px;padding:11px 10px 14px;border-bottom:1px solid var(--line);margin-bottom:6px}.account-menu-profile>div{display:grid;gap:2px}.account-menu-profile small{color:var(--text-muted)}.account-menu>button{width:100%;display:flex;align-items:center;gap:8px;padding:11px 12px;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;font-size:.76rem}.account-menu>button:hover{background:rgba(255,255,255,.06)}.account-menu-divider{height:1px;background:var(--line);margin:6px 4px}.notification-panel header{display:flex;align-items:center;justify-content:space-between;padding:16px 17px;border-bottom:1px solid var(--line)}.notification-panel header>div{display:grid;gap:3px}.notification-panel header small{color:var(--text-muted)}.notification-panel header button{border:0;background:transparent;color:var(--text);font-size:1.2rem}.notification-list{max-height:420px;overflow:auto;padding:7px}.notification-item{width:100%;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left}.notification-item:last-child{border-bottom:0}.notification-item:hover{background:rgba(255,255,255,.04)}.notification-item>span:nth-child(2){display:grid;gap:4px}.notification-item small{color:var(--text-muted);line-height:1.35}.notification-item>b{font-size:.62rem;color:#d9b85f}.notification-item-icon{width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(211,174,91,.24);border-radius:9px;color:#d9b85f}.notification-panel footer{padding:10px;border-top:1px solid var(--line)}.notification-panel footer button{width:100%;border:0;border-radius:10px;background:rgba(211,174,91,.1);color:#d9b85f;padding:10px}.notification-count{position:absolute;right:-2px;top:-4px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:#d1ad58;color:#090909;font-size:.56rem}.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.settings-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--text-muted);border-radius:999px;padding:9px 13px}.settings-tabs button.active{background:#d1ad58;color:#0a0a0a;border-color:#d1ad58}.profile-settings-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:16px}.settings-form-panel{padding:22px}.settings-form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.account-profile-hero{display:flex;align-items:center;gap:16px;padding:22px}.account-profile-hero .avatar{width:66px;height:66px;font-size:1.1rem}.account-profile-hero>div{display:grid;gap:4px}.account-profile-hero small{color:var(--text-muted)}
html[data-theme="day"] .account-menu,html[data-theme="day"] .notification-panel{background:rgba(255,255,255,.98)}

/* =========================================================
   v0.7.0 MAINTENANCE ANALYTICS & PAYMENT SCHEDULE
   ========================================================= */
.maintenance-analytics-grid {
  grid-template-columns:minmax(280px,.82fr) minmax(340px,1.18fr);
  align-items:stretch;
}
.maintenance-analytics-grid .dashboard-maintenance-summary,
.maintenance-analytics-grid .dashboard-maintenance-urgent { min-width:0; }
.maintenance-cost-property-chart,
.maintenance-cost-trend-chart { min-width:0; }
.maintenance-cost-property-chart .premium-panel-body,
.maintenance-cost-trend-chart .premium-panel-body { padding-top:13px; }
.maintenance-cost-property-chart .maintenance-cost-bars { display:grid; gap:10px; }
.maintenance-cost-property-chart .maintenance-cost-bars button {
  width:100%;
  display:grid;
  grid-template-columns:minmax(130px,.9fr) minmax(120px,1.2fr);
  gap:14px;
  align-items:center;
  padding:7px 0;
  border:0;
  color:var(--text);
  background:transparent;
  text-align:left;
}
.maintenance-cost-property-chart .maintenance-cost-bars button span { display:grid; gap:3px; min-width:0; }
.maintenance-cost-property-chart .maintenance-cost-bars button b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.69rem; }
.maintenance-cost-property-chart .maintenance-cost-bars button small { color:var(--text-muted); font-size:.58rem; }
.maintenance-cost-property-chart .maintenance-cost-bars button > i {
  display:block;
  height:7px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.07);
}
.maintenance-cost-property-chart .maintenance-cost-bars button > i em {
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#8d7138 0%,var(--gold) 58%,#edcf7e 100%);
  box-shadow:0 0 14px rgba(211,174,91,.18);
}
.maintenance-cost-property-chart .maintenance-cost-bars button:hover b { color:var(--gold); }
.maintenance-trend-bars {
  min-height:214px;
  display:grid;
  grid-template-columns:repeat(12,minmax(22px,1fr));
  gap:8px;
  align-items:end;
  padding-top:10px;
}
.maintenance-trend-bars > div { min-width:0; display:grid; grid-template-rows:154px auto auto; gap:6px; text-align:center; }
.maintenance-trend-bars > div > span { display:flex; align-items:flex-end; justify-content:center; border-bottom:1px solid var(--line); }
.maintenance-trend-bars > div > span i {
  width:min(22px,70%);
  min-height:2px;
  border-radius:8px 8px 2px 2px;
  background:linear-gradient(180deg,#efd487 0%,var(--gold) 50%,#856a35 100%);
  box-shadow:0 0 14px rgba(211,174,91,.14);
}
.maintenance-trend-bars b { color:var(--text-muted); font-size:.54rem; font-weight:700; }
.maintenance-trend-bars small { color:var(--text-faint); font-size:.5rem; overflow:hidden; text-overflow:ellipsis; }

.financial-kpi-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.financial-kpi {
  min-height:128px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:19px;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
}
.financial-kpi span { color:var(--text-muted); font-size:.63rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.financial-kpi strong { font-size:clamp(1.3rem,2.25vw,2rem); letter-spacing:-.05em; }
.financial-kpi small { color:var(--text-muted); font-size:.64rem; }
.financial-toolbar { align-items:center; }
.payment-status-tabs { max-width:100%; overflow-x:auto; }
.payment-status-tabs button { flex:0 0 auto; white-space:nowrap; }
.payment-schedule-panel { margin-bottom:18px; }
.payment-schedule-table td { vertical-align:middle; }
.payment-summary-grid { margin-bottom:16px; }
.payment-method-cell { display:grid; gap:3px; }
.payment-method-cell small { display:block; color:var(--text-muted); font-size:.57rem; }
.row-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.status-chip.due_today,.status-chip.ready_to_deposit { color:#111; background:var(--gold); border-color:var(--gold); }
.status-chip.due_soon,.status-chip.cheque_received { color:#171006; background:rgba(200,169,101,.72); border-color:var(--gold); }
.status-chip.deposited { color:var(--text); background:rgba(142,183,255,.15); border-color:rgba(142,183,255,.45); }
.status-chip.cleared { color:#07120d; background:var(--success); border-color:var(--success); }
.status-chip.returned,.status-chip.auto_debit_failed { color:#fff; background:rgba(255,111,114,.16); border-color:rgba(255,111,114,.5); }
.status-chip.partially_paid { color:#171006; background:var(--warning); border-color:var(--warning); }
.status-chip.cancelled,.status-chip.waived { color:var(--text-faint); background:rgba(255,255,255,.03); text-decoration:line-through; }

@media (max-width:1200px) {
  .maintenance-analytics-grid { grid-template-columns:1fr; }
  .financial-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* =========================================================
   v0.7.2 RESPONSIVE RECORDS & ACCESS MANAGEMENT
   ========================================================= */
.mobile-record-list,.mobile-maintenance-trend,.mobile-lease-expiry{display:none}
.mobile-record-card{width:100%;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));color:var(--text);padding:15px;text-align:left;display:grid;gap:10px;box-shadow:0 12px 34px rgba(0,0,0,.12)}
.mobile-record-card>strong{font-size:.88rem;line-height:1.35}
.mobile-record-top,.mobile-record-bottom,.mobile-record-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mobile-record-top>b{font-size:.76rem;letter-spacing:.015em}
.mobile-record-meta{padding-top:8px;border-top:1px solid var(--line)}
.mobile-record-meta span{color:var(--text-faint);font-size:.57rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.mobile-record-meta b{max-width:68%;font-size:.69rem;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-record-bottom{padding-top:2px}
.mobile-record-bottom>b{color:var(--gold-soft);font-size:.74rem}
.mobile-record-bottom i{color:var(--text-muted);font-size:.62rem;font-style:normal}
.mobile-record-card.is-static{opacity:.8;cursor:default}

.mobile-maintenance-trend{color:var(--gold);width:100%;padding:4px 16px 14px}
.mobile-maintenance-trend svg{display:block;width:100%;height:auto;overflow:visible}
.mobile-trend-axis{stroke:var(--line-strong);stroke-width:1}
.mobile-trend-line{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.mobile-trend-point circle{fill:var(--surface);stroke:currentColor;stroke-width:3}
.mobile-trend-point text{fill:var(--text-faint);font-size:17px;font-weight:700}
.mobile-lease-months{display:grid;gap:0}
.mobile-lease-months>button{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left}
.mobile-lease-months>button:last-child{border-bottom:0}
.mobile-lease-months>button span{display:grid;gap:3px}
.mobile-lease-months>button span b{font-size:.76rem}
.mobile-lease-months>button span small{color:var(--text-muted);font-size:.61rem}
.mobile-lease-months>button>strong{font-size:1.18rem}
.mobile-lease-months .risk-chip{font-style:normal}
.mobile-full-timeline{display:grid;gap:0}
.mobile-full-timeline>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}
.mobile-full-timeline>div:last-child{border-bottom:0}
.mobile-full-timeline span{display:grid;gap:4px}
.mobile-full-timeline span strong{font-size:.76rem}
.mobile-full-timeline span small{color:var(--text-muted);font-size:.6rem}
.mobile-full-timeline>div>b{font-size:.69rem}

.premium-access-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}
.access-tabs{display:flex;align-items:center;gap:4px;padding:5px;margin-bottom:18px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.018);overflow:auto}
.access-tabs button{flex:0 0 auto;border:0;border-radius:12px;background:transparent;color:var(--text-muted);padding:11px 18px;font-size:.68rem;font-weight:800;letter-spacing:.03em}
.access-tabs button.active{background:var(--gold);color:#111;box-shadow:0 8px 24px rgba(204,169,89,.16)}
.access-tab-panel{display:grid;gap:16px}
.access-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.access-panel-heading h2{margin:0;font-size:1.15rem}
.premium-user-list{display:grid;gap:10px}
.premium-user-row{display:grid;grid-template-columns:auto minmax(180px,1.35fr) minmax(130px,.8fr) minmax(140px,.9fr) auto auto auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(255,255,255,.012))}
.premium-user-avatar{width:42px;height:42px}
.premium-user-identity{display:grid;gap:2px;min-width:0}
.premium-user-identity strong{font-size:.79rem}
.premium-user-identity small{color:var(--text-muted);font-size:.64rem}
.premium-user-identity em{color:var(--text-faint);font-size:.57rem;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.premium-user-role,.premium-user-security{display:grid;gap:4px}
.premium-user-role span,.premium-user-security span{color:var(--text-faint);font-size:.52rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.premium-user-role strong,.premium-user-security strong{font-size:.67rem}
.user-more-button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text-muted);font-weight:900}
.premium-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.premium-role-card{display:grid;gap:12px;min-height:220px;padding:22px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));color:var(--text);text-align:left}
.role-card-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:rgba(210,177,95,.12);border:1px solid rgba(210,177,95,.25);color:var(--gold-soft);font-size:1.2rem;font-weight:900}
.premium-role-card>strong{font-size:1rem}
.premium-role-card p{margin:0;color:var(--text-muted);font-size:.68rem;line-height:1.55}
.premium-role-card>div{margin-top:auto;display:flex;align-items:center;justify-content:space-between;color:var(--text-muted);font-size:.62rem}
.premium-role-card>div i{font-style:normal;color:var(--gold-soft)}
.permission-role-picker{width:max-content;max-width:100%;margin-bottom:4px}
.premium-permission-editor{display:grid;gap:14px}
.permission-editor-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.022)}
.permission-editor-head>div{display:grid;gap:4px}
.permission-editor-head strong{font-size:.9rem}
.permission-editor-head span{color:var(--text-muted);font-size:.64rem}
.permission-editor-head>b{color:var(--gold-soft);font-size:.68rem}
.permission-group-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.permission-group{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.015);overflow:hidden}
.permission-group summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:15px 17px;cursor:pointer;border-bottom:1px solid var(--line)}
.permission-group summary::-webkit-details-marker{display:none}
.permission-group summary span{display:grid;gap:3px}
.permission-group summary strong{font-size:.75rem}
.permission-group summary small{color:var(--text-faint);font-size:.55rem}
.permission-group summary i{font-style:normal;color:var(--gold-soft)}
.permission-group>div{display:grid}
.premium-permission-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer}
.premium-permission-row:last-child{border-bottom:0}
.premium-permission-row>span{display:grid;gap:3px}
.premium-permission-row>span strong{font-size:.67rem}
.premium-permission-row>span small{color:var(--text-faint);font-size:.53rem}
.premium-permission-row input{position:absolute;opacity:0;pointer-events:none}
.permission-toggle{position:relative;display:block;width:38px;height:22px;flex:0 0 auto;border-radius:999px;background:#343438;transition:.2s}
.permission-toggle::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#aaa;transition:.2s}
.premium-permission-row input:checked+.permission-toggle{background:var(--gold)}
.premium-permission-row input:checked+.permission-toggle::after{transform:translateX(16px);background:#111}
.premium-permission-row.is-unavailable{opacity:.5;cursor:not-allowed}
.access-save-bar{display:flex;justify-content:flex-end;gap:10px;padding-top:2px}
.session-list{display:grid;gap:12px}
.session-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.02)}
.session-card>div{display:grid;gap:3px}
.session-card>div strong{font-size:.76rem}
.session-card>div small{color:var(--text-muted);font-size:.61rem}
.access-information-card{display:grid;gap:6px;padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(210,177,95,.055)}
.access-information-card strong{font-size:.7rem}
.access-information-card span{color:var(--text-muted);font-size:.61rem;line-height:1.5}
.access-activity-list{display:grid;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.access-activity-list>article{display:grid;grid-template-columns:150px minmax(0,1fr) 150px;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line)}
.access-activity-list>article:last-child{border-bottom:0}
.access-activity-list>article>span,.access-activity-list>article>b{color:var(--text-muted);font-size:.58rem}
.access-activity-list>article>div{display:grid;gap:3px}
.access-activity-list>article>div strong{font-size:.68rem}
.access-activity-list>article>div small{color:var(--text-faint);font-size:.57rem}
.user-profile-overview{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.user-profile-overview>div{display:grid;gap:4px}
.user-profile-overview>div strong{font-size:.8rem}
.user-profile-overview>div small{color:var(--text-muted);font-size:.62rem}
.user-profile-sections{display:grid;gap:16px;padding-top:18px}
.user-profile-sections section{display:grid;gap:10px}
.user-profile-sections h3{margin:0;font-size:.74rem}
.access-summary-grid{display:grid;gap:12px}
.access-summary-grid>article{display:grid;gap:6px;min-height:118px;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.032),rgba(255,255,255,.012))}
.access-summary-grid>article span{color:var(--text-faint);font-size:.56rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.access-summary-grid>article strong{font-size:1.55rem;line-height:1.05}
.access-summary-grid>article small{color:var(--text-muted);font-size:.58rem}
.account-state{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:0 9px;border-radius:999px;font-size:.53rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.account-state.active{color:#bfe2ce;background:rgba(72,156,108,.13);border:1px solid rgba(72,156,108,.28)}
.account-state.disabled{color:#e2b9b9;background:rgba(173,74,74,.13);border:1px solid rgba(173,74,74,.28)}

/* v0.8.0 shared record-count badge */
.unit-directory-count {
  display:inline-grid;
  place-items:center;
  min-width:42px;
  height:32px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--gold-soft);
  background:rgba(209,173,88,.06);
  font-size:.68rem;
  font-weight:800;
}
