:root {
    --ink: #18242d;
    --muted: #6b7780;
    --navy: #102b3a;
    --blue: #246783;
    --line: #dfe5e8;
    --bg: #f4f6f7;
    --card: #ffffff;
    --danger-bg: #fbe8e8;
    --danger: #9d3535;
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    min-height: 100%;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ink);
    background: var(--bg);
}

a {
    color: var(--blue);
}

.topbar {
    height: 64px;
    padding: 0 24px;
    background: var(--navy);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand {
    font-weight: 700;
    font-size: 1.15rem;
}

.userbar {
    font-size: .9rem;
}

.userbar a {
    color: #d7e8ef;
    margin-left: 16px;
}

.shell {
    display: grid;
    grid-template-columns: 220px 1fr;
    min-height: calc(100vh - 64px);
}

.sidebar {
    padding: 20px 12px;
    background: #fff;
    border-right: 1px solid var(--line);
}

.sidebar a,
.sidebar span {
    display: block;
    padding: 10px 12px;
    margin: 2px 0;
    border-radius: 8px;
    color: #344550;
    text-decoration: none;
}

.sidebar .active {
    background: #e7f0f4;
    color: var(--navy);
    font-weight: 650;
}

.content {
    padding: 32px;
}

h1 {
    margin: 0 0 4px;
    font-size: 1.8rem;
}

h2 {
    margin-top: 0;
}

.muted {
    color: var(--muted);
}

.stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(160px, 1fr));
    gap: 16px;
    margin-top: 28px;
}

.stat,
.panel {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 20px;
}

.stat strong {
    display: block;
    font-size: 1.8rem;
}

.stat span {
    color: var(--muted);
    font-size: .85rem;
}

.panel {
    margin-top: 20px;
}

.auth-body {
    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.auth-card {
    width: 100%;
    max-width: 390px;
    background: white;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 30px;
}

.auth-card label {
    display: block;
    margin: 16px 0 6px;
    font-size: .82rem;
    font-weight: 650;
}

.auth-card input {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid #cbd5da;
    border-radius: 8px;
    font: inherit;
}

.auth-card button {
    width: 100%;
    margin-top: 20px;
    border: 0;
    border-radius: 8px;
    background: var(--navy);
    color: white;
    padding: 12px;
    font: inherit;
    font-weight: 650;
    cursor: pointer;
}

.alert {
    padding: 10px 12px;
    border-radius: 8px;
    margin: 16px 0;
}

.alert.error {
    background: var(--danger-bg);
    color: var(--danger);
}

@media (max-width: 800px) {
    .shell {
        grid-template-columns: 1fr;
    }

    .sidebar {
        display: none;
    }

    .stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .content {
        padding: 20px;
    }
}

.page-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    margin-bottom:24px;
}

.page-head h1 {
    margin-bottom:4px;
}

.two-col {
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);
    gap:20px;
    align-items:start;
}

.two-col.wide-left {
    grid-template-columns:minmax(0,1.7fr) minmax(340px,.8fr);
}

.panel + .panel {
    margin-top:20px;
}

.table-wrap {
    width:100%;
    overflow-x:auto;
}

table {
    width:100%;
    border-collapse:collapse;
    font-size:.88rem;
}

th {
    text-align:left;
    color:var(--muted);
    font-size:.74rem;
    text-transform:uppercase;
    letter-spacing:.04em;
    border-bottom:1px solid var(--line);
    padding:10px 9px;
}

td {
    padding:11px 9px;
    border-bottom:1px solid #edf1f2;
    vertical-align:top;
}

tr:last-child td {
    border-bottom:0;
}

.empty {
    padding:28px;
    text-align:center;
    color:var(--muted);
}

.small {
    font-size:.78rem;
}

form label {
    display:block;
    font-size:.78rem;
    font-weight:650;
    color:#43545f;
    margin:14px 0 5px;
}

form input[type=text],
form input[type=email],
form input[type=password],
form input[type=number],
form input[type=date],
form select,
form textarea {
    width:100%;
    border:1px solid #cbd5da;
    border-radius:8px;
    padding:10px 11px;
    font:inherit;
    background:#fff;
    color:var(--ink);
}

form textarea {
    resize:vertical;
}

form input:focus,
form select:focus,
form textarea:focus {
    outline:none;
    border-color:#5f8fa4;
    box-shadow:0 0 0 3px rgba(36,103,131,.10);
}

form button {
    border:0;
    border-radius:8px;
    background:var(--navy);
    color:#fff;
    font:inherit;
    font-weight:650;
    padding:11px 16px;
    cursor:pointer;
    margin-top:18px;
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.form-grid.three {
    grid-template-columns:repeat(3,1fr);
}

.check {
    display:flex !important;
    align-items:center;
    gap:8px;
    font-weight:500 !important;
}

.check input {
    width:auto;
}

.alert.success {
    background:#e7f4eb;
    color:#245d39;
}

.nav-section {
    color:#8b989f !important;
    font-size:.68rem !important;
    text-transform:uppercase;
    letter-spacing:.08em;
    margin-top:15px !important;
    padding-bottom:4px !important;
}

@media (max-width:1050px) {
    .two-col,
    .two-col.wide-left {
        grid-template-columns:1fr;
    }
}

@media (max-width:650px) {
    .form-grid,
    .form-grid.three,
    .stats {
        grid-template-columns:1fr;
    }
}

.inline-form {
    display:inline-block;
    margin:2px;
}

.inline-form button,
.small-button {
    margin:0;
    padding:5px 9px;
    font-size:.75rem;
}

.danger-button {
    background:#a84242 !important;
}

.narrow-panel {
    max-width:720px;
}

.checklist-panel {
    max-width:900px;
}

.checklist-group {
    margin-bottom:28px;
}

.checklist-row {
    display:grid;
    grid-template-columns:minmax(260px,1fr) minmax(180px,.6fr);
    gap:16px;
    align-items:center;
    padding:10px 0;
    border-bottom:1px solid #edf1f2;
}

.checklist-task {
    display:flex !important;
    gap:10px;
    align-items:flex-start;
    margin:0 !important;
    font-weight:500 !important;
}

.checklist-task input {
    margin-top:3px;
}

.checklist-task small {
    display:block;
    color:var(--muted);
    margin-top:2px;
}

.checklist-note {
    margin:0 !important;
}

.maintenance-update {
    min-width:220px;
}

.maintenance-update select,
.maintenance-update input {
    margin-bottom:5px;
}

.activity-list {
    display:grid;
    gap:10px;
}

.activity-item {
    padding:12px 0;
    border-bottom:1px solid #edf1f2;
}

.activity-item small {
    display:block;
    color:var(--muted);
    margin-top:6px;
}

.media-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.media-card {
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
    background:#fff;
}

.media-card img {
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}

.media-card > div {
    padding:10px;
}

@media(max-width:800px) {
    .checklist-row {
        grid-template-columns:1fr;
    }

    .media-grid {
        grid-template-columns:1fr 1fr;
    }
}

.frontdesk-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    margin-bottom:20px;
}

.frontdesk-grid .panel {
    margin-top:0;
}

.frontdesk-row {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
    padding:11px 0;
    border-bottom:1px solid #edf1f2;
}

.frontdesk-row:last-child {
    border-bottom:0;
}

.count-pill {
    display:inline-block;
    min-width:24px;
    padding:2px 7px;
    margin-left:5px;
    border-radius:14px;
    text-align:center;
    font-size:.72rem;
    background:#e8eff2;
    color:#324b58;
}

@media(max-width:950px) {
    .frontdesk-grid {
        grid-template-columns:1fr;
    }
}

.guest-shell {
    max-width:1100px;
    margin:0 auto;
    padding:28px 20px 60px;
}

.guest-summary {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-bottom:20px;
}

.guest-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.section-form {
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid var(--line);
}

.section-form h3 {
    margin:0 0 8px;
}

.arrival-item {
    padding:12px 0;
    border-bottom:1px solid #edf1f2;
}

.arrival-item:last-child {
    border-bottom:0;
}

.secondary-button {
    background:#e7ecef !important;
    color:#263c48 !important;
}

