.cm-restaurant-page { --rp-navy:#09263d; --rp-blue:#0f6ec6; --rp-aqua:#1e8d89; --rp-bg:#f2f6f9; --rp-line:#dbe4ea; --rp-text:#183247; background:var(--rp-bg); }
.cm-restaurant-page .site-header,.cm-restaurant-page footer.site-footer,.cm-restaurant-page .nv-page-title-wrap { display:none!important; }
.cm-restaurant-page .container,.cm-restaurant-page .container-fluid,.cm-restaurant-page .col { width:100%!important; max-width:none!important; margin:0!important; padding:0!important; }
.cm-restaurant-page .site-main { padding:0!important; }
.cm-rp-shell,.cm-rp-login { min-height:100vh; color:var(--rp-text); font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.cm-rp-header { min-height:76px; padding:14px clamp(20px,4vw,64px); background:var(--rp-navy); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cm-rp-header__brand,.cm-rp-login__brand { display:flex; align-items:center; gap:12px; }
.cm-rp-header__brand>span,.cm-rp-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-rp-header__brand div,.cm-rp-login__brand div { display:flex; flex-direction:column; line-height:1.15; }
.cm-rp-header__brand strong,.cm-rp-login__brand strong { font-size:18px; }
.cm-rp-header__brand small,.cm-rp-login__brand small { opacity:.72; }
.cm-rp-header__user { display:flex; align-items:center; gap:18px; }
.cm-rp-header__user a { color:#fff; border:1px solid rgba(255,255,255,.4); border-radius:7px; padding:8px 13px; text-decoration:none; }
.cm-rp-main { max-width:1180px; margin:auto; padding:38px clamp(18px,4vw,60px) 70px; }
.cm-rp-title { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:25px; }
.cm-rp-title h1,.cm-rp-login h1 { margin:2px 0 5px; color:var(--rp-navy); font-size:clamp(28px,4vw,42px); letter-spacing:-.035em; }
.cm-rp-title p { margin:0; color:#607383; }
.cm-rp-eyebrow { margin:0!important; color:var(--rp-aqua)!important; font-size:12px!important; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.cm-rp-refresh { padding:10px 15px; border:1px solid var(--rp-line); border-radius:8px; background:#fff; color:var(--rp-blue); font-weight:700; text-decoration:none; }
.cm-rp-card,.cm-rp-recent { margin-bottom:28px; padding:24px; border:1px solid var(--rp-line); border-radius:14px; background:#fff; box-shadow:0 3px 14px rgba(22,50,71,.05); }
.cm-rp-card__heading,.cm-rp-section-title { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.cm-rp-card__heading h2,.cm-rp-section-title h2 { margin:3px 0 0; color:var(--rp-navy); font-size:24px; }
.cm-rp-payment-hint { padding:7px 11px; border-radius:99px; background:#fff0ce; color:#855a08; font-size:12px; font-weight:800; }
.cm-rp-form { display:grid; gap:24px; }
.cm-rp-form fieldset { min-width:0; margin:0; padding:0 0 24px; border:0; border-bottom:1px solid var(--rp-line); }
.cm-rp-form legend { margin-bottom:13px; color:var(--rp-navy); font-size:15px; font-weight:800; }
.cm-rp-form legend small,.cm-rp-fields label small { color:#718493; font-size:11px; font-weight:500; }
.cm-rp-fields { display:grid; gap:13px; }
.cm-rp-fields--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cm-rp-fields--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cm-rp-fields label,.cm-rp-note { display:flex; flex-direction:column; gap:6px; color:#526b7d; font-size:12px; font-weight:700; }
.cm-rp-fields input,.cm-rp-fields select,.cm-rp-note textarea { width:100%; border:1px solid #c9d5dd; border-radius:7px; background:#fff; color:var(--rp-text); font:inherit; }
.cm-rp-fields input,.cm-rp-fields select { height:46px; padding:0 12px; }
.cm-rp-note textarea { min-height:100px; padding:11px 12px; resize:vertical; }
.cm-rp-fields input:focus,.cm-rp-fields select:focus,.cm-rp-note textarea:focus { border-color:var(--rp-blue); outline:3px solid rgba(15,110,198,.12); }
.cm-rp-fields select option:disabled { color:#a0a9af; }
.cm-rp-berth-help { min-height:16px; color:#718493!important; }
.cm-rp-help { margin:9px 0 0; color:#718493; font-size:12px; }
.cm-rp-map { --rp-map-free:#62c370; --rp-map-occupied:#df6b63; --rp-map-locked:#f3c969; --rp-map-incompatible:#c6cdd2; --rp-map-selected:#3987d7; margin-top:22px; padding:18px; border:1px solid var(--rp-line); border-radius:11px; background:#f9fbfc; transition:opacity .2s; }
.cm-rp-map.is-loading { opacity:.7; }
.cm-rp-map__header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.cm-rp-map__header h3 { margin:3px 0 4px; color:var(--rp-navy); font-size:20px; }
.cm-rp-map__header p { margin:0; color:#667b8b; font-size:13px; }
.cm-rp-map__period { flex:0 0 auto; padding:7px 10px; border:1px solid var(--rp-line); border-radius:7px; background:#fff; color:#526b7d; font-size:12px; font-weight:800; }
.cm-rp-map__legend { display:flex; flex-wrap:wrap; gap:9px 16px; margin:16px 0 11px; color:#526b7d; font-size:12px; }
.cm-rp-map__legend span { display:inline-flex; align-items:center; gap:6px; }
.cm-rp-map__legend i { width:13px; height:13px; border:1px solid rgba(0,0,0,.2); border-radius:3px; }
.cm-rp-map__legend .is-free,.cm-rp-map .marina-map-berth.is-free { fill:var(--rp-map-free)!important; background:var(--rp-map-free); }
.cm-rp-map__legend .is-occupied,.cm-rp-map .marina-map-berth.is-occupied { fill:var(--rp-map-occupied)!important; background:var(--rp-map-occupied); }
.cm-rp-map__legend .is-locked,.cm-rp-map .marina-map-berth.is-locked { fill:var(--rp-map-locked)!important; background:var(--rp-map-locked); }
.cm-rp-map__legend .is-incompatible,.cm-rp-map .marina-map-berth.is-incompatible { fill:var(--rp-map-incompatible)!important; background:var(--rp-map-incompatible); }
.cm-rp-map__legend .is-unknown,.cm-rp-map .marina-map-berth.is-unknown { fill:#8e9ba3!important; background:#8e9ba3; }
.cm-rp-map .marina-map-berth.is-selected { fill:var(--rp-map-selected)!important; stroke:#061c2c!important; stroke-width:.45!important; }
.cm-rp-map__interactive { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,280px); gap:15px; align-items:start; }
.cm-rp-map__svg { overflow:auto; padding:9px; border:1px solid var(--rp-line); border-radius:9px; background:#fff; }
.cm-rp-map__svg svg { display:block; width:100%; min-width:590px; height:auto; }
.cm-rp-map .marina-map-berth { cursor:pointer!important; transition:fill .15s ease,stroke-width .15s ease; vector-effect:non-scaling-stroke; }
.cm-rp-map .marina-map-berth[aria-disabled=true] { cursor:not-allowed!important; }
.cm-rp-map .marina-map-berth:focus { outline:none; stroke:#061c2c!important; stroke-width:.35!important; }
.cm-rp-map__panel { position:sticky; top:16px; min-height:130px; padding:16px; border-radius:9px; background:var(--rp-navy); color:#fff; }
.cm-rp-map__panel h4 { margin:0 0 7px; color:#fff; font-size:17px; }
.cm-rp-map__panel p { margin:0; color:rgba(255,255,255,.78); font-size:13px; }
.cm-rp-map__fallback { margin:11px 0 0; color:#718493; font-size:11px; }
.cm-rp-submit { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cm-rp-submit p { max-width:620px; margin:0; color:#607383; font-size:13px; }
.cm-rp-submit button,.cm-rp-login input[type=submit] { min-height:46px; padding:0 21px; border:0; border-radius:8px; background:var(--rp-blue); color:#fff; font-weight:800; cursor:pointer; }
.cm-rp-section-title { margin-bottom:14px; }
.cm-rp-section-title>span { color:#718493; font-size:13px; }
.cm-rp-table-wrap { overflow-x:auto; }
.cm-rp-table-wrap table { width:100%; border-collapse:collapse; font-size:14px; }
.cm-rp-table-wrap th { padding:10px 12px; border-bottom:2px solid var(--rp-line); color:#607383; font-size:11px; letter-spacing:.05em; text-align:left; text-transform:uppercase; }
.cm-rp-table-wrap td { padding:14px 12px; border-bottom:1px solid var(--rp-line); color:var(--rp-text); vertical-align:middle; }
.cm-rp-table-wrap tbody tr:last-child td { border-bottom:0; }
.cm-rp-table-wrap td small { display:block; margin-top:2px; color:#718493; font-size:11px; }
.cm-rp-payment { display:inline-flex; padding:5px 9px; border-radius:99px; background:#eef2f4; color:#526575; font-size:11px; font-weight:800; }
.cm-rp-payment--open { background:#fff0ce; color:#855a08; }
.cm-rp-alert { margin:0 0 18px; padding:13px 16px; border-radius:8px; font-weight:700; }
.cm-rp-alert--success { background:#dff5e8; color:#176a3b; }
.cm-rp-alert--error { background:#fde5e5; color:#9a3030; }
.cm-rp-empty,.cm-rp-denied { padding:35px; border:1px solid var(--rp-line); border-radius:12px; background:#fff; text-align:center; }
.cm-rp-login { position:relative; display:grid; place-items:center; padding:90px 20px 30px; background:linear-gradient(135deg,#071e31,#0f5a65); }
.cm-rp-login__brand { position:absolute; top:25px; left:clamp(22px,5vw,70px); color:#fff; }
.cm-rp-login__card { width:min(100%,430px); padding:38px; border-radius:16px; background:#fff; box-shadow:0 24px 60px rgba(0,0,0,.28); }
.cm-rp-login__card>p { color:#607383; }
.cm-rp-login label { display:block; margin-bottom:6px; color:var(--rp-navy); font-weight:700; }
.cm-rp-login input[type=text],.cm-rp-login input[type=password] { width:100%; height:47px; padding:0 12px; border:1px solid #c9d5dd; border-radius:7px; }
.cm-rp-login .login-remember label { font-size:13px; font-weight:500; }
.cm-rp-login .login-submit input { width:100%; }
@media (max-width:800px) { .cm-rp-fields--three{grid-template-columns:repeat(2,minmax(0,1fr))}.cm-rp-map__interactive{grid-template-columns:1fr}.cm-rp-map__panel{position:static}.cm-rp-table-wrap table{min-width:760px} }
@media (max-width:600px) { .cm-rp-header{padding:12px 16px}.cm-rp-header__user span{display:none}.cm-rp-main{padding:25px 12px 50px}.cm-rp-title{align-items:flex-start}.cm-rp-refresh{display:none}.cm-rp-card,.cm-rp-recent{padding:18px 14px}.cm-rp-card__heading,.cm-rp-map__header{align-items:flex-start;flex-direction:column}.cm-rp-fields--three,.cm-rp-fields--two{grid-template-columns:1fr}.cm-rp-map{padding:13px}.cm-rp-submit{align-items:stretch;flex-direction:column}.cm-rp-submit button{width:100%}.cm-rp-login__card{padding:28px 22px} }
