.cm-harbor-master-page { --hm-navy:#09263d; --hm-blue:#0f6ec6; --hm-bg:#f2f6f9; --hm-line:#dbe4ea; --hm-text:#183247; background:var(--hm-bg); }
.cm-harbor-master-page .site-header,.cm-harbor-master-page footer.site-footer,.cm-harbor-master-page .nv-page-title-wrap { display:none!important; }
.cm-harbor-master-page .container,.cm-harbor-master-page .container-fluid,.cm-harbor-master-page .col { max-width:none!important; width:100%!important; padding:0!important; margin:0!important; }
.cm-harbor-master-page .site-main { padding:0!important; }
.cm-hm-shell,.cm-hm-login { min-height:100vh; color:var(--hm-text); font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.cm-hm-header { min-height:76px; padding:14px clamp(20px,4vw,64px); background:var(--hm-navy); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cm-hm-header__brand,.cm-hm-login__brand { display:flex; align-items:center; gap:12px; }
.cm-hm-header__brand>span,.cm-hm-login__brand>span { width:44px; height:44px; display:grid; place-items:center; border:2px solid #fff; border-radius:50%; font-weight:800; letter-spacing:-1px; }
.cm-hm-header__brand div,.cm-hm-login__brand div { display:flex; flex-direction:column; line-height:1.15; }
.cm-hm-header__brand strong,.cm-hm-login__brand strong { font-size:18px; }
.cm-hm-header__brand small,.cm-hm-login__brand small { opacity:.72; }
.cm-hm-header__user { display:flex; align-items:center; gap:18px; }
.cm-hm-header__user a { color:#fff; border:1px solid rgba(255,255,255,.4); border-radius:7px; padding:8px 13px; text-decoration:none; }
.cm-hm-main { max-width:1440px; margin:auto; padding:38px clamp(18px,4vw,60px) 70px; }
.cm-hm-title { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:25px; }
.cm-hm-title h1,.cm-hm-login h1 { color:var(--hm-navy); font-size:clamp(28px,4vw,42px); margin:2px 0 5px; letter-spacing:-.035em; }
.cm-hm-title p { margin:0; color:#607383; }
.cm-hm-eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:12px!important; font-weight:800; color:var(--hm-blue)!important; margin:0!important; }
.cm-hm-refresh { color:var(--hm-blue); text-decoration:none; font-weight:700; background:#fff; border:1px solid var(--hm-line); border-radius:8px; padding:10px 15px; }
.cm-hm-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.cm-hm-stats div { background:#fff; border:1px solid var(--hm-line); border-radius:12px; padding:20px; box-shadow:0 3px 14px rgba(22,50,71,.05); }
.cm-hm-stats span { display:block; color:#667b8b; font-size:13px; }
.cm-hm-stats strong { display:block; color:var(--hm-navy); font-size:32px; margin-top:4px; }
.cm-hm-map { --hm-map-free:#62c370; --hm-map-occupied:#df6b63; --hm-map-locked:#f3c969; --hm-map-selected:#3987d7; margin-bottom:28px; padding:22px; background:#fff; border:1px solid var(--hm-line); border-radius:12px; box-shadow:0 3px 14px rgba(22,50,71,.05); }
.cm-hm-map__header { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }
.cm-hm-map__header h2 { margin:3px 0 4px; color:var(--hm-navy); font-size:23px; }
.cm-hm-map__header p { margin:0; color:#667b8b; }
.cm-hm-map__date { flex:0 0 auto; }
.cm-hm-map__date label { display:block; margin-bottom:5px; color:#526b7d; font-size:12px; font-weight:700; }
.cm-hm-map__date div { display:flex; gap:8px; }
.cm-hm-map__date input { height:42px; border:1px solid #c9d5dd; border-radius:7px; padding:0 10px; color:var(--hm-text); font:inherit; }
.cm-hm-map__date button { min-height:42px; border:0; border-radius:7px; padding:0 15px; background:var(--hm-blue); color:#fff; font-weight:800; cursor:pointer; }
.cm-hm-map__legend { display:flex; flex-wrap:wrap; gap:10px 18px; margin:18px 0 12px; color:#526b7d; font-size:13px; }
.cm-hm-map__legend span { display:inline-flex; align-items:center; gap:6px; }
.cm-hm-map__legend i { width:14px; height:14px; border:1px solid rgba(0,0,0,.22); border-radius:3px; }
.cm-hm-map__legend .is-free,.cm-hm-map .marina-map-berth.is-free { fill:var(--hm-map-free)!important; background:var(--hm-map-free); }
.cm-hm-map__legend .is-occupied,.cm-hm-map .marina-map-berth.is-occupied { fill:var(--hm-map-occupied)!important; background:var(--hm-map-occupied); }
.cm-hm-map__legend .is-locked,.cm-hm-map .marina-map-berth.is-locked { fill:var(--hm-map-locked)!important; background:var(--hm-map-locked); }
.cm-hm-map__legend .is-unknown,.cm-hm-map .marina-map-berth.is-unknown { fill:#aab4ba!important; background:#aab4ba; }
.cm-hm-map .marina-map-berth.is-selected { fill:var(--hm-map-selected)!important; stroke:#061c2c!important; stroke-width:.4!important; }
.cm-hm-map__interactive { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,310px); gap:18px; align-items:start; }
.cm-hm-map__svg { overflow:auto; padding:10px; border:1px solid var(--hm-line); border-radius:10px; background:#f9fbfc; }
.cm-hm-map__svg svg { display:block; width:100%; height:auto; min-width:620px; }
.cm-hm-map .marina-map-berth,.cm-hm-map .marina-map-berth[aria-disabled="true"] { cursor:pointer!important; transition:fill .15s ease,stroke-width .15s ease; vector-effect:non-scaling-stroke; }
.cm-hm-map .marina-map-berth:focus { outline:none; stroke:#061c2c!important; stroke-width:.35!important; }
.cm-hm-map__panel { position:sticky; top:16px; min-height:190px; padding:18px; border-radius:10px; background:var(--hm-navy); color:#fff; }
.cm-hm-map__panel h3 { margin:0 0 8px; color:#fff; }
.cm-hm-map__panel p { margin:0 0 10px; color:rgba(255,255,255,.76); }
.cm-hm-map__booking { margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.2); }
.cm-hm-map__booking strong,.cm-hm-map__booking span { display:block; }
.cm-hm-map__booking span { margin-top:3px; color:rgba(255,255,255,.72); font-size:12px; }
.cm-hm-map__booking a { display:inline-flex; margin-top:10px; padding:8px 11px; border-radius:6px; background:#fff; color:var(--hm-navy); font-size:12px; font-weight:800; text-decoration:none; }
.cm-hm-filters { background:#fff; border:1px solid var(--hm-line); border-radius:12px; padding:16px; display:grid; grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) minmax(180px,1fr) auto; gap:12px; align-items:end; margin-bottom:28px; }
.cm-hm-filters label,.cm-hm-fields label { display:flex; flex-direction:column; gap:5px; color:#526b7d; font-size:12px; font-weight:700; }
.cm-hm-filters input,.cm-hm-filters select,.cm-hm-fields input,.cm-hm-fields select,.cm-hm-note textarea { width:100%; height:44px; border:1px solid #c9d5dd; border-radius:7px; background:#fff; padding:0 12px; color:var(--hm-text); font:inherit; }
.cm-hm-note textarea { height:auto; min-height:116px; padding:11px 12px; resize:vertical; }
.cm-hm-filters button,.cm-hm-form-actions button,.cm-hm-login input[type=submit] { min-height:44px; border:0; border-radius:7px; background:var(--hm-blue); color:#fff; font-weight:800; padding:0 20px; cursor:pointer; }
.cm-hm-section-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:11px; }
.cm-hm-section-title h2 { margin:0; color:var(--hm-navy); font-size:23px; }
.cm-hm-section-title span { color:#718493; font-size:13px; }
.cm-hm-bookings { display:flex; flex-direction:column; gap:9px; }
.cm-hm-booking { background:#fff; border:1px solid var(--hm-line); border-radius:11px; overflow:hidden; box-shadow:0 3px 13px rgba(22,50,71,.04); }
.cm-hm-booking.is-map-target,.cm-hm-booking:target { border-color:var(--hm-blue); box-shadow:0 0 0 3px rgba(15,110,198,.14),0 8px 24px rgba(22,50,71,.12); }
.cm-hm-booking summary { list-style:none; display:grid; grid-template-columns:130px minmax(220px,1.6fr) minmax(110px,.7fr) minmax(150px,.8fr) 20px; gap:18px; align-items:center; padding:18px 20px; cursor:pointer; }
.cm-hm-booking summary::-webkit-details-marker { display:none; }
.cm-hm-booking summary:hover { background:#f9fbfc; }
.cm-hm-booking__date,.cm-hm-booking__guest,.cm-hm-booking__berth { display:flex; flex-direction:column; min-width:0; }
.cm-hm-booking__date strong { color:var(--hm-blue); font-size:21px; }
.cm-hm-booking__date span,.cm-hm-booking__guest span,.cm-hm-booking__berth span { color:#718493; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cm-hm-booking__guest strong { color:var(--hm-navy); font-size:16px; }
.cm-hm-booking__berth strong { color:var(--hm-navy); font-size:17px; }
.cm-hm-status { justify-self:start; display:inline-flex; border-radius:99px; padding:6px 10px; font-size:11px; font-weight:800; background:#eef2f4; color:#526575; }
.cm-hm-status--confirmed { background:#dff5e8; color:#176a3b; }
.cm-hm-status--pending,.cm-hm-status--pending-user,.cm-hm-status--pending-payment { background:#fff0ce; color:#855a08; }
.cm-hm-status--cancelled,.cm-hm-status--abandoned { background:#fde5e5; color:#9a3030; }
.cm-hm-chevron { width:9px; height:9px; border-right:2px solid #758896; border-bottom:2px solid #758896; transform:rotate(45deg); transition:.2s; }
.cm-hm-booking details[open] .cm-hm-chevron { transform:rotate(225deg); }
.cm-hm-booking__form { border-top:1px solid var(--hm-line); padding:23px 20px 18px; background:#fbfcfd; }
.cm-hm-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.cm-hm-grid fieldset { min-width:0; border:0; padding:0; margin:0; }
.cm-hm-grid legend { font-weight:800; color:var(--hm-navy); margin-bottom:11px; font-size:14px; }
.cm-hm-fields { display:grid; gap:10px; }
.cm-hm-fields--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cm-hm-fields small { color:#758896; }
.cm-hm-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.cm-hm-facts--compact { margin-top:10px; }
.cm-hm-facts div { border:1px solid var(--hm-line); border-radius:7px; padding:10px; background:#fff; }
.cm-hm-facts span { display:block; color:#718493; font-size:11px; }
.cm-hm-facts strong { color:var(--hm-navy); }
.cm-hm-guest-note { font-size:12px; padding:10px; background:#eef5fa; border-radius:7px; }
.cm-hm-form-actions { border-top:1px solid var(--hm-line); margin-top:20px; padding-top:16px; display:flex; justify-content:flex-end; align-items:center; gap:18px; }
.cm-hm-form-actions span { color:#718493; font-size:12px; }
.cm-hm-form-actions .cm-hm-cancel { margin-right:auto; background:#fff; color:#a12626; border:1px solid #dbaaaa; }
.cm-hm-alert { border-radius:8px; padding:13px 16px; margin:0 0 18px; font-weight:700; }
.cm-hm-alert--success { background:#dff5e8; color:#176a3b; }
.cm-hm-alert--error { background:#fde5e5; color:#9a3030; }
.cm-hm-alert--info { background:#e4f1fb; color:#1d5d8f; }
.cm-hm-empty,.cm-hm-denied { background:#fff; border:1px solid var(--hm-line); border-radius:12px; padding:35px; text-align:center; }
.cm-hm-login { background:linear-gradient(135deg,#071e31,#10486e); display:grid; place-items:center; padding:90px 20px 30px; position:relative; }
.cm-hm-login__brand { position:absolute; left:clamp(22px,5vw,70px); top:25px; color:#fff; }
.cm-hm-login__card { width:min(100%,430px); background:#fff; border-radius:16px; padding:38px; box-shadow:0 24px 60px rgba(0,0,0,.28); }
.cm-hm-login__card>p { color:#607383; }
.cm-hm-login label { display:block; font-weight:700; color:var(--hm-navy); margin-bottom:6px; }
.cm-hm-login input[type=text],.cm-hm-login input[type=password] { width:100%; height:47px; border:1px solid #c9d5dd; border-radius:7px; padding:0 12px; }
.cm-hm-login .login-remember label { font-weight:500; font-size:13px; }
.cm-hm-login .login-submit input { width:100%; }
@media (max-width:900px) { .cm-hm-stats{grid-template-columns:repeat(2,1fr)} .cm-hm-map__interactive{grid-template-columns:1fr}.cm-hm-map__panel{position:static}.cm-hm-filters{grid-template-columns:1fr 1fr} .cm-hm-filters label:first-child{grid-column:1/-1} .cm-hm-booking summary{grid-template-columns:100px 1fr 100px 20px}.cm-hm-booking__berth{display:none}.cm-hm-grid{grid-template-columns:1fr} }
@media (max-width:600px) { .cm-hm-header{padding:12px 16px}.cm-hm-header__user span{display:none}.cm-hm-main{padding:25px 12px 50px}.cm-hm-title{align-items:flex-start}.cm-hm-refresh{display:none}.cm-hm-stats{gap:8px}.cm-hm-stats div{padding:13px}.cm-hm-stats strong{font-size:25px}.cm-hm-map{padding:15px}.cm-hm-map__header{align-items:stretch;flex-direction:column}.cm-hm-map__date div{display:grid;grid-template-columns:1fr auto}.cm-hm-map__date input{width:100%}.cm-hm-filters{grid-template-columns:1fr}.cm-hm-filters label:first-child{grid-column:auto}.cm-hm-booking summary{grid-template-columns:82px 1fr 15px;gap:10px;padding:15px 13px}.cm-hm-status{display:none}.cm-hm-booking__form{padding:18px 13px}.cm-hm-fields--two{grid-template-columns:1fr}.cm-hm-form-actions{align-items:stretch;flex-direction:column}.cm-hm-form-actions button{width:100%}.cm-hm-login__card{padding:28px 22px} }
