:root{--navy:#0b1b33;--ink:#142033;--muted:#687286;--bg:#f5f7fb;--card:#fff;--line:#e5e9f2;--green:#1f6f50;--gold:#d9902f}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:#fff}a{color:inherit;text-decoration:none}.container{max-width:1180px;margin:0 auto;padding:0 22px}.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:5}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:24px;font-weight:900;color:var(--navy)}nav{display:flex;gap:24px;align-items:center;font-weight:700;font-size:14px}.btn,button{display:inline-block;background:var(--navy);color:#fff;border:0;border-radius:12px;padding:13px 18px;font-weight:800;cursor:pointer}.btn.light{background:#eef2f7;color:var(--navy)}.btn.small{padding:10px 14px}.hero{min-height:560px;background:linear-gradient(90deg,rgba(11,27,51,.82),rgba(11,27,51,.36)),url('images/current-home-reference.png');background-size:cover;background-position:center;display:flex;align-items:center}.hero-copy{max-width:760px;color:white}.hero h1{font-size:62px;line-height:1.02;margin:0 0 18px}.hero p{font-size:20px;line-height:1.55;max-width:650px}.search-box{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;background:white;padding:14px;border-radius:18px;margin-top:28px;box-shadow:0 20px 50px rgba(0,0,0,.18)}input,select,textarea{padding:13px 14px;border:1px solid var(--line);border-radius:12px;font:inherit;background:white}textarea{min-height:84px}.section{padding:70px 22px}.section h2{font-size:34px;text-align:center;margin:0 0 26px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.steps div,.card,.panel,.login-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 12px 40px rgba(20,32,51,.06)}.steps b{font-size:42px;color:#c4cad4}.dark{background:var(--navy);color:white;padding:80px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:40px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.cards-4{grid-template-columns:repeat(4,1fr)}.ph{height:180px;border-radius:16px;background:linear-gradient(135deg,#dbe2ec,#f4f6f9);border:1px solid #dce2ea}.ph.large{height:440px}.card h3{font-size:18px}.card p{color:var(--muted)}.card-foot{display:flex;justify-content:space-between;align-items:center;font-weight:800}.card-foot a{background:var(--navy);color:white;border-radius:10px;padding:9px 12px}.icons{font-size:13px;color:var(--muted);margin:12px 0}.footer{background:#f5f7fb;border-top:1px solid var(--line);padding:44px 0 24px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.muted{color:var(--muted)}.page-hero{background:var(--navy);color:white;padding:70px 0}.page-hero h1{font-size:48px;margin:0}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.rv-detail{display:grid;grid-template-columns:1fr 360px;gap:34px}.booking-panel{position:sticky;top:96px;background:white;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 16px 50px rgba(20,32,51,.12);height:max-content}.booking-panel input,.booking-panel select,.booking-panel button{width:100%;margin:7px 0 14px}.price{font-size:24px;font-weight:900;color:var(--green)}.auth-page{background:linear-gradient(135deg,var(--navy),#1c334f);min-height:100vh;display:grid;place-items:center}.login-card{width:min(440px,92vw)}.login-card h1{margin:0}.login-card input,.login-card button{width:100%;margin:8px 0 14px}.alert{background:#ffecec;border:1px solid #ffb4b4;border-radius:12px;padding:12px}.admin-body{display:grid;grid-template-columns:260px 1fr;background:var(--bg);min-height:100vh}.sidebar{background:var(--navy);color:white;padding:18px;position:sticky;top:0;height:100vh}.side-brand{font-size:22px;font-weight:900;margin:12px 0 24px}.sidebar a{display:block;padding:12px 14px;border-radius:12px;color:#e8edf5;margin-bottom:4px}.sidebar a:hover{background:rgba(255,255,255,.1)}.admin-main{padding:24px;min-width:0}.topbar{height:54px;background:white;border:1px solid var(--line);border-radius:18px;margin-bottom:22px;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:20px 0}.stats div{background:white;border:1px solid var(--line);border-radius:20px;padding:20px}.stats b{font-size:38px;display:block}.stats span{color:var(--muted);font-weight:700}.actions{display:flex;gap:12px;margin:18px 0}.panel{margin:18px 0;overflow:auto}.panel h2{margin-top:0}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:var(--muted)}.badge{background:#eef2f7;color:#20334f;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.grid-form{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.grid-form textarea{grid-column:1/-1}.grid-form button{width:max-content}.calendar-row{display:grid;grid-template-columns:2fr 2fr auto;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:14px 0}@media(max-width:900px){.cards,.cards-4,.steps,.footer-grid,.split,.rv-detail,.stats,.grid-form{grid-template-columns:1fr}.hero h1{font-size:42px}.search-box{grid-template-columns:1fr}.admin-body{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.admin-main{padding:14px}.nav{height:auto;gap:16px;padding:16px 22px;align-items:flex-start}.nav,nav{flex-direction:column}.ph.large{height:260px}}

/* v1.0.1 modern public hero patch */
.brand{display:inline-flex;align-items:center;gap:10px}
.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#0b1b33,#1f6f50);color:#fff;display:inline-grid;place-items:center;font-weight:1000}
.site-header{background:rgba(255,255,255,.97);backdrop-filter:blur(10px)}
.hero-clean{
  min-height:650px;
  background:
    radial-gradient(circle at 78% 18%,#dff2e7 0 18%,transparent 28%),
    linear-gradient(135deg,#f8fbf9 0%,#eef7f1 46%,#f7f1e8 100%) !important;
  background-image:
    radial-gradient(circle at 78% 18%,#dff2e7 0 18%,transparent 28%),
    linear-gradient(135deg,#f8fbf9 0%,#eef7f1 46%,#f7f1e8 100%) !important;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.hero-clean .hero-copy{color:#142033;max-width:720px}
.hero-clean h1{color:#0b1b33;font-size:68px;letter-spacing:-.045em;line-height:.96;margin:0 0 18px}
.hero-clean p{color:#344055;font-size:20px;line-height:1.6}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:52px;align-items:center}
.eyebrow{display:inline-flex;text-transform:uppercase;letter-spacing:.11em;font-size:12px;font-weight:1000;color:#1f6f50;margin-bottom:14px}
.search-box label span{display:block;font-size:12px;font-weight:900;color:#687286;margin:0 0 6px 2px}
.trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.trust-row span{background:rgba(255,255,255,.75);border:1px solid #e5e9f2;border-radius:999px;padding:8px 12px;font-weight:800;color:#31415a}
.hero-card{background:#fff;border:1px solid #e5e9f2;border-radius:28px;padding:28px;box-shadow:0 18px 55px rgba(20,32,51,.12)}
.hero-card h2{font-size:28px;color:#0b1b33;margin:18px 0 10px}
.hero-card p{color:#687286;font-size:16px}
.rv-line-art{height:190px;border-radius:22px;background:linear-gradient(180deg,#dfeee6,#f8fbf9);position:relative;overflow:hidden;border:1px solid #d9eadf}
.rv-box{position:absolute;left:13%;right:9%;bottom:45px;height:78px;border-radius:16px 24px 12px 12px;background:#fff;border:4px solid #0b1b33;box-shadow:inset -85px 0 0 #eaf1f6}
.rv-window{position:absolute;bottom:84px;width:45px;height:30px;border:3px solid #0b1b33;border-radius:8px;background:#c8e8f3}
.rv-window.one{left:22%}.rv-window.two{left:42%}
.rv-wheel{position:absolute;bottom:31px;width:28px;height:28px;border-radius:50%;background:#0b1b33;border:6px solid #fff;box-shadow:0 0 0 3px #0b1b33}
.rv-wheel.a{left:29%}.rv-wheel.b{right:22%}
.hero-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.hero-mini-stats div{background:#f5f7fb;border:1px solid #e5e9f2;border-radius:16px;padding:14px}
.hero-mini-stats b{display:block;color:#1f6f50;font-size:24px}.hero-mini-stats span{font-weight:900}
.feature-list{display:grid;gap:14px}
.feature-list div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:18px}
.feature-list strong{display:block;font-size:18px}.feature-list span{display:block;color:#dce6f3;margin-top:5px}
.empty-state{background:#fff;border:1px solid #e5e9f2;border-radius:22px;padding:30px;text-align:center;box-shadow:0 12px 40px rgba(20,32,51,.06);max-width:720px;margin:0 auto}
.badge.ok{background:#e7f7ef;color:#14613f}.badge.fail{background:#ffe7e7;color:#9b1c1c}
.check-header{display:flex;justify-content:space-between;align-items:center;gap:18px}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero-clean h1{font-size:44px}
  .hero-card{display:none}
  .check-header{align-items:stretch;flex-direction:column}
}

/* v1.0.2 photo hero patch */
.hero-photo{
  min-height:640px;
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  background-image:url('images/hero-rv.jpg') !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}
.hero-photo-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(8,15,31,.82) 0%, rgba(8,15,31,.58) 42%, rgba(8,15,31,.22) 100%),
    linear-gradient(180deg, rgba(8,15,31,.20) 0%, rgba(8,15,31,.50) 100%);
}
.hero-photo-inner{position:relative;z-index:2}
.hero-photo-copy{max-width:760px;color:#fff}
.hero-photo-copy h1{
  color:#fff;
  font-size:72px;
  line-height:.96;
  letter-spacing:-.055em;
  margin:0 0 18px;
  text-shadow:0 8px 30px rgba(0,0,0,.35);
}
.hero-photo-copy p{
  color:rgba(255,255,255,.92);
  font-size:21px;
  line-height:1.55;
  max-width:680px;
}
.eyebrow.light{color:#d7f5df}
.hero-search{
  margin-top:30px;
  max-width:820px;
  background:rgba(255,255,255,.96);
  box-shadow:0 18px 60px rgba(0,0,0,.28);
}
.hero-trust span{
  color:#fff;
  background:rgba(255,255,255,.15);
  border-color:rgba(255,255,255,.25);
  backdrop-filter:blur(10px);
}
@media(max-width:900px){
  .hero-photo{min-height:620px;background-position:center center !important}
  .hero-photo-copy h1{font-size:46px}
  .hero-photo-copy p{font-size:18px}
}

/* v1.0.3 super admin hero settings */
.notice.success{
  background:#e7f7ef;
  border:1px solid #bfe8d0;
  color:#14613f;
  padding:12px 14px;
  border-radius:14px;
  margin:14px 0;
  font-weight:800;
}
.hero-preview-admin{
  width:100%;
  max-width:900px;
  border:1px solid #e5e9f2;
  border-radius:18px;
  overflow:hidden;
  background:#f5f7fb;
  margin:16px 0 22px;
}
.hero-preview-admin img{
  display:block;
  width:100%;
  height:260px;
  object-fit:cover;
}
.form-grid label span{
  display:block;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#687286;
  font-weight:900;
  margin-bottom:6px;
}
.form-grid input[type="file"]{
  background:#fff;
}

/* v1.0.4 importer and imported RV images */
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn.secondary{background:#eef2f7;color:#0b1b33}
.mini-pre{max-height:150px;overflow:auto;white-space:pre-wrap;font-size:11px;background:#f7f9fc;border:1px solid #e5e9f2;border-radius:10px;padding:10px}
.card-img{width:100%;height:210px;object-fit:cover;border-radius:18px;margin-bottom:14px;background:#eef2f7}
.rental-card p{min-height:44px}
.rv-detail-image{width:100%;max-height:520px;object-fit:cover;border-radius:24px;margin:18px 0;box-shadow:0 18px 55px rgba(20,32,51,.12)}
pre{white-space:pre-wrap;word-break:break-word}

/* v1.0.5 dashboard/future rentals/customer repair */
.page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}
.small-note{font-size:13px;font-weight:600}
.table-scroll{overflow:auto}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
@media(max-width:900px){.page-head{flex-direction:column}.table-scroll table{min-width:900px}}

/* v1.0.6 custom error pages */
.error-body{
  min-height:100vh;
  margin:0;
  background:
    radial-gradient(circle at top left, rgba(31,111,80,.18), transparent 34%),
    linear-gradient(135deg,#f8fbf9,#eef2f7);
  color:#0b1b33;
}
.error-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px;
}
.error-card{
  width:min(720px,100%);
  background:#fff;
  border:1px solid #e5e9f2;
  border-radius:28px;
  padding:36px;
  box-shadow:0 24px 80px rgba(20,32,51,.14);
}
.error-badge{
  width:72px;
  height:72px;
  border-radius:22px;
  display:grid;
  place-items:center;
  background:#0b1b33;
  color:#fff;
  font-size:24px;
  font-weight:1000;
  margin-bottom:18px;
}
.error-card h1{
  margin:0 0 10px;
  font-size:38px;
  letter-spacing:-.035em;
}
.error-card p{
  color:#566276;
  line-height:1.55;
}
.error-meta{
  margin:22px 0;
  padding:14px 16px;
  border-radius:16px;
  background:#f5f7fb;
  border:1px solid #e5e9f2;
}
.error-meta code{
  font-weight:900;
  color:#1f6f50;
}

/* v1.0.7 rental detail */
.detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-bottom:18px;
}
.detail-list{
  display:grid;
  gap:12px;
}
.detail-list div{
  display:flex;
  justify-content:space-between;
  gap:18px;
  border-bottom:1px solid #e5e9f2;
  padding:10px 0;
}
.detail-list span{
  color:#687286;
  font-size:13px;
  font-weight:800;
}
.detail-list strong{
  text-align:right;
  color:#0b1b33;
}
.detail-rv-img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:18px;
  margin-bottom:14px;
  border:1px solid #e5e9f2;
}
.link-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:10px;
  background:#eef2f7;
  color:#0b1b33;
  font-weight:900;
  text-decoration:none;
}
.link-btn:hover{
  background:#0b1b33;
  color:#fff;
}
.form-grid .span-3{
  grid-column:1 / -1;
}
@media(max-width:1000px){
  .detail-grid{grid-template-columns:1fr}
  .detail-list div{display:block}
  .detail-list strong{text-align:left;display:block;margin-top:4px}
}

/* v1.0.8 future rentals and dashboard action repair */
.dashboard-actions{
  margin:18px 0;
}
.panel-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:14px;
}
.panel-head h2{
  margin-bottom:4px;
}
.count-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:96px;
  padding:9px 13px;
  border-radius:999px;
  background:#0b1b33;
  color:#fff;
  font-weight:1000;
}
.future-rental-table{
  max-height:72vh;
  overflow:auto;
}
.future-rental-table thead th{
  position:sticky;
  top:0;
  background:#fff;
  z-index:2;
}
.link-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 12px;
  border-radius:10px;
  background:#eef2f7;
  color:#0b1b33;
  font-weight:900;
  text-decoration:none;
  white-space:nowrap;
}
.link-btn:hover{
  background:#0b1b33;
  color:#fff;
}
.table-scroll{
  overflow:auto;
}
.small-note{
  font-size:13px;
  font-weight:700;
}
@media(max-width:900px){
  .panel-head{flex-direction:column}
  .future-rental-table table{min-width:1100px}
}

/* v1.0.9 dashboard repair + date formatting view */
.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin:18px 0;
}
.stat-card{
  background:#fff;
  border:1px solid #e5e9f2;
  border-radius:18px;
  padding:24px;
  box-shadow:0 14px 45px rgba(20,32,51,.06);
}
.stat-card strong{
  display:block;
  font-size:38px;
  line-height:1;
  letter-spacing:.06em;
  color:#0b1b33;
}
.stat-card span{
  display:block;
  margin-top:8px;
  color:#566276;
  font-weight:800;
}
.dashboard-actions{
  margin:18px 0;
}
.panel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:14px;
}
.count-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:96px;
  padding:9px 13px;
  border-radius:999px;
  background:#0b1b33;
  color:#fff;
  font-weight:1000;
}
.link-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 12px;
  border-radius:10px;
  background:#eef2f7;
  color:#0b1b33;
  font-weight:900;
  text-decoration:none;
  white-space:nowrap;
}
.link-btn:hover{
  background:#0b1b33;
  color:#fff;
}
.future-rental-table{
  max-height:72vh;
  overflow:auto;
}
.future-rental-table thead th{
  position:sticky;
  top:0;
  background:#fff;
  z-index:2;
}
@media(max-width:1100px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .stats-grid{grid-template-columns:1fr}
  .panel-head{flex-direction:column}
}

/* v1.0.10 operations dashboard */
.dashboard-title-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:10px;
}
.stat-link{
  display:block;
  color:inherit;
  text-decoration:none;
  transition:transform .12s ease, box-shadow .12s ease;
}
.stat-link:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 55px rgba(20,32,51,.10);
}
.stat-card.needs-attention{
  border-color:#f1c27d;
  background:linear-gradient(180deg,#fffaf2,#fff);
}
.ops-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin:18px 0;
}
.ops-card{
  background:#0b1b33;
  color:#fff;
  border-radius:18px;
  padding:20px;
  box-shadow:0 18px 50px rgba(11,27,51,.16);
}
.ops-card span{
  display:block;
  color:#cbd7e8;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-weight:900;
}
.ops-card strong{
  display:block;
  font-size:36px;
  line-height:1;
  margin:10px 0 4px;
}
.ops-card p{
  margin:0;
  color:#e5edf8;
  font-weight:700;
}
@media(max-width:1000px){
  .ops-grid{grid-template-columns:1fr}
}

/* v1.0.11 agreement importer */
code{
  background:#f3f6fb;
  border:1px solid #e5e9f2;
  padding:2px 6px;
  border-radius:7px;
}

/* v1.0.13 agreement manager */
.filter-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:16px 0 18px;
}
.filter-tabs a{
  display:inline-flex;
  gap:8px;
  align-items:center;
  text-decoration:none;
  background:#fff;
  border:1px solid #e5e9f2;
  color:#0b1b33;
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
}
.filter-tabs a.active{
  background:#0b1b33;
  color:#fff;
}
.filter-tabs span{
  display:inline-grid;
  place-items:center;
  min-width:24px;
  height:24px;
  border-radius:999px;
  background:#eef2f7;
  color:#0b1b33;
  font-size:12px;
}
.filter-tabs a.active span{
  background:rgba(255,255,255,.18);
  color:#fff;
}
.badge.ok{
  background:#e7f7ef;
  color:#14613f;
}

/* v1.0.14 agreement email workflow */
.confirm-box{
  display:flex;
  gap:10px;
  align-items:flex-start;
  background:#fff8ed;
  border:1px solid #f1d2a3;
  border-radius:16px;
  padding:14px;
  margin:12px 0 16px;
  font-weight:800;
}
.confirm-box input{
  margin-top:3px;
}
button[disabled]{
  opacity:.55;
  cursor:not-allowed;
}

/* v1.0.15 native agreement form */
.agreement-form{
  display:grid;
  gap:18px;
}
.form-grid.two{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.agreement-terms{
  max-height:320px;
  overflow:auto;
  background:#f7f9fc;
  border:1px solid #e5e9f2;
  border-radius:16px;
  padding:18px;
  margin-bottom:16px;
}
.agreement-terms p{
  color:#334155;
  line-height:1.55;
}
.agreement-submit{
  width:max-content;
}
@media(max-width:800px){
  .form-grid.two{grid-template-columns:1fr}
  .agreement-submit{width:100%}
}

/* v1.0.16 single agreement send */
.rental-action-panel form{
  margin:0;
}
.notice.error{
  background:#ffe7e7;
  border:1px solid #ffcaca;
  color:#9b1c1c;
  padding:12px 14px;
  border-radius:14px;
  margin:14px 0;
  font-weight:800;
}

/* v1.0.17 rental lifecycle actions */
.lifecycle-form{
  display:grid;
  gap:14px;
}
.lifecycle-form textarea{
  width:100%;
  resize:vertical;
}
.action-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.btn.danger{
  background:#9b1c1c;
  color:#fff;
  border-color:#9b1c1c;
}
.btn.danger:hover{
  filter:brightness(.95);
}
.mini-pre{
  white-space:pre-wrap;
  background:#f7f9fc;
  border:1px solid #e5e9f2;
  border-radius:14px;
  padding:14px;
  max-height:360px;
  overflow:auto;
}

/* v1.0.18 manual phone-booking workflow */
.form-panel{
  display:grid;
  gap:18px;
}
.form-panel label span{
  display:block;
  font-weight:900;
  margin-bottom:6px;
  color:#0b1b33;
}
.form-panel input,
.form-panel select,
.form-panel textarea{
  width:100%;
}

/* v1.0.19 availability check */
.form-grid.three{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:16px;
}
.availability-check-form{
  margin-bottom:18px;
}
.availability-result{
  display:flex;
  gap:18px;
  align-items:flex-start;
}
.availability-result .availability-icon{
  width:54px;
  height:54px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-weight:1000;
  font-size:26px;
  flex:0 0 auto;
}
.availability-result.available{
  border-color:#bfe7d0;
  background:#f4fff8;
}
.availability-result.available .availability-icon{
  background:#14613f;
  color:#fff;
}
.availability-result.unavailable{
  border-color:#ffd0d0;
  background:#fff7f7;
}
.availability-result.unavailable .availability-icon{
  background:#9b1c1c;
  color:#fff;
}
@media(max-width:900px){
  .form-grid.three{grid-template-columns:1fr}
}

/* v1.0.20 rental calendar */
.calendar-toolbar{
  margin-bottom:18px;
}
.calendar-nav{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
}
.calendar-nav h2{
  margin:0;
  text-align:center;
}
.calendar-nav p{
  margin:4px 0 0;
  text-align:center;
}
.calendar-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:18px;
}
.calendar-summary div{
  background:#f7f9fc;
  border:1px solid #e5e9f2;
  border-radius:16px;
  padding:14px;
  text-align:center;
}
.calendar-summary strong{
  display:block;
  font-size:28px;
  line-height:1;
  color:#0b1b33;
}
.calendar-summary span{
  display:block;
  margin-top:5px;
  color:#566276;
  font-weight:800;
}
.calendar-panel{
  overflow:hidden;
}
.calendar-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-bottom:14px;
  color:#566276;
  font-weight:900;
}
.legend-dot{
  display:inline-block;
  width:11px;
  height:11px;
  border-radius:50%;
  margin-right:5px;
}
.legend-dot.pickup{background:#14613f;}
.legend-dot.return{background:#9b1c1c;}
.legend-dot.stay{background:#1d4ed8;}
.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
}
.weekday-row{
  background:#0b1b33;
  color:#fff;
  border-radius:16px 16px 0 0;
  overflow:hidden;
}
.weekday-row div{
  padding:12px;
  text-align:center;
  font-weight:1000;
}
.month-grid{
  border-left:1px solid #e5e9f2;
  border-top:1px solid #e5e9f2;
}
.calendar-day{
  min-height:170px;
  border-right:1px solid #e5e9f2;
  border-bottom:1px solid #e5e9f2;
  background:#fff;
  padding:9px;
}
.calendar-day.outside-month{
  background:#f7f9fc;
  opacity:.72;
}
.calendar-day.today{
  box-shadow:inset 0 0 0 2px #14613f;
  background:#f4fff8;
}
.calendar-day-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:8px;
}
.calendar-day-head strong{
  font-size:16px;
  color:#0b1b33;
}
.calendar-day-head span{
  font-size:11px;
  background:#14613f;
  color:#fff;
  border-radius:999px;
  padding:3px 7px;
  font-weight:900;
}
.calendar-items{
  display:grid;
  gap:6px;
}
.calendar-item{
  display:block;
  text-decoration:none;
  border-radius:12px;
  padding:7px;
  border:1px solid transparent;
  color:#0b1b33;
  background:#eef2f7;
}
.calendar-item:hover{
  filter:brightness(.98);
  transform:translateY(-1px);
}
.calendar-item.pickup{
  background:#e8f8ef;
  border-color:#bfe7d0;
}
.calendar-item.return{
  background:#fff0f0;
  border-color:#ffd0d0;
}
.calendar-item.stay{
  background:#eff6ff;
  border-color:#bfdbfe;
}
.calendar-item-type{
  display:inline-block;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:1000;
  margin-bottom:3px;
}
.calendar-item strong{
  display:block;
  font-size:12px;
  line-height:1.15;
}
.calendar-item small{
  display:block;
  color:#566276;
  font-size:11px;
  margin-top:2px;
}
.calendar-item em{
  display:block;
  color:#566276;
  font-size:10px;
  font-style:normal;
  margin-top:3px;
}
@media(max-width:1100px){
  .calendar-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-grid{min-width:980px}
  .calendar-panel{overflow:auto}
}
@media(max-width:700px){
  .calendar-nav{flex-direction:column}
  .calendar-summary{grid-template-columns:1fr}
}

/* v1.0.21 RV detail */
.link-strong{
  color:#0b1b33;
  font-weight:1000;
  text-decoration:none;
}
.link-strong:hover{
  text-decoration:underline;
}
.checkline{
  display:flex;
  gap:10px;
  align-items:center;
  padding:10px 0;
}
.checkline input{
  width:auto;
}
.checkline span{
  margin:0 !important;
}

/* v1.0.25 blocked dates */
.danger-link{
  color:#9b1c1c !important;
  border-color:#ffd0d0 !important;
  background:#fff7f7 !important;
}

/* v1.0.26 calendar blocked-date integration */
.legend-dot.blocked{background:#7c2d12;}
.calendar-item.blocked{
  background:#fff7ed;
  border-color:#fed7aa;
}
.calendar-summary{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
@media(max-width:1200px){
  .calendar-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .calendar-summary{grid-template-columns:1fr}
}

/* v1.0.27 system health */
.health-summary .health-ok strong{color:#14613f;}
.health-summary .health-warning strong{color:#a16207;}
.health-summary .health-fail strong{color:#9b1c1c;}
.health-panel{
  margin-top:18px;
}
.health-list{
  display:grid;
  gap:10px;
}
.health-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  padding:14px;
  border:1px solid #e5e9f2;
  border-radius:16px;
  background:#fff;
}
.health-row.status-ok{
  border-color:#bfe7d0;
  background:#f4fff8;
}
.health-row.status-warning{
  border-color:#fde68a;
  background:#fffbeb;
}
.health-row.status-fail{
  border-color:#ffd0d0;
  background:#fff7f7;
}
.health-main strong{
  display:block;
  color:#0b1b33;
  font-weight:1000;
}
.health-detail{
  display:block;
  margin-top:4px;
  color:#566276;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size:12px;
  white-space:pre-wrap;
  word-break:break-word;
}
.health-badge{
  flex:0 0 auto;
  border-radius:999px;
  padding:5px 9px;
  font-size:11px;
  font-weight:1000;
  background:#0b1b33;
  color:#fff;
}
.status-ok .health-badge{background:#14613f;}
.status-warning .health-badge{background:#a16207;}
.status-fail .health-badge{background:#9b1c1c;}
@media(max-width:800px){
  .health-row{flex-direction:column;}
}
