:root{--dark:#151716;--gold:#c7a46a;--cream:#f7f4ee;--paper:#fffdfa;--muted:#807d76;--line:#e9e2d8;--green:#387b59}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:#252520;font:13px/1.5 Arial,Helvetica,sans-serif}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.app{display:flex;min-height:100vh}.sidebar{width:255px;flex:0 0 255px;background:var(--dark);color:#f3eee5;padding:28px 16px;min-height:100vh;display:flex;flex-direction:column}.brand,a.brand,a.brand:link,a.brand:visited{text-align:center;color:var(--gold);font:34px Georgia,serif;letter-spacing:2px;text-decoration:none;display:block}.brand:hover,a.brand:hover{color:#e8c18c}.brand small{display:block;font:11px Arial,sans-serif;letter-spacing:5px;margin:5px 0 26px}.subbrand{text-align:center;color:#c6b9a8;margin-bottom:18px}#nav{display:grid;gap:3px}.nav-item{padding:11px;border-radius:8px;color:#e8e4dc;text-align:left;background:transparent;border:0;display:flex;gap:12px;align-items:center}.nav-item:hover,.nav-item.active{background:#39362e;color:#f2d29d}.nav-icon{width:22px;color:var(--gold);font-size:17px}.side-photo{margin-top:auto;min-height:148px;border-radius:12px;background:linear-gradient(180deg,#151716cc,#15171644),url(assets/luxury/listing-ocean-2.jpg) center/cover no-repeat,#263f4c;box-shadow:inset 0 0 0 1px #ffffff14}.motto{padding:16px 10px 8px;border-top:0;color:var(--gold)}.motto strong{font:20px Georgia,serif}.motto p{font-size:11px;color:#aaa59e}.workspace{flex:1;min-width:0}.topbar{background:var(--dark);height:67px;color:#fff;display:flex;align-items:center;justify-content:flex-end;gap:15px;padding:0 24px}.search{background:#242624;border:1px solid #42423e;border-radius:22px;padding:10px 16px;display:flex;align-items:center;gap:9px;width:min(410px,100%)}.search input{border:0;outline:0;background:transparent;color:#fff;width:100%;min-width:0}.avatar{border-radius:50%;background:url(assets/luxury/listing-interior-1.jpg) center 22%/cover no-repeat,#3c3830;color:transparent;width:35px;height:35px;display:grid;place-items:center;border:2px solid var(--gold);box-shadow:0 0 0 1px #ffffff22;flex-shrink:0}.topbar #menu{display:none}.hero{background:linear-gradient(90deg,#141816f2 0%,#141816b8 42%,#14181655 72%,#14181622 100%),url(assets/luxury/hero-ocean.jpg) center 48%/cover no-repeat,#0a0d14;color:#fff;padding:36px 34px;min-height:220px;position:relative;overflow:hidden}.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:36px;background:linear-gradient(180deg,transparent,var(--cream))}.eyebrow{font-size:10px;letter-spacing:3px;color:#dfbd8a}.hero h1{font:46px Georgia,serif;color:#e8ca98;margin:3px 0}.hero h2{font:23px Georgia,serif;margin:0}.hero>p:last-child{color:#e4ddd3}main{padding:16px;max-width:1900px;margin:auto}.demo{background:#f7eacd;color:#765225;border:1px solid #e5cda4;border-radius:8px;padding:10px 13px;margin-bottom:13px;font-size:11px}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.kpi,.panel{background:var(--paper);border-radius:12px;border:1px solid var(--line);box-shadow:0 7px 20px #3327100b}.kpi{padding:16px;display:flex;gap:12px;align-items:center}.kpi-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#f5e8d3;color:#986a32;font-size:22px;flex-shrink:0}.kpi-label{font-size:11px;color:#6e6b65}.kpi strong{display:block;font-size:24px}.kpi small{font-size:10px;color:var(--green)}.top-grid{display:grid;grid-template-columns:1.45fr .95fr .85fr;gap:12px;margin-top:13px}.bottom-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:12px;margin-top:12px}.panel{padding:18px;min-width:0}.panel h2,.panel-head h2{font:20px Georgia,serif;margin:0 0 14px}.panel-head h2{margin:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-head button{background:none;border:0;color:#987040;font-size:11px}.muted{color:var(--muted)}.chart{height:190px;border-bottom:1px solid var(--line);display:flex;gap:7px;align-items:flex-end;padding:10px 8px}.chart-item{flex:1;text-align:center;color:#999;font-size:10px}.bars{height:160px;display:flex;justify-content:center;align-items:flex-end;gap:3px}.bar{width:12px;background:var(--gold);border-radius:4px 4px 0 0}.bar.service{background:#30383b}.legend{font-size:10px;color:var(--muted);text-align:right;padding:10px}.donut{width:154px;height:154px;border-radius:50%;background:conic-gradient(#4fa16f 0 48%,#377da6 48% 70%,#cf9b4d 70% 86%,#35383a 86% 95%,#c66d58 95%);display:grid;place-items:center;margin:8px auto 15px}.donut-center{width:105px;height:105px;border-radius:50%;background:white;display:grid;place-content:center;text-align:center}.donut-center strong{font-size:26px}.donut-center small{font-size:10px;color:var(--muted)}.status-row{display:flex;justify-content:space-between;padding:6px 0;font-size:11px}.badge{border-radius:15px;padding:5px 8px;background:#f4e6cc;color:#77551c;font-size:10px}.badge.new{background:#fae2b9}.badge.progress{background:#dceafb;color:#245781}.badge.assigned{background:#e3daf6;color:#604488}.badge.completed{background:#ddf0df;color:#27693c}.quick{display:grid;gap:9px}.quick button{background:#faf6ee;border:1px solid var(--line);border-radius:7px;padding:10px;text-align:left}.quick button:hover{background:#f1e3ca}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:490px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px 7px;font-size:11px}th{background:#f5f0e8}.vendor{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.vendor-icon{border-radius:9px;background:#f1dfc5;width:40px;height:40px;display:grid;place-items:center;font-size:21px}.vendor-name{flex:1}.vendor-name strong,.vendor-name small{display:block}.vendor-name small{color:var(--muted)}.unavailable{font:30px Georgia,serif;color:#8b6e4e}.module-table{overflow:auto}.module-table button{border:1px solid #d8c09d;border-radius:6px;background:#f4ead9;padding:7px;color:#695028;margin:2px}.hidden{display:none!important}footer{font-size:10px;color:#a09a91;padding:23px 2px}#notice{position:fixed;right:15px;bottom:15px;background:#252725;color:white;padding:12px;border-radius:8px;display:none}@media(max-width:1400px){.kpis{grid-template-columns:repeat(3,1fr)}.top-grid{grid-template-columns:1fr 1fr}.top-grid>article:first-child{grid-column:1/-1}}@media(max-width:950px){.sidebar{position:fixed;left:0;top:0;height:100vh;overflow:auto;z-index:100;transform:translateX(-110%);transition:transform .2s}.sidebar.open{transform:none}.topbar #menu{display:block;color:white;background:#373a35;border:0;border-radius:7px;padding:8px}.top-grid,.bottom-grid{grid-template-columns:1fr}.top-grid>article:first-child{grid-column:auto}}@media(max-width:580px){main{padding:10px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:10px}.kpi-icon{display:none}.topbar .admin{display:none}.hero{padding:23px}.hero h1{font-size:34px}.chart{gap:2px}.bar{width:8px}}

.arrivals-photo,.revenue-photo{height:110px;border-radius:10px;margin:-6px 0 14px;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px #00000010}
.arrivals-photo{background-image:linear-gradient(180deg,rgba(20,24,22,.05),rgba(20,24,22,.45)),url(assets/luxury/listing-villa-1.jpg);background-color:#2c595f}
.revenue-photo{background-image:linear-gradient(180deg,rgba(20,24,22,.08),rgba(20,24,22,.5)),url(assets/luxury/listing-pool-1.jpg);background-color:#3a4038}
.vendor-icon.photo{background-size:cover;background-position:center;color:transparent;border:1px solid var(--line);box-shadow:inset 0 0 0 1px #ffffff22}
.vendor-icon.photo.chef{background-image:url(assets/luxury/svc-chef.jpg)}
.vendor-icon.photo.transport{background-image:url(assets/luxury/svc-transport.jpg)}
.vendor-icon.photo.spa{background-image:url(assets/luxury/svc-special.jpg)}
.vendor-icon.photo.yacht{background-image:url(assets/luxury/svc-tours.jpg)}
.vendor-icon.photo.house{background-image:url(assets/luxury/svc-housekeeping.jpg)}
.kpi-icon.photo{background-size:cover;background-position:center;color:transparent;border:1px solid #e8d7b8}
.kpi-icon.photo.res{background-image:url(assets/luxury/listing-villa-1.jpg)}
.kpi-icon.photo.stays{background-image:url(assets/luxury/harborline-l32.webp)}
.kpi-icon.photo.conc{background-image:url(assets/luxury/svc-chef.jpg)}
.kpi-icon.photo.vend{background-image:url(assets/luxury/svc-transport.jpg)}
.kpi-icon.photo.rev{background-image:url(assets/luxury/listing-night-1.jpg)}
.demo{font-weight:600;letter-spacing:.2px;box-shadow:0 1px 0 #fff8}
@media(max-width:950px){.side-photo{min-height:120px}.arrivals-photo,.revenue-photo{height:96px}}
@media(max-width:580px){.hero{min-height:190px;padding:24px}.hero h1{font-size:34px}.side-photo{display:none}.avatar{display:none}}

/* Mobile proposal 2026-10-26 — ops touch + safe-area (F1) */
@media (max-width: 950px) {
  .topbar #menu {
    min-width: 44px;
    min-height: 44px;
    padding: 10px 12px;
    display: inline-grid;
    place-items: center;
  }
  .search input,
  #search {
    min-height: 44px;
  }
  .panel-head button,
  .quick button,
  .module-table button {
    min-height: 44px;
    padding: 10px 12px;
  }
}
@supports (padding: env(safe-area-inset-top)) {
  .topbar {
    padding-left: max(15px, env(safe-area-inset-left));
    padding-right: max(15px, env(safe-area-inset-right));
    padding-top: env(safe-area-inset-top);
  }
  .sidebar {
    padding-top: max(28px, calc(28px + env(safe-area-inset-top)));
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
  #notice {
    bottom: max(15px, env(safe-area-inset-bottom));
    right: max(15px, env(safe-area-inset-right));
  }
}

/* Mobile proposal 2026-10-26 — vendor CTA touch (F3) */
@media (max-width: 900px) {
  .actions button,
  .job .actions button {
    min-height: 44px;
    min-width: 44px;
    padding: 10px 14px;
  }
}
/* P1 honesty — disabled ops nav modules */
#nav button.nav-disabled, nav button.nav-disabled { opacity: .72; }
#nav button.nav-disabled small, nav button.nav-disabled small { color: #b08950; font-size: 10px; }


/* site-logo-replace-20261028 — desktop horizontal mark in sidebar */
a.brand.brand--logo,a.brand.brand--logo:link,a.brand.brand--logo:visited{
  display:flex;justify-content:center;align-items:center;padding:0 0 8px;margin:0;
  color:transparent;font-size:0;letter-spacing:0;line-height:0;text-decoration:none;text-align:center
}
a.brand.brand--logo picture{display:block;line-height:0;margin:0 auto}
a.brand.brand--logo .brand-logo{
  display:block;height:48px;width:auto;max-width:100%;margin:0 auto;object-fit:contain;object-position:center
}
@media (max-width:950px){
  /* mobile/drawer: keep compact prior asset via picture media; size unchanged intent */
  a.brand.brand--logo .brand-logo{height:36px;max-width:min(180px,70vw)}
}