@media(max-width:800px) {
    .guest-summary {
        grid-template-columns:1fr 1fr;
    }

    .guest-grid {
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   ResortSentry Property Command Center
   ========================================================== */

.command-head {
    align-items:center;
}

.property-switcher select {
    min-width:240px;
}

.command-stats {
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.command-stat {
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:16px;
    text-align:center;
}

.command-stat strong {
    display:block;
    font-size:26px;
    line-height:1;
    margin-bottom:7px;
}

.command-stat span {
    display:block;
    font-size:12px;
    color:#687981;
}

.command-alert-strip {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:10px;
    margin-bottom:18px;
}

.command-alert-strip > div {
    background:#f5f7f8;
    border:1px solid var(--line);
    border-radius:9px;
    padding:10px 12px;
    font-size:12px;
}

.command-alert-strip strong {
    display:block;
    font-size:18px;
    margin-bottom:2px;
}

.command-quicklinks {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:20px;
}

.command-quicklinks a {
    display:inline-block;
    padding:8px 12px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:8px;
    text-decoration:none;
}

.panel-title-row {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
}

.unit-legend {
    font-size:12px;
    color:#687981;
    display:flex;
    gap:12px;
    white-space:nowrap;
}

.resort-unit-grid {
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}

.resort-unit-card {
    min-height:180px;
    border:1px solid var(--line);
    border-top:4px solid #8b989f;
    border-radius:10px;
    background:#fff;
    padding:11px;
}

.resort-unit-card.status-occupied {
    border-top-color:#476b7b;
}

.resort-unit-card.status-vacant-ready {
    border-top-color:#698b6c;
}

.resort-unit-card.status-dirty {
    border-top-color:#a56a5d;
}

.resort-unit-card.status-cleaning {
    border-top-color:#88784f;
}

.resort-unit-card.status-inspection {
    border-top-color:#665c85;
}

.resort-unit-card.status-maintenance,
.resort-unit-card.status-out-of-service {
    border-top-color:#8d5757;
}

.unit-card-top {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:8px;
    padding-bottom:8px;
    margin-bottom:8px;
    border-bottom:1px solid #edf0f2;
}

.unit-number {
    font-size:18px;
}

.unit-management {
    margin-right:3px;
    font-size:11px;
}

.unit-status {
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.03em;
    color:#697981;
    text-align:right;
}

.unit-guest {
    min-height:57px;
}

.unit-empty {
    font-size:12px;
    color:#89969c;
    padding-top:8px;
}

.unit-mini-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:4px;
    margin-top:10px;
}

.unit-mini-grid > div {
    background:#f6f8f9;
    padding:6px;
    border-radius:6px;
}

.unit-mini-grid span {
    display:block;
    font-size:9px;
    color:#718087;
}

.unit-mini-grid strong {
    display:block;
    font-size:11px;
}

.unit-actions {
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    margin-top:10px;
}

.unit-actions form {
    margin:0;
}

.unit-actions button {
    font-size:10px;
    padding:6px 8px;
}

.command-two-col {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.command-row {
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:10px 0;
    border-bottom:1px solid #edf0f2;
}

.command-row:last-child {
    border-bottom:0;
}

@media(max-width:1400px) {
    .command-stats {
        grid-template-columns:repeat(4,1fr);
    }

    .command-alert-strip {
        grid-template-columns:repeat(4,1fr);
    }

    .resort-unit-grid {
        grid-template-columns:repeat(6,1fr);
    }
}

@media(max-width:1050px) {
    .resort-unit-grid {
        grid-template-columns:repeat(4,1fr);
    }
}

@media(max-width:760px) {
    .command-stats {
        grid-template-columns:repeat(2,1fr);
    }

    .command-alert-strip {
        grid-template-columns:repeat(2,1fr);
    }

    .resort-unit-grid {
        grid-template-columns:repeat(2,1fr);
    }

    .command-two-col {
        grid-template-columns:1fr;
    }

    .panel-title-row {
        display:block;
    }

    .unit-legend {
        margin-top:8px;
    }
}

/* ==========================================================
   ResortSentry Demo UI Refresh — Chunk 14
   ========================================================== */

:root {
    --rs-navy:#142d3b;
    --rs-navy-2:#1d4051;
    --rs-surface:#ffffff;
    --rs-bg:#f4f6f7;
    --rs-border:#dfe5e8;
    --rs-muted:#6b7b84;
    --rs-text:#1f313a;
    --rs-green:#557a5b;
    --rs-green-soft:#edf5ee;
    --rs-amber:#9a7328;
    --rs-amber-soft:#fbf4e6;
    --rs-red:#9c544b;
    --rs-red-soft:#faefed;
    --rs-blue:#416c82;
    --rs-blue-soft:#edf4f7;
}


/* Main application shell */

body {
    background:var(--rs-bg);
}

.topbar {
    min-height:62px;
    background:var(--rs-navy);
    border-bottom:0;
    padding:0 24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.topbar .brand {
    color:#fff;
    font-size:20px;
    font-weight:700;
    letter-spacing:-.02em;
}

.topbar .userbar {
    color:#dce6eb;
    display:flex;
    align-items:center;
    gap:16px;
}

.topbar .userbar a {
    color:#fff;
    text-decoration:none;
    opacity:.85;
}

.topbar .userbar a:hover {
    opacity:1;
}

.shell {
    align-items:stretch;
}

.sidebar {
    width:230px;
    min-width:230px;
    background:#fff;
    border-right:1px solid var(--rs-border);
    padding:18px 14px 30px;
    min-height:calc(100vh - 62px);
}

.sidebar-property-mark {
    padding:7px 10px 17px;
    margin-bottom:7px;
    border-bottom:1px solid #edf1f2;
}

.sidebar-app-name {
    font-size:14px;
    font-weight:700;
    color:var(--rs-navy);
}

.sidebar-app-sub {
    margin-top:2px;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#8a989f;
}

.sidebar .nav-section {
    display:block;
    margin:18px 10px 6px;
    font-size:10px;
    font-weight:700;
    color:#839198;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.sidebar a {
    display:block;
    padding:8px 10px;
    margin:1px 0;
    border-radius:7px;
    color:#43535b;
    text-decoration:none;
    font-size:13px;
    font-weight:500;
    transition:background .12s ease,color .12s ease;
}

.sidebar a:hover {
    background:#f2f5f6;
    color:var(--rs-navy);
}

.sidebar a.active {
    background:#eaf0f3;
    color:var(--rs-navy);
    font-weight:700;
}

.content {
    width:calc(100% - 230px);
    max-width:none;
    padding:26px 28px 50px;
}


/* Header */

.cc-page-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:22px;
}

.cc-page-head h1 {
    margin:2px 0 3px;
    color:var(--rs-navy);
    font-size:28px;
    line-height:1.15;
    letter-spacing:-.025em;
}

.cc-page-head p {
    margin:0;
    color:var(--rs-muted);
}

.cc-eyebrow {
    color:#86969e;
    font-size:10px;
    font-weight:700;
    letter-spacing:.12em;
}

.cc-property-switcher {
    width:260px;
}

.cc-property-switcher label {
    display:block;
    margin-bottom:4px;
    font-size:10px;
    font-weight:700;
    color:#819097;
    text-transform:uppercase;
    letter-spacing:.07em;
}

.cc-property-switcher select {
    width:100%;
    background:#fff;
}


/* Primary stats */

.cc-primary-stats {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:12px;
}

.cc-kpi {
    background:#fff;
    border:1px solid var(--rs-border);
    border-radius:11px;
    padding:15px 17px;
    box-shadow:0 1px 1px rgba(16,42,55,.02);
}

.cc-kpi.attention {
    border-color:#e4c88f;
    background:#fffaf1;
}

.cc-kpi-label {
    font-size:11px;
    font-weight:700;
    color:#687a83;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.cc-kpi-value {
    margin:6px 0 2px;
    font-size:31px;
    line-height:1;
    font-weight:700;
    color:var(--rs-navy);
}

.cc-kpi-foot {
    font-size:11px;
    color:#88969d;
}


/* Secondary statuses */

.cc-status-strip {
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    border:1px solid var(--rs-border);
    background:#fff;
    border-radius:10px;
    margin-bottom:13px;
    overflow:hidden;
}

.cc-status-strip > div {
    padding:10px 12px;
    border-right:1px solid #edf0f2;
}

.cc-status-strip > div:last-child {
    border-right:0;
}

.cc-status-strip span {
    display:block;
    font-size:9px;
    color:#849299;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.cc-status-strip strong {
    display:block;
    margin-top:2px;
    font-size:12px;
    color:#344850;
}

.cc-status-strip strong.good {
    color:var(--rs-green);
}

.cc-status-strip strong.warn {
    color:var(--rs-amber);
}


/* Quick nav */

.cc-actions {
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-bottom:19px;
}

.cc-actions a {
    background:#fff;
    border:1px solid var(--rs-border);
    border-radius:7px;
    padding:7px 11px;
    color:#41545d;
    font-size:12px;
    text-decoration:none;
}

.cc-actions a:hover {
    border-color:#b9c8cf;
    color:var(--rs-navy);
}


/* Panels */

.panel {
    border:1px solid var(--rs-border);
    border-radius:11px;
    box-shadow:0 1px 2px rgba(20,45,59,.025);
}

.cc-section-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:13px;
}

.cc-section-head h2 {
    margin:0;
    color:var(--rs-navy);
    font-size:17px;
}

.cc-section-head p {
    margin:3px 0 0;
    color:var(--rs-muted);
    font-size:12px;
}

.cc-count-pill {
    min-width:30px;
    padding:4px 8px;
    border-radius:20px;
    background:var(--rs-amber-soft);
    color:var(--rs-amber);
    text-align:center;
    font-size:12px;
    font-weight:700;
}


/* Needs attention */

.cc-attention-panel {
    margin-bottom:18px;
}

.cc-attention-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
}

.cc-attention-card {
    border:1px solid #eadfc9;
    background:#fffdf8;
    border-radius:9px;
    padding:12px;
}

.cc-link-card {
    color:inherit;
    text-decoration:none;
}

.cc-link-card:hover {
    border-color:#d5bc8c;
}

.cc-attention-type {
    margin-bottom:5px;
    color:#9a7a3e;
    font-size:9px;
    font-weight:700;
    letter-spacing:.08em;
}

.cc-attention-title {
    color:#31454e;
    font-size:14px;
    font-weight:700;
}

.cc-attention-detail {
    margin-top:3px;
    color:#708087;
    font-size:11px;
}

.cc-attention-card form {
    margin:9px 0 0;
}

.cc-inline-actions {
    display:flex;
    gap:6px;
    margin-top:9px;
}

.cc-empty-good {
    background:var(--rs-green-soft);
    color:var(--rs-green);
    border-radius:8px;
    padding:11px 13px;
    font-size:12px;
}


/* Today */

.cc-two-col {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin-bottom:18px;
}

.cc-today-row {
    display:grid;
    grid-template-columns:45px 1fr auto;
    gap:11px;
    align-items:center;
    padding:10px 0;
    border-bottom:1px solid #edf0f2;
}

.cc-today-row:last-child {
    border-bottom:0;
}

.cc-unit-badge {
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    min-height:34px;
    border-radius:7px;
    background:var(--rs-blue-soft);
    color:var(--rs-blue);
    font-weight:700;
    font-size:12px;
}

.cc-today-main strong,
.cc-today-main span {
    display:block;
}

.cc-today-main strong {
    color:#344951;
    font-size:13px;
}

.cc-today-main span {
    margin-top:2px;
    color:#839097;
    font-size:11px;
}

.cc-status-badge {
    border-radius:20px;
    background:#f0f3f4;
    padding:4px 8px;
    color:#64737a;
    font-size:10px;
    font-weight:600;
}


/* Unit board */

.cc-unit-board {
    margin-bottom:18px;
}

.cc-unit-legend {
    display:flex;
    gap:14px;
    color:#718188;
    font-size:10px;
}

.cc-unit-legend span {
    display:flex;
    align-items:center;
    gap:5px;
}

.cc-dot,
.cc-management-dot {
    display:inline-block;
    border-radius:50%;
}

.cc-dot {
    width:8px;
    height:8px;
}

.cc-management-dot {
    width:7px;
    height:7px;
    margin-right:5px;
}

.cc-dot.rental,
.cc-management-dot.rental {
    background:#5c7f90;
}

.cc-dot.private,
.cc-management-dot.private {
    background:#b78752;
}

.cc-floor {
    margin-top:17px;
}

.cc-floor:first-of-type {
    margin-top:7px;
}

.cc-floor-label {
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:7px;
}

.cc-floor-label span {
    color:#728189;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.09em;
    white-space:nowrap;
}

.cc-floor-label div {
    height:1px;
    flex:1;
    background:#edf0f2;
}

.cc-floor-grid {
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    gap:7px;
    align-items:stretch;
}

.cc-unit-tile {
    border:1px solid var(--rs-border);
    border-left:4px solid #84949b;
    background:#fff;
    border-radius:8px;
    padding:9px;
    min-width:0;
}

.cc-unit-tile.is-compact {
    min-height:76px;
}

.cc-unit-tile.is-focus {
    grid-column:span 2;
    min-height:145px;
    padding:11px;
    box-shadow:0 2px 5px rgba(20,45,59,.05);
}

.cc-unit-tile.state-vacant-ready {
    border-left-color:#6f9573;
}

.cc-unit-tile.state-occupied {
    border-left-color:#49768d;
    background:#fbfdfe;
}

.cc-unit-tile.state-dirty {
    border-left-color:#aa6557;
    background:#fffafa;
}

.cc-unit-tile.state-cleaning {
    border-left-color:#a1813f;
    background:#fffdf8;
}

.cc-unit-tile.state-inspection {
    border-left-color:#716294;
    background:#fcfbff;
}

.cc-unit-tile.state-maintenance,
.cc-unit-tile.state-out-of-service {
    border-left-color:#994e4e;
    background:#fffafa;
}

.cc-unit-top {
    display:flex;
    justify-content:space-between;
    gap:7px;
    align-items:flex-start;
}

.cc-unit-number {
    display:flex;
    align-items:center;
    color:var(--rs-navy);
    font-size:15px;
    font-weight:700;
}

.cc-unit-state {
    color:#819097;
    font-size:8px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    text-align:right;
}

.cc-compact-meta {
    display:flex;
    gap:7px;
    margin-top:15px;
    color:#8b989e;
    font-size:9px;
}

.cc-focus-guest {
    margin-top:11px;
}

.cc-focus-guest strong,
.cc-focus-guest span {
    display:block;
}

.cc-focus-guest strong {
    color:#31454e;
    font-size:13px;
}

.cc-focus-guest span {
    margin-top:2px;
    color:#7b898f;
    font-size:10px;
}

.cc-focus-dates {
    margin-top:5px;
    color:#66767d;
    font-size:10px;
}

.cc-focus-dates span {
    padding:0 3px;
}

.cc-focus-metrics {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:5px;
    margin-top:9px;
}

.cc-focus-metrics > div {
    background:#f5f7f8;
    border-radius:6px;
    padding:6px;
}

.cc-focus-metrics span,
.cc-focus-metrics strong,
.cc-focus-metrics small {
    display:block;
}

.cc-focus-metrics span {
    color:#849198;
    font-size:8px;
    text-transform:uppercase;
}

.cc-focus-metrics strong {
    margin-top:2px;
    color:#354950;
    font-size:10px;
}

.cc-focus-metrics small {
    margin-top:1px;
    color:#8a969c;
    font-size:8px;
}

.cc-unit-actions {
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    margin-top:9px;
}

.cc-unit-actions form {
    margin:0;
}

.cc-unit-actions button {
    padding:5px 7px;
    font-size:9px;
}

.cc-focus-empty {
    margin-top:16px;
    color:#8b7570;
    font-size:10px;
}


/* Housekeeping */

.cc-service-list {
    display:flex;
    flex-direction:column;
}

.cc-service-row {
    display:grid;
    grid-template-columns:48px minmax(180px,1fr) 160px 110px 180px;
    gap:12px;
    align-items:center;
    padding:10px 0;
    border-bottom:1px solid #edf0f2;
}

.cc-service-row:last-child {
    border-bottom:0;
}

.cc-service-main strong,
.cc-service-main span {
    display:block;
}

.cc-service-main strong {
    color:#344850;
    font-size:12px;
}

.cc-service-main span {
    margin-top:2px;
    color:#819097;
    font-size:10px;
}

.cc-service-progress {
    font-size:11px;
}

.cc-service-status {
    font-size:10px;
    color:#63747c;
    text-transform:uppercase;
    letter-spacing:.03em;
}

.cc-service-action form {
    margin:0;
}

.cc-text-link {
    color:var(--rs-blue);
    font-size:11px;
    text-decoration:none;
}


/* Button refinements */

.small-button {
    border-radius:6px;
    font-weight:600;
}

.tertiary-button {
    background:#fff !important;
    color:#566970 !important;
    border:1px solid #ced8dc !important;
}


/* Responsive */

@media(max-width:1500px) {

    .cc-status-strip {
        grid-template-columns:repeat(4,1fr);
    }

    .cc-status-strip > div:nth-child(4n) {
        border-right:0;
    }

    .cc-floor-grid {
        grid-template-columns:repeat(6,1fr);
    }

    .cc-attention-grid {
        grid-template-columns:repeat(3,1fr);
    }
}


@media(max-width:1150px) {

    .content {
        padding:22px;
    }

    .cc-floor-grid {
        grid-template-columns:repeat(4,1fr);
    }

    .cc-attention-grid {
        grid-template-columns:repeat(2,1fr);
    }

    .cc-service-row {
        grid-template-columns:44px 1fr 130px 150px;
    }

    .cc-service-status {
        display:none;
    }
}


@media(max-width:820px) {

    .shell {
        display:block;
    }

    .sidebar {
        width:100%;
        min-width:0;
        min-height:0;
        border-right:0;
        border-bottom:1px solid var(--rs-border);
        display:flex;
        gap:5px;
        overflow-x:auto;
        padding:10px;
    }

    .sidebar-property-mark,
    .sidebar .nav-section {
        display:none;
    }

    .sidebar a {
        white-space:nowrap;
        padding:7px 10px;
    }

    .content {
        width:100%;
        padding:16px;
    }

    .cc-page-head {
        display:block;
    }

    .cc-property-switcher {
        width:100%;
        margin-top:13px;
    }

    .cc-primary-stats {
        grid-template-columns:repeat(2,1fr);
    }

    .cc-status-strip {
        grid-template-columns:repeat(2,1fr);
    }

    .cc-two-col {
        grid-template-columns:1fr;
    }

    .cc-floor-grid {
        grid-template-columns:repeat(2,1fr);
    }

    .cc-unit-tile.is-focus {
        grid-column:span 2;
    }

    .cc-attention-grid {
        grid-template-columns:1fr;
    }

    .cc-service-row {
        grid-template-columns:42px 1fr;
    }

    .cc-service-progress,
    .cc-service-status,
    .cc-service-action {
        grid-column:2;
    }
}

/* ==========================================================
   Resident / Condo Operations
   ========================================================== */

.residentops-tabs {
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-bottom:18px;
}

.residentops-tabs a {
    background:#fff;
    border:1px solid var(--rs-border);
    border-radius:7px;
    padding:7px 11px;
    font-size:12px;
    color:#425760;
    text-decoration:none;
}

.residentops-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:22px;
}

