:root{--ink: #122226;--muted: #5d6d71;--paper: #fffdf7;--line: rgba(18, 34, 38, .1);--teal: #1d6f67;--teal-dark: #0d4d47;--gold: #d49e3f;--leaf: #2f7d4e;--shadow: 0 18px 45px rgba(18, 34, 38, .12);font-family:Instrument Sans,system-ui,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(212,158,63,.16),transparent 36%),radial-gradient(circle at top right,rgba(29,111,103,.18),transparent 32%),linear-gradient(180deg,#fff8ef 0%,var(--paper) 52%,#fcfaf5 100%)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink)}a{color:inherit}button,input,select{font:inherit}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:#1222260f;padding:.15em .35em;border-radius:.45em}.page-shell{width:min(1380px,calc(100vw - 32px));margin:0 auto;padding:24px 0 36px}.page-header,.toolbar,.view-tabs,.content-panel,.detail-panel,.error-shell{border:1px solid var(--line);border-radius:26px;background:#fffdf7eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.page-header{display:flex;justify-content:space-between;gap:18px;align-items:end;padding:22px 24px;margin-bottom:14px}.announcement-banner{position:relative;overflow:hidden;margin-bottom:14px;padding:20px 22px;border-radius:26px;border:1px solid rgba(29,111,103,.18);background:radial-gradient(circle at top right,rgba(212,158,63,.22),transparent 28%),linear-gradient(135deg,#1d6f671f,#fffffff2);box-shadow:var(--shadow)}.announcement-banner__eyebrow{margin-bottom:10px;font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-dark)}.announcement-banner__content{display:flex;justify-content:space-between;gap:18px;align-items:center}.announcement-banner h2{margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(1.45rem,3.6vw,2rem);line-height:1.02;letter-spacing:-.03em}.announcement-banner p{max-width:780px;margin:10px 0 0;color:var(--muted);line-height:1.6}.announcement-banner__link{flex-shrink:0;white-space:nowrap}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;color:var(--teal-dark);font-weight:700}.page-header h1,.error-shell h1{margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,5vw,3.4rem);line-height:.95;letter-spacing:-.04em}.page-meta{display:grid;justify-items:end;gap:6px;color:var(--muted);font-size:.92rem}.page-meta-link{color:var(--teal-dark);font-weight:600;text-decoration:none}.page-meta-link:hover{text-decoration:underline}.toolbar{padding:14px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(160px,.8fr) minmax(160px,.8fr) minmax(180px,.9fr) auto;gap:12px;margin-bottom:12px}.toolbar-group label{display:grid;gap:8px;font-size:.84rem;color:var(--muted)}.toolbar-group input,.toolbar-group select{width:100%;border-radius:14px;border:1px solid var(--line);background:#fff;padding:12px 14px;color:var(--ink)}.checkbox-row{align-items:center;grid-auto-flow:column;grid-auto-columns:max-content 1fr;gap:10px;min-height:100%}.view-tabs{display:inline-flex;gap:8px;padding:8px;margin-bottom:16px}.tab-button,.ghost-button,.primary-button{border-radius:999px;border:1px solid var(--line);padding:11px 16px;cursor:pointer;text-decoration:none;transition:transform .16s ease,background-color .16s ease,color .16s ease,border-color .16s ease}.tab-button,.ghost-button{background:#fff}.tab-button.is-active,.primary-button{background:var(--teal);border-color:var(--teal);color:#fff}.ghost-button:hover,.primary-button:hover,.tab-button:hover{transform:translateY(-1px)}.workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:16px}.content-panel,.detail-panel{overflow:hidden}.mode-panel{height:100%}#map{width:100%;height:74vh;background:#dfeee9}#list-panel{height:74vh}.hotel-list{height:100%;overflow:auto;padding:10px}.detail-card,.empty-state,.detail-empty{background:#fff;border-radius:22px;border:1px solid rgba(18,34,38,.08);box-shadow:0 10px 24px #1222260f}.card-topline{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.brand-pill,.price-pill{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:.78rem;font-weight:600}.brand-pill{background:#1222260f;color:var(--ink)}.price-pill{background:#d49e3f29;color:#7d5414}.price-pill--green{background:#2f7d4e29;color:#1b5d36}.detail-card h2{margin:0;line-height:1.32}.detail-card h2{font-size:1.45rem}.detail-location{margin:10px 0 0;font-size:.92rem;color:var(--muted)}.detail-price-summary{margin-top:18px;padding:18px 20px;border-radius:20px;background:linear-gradient(135deg,#d49e3f29,#fffffff5);border:1px solid rgba(212,158,63,.22)}.detail-price-summary--pending{background:#1222260a;border-color:#12222614}.detail-price-summary__eyebrow{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.detail-price-summary strong{display:block;margin-top:8px;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1;letter-spacing:-.04em}.detail-price-summary p{margin:8px 0 0;color:var(--muted);font-size:.92rem}.detail-actions{display:flex;gap:10px;margin-top:14px}.detail-actions>*{flex:1;text-align:center}.hotel-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid rgba(18,34,38,.08);border-radius:18px;overflow:hidden}.hotel-table thead th{position:sticky;top:0;z-index:1;text-align:left;padding:13px 14px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:#f8f5ee;border-bottom:1px solid rgba(18,34,38,.08)}.hotel-row{cursor:pointer;transition:background-color .16s ease}.hotel-row:hover td,.hotel-row--active td{background:#1d6f6714}.hotel-row:focus-visible{outline:2px solid rgba(29,111,103,.4);outline-offset:-2px}.hotel-row td{padding:14px;border-bottom:1px solid rgba(18,34,38,.08);vertical-align:top;background:#fff}.hotel-row:last-child td{border-bottom:0}.hotel-cell{font-size:.92rem;color:var(--ink)}.hotel-cell strong,.hotel-cell span{display:block}.hotel-cell--name{min-width:260px}.hotel-cell--name strong{font-size:.96rem;line-height:1.35}.hotel-cell--name span,.hotel-cell--price span{margin-top:4px;color:var(--muted);font-size:.8rem}.hotel-cell--price{min-width:170px}.hotel-cell--price strong{font-size:.94rem}.hotel-cell--credit{min-width:120px}.table-pill{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:#d49e3f29;color:#7d5414;font-size:.78rem;font-weight:700;white-space:nowrap}.table-pill--green{background:#2f7d4e29;color:#1b5d36}.detail-panel__header{padding:18px 20px;border-bottom:1px solid var(--line)}.detail-panel__header h2{margin:0;font-size:1rem}.detail-panel__body{height:calc(74vh - 63px);overflow:auto;padding:16px}.detail-card,.detail-empty,.empty-state{padding:18px}.detail-grid{display:grid;gap:12px;margin-top:18px}.detail-grid--compact{margin-top:0}.detail-row{display:grid;gap:6px}.detail-row span{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.detail-row strong{font-size:.96rem;line-height:1.5}.detail-price-breakdown{margin-top:18px;padding-top:18px;border-top:1px solid rgba(18,34,38,.08)}.detail-price-breakdown__header{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:12px}.detail-price-breakdown__header h3{margin:0;font-size:.98rem}.detail-price-breakdown__header span{font-size:.8rem;color:var(--muted)}.detail-rate-list{display:grid;gap:10px}.detail-rate-card{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 16px;border-radius:18px;background:#12222608;border:1px solid rgba(18,34,38,.06)}.detail-rate-card--best{background:#1d6f6714;border-color:#1d6f6733}.detail-rate-card div{min-width:0}.detail-rate-card strong,.detail-rate-card span{display:block}.detail-rate-card div strong{font-size:.94rem;line-height:1.35}.detail-rate-card div span{margin-top:4px;font-size:.8rem;color:var(--muted)}.detail-rate-card>strong{font-size:1.15rem;line-height:1;white-space:nowrap}.detail-price-note{margin-top:12px;color:var(--muted);font-size:.84rem;line-height:1.55}.detail-tripadvisor{margin-top:18px;padding:18px;border-radius:20px;background:linear-gradient(135deg,#1d6f6714,#fffffff5);border:1px solid rgba(29,111,103,.14)}.detail-tripadvisor__header{display:flex;align-items:baseline}.detail-tripadvisor__header h3{margin:0;font-size:.98rem}.detail-tripadvisor__stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;margin-bottom:14px}.detail-stat-pill{display:inline-flex;gap:10px;align-items:baseline;padding:10px 14px;border-radius:999px;background:#fff;border:1px solid rgba(29,111,103,.12)}.detail-stat-pill strong{font-size:1rem;line-height:1}.detail-stat-pill span{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.popup-card{display:grid;gap:4px;min-width:180px}.map-pin-wrapper{background:transparent;border:0}.map-pin{height:36px;min-width:54px;padding:0 10px;border-radius:999px;background:#122226e6;color:#fff;border:2px solid white;box-shadow:0 12px 24px #12222638;display:inline-flex;justify-content:center;align-items:center;font-size:.82rem;font-weight:700}.map-pin--200{background:#2f7d4e}.map-pin--300{background:#3e8f9e}.map-pin--400{background:#c27a2c}.map-pin--500{background:#b45832}.map-pin--over{background:#8d3d4d}.map-pin--unknown{background:#122226e6}.view-map #list-panel,.view-list #map-panel{display:none}.error-shell{padding:32px;margin-top:32px}.error-shell p,.empty-state p,.detail-empty p{color:var(--muted);line-height:1.6}@media(max-width:1120px){.workspace{grid-template-columns:1fr}.detail-panel__body,#list-panel,#map{height:auto}#map{min-height:56vh}}@media(max-width:760px){.page-shell{width:min(100vw - 20px,100%);padding:14px 0 28px}.page-header,.toolbar,.announcement-banner,.view-tabs,.content-panel,.detail-panel{border-radius:22px}.page-header,.toolbar{padding:16px}.announcement-banner{padding:18px 16px}.page-header,.toolbar{grid-template-columns:1fr}.page-header{align-items:start}.page-meta{justify-items:start}.announcement-banner__content{flex-direction:column;align-items:start}.toolbar{grid-template-columns:1fr}.view-tabs{display:flex}.view-tabs .tab-button{flex:1}.detail-actions{flex-direction:column}.detail-rate-card,.detail-price-breakdown__header{flex-direction:column;align-items:start}.hotel-list{padding:0}}
