@font-face {
  font-family: "Portal Geist";
  src: url("../fonts/portal/geist-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --portal-primary: #015e9d;
  --portal-primary-soft: #e6f1f7;
  --portal-ink: #1d2939;
  --portal-muted: #526170;
  --portal-border: #dce3e9;
  --portal-surface: #f7f9fb;
  --portal-danger: #b42318;
}
.portal-inventory-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:22px 0; }
.portal-inventory .portal-portfolio-header, .portal-rate-manager .portal-portfolio-header { padding-bottom:0; }
.portal-inventory .portal-portfolio-header > div > p:last-child, .portal-rate-manager .portal-portfolio-header > div > p:last-child { margin:8px 0 0; color:var(--portal-muted); font-size:14px; line-height:1.6; }
.portal-inventory .portal-overview-actions, .portal-rate-manager .portal-overview-actions { align-items:center; }
.portal-inventory .portal-overview-actions button, .portal-rate-manager .portal-overview-actions button { min-height:44px; padding:10px 16px; font-size:13px; }
.portal-inventory-metrics > div { min-width:0; padding:18px; border:1px solid var(--portal-border); border-radius:8px; background:#fff; }
.portal-inventory-metrics span { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--portal-muted); font-size:14px; }
.portal-inventory-metrics span i { color:var(--portal-primary); }
.portal-inventory-metrics strong { display:block; margin:10px 0 7px; color:var(--portal-ink); font-size:28px; line-height:1.2; }
.portal-inventory-metrics strong.portal-inventory-average { font-size:22px; overflow-wrap:anywhere; }
.portal-inventory-metrics small { color:var(--portal-muted); font-size:11px; }
.portal-inventory .portal-inventory-directory { padding:0; overflow:hidden; background:#fff; border:1px solid var(--portal-border); border-radius:8px; }
.portal-inventory-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding:16px 18px 10px; }
.portal-inventory-properties { display:flex; max-width:100%; flex-wrap:wrap; gap:6px; }
.portal-inventory-properties a { padding:9px 11px; border-radius:6px; color:var(--portal-muted); background:#f7f9fb; font-size:11px; font-weight:600; }
.portal-inventory-properties a[aria-current] { background:var(--portal-primary); color:#fff; }
.portal-inventory-mode { display:inline-flex; flex-shrink:0; align-items:center; gap:3px; padding:4px; background:#eef2f5; border-radius:6px; }
.portal-inventory-mode a { display:inline-flex; align-items:center; justify-content:center; min-height:32px; gap:6px; padding:6px 10px; color:var(--portal-muted); font-size:11px; font-weight:600; border-radius:4px; white-space:nowrap; }
.portal-inventory-mode a[aria-current] { background:#fff; color:var(--portal-ink); box-shadow:0 1px 3px #1d293912; }
.portal-inventory-filters { display:grid; grid-template-columns:minmax(200px,1.4fr) repeat(3,minmax(130px,1fr)) auto; align-items:center; gap:9px; padding:10px 18px 18px; }
.portal-inventory-filters input, .portal-inventory-filters select { width:100%; min-width:0; height:40px; padding:8px 10px; border:1px solid var(--portal-border); border-radius:6px; background:#fff; color:var(--portal-ink); font:inherit; font-size:12px; }
.portal-inventory-search { position:relative; margin:0; }
.portal-inventory-search > i { position:absolute; left:12px; top:14px; color:#98a2b3; font-size:12px; }
.portal-inventory-search input { padding-left:32px; }
.portal-inventory-filters > span { color:var(--portal-muted); font-size:11px; white-space:nowrap; }
.portal-inventory-active-filters { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:0 18px 14px; font-size:11px; color:var(--portal-muted); }
.portal-inventory-active-filters span { padding:5px 9px; background:var(--portal-primary-soft); border-radius:6px; color:var(--portal-primary); }
.portal-inventory-active-filters a[aria-label] { padding:5px 9px; background:var(--portal-primary-soft); border-radius:6px; color:var(--portal-primary); }
.portal-inventory-table-wrap { overflow-x:auto; }
.portal-inventory-table { width:100%; min-width:1000px; border-collapse:collapse; text-align:left; }
.portal-inventory-table th { padding:13px 15px; background:#f8fafb; color:var(--portal-muted); font-size:10px; font-weight:650; text-transform:uppercase; }
.portal-inventory-table td { padding:16px 15px; border-top:1px solid #eef2f5; color:var(--portal-ink); font-size:13px; }
.portal-inventory-table tbody tr:hover { background:#f5faff; }
.portal-inventory-table td > strong { display:block; font-size:13px; font-weight:600; }
.portal-inventory-table td > strong > span { color:var(--portal-muted); font-weight:400; }
.portal-inventory-table small { display:block; margin-top:5px; color:var(--portal-muted); font-size:11px; }
.portal-inventory-unit { display:flex; align-items:center; gap:11px; color:var(--portal-ink); min-width:210px; }
.portal-inventory-unit img, .portal-inventory-image { width:44px; height:44px; flex:0 0 44px; border-radius:6px; object-fit:cover; }
.portal-inventory-image { display:inline-flex; align-items:center; justify-content:center; background:var(--portal-primary-soft); color:var(--portal-primary); }
.portal-inventory-unit strong { font-size:13px; font-weight:650; }
.portal-inventory-state { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border-radius:999px; color:#17613c; background:#e9f6ee; font-size:11px; font-weight:600; white-space:nowrap; }
.portal-inventory-state[data-state="Occupied / in-house"] { color:#6132b4; background:#f3edff; }
.portal-inventory-state[data-state="Arriving today"], .portal-inventory-state[data-state="Cleaning in progress"] { color:#015e9d; background:#eaf5fe; }
.portal-inventory-state[data-state="Needs turnover"] { color:#b42318; background:#fff0ee; }
.portal-inventory-state[data-state="Blocked"], .portal-inventory-state[data-state="Maintenance hold"] { color:#946200; background:#fff7d9; }
.portal-inventory-state[data-state="Not recorded"] { color:#667085; background:#f0f2f5; }
.portal-inventory-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:18px; }
.portal-inventory-card { min-width:0; overflow:hidden; border:1px solid var(--portal-border); border-radius:8px; }
.portal-inventory-card > a { display:block; color:var(--portal-ink); }
.portal-inventory-card img, .portal-inventory-card-placeholder { width:100%; height:144px; object-fit:cover; }
.portal-inventory-card-placeholder { display:flex; align-items:center; justify-content:center; background:var(--portal-primary-soft); color:var(--portal-primary); font-size:28px; }
.portal-inventory-card a > div:not(.portal-inventory-card-placeholder) { padding:16px; }
.portal-inventory-card h3 { margin:0; font-size:14px; overflow-wrap:anywhere; }
.portal-inventory-card p { margin:6px 0 12px; font-size:11px; color:var(--portal-muted); }
.portal-inventory-card footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid var(--portal-border); font-size:10px; }
.portal-inventory-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-top:1px solid var(--portal-border); color:var(--portal-muted); font-size:11px; }
.portal-inventory-pagination form, .portal-inventory-pagination label { margin:0; font-size:11px; }
.portal-inventory-pagination select { margin-left:6px; padding:5px; border:1px solid var(--portal-border); border-radius:4px; background:#fff; }
.portal-inventory-pagination nav { display:flex; gap:3px; flex-wrap:wrap; }
.portal-inventory-pagination nav a { display:flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:5px; color:var(--portal-muted); }
.portal-inventory-pagination nav a[aria-current] { color:#fff; background:var(--portal-primary); }
.portal-inventory-dispatch { margin-top:24px; }
.portal-inventory-dispatch .portal-section-title p { margin:6px 0 0; font-size:12px; color:var(--portal-muted); }
.portal-inventory-task-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.portal-inventory-task-grid article { min-width:0; padding:15px; border:1px solid #f7d8d2; border-radius:8px; background:#fff8f6; }
.portal-inventory-task-grid article[data-state="inspecting"] { border-color:#c8e3f2; background:#f1f8fc; }
.portal-inventory-task-grid article[data-state="clean"] { border-color:var(--portal-border); background:#f7f9fb; }
.portal-inventory-task-grid header { display:flex; align-items:center; gap:9px; }
.portal-inventory-task-grid header > div { min-width:0; flex:1; }
.portal-inventory-task-grid header strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.portal-task-avatar { display:flex; width:34px; height:34px; flex-shrink:0; align-items:center; justify-content:center; border-radius:50%; background:#fff; color:var(--portal-muted); }
.portal-inventory-task-grid strong { font-size:11px; overflow-wrap:anywhere; }
.portal-inventory-task-grid small { display:block; margin-top:4px; color:var(--portal-muted); font-size:9px; overflow-wrap:anywhere; }
.portal-task-unit { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:16px; }
.portal-task-unit span { font-size:10px; }
.portal-inventory-task-grid progress { display:block; width:100%; height:6px; margin:12px 0; accent-color:var(--portal-primary); }
.portal-inventory-task-grid footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.portal-inventory-task-grid footer form { margin:0; }
.portal-inventory-task-grid footer .portal-primary-button { min-height:28px; padding:5px 8px; font-size:10px; }
.portal-inventory-task-grid footer a { font-size:10px; font-weight:600; }
.portal-inventory .portal-inventory-task-grid footer { margin:0; padding:0; background:none; }
.portal-inventory .portal-inventory-task-grid footer a { color:var(--portal-primary); }
.portal-inventory .portal-inventory-card footer { margin:14px 0 0; padding:12px 0 0; background:none; }
.portal-inventory .portal-inventory-pagination { margin:0; }
.portal-unit-dialog { width:min(500px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; padding:24px; border:1px solid var(--portal-border); border-radius:8px; color:var(--portal-ink); background:#fff; }
.portal-unit-dialog::backdrop { background:#0b152d70; }
.portal-unit-dialog header { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; }
.portal-unit-dialog h2 { margin:0; font-size:20px; }
.portal-unit-dialog label { display:grid; min-width:0; gap:6px; margin:12px 0; font-size:12px; }
.portal-unit-dialog :is(input,select) { width:100%; min-width:0; min-height:42px; padding:9px; border:1px solid var(--portal-border); border-radius:6px; background:#fff; font:inherit; }
.portal-unit-dialog footer { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
.portal-rate-workspace { display:grid; grid-template-columns:minmax(0,2fr) minmax(300px,1fr); align-items:start; gap:20px; margin-top:24px; }
.portal-rate-board { min-width:0; overflow:hidden; border:1px solid var(--portal-border); border-radius:8px; background:#fff; }
.portal-rate-board-tools { padding:18px; }
.portal-rate-board-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.portal-rate-date-nav { display:flex; align-items:center; gap:7px; }
.portal-rate-date-nav h2 { min-width:135px; margin:0; text-align:center; font-size:14px; font-weight:650; }
.portal-rate-date-nav .portal-icon-button { width:32px; height:32px; min-height:32px; }
.portal-rate-today { padding:9px 10px; border-radius:6px; background:#f0f2f5; color:var(--portal-muted); font-size:11px; font-weight:600; }
.portal-rate-board-options { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:14px; padding-top:14px; border-top:1px solid #eef2f5; }
.portal-rate-board-options label { display:inline-flex; align-items:center; gap:7px; margin:0; color:var(--portal-muted); font-size:11px; }
.portal-rate-board-options select { max-width:230px; min-width:0; height:35px; padding:6px 8px; border:1px solid var(--portal-border); border-radius:6px; background:#fff; font:inherit; }
.portal-rate-board-options > div { display:flex; align-items:center; gap:14px; }
.portal-rate-board-options input[type="checkbox"] { width:15px; height:15px; accent-color:var(--portal-primary); }
.portal-rate-status-legend { display:flex; gap:15px; margin-top:14px; padding-top:14px; border-top:1px solid #eef2f5; font-size:10px; color:var(--portal-muted); }
.portal-rate-status-legend span { display:inline-flex; align-items:center; gap:5px; }
.portal-rate-status-legend i { width:7px; height:7px; border-radius:50%; background:#4ba2d5; }
.portal-rate-status-legend i.is-booked { background:#08476e; }
.portal-rate-status-legend i.is-blocked { background:#c7cdd3; }
.portal-rate-status-legend i.is-today { background:#eab43a; }
.portal-rate-today-legend { margin-left:auto; }
.portal-rate-matrix-scroll { overflow:auto; max-height:650px; overscroll-behavior-x:contain; }
.portal-rate-matrix { border-collapse:separate; border-spacing:0; width:max-content; min-width:100%; text-align:center; }
.portal-rate-matrix thead th { height:66px; padding:6px; background:#f7f9fb; border-bottom:1px solid #e8edf1; font-size:11px; }
.portal-rate-matrix thead small { display:block; color:#98a2b3; font-size:9px; text-transform:uppercase; }
.portal-rate-matrix thead th > span { display:inline-flex; align-items:center; justify-content:center; width:25px; height:25px; margin-top:5px; }
.portal-rate-matrix thead th.is-today > span { border-radius:50%; background:#eab43a; color:#fff; }
.portal-rate-matrix tr > th:first-child { position:sticky; left:0; z-index:2; width:180px; min-width:180px; max-width:180px; padding:10px 14px; border-right:1px solid #e8edf1; background:#fff; text-align:left; }
.portal-rate-matrix thead tr > th:first-child { z-index:3; background:#f7f9fb; font-size:10px; text-transform:uppercase; color:var(--portal-muted); }
.portal-rate-matrix tbody th { border-bottom:1px solid #eef2f5; }
.portal-rate-matrix th > button { width:100%; padding:0; border:0; background:none; text-align:left; color:var(--portal-ink); }
.portal-rate-matrix th strong { display:block; font-size:11px; overflow-wrap:anywhere; }
.portal-rate-matrix th button > span { display:block; margin-top:4px; color:var(--portal-muted); font-size:9px; }
.portal-rate-editing { margin-left:4px; color:var(--portal-primary); font-size:8px; font-weight:500; }
.portal-rate-matrix td { min-width:82px; width:82px; padding:5px 3px; border-bottom:1px solid #eef2f5; }
.portal-rate-cell { display:flex; width:100%; height:60px; min-height:60px; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:5px; border:1px solid #cfe6f3; border-radius:6px; background:#eef7fc; color:#064e78; font:inherit; line-height:1.2; user-select:none; }
.portal-rate-cell.is-booked { background:#08476e; border-color:#08476e; color:#fff; }
.portal-rate-cell.is-blocked { background:#f1f3f5; border-color:#e1e6eb; color:#788490; }
.portal-rate-cell-status { font-size:10px; font-weight:650; }
.portal-rate-cell strong { font-size:10px; white-space:nowrap; }
.portal-rate-cell small { font-size:9px; opacity:.75; }
.portal-rate-cell[aria-pressed="true"] { outline:2px solid #2689c2; outline-offset:1px; position:relative; z-index:1; }
.portal-rate-cell:focus-visible { outline:3px solid #2689c2; outline-offset:1px; }
.hide-calendar-rates [data-cell-rate], .hide-calendar-minimum [data-cell-minimum] { display:none; }
.portal-rate-board-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; background:#f2f5f7; color:var(--portal-muted); font-size:11px; }
.portal-rate-board-footer a { font-weight:600; }
.portal-rate-manager .portal-rate-board-footer { margin:0; padding:14px 18px; }
.portal-rate-manager .portal-rate-board-footer a { color:var(--portal-primary); }
.portal-rate-quick { min-width:0; padding:22px; border:1px solid var(--portal-border); border-radius:8px; background:#fff; scroll-margin-top:100px; }
.portal-rate-quick > header { display:flex; align-items:center; gap:12px; }
.portal-rate-quick-icon { display:flex; width:40px; height:40px; align-items:center; justify-content:center; border-radius:8px; color:var(--portal-primary); background:var(--portal-primary-soft); }
.portal-rate-quick h2 { margin:0; font-size:18px; }
.portal-rate-quick header p { margin:4px 0 0; color:var(--portal-muted); font-size:11px; }
.portal-rate-target { margin-top:20px; padding:15px; border-radius:6px; background:#f4f6f8; }
.portal-rate-target h3 { margin:0 0 12px; color:var(--portal-muted); font-size:10px; text-transform:uppercase; font-weight:650; }
.portal-rate-target label { display:block; margin:12px 0 0; font-size:11px; }
.portal-rate-quick select { display:block; width:100%; min-width:0; height:42px; padding:8px 10px; margin-top:6px; border:1px solid var(--portal-border); border-radius:6px; background:#fff; color:var(--portal-ink); font:inherit; font-size:12px; }
.portal-rate-selection { display:flex; align-items:center; gap:9px; margin:18px 0; padding:14px 10px; border:1px solid #edf0f3; border-radius:6px; }
.portal-rate-selection > i { color:var(--portal-primary); }
.portal-rate-selection > div { flex:1; min-width:0; }
.portal-rate-selection strong { display:block; font-size:10px; overflow-wrap:anywhere; }
.portal-rate-selection small { display:block; margin-top:5px; font-size:9px; color:var(--portal-muted); }
.portal-rate-selection button { padding:6px; border:0; background:none; color:var(--portal-muted); font:inherit; font-size:10px; }
.portal-rate-field { display:block; margin:18px 0 7px; font-size:12px; }
.portal-rate-field > span { color:var(--portal-muted); }
.portal-rate-stepper { display:flex; height:46px; border:1px solid var(--portal-border); border-radius:6px; }
.portal-rate-stepper button { width:44px; flex-shrink:0; border:0; background:none; color:var(--portal-muted); }
.portal-rate-stepper input { width:100%; min-width:0; border:0; background:none; color:var(--portal-ink); text-align:center; font:inherit; font-size:14px; }
.portal-rate-availability { display:block; margin:20px 0 0; padding:0; border:0; }
.portal-rate-availability legend { float:none; width:100%; margin-bottom:8px; color:var(--portal-ink); font-size:12px; font-weight:600; }
.portal-rate-availability label { display:inline-block; position:relative; width:calc(50% - 3px); margin:0; font-size:11px; vertical-align:top; }
.portal-rate-availability input { position:absolute; width:1px; height:1px; opacity:0; }
.portal-rate-availability span { display:flex; align-items:center; justify-content:center; gap:5px; min-height:40px; padding:6px; border:1px solid var(--portal-border); border-radius:6px; background:#f4f6f8; color:var(--portal-muted); }
.portal-rate-availability input:checked + span { background:var(--portal-primary-soft); border-color:#90bfdc; color:var(--portal-primary); }
.portal-rate-availability input:focus-visible + span { outline:3px solid #2689c2; }
.portal-rate-protection { display:flex; align-items:center; gap:8px; padding:12px; margin-top:18px; background:var(--portal-primary-soft); color:var(--portal-primary); border-radius:6px; font-size:10px; }
.portal-rate-quick form > footer { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }
.portal-rate-manager .portal-rate-quick form > footer { padding:0; margin:20px 0 0; background:none; }
.portal-unit-dialog form > footer { padding:0; background:none; }
.portal-rate-quick footer button { padding:10px 12px; font-size:12px; }
.portal-rate-dialog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; }
.portal-rate-notice { margin:18px 0; padding:14px; border:1px solid #f4db95; border-radius:6px; background:#fff9e8; color:#805b09; font-size:13px; }
.portal-rate-notice[hidden] { display:none; }
.portal-rate-rules { margin-top:24px; padding:20px 0; border-top:1px solid var(--portal-border); }
.portal-rate-rules h2 { font-size:15px; }
.portal-rate-rules ul { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:14px 0; }
.portal-rate-rules li { padding:10px 12px; border:1px solid var(--portal-border); border-radius:6px; background:#fff; font-size:11px; }
.portal-rate-rules span { display:block; margin-top:5px; color:var(--portal-muted); }
@media(max-width:1199.98px) {
  .portal-inventory-task-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-inventory-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-inventory-filters > span { grid-column:1/-1; }
  .portal-rate-workspace { grid-template-columns:minmax(0,1fr); }
  .portal-rate-quick { max-width:none; }
}
@media(max-width:767.98px) {
  .portal-inventory-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .portal-inventory-metrics > div { padding:14px; }
  .portal-inventory-metrics strong { font-size:24px; }
  .portal-inventory-metrics strong.portal-inventory-average { font-size:17px; }
  .portal-inventory-metrics small { font-size:10px; }
  .portal-inventory-cards { grid-template-columns:minmax(0,1fr); }
  .portal-inventory-filters { grid-template-columns:minmax(0,1fr); }
  .portal-inventory-properties { flex-wrap:nowrap; overflow-x:auto; }
  .portal-inventory-properties a { flex-shrink:0; }
  .portal-inventory-task-grid { grid-template-columns:minmax(0,1fr); }
  .portal-rate-date-nav { gap:3px; }
  .portal-rate-date-nav h2 { min-width:120px; font-size:12px; }
  .portal-rate-date-nav .portal-icon-button { width:28px; height:30px; }
  .portal-rate-board-tools { padding:12px; }
  .portal-rate-board-options select { max-width:190px; }
  .portal-rate-status-legend { gap:10px; }
  .portal-rate-matrix tr > th:first-child { min-width:132px; width:132px; max-width:132px; padding:9px; }
  .portal-rate-quick { padding:18px; }
  .portal-unit-dialog { padding:18px; }
}
.portal-public { margin: 0; background: var(--portal-surface); color: var(--portal-ink); font-family: "Portal Geist", "Helvetica Neue", sans-serif; font-size: 14px; line-height: 1.55; }
.portal-public *, .portal-public *::before, .portal-public *::after { box-sizing: border-box; letter-spacing: 0; }
.portal-public :is(h1, h2, h3, h4, h5, h6, input, textarea, select, button) { font-family: inherit; }
.portal-public :is(h1, h2, h3, h4, h5, h6) { color: var(--portal-ink); overflow-wrap: anywhere; }
.portal-public a { color: var(--portal-primary); }
.portal-public :is(.card, .modal-content) { border: 1px solid var(--portal-border); border-radius: 8px; box-shadow: none; }
.portal-public :is(.form-control, .form-select, .custom-select) { min-height: 44px; border: 1px solid var(--portal-border); border-radius: 6px; background-color: #fff; color: var(--portal-ink); font-size: 14px; }
.portal-public :is(.form-control, .form-select, .custom-select):focus { border-color: var(--portal-primary); box-shadow: 0 0 0 3px #cde3ef; }
.portal-public label { color: #344054; font-size: 13px; font-weight: 600; }
.portal-public .btn { border-radius: 6px; font: inherit; font-weight: 600; text-transform: none; box-shadow: none; }
:is(.portal-public, .portal-dashboard) :is(.btn-primary, .bg-primary, .bg-gradient-primary) { background: var(--portal-primary) !important; background-image: none !important; border-color: var(--portal-primary); color: #fff; }
:is(.portal-public, .portal-dashboard) .text-primary { color: var(--portal-primary) !important; }
.portal-public .btn-outline-primary { border-color: var(--portal-primary); color: var(--portal-primary); }
.portal-public .table { color: var(--portal-ink); font-size: 13px; }
.portal-public .table thead { background: #f8fafc; }
.portal-public .table th { padding: 12px 16px; color: var(--portal-muted); font-weight: 600; }
.portal-public .table td { padding: 14px 16px; border-color: var(--portal-border); }
.portal-public :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #378fbf; outline-offset: 3px; }
.portal-home { overflow: hidden; background: #fff; }
.portal-public #jsPreloader { display: none !important; }
.portal-home-hero { position: relative; isolation: isolate; min-height: 0; padding: 42px 0 48px; background-color: var(--portal-primary); background-image: linear-gradient(90deg, rgba(1, 26, 45, .78) 0%, rgba(1, 38, 62, .60) 48%, rgba(1, 38, 62, .12) 100%), var(--portal-home-image); background-position: center; background-size: cover; background-repeat: no-repeat; text-align: left !important; }
.portal-home-hero > .container { position: relative; z-index: 1; width: min(1240px, calc(100% - 48px)); max-width: none; padding-top: 24px !important; padding-bottom: 0 !important; }
.portal-home-hero .mb-lg-n16 { margin-bottom: 0 !important; }
.portal-home-hero .pb-lg-11 { max-width: 760px; margin-bottom: 28px !important; padding-bottom: 0 !important; text-align: left; }
.portal-home-kicker, .portal-home-overline { margin: 0 0 10px; color: var(--portal-primary); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.portal-home-hero .portal-home-kicker { color: #d7efff; }
.portal-home-hero h1 { max-width: 700px; margin: 0; color: #fff; font-size: 56px; font-weight: 650; line-height: 1.08; }
.portal-home-hero .pb-lg-11 > p:last-child { max-width: 590px; margin: 16px 0 0; color: #f0f7fb; font-size: 18px; line-height: 1.55; }
.portal-home-search-panel { max-width: 1120px; border: 1px solid rgba(255,255,255,.7) !important; border-radius: 8px !important; box-shadow: 0 18px 48px rgba(0, 20, 36, .22) !important; }
.portal-home-search-panel .card-body { padding: 20px; }
.portal-home-search > .row { display: grid !important; grid-template-columns: minmax(190px, 1fr) minmax(220px, 1.05fr) minmax(230px, 1.1fr) auto; align-items: end; gap: 16px; margin: 0 !important; padding: 0 !important; }
.portal-home-search > .row > div { width: auto !important; max-width: none !important; min-width: 0; flex: initial !important; padding: 0 !important; margin: 0 !important; }
.portal-home-search label, .portal-home-search > .row > div > span { display: block; margin: 0 0 7px; color: var(--portal-ink); font-size: 12px; font-weight: 650; }
.portal-home-search .bootstrap-select, .portal-home-search .form-control, .portal-home-search .dropdown-nav-link { width: 100%; min-height: 48px; border: 1px solid var(--portal-border); border-radius: 6px; background-color: #fff; color: var(--portal-ink); }
.portal-home-search .bootstrap-select > .dropdown-toggle { min-height: 46px; border: 0; background: transparent; color: var(--portal-ink); }
.portal-home-search .u-datepicker { min-height: 48px; padding: 0 10px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; }
.portal-home-search .u-datepicker .form-control { min-height: 44px; border: 0; padding-left: 4px; }
.portal-home-search .dropdown-nav-link { padding: 12px; }
.portal-home-search .portal-home-search-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 8px; padding: 0 20px; border: 1px solid var(--portal-primary); border-radius: 6px; background: var(--portal-primary) !important; color: #fff; font-size: 14px; font-weight: 650; white-space: nowrap; }
.portal-home-search-button:hover { background: #014b7d !important; }
.portal-home-categories, .portal-home-destinations { width: min(1240px, calc(100% - 48px)); margin: 72px auto; }
.portal-home-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.portal-home-section-heading h2, .portal-home-provider h2 { margin: 0; color: var(--portal-ink); font-size: 28px; font-weight: 650; line-height: 1.2; }
.portal-home-overline { color: var(--portal-primary); }
.portal-home-text-link { color: var(--portal-primary); font-size: 14px; font-weight: 650; white-space: nowrap; }
.portal-home-type-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.portal-home-type-link { display: flex; min-height: 68px; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; color: var(--portal-ink) !important; font-size: 14px; font-weight: 600; transition: border-color .16s ease, background-color .16s ease; }
.portal-home-type-link:hover { border-color: var(--portal-primary); background: var(--portal-primary-soft); text-decoration: none; }
.portal-home-type-icon { display: inline-flex; width: 38px; height: 38px; flex: 0 0 38px; align-items: center; justify-content: center; border-radius: 6px; background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-home-type-arrow { margin-left: auto; color: var(--portal-muted); font-size: 11px; }
.portal-home-provider { display: grid; width: min(1240px, calc(100% - 48px)); min-height: 300px; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); align-items: center; gap: 40px; margin: 72px auto; padding: 24px; border: 1px solid var(--portal-border); border-radius: 8px; background: #f5f9fc; }
.portal-home-provider > img { display: block; width: 100%; height: 280px; border-radius: 6px; object-fit: cover; }
.portal-home-provider > div { max-width: 480px; padding: 16px 16px 16px 0; }
.portal-home-provider > div > p:not(.portal-home-overline) { margin: 12px 0 22px; color: var(--portal-muted); font-size: 15px; line-height: 1.6; }
.portal-home-provider-button { display: inline-flex; min-height: 46px; align-items: center; gap: 10px; padding: 0 18px; border-radius: 6px; background: var(--portal-primary); color: #fff !important; font-size: 14px; font-weight: 650; }
.portal-home-provider-button:hover { background: #014b7d; text-decoration: none; }
.portal-home-destination-list { display: flex; flex-wrap: wrap; gap: 10px; }
.portal-home-destination-list a { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; padding: 0 14px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-home-destination-list a:hover { border-color: var(--portal-primary); color: var(--portal-primary); text-decoration: none; }
.portal-home-destination-list i { color: var(--portal-muted); font-size: 11px; }
.portal-experience-filters { margin-top: 16px; padding: 16px; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-experience-status-tabs { display: flex; gap: 6px; overflow-x: auto; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #eef2f5; }
.portal-experience-status-tabs label { position: relative; flex: 0 0 auto; margin: 0; cursor: pointer; }
.portal-experience-status-tabs input, .portal-experience-layout-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.portal-experience-status-tabs label > span { display: inline-flex; min-height: 38px; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid transparent; border-radius: 6px; color: var(--portal-muted); font-size: 12px; font-weight: 600; }
.portal-experience-status-tabs input:checked + span { border-color: #9bc7df; background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-experience-status-tabs input:focus-visible + span, .portal-experience-layout-toggle input:focus-visible + span { outline: 3px solid #378fbf; outline-offset: 2px; }
.portal-experience-status-tabs b { min-width: 20px; padding: 2px 6px; border-radius: 12px; background: #eef2f5; color: var(--portal-muted); text-align: center; font-size: 10px; }
.portal-experience-status-tabs input:checked + span b { background: #fff; color: var(--portal-primary); }
.portal-experience-filter-fields { display: grid; grid-template-columns: minmax(200px, 1.8fr) repeat(3, minmax(130px, 1fr)) auto auto; align-items: end; gap: 10px; }
.portal-experience-filter-fields > label { display: block; min-width: 0; margin: 0; color: var(--portal-muted); font-size: 12px; font-weight: 600; }
.portal-experience-filter-fields input, .portal-experience-filter-fields select { display: block; width: 100%; min-width: 0; min-height: 44px; margin-top: 5px; }
.portal-experience-filter-actions { display: flex; gap: 8px; }
.portal-experience-filters .portal-primary-button, .portal-experience-filters .portal-secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 9px 14px; white-space: nowrap; }
.portal-experience-layout-toggle { display: flex; min-width: 82px; align-items: center; gap: 2px; margin: 0; padding: 3px; border: 1px solid var(--portal-border); border-radius: 6px; }
.portal-experience-layout-toggle label { position: relative; display: block; margin: 0; cursor: pointer; }
.portal-experience-layout-toggle label > span { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 4px; color: var(--portal-muted); }
.portal-experience-layout-toggle input:checked + span { background: var(--portal-primary); color: #fff; }
.portal-experience-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.portal-experience-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-experience-card-media { position: relative; display: flex; height: 160px; align-items: center; justify-content: center; overflow: hidden; background: #eaf3f8; color: var(--portal-primary); }
.portal-experience-card-media img { width: 100%; height: 100%; object-fit: cover; }
.portal-experience-card-media > i { font-size: 32px; }
.portal-experience-status-pill { position: absolute; top: 10px; right: 10px; padding: 5px 9px; border-radius: 14px; background: #e6f4ed; color: #17613c; font-size: 10px; font-weight: 650; }
.portal-experience-status-pill.is-draft { background: #f2f4f7; color: #526170; }
.portal-experience-card-content { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 16px; }
.portal-experience-card-category { margin: 0 0 5px; color: var(--portal-primary); font-size: 10px; font-weight: 650; text-transform: uppercase; }
.portal-experience-card h2 { margin: 0; color: var(--portal-ink); font-size: 16px; font-weight: 650; overflow-wrap: anywhere; }
.portal-experience-card-location, .portal-experience-card-provider { margin: 5px 0 0; color: var(--portal-muted); font-size: 11px; }
.portal-experience-card-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 15px 0; padding: 12px 0; border-top: 1px solid #eef2f5; border-bottom: 1px solid #eef2f5; }
.portal-experience-card-facts div { min-width: 0; }
.portal-experience-card-facts span, .portal-experience-card-facts strong { display: block; overflow-wrap: anywhere; }
.portal-experience-card-facts span { color: var(--portal-muted); font-size: 10px; }
.portal-experience-card-facts strong { margin-top: 4px; color: var(--portal-ink); font-size: 12px; }
.portal-experience-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: auto; }
.portal-experience-card-actions form { margin: 0; }
.portal-rates-page .portal-rates-toolbar { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.portal-rates-page .portal-rates-toolbar > label { display: grid; width: min(100%, 380px); gap: 6px; margin: 0; }
.portal-rates-month-nav { display: flex; align-items: center; gap: 12px; }
.portal-rates-month-nav h2 { min-width: 150px; margin: 0; color: var(--portal-ink); text-align: center; font-size: 17px; font-weight: 650; }
.portal-rates-calendar-wrap { overflow-x: auto; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-rates-calendar { width: 100%; table-layout: fixed; border-collapse: collapse; }
.portal-rates-calendar th { height: 40px; padding: 8px; border-bottom: 1px solid var(--portal-border); color: var(--portal-muted); text-align: left; font-size: 11px; font-weight: 650; text-transform: uppercase; }
.portal-rates-calendar td { height: 92px; padding: 0; border-right: 1px solid #eef2f5; border-bottom: 1px solid #eef2f5; vertical-align: top; }
.portal-rates-calendar tr:last-child td { border-bottom: 0; }
.portal-rates-calendar td:last-child, .portal-rates-calendar th:last-child { border-right: 0; }
.portal-rates-calendar td > a { display: flex; height: 100%; min-height: 92px; flex-direction: column; gap: 5px; padding: 8px; color: var(--portal-ink); text-decoration: none; }
.portal-rates-calendar td > a:hover { background: #f4f9fc; }
.portal-rates-calendar td.is-outside { background: #f8fafb; }
.portal-rates-calendar td.is-outside > a { color: #8995a1; }
.portal-rates-calendar td.is-selected { box-shadow: inset 0 0 0 2px var(--portal-primary); }
.portal-rates-calendar td.is-blocked { background: #fff4f2; }
.portal-rates-day-number { color: var(--portal-muted); font-size: 11px; font-weight: 650; }
.portal-rates-day-price { overflow-wrap: anywhere; color: #17613c; font-size: 11px; font-weight: 650; }
.portal-rates-day-price small { color: var(--portal-muted); font-size: 9px; }
.portal-rates-day-price.is-muted { color: #8995a1; font-weight: 500; }
.portal-rates-day-status { color: var(--portal-danger); font-size: 10px; font-weight: 650; }
.portal-rates-legend { display: flex; flex-wrap: wrap; gap: 18px; padding: 12px 2px 0; color: var(--portal-muted); font-size: 11px; }
.portal-rates-legend span { display: inline-flex; align-items: center; gap: 7px; }
.portal-rates-legend i { width: 9px; height: 9px; border-radius: 2px; background: #17613c; }
.portal-rates-legend .portal-rates-legend-blocked { background: var(--portal-danger); }
.portal-rates-editor { margin-top: 20px; }
.portal-rates-editor .portal-section-title p { margin: 4px 0 0; color: var(--portal-muted); font-size: 12px; }
.portal-rates-edit-form { display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(150px, 1fr)) auto; align-items: end; gap: 16px; }
.portal-rates-edit-form > label { display: grid; gap: 6px; margin: 0; }
.portal-rates-edit-form > label span { color: var(--portal-muted); font-weight: 500; }
.portal-rates-edit-form fieldset { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; }
.portal-rates-edit-form legend { width: 100%; margin-bottom: 6px; color: #344054; font-size: 13px; font-weight: 600; }
.portal-rates-radio { position: relative; margin: 0; cursor: pointer; }
.portal-rates-radio input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.portal-rates-radio span { display: inline-flex; min-height: 40px; align-items: center; padding: 8px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; color: var(--portal-muted); font-size: 12px; }
.portal-rates-radio input:checked + span { border-color: #9bc7df; background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-rates-radio.is-blocked input:checked + span { border-color: #f0b4ad; background: #fff4f2; color: var(--portal-danger); }
.portal-rates-radio input:focus-visible + span { outline: 3px solid #378fbf; outline-offset: 2px; }
.portal-rates-edit-form .portal-primary-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 8px; padding: 9px 16px; white-space: nowrap; }
@media (max-width: 767.98px) {
  .portal-rates-page .portal-rates-toolbar { align-items: stretch; }
  .portal-rates-page .portal-rates-toolbar > label { width: 100%; }
  .portal-rates-month-nav { justify-content: space-between; }
  .portal-rates-calendar th { padding: 6px 3px; text-align: center; font-size: 9px; }
  .portal-rates-calendar td { height: 68px; }
  .portal-rates-calendar td > a { min-height: 68px; gap: 3px; padding: 5px 3px; }
  .portal-rates-day-price { font-size: 9px; }
  .portal-rates-day-price small { font-size: 8px; }
  .portal-rates-edit-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .portal-rates-edit-form fieldset { grid-column: 1 / -1; }
  .portal-rates-edit-form .portal-primary-button { grid-column: 1 / -1; }
}
.portal-experience-card-actions .portal-secondary-button { min-height: 36px; padding: 7px 10px; font-size: 11px; }
.portal-dashboard .form-control, .portal-dashboard .form-select { border: 1px solid var(--portal-border); border-radius: 6px; min-height: 44px; color: var(--portal-ink); font-size: 14px; }
.portal-dashboard textarea.form-control { min-height: 104px; height: auto; }
.portal-dashboard input[type="checkbox"], .portal-dashboard input[type="radio"] { accent-color: var(--portal-primary); }
.portal-form-steps button { min-height: 44px; }
.portal-form-steps button:focus-visible { outline: 3px solid #378fbf; outline-offset: 2px; }
.portal-dashboard .multisteps-form__progress { display: flex; gap: 8px; overflow-x: auto; margin: 20px auto 28px; padding: 0 0 8px; }
.portal-dashboard .multisteps-form__progress-btn { position: relative; flex: 1 0 130px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; color: var(--portal-muted); font: inherit; font-size: 13px; font-weight: 600; line-height: 1.25; text-indent: 0; white-space: normal; }
.portal-dashboard .multisteps-form__progress-btn::before, .portal-dashboard .multisteps-form__progress-btn::after { display: none; }
.portal-dashboard .multisteps-form__progress-btn.js-active { border-color: #9bc7df; background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-dashboard .multisteps-form__progress-btn.js-active span { color: var(--portal-primary); }
.portal-dashboard .multisteps-form__progress-btn:focus-visible { outline: 3px solid #378fbf !important; outline-offset: 2px; }
.portal-dashboard .multisteps-form__panel { border: 1px solid var(--portal-border); border-radius: 8px; box-shadow: none; }
.portal-dashboard .multisteps-form__content .button-row .btn { min-height: 44px; border-radius: 6px; }
.portal-legal { font-size: 16px; line-height: 1.75; }
.portal-auth { background: var(--portal-surface) !important; color: var(--portal-ink); }
.portal-auth input { min-height: 48px; border: 1px solid var(--portal-border); border-radius: 6px; }
.portal-auth input:focus { border-color: var(--portal-primary); box-shadow: 0 0 0 3px #cde3ef; }
.portal-auth a { color: var(--portal-primary); }
.portal-auth .btn { border-radius: 6px; letter-spacing: 0; text-transform: none; }
.portal-auth .alert { border-radius: 6px; }
.portal-auth { margin: 0; font-family: "Portal Geist", "Helvetica Neue", sans-serif; font-size: 14px; line-height: 1.55; }
.portal-auth *, .portal-dashboard * { box-sizing: border-box; letter-spacing: 0; }
.portal-auth a { text-decoration: none; }
.portal-auth a:hover { text-decoration: underline; }
.portal-auth a:focus-visible, .portal-auth button:focus-visible, .portal-auth summary:focus-visible { outline: 3px solid #378fbf; outline-offset: 4px; }
.portal-auth-header { display: flex; align-items: center; gap: 20px; min-height: 72px; padding: 12px max(24px, calc((100% - 1200px) / 2)); background: #fff; border-bottom: 1px solid var(--portal-border); }
.portal-brand { display: flex; flex: 0 0 112px; border-right: 1px solid var(--portal-border); padding-right: 18px; }
.portal-brand img { width: 94px; height: 36px; object-fit: contain; }
.portal-wordmark { text-transform: uppercase; font-size: 12px; color: var(--portal-muted); }
.portal-auth-header nav { display: flex; gap: 24px; margin-left: auto; }
.portal-auth-header nav a { color: var(--portal-ink); font-weight: 600; }
.portal-support { font-size: 12px; }
.portal-auth-main { width: min(1200px, calc(100% - 48px)); margin: 48px auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 72px; align-items: stretch; }
.portal-auth-form { min-width: 0; padding: 16px 0; }
.portal-eyebrow { background: #cde3ef; color: #014b7d; border-radius: 20px; display: inline-block; padding: 5px 16px; font-size: 12px; margin: 0 0 12px; font-weight: 600; }
.portal-auth h1 { font-family: Georgia, "Times New Roman", serif; font-size: 38px; line-height: 1.15; font-weight: 700; color: var(--portal-primary); margin: 0 0 14px; overflow-wrap: break-word; }
.portal-intro { color: var(--portal-muted); margin: 0 0 32px; }
.portal-login-form, .portal-password-reset form { display: flex; flex-direction: column; }
.portal-auth label { display: block; font-weight: 600; margin: 0 0 6px; }
.portal-auth input { width: 100%; padding: 12px; font: inherit; background: #fff; color: var(--portal-ink); margin: 0 0 22px; }
.portal-primary-button, .portal-secondary-button { min-height: 44px; padding: 10px 20px; border: 1px solid var(--portal-primary); background: var(--portal-primary); color: #fff; border-radius: 6px; font: inherit; font-weight: 600; cursor: pointer; }
.portal-primary-button:hover { background: #014b7d; }
.portal-secondary-button { background: #fff; color: var(--portal-primary); }
.portal-login-actions { text-align: right; margin: -4px 0 24px; }
.portal-signup-link { text-align: center; margin: 24px 0; }
.portal-signup-link a { font-weight: 600; }
.portal-password-reset { border-top: 1px solid var(--portal-border); padding-top: 18px; }
.portal-password-reset summary { cursor: pointer; color: var(--portal-primary); }
.portal-password-reset form { margin-top: 16px; }
.portal-auth-image { position: relative; min-height: 580px; border-radius: 8px; overflow: hidden; background: #e6f1f7; }
.portal-auth-image > img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.portal-photo-caption { position: absolute; bottom: 24px; left: 24px; right: 24px; padding: 20px; background: #fffffff0; color: #01395e; border-radius: 8px; }
.portal-photo-caption p { font-weight: 600; margin: 0 0 8px; }
.portal-photo-caption h2 { font-size: 24px; line-height: 1.3; margin: 0; font-weight: 600; }
.portal-auth-footer { border-top: 1px solid var(--portal-border); padding: 22px max(24px, calc((100% - 1200px) / 2)); display: flex; justify-content: space-between; gap: 20px; color: var(--portal-muted); background: #fff; font-size: 12px; }
.portal-auth-footer p { margin: 0; }
.portal-auth-footer nav { display: flex; gap: 24px; }
.portal-feedback { border: 1px solid #d5a5a5; background: #fff5f5; color: #8a1c1c; border-radius: 6px; padding: 12px 16px; margin-bottom: 20px; }
.portal-feedback p { margin: 0; }
.portal-auth fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.portal-auth legend { font-size: 16px; font-weight: 600; margin-bottom: 16px; }
.portal-name-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.portal-auth select { width: 100%; min-height: 48px; margin-bottom: 20px; padding: 10px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; font: inherit; }
.portal-auth .portal-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; font-weight: 400; margin-bottom: 16px; }
.portal-auth .portal-consent input { width: 18px; min-height: 18px; height: 18px; margin: 2px 0 0; flex: 0 0 18px; accent-color: var(--portal-primary); }
.portal-service-options { margin-top: 20px !important; }
.portal-form-steps { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 0 20px; margin: 12px 0 24px; border-bottom: 1px solid var(--portal-border); }
.portal-form-steps button { border: 1px solid transparent; border-radius: 6px; padding: 10px 12px; color: var(--portal-muted); background: transparent; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.portal-form-steps button[aria-current] { color: var(--portal-primary); background: var(--portal-primary-soft); border-color: #9bc7df; }
.portal-form-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; }
.portal-form-actions button[hidden], form[data-portal-wizard] > [hidden], form[data-portal-wizard] button[hidden] { display: none !important; }
.portal-dashboard [data-portal-panel] { border: 0; min-width: 0; padding: 0; }
.portal-dashboard [data-portal-panel] > legend { font-size: 20px; color: var(--portal-ink); font-weight: 600; margin-bottom: 20px; }
.portal-dashboard [data-portal-panel] > .row > .row { margin: 0; width: 100%; }
.portal-dashboard #service-listing-form [data-portal-panel] > .row > div { min-width: 0; }
.portal-dashboard #service-listing-form .portal-service-step { margin: 0 0 20px; padding: 24px; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-dashboard #service-listing-form .portal-service-step > legend { float: none; width: auto; margin: 0 0 20px; padding: 0; color: var(--portal-ink); font-size: 19px; font-weight: 650; }
.portal-dashboard #service-listing-form .portal-service-step [hidden] { display: none !important; }
.portal-dashboard { background: var(--portal-surface) !important; color: var(--portal-ink); padding-top: 72px; font-family: "Portal Geist", "Helvetica Neue", sans-serif; }
.portal-dashboard h1, .portal-dashboard h2, .portal-dashboard h3, .portal-dashboard h4, .portal-dashboard h5, .portal-dashboard h6, .portal-dashboard input, .portal-dashboard textarea, .portal-dashboard select, .portal-dashboard button { font-family: inherit; }
.portal-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1030; min-height: 72px; display: flex; align-items: center; gap: 16px; padding: 12px 24px; background: #fff; border-bottom: 1px solid var(--portal-border); }
.portal-icon-button { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex: 0 0 36px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--portal-muted); cursor: pointer; }
.portal-icon-button:hover { background: #f0f4f8; color: var(--portal-primary); }
.portal-form-help { display: flex; margin: 0 0 12px auto; }
.portal-service-tabs { display: flex; gap: 6px; align-self: stretch; }
.portal-service-tabs a { display: flex; gap: 8px; align-items: center; color: var(--portal-muted); font-weight: 600; padding: 8px 14px; font-size: 13px; border-radius: 6px; white-space: nowrap; }
.portal-service-tabs a:hover, .portal-service-tabs a[aria-current] { color: var(--portal-primary); background: var(--portal-primary-soft); }
.portal-header-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; min-width: 0; }
.portal-supplier-form { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12px; max-width: 260px; }
.portal-supplier-form select { min-width: 0; max-width: 200px; border: 1px solid var(--portal-border); border-radius: 6px; padding: 8px; background: #fff; color: var(--portal-ink); }
.portal-account-menu { position: relative; }
.portal-account-menu summary { list-style: none; display: flex; align-items: center; gap: 8px; cursor: pointer; color: var(--portal-ink); font-size: 13px; }
.portal-account-menu summary::-webkit-details-marker { display: none; }
.portal-account-menu summary i { font-size: 28px; color: var(--portal-primary); }
.portal-account-menu summary span { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-account-menu > div { position: absolute; right: 0; top: 40px; min-width: 180px; background: #fff; border: 1px solid var(--portal-border); border-radius: 6px; padding: 6px; box-shadow: 0 8px 24px #1d29391a; }
.portal-account-menu > div a { display: block; padding: 10px; font-size: 13px; color: var(--portal-ink); }
.portal-account-menu > div a:hover { background: var(--portal-primary-soft); }
.portal-dashboard #navbarBlur { display: none !important; }
.portal-dashboard #sidenav-main { top: 72px !important; bottom: 0; left: 0 !important; width: 248px !important; max-width: 248px !important; height: calc(100dvh - 72px) !important; margin: 0 !important; border-radius: 0 !important; border-right: 1px solid var(--portal-border) !important; background: #fff !important; box-shadow: none !important; z-index: 1020; transform: none !important; }
.portal-dashboard #sidenav-main .sidenav-header, .portal-dashboard #sidenav-main > hr { display: none; }
.portal-dashboard #sidenav-collapse-main { max-height: 100%; padding: 16px 10px 24px; }
.portal-dashboard #sidenav-main .nav-link { margin: 2px 0; padding: 10px 12px; min-height: 42px; border-radius: 6px; box-shadow: none; font-size: 13px; color: var(--portal-muted); }
.portal-dashboard #sidenav-main .nav-link.active, .portal-dashboard #sidenav-main .nav-link[aria-current="page"] { background: var(--portal-primary-soft); color: var(--portal-primary); font-weight: 600; }
.portal-dashboard #sidenav-main .icon { width: 24px; height: 24px; margin-right: 10px !important; background: transparent !important; box-shadow: none !important; border-radius: 0; }
.portal-dashboard #sidenav-main .icon svg { width: 16px; height: 16px; }
.portal-dashboard #sidenav-main .icon path, .portal-dashboard #sidenav-main .icon polygon { fill: currentColor !important; }
.portal-dashboard #sidenav-main .nav-link-text { white-space: normal; }
.portal-dashboard .main-content { margin: 0 !important; min-width: 0; max-height: none !important; min-height: calc(100dvh - 72px); border-radius: 0 !important; }
@media (min-width: 1200px) { .portal-dashboard:not(.portal-sidebar-closed) > .main-content { margin-left: 248px !important; } }
.portal-dashboard .main-content > .container-fluid { padding: 24px 28px !important; }
.portal-dashboard .card { border: 1px solid var(--portal-border); border-radius: 8px !important; box-shadow: none !important; }
.portal-dashboard .card .card { border: 0; }
.portal-dashboard h1, .portal-dashboard h2 { letter-spacing: 0; }
.portal-dashboard .card h5 { font-size: 20px; }
.portal-dashboard .card-header, .portal-dashboard .card-footer { background: #fff; }
.portal-dashboard .table { font-size: 13px; }
.portal-dashboard .table thead { background: #f8fafc; }
.portal-dashboard .table th { color: var(--portal-muted) !important; padding: 12px 16px; font-weight: 600; letter-spacing: 0; }
.portal-dashboard .table td { border-color: #edf0f3; padding: 14px 16px; }
.portal-dashboard .form-control, .portal-dashboard .form-select { border: 1px solid var(--portal-border); border-radius: 6px; min-height: 40px; color: var(--portal-ink); font-size: 14px; }
.portal-dashboard .form-control:focus, .portal-dashboard .form-select:focus { border-color: var(--portal-primary); box-shadow: 0 0 0 3px #cde3ef; }
.portal-dashboard label { font-size: 13px; color: #344054; font-weight: 600; }
.portal-dashboard .btn { border-radius: 6px; text-transform: none; font-weight: 600; letter-spacing: 0; font-size: 13px; box-shadow: none; }
.portal-dashboard .bg-gradient-dark, .portal-dashboard .bg-gradient-info, .portal-dashboard .btn-primary { background: var(--portal-primary) !important; background-image: none !important; color: #fff; }
.portal-dashboard .btn-outline-primary { border-color: var(--portal-primary); color: var(--portal-primary); }
.portal-dashboard a:focus-visible, .portal-dashboard button:focus-visible, .portal-dashboard summary:focus-visible { outline: 3px solid #378fbf; outline-offset: 3px; }
.portal-dashboard.portal-sidebar-closed #sidenav-main { transform: translateX(-100%) !important; }
.portal-dashboard.portal-sidebar-closed .main-content { margin-left: 0 !important; }
.portal-sidebar-backdrop { position: fixed; inset: 72px 0 0; background: #10182850; border: 0; z-index: 1015; }
.portal-sidebar-backdrop[hidden] { display: none; }
.portal-primary-navigation section { margin-bottom: 24px; }
.portal-primary-navigation h2 { font-size: 10px; text-transform: uppercase; color: #64748b; font-weight: 700; padding: 0 12px; margin: 0 0 8px; }
.portal-primary-navigation ul { list-style: none; margin: 0; padding: 0; }
.portal-primary-navigation li { margin: 3px 0; }
.portal-primary-navigation a { min-height: 38px; display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 6px; color: #475569; font-size: 13px; font-weight: 500; }
.portal-primary-navigation a:hover { background: #f8fafc; color: #0f172a; }
.portal-primary-navigation a[aria-current] { background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-primary-navigation i { width: 18px; text-align: center; color: #64748b; }
.portal-nav-current { margin-left: auto; width: 6px; height: 6px; border-radius: 50%; background: var(--portal-primary); }
.portal-more-tools { border-top: 1px solid var(--portal-border); padding-top: 16px; }
.portal-more-tools > summary { color: #475569; font-size: 13px; font-weight: 600; padding: 8px 12px; cursor: pointer; }
.portal-overview { max-width: 1600px; }
.portal-portfolio-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 8px 0 24px; }
.portal-portfolio-header h1 { font-size: 30px; color: var(--portal-ink); margin: 0; line-height: 1.25; }
.portal-property-thumbnail { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; flex-shrink: 0; }
.portal-directory-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.portal-directory-summary > div { background: #fff; padding: 18px 22px; border: 1px solid var(--portal-border); border-radius: 8px; }
.portal-directory-summary strong { display: block; font-size: 26px; font-weight: 600; color: var(--portal-ink); }
.portal-directory-summary span { display: block; font-size: 12px; color: var(--portal-muted); }
.portal-directory-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-bottom: 28px; padding: 18px; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-directory-filters label { flex: 1 1 130px; min-width: 0; margin: 0; }
.portal-directory-filters label > span { display: block; margin-bottom: 6px; font-size: 12px; }
.portal-directory-filters .portal-directory-search { flex: 2 1 220px; }
.portal-directory-filter-actions { display: flex; gap: 8px; }
.portal-directory-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.portal-directory-heading h2 { font-size: 18px; color: var(--portal-ink); margin: 0 0 4px; }
.portal-directory-heading p { color: var(--portal-muted); font-size: 12px; margin: 0; }
.portal-view-toggle { display: flex; padding: 4px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; }
.portal-view-toggle button { width: 36px; height: 32px; border: 0; border-radius: 4px; background: transparent; color: var(--portal-muted); cursor: pointer; }
.portal-view-toggle button[aria-pressed="true"] { background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-property-directory { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.portal-property-card { border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; min-width: 0; }
.portal-property-media { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px 8px 0 0; background: #edf2f7; }
.portal-property-media img { width: 100%; height: 100%; object-fit: cover; }
.portal-property-media .portal-status { position: absolute; top: 12px; left: 12px; }
.portal-property-card-body { padding: 18px; }
.portal-property-card-title { display: flex; justify-content: space-between; gap: 8px; font-size: 11px; color: var(--portal-muted); margin-bottom: 8px; }
.portal-property-card h3 { font-size: 18px; line-height: 1.3; color: var(--portal-ink); margin: 0 0 8px; overflow-wrap: anywhere; }
.portal-property-card h3 a { color: inherit; }
.portal-property-card p { color: var(--portal-muted); font-size: 12px; margin: 6px 0; }
.portal-property-card-meta { display: flex; justify-content: space-between; gap: 10px; padding: 14px 0; margin-top: 10px; border-top: 1px solid #edf2f7; font-size: 11px; color: var(--portal-muted); overflow-wrap: anywhere; }
.portal-property-card-actions { display: flex; align-items: center; gap: 8px; }
.portal-property-card-actions > a:first-child { margin-right: auto; }
.portal-property-actions { position: relative; }
.portal-property-actions summary { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; cursor: pointer; list-style: none; }
.portal-property-actions summary::-webkit-details-marker { display: none; }
.portal-property-actions form { position: absolute; top: 38px; right: 0; z-index: 20; min-width: 170px; padding: 6px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; box-shadow: 0 8px 24px #1d29391a; }
.portal-property-actions button, .portal-property-actions form a { display: block; width: 100%; padding: 10px; border: 0; background: #fff; text-align: left; font: inherit; font-size: 13px; color: var(--portal-ink); cursor: pointer; }
.portal-property-actions button:hover, .portal-property-actions form a:hover { background: var(--portal-primary-soft); }
.portal-directory-delete { border: 0; background: transparent; color: #b42318 !important; font-size: 13px; cursor: pointer; }
#portal-delete-property-dialog { width: min(460px, calc(100% - 32px)); padding: 28px; border: 1px solid var(--portal-border); border-radius: 8px; color: var(--portal-ink); }
#portal-delete-property-dialog::backdrop { background: #10182880; }
#portal-delete-property-dialog h2 { font-size: 20px; }
#portal-delete-property-dialog form > div { display: flex; justify-content: flex-end; gap: 12px; }
[data-delete-property-error] { font-size: 13px; color: #b42318; }
.portal-property-list { grid-template-columns: minmax(0, 1fr); }
.portal-property-list .portal-property-card { display: grid; grid-template-columns: minmax(180px, 30%) minmax(0, 1fr); }
.portal-property-list .portal-property-media { aspect-ratio: auto; min-height: 220px; border-radius: 8px 0 0 8px; }
.portal-directory-empty { grid-column: 1 / -1; text-align: center; padding: 60px 20px; background: #fff; border: 1px dashed var(--portal-border); border-radius: 8px; }
.portal-directory-empty i { font-size: 32px; color: var(--portal-primary); margin-bottom: 16px; }
.portal-directory-empty h3 { font-size: 17px; }
.portal-marketplace-link { margin: 28px 0; font-size: 13px; }
.portal-marketplace-link summary { cursor: pointer; font-weight: 600; color: var(--portal-primary); margin-bottom: 12px; }
.portal-onboarding-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 28px; align-items: start; }
.portal-onboarding-layout > form { grid-column: 1; grid-row: 1; min-width: 0; width: 100%; }
.portal-onboarding-layout > .portal-onboarding-sidebar { grid-column: 2; grid-row: 1; min-width: 0; }
.portal-setup-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; padding: 0; margin: 0 0 24px; list-style: none; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-setup-steps li { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 14px; border-right: 1px solid var(--portal-border); color: var(--portal-muted); font-size: 12px; font-weight: 600; }
.portal-setup-steps li:last-child { border-right: 0; }
.portal-setup-steps li[aria-current="step"] { background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-setup-steps li span { display: inline-flex; width: 28px; height: 28px; flex: 0 0 28px; align-items: center; justify-content: center; border-radius: 50%; background: #f2f4f7; color: var(--portal-muted); font-size: 12px; }
.portal-setup-steps li[aria-current="step"] span { background: var(--portal-primary); color: #fff; }
.portal-onboarding-section { padding: 24px; background: #fff; border: 1px solid var(--portal-border); border-radius: 8px; margin-bottom: 20px; }
.portal-onboarding-section h2 { font-size: 17px; color: var(--portal-ink); margin: 0 0 20px; }
.portal-property-type-label { display: block; margin-bottom: 8px; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-property-type-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.portal-property-type-option { position: relative; min-width: 0; margin: 0; cursor: pointer; }
#create-property-form .portal-property-type-option input[type="radio"] { position: absolute; z-index: 1; width: 1px; height: 1px; min-height: 1px; margin: 0; padding: 0; opacity: 0; }
.portal-property-type-card { display: flex; min-height: 78px; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--portal-border); border-radius: 8px; background: #f8fafc; color: var(--portal-ink); font-size: 13px; font-weight: 600; transition: background-color .15s, border-color .15s, box-shadow .15s; }
.portal-property-type-card > i { flex: 0 0 auto; color: var(--portal-muted); font-size: 18px; }
.portal-property-type-option input:checked + .portal-property-type-card { border-color: var(--portal-primary); background: var(--portal-primary-soft); color: var(--portal-primary); box-shadow: inset 0 0 0 1px var(--portal-primary); }
.portal-property-type-option input:checked + .portal-property-type-card > i { color: var(--portal-primary); }
#create-property-form .portal-property-type-option input:focus-visible + .portal-property-type-card { outline: 3px solid #378fbf; outline-offset: 2px; }
.portal-property-type-option:hover .portal-property-type-card { border-color: #9bc7df; background: #f0f8fc; }
.portal-onboarding-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.portal-onboarding-fields label { min-width: 0; margin: 0; }
.portal-onboarding-wide { grid-column: 1 / -1; }
.portal-location-intro { margin: -8px 0 16px; color: var(--portal-muted); font-size: 13px; }
.portal-property-map { position: relative; height: 240px; margin: 16px 0; overflow: hidden; border: 1px solid var(--portal-border); border-radius: 8px; background-color: #e7eee9; background-image: linear-gradient(28deg, transparent 44%, #fff 45%, #fff 48%, transparent 49%), linear-gradient(115deg, transparent 28%, #fff 29%, #fff 32%, transparent 33%), linear-gradient(165deg, transparent 62%, #d2e1d5 63%, #d2e1d5 73%, transparent 74%), linear-gradient(90deg, transparent 16%, #dbe7dc 17%, #dbe7dc 22%, transparent 23%); }
.portal-property-map-label { position: absolute; top: 16%; left: 8%; color: #53665b; font-size: 10px; font-weight: 600; text-transform: uppercase; }
.portal-property-map-road { position: absolute; height: 10px; border: 2px solid #fff; background: #e7eee9; }
.portal-property-map-road-one { top: 33%; left: -5%; width: 110%; transform: rotate(28deg); }
.portal-property-map-road-two { top: 44%; left: -5%; width: 110%; transform: rotate(-24deg); }
.portal-property-map-road-three { top: 42%; left: 21%; width: 75%; transform: rotate(70deg); }
.portal-property-map-pin { position: absolute; top: 48%; left: 51%; z-index: 1; color: var(--portal-primary); font-size: 28px; transform: translate(-50%, -100%); }
.portal-property-map-caption { position: absolute; bottom: 12px; left: 12px; max-width: calc(100% - 24px); padding: 7px 10px; border-radius: 5px; background: #fffF; color: var(--portal-ink); font-size: 11px; }
.portal-location-details { border: 1px solid var(--portal-border); border-radius: 6px; }
.portal-location-details summary { padding: 12px 14px; cursor: pointer; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-location-details summary span { display: block; margin-top: 3px; color: var(--portal-muted); font-size: 11px; font-weight: 400; }
.portal-location-details > .portal-onboarding-fields, .portal-location-details > p, .portal-location-details > button { margin-right: 14px; margin-left: 14px; }
.portal-location-details > .portal-onboarding-fields { margin-bottom: 14px; }
.portal-coordinate-fields > span { display: block; margin-bottom: 6px; font-weight: 600; }
.portal-coordinate-fields > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.portal-onboarding-section input:not([type="checkbox"]), .portal-onboarding-section select, .portal-onboarding-section textarea { display: block; width: 100%; margin-top: 6px; min-height: 44px; padding: 10px 12px; background: #f8fafc; border: 1px solid var(--portal-border); border-radius: 6px; color: var(--portal-ink); font-size: 14px; }
.portal-onboarding-section input:focus, .portal-onboarding-section select:focus, .portal-onboarding-section textarea:focus { background: #fff; outline: 2px solid #9bc7df; outline-offset: 1px; }
.portal-onboarding-sidebar { position: sticky; top: 96px; }
.portal-onboarding-sidebar ol { padding-left: 20px; margin: 20px 0 0; color: var(--portal-muted); font-size: 12px; }
.portal-onboarding-sidebar li { padding: 8px 0; }
.portal-onboarding-sidebar progress { width: 100%; accent-color: var(--portal-primary); }
.portal-progress-complete { color: #087443; font-weight: 600; }
.portal-onboarding-submit { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.portal-property-photo-preview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.portal-property-photo-preview figure { margin: 0; min-width: 0; }
.portal-property-photo-preview img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.portal-property-photo-preview figcaption { font-size: 11px; color: var(--portal-muted); overflow-wrap: anywhere; padding-top: 6px; }
.portal-property-upload { display: flex; min-width: 0; min-height: 128px; flex-direction: column; justify-content: center; gap: 8px; padding: 14px; border: 1px dashed #9bc7df; border-radius: 6px; background: #f8fafc; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-property-upload input[type="file"] { max-width: 100%; min-width: 0; padding: 8px; background: #fff; font-size: 12px; }
.portal-property-breadcrumb { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0 20px; font-size: 12px; color: var(--portal-muted); }
.portal-property-cover { position: relative; min-height: 340px; border-radius: 8px; overflow: hidden; background: #e6f1f7; display: flex; flex-direction: column; justify-content: space-between; padding: 24px; margin-bottom: 20px; }
.portal-property-cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.portal-property-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #10182815, #101828b3); pointer-events: none; }
.portal-property-cover-top { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.portal-property-cover-top form { margin: 0; }
.portal-property-cover-caption { position: relative; z-index: 1; align-self: flex-start; max-width: 100%; color: #fff; margin-top: 48px; }
.portal-property-cover-caption h1 { font-size: 30px; color: #fff; line-height: 1.2; margin: 6px 0; overflow-wrap: anywhere; }
.portal-property-cover-caption p { font-size: 12px; margin: 0; }
.portal-property-section-tabs { display: flex; gap: 6px; overflow-x: auto; padding: 8px; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; margin-bottom: 24px; }
.portal-property-section-tabs a { white-space: nowrap; padding: 10px 14px; color: var(--portal-muted); border-radius: 6px; font-size: 13px; }
.portal-property-section-tabs a:hover, .portal-property-section-tabs a:focus-visible { background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-property-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.portal-property-detail-layout section[id] { scroll-margin-top: 140px; }
.portal-property-detail-sidebar { position: sticky; top: 96px; }
.portal-property-description { white-space: pre-wrap; font-size: 14px; color: var(--portal-muted); overflow-wrap: anywhere; }
.portal-facility-page .portal-portfolio-header { align-items: flex-end; }
.portal-facility-page .portal-overview-section { margin-bottom: 20px; }
.portal-facility-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); align-items: end; gap: 14px; }
.portal-facility-filters label, .portal-facility-add-form label, .portal-facility-field { display: block; min-width: 0; margin: 0; color: var(--portal-ink); font-size: 12px; font-weight: 600; }
.portal-facility-filters select, .portal-facility-add-form input, .portal-facility-add-form select, .portal-facility-search input, .portal-facility-field input, .portal-facility-field select { display: block; width: 100%; min-width: 0; min-height: 42px; margin-top: 6px; padding: 9px 11px; border: 1px solid var(--portal-border); border-radius: 6px; background: #f8fafc; color: var(--portal-ink); font: inherit; font-size: 13px; }
.portal-facility-add-form { display: grid; grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(140px, 1fr)) auto; align-items: end; gap: 14px; }
.portal-facility-add-form .portal-primary-button { min-height: 42px; white-space: nowrap; }
.portal-facility-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 18px; }
.portal-facility-search { position: relative; display: block; min-width: min(100%, 280px); flex: 1 1 300px; }
.portal-facility-search > i { position: absolute; top: 19px; left: 12px; color: var(--portal-muted); }
.portal-facility-search input { margin-top: 0; padding-left: 36px; }
.portal-facility-toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.portal-facility-manager { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .8fr); gap: 20px; align-items: start; }
.portal-facility-list { min-width: 0; }
.portal-facility-category { margin-bottom: 18px; }
.portal-facility-category-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.portal-facility-category-heading h2 { margin: 0; color: var(--portal-ink); font-size: 15px; font-weight: 650; }
.portal-facility-category-heading > span { min-width: 24px; padding: 3px 7px; border-radius: 12px; background: var(--portal-primary-soft); color: var(--portal-primary); text-align: center; font-size: 11px; font-weight: 700; }
.portal-facility-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.portal-facility-card { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; min-width: 0; padding: 10px; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-facility-card[hidden], .portal-facility-details[hidden], .portal-facility-no-matches[hidden] { display: none !important; }
.portal-facility-toggle-label { display: flex; flex-direction: column; align-items: center; gap: 3px; margin: 0; color: var(--portal-muted); font-size: 10px; cursor: pointer; }
.facility-toggle { width: 20px; height: 20px; margin: 0; accent-color: var(--portal-primary); cursor: pointer; }
.portal-facility-select { display: flex; min-width: 0; align-items: center; gap: 9px; padding: 4px; border: 0; border-radius: 6px; background: transparent; color: var(--portal-ink); text-align: left; cursor: pointer; }
.portal-facility-select[aria-pressed="true"] { background: var(--portal-primary-soft); }
.portal-facility-icon { display: inline-flex; width: 36px; height: 36px; flex: 0 0 36px; align-items: center; justify-content: center; border-radius: 8px; background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-facility-card-copy { display: block; min-width: 0; }
.portal-facility-card-copy strong, .portal-facility-card-copy small { display: block; overflow-wrap: anywhere; }
.portal-facility-card-copy strong { font-size: 12px; font-weight: 650; }
.portal-facility-card-copy small { margin-top: 3px; color: var(--portal-muted); font-size: 10px; }
.portal-facility-chevron { margin-left: auto; color: var(--portal-muted); font-size: 11px; }
.portal-facility-editor { position: sticky; top: 92px; min-width: 0; padding: 20px; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-facility-details-header { display: flex; align-items: flex-start; gap: 11px; padding-bottom: 16px; border-bottom: 1px solid var(--portal-border); }
.portal-facility-details-header p { margin: 0 0 4px; color: var(--portal-muted); font-size: 11px; }
.portal-facility-details-header h2 { margin: 0; color: var(--portal-ink); font-size: 17px; font-weight: 650; overflow-wrap: anywhere; }
.portal-facility-helper { margin: 15px 0; color: var(--portal-muted); font-size: 12px; line-height: 1.5; }
.portal-facility-field { margin: 14px 0; }
.portal-facility-field input:focus, .portal-facility-field select:focus, .portal-facility-filters select:focus, .portal-facility-add-form input:focus, .portal-facility-add-form select:focus, .portal-facility-search input:focus { outline: 2px solid #9bc7df; outline-offset: 1px; background: #fff; }
.portal-facility-required-note { margin: -7px 0 12px; color: var(--portal-muted); font-size: 11px; }
.portal-facility-detail-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--portal-border); }
.portal-facility-empty-editor { padding: 32px 16px; color: var(--portal-muted); text-align: center; }
.portal-facility-empty-editor h2 { margin: 10px 0 5px; color: var(--portal-ink); font-size: 15px; }
.portal-facility-empty-editor p { margin: 0; font-size: 12px; line-height: 1.5; }
.portal-facility-no-matches { margin: 0; padding: 16px; }
.portal-danger-button { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 8px 10px; border: 1px solid #f1c7c5; border-radius: 6px; background: #fff; color: #a42620; font-size: 12px; font-weight: 600; cursor: pointer; }
.portal-danger-button:hover { background: #fff5f4; }
@media (max-width: 1100px) { .portal-facility-manager { grid-template-columns: minmax(0, 1fr); } .portal-facility-editor { position: static; } }
@media (max-width: 767px) { .portal-facility-add-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } .portal-facility-add-form .portal-primary-button { grid-column: 1 / -1; } .portal-facility-cards { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 575px) { .portal-facility-toolbar-actions { width: 100%; } .portal-facility-toolbar-actions .portal-primary-button { margin-left: auto; } .portal-facility-filters, .portal-facility-add-form { grid-template-columns: minmax(0, 1fr); } .portal-facility-add-form .portal-primary-button { grid-column: auto; } }
.portal-room-type-form { max-width: 1000px; margin: 0 auto; }
.portal-room-type-form > .portal-onboarding-section { position: static !important; height: auto !important; visibility: visible !important; opacity: 1 !important; transform: none !important; display: block; }
.portal-room-type-form > .portal-onboarding-section h5 { color: var(--portal-ink); font-size: 18px; }
.portal-room-type-form [hidden] { display: none !important; }
.portal-room-type-form textarea { min-height: 100px; height: 100px; }
.portal-room-type-form #ratesTable thead th { background: var(--portal-primary-soft); color: var(--portal-ink); }
.portal-unit-header { max-width: 1000px; margin: 0 auto 20px; }
.portal-unit-header h1 { margin-bottom: 6px; }
.portal-unit-header > div > p:last-child { margin: 0; color: var(--portal-muted); }
.portal-unit-property { color: var(--portal-primary); font-size: 13px; font-weight: 600; margin: 0 0 8px; }
.portal-unit-form { max-width: 1000px; margin: 0 auto; }
.portal-unit-form > .portal-onboarding-section { position: static !important; height: auto !important; visibility: visible !important; opacity: 1 !important; transform: none !important; display: block; }
.portal-unit-form > .portal-onboarding-section h5 { color: var(--portal-ink); font-size: 18px; }
.portal-unit-form [hidden] { display: none !important; }
.portal-unit-form #imagePreviewContainer { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px !important; }
.portal-unit-form .preview-item { width: 100%; aspect-ratio: 4 / 3; height: auto; }
.portal-unit-form .file-drop-area { min-height: 140px; border: 1px dashed var(--portal-border); border-radius: 6px; display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; background: var(--portal-surface); }
.portal-unit-form .portal-onboarding-section textarea { height: 100px !important; min-height: 100px; resize: vertical; }
.portal-unit-form .input-group input.form-control { width: 1%; min-width: 0; flex: 1 1 0; }
.portal-unit-form .drop-area-container { padding: 0 !important; background: transparent !important; color: var(--portal-ink); font-family: inherit; }
.portal-unit-form .file-drop-area { box-sizing: border-box; width: 100%; max-width: 100%; padding: 22px; background: var(--portal-surface); color: var(--portal-ink); }
.portal-unit-form .file-input { box-sizing: border-box; max-width: 100%; }
.portal-unit-form .fake-btn { margin: 0; border: 0; border-radius: 4px; background: var(--portal-primary); color: #fff; padding: 10px 14px; font-size: 13px; font-weight: 600; text-transform: none; }
.portal-unit-form .file-msg { color: var(--portal-muted); font-size: 13px; font-weight: 400; white-space: normal; }
.portal-unit-form .preview-item-actions { position: absolute; inset: 5px 5px auto auto; display: flex; flex-direction: column; gap: 4px; }
.portal-unit-form .preview-item-actions button { min-height: 28px; padding: 3px 6px; border: 0; border-radius: 4px; background: rgba(255,255,255,.94); color: var(--portal-ink); font-size: 10px; }
.portal-unit-form .preview-item-actions button:disabled { opacity: .5; }
.portal-unit-form .preview-item-actions .remove-btn { position: static; width: auto; height: auto; border-radius: 4px; background: #b42318; color: #fff; }
.portal-unit-type-search { max-width: 700px; margin: 0 0 20px; }
.portal-unit-type-search > label { display: block; margin-bottom: 6px; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-unit-type-search > div { display: flex; flex-wrap: wrap; gap: 8px; }
.portal-unit-type-search input { min-width: min(100%, 260px); min-height: 44px; flex: 1 1 260px; padding: 10px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #f8fafc; color: var(--portal-ink); font: inherit; }
.portal-unit-type-search input:focus { outline: 2px solid #9bc7df; outline-offset: 1px; background: #fff; }
.portal-unit-type-search .portal-primary-button, .portal-unit-type-search .portal-secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border-radius: 6px; font-size: 13px; }
.portal-room-type-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.portal-room-type-card { display: flex; min-width: 0; flex-direction: column; padding: 18px; border: 1px solid var(--portal-border); border-radius: 8px; background: #fff; }
.portal-room-type-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.portal-room-type-card-icon { display: inline-flex; width: 40px; height: 40px; flex: 0 0 40px; align-items: center; justify-content: center; border-radius: 8px; background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-room-type-card h3 { margin: 15px 0 5px; font-size: 16px; font-weight: 650; overflow-wrap: anywhere; }
.portal-room-type-card h3 a { color: var(--portal-ink); }
.portal-room-type-card h3 a:hover { color: var(--portal-primary); }
.portal-room-type-card-description { min-height: 40px; margin: 0; color: var(--portal-muted); font-size: 12px; line-height: 1.5; }
.portal-room-type-card-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 16px 0; padding: 12px 0; border-top: 1px solid var(--portal-border); border-bottom: 1px solid var(--portal-border); }
.portal-room-type-card-facts div { min-width: 0; }
.portal-room-type-card-facts dt { color: var(--portal-muted); font-size: 10px; }
.portal-room-type-card-facts dd { margin: 4px 0 0; color: var(--portal-ink); font-size: 12px; font-weight: 600; }
.portal-room-type-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; }
.portal-room-type-card-actions .portal-secondary-button { min-height: 38px; }
.portal-unit-type-search .portal-secondary-button { border-color: var(--portal-border); color: var(--portal-ink); }
.portal-unit-search { max-width: 760px; margin: 0 0 20px; }
.portal-unit-search > label { display: block; margin-bottom: 6px; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-unit-search > div { display: flex; flex-wrap: wrap; gap: 8px; }
.portal-unit-search input { min-width: min(100%, 260px); min-height: 44px; flex: 1 1 260px; padding: 10px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #f8fafc; color: var(--portal-ink); font: inherit; }
.portal-unit-search input:focus { outline: 2px solid #9bc7df; outline-offset: 1px; background: #fff; }
.portal-unit-search .portal-primary-button, .portal-unit-search .portal-secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border-radius: 6px; font-size: 13px; }
.portal-unit-search .portal-secondary-button { border-color: var(--portal-border); color: var(--portal-ink); }
.portal-booking-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.portal-booking-actions .portal-primary-button, .portal-booking-actions .portal-secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 9px 13px; border-radius: 6px; font-size: 13px; }
.portal-booking-actions .portal-secondary-button { border-color: var(--portal-border); color: var(--portal-ink); }
.portal-booking-search { margin: 0 0 20px; }
.portal-booking-search > label { display: block; margin-bottom: 6px; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-booking-filter-row { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(140px, 180px) minmax(140px, 180px) auto auto; align-items: end; gap: 8px; }
.portal-booking-filter-row label { color: var(--portal-muted); font-size: 12px; font-weight: 600; }
.portal-booking-filter-row input, .portal-booking-filter-row select { min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #f8fafc; color: var(--portal-ink); font: inherit; }
.portal-booking-filter-row .portal-primary-button, .portal-booking-filter-row .portal-secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border-radius: 6px; font-size: 13px; }
.portal-booking-filter-row .portal-secondary-button { border-color: var(--portal-border); color: var(--portal-ink); }
.portal-booking-table th, .portal-booking-table td { vertical-align: middle; }
.portal-booking-table tbody th a, .portal-booking-table tbody td a:not(.portal-icon-button) { color: var(--portal-primary); }
.portal-booking-status { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 9px; border: 1px solid var(--portal-border); border-radius: 4px; background: #fff; color: var(--portal-muted); font-size: 11px; }
.portal-booking-pending { border-color: #f4d18c; background: #fff8e8; color: #854a0e; }
.portal-booking-cancelled { border-color: #f2b8b5; background: #fff4f3; color: #b42318; }
.portal-booking-suspended { background: #f1f3f5; color: #526170; }
.portal-booking-confirmed { border-color: #b7dfcd; background: #effaf4; color: #087443; }
.portal-muted-value { color: var(--portal-muted); }
.portal-booking-detail { max-width: 1440px; }
.portal-booking-detail-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px 20px; margin: 8px 0 24px; }
.portal-booking-detail-header h1 { margin: 0 0 6px; color: var(--portal-ink); font-size: 28px; line-height: 1.2; }
.portal-booking-detail-header > div > p:last-child { margin: 0; color: var(--portal-muted); font-size: 14px; }
.portal-booking-detail-dates { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 8px 0 0; padding: 14px 0 0; border-top: 1px solid var(--portal-border); }
.portal-booking-detail-dates dt { color: var(--portal-muted); font-size: 12px; }
.portal-booking-detail-dates dd { margin: 4px 0 0; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-booking-create, .portal-booking-edit { max-width: 1440px; }
.portal-booking-create .portal-booking-form-section, .portal-booking-edit .portal-booking-form-section { padding: 22px; }
.portal-booking-create .portal-booking-form-section > h2, .portal-booking-edit .portal-booking-form-section > h2 { margin: 0 0 8px; font-size: 18px; }
.portal-booking-create .form-control, .portal-booking-create .form-select, .portal-booking-edit .form-control, .portal-booking-edit .form-select { width: 100%; }
.portal-booking-create #experiencesTable, .portal-booking-edit #experiencesTable { min-width: 680px; }
.portal-booking-create #unitAvailabilityStatus { overflow-wrap: anywhere; }
.portal-guest-directory { max-width: 1440px; }
.portal-guest-directory .portal-portfolio-header { align-items: center; }
.portal-guest-section { padding: 22px; }
.portal-guest-section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 18px; }
.portal-guest-section-heading h2 { margin: 0; font-size: 18px; color: var(--portal-ink); }
.portal-guest-section-heading p { margin: 4px 0 0; color: var(--portal-muted); font-size: 13px; }
.portal-guest-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 240px) auto; align-items: end; gap: 12px; margin-bottom: 18px; }
.portal-guest-search { position: relative; display: block; }
.portal-guest-search > i { position: absolute; top: 14px; left: 13px; color: var(--portal-muted); }
.portal-guest-search input, .portal-guest-filters select { width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; color: var(--portal-ink); font: inherit; }
.portal-guest-search input { padding-left: 38px; }
.portal-guest-filter-actions { display: flex; gap: 8px; align-items: center; }
.portal-guest-table { min-width: 720px; }
.portal-guest-table thead th { padding: 12px 14px; color: var(--portal-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.portal-guest-table tbody td { padding: 14px; vertical-align: middle; color: var(--portal-ink); font-size: 13px; }
.portal-guest-person { display: flex; align-items: center; gap: 11px; min-width: 220px; }
.portal-guest-person > div, .portal-guest-location-detail { display: flex; flex-direction: column; min-width: 0; }
.portal-guest-person strong, .portal-guest-table td > strong { color: var(--portal-ink); font-weight: 600; }
.portal-guest-person span:not(.portal-guest-avatar), .portal-guest-location-detail { color: var(--portal-muted); font-size: 12px; overflow-wrap: anywhere; }
.portal-guest-avatar { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: var(--portal-primary-soft); color: var(--portal-primary); font-size: 12px; font-weight: 700; }
.portal-guest-empty { padding: 44px 16px !important; color: var(--portal-muted) !important; text-align: center; }
@media (max-width: 767px) { .portal-guest-section { padding: 16px; } .portal-guest-filters { grid-template-columns: minmax(0, 1fr); } .portal-guest-filter-actions { flex-wrap: wrap; } }
.portal-folio-directory { max-width: 1440px; }
.portal-folio-directory .portal-portfolio-header { align-items: center; }
.portal-folio-section { padding: 22px; }
.portal-folio-section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 18px; }
.portal-folio-section-heading h2 { margin: 0; font-size: 18px; color: var(--portal-ink); }
.portal-folio-section-heading p { margin: 4px 0 0; color: var(--portal-muted); font-size: 13px; }
.portal-folio-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 220px) auto; align-items: end; gap: 12px; margin-bottom: 18px; }
.portal-folio-search { position: relative; display: block; }
.portal-folio-search > i { position: absolute; top: 14px; left: 13px; color: var(--portal-muted); }
.portal-folio-search input, .portal-folio-filters select { width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; color: var(--portal-ink); font: inherit; }
.portal-folio-search input { padding-left: 38px; }
.portal-folio-filter-actions { display: flex; gap: 8px; align-items: center; }
.portal-folio-table { min-width: 820px; }
.portal-folio-table thead th { padding: 12px 14px; color: var(--portal-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.portal-folio-table tbody td { padding: 14px; vertical-align: middle; color: var(--portal-ink); font-size: 13px; }
.portal-folio-empty { padding: 44px 16px !important; color: var(--portal-muted) !important; text-align: center; }
@media (max-width: 767px) { .portal-folio-section { padding: 16px; } .portal-folio-filters { grid-template-columns: minmax(0, 1fr); } .portal-folio-filter-actions { flex-wrap: wrap; } }
.portal-folio-detail { max-width: 1440px; }
.portal-folio-detail .portal-portfolio-header { align-items: center; }
.portal-folio-detail-context { margin: 5px 0 0; color: var(--portal-muted); font-size: 13px; }
.portal-folio-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.portal-folio-summary-section, .portal-folio-transactions { padding: 22px; }
.portal-folio-summary-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 16px; }
.portal-folio-summary-heading h2 { margin: 0; font-size: 18px; color: var(--portal-ink); }
.portal-folio-summary-heading p { margin: 5px 0 0; color: var(--portal-muted); font-size: 13px; }
.portal-folio-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
.portal-folio-summary-grid > div { min-width: 0; padding: 14px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; }
.portal-folio-summary-grid dt { color: var(--portal-muted); font-size: 12px; }
.portal-folio-summary-grid dd { margin: 7px 0 0; color: var(--portal-ink); font-size: 18px; font-weight: 600; overflow-wrap: anywhere; }
.portal-folio-transaction-table { min-width: 760px; }
.portal-folio-transaction-table thead th { padding: 12px 14px; color: var(--portal-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.portal-folio-transaction-table tbody td { padding: 14px; vertical-align: middle; color: var(--portal-ink); font-size: 13px; }
@media (max-width: 767px) { .portal-folio-summary-section, .portal-folio-transactions { padding: 16px; } .portal-folio-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .portal-folio-detail-actions { justify-content: flex-start; } }
.portal-housekeeping { max-width: 1440px; }
.portal-housekeeping .portal-portfolio-header { align-items: center; }
.portal-housekeeping-section { padding: 22px; }
.portal-housekeeping-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 16px; }
.portal-housekeeping-heading h2 { margin: 0; font-size: 18px; color: var(--portal-ink); }
.portal-housekeeping-heading p { margin: 4px 0 0; color: var(--portal-muted); font-size: 13px; }
.portal-housekeeping-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 190px) minmax(160px, 220px) auto; align-items: end; gap: 12px; margin-bottom: 18px; }
.portal-housekeeping-search { position: relative; display: block; }
.portal-housekeeping-search > i { position: absolute; top: 14px; left: 13px; color: var(--portal-muted); }
.portal-housekeeping-search input, .portal-housekeeping-filters select, .portal-housekeeping-bulk select, .portal-housekeeping-bulk input { width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; color: var(--portal-ink); font: inherit; }
.portal-housekeeping-search input { padding-left: 38px; }
.portal-housekeeping-filter-actions { display: flex; gap: 8px; align-items: center; }
.portal-housekeeping-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 14px; margin-bottom: 18px; border: 1px solid var(--portal-border); border-radius: 6px; background: var(--portal-surface); }
.portal-housekeeping-bulk > strong { margin-right: auto; color: var(--portal-ink); font-size: 13px; }
.portal-housekeeping-bulk > label { min-width: 145px; }
.portal-housekeeping-bulk .portal-housekeeping-comment { flex: 1 1 220px; }
.portal-housekeeping-table { min-width: 1000px; }
.portal-housekeeping-table thead th { padding: 12px 14px; color: var(--portal-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.portal-housekeeping-table tbody td { padding: 14px; vertical-align: middle; color: var(--portal-ink); font-size: 13px; }
.portal-housekeeping-table tbody td > strong, .portal-housekeeping-table tbody td > span:not(.badge) { display: block; }
.portal-housekeeping-table tbody td > span:not(.badge) { color: var(--portal-muted); font-size: 12px; }
.portal-housekeeping-select { width: 44px; text-align: center; }
.portal-housekeeping-checkbox { appearance: none; width: 18px; height: 18px; border: 1px solid #8794a2; border-radius: 4px; background: #fff; cursor: pointer; vertical-align: middle; }
.portal-housekeeping-checkbox:checked { border-color: var(--portal-primary); background: var(--portal-primary); box-shadow: inset 0 0 0 3px #fff; }
.portal-housekeeping-unit { color: var(--portal-primary); font-weight: 600; }
.portal-housekeeping-empty { padding: 44px 16px !important; color: var(--portal-muted) !important; text-align: center; }
@media (max-width: 767px) { .portal-housekeeping-section { padding: 16px; } .portal-housekeeping-filters { grid-template-columns: minmax(0, 1fr); } .portal-housekeeping-filter-actions { flex-wrap: wrap; } .portal-housekeeping-bulk > strong { flex-basis: 100%; } .portal-housekeeping-bulk > label { flex: 1 1 140px; } }
.portal-maintenance { max-width: 1440px; }
.portal-maintenance .portal-portfolio-header { align-items: center; }
.portal-maintenance-section { padding: 22px; }
.portal-maintenance-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 16px; }
.portal-maintenance-heading h2 { margin: 0; font-size: 18px; color: var(--portal-ink); }
.portal-maintenance-heading p { margin: 4px 0 0; color: var(--portal-muted); font-size: 13px; }
.portal-maintenance-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 190px) minmax(160px, 220px) auto; align-items: end; gap: 12px; margin-bottom: 18px; }
.portal-maintenance-search { position: relative; display: block; }
.portal-maintenance-search > i { position: absolute; top: 14px; left: 13px; color: var(--portal-muted); }
.portal-maintenance-search input, .portal-maintenance-filters select, .portal-maintenance-bulk select, .portal-maintenance-bulk input { width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; color: var(--portal-ink); font: inherit; }
.portal-maintenance-search input { padding-left: 38px; }
.portal-maintenance-filter-actions { display: flex; gap: 8px; align-items: center; }
.portal-maintenance-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 14px; margin-bottom: 18px; border: 1px solid var(--portal-border); border-radius: 6px; background: var(--portal-surface); }
.portal-maintenance-bulk > strong { margin-right: auto; color: var(--portal-ink); font-size: 13px; }
.portal-maintenance-bulk > label { min-width: 145px; }
.portal-maintenance-bulk .portal-maintenance-comment { flex: 1 1 220px; }
.portal-maintenance-scope { color: var(--portal-muted); font-size: 12px; }
.portal-maintenance-table { min-width: 1240px; }
.portal-maintenance-table thead th { padding: 12px 14px; color: var(--portal-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.portal-maintenance-table tbody td { padding: 14px; vertical-align: middle; color: var(--portal-ink); font-size: 13px; }
.portal-maintenance-table tbody td > strong, .portal-maintenance-table tbody td > span:not(.badge) { display: block; }
.portal-maintenance-table tbody td > span:not(.badge), .portal-maintenance-ticket { color: var(--portal-muted); font-size: 12px; }
.portal-maintenance-select { width: 44px; text-align: center; }
.portal-maintenance-checkbox { appearance: none; width: 18px; height: 18px; border: 1px solid #8794a2; border-radius: 4px; background: #fff; cursor: pointer; vertical-align: middle; }
.portal-maintenance-checkbox:checked { border-color: var(--portal-primary); background: var(--portal-primary); box-shadow: inset 0 0 0 3px #fff; }
.portal-maintenance-progress { max-width: 220px; color: var(--portal-muted) !important; }
.portal-maintenance-quick-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; margin-top: 6px; }
.portal-maintenance-empty { padding: 44px 16px !important; color: var(--portal-muted) !important; text-align: center; }
@media (max-width: 767px) { .portal-maintenance-section { padding: 16px; } .portal-maintenance-filters { grid-template-columns: minmax(0, 1fr); } .portal-maintenance-filter-actions { flex-wrap: wrap; } .portal-maintenance-bulk > strong { flex-basis: 100%; } .portal-maintenance-bulk > label { flex: 1 1 140px; } }
.portal-maintenance-edit { max-width: 1100px; }
.portal-maintenance-edit-section { padding: 22px; }
.portal-maintenance-edit-heading { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; }
.portal-maintenance-edit-heading h2 { margin: 0 0 14px; font-size: 18px; color: var(--portal-ink); }
.portal-maintenance-status-steps { display: flex; flex-wrap: wrap; gap: 8px; }
.portal-maintenance-status-steps span { padding: 7px 11px; border: 1px solid var(--portal-border); border-radius: 999px; background: #fff; color: var(--portal-muted); font-size: 12px; font-weight: 600; }
.portal-maintenance-status-steps .is-active { border-color: var(--portal-primary); background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-maintenance-status-steps .is-defective { border-color: #f3b4b4; background: #fff1f1; color: #b42318; }
.portal-maintenance-status-steps .is-inspecting { border-color: #f2d28c; background: #fff8e6; color: #8a5a00; }
.portal-maintenance-status-steps .is-fixed { border-color: #9bd4b0; background: #ecfdf3; color: #18794e; }
.portal-maintenance-resolution { margin: 0 0 20px; padding: 14px; border: 1px solid var(--portal-border); border-radius: 6px; background: var(--portal-surface); }
.portal-maintenance-resolution legend { padding: 0 4px; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-maintenance-resolution-toggle { display: flex; align-items: center; gap: 10px; color: var(--portal-ink); font-size: 14px; font-weight: 600; }
.portal-maintenance-edit-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.portal-maintenance-edit-fields > label { display: grid; align-content: start; gap: 7px; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-maintenance-edit-fields .form-control { width: 100%; min-height: 44px; margin: 0; border: 1px solid var(--portal-border); border-radius: 6px; }
.portal-maintenance-edit-comment, .portal-maintenance-edit-photos { grid-column: 1 / -1; }
.portal-maintenance-edit-comment textarea { min-height: 120px; }
.portal-maintenance-evidence { margin-top: 20px; padding: 16px; border: 1px solid var(--portal-border); border-radius: 6px; }
.portal-maintenance-evidence h3 { margin: 0 0 12px; color: var(--portal-ink); font-size: 14px; font-weight: 600; }
.portal-maintenance-evidence-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
.portal-maintenance-evidence-grid a { display: block; min-width: 0; }
.portal-maintenance-evidence-grid img { width: 100%; height: 120px; border-radius: 6px; object-fit: cover; }
.portal-maintenance-edit-actions { display: flex; align-items: center; gap: 10px; margin-top: 20px; }
@media (max-width: 767px) { .portal-maintenance-edit-section { padding: 16px; } .portal-maintenance-edit-fields { grid-template-columns: minmax(0, 1fr); } .portal-maintenance-edit-comment, .portal-maintenance-edit-photos { grid-column: auto; } }
.portal-housekeeping-edit { max-width: 1100px; }
.portal-housekeeping-edit .portal-housekeeping-edit-section { padding: 22px; }
.portal-housekeeping-edit-section > h2 { margin: 0 0 14px; color: var(--portal-ink); font-size: 18px; }
.portal-housekeeping-status-steps { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.portal-housekeeping-status-steps span { padding: 7px 11px; border: 1px solid var(--portal-border); border-radius: 999px; background: #fff; color: var(--portal-muted); font-size: 12px; font-weight: 600; }
.portal-housekeeping-status-steps .is-active { border-color: var(--portal-primary); background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-housekeeping-status-steps .is-active.is-defective { border-color: #f3b4b4; background: #fff1f1; color: #b42318; }
.portal-housekeeping-status-steps .is-active.is-inspecting { border-color: #f2d28c; background: #fff8e6; color: #8a5a00; }
.portal-housekeeping-status-steps .is-active.is-fixed { border-color: #9bd4b0; background: #ecfdf3; color: #18794e; }
.portal-housekeeping-edit-section .form-control { width: 100%; margin: 0; border: 1px solid var(--portal-border); border-radius: 6px; }
.portal-housekeeping-edit-section label { display: block; margin-bottom: 7px; color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-housekeeping-edit-section .portal-maintenance-evidence { margin-top: 18px; }
.portal-housekeeping-edit-section .portal-maintenance-evidence-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
.portal-housekeeping-edit-section .portal-maintenance-evidence-grid a { display: block; min-width: 0; }
.portal-housekeeping-edit-section .portal-maintenance-evidence-grid img { width: 100%; height: 120px; border-radius: 6px; object-fit: cover; }
@media (max-width: 767px) { .portal-housekeeping-edit .portal-housekeeping-edit-section { padding: 16px; } }
.portal-transactions { max-width: 1440px; }
.portal-transactions .portal-portfolio-header { align-items: center; }
.portal-transactions > .card { border: 1px solid var(--portal-border); border-radius: 8px; box-shadow: none; }
.portal-transaction-period-label { color: var(--portal-ink); font-size: 13px; font-weight: 600; }
.portal-transactions .form-control { min-height: 42px; border: 1px solid var(--portal-border); border-radius: 6px; }
.portal-transactions .btn { border-radius: 6px; text-transform: none; font-weight: 600; }
.portal-transactions .table { min-width: 940px; }
.portal-transactions .table thead th { padding: 12px 14px; color: var(--portal-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.portal-transactions .table tbody td { padding: 14px; vertical-align: middle; color: var(--portal-ink); font-size: 13px; }
@media (max-width: 767px) { .portal-transactions .portal-portfolio-header { align-items: flex-start; } .portal-transactions .portal-transaction-filters { row-gap: 12px; } }
.portal-transaction-detail { max-width: 1100px; }
.portal-transaction-detail .portal-portfolio-header { align-items: center; }
.portal-transaction-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.portal-transaction-detail-section { padding: 22px; }
.portal-transaction-detail-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; }
.portal-transaction-detail-heading h2 { margin: 0; color: var(--portal-ink); font-size: 18px; }
.portal-transaction-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.portal-transaction-detail-grid > div { min-width: 0; padding: 14px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; }
.portal-transaction-detail-grid dt { color: var(--portal-muted); font-size: 12px; }
.portal-transaction-detail-grid dd { margin: 7px 0 0; color: var(--portal-ink); font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.portal-transaction-description { grid-column: 1 / -1; }
.portal-fees { max-width: 1440px; }
.portal-fee-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-bottom: 24px; }
.portal-fee-filters > label { flex: 1 1 170px; min-width: 0; margin: 0; }
.portal-fee-filters > .portal-fee-search { flex: 2 1 240px; }
.portal-fee-filters :is(input, select) { width: 100%; min-height: 44px; margin-top: 6px; background: #fff; }
.portal-fee-filters > .portal-form-help { align-self: center; margin: 0; }
.portal-fee-filter-actions { display: flex; gap: 8px; align-items: center; }
.portal-fee-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 16px; }
.portal-fee-heading h2 { margin: 0; font-size: 18px; }
.portal-fee-heading p { margin: 0; color: var(--portal-muted); font-size: 13px; }
.portal-fee-table { min-width: 1050px; margin: 0; background: #fff; }
.portal-fee-table :is(th, td) { vertical-align: middle; }
.portal-fee-table td > :is(strong, small) { display: block; }
.portal-fee-table small { color: var(--portal-muted); font-size: 12px; }
.portal-fee-empty { padding: 40px 16px !important; color: var(--portal-muted); text-align: center; }
@media (max-width: 767px) { .portal-fee-filters > label { flex-basis: 100%; } .portal-fee-filter-actions { flex-wrap: wrap; } }
@media (max-width: 767px) { .portal-transaction-detail-section { padding: 16px; } .portal-transaction-detail-grid { grid-template-columns: minmax(0, 1fr); } .portal-transaction-description { grid-column: auto; } }
.portal-team-directory { max-width: 1440px; }
.portal-team-directory > .portal-portfolio-header { align-items: center; }
.portal-team-tabs { margin: 0 0 18px; }
.portal-team-tabs .nav-pills { width: fit-content; max-width: 100%; gap: 4px; padding: 4px !important; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; }
.portal-team-tabs .nav-link { min-height: 38px; padding: 8px 14px !important; border-radius: 4px; color: var(--portal-muted); font-size: 13px; font-weight: 600; }
.portal-team-tabs .nav-link.active { background: var(--portal-primary-soft) !important; color: var(--portal-primary) !important; box-shadow: none !important; }
.portal-team-panel { padding: 16px 0 24px; }
.portal-team-directory .card { border: 1px solid var(--portal-border); border-radius: 8px !important; box-shadow: none !important; }
.portal-team-directory .table { min-width: 760px; }
.portal-team-directory .table thead th { padding: 12px 14px; color: var(--portal-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.portal-team-directory .table tbody td { padding: 14px; vertical-align: middle; color: var(--portal-ink); font-size: 13px; }
.portal-permission-editor { overflow: hidden; }
.portal-permission-editor .card-header, .portal-permission-editor .card-footer { padding: 16px 20px; border-color: var(--portal-border); background: #fff; }
.portal-permission-editor .card-body { padding: 20px; }
.portal-permission-editor .transfer { width: 100%; }
.portal-permission-editor .transfer-double { width: 100%; border-color: var(--portal-border); border-radius: 6px; box-shadow: none; }
.portal-permission-status { min-height: 20px; margin: 12px 0 0; color: var(--portal-danger); font-size: 13px; }
@media (max-width: 767px) { .portal-team-tabs .nav-pills { width: 100%; flex-direction: row !important; } .portal-team-tabs .nav-item { flex: 1 1 0; min-width: 0; } .portal-team-tabs .nav-link { padding: 8px 6px !important; text-align: center; } }
@media (max-width: 767px) { .portal-permission-editor .transfer-double { height: auto; } .portal-permission-editor .transfer-double-content { display: flex; flex-direction: column; gap: 10px; padding: 8px 12px 16px; } .portal-permission-editor .transfer-double-content-left, .portal-permission-editor .transfer-double-content-right { display: block; float: none; width: 100%; height: auto; } .portal-permission-editor .transfer-double-list-main, .portal-permission-editor .transfer-double-selected-list-main { height: 140px; } .portal-permission-editor .transfer-double-content-middle { display: flex; float: none; justify-content: center; gap: 8px; width: 100%; margin: 0; } }
@media (max-width: 767px) { .portal-booking-detail-header { grid-template-columns: minmax(0, 1fr); } .portal-booking-detail-dates { grid-column: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .portal-booking-filter-row { grid-template-columns: minmax(0, 1fr) minmax(120px, 1fr); } .portal-booking-filter-row > label:first-child { grid-column: 1 / -1; } }
@media (max-width: 575px) { .portal-booking-filter-row { grid-template-columns: minmax(0, 1fr); } .portal-booking-filter-row > label:first-child { grid-column: auto; } }
.portal-unit-type-table th, .portal-unit-type-table td { vertical-align: middle; }
.portal-unit-type-table tbody th a { color: var(--portal-primary); }
.portal-room-type-detail { max-width: 1440px; }
.portal-room-type-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.portal-room-type-detail-grid > .portal-overview-section { margin: 0; }
.portal-room-type-detail-grid > .portal-overview-section:nth-child(2) { grid-column: 1 / -1; }
.portal-room-type-detail .portal-property-facts { margin-bottom: 0; }
.portal-unit-detail { max-width: 1440px; }
.portal-unit-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.portal-unit-detail-grid > .portal-overview-section { margin: 0; }
.portal-unit-detail-grid > .portal-overview-section:nth-child(3), .portal-unit-detail-grid > .portal-overview-section:nth-child(4) { grid-column: 1 / -1; }
.portal-unit-detail .portal-property-facts { margin-bottom: 0; }
.portal-unit-description h3 { margin: 18px 0 6px; color: var(--portal-ink); font-size: 15px; font-weight: 600; }
.portal-unit-description p { margin: 0; color: var(--portal-muted); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.portal-unit-detail-rates th, .portal-unit-detail-rates td { vertical-align: middle; white-space: nowrap; }
.portal-unit-detail-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.portal-unit-detail-gallery a { display: block; min-width: 0; overflow: hidden; border: 1px solid var(--portal-border); border-radius: 6px; }
.portal-unit-detail-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.portal-room-type-bedding { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--portal-border); }
.portal-room-type-bedding h3 { margin: 0 0 8px; color: var(--portal-ink); font-size: 14px; font-weight: 600; }
.portal-room-type-bedding ul { margin: 0; padding-left: 20px; color: var(--portal-muted); font-size: 13px; }
.portal-room-type-currency-note { margin: 12px 0 0; color: var(--portal-muted); font-size: 12px; }
.portal-room-type-rates-table th, .portal-room-type-rates-table td { vertical-align: middle; white-space: nowrap; }
.portal-room-type-delete { display: flex; justify-content: flex-end; margin-bottom: 20px; }
.portal-destructive-button { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 10px 14px; border: 1px solid #d92d20; border-radius: 6px; background: #fff; color: #b42318; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.portal-destructive-button:hover { background: #fff5f4; }
.portal-unit-existing-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; margin: 14px 0; }
.portal-unit-existing-photos > a { display: block; min-width: 0; overflow: hidden; border: 1px solid var(--portal-border); border-radius: 6px; aspect-ratio: 4 / 3; }
.portal-unit-existing-photos img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portal-unit-existing-photos .preview-item { width: 100%; aspect-ratio: 4 / 3; height: auto; }
.portal-unit-form .preview-item { position: relative; }
@media (max-width: 767px) { .portal-room-type-detail-grid { grid-template-columns: minmax(0, 1fr); } .portal-room-type-detail-grid > .portal-overview-section:nth-child(2) { grid-column: auto; } }
@media (max-width: 767px) { .portal-unit-detail-grid { grid-template-columns: minmax(0, 1fr); } .portal-unit-detail-grid > .portal-overview-section:nth-child(3), .portal-unit-detail-grid > .portal-overview-section:nth-child(4) { grid-column: auto; } }
.portal-property-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 24px 0 0; }
.portal-property-facts dt, .portal-property-contact dt { color: var(--portal-muted); font-weight: 500; font-size: 12px; }
.portal-property-facts dd, .portal-property-contact dd { font-size: 13px; margin: 4px 0 0; color: var(--portal-ink); overflow-wrap: anywhere; }
.portal-property-contact dd { margin-bottom: 18px; }
.portal-table-actions { display: flex; gap: 6px; }
.portal-detail-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.portal-detail-gallery img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
@media (max-width: 1300px) { .portal-property-detail-layout { grid-template-columns: minmax(0, 1fr); } .portal-property-detail-sidebar { position: static; } }
@media (max-width: 575px) { .portal-property-breadcrumb, .portal-property-cover-top { flex-wrap: wrap; } .portal-property-cover { min-height: 300px; padding: 16px; } .portal-property-cover-caption h1 { font-size: 24px; } .portal-property-facts { grid-template-columns: minmax(0, 1fr); } .portal-detail-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1199px) { .portal-onboarding-layout { grid-template-columns: minmax(0, 1fr); } .portal-onboarding-layout > form, .portal-onboarding-layout > .portal-onboarding-sidebar { grid-column: 1; grid-row: auto; } .portal-onboarding-sidebar { position: static; } }
@media (max-width: 767px) { .portal-setup-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .portal-setup-steps li:nth-child(2) { border-right: 0; } .portal-setup-steps li:nth-child(-n+2) { border-bottom: 1px solid var(--portal-border); } }
@media (max-width: 575px) { .portal-property-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .portal-onboarding-fields { grid-template-columns: minmax(0, 1fr); } .portal-onboarding-section { padding: 20px; } .portal-onboarding-submit { flex-wrap: wrap; } .portal-coordinate-fields > div { grid-template-columns: minmax(0, 1fr); gap: 0; } }
@media (max-width: 1400px) { .portal-property-directory:not(.portal-property-list) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .portal-property-directory:not(.portal-property-list), .portal-directory-summary { grid-template-columns: minmax(0, 1fr); }
  .portal-property-list .portal-property-card { grid-template-columns: minmax(0, 1fr); }
  .portal-property-list .portal-property-media { aspect-ratio: 16 / 9; min-height: 0; border-radius: 8px 8px 0 0; }
}
.portal-overview-banner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 32px; background: var(--portal-primary); color: #fff; margin-bottom: 24px; border-radius: 8px; }
.portal-overview-banner h1 { font-size: 28px; line-height: 1.25; color: #fff; margin: 0; }
.portal-overview-banner p { font-size: 13px; color: #e6f1f7; margin: 0 0 8px; }
.portal-overview-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.portal-overview-actions a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 16px; border-radius: 6px; font-size: 13px; font-weight: 600; }
.portal-banner-primary { background: #fff; color: var(--portal-primary); }
.portal-banner-secondary { background: #ffffff20; color: #fff; border: 1px solid #ffffff50; }
.portal-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.portal-metrics article { background: #fff; padding: 20px; border: 1px solid var(--portal-border); border-radius: 8px; min-width: 0; }
.portal-metrics article > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.portal-metrics h2 { font-size: 13px; font-weight: 500; color: var(--portal-muted); margin: 0; }
.portal-metrics i { color: var(--portal-primary); padding: 10px; background: var(--portal-primary-soft); border-radius: 6px; }
.portal-metrics article > strong { display: block; font-size: 26px; font-weight: 600; margin: 14px 0 4px; overflow-wrap: anywhere; color: var(--portal-ink); }
.portal-metrics p { font-size: 12px; color: var(--portal-muted); margin: 0; }
.portal-overview-columns { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 24px; }
.portal-overview-section { background: #fff; padding: 22px; border: 1px solid var(--portal-border); border-radius: 8px; margin-bottom: 24px; min-width: 0; }
.portal-overview-section h2 { font-size: 17px; font-weight: 600; margin: 0 0 18px; color: var(--portal-ink); }
.portal-section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.portal-section-title a { color: var(--portal-primary); font-size: 13px; }
.portal-catalog-row { display: flex; align-items: center; gap: 12px; border-radius: 6px; padding: 12px; background: #f8fafc; margin-top: 8px; color: var(--portal-ink); }
.portal-listing-icon { flex: 0 0 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; background: var(--portal-primary-soft); color: var(--portal-primary); }
.portal-catalog-name { min-width: 0; flex: 1; }
.portal-catalog-name strong, .portal-attention-item strong { display: block; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.portal-catalog-name small, .portal-attention-item small { display: block; font-size: 12px; color: var(--portal-muted); }
.portal-catalog-name .portal-room-progress { display: block; width: min(100%, 220px); height: 5px; margin-top: 5px; border: 0; border-radius: 4px; overflow: hidden; accent-color: var(--portal-primary); background: #edf2f7; }
.portal-catalog-name .portal-room-progress::-webkit-progress-bar { background: #edf2f7; }
.portal-catalog-name .portal-room-progress::-webkit-progress-value { background: var(--portal-primary); }
.portal-status { display: inline-flex; align-items: center; flex-shrink: 0; padding: 4px 10px; border: 1px solid var(--portal-border); border-radius: 20px; font-size: 11px; color: var(--portal-muted); background: #fff; }
.portal-status-live { color: #087443; border-color: #b7dfcd; background: #effaf4; }
.portal-category-summary { margin: 16px 0; }
.portal-category-summary > div { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; margin-bottom: 6px; }
.portal-category-summary progress { display: block; width: 100%; height: 7px; border: 0; border-radius: 4px; overflow: hidden; accent-color: var(--portal-primary); background: #edf2f7; }
.portal-category-summary progress::-webkit-progress-bar { background: #edf2f7; }
.portal-category-summary progress::-webkit-progress-value { background: var(--portal-primary); }
.portal-attention-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.portal-attention-item { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 6px; background: #f8fafc; color: var(--portal-ink); min-width: 0; }
.portal-attention-item > span:not(.portal-status):not(.portal-listing-icon) { min-width: 0; flex: 1; }
.portal-attention-item img { width: 48px; height: 48px; object-fit: cover; border-radius: 6px; flex-shrink: 0; }
.portal-currency-averages { display: flex; flex-wrap: wrap; gap: 32px; }
.portal-currency-averages strong, .portal-currency-averages span { display: block; font-size: 14px; }
.portal-currency-averages span, .portal-empty { font-size: 13px; color: var(--portal-muted); }
@media (max-width: 1300px) {
  .portal-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-attention-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-overview-columns { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .portal-overview-banner { align-items: flex-start; flex-direction: column; }
  .portal-portfolio-header { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 575px) {
  .portal-metrics, .portal-attention-grid { grid-template-columns: minmax(0, 1fr); }
  .portal-overview-banner { padding: 24px 20px; }
  .portal-overview-banner h1 { font-size: 24px; }
  .portal-catalog-row { flex-wrap: wrap; }
}
@media (max-width: 1199px) {
  .portal-dashboard .main-content { margin-left: 0 !important; }
  .portal-header { padding: 12px 16px; gap: 8px; }
  .portal-service-tabs a { padding: 8px; }
}
@media (max-width: 991px) {
  .portal-experience-filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-experience-filter-fields > label:first-child { grid-column: 1 / -1; }
  .portal-experience-filter-actions { grid-column: 1 / 2; }
  .portal-experience-layout-toggle { justify-self: end; }
  .portal-home-hero { padding: 32px 0 42px; }
  .portal-home-hero h1 { font-size: 44px; }
  .portal-home-search > .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-home-search > .row > div:last-child { grid-column: 1 / -1; }
  .portal-home-search .portal-home-search-button { width: 100%; }
  .portal-home-type-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .portal-auth-header { flex-wrap: wrap; gap: 14px; }
  .portal-auth-header nav { gap: 16px; }
  .portal-support { display: none; }
  .portal-auth-main { gap: 30px; }
  .portal-auth h1 { font-size: 32px; }
}
@media (max-width: 767px) {
  .portal-service-table { min-width: 0 !important; table-layout: fixed; }
  .portal-service-table thead { display: none; }
  .portal-service-table, .portal-service-table tbody, .portal-service-table tr, .portal-service-table td { display: block; width: 100%; }
  .portal-service-table tr.portal-service-row { margin: 0 0 12px; padding: 8px 12px; border: 1px solid var(--portal-border); border-radius: 6px; background: #fff; }
  .portal-service-table tr.portal-service-row td { display: grid; grid-template-columns: minmax(92px, .75fr) minmax(0, 1.25fr); gap: 8px; align-items: start; padding: 9px 2px; border: 0; border-bottom: 1px solid #eef2f5; overflow-wrap: anywhere; }
  .portal-service-table tr.portal-service-row td:last-child { border-bottom: 0; }
  .portal-service-table tr.portal-service-row td::before { content: attr(data-label); color: var(--portal-muted); font-size: 11px; font-weight: 600; }
  .portal-service-table tr.portal-service-row td img { width: 42px; height: 42px; object-fit: cover; border-radius: 6px; }
  .portal-experiences .table-responsive { overflow: visible; }
  .portal-experience-filter-fields { grid-template-columns: minmax(0, 1fr); }
  .portal-experience-filter-fields > label:first-child, .portal-experience-filter-actions { grid-column: auto; }
  .portal-experience-filter-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .portal-experience-filter-actions .portal-primary-button, .portal-experience-filter-actions .portal-secondary-button { width: 100%; }
  .portal-experience-layout-toggle { justify-self: start; }
  .portal-experience-grid { grid-template-columns: minmax(0, 1fr); }
  .portal-home-hero { padding: 24px 0 32px; background-position: 58% center; }
  .portal-home-hero > .container { padding-top: 12px !important; }
  .portal-home-hero h1 { font-size: 38px; }
  .portal-home-hero .pb-lg-11 > p:last-child { font-size: 16px; }
  .portal-home-hero > .container, .portal-home-categories, .portal-home-destinations, .portal-home-provider { width: min(100% - 32px, 1240px); }
  .portal-home-search-panel .card-body { padding: 14px; }
  .portal-home-search > .row { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .portal-home-search > .row > div:last-child { grid-column: auto; }
  .portal-home-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-home-section-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .portal-home-section-heading h2, .portal-home-provider h2 { font-size: 24px; }
  .portal-home-provider { grid-template-columns: minmax(0, 1fr); gap: 18px; margin: 48px auto; padding: 16px; }
  .portal-home-provider > img { height: 210px; }
  .portal-home-provider > div { padding: 0 2px 6px; }
  .portal-home-categories, .portal-home-destinations { margin: 48px auto; }
  .portal-header { flex-wrap: wrap; min-height: 116px; padding: 8px 16px; }
  .portal-header .portal-brand { border: 0; padding-right: 0; flex-basis: 94px; }
  .portal-header .portal-service-tabs { width: 100%; order: 4; justify-content: space-between; }
  .portal-service-tabs a { font-size: 12px; padding: 6px; }
  .portal-account-menu summary span { display: none; }
  .portal-header-actions { gap: 4px; }
  .portal-supplier-form { max-width: 150px; }
  .portal-supplier-form select { max-width: 100px; }
  .portal-dashboard { padding-top: 116px; }
  .portal-dashboard #sidenav-main { top: 116px !important; height: calc(100dvh - 116px) !important; }
  .portal-sidebar-backdrop { top: 116px; }
  .portal-dashboard .main-content > .container-fluid { padding: 20px 16px !important; }
  .portal-auth-header { padding: 12px 20px; }
  .portal-auth-header nav { width: 100%; justify-content: space-between; margin: 0; font-size: 12px; }
  .portal-auth-main { width: calc(100% - 40px); margin: 28px auto; grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .portal-auth-image { min-height: 280px; }
  .portal-photo-caption h2 { font-size: 20px; }
  .portal-auth-footer { padding: 20px; flex-wrap: wrap; }
}
@media (max-width: 420px) {
  .portal-home-type-grid { grid-template-columns: minmax(0, 1fr); }
}