.residentops-form {
    background:#f7f9fa;
    border:1px solid #e5eaec;
    border-radius:9px;
    padding:15px;
}

.residentops-form h3 {
    margin-top:0;
    font-size:15px;
}

.residentops-record {
    padding:13px 0;
    border-bottom:1px solid #edf0f2;
}

.residentops-record:first-child {
    padding-top:0;
}

.residentops-record-head {
    display:flex;
    justify-content:space-between;
    gap:12px;
}

.residentops-record-head strong {
    margin-left:7px;
}

.residentops-status {
    border-radius:15px;
    padding:3px 7px;
    font-size:9px;
    text-transform:uppercase;
    font-weight:700;
}

.residentops-status.status-draft {
    background:#f1f3f4;
    color:#748087;
}

.residentops-status.status-published {
    background:#edf5ee;
    color:#557a5b;
}

.residentops-status.status-archived {
    background:#f3f3f3;
    color:#999;
}

.residentops-body {
    margin-top:8px;
    color:#53666f;
    font-size:12px;
    line-height:1.55;
}

.residentops-meta {
    margin:6px 0;
    color:#8a979d;
    font-size:10px;
}


.shift-log-entry {
    border-left:3px solid #aab5ba;
    padding:10px 12px;
    margin-bottom:9px;
    background:#fafbfb;
    border-radius:0 7px 7px 0;
}

.shift-log-entry.priority-important {
    border-left-color:#af873e;
}

.shift-log-entry.priority-urgent {
    border-left-color:#a7554c;
    background:#fffafa;
}

.shift-log-head {
    display:flex;
    justify-content:space-between;
    gap:15px;
}

.shift-log-head strong,
.shift-log-head span {
    display:block;
}

.shift-log-head strong {
    font-size:12px;
}

.shift-log-head span {
    color:#819097;
    font-size:10px;
    margin-top:2px;
}

.shift-log-head time {
    color:#89969c;
    font-size:10px;
}

.shift-log-details {
    margin:7px 0;
    color:#596c74;
    font-size:11px;
}


/* Resident portal */

.resident-body {
    background:#f5f7f8;
}

.resident-topbar {
    min-height:64px;
    background:#142d3b;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:0 24px;
    color:#fff;
}

.resident-brand {
    font-size:19px;
    font-weight:700;
}

.resident-subbrand {
    color:#aebfc7;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.resident-user {
    display:flex;
    gap:15px;
    align-items:center;
    color:#dce6ea;
    font-size:12px;
}

.resident-user a {
    color:#fff;
    text-decoration:none;
}

.resident-shell {
    max-width:1100px;
    margin:0 auto;
    padding:28px 20px 60px;
}

.resident-welcome {
    margin-bottom:24px;
}

.resident-welcome h1 {
    margin:4px 0;
    color:#142d3b;
    font-size:29px;
}

.resident-welcome p {
    margin:0;
    color:#718188;
}

.resident-section {
    margin-top:25px;
}

.resident-section > h2 {
    color:#263d48;
    font-size:17px;
    margin-bottom:10px;
}

.resident-unit-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.resident-unit-card,
.resident-info-card,
.resident-table-card,
.resident-announcements,
.resident-notices {
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:10px;
}

.resident-unit-card {
    padding:16px;
}

.resident-unit-number {
    color:#142d3b;
    font-size:20px;
    font-weight:700;
}

.resident-property-name {
    margin-top:2px;
    color:#74838a;
    font-size:11px;
}

.resident-relationship {
    display:inline-block;
    margin-top:10px;
    padding:4px 8px;
    background:#edf3f5;
    color:#456473;
    border-radius:20px;
    font-size:10px;
    font-weight:600;
}

.resident-unit-status {
    display:flex;
    justify-content:space-between;
    margin-top:15px;
    padding-top:10px;
    border-top:1px solid #eef1f2;
    font-size:11px;
}

.resident-unit-status span {
    color:#849198;
}

.resident-permissions {
    display:flex;
    gap:5px;
    flex-wrap:wrap;
    margin-top:10px;
}

.resident-permissions span {
    background:#f5f7f8;
    border-radius:5px;
    padding:4px 6px;
    color:#748289;
    font-size:9px;
}

.resident-announcements article {
    display:grid;
    grid-template-columns:60px 1fr;
    gap:14px;
    padding:15px;
    border-bottom:1px solid #edf0f2;
}

.resident-announcements article:last-child {
    border-bottom:0;
}

.resident-announcement-date {
    color:#66808d;
    font-size:11px;
    font-weight:700;
}

.resident-announcements h3 {
    margin:0;
    color:#2f4650;
    font-size:14px;
}

.resident-announcements p {
    margin:5px 0 0;
    color:#64757d;
    font-size:12px;
    line-height:1.55;
}

.resident-table-card {
    overflow:hidden;
}

.resident-table-card table {
    margin:0;
}

.resident-card-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
}

.resident-info-card {
    padding:14px;
}

.resident-info-card > strong,
.resident-info-card > span {
    display:block;
}

.resident-info-card > strong {
    color:#314750;
}

.resident-info-card > span {
    margin-top:3px;
    color:#7c8a90;
    font-size:11px;
}

.resident-info-row {
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-top:10px;
    padding-top:8px;
    border-top:1px solid #edf0f2;
    font-size:10px;
}

.resident-info-row span {
    color:#829097;
}

.resident-notice {
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:13px 15px;
    border-left:4px solid #819096;
    border-bottom:1px solid #edf0f2;
}

.resident-notice:last-child {
    border-bottom:0;
}

.resident-notice.severity-medium {
    border-left-color:#ae833e;
}

.resident-notice.severity-high {
    border-left-color:#a3524b;
}

.resident-notice strong {
    color:#344951;
    font-size:12px;
}

.resident-notice p {
    margin:4px 0 0;
    color:#718087;
    font-size:11px;
}

.resident-notice > span {
    color:#748188;
    font-size:10px;
}

.resident-empty {
    background:#fff;
    border:1px dashed #d5dde0;
    border-radius:9px;
    padding:16px;
    color:#849097;
    font-size:12px;
}


@media(max-width:900px) {

    .residentops-layout {
        grid-template-columns:1fr;
    }

    .resident-unit-grid,
    .resident-card-grid {
        grid-template-columns:1fr 1fr;
    }
}


