.property-section,
.property-drawer {
  --property-blue: #1768e5;
  --property-blue-dark: #174ca4;
  --property-blue-soft: #edf5ff;
  --property-navy: #15355f;
  --property-border: #dfe7f1;
  --property-muted: #738197;
  color: #203047;
}

.property-section button,
.property-drawer button,
.property-modal button,
.property-create-dialog button { font: inherit; }

.property-shell { display: grid; gap: 12px; }
.property-card { border: 1px solid var(--property-border); border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(31, 55, 86, .05); }
.property-page-head { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 14px 16px; }
.property-page-head h2 { margin: 1px 0 3px; font-size: 20px; }
.property-page-head p { margin: 0; color: var(--property-muted); font-size: 12px; line-height: 1.5; }
.property-head-badges { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }
.property-entry-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border-color: #cfe0f5; background: linear-gradient(110deg, #f7fbff, #eef5ff); }
.property-entry-bar > div { display: grid; gap: 3px; min-width: 0; }
.property-entry-bar strong { color: #25476f; font-size: 14px; }
.property-entry-bar small { color: #6f8197; font-size: 11px; line-height: 1.45; }
.property-entry-bar .property-add-button { flex: 0 0 auto; min-width: 126px; box-shadow: 0 7px 16px rgba(23, 104, 229, .17); }
.property-demo-badge,
.property-role-badge,
.property-tag { display: inline-flex; align-items: center; gap: 5px; min-height: 27px; padding: 4px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.property-demo-badge { color: #9a5b00; background: #fff2d9; }
.property-role-badge { color: var(--property-blue); background: var(--property-blue-soft); }
.property-toolbar-button { min-height: 36px; padding: 8px 12px; border: 1px solid var(--property-border); border-radius: 9px; color: #3d526d; background: #fff; font-weight: 600; }
.property-toolbar-button:hover { border-color: #a8c5ec; color: var(--property-blue); background: #f7fbff; }
.property-toolbar-button.primary { border-color: var(--property-blue); color: #fff; background: var(--property-blue); }
.property-toolbar-button.danger { border-color: #f1c9c9; color: #b63333; background: #fff8f8; }
.property-toolbar-button:disabled { cursor: not-allowed; opacity: .45; }
.property-manage-menu { position: relative; }
.property-manage-menu > summary { display: grid; place-items: center; min-height: 36px; padding: 7px 13px; border: 1px solid #cfdbea; border-radius: 9px; color: #344d6a; background: #fff; cursor: pointer; font-size: 12px; font-weight: 800; list-style: none; }
.property-manage-menu > summary::-webkit-details-marker { display: none; }
.property-manage-menu[open] > summary { border-color: #9bbff0; color: var(--property-blue); background: #f5f9ff; }
.property-manage-popover { position: absolute; top: calc(100% + 8px); right: 0; z-index: 20; width: 330px; padding: 12px; border: 1px solid #d9e3ef; border-radius: 12px; background: #fff; box-shadow: 0 18px 45px rgba(31, 55, 86, .18); }
.property-manage-role { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.property-manage-role label { display: grid; gap: 5px; color: #65748a; font-size: 11px; font-weight: 700; }
.property-manage-role select { width: 100%; min-height: 34px; padding: 6px 8px; border: 1px solid #d5e0ec; border-radius: 8px; color: #263b55; background: #fff; }
.property-manage-role .property-role-badge { grid-column: 1 / -1; width: max-content; }
.property-manage-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #edf1f5; }
.property-manage-actions button { min-height: 34px; padding: 7px 9px; border: 1px solid #d9e3ee; border-radius: 8px; color: #415873; background: #fff; font-size: 12px; font-weight: 700; }
.property-manage-actions button:hover { border-color: #a8c5ec; color: var(--property-blue); background: #f7fbff; }
.property-manage-actions button.danger { color: #b13a3a; background: #fff8f8; }
.property-manage-popover > small { display: block; margin-top: 9px; color: #8a96a7; font-size: 10px; }

.property-role-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 13px 18px; border-top: 1px solid var(--property-border); background: #f8fbff; }
.property-role-bar label { display: flex; align-items: center; gap: 7px; color: #56677d; font-size: 12px; font-weight: 700; }
.property-role-bar select { min-height: 34px; padding: 6px 32px 6px 10px; border: 1px solid #d4dfeb; border-radius: 8px; color: #24364e; background: #fff; }
.property-role-note { margin-left: auto; color: var(--property-muted); font-size: 12px; }

.property-tabs { display: flex; gap: 4px; padding: 5px; border: 1px solid var(--property-border); border-radius: 12px; background: #edf2f8; overflow-x: auto; }
.property-tab { flex: 0 0 auto; padding: 9px 16px; border: 0; border-radius: 8px; color: #607086; background: transparent; font-weight: 700; }
.property-tab.active { color: var(--property-blue-dark); background: #fff; box-shadow: 0 2px 8px rgba(35, 67, 104, .1); }

.property-list-panel { display: grid; gap: 10px; }
.property-quick-views { position: relative; display: flex; align-items: center; gap: 7px; padding: 10px 12px; overflow: visible; }
.property-quick-view { flex: 0 0 auto; min-height: 34px; padding: 7px 12px; border: 1px solid #dfe7f1; border-radius: 999px; color: #566981; background: #fff; font-size: 12px; font-weight: 700; }
.property-quick-view.active { border-color: #b8d2fa; color: var(--property-blue); background: var(--property-blue-soft); }
.property-quick-view .count { margin-left: 4px; opacity: .7; }
.property-more-views { position: relative; margin-left: auto; flex: 0 0 auto; }
.property-more-views > summary { min-height: 34px; padding: 7px 11px; border: 1px solid #dfe7f1; border-radius: 999px; color: #5b6d83; background: #fff; cursor: pointer; font-size: 12px; font-weight: 700; list-style: none; }
.property-more-views > summary::-webkit-details-marker { display: none; }
.property-more-views > summary::after { margin-left: 5px; content: "⌄"; }
.property-more-views > summary.active,
.property-more-views[open] > summary { border-color: #b8d2fa; color: var(--property-blue); background: var(--property-blue-soft); }
.property-more-views > div { position: absolute; top: calc(100% + 7px); right: 0; z-index: 12; display: grid; width: 190px; padding: 7px; border: 1px solid #dce5ef; border-radius: 11px; background: #fff; box-shadow: 0 15px 35px rgba(31, 55, 86, .16); }
.property-more-views button { display: flex; align-items: center; justify-content: space-between; min-height: 35px; padding: 7px 9px; border: 0; border-radius: 7px; color: #53677f; background: transparent; text-align: left; font-size: 12px; }
.property-more-views button:hover,
.property-more-views button.active { color: var(--property-blue); background: #eef5ff; }
.property-more-views button span { color: #8a97a8; }

.property-filter-card { padding: 10px 12px; }
.property-filter-main { display: grid; grid-template-columns: minmax(220px, 1.55fr) repeat(4, minmax(120px, .8fr)); gap: 8px; }
.property-filter-main label,
.property-advanced-grid label,
.property-form-grid label,
.property-field { display: grid; gap: 6px; color: #5b6b80; font-size: 12px; font-weight: 700; }
.property-filter-main input,
.property-filter-main select,
.property-advanced-grid input,
.property-advanced-grid select,
.property-form-grid input,
.property-form-grid select,
.property-form-grid textarea,
.property-field input,
.property-field select,
.property-field textarea { width: 100%; min-height: 34px; padding: 6px 9px; border: 1px solid #d6e0eb; border-radius: 8px; color: #25374f; background: #fff; outline: none; }
.property-filter-main input:focus,
.property-filter-main select:focus,
.property-advanced-grid input:focus,
.property-advanced-grid select:focus,
.property-form-grid input:focus,
.property-form-grid select:focus,
.property-form-grid textarea:focus,
.property-field input:focus,
.property-field select:focus,
.property-field textarea:focus { border-color: #8ab5f5; box-shadow: 0 0 0 3px rgba(23, 104, 229, .08); }
.property-community-filter { position: relative; z-index: 14; }
.property-community-combobox { position: relative; display: block; }
.property-community-combobox input { padding-right: 28px; }
.property-community-caret { position: absolute; top: 50%; right: 10px; color: #7c8da3; font-size: 14px; pointer-events: none; transform: translateY(-50%); }
.property-community-suggestions { position: absolute; top: calc(100% + 5px); left: 0; z-index: 40; display: grid; width: max(100%, 230px); max-height: 310px; overflow-y: auto; padding: 6px; border: 1px solid #d9e3ef; border-radius: 10px; background: #fff; box-shadow: 0 14px 34px rgba(31, 55, 86, .18); }
.property-community-suggestions[hidden] { display: none; }
.property-community-suggestions button { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 36px; padding: 7px 9px; border: 0; border-radius: 7px; color: #263b56; background: transparent; text-align: left; cursor: pointer; }
.property-community-suggestions button:hover { color: var(--property-blue); background: #edf5ff; }
.property-community-suggestions button small { color: #8a98aa; font-size: 10px; font-weight: 500; }
.property-community-suggestions p { margin: 0; padding: 10px 9px; color: #8492a5; font-size: 11px; font-weight: 500; }
.property-search-label { position: relative; }
.property-search-label input { padding-left: 32px; }
.property-search-label::after { position: absolute; left: 10px; bottom: 7px; content: "⌕"; color: #8292a7; font-size: 17px; font-weight: 400; }
.property-filter-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; padding-top:8px; border-top:1px solid #edf1f5; }
.property-advanced { flex:1; margin:0; border:0; }
.property-advanced summary { width: max-content; padding: 0; color: var(--property-blue); cursor: pointer; font-size: 12px; font-weight: 700; }
.property-advanced-grid { display: grid; grid-template-columns: repeat(4, minmax(135px, 1fr)); gap: 10px; padding-top: 12px; }
.property-range { display: grid; grid-template-columns: 1fr auto 1fr; gap: 5px; align-items: center; }
.property-filter-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content:flex-end; gap: 7px; margin: 0; }
.property-filter-summary { margin-left: auto; color: var(--property-muted); font-size: 12px; }

.property-table-card { overflow: hidden; }
.property-table-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; border-bottom: 1px solid var(--property-border); }
.property-table-head h3 { margin: 0; font-size: 16px; }
.property-table-head p { margin: 4px 0 0; color: var(--property-muted); font-size: 12px; }
.property-table-head-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.property-table-wrap { width: 100%; overflow: auto; }
.property-table { width: 100%; min-width: 860px; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.property-table th:nth-child(1) { width: 22%; }
.property-table th:nth-child(2) { width: 13%; }
.property-table th:nth-child(3) { width: 16%; }
.property-table th:nth-child(4) { width: 13%; }
.property-table th:nth-child(5) { width: 16%; }
.property-table th:nth-child(6) { width: 10%; }
.property-table th:nth-child(7) { width: 10%; }
.property-table th { position: sticky; top: 0; z-index: 1; padding: 11px 9px; color: #627187; background: #f6f9fc; text-align: left; white-space: nowrap; }
.property-table td { padding: 11px 9px; border-top: 1px solid #edf1f5; vertical-align: middle; }
.property-table tbody tr { cursor: pointer; transition: background .15s; }
.property-table tbody tr:hover { background: #f7fbff; }
.property-table strong { color: #20324a; }
.property-table small { display: block; margin-top: 3px; color: #8794a6; }
.property-price strong { color: #d74848; }
.property-status-stack > div { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.property-status-stack > div > small { display: inline; margin: 0; color: #8a97a7; font-size: 10px; }
.property-status-stack > .property-status { margin-top: 5px; }
.property-muted-value { color: #96a1b0; }
.property-days.warning { color: #b37300; font-weight: 700; }
.property-days.danger { color: #c83939; font-weight: 800; }
.property-status { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.property-status.sale { color: #8d6100; background: #fff1ba; }
.property-status.rent { color: #ae3030; background: #ffe6e6; }
.property-status.both { color: #ad5907; background: #ffead7; }
.property-status.done { color: #11734f; background: #dff6eb; }
.property-status.unknown { color: #697589; background: #edf0f4; }
.property-status.paused { color: #7758a7; background: #f0eafd; }
.property-status.invalid { color: #fff; background: #4a5260; }
.property-status.develop { color: #1768e5; background: #e7f1ff; }
.property-status.blank { color: #6d7887; background: #f0f2f5; border: 1px dashed #bac3cf; }
.property-row-actions { display: flex; gap: 4px; }
.property-row-actions button { flex: 1; min-width: 0; padding: 6px 5px; border: 1px solid #d8e2ee; border-radius: 7px; color: #4f637c; background: #fff; white-space: nowrap; font-size: 11px; }
.property-row-actions button:hover { color: var(--property-blue); border-color: #9bbff0; }
.property-empty { padding: 46px 20px; color: var(--property-muted); text-align: center; }
.property-pagination { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px; border-top: 1px solid var(--property-border); }
.property-pagination button { min-width: 34px; height: 32px; border: 1px solid #dbe4ee; border-radius: 8px; color: #52657e; background: #fff; }
.property-pagination button.active { color: #fff; border-color: var(--property-blue); background: var(--property-blue); }

.property-drawer-backdrop { position: fixed; inset: 0; z-index: 50; border: 0; background: rgba(15, 31, 53, .52); opacity: 0; pointer-events: none; transition: opacity .2s; backdrop-filter: blur(3px); }
.property-drawer-backdrop.open { opacity: 1; pointer-events: auto; }
.property-drawer { position: fixed; left: 50%; top: 50%; z-index: 51; width: min(1480px, calc(100vw - 44px)); height: min(920px, calc(100vh - 36px)); border: 1px solid #d8e2ee; border-radius: 18px; background: #f3f6fa; box-shadow: 0 28px 70px rgba(15, 35, 62, .28); opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, -48%) scale(.98); transition: opacity .2s ease, transform .22s ease, visibility .2s; overflow: hidden; }
.property-drawer.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.property-drawer > div { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.property-drawer-head { z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex: 0 0 auto; padding: 13px 17px; border-bottom: 1px solid #dfe7f1; background: rgba(255,255,255,.98); }
.property-drawer-title { min-width: 0; }
#propertyDrawer #propertyDrawerTitle { font-size: 28px; font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
@media (max-width: 760px) { #propertyDrawer #propertyDrawerTitle { font-size: 22px; } }
.property-drawer-head h2 { margin: 1px 0 3px; font-size: 20px; }
.property-drawer-head p { margin: 0; color: var(--property-muted); font-size: 12px; }
.property-drawer-head .eyebrow { color: var(--property-blue); font-size: 10px; }
.property-drawer-head-actions { display: flex; align-items: center; gap: 9px; }
.property-close { width: 36px; height: 36px; border: 0; border-radius: 9px; color: #68778a; background: #eef2f7; font-size: 23px; }
.property-drawer-body { display: grid; gap: 9px; min-height: 0; padding: 10px; overflow: auto; }
.property-detail-card { padding: 12px; border: 1px solid var(--property-border); border-radius: 12px; background: #fff; }
.property-detail-card > header { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 9px; }
.property-detail-card h3 { margin: 0; font-size: 15px; }
.property-detail-card h4 { margin: 14px 0 8px; font-size: 13px; }
.property-overview-card { display: block !important; min-height: 225px; padding: 0; overflow: hidden; }
.property-overview-primary { display: grid !important; visibility: visible !important; opacity: 1 !important; grid-template-columns: 2fr 1.85fr .9fr 1.05fr 1.15fr 1.65fr; border-bottom: 1px solid var(--property-border); }
.property-overview-primary .property-compact-cell + .property-compact-cell { border-left: 1px solid var(--property-border); }
.property-compact-cell { display: grid; align-content: center; gap: 4px; min-width: 0; min-height: 59px; padding: 9px 12px; background: #fff; }
.property-compact-cell span { color: #7a899c; font-size: 10px; font-weight: 700; }
.property-compact-cell strong { color: #24364e; font-size: 13px; line-height: 1.35; overflow-wrap: anywhere; }
.property-overview-secondary { display: grid !important; visibility: visible !important; opacity: 1 !important; grid-template-columns: minmax(390px, 4.7fr) minmax(190px, 1.55fr) minmax(330px, 3.75fr); }
.property-facts-grid { display: grid; grid-template-columns: 1fr 1fr; border-right: 1px solid var(--property-border); }
.property-facts-grid .property-compact-cell { min-height: 55px; border-bottom: 1px solid var(--property-border); }
.property-facts-grid .property-compact-cell:nth-child(even) { border-left: 1px solid var(--property-border); }
.property-facts-grid .property-compact-cell:nth-last-child(-n+2) { border-bottom: 0; }
.property-facts-grid .property-compact-cell:nth-child(3) strong,
.property-facts-grid .property-compact-cell:nth-child(4) strong { color: #d34040; }
.property-status-panel { display: grid; grid-template-rows: 1fr; border-right: 1px solid var(--property-border); }
.property-status-cell { display: grid; align-content: center; gap: 7px; min-height: 82px; padding: 10px 12px; }
.property-status-cell + .property-status-cell { border-top: 1px solid var(--property-border); }
.property-status-cell > span { color: #7a899c; font-size: 10px; font-weight: 700; }
.property-status-cell > div { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.property-status-cell small { color: #7b899b; font-size: 10px; }
.property-action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--property-border); }
.property-action-grid button { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 55px; padding: 8px; border: 0; color: #35516f; background: #fff; font-size: 12px; font-weight: 800; }
.property-action-grid button:hover { color: var(--property-blue); background: #f3f8ff; }
.property-action-grid button span { display: grid; place-items: center; width: 21px; height: 21px; border-radius: 6px; color: var(--property-blue); background: var(--property-blue-soft); font-size: 12px; }
.property-action-grid button.danger { color: #b33c3c; }
.property-action-grid button.danger span { color: #b33c3c; background: #fff0f0; }
.property-edit-panel { margin: 9px; padding: 10px; border: 1px solid #cdddf0; border-radius: 10px; background: #f7faff; }
.property-edit-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.property-edit-panel-head > div { display: grid; gap: 2px; }
.property-edit-panel-head small { color: var(--property-muted); font-size: 10px; }
.property-edit-columns { display: grid; grid-template-columns: .85fr 1fr 1.25fr; gap: 8px; align-items: start; }
.property-edit-form { padding: 10px; border: 1px solid #dfe7f1; border-radius: 9px; background: #fff; }
.property-edit-form h4 { margin: 0 0 1px; color: #2f4968; }
.property-detail-modal { position: absolute; inset: 0; z-index: 30; display: grid; place-items: center; padding: 18px; background: rgba(18, 37, 63, .46); backdrop-filter: blur(3px); }
.property-modal-card { width: min(760px, 100%); max-height: 100%; overflow: auto; padding: 16px; border: 1px solid #d7e2ee; border-radius: 14px; background: #fff; box-shadow: 0 20px 55px rgba(15, 35, 62, .28); }
.property-modal-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.property-modal-card > header h3 { margin: 0; font-size: 17px; }
.property-modal-form { padding: 0; }
.property-modal-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 3px; }
.property-create-dialog {
  --property-blue: #1768e5;
  --property-blue-soft: #edf5ff;
  --property-border: #dfe7f1;
  --property-muted: #738197;
  width: min(980px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  padding: 0;
  border: 0;
  border-radius: 18px;
  color: #203047;
  background: transparent;
  overflow: visible;
}
.property-create-dialog::backdrop { background: rgba(14, 31, 54, .54); backdrop-filter: blur(4px); }
.property-create-card { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: calc(100dvh - 32px); margin: 0; overflow: hidden; border: 1px solid #d5e1ef; border-radius: 18px; background: #f5f8fc; box-shadow: 0 28px 80px rgba(15, 35, 62, .3); }
.property-create-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 19px 22px 16px; border-bottom: 1px solid #e1e8f1; background: #fff; }
.property-create-head h2 { margin: 2px 0 4px; color: #17375e; font-size: 22px; }
.property-create-head p { margin: 0; color: var(--property-muted); font-size: 12px; line-height: 1.55; }
.property-create-close { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; padding: 0; border: 1px solid #dbe4ee; border-radius: 11px; color: #61728a; background: #f8fafc; cursor: pointer; font-size: 24px; line-height: 1; }
.property-create-close:hover { border-color: #aec8ed; color: var(--property-blue); background: var(--property-blue-soft); }
.property-create-body { display: grid; gap: 12px; padding: 14px; overflow: auto; overscroll-behavior: contain; }
.property-create-section { padding: 15px; border: 1px solid #dee7f1; border-radius: 14px; background: #fff; }
.property-create-section-head { display: flex; align-items: center; gap: 10px; margin-bottom: 13px; }
.property-create-section-head > span { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 9px; color: #fff; background: linear-gradient(145deg, #1768e5, #1055c4); box-shadow: 0 6px 14px rgba(23, 104, 229, .2); font-size: 12px; font-weight: 800; }
.property-create-section-head h3 { margin: 0; color: #263d5a; font-size: 15px; }
.property-create-section-head p { margin: 2px 0 0; color: #8491a2; font-size: 11px; }
.property-create-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.property-create-grid.location { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.property-create-grid.owner { grid-template-columns: 1fr 1fr 1fr; }
.property-create-grid label { display: grid; align-content: start; gap: 6px; min-width: 0; color: #52657d; font-size: 12px; font-weight: 700; }
.property-create-grid .full { grid-column: 1 / -1; }
.property-create-grid input,
.property-create-grid select,
.property-create-grid textarea { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #d6e0eb; border-radius: 9px; color: #21354e; background: #fbfcfe; outline: none; }
.property-create-grid textarea { min-height: 66px; resize: vertical; line-height: 1.55; }
.property-create-grid input:focus,
.property-create-grid select:focus,
.property-create-grid textarea:focus { border-color: #75a8f1; background: #fff; box-shadow: 0 0 0 3px rgba(23, 104, 229, .1); }
.property-create-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 18px calc(13px + env(safe-area-inset-bottom)); border-top: 1px solid #dde6f0; background: #fff; }
.property-create-actions > span { color: #738197; font-size: 11px; }
.property-create-actions > div { display: flex; gap: 8px; }
.property-detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.property-detail-item { min-width: 0; padding: 9px 10px; border-radius: 9px; background: #f7f9fc; }
.property-detail-item span { display: block; color: #8290a2; font-size: 11px; }
.property-detail-item strong { display: block; margin-top: 4px; color: #24364e; font-size: 13px; overflow-wrap: anywhere; }
.property-section-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.property-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.property-form-grid .full { grid-column: 1 / -1; }
.property-date-range { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; }
.property-date-range i { color: #8794a5; font-size: 11px; font-style: normal; font-weight: 700; text-align: center; }
.property-collapsible-form { margin-top: 9px; padding: 10px; border: 1px solid #dfe8f2; border-radius: 9px; background: #f8fbff; }
.property-detail-main-actions { margin-top: 12px; }
.property-follow-compact { grid-template-columns: 150px minmax(0, 1fr); }
.property-form-grid textarea,
.property-field textarea { min-height: 72px; resize: vertical; }
.property-inline-note { margin: 9px 0 0; color: var(--property-muted); font-size: 11px; line-height: 1.6; }
.property-inline-alert { margin: 8px; padding: 8px 10px; border-radius: 8px; color: #9a5c00; background: #fff3d7; font-size: 11px; line-height: 1.6; }
.property-owner-strip .property-owner-card { padding: 8px 10px; }
.property-owner-strip .property-owner-head { min-width: 150px; }
.property-follow-workbench { padding-bottom: 10px; }
.property-follow-form { display: grid; border: 1px solid #e0e7f0; border-radius: 9px; overflow: hidden; }
.property-follow-form label { display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 10px; color: #5b6b80; font-size: 12px; font-weight: 700; background: #fff; }
.property-follow-form label + label { align-items: start; border-top: 1px solid #e6ecf3; }
.property-follow-form select,
.property-follow-form textarea { width: 100%; min-height: 34px; padding: 6px 9px; border: 1px solid #d6e0eb; border-radius: 8px; color: #25374f; background: #fff; outline: none; }
.property-follow-form textarea { min-height: 66px; resize: vertical; }
.property-follow-form select:focus,
.property-follow-form textarea:focus { border-color: #8ab5f5; box-shadow: 0 0 0 3px rgba(23, 104, 229, .08); }
.property-follow-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; padding-top: 1px; background: #dfe7f1; }
.property-follow-actions button { min-height: 41px; border: 0; border-radius: 0; }
.property-current-reminders { margin-top: 9px; padding-top: 9px; border-top: 1px solid #edf1f5; }
.property-subsection-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.property-subsection-title strong { font-size: 12px; }
.property-subsection-title small { color: var(--property-muted); font-size: 10px; }
.property-history-card .property-follow-list,
.property-history-card .property-log-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.property-owner-list { display: flex; flex-wrap: wrap; gap: 8px; }
.property-follow-list,
.property-reminder-list,
.property-log-list { display: grid; gap: 8px; }
.property-owner-card,
.property-follow-item,
.property-reminder-item,
.property-log-item { padding: 10px; border: 1px solid #e4eaf1; border-radius: 10px; background: #fbfcfe; }
.property-owner-head,
.property-follow-head,
.property-reminder-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.property-owner-compact { display: flex; align-items: center; gap: 10px; flex: 1 1 460px; min-width: 0; padding: 9px 10px; }
.property-owner-name { flex: 0 0 auto; color: #263a54; font-size: 13px; }
.property-phone-chip-list { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 6px; min-width: 0; }
.property-phone-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 5px 8px; border: 1px solid #d9e4ef; border-radius: 8px; color: #315271; background: #f8fbff; cursor: pointer; font: inherit; font-size: 12px; }
.property-phone-chip:hover { border-color: #9bc0f2; color: var(--property-blue); background: #eff6ff; }
.property-phone-chip.revealed { border-color: #a9d7c2; color: #18714e; background: #f1fbf6; }
.property-phone-chip.disabled { color: #8d98a8; background: #f2f4f7; }
.property-phone-chip em { color: #8b98a8; font-size: 10px; font-style: normal; }
.property-owner-card p,
.property-follow-item p,
.property-reminder-item p,
.property-log-item p { margin: 7px 0 0; color: #52647b; font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.property-owner-card small,
.property-follow-item small,
.property-reminder-item small,
.property-log-item small { color: #8995a5; font-size: 11px; }
.property-phone-row { display: grid; grid-template-columns: minmax(120px, 1fr) auto; gap: 8px; align-items: center; margin-top: 8px; padding-top: 8px; border-top: 1px dashed #dfe6ef; }
.property-phone-row strong { letter-spacing: .6px; }
.property-phone-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.property-phone-tags span { padding: 2px 6px; border-radius: 999px; color: #607087; background: #eaf0f6; font-size: 10px; }
.property-phone-tags .new { color: #1768e5; background: #e4f0ff; }
.property-phone-tags .bad { color: #b13737; background: #ffe9e9; }
.property-phone-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.property-phone-actions button,
.property-mini-button { min-height: 29px; padding: 5px 8px; border: 1px solid #d8e2ec; border-radius: 7px; color: #51657d; background: #fff; font-size: 11px; font-weight: 700; }
.property-phone-actions button.primary,
.property-mini-button.primary { border-color: #b8d4fa; color: var(--property-blue); background: var(--property-blue-soft); }
.property-reminder-item.overdue { border-color: #f2bcbc; background: #fff5f5; }
.property-reminder-item.done { opacity: .65; }
.property-reminder-item.done p { text-decoration: line-through; }
.property-log-item { border-left: 3px solid #cbd8e7; }
.property-log-item.audit { border-left-color: #e08a3b; }

.property-subpage { display: grid; gap: 14px; }
.property-subpage-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; padding: 18px; }
.property-subpage-head h3 { margin: 0 0 6px; }
.property-subpage-head p { margin: 0; color: var(--property-muted); font-size: 12px; line-height: 1.7; }
.property-import-step { padding: 18px; }
.property-import-step h4 { margin: 0 0 5px; }
.property-import-step > p { margin: 0 0 13px; color: var(--property-muted); font-size: 12px; }
.property-upload-zone { display: grid; justify-items: center; gap: 7px; padding: 28px 15px; border: 1px dashed #aebed1; border-radius: 12px; color: #53677f; background: #f8fbff; text-align: center; cursor: pointer; }
.property-upload-zone strong { color: var(--property-blue); }
.property-upload-zone small { color: #8b98a8; }
.property-import-map { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; }
.property-import-preview { width: 100%; max-height: 520px; overflow: auto; border: 1px solid #e1e8f0; border-radius: 10px; }
.property-import-preview table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 11px; }
.property-import-preview th,
.property-import-preview td { padding: 8px; border-bottom: 1px solid #edf1f5; text-align: left; }
.property-import-preview th { color: #637287; background: #f6f9fc; }
.property-import-report { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.property-import-report.property-import-preview-summary { grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 12px 0; }
.property-import-report div { padding: 12px; border-radius: 10px; background: #f4f8fd; }
.property-import-report span { display: block; color: #7c899b; font-size: 11px; }
.property-import-report strong { display: block; margin-top: 4px; font-size: 19px; }
.property-import-status-summary { margin: 0 0 9px; color: #607188; font-size: 12px; }
.property-import-rule-note { margin-bottom: 10px; padding: 10px 12px; border: 1px solid #cfe0f5; border-radius: 10px; color: #35516f; background: #f4f9ff; font-size: 12px; line-height: 1.65; }
.property-error-list { margin: 8px 0 0; padding: 10px 12px 10px 28px; border-radius: 9px; color: #a53c3c; background: #fff2f2; font-size: 12px; line-height: 1.7; }

.property-settings-layout { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(380px, 1.2fr); gap: 14px; }
.property-settings-form,
.property-map-card,
.property-admin-card { padding: 18px; }
.property-settings-form h4,
.property-map-card h4,
.property-admin-card h4 { margin: 0 0 12px; }
.property-plan-canvas { position: relative; min-height: 360px; margin-top: 12px; border: 1px dashed #b5c3d2; border-radius: 12px; overflow: hidden; background-color: #f3f6fa; background-position: center; background-size: contain; background-repeat: no-repeat; }
.property-plan-empty { position: absolute; inset: 0; display: grid; place-content: center; padding: 20px; color: #8a97a8; text-align: center; pointer-events: none; }
.property-building-token { position: absolute; display: grid; place-items: center; min-width: 78px; min-height: 44px; padding: 6px; border: 2px solid #fff; border-radius: 9px; color: #fff; background: rgba(23,104,229,.88); box-shadow: 0 5px 15px rgba(24,63,111,.22); cursor: grab; touch-action: none; user-select: none; }
.property-building-token:active { cursor: grabbing; }
.property-building-token span { font-size: 12px; font-weight: 800; }
.property-building-token small { opacity: .8; font-size: 10px; }
.property-quota-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.property-quota-grid label { display: grid; gap: 5px; color: #65758a; font-size: 11px; font-weight: 700; }
.property-quota-grid input { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid #d7e0eb; border-radius: 8px; }

.property-sandbox { --model-navy: #17384b; --model-teal: #2d6d66; --model-mint: #e7f3ee; --model-sand: #f3ead8; display: grid; gap: 12px; }
.property-sandbox-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; padding: 19px 21px; border-color: rgba(255,255,255,.7); color: #fff; background: radial-gradient(circle at 78% -40%, rgba(115,198,186,.58), transparent 42%), linear-gradient(118deg, #15394a, #23635d 68%, #347b6f); box-shadow: 0 18px 42px rgba(24,67,64,.16); }
.property-sandbox-head .eyebrow { color: #9ee4d5; letter-spacing: .15em; }
.property-sandbox-head h3 { margin: 1px 0 6px; color: #fff; font-size: 20px; letter-spacing: -.02em; }
.property-sandbox-head p { margin: 0; color: rgba(239,252,249,.74); font-size: 12px; }
.property-sandbox-summary { display: flex; flex-wrap: wrap; gap: 7px; }
.property-sandbox-summary span { padding: 8px 11px; border: 1px solid rgba(255,255,255,.26); border-radius: 11px; color: rgba(242,255,252,.82); background: rgba(255,255,255,.1); box-shadow: inset 0 1px rgba(255,255,255,.14); font-size: 11px; white-space: nowrap; backdrop-filter: blur(8px); }
.property-sandbox-summary strong { margin-right: 3px; color: #fff4c4; font-size: 17px; }
.property-sandbox-head .property-toolbar-button { border-color: rgba(255,255,255,.3); color: #f5fffd; background: rgba(255,255,255,.1); }
.property-sandbox-head .property-toolbar-button:hover { border-color: rgba(255,255,255,.58); background: rgba(255,255,255,.18); }
.property-sandbox-controls { display: flex; flex-wrap: wrap; gap: 9px; padding: 13px 14px; border-color: #dbe8e2; background: linear-gradient(180deg, #ffffff, #f5faf7); box-shadow: 0 10px 28px rgba(38,76,67,.08); }
.property-sandbox-controls label { display: grid; gap: 5px; color: #587069; font-size: 11px; font-weight: 800; }
.property-sandbox-controls select { min-height: 36px; padding: 6px 30px 6px 10px; border: 1px solid #cfe0d8; border-radius: 9px; color: #173e43; background: #fff; box-shadow: 0 3px 10px rgba(41,78,68,.05); }
.property-sandbox-overview-tip { display: flex; align-items: center; min-height: 36px; padding: 7px 12px; border: 1px solid #cce2d8; border-radius: 10px; color: #35665d; background: #ecf7f1; font-size: 11px; }
.property-view-buttons { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 5px; margin-left: auto; }
.property-view-buttons button { width: 36px; height: 36px; border: 1px solid #cfe0d8; border-radius: 9px; color: #2d665e; background: linear-gradient(180deg, #fff, #eef7f2); box-shadow: 0 4px 12px rgba(33,83,70,.08); }
.property-view-buttons button:hover { color: #fff; border-color: #2d6d66; background: #2d6d66; transform: translateY(-1px); }
.property-sandbox-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 12px; }
.property-scene-card { position: relative; min-height: 570px; overflow: hidden; background: radial-gradient(circle at 50% 25%, #eef7ff, #d9e7f5 52%, #c6d6e6); perspective: 1100px; touch-action: none; }
.property-scene-card.property-webgl-card { min-height: 700px; padding: 0; border-color: #bad8cf; border-radius: 18px; background: #e9f5f1; box-shadow: 0 22px 54px rgba(33,78,67,.16); perspective: none; }
.property-3d-stage { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(circle at 50% 6%, rgba(255,255,255,.98), rgba(236,248,246,.9) 30%, transparent 58%), linear-gradient(180deg, #dff2f3 0%, #cfe8df 58%, #aecbb5 100%); isolation: isolate; }
.property-3d-stage::after { position: absolute; inset: 0; z-index: 3; content: ""; border: 1px solid rgba(255,255,255,.7); border-radius: inherit; box-shadow: inset 0 -80px 100px rgba(27,83,64,.1); pointer-events: none; }
.property-3d-canvas { position: absolute; inset: 0; z-index: 2; display: block; width: 100%; height: 100%; cursor: grab; outline: 0; }
.property-3d-canvas:active { cursor: grabbing; }
.property-3d-badge { position: absolute; left: 16px; top: 16px; z-index: 4; display: grid; gap: 2px; min-width: 150px; padding: 10px 12px 10px 35px; border: 1px solid rgba(255,255,255,.82); border-radius: 12px; color: #17433f; background: rgba(250,255,252,.84); box-shadow: 0 14px 34px rgba(25,76,64,.14); backdrop-filter: blur(12px); pointer-events: none; }
.property-3d-badge::before { position: absolute; left: 12px; top: 13px; width: 12px; height: 12px; border: 4px solid #65aa92; border-radius: 50%; content: ""; box-shadow: 0 0 0 4px rgba(101,170,146,.14); }
.property-3d-badge strong { font-size: 13px; }
.property-3d-badge span { color: #6b837c; font-size: 9px; }
.property-3d-tooltip { position: absolute; z-index: 5; max-width: 190px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.76); border-radius: 9px; color: #fff; background: rgba(19,66,61,.92); box-shadow: 0 10px 26px rgba(20,64,54,.22); font-size: 10px; font-weight: 800; pointer-events: none; transform: translate(12px, -110%); }
.property-3d-loading { position: absolute; inset: 0; z-index: 1; display: grid; place-content: center; justify-items: center; gap: 10px; color: #657788; font-size: 11px; }
.property-3d-loading span { width: 30px; height: 30px; border: 3px solid rgba(62,92,118,.2); border-top-color: #315b7f; border-radius: 50%; animation: property-3d-spin .8s linear infinite; }
.property-3d-loading p { margin: 0; }
.property-3d-error { position: absolute; inset: 0; display: grid; place-content: center; gap: 6px; padding: 24px; color: #53687b; background: #edf2f6; text-align: center; }
.property-3d-error strong { color: #263f55; font-size: 16px; }
.property-scene-card.property-webgl-card .property-scene-help { z-index: 4; color: #effcf8; background: rgba(25,75,67,.8); box-shadow: 0 8px 20px rgba(17,64,55,.16); backdrop-filter: blur(8px); pointer-events: none; }
@keyframes property-3d-spin { to { transform: rotate(360deg); } }
.property-scene-card.community-overview { min-height: 700px; padding: 14px; background: radial-gradient(circle at 50% 22%, #edf8f0, #d1e6d2 72%); perspective: 1450px; }
.property-community-world { position: absolute; inset: 0; transform-style: preserve-3d; transform-origin: 50% 68%; transition: transform .18s ease; }
.property-community-plan { position: absolute; inset: 14px; overflow: hidden; border: 1px solid rgba(89, 123, 92, .22); border-radius: 18px; background: radial-gradient(circle at 51% 46%, rgba(255,255,255,.76) 0 7%, transparent 7.5%), linear-gradient(151deg, transparent 0 43%, rgba(216, 224, 211, .9) 43.2% 49%, transparent 49.2%), linear-gradient(118deg, #8cc26e, #a9d487 48%, #82bd6a); box-shadow: inset 0 0 0 8px rgba(255,255,255,.28), 0 28px 60px rgba(40,74,45,.18); transform-style: preserve-3d; }
.property-community-plan::before { position: absolute; inset: 8% 17% 12% 5%; border: 2px solid rgba(231, 240, 224, .74); border-radius: 49% 38% 44% 32%; content: ""; transform: rotate(-8deg); }
.property-community-plan.has-focus::after { position: absolute; inset: 0; z-index: 8; content: ""; background: radial-gradient(circle at 50% 62%, rgba(255,255,255,.12), rgba(20,50,29,.38)); backdrop-filter: blur(1.5px); pointer-events: none; }
.property-community-road { position: absolute; z-index: 1; display: grid; place-items: center; height: 9%; border: 1px solid rgba(255,255,255,.68); color: #66736b; background: #e3e5dd; font-size: 10px; font-weight: 800; letter-spacing: .18em; box-shadow: 0 3px 9px rgba(72,90,67,.12); }
.property-community-road.main { left: 27%; top: 43%; width: 47%; transform: rotate(56deg); }
.property-community-road.south { right: 8%; bottom: 4%; width: 38%; transform: rotate(-10deg); }
.property-community-water { position: absolute; right: -4%; top: -6%; z-index: 0; display: grid; place-items: center; width: 22%; height: 75%; border-radius: 48% 0 0 58%; color: rgba(21, 86, 104, .78); background: linear-gradient(110deg, #8dd4e0, #62bdcf); font-size: 11px; font-weight: 800; writing-mode: vertical-rl; letter-spacing: .35em; box-shadow: inset 12px 0 24px rgba(255,255,255,.28); }
.property-community-garden { position: absolute; left: 43%; top: 38%; z-index: 2; display: grid; place-items: center; width: 14%; height: 13%; border: 5px solid rgba(255,255,255,.48); border-radius: 50%; color: #2f6b39; background: radial-gradient(circle, #cbe99b, #87c167); font-size: 10px; font-weight: 800; box-shadow: 0 6px 16px rgba(56,100,51,.18); }
.property-community-compass,
.property-community-source { position: absolute; z-index: 4; border: 1px solid rgba(255,255,255,.72); color: #31573c; background: rgba(255,255,255,.82); box-shadow: 0 5px 16px rgba(42,75,48,.12); }
.property-community-compass { top: 14px; right: 18px; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; font-size: 11px; font-weight: 900; }
.property-community-source { left: 16px; bottom: 14px; padding: 7px 10px; border-radius: 9px; font-size: 10px; }
.property-site-building { position: absolute; z-index: 4; width: 54px; height: calc(var(--tower-height) + 28px); padding: 0; border: 0; color: #18283b; background: transparent; cursor: pointer; transform: translate(-50%, -88%) rotate(var(--building-angle)); transform-origin: 50% 100%; transition: opacity .32s ease, transform .32s ease, filter .32s ease; }
.property-site-building:hover { z-index: 7; filter: drop-shadow(0 12px 10px rgba(26,55,36,.3)); transform: translate(-50%, -88%) rotate(var(--building-angle)) scale(1.12); }
.property-site-building.is-empty { opacity: .68; filter: grayscale(.45); }
.property-site-building.is-empty:hover { opacity: 1; filter: grayscale(0) drop-shadow(0 8px 8px rgba(26,55,36,.24)); }
.property-community-plan.has-focus .property-site-building.is-background { opacity: .15; filter: saturate(.45); transform: translate(-50%, -88%) rotate(var(--building-angle)) scale(.82); }
.property-community-plan.has-focus .property-site-building.is-focused { z-index: 9; opacity: .38; filter: drop-shadow(0 10px 10px rgba(26,55,36,.3)); }
.property-mini-tower { position: absolute; left: 50%; bottom: 12px; width: 34px; height: var(--tower-height); filter: drop-shadow(8px 12px 7px rgba(38,64,43,.24)); transform: translateX(-50%) skewY(-2deg); transform-style: preserve-3d; }
.property-mini-front { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 2px; padding: 7px 4px; border: 1px solid rgba(255,255,255,.8); border-radius: 4px 4px 2px 2px; background: repeating-linear-gradient(0deg, rgba(255,255,255,.12) 0 4px, rgba(52,66,99,.08) 4px 6px), linear-gradient(135deg, #a98cc4, #705491); box-shadow: inset 0 0 0 2px rgba(255,255,255,.12); }
.property-mini-front b { display: grid; place-items: center; min-height: 10px; border-radius: 2px; color: rgba(255,255,255,.96); background: rgba(28,23,48,.2); font-size: 6px; font-style: normal; line-height: 1; }
.property-mini-side { position: absolute; left: 100%; top: 5px; width: 12px; height: calc(100% - 1px); background: linear-gradient(90deg, #604675, #4d385f); clip-path: polygon(0 0, 100% 8px, 100% 100%, 0 100%); }
.property-mini-roof { position: absolute; left: 1px; right: -11px; top: -7px; height: 9px; background: linear-gradient(135deg, #d9c8e8, #8d72a6); clip-path: polygon(0 75%, 72% 0, 100% 48%, 28% 100%); }
.property-site-building strong { position: absolute; left: 50%; bottom: calc(var(--tower-height) + 15px); z-index: 3; padding: 2px 5px; border-radius: 5px; color: #15253a; background: rgba(255,255,255,.9); font-size: 11px; transform: translateX(-50%) rotate(calc(var(--building-angle) * -1)); }
.property-site-building small { position: absolute; left: 50%; bottom: -2px; z-index: 3; min-width: max-content; padding: 1px 4px; border-radius: 4px; color: #4a5a67; background: rgba(255,255,255,.8); font-size: 7px; transform: translateX(-50%) rotate(calc(var(--building-angle) * -1)); }
.property-site-building.is-empty small { color: #7b552b; background: #fff4df; }
.property-focus-stage { position: absolute; inset: 16px 18px 20px; z-index: 20; display: flex; align-items: flex-end; justify-content: center; pointer-events: none; animation: property-camera-push .48s cubic-bezier(.22,.78,.24,1); }
.property-focus-heading { position: absolute; left: 16px; top: 10px; display: grid; gap: 5px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.72); border-radius: 12px; color: #42576e; background: rgba(248,252,255,.9); box-shadow: 0 12px 28px rgba(25,53,80,.18); backdrop-filter: blur(8px); }
.property-focus-heading div { display: flex; align-items: center; gap: 7px; }
.property-focus-heading span { padding: 3px 6px; border-radius: 6px; color: #fff; background: #1768e5; font-size: 9px; font-weight: 800; }
.property-focus-heading strong { color: #172d48; font-size: 15px; }
.property-focus-heading small { font-size: 9px; }
.property-focus-orientation { position: absolute; right: 14px; top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 8px; border: 1px solid rgba(255,255,255,.7); border-radius: 12px; background: rgba(255,255,255,.86); box-shadow: 0 10px 24px rgba(33,58,83,.16); }
.property-focus-orientation span { display: grid; place-items: center; min-width: 42px; min-height: 30px; border-radius: 7px; color: #51366c; background: #eee4f8; font-size: 9px; font-weight: 900; }
.property-focus-shell { position: relative; z-index: 2; margin-bottom: 20px; transform: translateZ(105px) rotateY(-8deg); transform-style: preserve-3d; pointer-events: auto; }
.property-focus-roof { position: absolute; left: 1px; right: -31px; top: -18px; z-index: 3; height: 20px; background: linear-gradient(135deg, #dce6ef, #7d90a6); clip-path: polygon(0 75%, 88% 0, 100% 45%, 12% 100%); }
.property-focus-side { position: absolute; left: 100%; top: 1px; bottom: 0; z-index: 1; width: 34px; background: repeating-linear-gradient(0deg, rgba(255,255,255,.08) 0 9px, transparent 9px 13px), linear-gradient(90deg, #55697f, #35495f); clip-path: polygon(0 0, 100% 15px, 100% 100%, 0 100%); }
.property-building-stack-3d { z-index: 2; min-width: 210px; padding: 9px 9px 7px; border-radius: 4px 4px 2px 2px; background: linear-gradient(90deg,#748ca4,#b2c1ce 48%,#70859a); box-shadow: 24px 30px 48px rgba(18,40,62,.38); }
.property-building-stack-3d::after { left: 8%; right: -28%; bottom: -20px; background: rgba(29,49,66,.32); transform: skewX(-48deg); }
@keyframes property-camera-push { from { opacity: 0; transform: translateY(18%) scale(.28); } to { opacity: 1; transform: translateY(0) scale(1); } }
.property-scene { position: absolute; inset: 55px 60px 75px; display: flex; align-items: flex-end; justify-content: center; gap: 42px; transform-style: preserve-3d; transform-origin: 50% 65%; transition: transform .12s; }
.property-building-stack { position: relative; display: flex; flex-direction: column-reverse; gap: 2px; padding: 18px 12px 10px; border-radius: 10px 10px 3px 3px; background: linear-gradient(90deg,#6f8499,#9fb1c3 45%,#65798f); box-shadow: 18px 24px 35px rgba(30,53,78,.26); transform-style: preserve-3d; }
.property-building-stack::after { position: absolute; left: 3%; right: 3%; bottom: -18px; height: 18px; content: ""; background: rgba(45,68,92,.28); transform: skewX(-45deg); transform-origin: top; filter: blur(1px); }
.property-building-label { position: absolute; left: 50%; top: -31px; transform: translateX(-50%); min-width: max-content; padding: 5px 8px; border-radius: 7px; color: #fff; background: #23446c; font-size: 11px; font-weight: 800; }
.property-floor-row { display: grid; grid-template-columns: repeat(var(--room-count), minmax(42px, 58px)); gap: 4px; transform-style: preserve-3d; }
.property-room-cell { position: relative; min-height: var(--room-height, 31px); padding: 2px; border: 1px solid rgba(255,255,255,.7); border-radius: 4px; color: #26374d; background: #d7dde4; font-size: 9px; font-weight: 800; text-align: center; box-shadow: inset 0 0 0 1px rgba(45,64,83,.06); }
.property-room-cell:hover,
.property-room-cell.highlight { z-index: 2; outline: 3px solid #1768e5; transform: translateZ(12px) scale(1.08); }
.property-room-cell.sale { color: #fff; background: #e65050; }
.property-room-cell.rent { color: #26374d; background: #ffd85f; }
.property-room-cell.both { color: #fff; background: #f18a32; }
.property-room-cell.rented { color: #fff; background: #39a873; }
.property-room-cell.sold { color: #fff; background: #13744b; }
.property-room-cell.invalid { color: #fff; background: #444d59; }
.property-room-cell.develop { color: #0c5ebb; background: #dcecff; }
.property-room-cell.unknown { color: #697589; background: #d7dde4; }
.property-room-cell.paused { color: #fff; background: #9b7fc5; }
.property-room-cell.blank { color: #707b89; background: #eef0f3; }
.property-room-cell.overdue { box-shadow: inset 0 0 0 2px #8e1515; }
.property-room-cell small { display: block; margin-top: 2px; font-size: 7px; font-weight: 700; }
.property-scene-help { position: absolute; left: 15px; bottom: 14px; padding: 7px 9px; border-radius: 8px; color: #496078; background: rgba(255,255,255,.82); font-size: 10px; }
.property-sandbox-side { display: grid; align-content: start; gap: 10px; }
.property-sandbox-side > .property-card { border-color: #d8e7e0; background: linear-gradient(165deg, #fff, #f7fbf8); box-shadow: 0 12px 28px rgba(42,78,69,.08); }
.property-room-plan { padding: 14px; }
.property-room-plan header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.property-room-plan h4 { margin: 0 0 3px; }
.property-room-plan p,
.property-room-plan small { margin: 0; color: #7b8998; font-size: 9px; line-height: 1.55; }
.property-room-plan header > span { padding: 4px 7px; border-radius: 7px; color: #2d6d66; background: #e5f3ed; font-size: 10px; font-weight: 800; }
.property-room-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; margin: 10px 0 8px; }
.property-room-plan-grid strong { display: grid; place-items: center; min-height: 42px; border: 1px solid #c9ded5; border-radius: 9px; color: #275c55; background: linear-gradient(145deg, #f7fcf9, #e6f3ed); font-size: 13px; box-shadow: inset 0 0 0 2px rgba(255,255,255,.7); }
.property-room-plan-grid.line { grid-template-columns: repeat(auto-fit, minmax(46px, 1fr)); }
.property-room-plan-grid:not(.four) { grid-template-columns: repeat(auto-fit, minmax(48px, 1fr)); }
.property-legend,
.property-sandbox-info { padding: 14px; }
.property-legend h4,
.property-sandbox-info h4 { margin: 0 0 10px; }
.property-legend-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.property-legend-item { display: flex; align-items: center; gap: 7px; color: #536e67; font-size: 10px; font-weight: 700; }
.property-legend-item i { width: 14px; height: 14px; border: 2px solid rgba(255,255,255,.9); border-radius: 50%; box-shadow: 0 0 0 1px rgba(31,70,62,.12); }
.property-sandbox-info .property-detail-grid { grid-template-columns: 1fr 1fr; }
.property-sandbox-info.empty { color: #8693a5; font-size: 12px; line-height: 1.7; }

.property-toast-stack { position: fixed; right: 22px; bottom: 22px; z-index: 80; display: grid; gap: 8px; width: min(360px, calc(100vw - 30px)); }
.property-toast { padding: 11px 13px; border: 1px solid #d3e2f5; border-radius: 10px; color: #34506f; background: #f7fbff; box-shadow: 0 10px 30px rgba(30,55,88,.16); font-size: 12px; animation: property-toast-in .2s ease; }
.property-toast.error { border-color: #efc7c7; color: #9d3333; background: #fff7f7; }
.property-toast.success { border-color: #c8eadc; color: #15704f; background: #f4fcf8; }
@keyframes property-toast-in { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 1160px) {
  .property-filter-main { grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(130px, 1fr)); }
  .property-advanced-grid { grid-template-columns: repeat(3, 1fr); }
  .property-settings-layout { grid-template-columns: 1fr; }
  .property-sandbox-layout { grid-template-columns: 1fr; }
  .property-sandbox-side { grid-template-columns: minmax(230px, .75fr) minmax(320px, 1.25fr); }
  .property-scene-card { min-height: 520px; }
  .property-overview-primary { grid-template-columns: 1.7fr 1.55fr .8fr .9fr 1fr 1.35fr; }
  .property-overview-secondary { grid-template-columns: minmax(340px, 4fr) minmax(175px, 1.45fr) minmax(290px, 3.4fr); }
  .property-edit-columns { grid-template-columns: 1fr 1fr; }
  .property-edit-form:last-child { grid-column: 1 / -1; }
}

@media (max-width: 850px) {
  .property-page-head { padding: 17px; }
  .property-role-note { width: 100%; margin-left: 0; }
  .property-quick-views { flex-wrap: wrap; }
  .property-more-views { margin-left: 0; }
  .property-filter-main { grid-template-columns: 1fr 1fr; }
  .property-filter-main .property-search-label { grid-column: 1 / -1; }
  .property-advanced-grid { grid-template-columns: 1fr 1fr; }
  .property-import-map { grid-template-columns: 1fr 1fr; }
  .property-quota-grid { grid-template-columns: 1fr 1fr; }
  .property-scene { inset: 65px 25px 70px; gap: 22px; }
  .property-drawer { width: calc(100vw - 20px); height: calc(100vh - 20px); border-radius: 14px; }
  .property-overview-primary { grid-template-columns: repeat(3, 1fr); }
  .property-overview-primary .property-compact-cell { border-bottom: 1px solid var(--property-border); }
  .property-overview-primary .property-compact-cell:nth-child(3n+1) { border-left: 0; }
  .property-overview-primary .property-compact-cell:nth-last-child(-n+3) { border-bottom: 0; }
  .property-overview-secondary { grid-template-columns: minmax(0, 1fr) minmax(180px, .55fr); }
  .property-facts-grid { border-right: 1px solid var(--property-border); }
  .property-status-panel { border-right: 0; }
  .property-action-grid { grid-column: 1 / -1; border-top: 1px solid var(--property-border); }
  .property-edit-columns { grid-template-columns: 1fr; }
  .property-edit-form:last-child { grid-column: auto; }
  .property-create-grid,
  .property-create-grid.location,
  .property-create-grid.owner { grid-template-columns: 1fr 1fr; }
  .property-import-report.property-import-preview-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 570px) {
  .main-nav { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
  .main-nav::-webkit-scrollbar { display: none; }
  .nav-item { flex: 0 0 38px; font-size:0; }
  .nav-item span { font-size:18px; }
  .property-shell { gap: 11px; }
  .property-entry-bar { position: sticky; top: 7px; z-index: 9; padding: 9px 10px; border-radius: 12px; box-shadow: 0 9px 24px rgba(30, 66, 111, .14); }
  .property-entry-bar small { display: none; }
  .property-entry-bar .property-add-button { min-width: 122px; min-height: 44px; }
  .property-page-head { display: grid; }
  .property-page-head h2 { font-size: 19px; }
  .property-head-badges { justify-content: flex-start; }
  .property-add-button { min-height: 44px; }
  .property-manage-popover { position: fixed; top: 118px; right: 10px; left: 10px; width: auto; }
  .property-manage-role { grid-template-columns: 1fr; }
  .property-manage-role .property-role-badge { grid-column: auto; }
  .property-role-bar { align-items: stretch; padding: 11px; }
  .property-role-bar label { flex: 1 1 135px; display: grid; }
  .property-tabs { position: sticky; top: 68px; z-index: 8; }
  .property-tab { padding: 9px 12px; font-size: 12px; }
  .property-quick-views { padding: 11px; }
  .property-quick-view { flex: 1 1 auto; text-align: center; }
  .property-more-views { flex: 1 1 auto; }
  .property-more-views > summary { text-align: center; }
  .property-more-views > div { right: auto; left: 0; width: min(230px, calc(100vw - 46px)); }
  .property-filter-card { padding: 12px; }
  .property-filter-main { grid-template-columns: 1fr 1fr; }
  .property-filter-main .property-search-label { grid-column: 1 / -1; }
  .property-advanced-grid { grid-template-columns: 1fr; }
  .property-filter-summary { width: 100%; margin: 3px 0 0; }
  .property-filter-footer { align-items:flex-start; flex-direction:column; }
  .property-filter-actions { width:100%; justify-content:flex-start; }
  .property-table-head { align-items: flex-start; padding: 13px; }
  .property-table-head-actions { max-width: 150px; }
  .property-table-wrap { overflow: visible; }
  .property-table { min-width: 0; display: block; padding: 10px; }
  .property-table thead { display: none; }
  .property-table tbody { display: grid; gap: 10px; }
  .property-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; padding: 13px; border: 1px solid #e0e7f0; border-radius: 12px; background: #fff; }
  .property-table td { display: block; min-width: 0; padding: 0; border: 0; }
  .property-table td::before { display: block; margin-bottom: 3px; color: #8a96a6; content: attr(data-label); font-size: 10px; }
  .property-table td.property-card-address { grid-column: 1 / -1; padding-bottom: 9px; border-bottom: 1px solid #edf1f5; }
  .property-table td.property-card-address::before { display: none; }
  .property-table td.property-card-actions { grid-column: 1 / -1; padding-top: 6px; }
  .property-row-actions button { flex: 1; min-height: 35px; }
  .property-drawer { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
  .property-drawer-head { padding: 10px 11px; }
  .property-drawer-head h2 { font-size: 17px; }
  .property-drawer-head p { max-width: 235px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .property-drawer-head-actions { gap: 6px; }
  .property-close { width: 34px; height: 34px; }
  .property-drawer-body { padding: 7px 7px 24px; }
  .property-overview-card { display: grid !important; grid-template-columns: 1fr; min-height: 580px; overflow: hidden; }
  .property-overview-primary { grid-template-columns: 1fr 1fr; }
  .property-overview-primary .property-compact-cell:nth-child(3n+1) { border-left: 1px solid var(--property-border); }
  .property-overview-primary .property-compact-cell:nth-child(odd) { border-left: 0; }
  .property-overview-primary .property-compact-cell:nth-last-child(-n+3) { border-bottom: 1px solid var(--property-border); }
  .property-overview-primary .property-compact-cell:nth-last-child(-n+2) { border-bottom: 0; }
  .property-overview-primary .property-compact-cell:nth-child(-n+2) { grid-column: 1 / -1; border-left: 0; }
  .property-overview-primary .property-compact-cell:nth-child(2) { border-top: 1px solid var(--property-border); }
  .property-overview-secondary { grid-template-columns: 1fr; }
  .property-facts-grid { border-right: 0; }
  .property-status-panel { grid-template-columns: 1fr; grid-template-rows: auto; border-top: 1px solid var(--property-border); }
  .property-status-cell { min-height: 70px; }
  .property-status-cell + .property-status-cell { border-top: 0; border-left: 1px solid var(--property-border); }
  .property-action-grid { grid-column: auto; }
  .property-action-grid button { min-height: 49px; }
  .property-edit-panel { margin: 7px; padding: 8px; }
  .property-edit-panel-head { align-items: flex-start; }
  .property-edit-panel-head small { max-width: 240px; }
  .property-edit-form { grid-template-columns: 1fr; }
  .property-edit-form .full { grid-column: auto; }
  .property-detail-grid { grid-template-columns: 1fr 1fr; }
  .property-detail-modal { padding: 10px; }
  .property-modal-card { padding: 13px; border-radius: 12px; }
  .property-modal-form { grid-template-columns: 1fr; }
  .property-modal-form .full { grid-column: auto; }
  .property-modal-actions { justify-content: stretch; }
  .property-modal-actions button { flex: 1; }
  .property-create-dialog { width: calc(100vw - 14px); max-height: calc(100dvh - 14px); border-radius: 14px; }
  .property-create-card { max-height: calc(100dvh - 14px); border-radius: 14px; }
  .property-create-head { padding: 14px 14px 12px; }
  .property-create-head h2 { font-size: 19px; }
  .property-create-close { flex-basis: 44px; width: 44px; height: 44px; }
  .property-create-body { gap: 9px; padding: 9px; }
  .property-create-section { padding: 12px; }
  .property-create-grid,
  .property-create-grid.location,
  .property-create-grid.owner { grid-template-columns: 1fr; }
  .property-create-grid .full { grid-column: auto; }
  .property-create-actions { align-items: stretch; flex-direction: column; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); }
  .property-create-actions > span { text-align: center; }
  .property-create-actions > div { display: grid; grid-template-columns: .8fr 1.2fr; }
  .property-create-actions button { min-height: 44px; }
  .property-form-grid { grid-template-columns: 1fr; }
  .property-follow-compact { grid-template-columns: 1fr; }
  .property-form-grid .full { grid-column: auto; }
  .property-phone-row { grid-template-columns: 1fr; }
  .property-owner-compact { display: grid; gap: 7px; flex-basis: 100%; }
  .property-phone-chip-list { width: 100%; }
  .property-phone-actions { justify-content: flex-start; }
  .property-phone-actions button { min-height: 37px; }
  .property-follow-form label { grid-template-columns: 1fr; gap: 5px; }
  .property-follow-actions { grid-template-columns: 1fr 1fr; }
  .property-history-card .property-follow-list,
  .property-history-card .property-log-list { grid-template-columns: 1fr; }
  .property-subpage-head { display: grid; padding: 15px; }
  .property-import-step { padding: 14px; }
  .property-import-map,
  .property-import-report,
  .property-quota-grid { grid-template-columns: 1fr 1fr; }
  .property-import-report.property-import-preview-summary { grid-template-columns: 1fr 1fr; }
  .property-settings-form,
  .property-map-card,
  .property-admin-card { padding: 14px; }
  .property-plan-canvas { min-height: 300px; }
  .property-sandbox-head { display: grid; padding: 14px; }
  .property-sandbox-summary { width: 100%; }
  .property-sandbox-controls { align-items: stretch; }
  .property-sandbox-controls label { flex: 1 1 110px; }
  .property-view-buttons { width: 100%; margin-left: 0; }
  .property-scene-card { min-height: 500px; }
  .property-scene-card.community-overview { min-height: 560px; }
  .property-scene-card.community-overview.focused-building { min-height: 680px; }
  .property-scene-card.property-webgl-card,
  .property-scene-card.property-webgl-card.focused-building { min-height: 600px; }
  .property-3d-badge { left: 10px; top: 10px; min-width: 126px; padding: 8px 9px; }
  .property-3d-tooltip { display: none; }
  .property-community-plan { inset: 8px; }
  .property-site-building { width: 42px; height: calc(var(--tower-height) + 22px); }
  .property-mini-tower { bottom: 8px; width: 26px; height: calc(var(--tower-height) * .72); }
  .property-mini-front { gap: 1px; padding: 5px 3px; }
  .property-mini-front b { min-height: 8px; font-size: 5px; }
  .property-mini-side { width: 9px; }
  .property-mini-roof { right: -8px; }
  .property-site-building strong { bottom: calc(var(--tower-height) * .72 + 10px); font-size: 9px; }
  .property-site-building small { display: none; }
  .property-community-road { font-size: 7px; }
  .property-community-water { font-size: 8px; }
  .property-community-garden { font-size: 8px; }
  .property-community-source { max-width: 150px; }
  .property-focus-stage { inset: 7px 6px 18px; }
  .property-focus-heading { left: 5px; right: 5px; top: 5px; padding: 8px 9px; }
  .property-focus-heading strong { font-size: 13px; }
  .property-focus-heading small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .property-focus-orientation { top: 76px; right: 5px; gap: 3px; padding: 5px; }
  .property-focus-orientation span { min-width: 34px; min-height: 25px; font-size: 8px; }
  .property-focus-shell { margin-bottom: 25px; transform: translateZ(80px) rotateY(-6deg); }
  .property-focus-side { width: 25px; }
  .property-focus-roof { right: -23px; }
  .property-building-stack-3d { min-width: 178px; padding: 7px 6px 6px; }
  .property-scene { inset: 60px 6px 75px; gap: 12px; }
  .property-building-stack { padding: 14px 6px 8px; }
  .property-floor-row { grid-template-columns: repeat(var(--room-count), minmax(30px, 40px)); gap: 2px; }
  .property-room-cell { min-height: 28px; font-size: 8px; }
  .property-sandbox-side { grid-template-columns: 1fr; }
  .property-legend-list { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 390px) {
  .property-detail-grid,
  .property-import-map,
  .property-import-report,
  .property-quota-grid { grid-template-columns: 1fr; }
}

@media (max-width: 350px) {
  .property-table tr { grid-template-columns: 1fr; }
  .property-table td.property-card-address,
  .property-table td.property-card-actions { grid-column: auto; }
  .property-legend-list { grid-template-columns: repeat(2, 1fr); }
}
