
:root{--ink:#172921;--muted:#64736b;--line:#e4e9e3;--green:#235c47;--light:#eff5ef;--cream:#f7f7f2;--gold:#bd9460;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:14px/1.45 Inter,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #bd9460;outline-offset:2px}.shell{display:grid;grid-template-columns:238px 1fr;min-height:100vh}.sidebar{background:#183c31;color:#e7eee8;padding:30px 20px;display:flex;flex-direction:column;gap:30px}.brand{display:flex;gap:11px;align-items:center}.mark{width:40px;height:40px;border:1px solid #c9aa78;border-radius:12px;display:grid;place-items:center;font:23px Georgia;color:#e7c896}.brand b{font-size:16px;letter-spacing:-.4px}.brand small{display:block;color:#b9cfc4;font-size:11px;letter-spacing:1.5px;text-transform:uppercase}.nav-label{color:#a4bdb0;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;padding:0 12px;margin-bottom:10px}.nav{display:flex;flex-direction:column;gap:5px}.nav button{background:none;border:0;text-align:left;color:#d8e7df;padding:12px;border-radius:9px;display:flex;align-items:center;gap:11px}.nav button.active,.nav button:hover{background:#2b5143;color:white}.nav i{font-style:normal;font-size:17px;width:20px;text-align:center}.side-bottom{margin-top:auto;border-top:1px solid #416456;padding-top:20px;color:#bbd0c5;font-size:12px}.side-bottom b{display:block;color:white;font-size:13px}.main{min-width:0;padding:28px 34px 30px;max-width:1660px;width:100%;margin:auto}.top{display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{text-transform:uppercase;color:var(--green);letter-spacing:1.6px;font-size:10px;font-weight:700}.top h1{font:36px/1.15 Georgia,serif;margin:6px 0 4px;letter-spacing:-1px}.muted{color:var(--muted);font-size:13px}.topright{display:flex;gap:12px;align-items:center}.chip{border:1px solid var(--line);background:white;border-radius:8px;padding:9px 12px;color:var(--muted);font-size:12px}.avatar{border-radius:50%;width:40px;height:40px;background:#e5eee5;color:var(--green);display:grid;place-items:center;font-weight:bold}.notice{margin-top:20px;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#edf3ec;border:1px solid #dce8dc;border-radius:10px;padding:11px 15px;color:#355a45;font-size:12px}.notice b{font-weight:700}.demo{font-size:11px;color:#64736b;white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:18px 0}.metric{border:1px solid var(--line);background:white;padding:17px 18px;border-radius:13px;min-width:0}.metric .title{display:flex;justify-content:space-between;gap:5px;color:var(--muted);font-size:12px}.metric .value{font-size:27px;font-weight:700;letter-spacing:-.8px;margin:8px 0 5px}.metric .detail{font-size:11px;color:var(--muted)}.metric .accent{color:var(--green);font-weight:700}.workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:16px;align-items:start}.panel{border:1px solid var(--line);background:white;border-radius:14px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 14px}.panel-head h2{font-size:17px;margin:0;letter-spacing:-.3px}.panel-head p{font-size:12px;color:var(--muted);margin:3px 0 0}.subtle{background:white;border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--green);font-size:12px;font-weight:600}.tabs{display:flex;gap:4px;padding:0 20px 10px;overflow:auto}.tabs button{background:none;border:0;color:var(--muted);font-size:12px;padding:7px 10px;white-space:nowrap;border-radius:7px}.tabs button.active{background:var(--light);font-weight:700;color:var(--green)}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;white-space:nowrap}thead{background:#f6f8f5;color:#738076;font-size:10px;text-transform:uppercase;letter-spacing:.5px}th,td{padding:12px 13px}th:first-child,td:first-child{padding-left:20px}tbody tr{border-top:1px solid #edf0eb;cursor:pointer}tbody tr:hover,tbody tr.selected{background:#f2f6f1}td b{display:block;font-size:13px}td small{display:block;color:var(--muted);font-size:11px}.status{display:inline-block;border-radius:20px;font-size:10px;font-weight:700;padding:5px 9px;background:#f2f3ef;color:#536157}.status.offer{background:#f9f0df;color:#8d692f}.status.pay{background:#e7edf7;color:#3d5d86}.status.ok{background:#e6f1e8;color:#356647}.status.closed{background:#f2efef;color:#6f6666}.action{border:0;background:transparent;color:var(--green);font-weight:700;font-size:12px}.detailbody{padding:0 20px 20px}.detail-id{font-size:11px;color:var(--muted);margin-bottom:12px}.guestline{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:13px;border-bottom:1px solid var(--line)}.guestline b{font-size:15px}.stayrow{display:flex;justify-content:space-between;gap:8px;margin:13px 0;font-size:12px;color:var(--muted)}.stayrow b{color:var(--ink)}.quote{background:#f5f7f3;border-radius:10px;padding:12px 14px;margin:13px 0}.qrow{display:flex;justify-content:space-between;margin:5px 0;color:var(--muted);font-size:12px;gap:10px}.qrow b{color:var(--ink)}.qrow.total{border-top:1px solid #dfe7dc;padding-top:8px;margin-top:8px;font-weight:700;color:var(--green)}.qrow.total b{color:var(--green);font-size:15px}.buttons{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.primary{background:var(--green);color:white;border:1px solid var(--green);border-radius:8px;padding:9px 12px;font-weight:700;font-size:12px}.outline{background:white;color:var(--green);border:1px solid #d5e1d6;border-radius:8px;padding:9px 12px;font-weight:700;font-size:12px}.danger{background:white;color:#875c50;border:1px solid #e7dad4;border-radius:8px;padding:9px 12px;font-size:12px}.hint{font-size:11px;color:var(--muted);margin-top:10px}.calendar{margin-top:16px}.cal-body{padding:0 20px 18px;overflow:auto}.days,.track{display:grid;grid-template-columns:116px repeat(10,minmax(43px,1fr));align-items:center;min-width:600px;gap:4px}.days{font-size:10px;text-align:center;color:#738076;margin-bottom:6px}.days span{padding:4px 0}.track{position:relative;grid-template-rows:35px}.prop{font-weight:700;font-size:12px}.cell{height:32px;background:#f5f6f2;border-radius:5px;grid-row:1}.bar{height:28px;border-radius:6px;z-index:1;grid-row:1;display:flex;align-items:center;padding:0 8px;font-size:10px;font-weight:700;overflow:hidden;white-space:nowrap}.confirmed{background:#dcebdd;color:#356347}.held{background:#f4e8d0;color:#8b682d}.legend{display:flex;gap:16px;font-size:11px;color:var(--muted);margin-top:10px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:#b3d1b5}.dot.gold{background:#d9bc82}.foot{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:14px}.empty{padding:28px;color:var(--muted)}.counterbox{margin-top:10px;display:flex;gap:8px}.counterbox input{width:115px;border:1px solid var(--line);border-radius:7px;padding:8px}.toast{position:fixed;right:25px;bottom:25px;background:#183c31;color:white;padding:13px 18px;border-radius:10px;box-shadow:0 6px 20px #0002;max-width:calc(100% - 50px);font-size:13px;z-index:5}.hidden{display:none!important}@media(max-width:1100px){.shell{grid-template-columns:190px 1fr}.main{padding:22px}.workspace{grid-template-columns:1fr}.metric{padding:14px}.sidebar{padding:23px 13px}.top h1{font-size:31px}}@media(max-width:700px){.shell{display:block}.sidebar{padding:15px;gap:12px}.nav-label,.side-bottom{display:none}.nav{flex-direction:row;overflow:auto}.nav button{white-space:nowrap;padding:8px;font-size:12px}.nav i{display:none}.main{padding:18px 13px}.metrics{grid-template-columns:1fr 1fr;gap:9px}.topright .chip{display:none}.top h1{font-size:29px}.notice{align-items:start}.demo{white-space:normal}.panel-head{padding:14px}.detailbody{padding:0 14px 15px}.tabs{padding:0 14px 10px}.foot{gap:10px}.metric .value{font-size:23px}}

/* ---- shared ---- */
.demo-bar{background:#bd9460;color:#1d2a22;font-size:12px;text-align:center;padding:6px 12px;line-height:1.35}
.demo-bar b{font-weight:800}
a{color:var(--green)}
.serif{font-family:Georgia,serif}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;padding:12px 16px;font-weight:700;font-size:14px;border:1px solid var(--green);text-decoration:none;cursor:pointer}
.btn.primary{background:var(--green);color:#fff}.btn.outline{background:#fff;color:var(--green);border-color:#cfdccf}.btn.gold{background:#bd9460;border-color:#bd9460;color:#fff}.btn.ghost{background:transparent;border-color:transparent;color:var(--green)}
.btn[disabled]{opacity:.45;cursor:not-allowed}.btn.block{width:100%}
.simbox{border:1px dashed #c9aa78;background:#fbf6ec;border-radius:12px;padding:14px;margin-top:16px}
.simbox h4{margin:0 0 4px;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:#8d692f}
.simbox p{margin:0 0 10px;font-size:12px;color:#6f5b3a}.simbox .row{display:flex;flex-wrap:wrap;gap:8px}
.simbox .btn{padding:9px 12px;font-size:12px}
/* ---- guest shell ---- */
.g-top{position:sticky;top:0;z-index:4;background:rgba(247,247,242,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.g-top .in{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;gap:12px}
.g-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.g-brand .mark{width:36px;height:36px;border:1px solid #c9aa78;border-radius:11px;display:grid;place-items:center;font:21px Georgia;color:#bd9460;background:#183c31}
.g-brand b{display:block;font-size:15px;letter-spacing:-.3px}.g-brand small{display:block;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}
.g-nav{display:flex;gap:6px;align-items:center}.g-nav a{font-size:13px;text-decoration:none;color:var(--muted);padding:8px 10px;border-radius:8px}.g-nav a:hover{background:#eef3ee;color:var(--green)}
.g-wrap{max-width:1180px;margin:auto;padding:22px}
.g-foot{max-width:1180px;margin:30px auto 0;padding:18px 22px 34px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px}
.eyebrow2{text-transform:uppercase;color:var(--green);letter-spacing:1.6px;font-size:11px;font-weight:700}
h1.g-h1{font:40px/1.1 Georgia,serif;letter-spacing:-1px;margin:6px 0 6px}
h2.g-h2{font:26px/1.2 Georgia,serif;letter-spacing:-.5px;margin:0 0 6px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:200px 200px;gap:8px;border-radius:18px;overflow:hidden;margin:16px 0 22px}
.gallery button{border:0;padding:0;background:#ddd;overflow:hidden;position:relative}.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.gallery button:hover img{transform:scale(1.03)}
.gallery .g0{grid-row:1/3}.gallery .more{position:absolute;right:10px;bottom:10px;background:#fff;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;color:var(--ink)}
.prop-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,1fr);gap:26px;align-items:start}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px}.facts span{background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 12px;font-size:13px}
.amen{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px;margin:12px 0}.amen div{display:flex;gap:9px;align-items:center;font-size:14px}.amen i{font-style:normal;width:28px;height:28px;border-radius:8px;background:#eef3ee;display:grid;place-items:center;color:var(--green);font-size:14px}
.section{margin:24px 0;padding-top:20px;border-top:1px solid var(--line)}.section h3{font-size:17px;margin:0 0 8px}
.bookbox{position:sticky;top:78px}.price{font-size:26px;font-weight:800;letter-spacing:-.6px}.price small{font-size:13px;font-weight:500;color:var(--muted)}
.sample{display:inline-block;background:#f9f0df;color:#8d692f;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;padding:3px 6px;vertical-align:middle}
.field{display:flex;flex-direction:column;gap:5px;margin:10px 0}.field label{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{border:1px solid #d9e1d8;border-radius:10px;padding:11px 12px;background:#fff;font-size:14px;color:var(--ink);width:100%}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cal{user-select:none}.cal-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.cal-h b{font-size:14px}.cal-h button{border:1px solid var(--line);background:#fff;border-radius:8px;width:32px;height:32px}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.cal-g .dn{font-size:10px;color:var(--muted);padding:4px 0;text-transform:uppercase}
.cal-g button{border:0;background:#fff;border-radius:8px;height:38px;font-size:13px;color:var(--ink);position:relative}
.cal-g button:hover:not([disabled]){background:#eef3ee}.cal-g button[disabled]{color:#c0c6bf;text-decoration:line-through;cursor:not-allowed;background:#f6f6f2}
.cal-g button.past{text-decoration:none}.cal-g button.sel{background:var(--green)!important;color:#fff}.cal-g button.rng{background:#dcebdd}.cal-g .blank{height:38px}
.cal-legend{display:flex;gap:12px;font-size:11px;color:var(--muted);margin-top:8px;flex-wrap:wrap}.cal-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.sum{background:#f5f7f3;border-radius:12px;padding:12px 14px;margin:12px 0}.sum .qrow{font-size:13px}
.err{color:#9b3d2a;font-size:13px;margin:8px 0}.ok{color:var(--green)}
.steps{display:flex;gap:6px;margin:4px 0 18px;flex-wrap:wrap}.steps span{font-size:11px;padding:6px 10px;border-radius:20px;background:#fff;border:1px solid var(--line);color:var(--muted)}.steps span.on{background:var(--green);color:#fff;border-color:var(--green)}.steps span.done{background:#e6f1e8;color:#356647;border-color:#cfe3d3}
.narrow{max-width:760px;margin:auto}
.mini-prop{display:flex;gap:14px;align-items:center;margin-bottom:14px}.mini-prop img{width:96px;height:72px;object-fit:cover;border-radius:10px}
.timeline{list-style:none;padding:0;margin:10px 0 0}.timeline li{position:relative;padding:0 0 12px 22px;font-size:13px}.timeline li:before{content:'';position:absolute;left:5px;top:6px;width:8px;height:8px;border-radius:50%;background:#bd9460}.timeline li:after{content:'';position:absolute;left:8.5px;top:16px;bottom:0;width:1px;background:#e3e0d5}.timeline li:last-child:after{display:none}.timeline small{display:block;color:var(--muted);font-size:11px}
.badge{display:inline-block;border-radius:20px;font-size:11px;font-weight:800;padding:5px 10px}.b-offer{background:#f9f0df;color:#8d692f}.b-pay{background:#e7edf7;color:#3d5d86}.b-ok{background:#e6f1e8;color:#356647}.b-x{background:#f2efef;color:#7a5a5a}
.bank{border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13px;background:#fff}.bank .qrow{font-size:13px}
.receipt{border:1px solid var(--line);border-radius:14px;background:#fff;padding:20px}
.pass{max-width:430px;margin:auto;border-radius:24px;overflow:hidden;background:#183c31;color:#eef4ef;box-shadow:0 20px 50px #183c3133}
.pass .ph{position:relative;height:170px}.pass .ph img{width:100%;height:100%;object-fit:cover;opacity:.85}.pass .ph:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#183c3100 30%,#183c31)}
.pass .ph .lbl{position:absolute;left:20px;bottom:12px;z-index:1}.pass .ph .lbl small{letter-spacing:1.6px;text-transform:uppercase;font-size:10px;color:#e7c896}.pass .ph .lbl b{display:block;font:26px Georgia,serif}
.pass .pb{padding:4px 20px 20px}.pass .row3{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.pass .row3 small{display:block;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#a9c3b6}.pass .row3 b{font-size:15px}
.pass .qr{background:#fff;border-radius:16px;padding:14px;display:flex;gap:14px;align-items:center;color:var(--ink);margin:14px 0}.pass .qr img{width:120px;height:120px;image-rendering:pixelated}
.pass .tear{border-top:2px dashed #3d6656;margin:14px -20px;}
.pass .info{font-size:13px;color:#d6e4dc}.pass .info div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #2c5244}.pass .info b{color:#fff;text-align:right}
.qrcard{max-width:520px;margin:auto;text-align:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px}
.qrcard img.code{width:260px;height:260px;image-rendering:pixelated}
.hub{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.hub a{text-decoration:none;color:var(--ink)}.hub .card:hover{border-color:#c9aa78}
.hub .card b{display:block;font-size:15px;margin-bottom:4px}.hub .card span{font-size:13px;color:var(--muted)}
.lightbox{position:fixed;inset:0;background:#0d1a14ee;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px}.lightbox img{max-width:100%;max-height:86vh;border-radius:12px}.lightbox button{position:absolute;top:14px;right:14px;background:#fff;border:0;border-radius:20px;padding:8px 14px;font-weight:700}
.dash-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.flag{background:#fbeee9;color:#8a4a36;border-radius:8px;padding:8px 10px;font-size:12px;margin-top:8px}
.audit{max-height:200px;overflow:auto;margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.cal-nav{display:flex;gap:6px}
@media(max-width:900px){.prop-grid{grid-template-columns:1fr}.bookbox{position:static}.hub{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.g-wrap{padding:14px}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:220px 110px;gap:5px;border-radius:14px}.gallery .g0{grid-column:1/3;grid-row:1}.gallery .g3,.gallery .g4{display:none}h1.g-h1{font-size:30px}.amen{grid-template-columns:1fr}.g-nav a.hide-m{display:none}.hub{grid-template-columns:1fr}.g-top .in{padding:10px 14px}.qrcard img.code{width:220px;height:220px}}
.mbar{display:none}@media(max-width:900px){.mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:6;background:#fff;border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:10px;box-shadow:0 -6px 20px #0001}.mbar small{display:block;color:var(--muted);font-size:11px}.mbar .btn{padding:11px 18px}.g-foot{padding-bottom:90px}}
.mini-prop img{flex:none}