@media(max-width:600px) {

    .resident-topbar {
        padding:12px 15px;
        align-items:flex-start;
    }

    .resident-user {
        flex-wrap:wrap;
        justify-content:flex-end;
    }

    .resident-unit-grid,
    .resident-card-grid {
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   Resident / Condo Operations — Chunk 16
   ========================================================== */

.residentops-tabs {
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-bottom:18px;
}

.residentops-tabs a {
    background:#fff;
    border:1px solid var(--rs-border);
    border-radius:7px;
    padding:7px 11px;
    font-size:12px;
    color:#425760;
    text-decoration:none;
}

.residentops-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:22px;
}

.residentops-form {
    background:#f7f9fa;
    border:1px solid #e5eaec;
    border-radius:9px;
    padding:15px;
}

.residentops-form h3 {
    margin-top:0;
    font-size:15px;
}

.residentops-record {
    padding:13px 0;
    border-bottom:1px solid #edf0f2;
}

.residentops-record:first-child {
    padding-top:0;
}

.residentops-record-head {
    display:flex;
    justify-content:space-between;
    gap:12px;
}

.residentops-record-head strong {
    margin-left:7px;
}

.residentops-status {
    border-radius:15px;
    padding:3px 7px;
    font-size:9px;
    text-transform:uppercase;
    font-weight:700;
}

.residentops-status.status-draft {
    background:#f1f3f4;
    color:#748087;
}

.residentops-status.status-published {
    background:#edf5ee;
    color:#557a5b;
}

.residentops-status.status-archived {
    background:#f3f3f3;
    color:#999;
}

.residentops-body {
    margin-top:8px;
    color:#53666f;
    font-size:12px;
    line-height:1.55;
}

.residentops-meta {
    margin:6px 0;
    color:#8a979d;
    font-size:10px;
}

.shift-log-entry {
    border-left:3px solid #aab5ba;
    padding:10px 12px;
    margin-bottom:9px;
    background:#fafbfb;
    border-radius:0 7px 7px 0;
}

.shift-log-entry.priority-important {
    border-left-color:#af873e;
}

.shift-log-entry.priority-urgent {
    border-left-color:#a7554c;
    background:#fffafa;
}

.shift-log-head {
    display:flex;
    justify-content:space-between;
    gap:15px;
}

.shift-log-head strong,
.shift-log-head span {
    display:block;
}

.shift-log-head strong {
    font-size:12px;
}

.shift-log-head span {
    color:#819097;
    font-size:10px;
    margin-top:2px;
}

.shift-log-head time {
    color:#89969c;
    font-size:10px;
}

.shift-log-details {
    margin:7px 0;
    color:#596c74;
    font-size:11px;
}


/* Resident-facing portal */

.resident-body {
    background:#f5f7f8;
}

.resident-topbar {
    min-height:64px;
    background:#142d3b;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:0 24px;
    color:#fff;
}

.resident-brand {
    font-size:19px;
    font-weight:700;
}

.resident-subbrand {
    color:#aebfc7;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.resident-user {
    display:flex;
    gap:15px;
    align-items:center;
    color:#dce6ea;
    font-size:12px;
}

.resident-user a {
    color:#fff;
    text-decoration:none;
}

.resident-shell {
    max-width:1100px;
    margin:0 auto;
    padding:28px 20px 60px;
}

.resident-welcome {
    margin-bottom:24px;
}

.resident-welcome h1 {
    margin:4px 0;
    color:#142d3b;
    font-size:29px;
}

.resident-welcome p {
    margin:0;
    color:#718188;
}

.resident-section {
    margin-top:25px;
}

.resident-section > h2 {
    color:#263d48;
    font-size:17px;
    margin-bottom:10px;
}

.resident-unit-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.resident-unit-card,
.resident-info-card,
.resident-table-card,
.resident-announcements,
.resident-notices {
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:10px;
}

.resident-unit-card {
    padding:16px;
}

.resident-unit-number {
    color:#142d3b;
    font-size:20px;
    font-weight:700;
}

.resident-property-name {
    margin-top:2px;
    color:#74838a;
    font-size:11px;
}

.resident-relationship {
    display:inline-block;
    margin-top:10px;
    padding:4px 8px;
    background:#edf3f5;
    color:#456473;
    border-radius:20px;
    font-size:10px;
    font-weight:600;
}

.resident-unit-status {
    display:flex;
    justify-content:space-between;
    margin-top:15px;
    padding-top:10px;
    border-top:1px solid #eef1f2;
    font-size:11px;
}

.resident-unit-status span {
    color:#849198;
}

.resident-permissions {
    display:flex;
    gap:5px;
    flex-wrap:wrap;
    margin-top:10px;
}

.resident-permissions span {
    background:#f5f7f8;
    border-radius:5px;
    padding:4px 6px;
    color:#748289;
    font-size:9px;
}

.resident-announcements article {
    display:grid;
    grid-template-columns:60px 1fr;
    gap:14px;
    padding:15px;
    border-bottom:1px solid #edf0f2;
}

.resident-announcements article:last-child {
    border-bottom:0;
}

.resident-announcement-date {
    color:#66808d;
    font-size:11px;
    font-weight:700;
}

.resident-announcements h3 {
    margin:0;
    color:#2f4650;
    font-size:14px;
}

.resident-announcements p {
    margin:5px 0 0;
    color:#64757d;
    font-size:12px;
    line-height:1.55;
}

.resident-table-card {
    overflow:hidden;
}

.resident-table-card table {
    margin:0;
}

.resident-card-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
}

.resident-info-card {
    padding:14px;
}

.resident-info-card > strong,
.resident-info-card > span {
    display:block;
}

.resident-info-card > strong {
    color:#314750;
}

.resident-info-card > span {
    margin-top:3px;
    color:#7c8a90;
    font-size:11px;
}

.resident-info-row {
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-top:10px;
    padding-top:8px;
    border-top:1px solid #edf0f2;
    font-size:10px;
}

.resident-info-row span {
    color:#829097;
}

.resident-notice {
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:13px 15px;
    border-left:4px solid #819096;
    border-bottom:1px solid #edf0f2;
}

.resident-notice:last-child {
    border-bottom:0;
}

.resident-notice.severity-medium {
    border-left-color:#ae833e;
}

.resident-notice.severity-high {
    border-left-color:#a3524b;
}

.resident-notice strong {
    color:#344951;
    font-size:12px;
}

.resident-notice p {
    margin:4px 0 0;
    color:#718087;
    font-size:11px;
}

.resident-notice > span {
    color:#748188;
    font-size:10px;
}

.resident-empty {
    background:#fff;
    border:1px dashed #d5dde0;
    border-radius:9px;
    padding:16px;
    color:#849097;
    font-size:12px;
}

@media(max-width:900px) {

    .residentops-layout {
        grid-template-columns:1fr;
    }

    .resident-unit-grid,
    .resident-card-grid {
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:600px) {

    .resident-topbar {
        padding:12px 15px;
        align-items:flex-start;
    }

    .resident-user {
        flex-wrap:wrap;
        justify-content:flex-end;
    }

    .resident-unit-grid,
    .resident-card-grid {
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   Resident Self-Service — Chunk 17
   ========================================================== */

.resident-self-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
}

.resident-form-card {
    margin-top:14px;
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:10px;
    padding:16px;
}

.resident-form-card h3 {
    margin-top:0;
    color:#314750;
    font-size:15px;
}

@media(max-width:850px) {
    .resident-self-grid {
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   Unit 360 — Chunk 18
   ========================================================== */

.unit360-summary {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:10px;
    margin-bottom:14px;
}

.unit360-summary > div {
    background:#fff;
    border:1px solid var(--rs-border);
    border-radius:9px;
    padding:12px;
}

.unit360-summary span,
.unit360-summary strong {
    display:block;
}

.unit360-summary span {
    color:#849198;
    font-size:9px;
    text-transform:uppercase;
}

.unit360-summary strong {
    margin-top:3px;
    color:#314750;
    font-size:13px;
}

.unit360-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.unit360-row {
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:9px 0;
    border-bottom:1px solid #edf0f2;
    font-size:11px;
}

.unit360-row:last-child {
    border-bottom:0;
}

.unit360-row strong,
.unit360-row span {
    display:block;
}

.unit360-row strong {
    color:#354a53;
}

.unit360-row span {
    margin-top:2px;
    color:#839097;
}

@media(max-width:900px) {

    .unit360-summary {
        grid-template-columns:repeat(2,1fr);
    }

    .unit360-grid {
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   Reports — Chunk 19
   ========================================================== */

.report-kpis {
    display:grid;
    grid-template-columns:repeat(8,1fr);
    gap:9px;
    margin-bottom:12px;
}

.report-kpis > div,
.report-financials > div {
    background:#fff;
    border:1px solid var(--rs-border);
    border-radius:9px;
    padding:12px;
}

.report-kpis span,
.report-kpis strong,
.report-financials span,
.report-financials strong {
    display:block;
}

.report-kpis span,
.report-financials span {
    color:#829097;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.report-kpis strong {
    margin-top:5px;
    color:#183441;
    font-size:22px;
}

.report-financials {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:9px;
    margin-bottom:18px;
}

.report-financials strong {
    margin-top:4px;
    color:#314750;
    font-size:16px;
}

.report-two-col {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin-bottom:18px;
}

@media(max-width:1200px) {

    .report-kpis {
        grid-template-columns:repeat(4,1fr);
    }
}

@media(max-width:800px) {

    .report-kpis,
    .report-financials {
        grid-template-columns:repeat(2,1fr);
    }

    .report-two-col {
        grid-template-columns:1fr;
    }
}

/* Resident Guest Management — Chunk 21 */

.resident-code-card {
    background:#fff8e8;
    border:1px solid #ead4a5;
    border-radius:10px;
    padding:18px;
    margin-bottom:20px;
}

.resident-code-card > div {
    color:#94702c;
    font-size:9px;
    font-weight:700;
    letter-spacing:.08em;
}

.resident-code-card strong {
    display:block;
    margin-top:5px;
    color:#263d48;
    font-family:monospace;
    font-size:24px;
    letter-spacing:.08em;
}

.resident-code-card p {
    margin-bottom:0;
    color:#7b6c4c;
    font-size:11px;
}

/* Maintenance Board — Chunk 22 */

.maintenance-board {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}

.maintenance-ticket {
    background:#fff;
    border:1px solid var(--rs-border);
    border-radius:10px;
    padding:14px;
}

.maintenance-ticket-head {
    display:flex;
    justify-content:space-between;
    gap:12px;
}

.maintenance-ticket-head span {
    color:#849198;
    font-size:9px;
    font-weight:700;
}

.maintenance-ticket-head h3 {
    margin:3px 0 0;
    color:#314750;
    font-size:14px;
}

.maintenance-ticket > p {
    color:#64757d;
    font-size:11px;
    line-height:1.5;
}

.maintenance-priority {
    height:max-content;
    border-radius:20px;
    padding:4px 7px;
    background:#f1f3f4;
    font-size:9px;
    font-weight:700;
}

.maintenance-priority.priority-rush,
.maintenance-priority.priority-high {
    background:#fff4df;
    color:#956d23;
}

.maintenance-priority.priority-urgent {
    background:#faece9;
    color:#9c5148;
}

.maintenance-ticket-meta {
    display:flex;
    gap:6px;
    flex-wrap:wrap;
}

.maintenance-ticket-meta span {
    background:#f5f7f8;
    border-radius:5px;
    padding:4px 6px;
    color:#748289;
    font-size:9px;
}

.maintenance-actions {
    display:flex;
    flex-direction:column;
    gap:7px;
    margin-top:12px;
}

.maintenance-actions form {
    display:flex;
    gap:6px;
    margin:0;
}

.maintenance-actions select,
.maintenance-actions input {
    min-width:0;
}

.maintenance-completed {
    margin-top:12px;
    color:#557a5b;
    font-size:10px;
}

@media(max-width:1100px) {

    .maintenance-board {
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:700px) {

    .maintenance-board {
        grid-template-columns:1fr;
    }
}

/* Owner / Resident Directory — Chunk 24 */

.directory-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:18px;
}

.directory-edit {
    min-width:280px;
    padding:12px 0;
}

.directory-edit label {
    display:block;
    margin-top:8px;
}

details summary {
    cursor:pointer;
    color:#416c82;
    font-size:11px;
}

@media(max-width:1000px) {
    .directory-layout {
        grid-template-columns:1fr;
    }
}

/* Parking Operations — Chunk 25 */

.parking-filter {
    display:grid;
    grid-template-columns:1fr 180px auto;
    gap:8px;
    margin-bottom:14px;
}

.parking-action {
    display:grid;
    grid-template-columns:100px 85px auto;
    gap:5px;
    margin-bottom:5px;
}

@media(max-width:800px) {

    .parking-filter {
        grid-template-columns:1fr;
    }

    .parking-action {
        grid-template-columns:1fr;
    }
}

/* Property Calendar — Chunk 26 */

.calendar-filters {
    display:grid;
    grid-template-columns:1fr 190px 190px auto;
    gap:10px;
    align-items:end;
    margin-bottom:12px;
}

.calendar-filters label {
    display:block;
    font-size:10px;
    color:#819097;
    text-transform:uppercase;
    margin-bottom:4px;
}

.calendar-range {
    margin-bottom:16px;
    color:#718188;
    font-size:12px;
}

.calendar-agenda {
    display:flex;
    flex-direction:column;
    gap:8px;
}

.calendar-day {
    display:grid;
    grid-template-columns:85px 1fr;
    gap:15px;
    background:#fff;
    border:1px solid var(--rs-border);
    border-radius:10px;
    padding:13px;
}

.calendar-date {
    border-right:1px solid #edf0f2;
}

.calendar-date strong,
.calendar-date span {
    display:block;
}

.calendar-date strong {
    color:#75858c;
    font-size:10px;
    text-transform:uppercase;
}

.calendar-date span {
    margin-top:2px;
    color:#203b48;
    font-size:17px;
    font-weight:700;
}

.calendar-events {
    display:flex;
    flex-direction:column;
    gap:6px;
}

.calendar-event {
    display:grid;
    grid-template-columns:92px 1fr;
    gap:10px;
    border-left:4px solid #829299;
    padding:7px 9px;
    background:#f8fafb;
    border-radius:0 6px 6px 0;
}

.calendar-event.event-arrival {
    border-left-color:#4f788c;
}

.calendar-event.event-departure {
    border-left-color:#8f655a;
}

.calendar-event.event-housekeeping {
    border-left-color:#927a3e;
}

.calendar-event.event-maintenance {
    border-left-color:#a0524d;
}

.calendar-event.event-amenity {
    border-left-color:#657b5e;
}

.calendar-event.event-announcement {
    border-left-color:#725f91;
}

.calendar-event-type {
    color:#809097;
    font-size:9px;
    font-weight:700;
    letter-spacing:.05em;
}

.calendar-event strong,
.calendar-event span {
    display:block;
}

.calendar-event strong {
    color:#344951;
    font-size:12px;
}

.calendar-event span {
    margin-top:2px;
    color:#7a898f;
    font-size:10px;
}

@media(max-width:800px) {

    .calendar-filters {
        grid-template-columns:1fr;
    }

    .calendar-day {
        grid-template-columns:62px 1fr;
    }

    .calendar-event {
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   Real Month Calendar — Chunk 26B
   ========================================================== */

.calendar-page-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px;
}

.calendar-page-head h1 {
    margin:3px 0;
}

.calendar-page-head p {
    margin:0;
    color:#74838a;
}


.calendar-month-nav {
    display:flex;
    align-items:center;
    gap:7px;
}


.calendar-month-title {
    min-width:155px;
    text-align:center;
    color:#263d48;
    font-size:17px;
    font-weight:700;
}


.calendar-nav-button,
.calendar-today-button {
    display:flex;
    align-items:center;
    justify-content:center;
    height:34px;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #dce3e6;
    border-radius:7px;
    color:#405963;
    text-decoration:none;
}


.calendar-nav-button {
    width:34px;
    font-size:18px;
}


.calendar-today-button {
    padding:0 12px;
    font-size:11px;
    font-weight:600;
}


.calendar-toolbar {
    display:flex;
    align-items:flex-end;
    gap:9px;
    margin-bottom:12px;
    padding:10px 12px;
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:9px;
}


.calendar-toolbar label {
    display:block;
    margin-bottom:3px;
    color:#839097;
    font-size:9px;
    font-weight:700;
    text-transform:uppercase;
}


.calendar-toolbar select {
    min-width:180px;
}


.calendar-toolbar-submit {
    padding-bottom:1px;
}


.calendar-legend {
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    margin:0 0 12px;
    color:#667980;
    font-size:10px;
}


.calendar-legend span {
    display:flex;
    align-items:center;
    gap:5px;
}


.calendar-legend i {
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:50%;
}


.legend-arrival {
    background:#46778e;
}

.legend-departure {
    background:#9a6658;
}

.legend-housekeeping {
    background:#9a803b;
}

.legend-maintenance {
    background:#a4514a;
}

.legend-amenity {
    background:#637e58;
}

.legend-announcement {
    background:#735d92;
}


.month-calendar {
    overflow:hidden;
    background:#fff;
    border:1px solid #dce3e6;
    border-radius:10px;
}


.month-calendar-weekdays {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    background:#f5f7f8;
    border-bottom:1px solid #dfe5e8;
}


.month-calendar-weekdays > div {
    padding:9px 10px;
    color:#74848b;
    font-size:10px;
    font-weight:700;
    text-align:center;
    text-transform:uppercase;
    letter-spacing:.05em;
}


.month-calendar-grid {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
}


.month-calendar-day {
    position:relative;
    min-width:0;
    min-height:142px;
    padding:7px;
    box-sizing:border-box;
    border-right:1px solid #e7ebed;
    border-bottom:1px solid #e7ebed;
    background:#fff;
}


.month-calendar-day:nth-child(7n) {
    border-right:0;
}


.month-calendar-day.outside-month {
    background:#fafbfb;
}


.month-calendar-day.outside-month
.calendar-day-number {
    opacity:.4;
}


.calendar-day-number {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:25px;
    margin-bottom:3px;
}


.calendar-day-number > span {
    display:flex;
    align-items:center;
    justify-content:center;
    width:25px;
    height:25px;
    color:#455b65;
    font-size:11px;
    font-weight:700;
}


.calendar-day-number small {
    color:#54798b;
    font-size:7px;
    font-weight:700;
    letter-spacing:.05em;
}


.month-calendar-day.calendar-today {
    background:#f8fbfc;
    box-shadow:
        inset 0 0 0 2px #7599aa;
}


.calendar-today
.calendar-day-number > span {
    background:#244b5d;
    border-radius:50%;
    color:#fff;
}


.calendar-day-events {
    display:flex;
    flex-direction:column;
    gap:3px;
}


.month-calendar-event {
    display:block;
    min-width:0;
    padding:4px 5px;
    background:#f5f7f8;
    border-left:3px solid #85959b;
    border-radius:3px;
    color:#344950;
    text-decoration:none;
    transition:
        background .12s ease,
        transform .12s ease;
}


.month-calendar-event:hover {
    background:#eef3f5;
    transform:translateX(1px);
}


.calendar-event-line {
    display:flex;
    align-items:center;
    gap:4px;
    min-width:0;
}


.calendar-event-line strong {
    overflow:hidden;
    min-width:0;
    color:#3c515a;
    font-size:9px;
    line-height:1.2;
    text-overflow:ellipsis;
    white-space:nowrap;
}


.calendar-event-marker {
    flex:0 0 auto;
    width:5px;
    height:5px;
    border-radius:50%;
    background:#85959b;
}


.calendar-event-detail {
    overflow:hidden;
    margin-top:2px;
    padding-left:9px;
    color:#7c898f;
    font-size:8px;
    text-overflow:ellipsis;
    white-space:nowrap;
}


.month-calendar-event.calendar-type-arrival {
    background:#eef5f8;
    border-left-color:#46778e;
}

.calendar-type-arrival
.calendar-event-marker {
    background:#46778e;
}


.month-calendar-event.calendar-type-departure {
    background:#f8f1ef;
    border-left-color:#9a6658;
}

.calendar-type-departure
.calendar-event-marker {
    background:#9a6658;
}


.month-calendar-event.calendar-type-housekeeping {
    background:#faf6e9;
    border-left-color:#9a803b;
}

.calendar-type-housekeeping
.calendar-event-marker {
    background:#9a803b;
}


.month-calendar-event.calendar-type-maintenance {
    background:#faeeee;
    border-left-color:#a4514a;
}

.calendar-type-maintenance
.calendar-event-marker {
    background:#a4514a;
}


.month-calendar-event.calendar-type-amenity {
    background:#eff5ed;
    border-left-color:#637e58;
}

.calendar-type-amenity
.calendar-event-marker {
    background:#637e58;
}


.month-calendar-event.calendar-type-announcement {
    background:#f4f0f8;
    border-left-color:#735d92;
}

.calendar-type-announcement
.calendar-event-marker {
    background:#735d92;
}


.calendar-more-events {
    padding:3px 4px;
    color:#61757f;
    font-size:8px;
    font-weight:700;
}


.calendar-mobile-agenda {
    display:none;
}


/*
 * Medium screens:
 * retain actual month calendar, but compact events.
 */

@media(max-width:1100px) {

    .month-calendar-day {
        min-height:120px;
        padding:5px;
    }

    .calendar-event-detail {
        display:none;
    }

    .calendar-event-line strong {
        font-size:8px;
    }
}


/*
 * Small screens:
 * month grids become unusable at phone width.
 * Show a chronological calendar list while preserving
 * the real month-grid experience on desktop/tablet.
 */

@media(max-width:720px) {

    .calendar-page-head {
        display:block;
    }

    .calendar-month-nav {
        margin-top:13px;
    }

    .calendar-month-title {
        flex:1;
    }

    .calendar-toolbar {
        display:grid;
        grid-template-columns:1fr;
    }

    .calendar-toolbar select {
        width:100%;
    }

    .calendar-legend {
        gap:8px;
    }

    .month-calendar {
        display:none;
    }

    .calendar-mobile-agenda {
        display:block;
    }

    .calendar-mobile-agenda > h2 {
        margin:16px 0 10px;
        color:#314750;
        font-size:17px;
    }

    .calendar-mobile-day {
        display:grid;
        grid-template-columns:58px 1fr;
        gap:9px;
        margin-bottom:8px;
    }

    .calendar-mobile-date {
        padding-top:5px;
    }

    .calendar-mobile-date strong,
    .calendar-mobile-date span {
        display:block;
    }

    .calendar-mobile-date strong {
        color:#839097;
        font-size:9px;
        text-transform:uppercase;
    }

    .calendar-mobile-date span {
        margin-top:2px;
        color:#314750;
        font-size:13px;
        font-weight:700;
    }

    .calendar-mobile-events {
        display:flex;
        flex-direction:column;
        gap:4px;
    }

    .calendar-mobile-events
    .month-calendar-event {
        padding:7px 8px;
    }

    .calendar-mobile-events
    .calendar-event-line strong {
        font-size:11px;
    }

    .calendar-mobile-events
    .calendar-event-detail {
        display:block;
        font-size:9px;
    }
}


/* Visitor & Access Desk — Chunk 28 */

.access-desk-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:17px;
}

.access-actions {
    display:flex;
    flex-wrap:wrap;
    gap:4px;
}

.access-actions form {
    margin:0;
}

.form-two-col {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
}

.ops-status-pill {
    display:inline-block;
    border-radius:14px;
    padding:4px 7px;
    background:#f1f4f5;
    color:#657982;
    font-size:9px;
    font-weight:700;
}

.ops-status-pill.status-checked_in,
.ops-status-pill.status-active {
    background:#edf5ee;
    color:#52795a;
}

.ops-status-pill.status-revoked,
.ops-status-pill.status-expired {
    background:#f7eeee;
    color:#98605a;
}

@media(max-width:950px) {
    .access-desk-layout {
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   Housekeeping Assignment Board — Chunk 27
   ========================================================== */

.ops-stats-row {
    display:flex;
    gap:8px;
    overflow-x:auto;
    margin-bottom:15px;
}

.ops-mini-stat {
    min-width:155px;
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:9px;
    padding:9px 11px;
}

.ops-mini-stat span,
.ops-mini-stat strong {
    display:block;
}

.ops-mini-stat span {
    color:#75858c;
    font-size:9px;
}

.ops-mini-stat strong {
    margin-top:3px;
    color:#314750;
    font-size:11px;
}

.housekeeping-board-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}

.ops-work-card {
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:10px;
    padding:14px;
}

.ops-work-card-head {
    display:flex;
    justify-content:space-between;
    gap:12px;
}

.ops-unit-label {
    color:#809097;
    font-size:9px;
    font-weight:700;
    letter-spacing:.05em;
}

.ops-work-card h3 {
    margin:3px 0 0;
    color:#314750;
    font-size:14px;
}

.ops-date-pill {
    height:max-content;
    background:#f1f5f6;
    border-radius:14px;
    padding:4px 8px;
    color:#647982;
    font-size:9px;
    font-weight:700;
}

.ops-work-meta {
    display:flex;
    gap:5px;
    flex-wrap:wrap;
    margin-top:10px;
}

.ops-work-meta span {
    background:#f6f8f9;
    border-radius:5px;
    padding:4px 6px;
    color:#75858c;
    font-size:9px;
}

.ops-progress {
    margin-top:12px;
}

.ops-progress > div:first-child {
    display:flex;
    justify-content:space-between;
    color:#708188;
    font-size:10px;
}

.ops-progress progress {
    width:100%;
    height:6px;
    margin-top:5px;
}

.ops-assignment {
    margin-top:12px;
    border-top:1px solid #edf0f2;
    padding-top:9px;
}

.ops-assignment summary {
    cursor:pointer;
    color:#557484;
    font-size:10px;
    font-weight:600;
}

.ops-assignment-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:10px;
}

.ops-assignment-grid form {
    background:#f8fafb;
    border-radius:7px;
    padding:8px;
}

.ops-assignment-grid label {
    display:block;
    margin-bottom:4px;
    color:#7c8a90;
    font-size:9px;
}

.ops-assignment-grid select {
    width:100%;
}

.ops-work-actions {
    display:flex;
    gap:6px;
    margin-top:12px;
}

.ops-work-actions form {
    margin:0;
}

@media(max-width:1100px) {

    .housekeeping-board-grid {
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:700px) {

    .housekeeping-board-grid {
        grid-template-columns:1fr;
    }

    .ops-assignment-grid {
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   Operational Notifications — Chunk 29
   ========================================================== */

.notification-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.notification-card {
    background:#fff;
    border:1px solid #dfe5e8;
    border-left:4px solid #72858e;
    border-radius:8px;
    padding:13px;
}

.notification-card.severity-attention {
    border-left-color:#a88742;
}

.notification-card.severity-urgent {
    border-left-color:#a9504b;
}

.notification-card-head {
    display:flex;
    justify-content:space-between;
    gap:10px;
}

.notification-card-head span:first-child {
    color:#87949a;
    font-size:8px;
    font-weight:700;
    letter-spacing:.06em;
}

.notification-card h3 {
    margin:3px 0 0;
    color:#324952;
    font-size:13px;
}

.notification-card > p {
    color:#65777f;
    font-size:11px;
    line-height:1.45;
}

.notification-severity {
    height:max-content;
    background:#f2f4f5;
    border-radius:12px;
    padding:4px 7px;
    font-size:8px;
    font-weight:700;
}

.notification-footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:12px;
}

.notification-actions {
    display:flex;
    gap:4px;
}

.notification-actions form {
    margin:0;
}

@media(max-width:1000px) {

    .notification-grid {
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:650px) {

    .notification-grid {
        grid-template-columns:1fr;
    }
}

/* Preventive Maintenance — Chunk 30 */

.preventive-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}

.preventive-overdue {
    border-left:4px solid #a9504b;
}

.preventive-due {
    display:flex;
    justify-content:space-between;
    margin:13px 0;
    border-top:1px solid #edf0f2;
    padding-top:9px;
}

.preventive-due span {
    color:#819097;
    font-size:9px;
}

.preventive-due strong {
    color:#344951;
    font-size:11px;
}

@media(max-width:1050px) {
    .preventive-grid {
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:650px) {
    .preventive-grid {
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   ResortSentry V1 Visual System
   Calendar-derived site-wide design direction
   ========================================================== */

:root {
    --rs-bg:#f5f7f8;
    --rs-panel:#ffffff;
    --rs-border:#dfe5e8;
    --rs-border-soft:#edf0f2;

    --rs-text:#314750;
    --rs-text-muted:#75858c;

    --rs-primary:#244b5d;
    --rs-primary-hover:#1d3f4e;

    --rs-radius:10px;
    --rs-shadow:
        0 1px 2px rgba(20,45,59,.03);
}


/* Base */

body {
    background:var(--rs-bg);
    color:var(--rs-text);
}


/* Main content */

main,
.main-content,
.content {
    background:transparent;
}


/* Page header */

.cc-page-head,
.calendar-page-head {
    margin-bottom:18px;
}

.cc-page-head h1,
.calendar-page-head h1 {
    margin:3px 0;
    color:#263d48;
    font-size:25px;
    font-weight:700;
    letter-spacing:-.02em;
}

.cc-page-head p,
.calendar-page-head p {
    color:#74838a;
    font-size:12px;
}

.cc-eyebrow {
    color:#79909b;
    font-size:9px;
    font-weight:700;
    letter-spacing:.09em;
}


/* Panels */

.panel {
    background:var(--rs-panel);
    border:1px solid var(--rs-border);
    border-radius:var(--rs-radius);
    box-shadow:var(--rs-shadow);
    padding:15px;
}

.panel h2 {
    color:#314750;
    font-size:14px;
    font-weight:700;
}


/* Tables */

.table-wrap {
    overflow-x:auto;
    border-radius:8px;
}

table {
    width:100%;
    border-collapse:collapse;
}

table thead th {
    padding:8px 9px;
    background:#f7f9fa;
    border-bottom:1px solid #dfe5e8;
    color:#7a898f;
    font-size:9px;
    font-weight:700;
    letter-spacing:.04em;
    text-align:left;
    text-transform:uppercase;
}

table tbody td {
    padding:9px;
    border-bottom:1px solid #edf0f2;
    color:#50646d;
    font-size:11px;
    vertical-align:middle;
}

table tbody tr:last-child td {
    border-bottom:0;
}

table tbody tr:hover {
    background:#fafcfc;
}


/* Forms */

label {
    color:#718188;
    font-size:10px;
    font-weight:600;
}

input,
select,
textarea {
    box-sizing:border-box;
    border:1px solid #d8e0e3;
    border-radius:6px;
    background:#fff;
    color:#344951;
    font:inherit;
    padding:7px 8px;
    outline:none;
}

input:focus,
select:focus,
textarea:focus {
    border-color:#86a5b3;
    box-shadow:
        0 0 0 2px rgba(91,130,147,.10);
}


/* Buttons */

button,
.button,
.small-button {
    border:0;
    border-radius:6px;
    background:var(--rs-primary);
    color:#fff;
    cursor:pointer;
    font-weight:600;
    text-decoration:none;
    transition:
        background .12s ease,
        transform .12s ease;
}

button:hover,
.button:hover,
.small-button:hover {
    background:var(--rs-primary-hover);
}

button:active,
.button:active,
.small-button:active {
    transform:translateY(1px);
}

button {
    padding:8px 11px;
    font-size:11px;
}

.small-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:5px 8px;
    font-size:9px;
}

.secondary-button {
    background:#eef2f3 !important;
    color:#536a74 !important;
}

.secondary-button:hover {
    background:#e3e9eb !important;
}

.tertiary-button {
    background:transparent !important;
    border:1px solid #d5dee2 !important;
    color:#59717c !important;
}


/* Alerts */

.alert {
    margin-bottom:13px;
    border-radius:8px;
    padding:10px 12px;
    font-size:11px;
}

.alert.success {
    background:#edf5ee;
    border:1px solid #d4e7d7;
    color:#52795a;
}

.alert.error {
    background:#faeeee;
    border:1px solid #efd7d4;
    color:#98534c;
}


/* Common muted content */

.muted {
    color:#87949a;
}

.small {
    font-size:9px;
}


/* Property switcher */

.cc-property-switcher {
    display:flex;
    align-items:flex-end;
    gap:7px;
}

.cc-property-switcher label {
    display:block;
}

.cc-property-switcher select {
    min-width:185px;
}


/* Existing cards */

.resident-info-card,
.resident-unit-card,
.unit360-summary > div,
.report-kpis > div,
.report-financials > div,
.maintenance-ticket {
    box-shadow:var(--rs-shadow);
}


/* Sidebar */

.sidebar,
.app-sidebar,
nav.sidebar {
    border-right:1px solid #dfe5e8;
}

.sidebar a,
.app-sidebar a {
    border-radius:6px;
}

.sidebar a:hover,
.app-sidebar a:hover {
    background:rgba(255,255,255,.06);
}


/* Section headings */

.cc-section-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:11px;
}

.cc-section-head h2 {
    margin:0;
}

.cc-section-head p {
    margin:3px 0 0;
    color:#849198;
    font-size:10px;
}


/* Empty states */

.empty,
.resident-empty {
    color:#8a979d;
    font-size:10px;
}


/* Links */

a {
    color:#4d7385;
}

a:hover {
    color:#305c70;
}


/* Desktop content breathing room */

@media(min-width:1100px) {

    .panel {
        padding:16px;
    }
}


/* Mobile cleanup */

@media(max-width:700px) {

    .cc-page-head,
    .calendar-page-head {
        align-items:flex-start;
    }

    table tbody td {
        padding:8px 7px;
    }
}


/* ==========================================================
   Unit Profiles — Chunk 34
   ========================================================== */

.unit-profile-kpis {
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:8px;
    margin-bottom:14px;
}

.unit-profile-kpis > div {
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:9px;
    padding:11px;
}

.unit-profile-kpis span,
.unit-profile-kpis strong {
    display:block;
}

.unit-profile-kpis span {
    color:#849198;
    font-size:8px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.unit-profile-kpis strong {
    margin-top:4px;
    color:#314750;
    font-size:13px;
}

.unit-profile-tabs {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:14px;
}

.unit-profile-tabs a {
    padding:6px 9px;
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:6px;
    color:#527383;
    font-size:10px;
    font-weight:600;
    text-decoration:none;
}

.unit-profile-section {
    margin-bottom:16px;
    scroll-margin-top:75px;
}

.unit-profile-form > label,
.residentops-form > label {
    display:block;
    margin-top:9px;
}

.form-three-col {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
}

.unit-profile-checks {
    display:flex;
    align-items:end;
    gap:15px;
    flex-wrap:wrap;
    margin:12px 0;
}

.unit-profile-checks label {
    display:flex;
    align-items:center;
    gap:5px;
}

.unit-profile-two-col,
.unit-feature-layout,
.unit-media-layout,
.unit-review-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:18px;
}

.unit-bed-row,
.unit-feature-row {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:9px 0;
    border-bottom:1px solid #edf0f2;
}

.unit-bed-row strong,
.unit-bed-row span,
.unit-feature-row strong,
.unit-feature-row span {
    display:block;
}

.unit-bed-row strong,
.unit-feature-row strong {
    color:#344951;
    font-size:11px;
}

.unit-bed-row span,
.unit-feature-row span {
    margin-top:2px;
    color:#7d8b91;
    font-size:10px;
}

.unit-feature-group {
    margin-bottom:18px;
}

.unit-feature-group h3 {
    margin:0;
    padding-bottom:6px;
    border-bottom:1px solid #dfe5e8;
    color:#647881;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.unit-media-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}

.unit-media-card {
    overflow:hidden;
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:8px;
}

.unit-media-card.primary-media {
    box-shadow:
        inset 0 0 0 2px #7599aa;
}

.unit-media-preview {
    aspect-ratio:4 / 3;
    overflow:hidden;
    background:#edf1f2;
}

.unit-media-preview img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.unit-video-placeholder {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    color:#75858c;
    font-size:12px;
    font-weight:700;
}

.unit-media-info {
    padding:8px;
}

.unit-media-info strong,
.unit-media-info span {
    display:block;
}

.unit-media-info strong {
    color:#344951;
    font-size:10px;
}

.unit-media-info span {
    margin-top:2px;
    color:#7d8b91;
    font-size:9px;
}

.unit-media-actions {
    display:flex;
    align-items:center;
    gap:5px;
    padding:0 8px 8px;
}

.unit-media-actions form {
    margin:0;
}

.unit-review-card {
    margin-bottom:10px;
    padding:13px;
    background:#fff;
    border:1px solid #dfe5e8;
    border-radius:9px;
}

.unit-review-head {
    display:flex;
    justify-content:space-between;
    gap:12px;
}

.unit-review-head h3 {
    margin:3px 0 0;
    color:#344951;
    font-size:13px;
}

.unit-review-stars {
    color:#c99520;
    font-size:15px;
    letter-spacing:1px;
}

.unit-review-body {
    color:#60737b;
    font-size:11px;
    line-height:1.55;
}

.unit-review-meta {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:9px;
}

.unit-review-meta span {
    padding:3px 6px;
    background:#f5f7f8;
    border-radius:4px;
    color:#78878d;
    font-size:8px;
}

.unit-review-response {
    margin-top:11px;
    padding:10px;
    background:#f5f7f8;
    border-radius:7px;
}

.unit-review-response strong {
    color:#566d77;
    font-size:10px;
}

.unit-review-response p {
    margin:5px 0 0;
    color:#718188;
    font-size:10px;
    line-height:1.5;
}

.unit-review-actions {
    display:flex;
    gap:5px;
    margin-top:10px;
}

.unit-review-actions form {
    margin:0;
}

.unit-response-form {
    display:flex;
    gap:6px;
    align-items:end;
    margin-top:8px;
}

.unit-response-form textarea {
    flex:1;
}

.preventive-description {
    color:#718188;
    font-size:10px;
    line-height:1.5;
}

@media(max-width:1100px) {

    .unit-profile-kpis {
        grid-template-columns:repeat(3,1fr);
    }

    .unit-media-grid {
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:850px) {

    .unit-profile-two-col,
    .unit-feature-layout,
    .unit-media-layout,
    .unit-review-layout {
        grid-template-columns:1fr;
    }
}

@media(max-width:650px) {

    .unit-profile-kpis {
        grid-template-columns:repeat(2,1fr);
    }

    .form-three-col {
        grid-template-columns:1fr;
    }

    .unit-media-grid {
        grid-template-columns:1fr;
    }

    .unit-response-form {
        display:block;
    }

    .unit-response-form button {
        margin-top:6px;
    }
}


/* ==========================================================
   ResortSentry Clean Mobile Navigation
   ========================================================== */

.rs-mobile-shell {
    display:none;
}


@media (max-width: 860px) {

    /*
     * Hide the existing desktop sidebar completely.
     * The mobile menu below is independent of it.
     */
    .sidebar,
    .app-sidebar,
    aside.sidebar,
    nav.sidebar,
    [data-sidebar="1"] {
        display:none !important;
    }


    .rs-mobile-shell {
        display:block !important;
    }


    /*
     * Hamburger
     */
    .rs-mobile-menu-button {
        position:fixed !important;

        top:
            max(
                10px,
                env(safe-area-inset-top)
            ) !important;

        left:
            max(
                10px,
                env(safe-area-inset-left)
            ) !important;

        z-index:20030 !important;

        display:flex !important;

        align-items:center !important;
        justify-content:center !important;

        width:44px !important;
        height:44px !important;

        min-width:44px !important;
        min-height:44px !important;

        margin:0 !important;
        padding:0 !important;

        border:
            1px solid #d8e1e4 !important;

        border-radius:9px !important;

        background:#fff !important;

        color:#264b5c !important;

        font-size:28px !important;
        font-family:
            Arial,
            sans-serif !important;

        font-weight:400 !important;

        line-height:1 !important;

        text-align:center !important;

        box-shadow:
            0 3px 14px
            rgba(20,45,59,.14) !important;
    }


    /*
     * Overlay
     */
    .rs-mobile-menu-overlay {
        position:fixed !important;

        inset:0 !important;

        z-index:20010 !important;

        display:block !important;

        width:100vw !important;
        height:100dvh !important;

        background:
            rgba(10,28,37,.46) !important;

        opacity:0 !important;

        visibility:hidden !important;

        pointer-events:none !important;
    }


    body.rs-mobile-menu-open
    .rs-mobile-menu-overlay {
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
    }


    /*
     * Drawer
     */
    .rs-mobile-menu {
        position:fixed !important;

        top:0 !important;
        bottom:0 !important;
        left:0 !important;

        z-index:20020 !important;

        display:flex !important;

        flex-direction:column !important;

        width:
            min(
                86vw,
                310px
            ) !important;

        min-width:0 !important;
        max-width:310px !important;

        height:100dvh !important;

        margin:0 !important;

        padding:0 !important;

        box-sizing:border-box !important;

        overflow:hidden !important;

        background:#173746 !important;

        transform:
            translateX(-102%) !important;

        transition:
            transform .18s ease !important;

        white-space:normal !important;

        box-shadow:
            10px 0 34px
            rgba(8,25,33,.25) !important;
    }


    body.rs-mobile-menu-open
    .rs-mobile-menu {
        transform:
            translateX(0) !important;
    }


    body.rs-mobile-menu-open {
        overflow:hidden !important;
    }


    /*
     * Drawer header
     */
    .rs-mobile-menu-header {
        display:flex !important;

        flex-direction:row !important;

        flex:0 0 auto !important;

        align-items:center !important;
        justify-content:space-between !important;

        width:100% !important;

        box-sizing:border-box !important;

        padding:
            max(
                15px,
                env(safe-area-inset-top)
            )
            13px
            12px !important;

        margin:0 !important;

        border-bottom:
            1px solid
            rgba(255,255,255,.10) !important;
    }


    .rs-mobile-menu-header > div {
        display:block !important;

        width:auto !important;

        margin:0 !important;
        padding:0 !important;
    }


    .rs-mobile-menu-header strong {
        display:block !important;

        color:#fff !important;

        font-size:17px !important;
        line-height:1.2 !important;
    }


    .rs-mobile-menu-header span {
        display:block !important;

        margin-top:3px !important;

        color:
            rgba(255,255,255,.50) !important;

        font-size:9px !important;

        letter-spacing:.08em !important;

        text-transform:uppercase !important;
    }


    .rs-mobile-menu-close {
        display:flex !important;

        flex:0 0 38px !important;

        align-items:center !important;
        justify-content:center !important;

        width:38px !important;
        height:38px !important;

        min-width:38px !important;
        min-height:38px !important;

        margin:0 !important;
        padding:0 !important;

        background:
            rgba(255,255,255,.08) !important;

        border:0 !important;

        border-radius:8px !important;

        color:#fff !important;

        font-size:27px !important;
        line-height:1 !important;
    }


    /*
     * Navigation.
     *
     * Explicit block layout is used here instead
     * of flex/grid specifically to prevent any
     * horizontal menu inheritance.
     */
    .rs-mobile-menu-list {
        display:block !important;

        flex:1 1 auto !important;

        width:100% !important;
        min-width:0 !important;
        max-width:100% !important;

        height:auto !important;

        margin:0 !important;

        padding:
            6px
            10px
            max(
                22px,
                env(safe-area-inset-bottom)
            ) !important;

        box-sizing:border-box !important;

        overflow-x:hidden !important;
        overflow-y:auto !important;

        white-space:normal !important;

        -webkit-overflow-scrolling:
            touch !important;
    }


    /*
     * Section title
     */
    .rs-mobile-menu-section {
        display:block !important;

        position:static !important;

        float:none !important;

        width:100% !important;
        max-width:100% !important;

        margin:
            15px 0 4px !important;

        padding:
            0 9px !important;

        box-sizing:border-box !important;

        color:
            rgba(255,255,255,.43) !important;

        font-size:9px !important;
        font-weight:700 !important;

        line-height:1.4 !important;

        letter-spacing:.08em !important;

        text-align:left !important;
        text-transform:uppercase !important;

        white-space:normal !important;
    }


    .rs-mobile-menu-section:first-child {
        margin-top:5px !important;
    }


    /*
     * Exactly one link per row.
     */
    .rs-mobile-menu-list > a {
        display:block !important;

        position:static !important;

        float:none !important;

        clear:both !important;

        width:100% !important;
        min-width:0 !important;
        max-width:100% !important;

        min-height:42px !important;

        margin:0 !important;

        padding:
            11px 10px !important;

        box-sizing:border-box !important;

        border:0 !important;
        border-radius:6px !important;

        background:transparent !important;

        color:
            rgba(255,255,255,.87) !important;

        font-size:12px !important;
        font-weight:500 !important;

        line-height:20px !important;

        text-align:left !important;
        text-decoration:none !important;

        white-space:normal !important;

        overflow:visible !important;

        transform:none !important;
    }


    .rs-mobile-menu-list > a:hover,
    .rs-mobile-menu-list > a:focus {
        background:
            rgba(255,255,255,.07) !important;

        color:#fff !important;
    }


    /*
     * Absolute protection from inherited
     * horizontal flex/grid styles.
     */
    .rs-mobile-menu-list,
    .rs-mobile-menu-list > a,
    .rs-mobile-menu-section {
        grid-template-columns:none !important;
        grid-auto-flow:row !important;
        flex-direction:column !important;
    }


    /*
     * Main page content should use full phone width.
     */
    main,
    .main-content,
    .content {
        max-width:100% !important;
    }


    .cc-page-head,
    .calendar-page-head {
        padding-left:50px !important;
    }


    /*
     * Mobile form usability
     */
    input,
    select,
    textarea {
        max-width:100% !important;
        font-size:16px !important;
    }


    /*
     * Responsive application layouts
     */
    .residentops-layout,
    .directory-layout,
    .access-desk-layout,
    .unit-profile-two-col,
    .unit-feature-layout,
    .unit-media-layout,
    .unit-review-layout,
    .report-two-col {
        grid-template-columns:1fr !important;
    }


    .maintenance-board,
    .housekeeping-board-grid,
    .preventive-grid,
    .notification-grid {
        grid-template-columns:1fr !important;
    }


    .report-kpis,
    .report-financials,
    .unit360-summary,
    .unit-profile-kpis {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            ) !important;
    }


    .resident-unit-grid,
    .resident-card-grid,
    .unit-media-grid {
        grid-template-columns:1fr !important;
    }


    .form-two-col,
    .form-three-col {
        grid-template-columns:1fr !important;
    }


    .table-wrap {
        width:100% !important;
        overflow-x:auto !important;

        -webkit-overflow-scrolling:
            touch !important;
    }


    .table-wrap table {
        min-width:680px;
    }


    /*
     * Preserve the good mobile calendar.
     */
    .month-calendar {
        display:none !important;
    }


    .calendar-mobile-agenda {
        display:block !important;
    }
}



/* ==========================================================
   Unit Profile Presentation — Chunk 38
   ========================================================== */

.unit-showcase {
    margin-bottom:16px;
}


.unit-showcase-hero {
    position:relative;

    overflow:hidden;

    width:100%;

    aspect-ratio:16 / 7;

    background:#dfe5e8;

    border-radius:12px;

    box-shadow:
        0 1px 3px
        rgba(20,45,59,.10);
}


.unit-showcase-hero > img {
    display:block;

    width:100%;
    height:100%;

    object-fit:cover;
}


.unit-showcase-placeholder {
    display:flex;

    flex-direction:column;

    align-items:center;
    justify-content:center;

    width:100%;
    height:100%;

    background:
        linear-gradient(
            135deg,
            #dfe8eb,
            #edf2f4
        );

    color:#607984;
}


.unit-showcase-placeholder span {
    font-size:10px;
    font-weight:700;

    letter-spacing:.08em;
}


.unit-showcase-placeholder strong {
    margin-top:5px;

    font-size:20px;
}


.unit-showcase-overlay {
    position:absolute;

    inset:auto 0 0;

    display:flex;

    align-items:flex-end;
    justify-content:space-between;

    gap:20px;

    padding:
        40px
        20px
        18px;

    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(14,31,39,.72)
        );

    color:#fff;
}


.unit-showcase-property {
    display:block;

    color:
        rgba(
            255,
            255,
            255,
            .72
        );

    font-size:9px;
    font-weight:700;

    letter-spacing:.08em;

    text-transform:uppercase;
}


.unit-showcase-title h2 {
    margin:
        4px 0 0;

    color:#fff;

    font-size:27px;
    font-weight:700;

    letter-spacing:-.02em;
}


.unit-showcase-title p {
    margin:
        4px 0 0;

    color:
        rgba(
            255,
            255,
            255,
            .84
        );

    font-size:12px;
}


.unit-showcase-badges {
    display:flex;

    gap:6px;

    flex-wrap:wrap;

    justify-content:flex-end;
}


.unit-showcase-badges span {
    padding:
        5px 8px;

    background:
        rgba(
            255,
            255,
            255,
            .15
        );

    backdrop-filter:
        blur(6px);

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            .18
        );

    border-radius:15px;

    color:#fff;

    font-size:9px;
    font-weight:700;
}


.unit-showcase-thumbnails {
    display:flex;

    gap:6px;

    overflow-x:auto;

    margin-top:7px;

    padding-bottom:3px;

    -webkit-overflow-scrolling:
        touch;
}


.unit-showcase-thumb {
    flex:
        0 0 90px;

    width:90px;
    height:64px;

    min-width:90px;
    min-height:64px;

    padding:0;

    overflow:hidden;

    border:
        2px solid
        transparent;

    border-radius:7px;

    background:#e9eef0;
}


.unit-showcase-thumb.active {
    border-color:#52798c;
}


.unit-showcase-thumb img {
    display:block;

    width:100%;
    height:100%;

    object-fit:cover;
}


.unit-showcase-summary {
    display:flex;

    align-items:stretch;
    justify-content:space-between;

    gap:12px;

    margin-top:10px;
}


.unit-showcase-facts {
    display:grid;

    flex:1;

    grid-template-columns:
        repeat(
            6,
            minmax(0,1fr)
        );

    background:#fff;

    border:
        1px solid
        #dfe5e8;

    border-radius:9px;
}


.unit-showcase-facts > div {
    padding:10px 11px;

    border-right:
        1px solid
        #edf0f2;
}


.unit-showcase-facts > div:last-child {
    border-right:0;
}


.unit-showcase-facts span,
.unit-showcase-facts strong {
    display:block;
}


.unit-showcase-facts span {
    color:#849198;

    font-size:8px;
    font-weight:700;

    letter-spacing:.05em;

    text-transform:uppercase;
}


.unit-showcase-facts strong {
    margin-top:3px;

    color:#344951;

    font-size:11px;
}


.unit-showcase-rating {
    display:flex;

    flex-direction:column;

    align-items:center;
    justify-content:center;

    min-width:125px;

    padding:10px;

    background:#fff;

    border:
        1px solid
        #dfe5e8;

    border-radius:9px;
}


.unit-showcase-stars {
    color:#c99520;

    font-size:14px;

    letter-spacing:1px;
}


.unit-showcase-rating strong {
    margin-top:2px;

    color:#344951;

    font-size:17px;
}


.unit-showcase-rating > span:last-child {
    margin-top:1px;

    color:#829097;

    font-size:8px;
}


.unit-showcase-section {
    margin-bottom:14px;
}


.unit-showcase-section-head {
    display:flex;

    align-items:flex-start;
    justify-content:space-between;

    gap:15px;

    margin-bottom:12px;
}


.unit-showcase-section-head h2 {
    margin:
        2px 0 0;

    color:#314750;

    font-size:18px;
}


.unit-showcase-section-head p {
    margin:
        3px 0 0;

    color:#839097;

    font-size:10px;
}


.unit-overview-copy {
    max-width:980px;

    color:#566b74;

    font-size:12px;

    line-height:1.7;
}


.unit-sleep-grid {
    display:grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap:8px;
}


.unit-sleep-card {
    display:flex;

    align-items:center;

    gap:10px;

    padding:11px;

    background:#f8fafb;

    border:
        1px solid
        #e5eaec;

    border-radius:8px;
}


.unit-sleep-icon {
    display:flex;

    align-items:center;
    justify-content:center;

    width:40px;
    height:40px;

    flex:
        0 0 40px;

    background:#e8eff2;

    border-radius:7px;

    color:#557482;

    font-size:8px;
    font-weight:700;
}


.unit-sleep-card strong,
.unit-sleep-card span {
    display:block;
}


.unit-sleep-card strong {
    color:#344951;

    font-size:11px;
}


.unit-sleep-card span {
    margin-top:2px;

    color:#7e8c92;

    font-size:10px;
}


.unit-amenity-groups {
    display:grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:
        18px 24px;
}


.unit-amenity-group h3 {
    margin:
        0 0 6px;

    padding-bottom:5px;

    border-bottom:
        1px solid
        #e4e9eb;

    color:#637983;

    font-size:9px;
    font-weight:700;

    letter-spacing:.06em;

    text-transform:uppercase;
}


.unit-amenity-grid {
    display:flex;

    flex-direction:column;
}


.unit-amenity-row {
    display:flex;

    align-items:flex-start;
    justify-content:space-between;

    gap:20px;

    padding:
        7px 2px;

    border-bottom:
        1px solid
        #f0f2f3;
}


.unit-amenity-row span {
    color:#72838a;

    font-size:10px;
}


.unit-amenity-row strong {
    color:#344951;

    font-size:10px;
    font-weight:600;

    text-align:right;
}


.unit-review-summary {
    display:flex;

    align-items:center;

    gap:7px;
}


.unit-review-summary strong {
    color:#344951;

    font-size:14px;
}


.unit-review-summary > span:last-child {
    color:#839097;

    font-size:9px;
}


.unit-public-review-list {
    display:grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:10px;
}


.unit-public-review {
    padding:13px;

    background:#f9fbfb;

    border:
        1px solid
        #e4e9eb;

    border-radius:8px;
}


.unit-public-review-head {
    display:flex;

    align-items:flex-start;
    justify-content:space-between;

    gap:12px;
}


.unit-public-review-head h3 {
    margin:
        3px 0 0;

    color:#344951;

    font-size:12px;
}


.unit-public-review-date {
    color:#87949a;

    font-size:9px;

    white-space:nowrap;
}


.unit-public-review > p {
    color:#61747c;

    font-size:10px;

    line-height:1.6;
}


.unit-public-review-meta {
    display:flex;

    gap:5px;

    flex-wrap:wrap;
}


.unit-public-review-meta span {
    padding:
        3px 6px;

    background:#eef2f3;

    border-radius:4px;

    color:#75858c;

    font-size:8px;
}


.unit-public-response {
    margin-top:10px;

    padding:9px;

    background:#edf3f5;

    border-radius:6px;
}


.unit-public-response strong {
    color:#56717d;

    font-size:9px;
}


.unit-public-response p {
    margin:
        4px 0 0;

    color:#6d8088;

    font-size:9px;

    line-height:1.5;
}


.unit-profile-admin-divider {
    display:flex;

    align-items:center;

    gap:10px;

    margin:
        24px 0 10px;

    color:#839097;

    font-size:8px;
    font-weight:700;

    letter-spacing:.08em;
}


.unit-profile-admin-divider::before,
.unit-profile-admin-divider::after {
    content:"";

    flex:1;

    height:1px;

    background:#dfe5e8;
}


@media(max-width:1100px) {

    .unit-showcase-facts {
        grid-template-columns:
            repeat(
                3,
                minmax(0,1fr)
            );
    }


    .unit-showcase-facts > div:nth-child(3) {
        border-right:0;
    }


    .unit-showcase-facts > div:nth-child(-n+3) {
        border-bottom:
            1px solid
            #edf0f2;
    }


    .unit-sleep-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }

}


@media(max-width:760px) {

    .unit-showcase-hero {
        aspect-ratio:
            4 / 3;

        border-radius:9px;
    }


    .unit-showcase-overlay {
        display:block;

        padding:
            45px
            13px
            12px;
    }


    .unit-showcase-title h2 {
        font-size:22px;
    }


    .unit-showcase-badges {
        justify-content:flex-start;

        margin-top:8px;
    }


    .unit-showcase-summary {
        display:block;
    }


    .unit-showcase-rating {
        display:none;
    }


    .unit-showcase-facts {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }


    .unit-showcase-facts > div {
        border-right:
            1px solid
            #edf0f2;

        border-bottom:
            1px solid
            #edf0f2;
    }


    .unit-showcase-facts > div:nth-child(2n) {
        border-right:0;
    }


    .unit-showcase-facts > div:nth-last-child(-n+2) {
        border-bottom:0;
    }


    .unit-sleep-grid {
        grid-template-columns:1fr;
    }


    .unit-amenity-groups {
        grid-template-columns:1fr;

        gap:16px;
    }


    .unit-public-review-list {
        grid-template-columns:1fr;
    }


    .unit-showcase-thumb {
        flex-basis:76px;

        width:76px;
        min-width:76px;

        height:55px;
        min-height:55px;
    }


    .unit-overview-copy {
        font-size:11px;
    }

}



/* ==========================================================
   Chunk 39 readable typography floor

   Standard:
   Normal readable UI text should not render below ~11pt.
   Tiny decorative eyebrow/metadata labels are excluded.
   ========================================================== */

body,
input,
select,
textarea,
button,
.panel,
.unit-overview-copy,
.unit-sleep-card span,
.unit-amenity-row,
.unit-public-review,
.unit-profile-section {
    font-size:
        max(
            15px,
            11pt
        );
}


.unit-amenity-row span,
.unit-amenity-row strong,
.unit-public-review > p,
.unit-public-review-meta span,
.unit-public-response p,
.unit-review-body,
.unit-review-meta,
.unit-feature-row,
.unit-bed-row {
    font-size:
        max(
            15px,
            11pt
        );
}

