:root{--bg:#111315;--panel:#191c1f;--panel2:#202428;--panel3:#272c31;--line:#343a40;--line2:#465058;--text:#f0f2f3;--muted:#aab2b8;--accent:#2e8b57;--accent2:#3da66b;--accent-rgb:46,139,87;--danger:#c65353;--warn:#c59a38;}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Segoe UI,Arial,sans-serif;color:var(--text)}button,input,select,textarea{font:inherit}.app{background:#0d0f10}.shell{padding:10px;min-height:100vh}.panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 28px rgba(0,0,0,.28)}.app-panel{min-height:calc(100vh - 20px);display:grid;grid-template-columns:188px minmax(0,1fr);overflow:hidden}.sidebar{padding:14px 10px;border-right:1px solid var(--line);background:#151719;display:flex;flex-direction:column;gap:18px}.brand-block{display:flex;gap:10px;align-items:center;padding:4px 5px}.brand-mark{width:42px;height:42px;border-radius:6px;background:var(--accent);display:grid;place-items:center;font-weight:900;border:1px solid #4ab176}.brand-title{font-weight:800}.brand-sub{font-size:11px;color:var(--muted);margin-top:2px}nav{display:flex;flex-direction:column;gap:5px}.nav-btn{border-radius:5px;padding:10px 11px;border:1px solid transparent;background:transparent;color:var(--muted);font-weight:650;text-align:left;display:flex;gap:9px;align-items:center;cursor:pointer}.nav-btn:hover{background:#202326;color:var(--text)}.nav-btn.active{border-color:#3f594b;background:#21352a;color:#fff}.nav-icon{width:19px;text-align:center}.test-pill{margin-top:auto;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:5px;border:1px solid #3f594b;background:#1b2d23;font-size:10px;font-weight:800;letter-spacing:.06em}.dot{width:8px;height:8px;border-radius:50%;background:#59636b}.dot.on{background:#42bb76}.main{padding:14px;min-width:0}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:2px 2px 12px;border-bottom:1px solid var(--line);margin-bottom:13px}.brand .title{font-size:21px;font-weight:800}.brand .subtitle{color:var(--muted);font-size:12px;margin-top:3px}.pill{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:5px;border:1px solid var(--line);background:#151719;color:var(--muted);font-size:12px}.page{display:none}.active-page{display:block}.sectionTitle{font-size:11px;letter-spacing:.9px;text-transform:uppercase;color:var(--muted);margin:0 0 9px}.small{color:var(--muted);font-size:12px}.card{background:#17191b;border:1px solid var(--line);border-radius:7px;padding:12px}.input{background:#202428;border:1px solid #3a4147;color:var(--text);border-radius:5px;padding:9px 10px;font-size:13px;outline:none}.input:focus{border-color:#4b8d68;box-shadow:0 0 0 2px rgba(var(--accent-rgb),.14)}.btn{border-radius:5px;padding:9px 12px;font-weight:650;border:1px solid #454b50;background:#2a2e32;color:var(--text);cursor:pointer}.btn:hover{background:#33383d}.btn.green{background:#287c4d;border-color:#3d9e65}.btn.green:hover{background:#32945d}.btn.ghost{background:#23272a}.btn.danger{background:#4c2929;border-color:#774040}.btn.compact{padding:6px 9px;font-size:12px}.toggleGroup{display:flex;gap:6px}.optBtn{border-radius:5px;padding:7px 11px;border:1px solid #454b50;background:#23272a;color:var(--text)}.optBtn.active{border-color:#3f7657;background:#20382a}.action-row,.section-bar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.date-controls{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.calendar-card{padding:0;overflow:hidden}.card-head{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:end}.card-title{font-size:17px;font-weight:800}.legend{display:flex;gap:12px;color:var(--muted);font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.available{background:#d9dfe3}.legend-dot.booked{background:#3da66b}.legend-dot.passed{background:#6d777f}.calendar-scroll{overflow:auto}.calendar{display:grid;position:relative;min-width:900px}.cal-head{background:#202428;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px;color:#6cc58f;font-weight:750;position:sticky;top:0;z-index:5}.cal-head.time{color:var(--muted)}.time-col,.room-col{position:relative;border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,rgba(255,255,255,.055) 60px);min-height:720px}.hour-label{position:absolute;right:7px;transform:translateY(-8px);font-size:11px;color:var(--muted)}.slot{position:absolute;left:4px;right:4px;border-radius:5px;border:1px solid #475058;padding:6px 8px;overflow:hidden;cursor:pointer;background:#2a2e32;color:var(--text)}.slot:hover{border-color:#5da479;z-index:3}.slot.available{background:#e4e8eb;color:#233042;border-color:#f1f3f5}.slot.booked,.slot.paid,.slot.deposit-paid{background:#224633;border-color:#3c7757}.slot.passed{background:#3b4248}.slot.blocked{background:#51431f;border-color:#7e672b}.slot.cancelled{background:#442727;border-color:#704040;opacity:.72}.slot .tiny{font-size:10px;opacity:.78;display:block;margin-bottom:3px}.now-line{position:absolute;height:1px;background:#dd5151;z-index:4;pointer-events:none}.now-line:before{content:"";position:absolute;left:-4px;top:-4px;border-left:6px solid #dd5151;border-top:4px solid transparent;border-bottom:4px solid transparent}
.roomGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.roomCard{border:1px solid var(--line);background:#17191b;border-radius:7px;overflow:hidden}.roomCard.inactive{opacity:.58}.room-card-image{height:145px;background-size:cover;background-position:center;border-bottom:1px solid var(--line)}.room-card-image.placeholder{display:grid;place-items:center;background:#24282b;color:#506059;font-size:32px;font-weight:900}.room-card-body{padding:12px}.roomName{font-weight:800;font-size:17px}.roomMeta{color:var(--muted);font-size:11px;margin-top:4px}.difficulty{color:#d9b54a;letter-spacing:2px;font-size:13px;margin-top:7px}.room-desc{color:#c7ccd0;font-size:12px;line-height:1.45;margin-top:8px;min-height:34px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.room-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}.stat{background:#202326;border:1px solid var(--line);border-radius:5px;padding:8px}.stat strong{display:block;font-size:14px}.stat span{font-size:9px;color:var(--muted)}.room-actions{display:flex;gap:7px;margin-top:10px}.room-actions .btn{flex:1}.publish-summary{border-top:1px solid var(--line);padding-top:9px;color:var(--muted);font-size:11px}.publish-summary small{display:block;margin-top:3px}.published-text{color:#6cc58f;font-weight:700}.unpublished-text{color:#d8a850;font-weight:700}
.table-card{padding:0;overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);font-size:12px}th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}tbody tr:hover{background:#202326}.settings-card{max-width:850px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid label,.schedule-mode-row label,.closure-row label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:11px}.form-grid .full{grid-column:1/-1}.checkbox-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;color:var(--text)!important}.notice{margin-top:13px;padding:11px;border-radius:5px;background:#1b2d23;border:1px solid #3d5c49;color:#cdebd9;font-size:11px}.footer-actions{display:flex;justify-content:flex-end;margin-top:12px}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.75);display:grid;place-items:center;padding:14px;z-index:100}.hidden{display:none!important}.modal{width:min(760px,97vw);background:#181b1e;border:1px solid #454b50;border-radius:8px;box-shadow:0 28px 90px rgba(0,0,0,.62);overflow:hidden}.room-modal{width:min(1120px,98vw);height:min(900px,96vh);display:flex;flex-direction:column}.modal-head{padding:13px 15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;background:#202326}.modal-head h3{margin:0;font-size:17px}.modal-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.modal-grid{padding:15px}.modal-actions{border-top:1px solid var(--line);padding:11px 14px;display:flex;gap:8px;background:#202326}.spacer{flex:1}.icon-only{width:35px;height:35px;padding:0}.error{margin:0 15px 12px;padding:9px 11px;border-radius:5px;background:#482626;border:1px solid #7a4141;color:#ffd0d0;font-size:11px}.toast{position:fixed;right:18px;bottom:18px;z-index:200;background:#1c2821;border:1px solid #3d6b50;box-shadow:0 15px 35px rgba(0,0,0,.4);padding:10px 12px;border-radius:5px;font-size:11px}
.room-editor-scroll{overflow:auto;padding:14px;flex:1}.room-editor-scroll+.error{flex:none}.room-modal form{display:flex;flex-direction:column;min-height:0;flex:1}.editor-section{border:1px solid var(--line);background:#151719;border-radius:6px;padding:13px;margin-bottom:11px}.editor-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#d9dddf;margin-bottom:10px}.editor-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.room-detail-grid{display:grid;grid-template-columns:220px 1fr;gap:14px}.graphic-field{display:grid;gap:7px;align-content:start}.graphic-preview{height:180px;border:1px dashed #4c555c;background:#202326;border-radius:5px;display:grid;place-items:center;color:var(--muted);overflow:hidden}.graphic-preview img{width:100%;height:100%;object-fit:cover}.upload-btn{text-align:center;position:relative;overflow:hidden}.upload-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.schedule-mode-row{display:grid;grid-template-columns:220px 1fr 1fr;gap:10px;margin-bottom:11px}.schedule-help{margin-bottom:8px}.room-schedule-days{display:grid;gap:7px}.room-day{border:1px solid var(--line);background:#1d2023;border-radius:5px;padding:9px}.room-day.closed{opacity:.62}.room-day-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.room-day-head .checkbox-row span{font-weight:750;min-width:85px}.day-slot-add{display:flex;gap:6px;align-items:center}.day-slot-add .input{padding:6px 7px}.time-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;min-height:28px;align-items:center}.time-chip{border:1px solid #4a5a50;background:#20352a;color:#d9eee1;border-radius:4px;padding:5px 7px;cursor:pointer}.time-chip span{margin-left:6px;color:#9fcbb0}.publish-badge{padding:6px 8px;border-radius:4px;font-size:10px;font-weight:800}.publish-badge.published{background:#203a2b;border:1px solid #3b7254;color:#7fd09c}.publish-badge.draft{background:#43371d;border:1px solid #715d2c;color:#e6c665}.closure-list{display:grid;gap:7px}.closure-row{display:grid;grid-template-columns:150px 150px 1fr auto;gap:8px;align-items:end;border:1px solid var(--line);background:#1d2023;border-radius:5px;padding:8px}.empty-closures{padding:8px 0}
@media(max-width:900px){.shell{padding:5px}.app-panel{grid-template-columns:68px 1fr}.sidebar{padding:9px 6px}.brand-block>div:last-child,.nav-btn span:last-child{display:none}.brand-block{justify-content:center}.nav-btn{justify-content:center}.test-pill{font-size:0;justify-content:center}.main{padding:9px}.header{flex-direction:column}.action-row,.section-bar{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:1}.card-head{flex-direction:column;align-items:flex-start}.room-detail-grid{grid-template-columns:1fr}.graphic-field{grid-template-columns:1fr auto auto}.graphic-preview{grid-column:1/-1}.schedule-mode-row{grid-template-columns:1fr}.closure-row{grid-template-columns:1fr}.room-stats{grid-template-columns:1fr 1fr}.modal-actions{flex-wrap:wrap}.spacer{display:none}.modal-actions .btn{flex:1}.editor-title-row{flex-direction:column}}
.pricing-help{margin:11px 0 8px}.price-tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.price-tier{border:1px solid var(--line);background:#1d2023;border-radius:5px;padding:8px}.price-tier>span{display:block;font-size:11px;font-weight:750;margin-bottom:5px}.price-input-wrap{display:flex;align-items:center;gap:6px}.price-input-wrap>span{color:var(--muted);font-weight:800}.price-input-wrap .input{min-width:0}
/* v0.3.2 compact/minimal benchmark */
.roomGrid{grid-template-columns:repeat(auto-fill,minmax(190px,240px));gap:10px}.compact-room-card{padding:7px}.compact-room-card .room-card-image{height:125px;border:1px solid var(--line);border-radius:5px}.room-edit-only{width:100%;margin-top:7px;padding:7px 9px}.room-editor-scroll{padding:9px}.editor-section{padding:9px;margin-bottom:7px}.editor-title{font-size:11px;margin-bottom:7px}.room-detail-grid{grid-template-columns:170px 1fr;gap:9px}.graphic-preview{height:130px}.form-grid{gap:7px}.form-grid label,.schedule-mode-row label,.closure-row label{gap:3px;font-size:10px}.input{padding:6px 8px;font-size:12px}.btn{padding:7px 10px;font-size:12px}.modal-head{padding:9px 12px}.modal-head h3{font-size:15px}.modal-actions{padding:8px 10px}.room-modal{height:min(850px,96vh)}.schedule-mode-row{grid-template-columns:180px 1fr 1fr;gap:7px;margin-bottom:7px}.room-schedule-days{gap:4px}.room-day{padding:6px}.room-day-head .checkbox-row span{min-width:70px;font-size:11px}.time-chips{margin-top:4px;min-height:22px;gap:4px}.time-chip{padding:3px 6px;font-size:11px}.day-slot-add .input{padding:4px 6px}.price-tier-grid{gap:5px!important}.price-tier{padding:6px!important}.quick-slots{border:1px solid var(--line);background:#1d2023;border-radius:5px;padding:7px;margin-bottom:6px}.quick-days{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:6px}.quick-days label{font-size:10px;color:var(--text);display:flex;gap:4px;align-items:center}.quick-slot-row{display:flex;gap:6px;align-items:end;flex-wrap:wrap}.quick-slot-row label{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:10px}.quick-slot-row .input{width:105px}.quick-slot-row #quickInterval{width:75px}.closure-row{padding:6px}.publish-badge{padding:4px 6px}.pricing-help,.schedule-help{display:none}
.ticket-types{display:grid;gap:8px;margin-top:8px}.ticket-card{border:1px solid var(--line);border-radius:12px;padding:9px;background:rgba(255,255,255,.018)}.ticket-head{display:flex;gap:7px;align-items:end;flex-wrap:wrap}.ticket-head label:first-child{flex:1;min-width:150px}.ticket-head label{font-size:11px}.ticket-options{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:7px;margin-top:7px}.ticket-checks{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:7px}.ticket-checks label{display:flex;align-items:center;gap:5px;font-size:11px}.ticket-prices{margin-top:7px}.ticket-prices .price-tier-grid{margin-top:0}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.slot.call-to-book{border-color:rgba(202,164,58,.55);background:rgba(202,164,58,.14)}@media(max-width:760px){.ticket-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v0.3.5 compact slot -> booking flow */
.slot-modal{width:min(520px,96vw)}.slot-body,.booking-body{padding:10px}.slot-body label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:10px}.booking-modal{width:min(650px,97vw)}.booking-section{border-top:1px solid var(--line);margin-top:9px;padding-top:9px}.booking-tickets{display:grid;gap:5px}.booking-ticket-row{display:grid;grid-template-columns:1fr 90px;gap:8px;align-items:center;border:1px solid var(--line);background:#1d2023;border-radius:5px;padding:6px 8px}.booking-ticket-row strong{display:block;font-size:12px}.booking-ticket-row span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.booking-ticket-row .input{width:90px}.booking-total{display:flex;justify-content:space-between;gap:12px;margin-top:7px;padding:7px 8px;background:#202326;border-radius:5px;font-size:11px}.booking-total strong{margin-left:5px;color:var(--text)}

/* v0.3.6 basket holds, notes and check-in */
.slot{display:flex;gap:8px}.slot-main{min-width:0;flex:1}.slot-note{margin-left:auto;max-width:48%;font-size:10px;line-height:1.25;text-align:right;white-space:normal;overflow:hidden;opacity:.9}.slot.held{background:#713b3b;border-color:#b96666}.slot.booking-blue{background:#214b75;border-color:#397bb7}.slot.checked-in{background:#205b39;border-color:#3d9560}.legend-dot.booked{background:#397bb7}.basket-checkout-list{display:grid;gap:7px;margin-bottom:10px}.basket-item{border:1px solid var(--line);background:#1d2023;border-radius:5px;padding:8px}.basket-item-head{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}.basket-item-head span{font-size:10px;color:var(--muted)}.basket-ticket-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:7px}.basket-ticket-grid label{font-size:10px;color:var(--muted);display:flex;flex-direction:column;gap:3px}.basket-item-total{text-align:right;font-size:11px;font-weight:700;margin-top:6px}#basketGrandTotal{margin-right:8px}@media(max-width:700px){.basket-ticket-grid{grid-template-columns:1fr 1fr}.basket-item-head{grid-template-columns:1fr auto}.basket-item-head span{grid-column:1/-1}}

.slot-note-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.slot-note-chip{display:inline-flex;align-items:center;gap:7px;background:#24282b;border:1px solid #41484e;border-radius:5px;padding:5px 7px;font-size:12px}.slot-note-chip button{border:0;background:transparent;color:#cbd3d9;cursor:pointer;padding:0 2px;font-size:14px;line-height:1}.slot-note-chip button:hover{color:#fff}.room-col{cursor:crosshair}

/* v0.3.10 slide menu */
.app-panel{grid-template-columns:0 minmax(0,1fr);position:relative;overflow:visible;transition:grid-template-columns .18s ease}.app-panel.sidebar-open{grid-template-columns:188px minmax(0,1fr)}.sidebar{position:relative;left:auto;top:auto;bottom:auto;width:188px;z-index:40;transform:translateX(-188px);transition:transform .18s ease;box-shadow:8px 0 22px rgba(0,0,0,.34)}.app-panel.sidebar-open .sidebar{transform:translateX(0)}.menu-toggle{position:absolute;top:12px;right:-34px;width:34px;height:38px;border:1px solid var(--line);border-left:0;border-radius:0 5px 5px 0;background:#202428;color:var(--text);cursor:pointer;font-size:17px;font-weight:800;display:grid;place-items:center;z-index:41}.menu-toggle:hover{background:#2a2e32}.main{width:100%}.room-col{cursor:default}@media(max-width:900px){.app-panel{grid-template-columns:0 minmax(0,1fr)}.app-panel.sidebar-open{grid-template-columns:188px minmax(0,1fr)}.sidebar{width:188px;padding:14px 10px}.brand-block>div:last-child,.nav-btn span:last-child{display:block}.brand-block{justify-content:flex-start}.nav-btn{justify-content:flex-start}.test-pill{font-size:10px;justify-content:flex-start}}
/* v0.4.0 promo codes + gift cards */
.compact-list{display:grid;gap:7px;max-width:900px}.compact-row{width:100%;display:grid;grid-template-columns:1.2fr .8fr 1.2fr .7fr;gap:10px;align-items:center;text-align:left;color:var(--text);cursor:pointer}.compact-row span{font-size:11px;color:var(--muted)}.choice-row{display:flex;gap:10px;flex-wrap:wrap;margin:7px 0 10px}.choice-row label{display:flex;align-items:center;gap:4px;font-size:11px}.empty-compact{color:var(--muted);font-size:12px;padding:8px}.checkout-adjustments{display:grid;gap:4px;margin-top:7px}.adjustment-line{font-size:11px;padding:5px 7px;background:#202326;border-radius:4px}.gift-history{display:grid;gap:4px;margin-top:10px;max-height:190px;overflow:auto}.history-row{display:grid;grid-template-columns:115px 80px 1fr;gap:7px;padding:5px;border-bottom:1px solid var(--line);font-size:10px}.history-row span{color:var(--muted)}

/* v0.4.1 safer modals, checkout codes and booking transaction history */
.top-header{padding-left:42px}
.code-entry{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:5px;align-items:center;margin-top:4px}.code-tick{height:31px;border:1px solid #3d6b50;background:#1f3b2a;color:#a9e7bd;border-radius:5px;cursor:pointer;font-weight:900;font-size:15px}.code-tick:hover{background:#285039}.checkout-code-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checkout-code-grid>div>label{font-size:10px;color:var(--muted)}.applied-code{display:inline-flex;align-items:center;gap:7px;margin-top:5px;padding:4px 6px;border:1px solid #3d6b50;background:#1d3225;border-radius:4px;font-size:10px}.applied-code button{border:0;background:transparent;color:#d4ddd7;cursor:pointer;padding:0;font-size:13px}.applied-code button:hover{color:#fff}.payment-manual{margin-top:9px}.adjustment-line{display:flex;justify-content:space-between;gap:10px}.transaction-history{display:grid;gap:4px}.transaction-row{display:flex;justify-content:space-between;gap:12px;padding:6px 8px;background:#202326;border:1px solid var(--line);border-radius:4px;font-size:11px}.transaction-row span{color:var(--muted)}.transaction-row.credit strong{color:#9fd9b2}.transaction-row.due{border-color:#4b555d}.transaction-empty{font-size:11px;color:var(--muted)}
@media(max-width:700px){.checkout-code-grid{grid-template-columns:1fr}.top-header{padding-left:42px}}

/* v0.4.2 basket override + email templates */
.email-layout{display:grid;grid-template-columns:minmax(230px,320px) minmax(0,1fr);gap:10px;align-items:start}.email-template-list .compact-row{grid-template-columns:1fr auto}.email-template-row.selected{border-color:rgba(var(--accent-rgb),.65);background:rgba(var(--accent-rgb),.08)}.email-editor-card{padding:10px}.email-toolbar{display:flex;gap:4px;flex-wrap:wrap;margin:9px 0 6px}.email-toolbar button{border:1px solid var(--line);background:#202428;color:var(--text);border-radius:4px;padding:5px 7px;cursor:pointer;font-size:11px}.email-toolbar button:hover{background:#2a2e32}.email-font-size{border:1px solid var(--line);background:#202428;color:var(--text);border-radius:4px;padding:5px 7px;cursor:pointer;font-size:11px}.email-font-size:hover{background:#2a2e32}.rich-email-editor{min-height:320px;max-height:520px;overflow:auto;background:#fff;color:#111;border-radius:5px;padding:14px;outline:none;border:2px solid transparent;font-size:14px;line-height:1.45}.rich-email-editor:focus{border-color:rgba(var(--accent-rgb),.65)}.rich-email-editor p,.rich-email-editor div{margin:0}.rich-email-editor h1,.rich-email-editor h2,.rich-email-editor h3{margin:8px 0 4px;line-height:1.2}.rich-email-editor ul,.rich-email-editor ol{margin:4px 0;padding-left:24px}.email-merge-fields{margin-top:6px;font-size:10px;color:var(--muted);word-spacing:5px}.slot.held{cursor:pointer}@media(max-width:850px){.email-layout{grid-template-columns:1fr}.rich-email-editor{min-height:240px}}

/* v0.4.3 email controls */
.email-tabs{display:flex;gap:5px;margin-bottom:8px}.subtab{border:1px solid var(--line);background:#171b1f;color:var(--muted);padding:7px 10px;border-radius:4px;cursor:pointer}.subtab.active{background:rgba(var(--accent-rgb),.12);color:var(--text);border-color:rgba(var(--accent-rgb),.55)}.email-html-source{min-height:320px;font-family:Consolas,monospace;font-size:12px;resize:vertical}.email-editor-card .checkbox-row{align-self:end;margin-bottom:7px}.rich-email-editor img{max-width:100%;height:auto}.rich-email-editor a{color:#1769aa}

/* v0.4.4 slide toggle controls */
input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:34px;
  height:18px;
  min-width:34px;
  margin:0;
  border:1px solid #596168;
  border-radius:999px;
  background:#2b3034;
  position:relative;
  vertical-align:middle;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease
}
input[type="checkbox"]::after{
  content:"";
  position:absolute;
  width:12px;
  height:12px;
  left:2px;
  top:2px;
  border-radius:50%;
  background:#b8c0c7;
  transition:transform .15s ease,background .15s ease
}
input[type="checkbox"]:checked{
  background:rgba(var(--accent-rgb),.65);
  border-color:var(--accent)
}
input[type="checkbox"]:checked::after{
  transform:translateX(16px);
  background:#fff
}
input[type="checkbox"]:focus-visible{
  outline:2px solid rgba(var(--accent-rgb),.45);
  outline-offset:2px
}
.checkbox-row,.ticket-checks label,.quick-days label,#promoDays label,#promoRooms label{
  align-items:center
}


/* v0.4.5 booking views + payment status */
.slot.booking-blue .slot-main,.slot.checked-in .slot-main{transform:translateY(-2px)}
.slot.booking-blue .player-line,.slot.checked-in .player-line{margin-bottom:0}
.session-payment{position:absolute;right:5px;bottom:4px;padding:2px 5px;border-radius:3px;font-size:8px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.session-payment.paid,.payment-pill.paid{background:#246b3d;border:1px solid #3d9560;color:#e3f7e9}
.session-payment.unpaid,.payment-pill.unpaid{background:#7a2f2f;border:1px solid #b65353;color:#ffe4e4}
.booking-list-table{min-width:820px}.booking-list-row{cursor:pointer}.booking-list-row:hover{background:#20262a}.booking-list-empty{text-align:center;color:var(--muted);padding:24px}.payment-pill{display:inline-block;padding:3px 7px;border-radius:4px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}

/* v0.4.7 email template creation/preview + gift expiry */
.email-preview-modal{width:min(820px,97vw)}.email-preview-wrap{padding:10px;background:#111315}.email-preview-frame{display:block;width:100%;height:620px;border:0;border-radius:5px;background:#f4f4f4}.email-template-row span{white-space:nowrap}@media(max-width:850px){.email-preview-frame{height:480px}}

/* v0.4.8 linked email workflow */
.delay-controls{display:grid;grid-template-columns:90px 110px;gap:5px;margin-top:4px}.email-preview-modal .modal-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.email-preview-frame{min-height:520px}.modal-actions #requestPaymentBooking{border-color:#5b6670}@media(max-width:700px){.delay-controls{grid-template-columns:1fr 1fr}.email-preview-frame{min-height:420px}}

/* v0.5.1 SMTP test email */
.email-test-panel{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.email-test-row{display:flex;gap:8px;align-items:center;margin-top:8px}.email-test-row .input{max-width:360px}.email-connection-status{font-size:11px;color:var(--muted);font-weight:600}.email-connection-status.working{color:#63d58a}.email-connection-status.failed{color:#ef6d6d}.email-connection-detail{margin-top:5px;font-size:10px;color:var(--muted);word-break:break-word}@media(max-width:650px){.email-test-row{align-items:stretch;flex-direction:column}.email-test-row .input{max-width:none}}

.room-card-actions{display:flex;align-items:center;gap:8px;padding:8px}.room-card-actions .room-edit-only{margin-left:auto}.toggle-mini{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.toggle-mini input{width:32px;height:18px;accent-color:var(--green)}.compact-room-card.inactive .room-card-image{filter:grayscale(.75);opacity:.55}

/* v0.5.4 GM availability */
.gm-table{min-width:760px}.gm-row{cursor:pointer}.gm-row:hover{background:#20262a}.gm-modal{width:min(760px,96vw)}.gm-days{display:grid;gap:6px;margin-top:8px}.gm-day{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;align-items:start;padding:7px 0;border-bottom:1px solid var(--line)}.gm-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.gm-windows{display:grid;gap:5px}.gm-window{display:grid;grid-template-columns:120px auto 120px 34px;gap:6px;align-items:center}.gm-window .input{min-width:0}.slot.resource-unavailable{background:#33373a;border-color:#596168;color:#9ea6ad;cursor:not-allowed}.slot.resource-unavailable strong{color:#c5cbd0}@media(max-width:700px){.gm-day{grid-template-columns:1fr}.gm-window{grid-template-columns:1fr auto 1fr 34px}}

/* v0.5.5 colleague management */
.colleague-tabs{display:flex;gap:5px;margin-bottom:8px}.section-actions{display:flex;gap:7px;align-items:center}.row-actions{display:flex;gap:5px;justify-content:flex-end}.gm-copy-tools{display:flex;gap:6px;align-items:center;margin:7px 0 4px}.gm-copy-tools .input{width:150px}.holiday-table{min-width:720px}.holiday-row{cursor:pointer}.holiday-row:hover{background:#20262a}.holiday-modal{width:min(650px,96vw)}
@media(max-width:700px){.section-actions,.gm-copy-tools{flex-wrap:wrap}.gm-copy-tools .input{width:100%}.row-actions{flex-wrap:wrap}}

/* v0.5.6 daily resource controls + colleague time alignment */
.gm-day-head{display:grid;grid-template-columns:minmax(0,1fr) 68px;align-items:center;gap:8px}.gm-add-window{width:68px;text-align:center;justify-self:end}.gm-window{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 34px}.gm-time-separator,.gm-window>span{text-align:center;display:block}.resource-head{cursor:pointer;color:#bfe6ca}.resource-head:hover{background:#242b27}.resource-col{background:rgba(31,55,40,.18)}.resource-block{position:absolute;border:1px solid #47725a;background:#234b32;color:#e4f4e8;border-radius:4px;padding:4px 3px;overflow:hidden;cursor:pointer;text-align:left;min-width:0}.resource-block:hover{background:#2c5d3d}.resource-block.overridden{border-style:dashed;border-color:#76bd8f}.resource-block strong,.resource-block span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-block strong{font-size:9px}.resource-block span{font-size:8px;color:#b9d8c2}.day-resource-modal{width:min(820px,96vw)}.day-resource-rows{display:grid;gap:8px}.day-resource-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;padding:8px;border:1px solid var(--line);border-radius:5px;background:#191d20}.day-resource-row.focused{border-color:rgba(var(--accent-rgb),.65)}.day-resource-name{display:flex;flex-direction:column;gap:3px}.day-resource-name span{font-size:9px;color:var(--muted)}.day-resource-windows{display:grid;gap:5px}.day-resource-window{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 34px;gap:6px;align-items:center}.day-resource-window>span{text-align:center}.day-resource-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.day-resource-away{font-size:11px;color:#e7c46a}.day-resource-modal .modal-head p{margin:3px 0 0;color:var(--muted);font-size:11px}@media(max-width:700px){.day-resource-row{grid-template-columns:1fr}.gm-day-head{grid-template-columns:minmax(0,1fr) 68px}}


/* v0.5.7 colleague copy controls + responsive resource lanes */
.gm-day{grid-template-columns:190px minmax(0,1fr)}
.gm-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.gm-day-head strong{min-width:0;white-space:nowrap}
.gm-add-window{width:68px;min-width:68px;flex:0 0 68px}
.gm-copy-tools{display:grid;grid-template-columns:150px auto minmax(0,1fr);gap:7px;align-items:center}
.gm-copy-label{font-size:11px;color:var(--muted);white-space:nowrap}
.gm-copy-targets{display:flex;gap:4px;flex-wrap:wrap}
.gm-copy-toggle{border:1px solid #454b50;background:#23272a;color:var(--text);border-radius:5px;padding:6px 8px;font-size:11px;font-weight:650;cursor:pointer;min-width:40px}
.gm-copy-toggle:hover{background:#2f3539;border-color:#547763}
.gm-copy-toggle.all{border-color:#3f7657;background:#20382a}
@media(max-width:700px){.gm-day{grid-template-columns:1fr}.gm-day-head{width:100%}.gm-copy-tools{grid-template-columns:1fr}.gm-copy-tools .input{width:100%}.gm-copy-targets{width:100%}.gm-copy-toggle{flex:1 1 42px}.gm-copy-toggle.all{flex-basis:50px}}

/* v0.5.8 internal resource override + clearer resource labels */
.resource-block strong{font-size:14px;line-height:1.15;font-weight:800}.resource-block span{font-size:10px;margin-top:2px}.slot.resource-unavailable{cursor:pointer}.slot.resource-unavailable:hover{border-color:#8c9aa3}

/* v0.5.9 compact resource column */
.resource-block{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;padding:6px 7px}
.resource-block strong,.resource-block span{width:100%;text-align:left}


/* v0.6.0 booking form questions + Monday-first colleague week */
.booking-question-editor{display:grid;gap:7px;margin-top:7px}.booking-question-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:8px;border:1px solid var(--line);border-radius:5px;background:#191d20}.booking-question-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(130px,1fr);gap:8px}.booking-question-actions{display:flex;align-items:center;gap:8px;padding-bottom:1px}.booking-questions{display:grid;gap:8px}.booking-question-input{display:grid;gap:4px}.booking-question-input.checkbox-row{display:flex}.booking-answer-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,auto);gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}.booking-answer-row span{color:var(--muted)}.booking-answer-row strong{text-align:right;white-space:pre-wrap}.basket-booking-questions{display:grid;gap:7px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.basket-question{display:grid;gap:4px}.basket-question.checkbox-row{display:flex}@media(max-width:700px){.booking-question-card{grid-template-columns:1fr}.booking-question-main{grid-template-columns:1fr}.booking-question-actions{justify-content:space-between}.booking-answer-row{grid-template-columns:1fr}.booking-answer-row strong{text-align:left}}

.day-session-settings-modal{width:min(470px,96vw)}.day-session-settings-modal .slot-body{display:grid;gap:9px}.day-session-settings-modal .slot-body>label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.day-session-time-range{display:grid;grid-template-columns:1fr 1fr;gap:8px}.day-session-time-range label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}#daySessionSettings{font-size:17px;line-height:1}

.auth-gate{position:fixed;inset:0;z-index:9999;background:#0c0f0e;display:flex;align-items:center;justify-content:center;padding:24px}.auth-gate.hidden{display:none}.auth-card{width:min(360px,100%);background:#151a18;border:1px solid #29312e;border-radius:10px;padding:26px;display:grid;gap:16px;box-shadow:0 18px 60px #0008}.auth-card h2{margin:0;text-align:center}.auth-card label{display:grid;gap:7px}.auth-mark{margin:0 auto}.auth-card .btn{width:100%}

/* v0.7.10: render email preview directly instead of srcdoc iframe. */
.email-preview-frame{display:block;width:100%;height:620px;overflow:auto;border:0;border-radius:5px;background:#f4f4f4}.email-preview-document{min-height:100%;padding:28px;box-sizing:border-box;background:#f4f4f4;font-family:Arial,sans-serif;color:#222}.email-preview-message{max-width:680px;margin:0 auto;background:#fff;padding:28px;box-sizing:border-box;min-height:120px}.email-preview-message img{max-width:100%;height:auto}.email-preview-message a{color:#1769aa}

/* Stripe sandbox return pages */
body.stripe-result-page{min-height:100vh;background:#0d0f10;color:var(--text);padding:24px}
.stripe-result-card{max-width:680px;margin:60px auto;padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.stripe-result-card h1{margin:0 0 14px;color:var(--text);font-size:26px}
.stripe-result-card p{color:#c8ced2;line-height:1.55}
.stripe-result-card strong{color:#75d39a}

/* v0.7.23 settings tabs */
.settings-tabs{margin:8px 0 10px}.settings-tab-pane{min-height:120px}.settings-tab-pane.hidden{display:none}

.payment-pill.refunded,.session-payment.refunded{border-color:#c98cff;color:#dfb6ff;background:rgba(160,90,220,.12)}

.transaction-row.refund strong{color:#dfb6ff}

.basket-interest{display:inline-block;margin-top:3px;padding:2px 5px;border:1px solid #f0a23a;border-radius:4px;background:#5a3816;color:#ffd49a;font-size:10px;font-weight:700;line-height:1;opacity:1}
.customer-row{cursor:pointer}.customer-row:hover td{background:rgba(40,211,145,.05)}.customer-detail-row td{padding:0 12px 12px!important}.customer-detail{border:1px solid var(--line,#2b3833);border-radius:8px;padding:12px;background:rgba(0,0,0,.16)}.customer-stats{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:10px}.customer-order{padding:9px 0;border-top:1px solid rgba(255,255,255,.08)}.stripe-express-checkout:empty{display:none}.stripe-express-checkout{margin:8px 0 14px}

/* v0.8.3g customer profile */
.customer-profile{border:1px solid var(--line,#2b3833);border-radius:10px;padding:16px;background:rgba(0,0,0,.16)}
.customer-profile-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.customer-profile-head h3{margin:0 0 5px;font-size:19px}.customer-contact{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted)}
.customer-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;margin-bottom:18px}.customer-summary-grid>div{border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:10px 12px;background:rgba(255,255,255,.025)}.customer-summary-grid span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.customer-summary-grid strong{display:block;margin-top:4px;font-size:17px}
.customer-section{margin-top:16px}.customer-section h4{margin:0 0 9px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.customer-order-card{border:1px solid rgba(255,255,255,.09);border-radius:9px;margin:0 0 10px;overflow:hidden;background:rgba(255,255,255,.018)}.customer-order-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 12px;background:rgba(255,255,255,.035)}.customer-order-total{text-align:right}.customer-order-total span{display:block;font-size:11px;color:var(--green,#28d391);font-weight:700}.customer-order-total strong{font-size:16px}.customer-order-bookings{padding:8px 10px}
.customer-booking-card{border-top:1px solid rgba(255,255,255,.07);padding:10px 2px}.customer-booking-card:first-child{border-top:0}.customer-booking-main{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.customer-status{font-size:10px;font-weight:800;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:rgba(40,211,145,.12);color:var(--green,#28d391)}.customer-booking-grid{display:grid;grid-template-columns:repeat(4,minmax(80px,1fr));gap:8px;margin-top:8px}.customer-booking-grid span{font-size:12px;color:var(--text)}.customer-booking-grid b{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;margin-bottom:2px}.customer-more{margin-top:8px}.customer-more summary{cursor:pointer;color:var(--muted);font-size:11px}.customer-answers{padding-top:7px}.customer-answer{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:11px}.customer-answer span{color:var(--muted)}.customer-payment-ref{padding-top:7px;word-break:break-all}.customer-upcoming{border:1px solid rgba(40,211,145,.18);border-radius:9px;padding:4px 10px}
@media(max-width:800px){.customer-summary-grid{grid-template-columns:repeat(2,1fr)}.customer-booking-grid{grid-template-columns:repeat(2,1fr)}}


/* v0.8.3l consistent button press feedback */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
[role="button"]{
  transition:background-color .08s ease,border-color .08s ease,color .08s ease,transform .06s ease,filter .06s ease,box-shadow .08s ease;
  -webkit-tap-highlight-color:transparent;
}
button:not(:disabled):active,
input[type="button"]:not(:disabled):active,
input[type="submit"]:not(:disabled):active,
input[type="reset"]:not(:disabled):active,
[role="button"]:not([aria-disabled="true"]):active{
  transform:translateY(1px) scale(.985);
  filter:brightness(.82);
  box-shadow:inset 0 2px 5px rgba(0,0,0,.28);
}
button:disabled,
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
[role="button"][aria-disabled="true"]{
  transform:none;
  filter:none;
}


/* v0.8.3n customer bank: Customers / Bookings / Transactions + shared global search */
.customer-bank-bar{gap:14px}.customer-global-search{width:min(420px,46vw)}
.customer-bank-tabs{margin:0 0 10px}.customer-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;margin-left:5px;border-radius:999px;background:rgba(255,255,255,.08);font-size:10px;color:var(--muted)}.subtab.active .customer-tab-count{background:rgba(40,211,145,.15);color:var(--green,#28d391)}
.customer-record-table table{min-width:900px}.customer-record-table th{white-space:nowrap}.customer-booking-row{cursor:pointer}.customer-booking-row:hover td{background:rgba(40,211,145,.05)}
.record-date,.record-time{display:block}.record-time{margin-top:2px;color:var(--muted);font-size:11px}.transaction-source{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.transaction-source.internal{color:var(--green,#28d391);background:rgba(40,211,145,.12)}.transaction-source.external{color:#ffd49a;background:rgba(240,162,58,.12)}.money-paid{color:#8ee2b2}.money-due{color:#ffd49a}
@media(max-width:800px){.customer-bank-bar{align-items:stretch}.customer-global-search{width:100%}.customer-bank-tabs{overflow-x:auto;white-space:nowrap}}

.customer-cleanup-row{display:flex;justify-content:flex-end;margin:-2px 0 9px}.record-delete{padding:5px 8px;white-space:nowrap}.record-action-cell{width:1%;white-space:nowrap;text-align:right}

/* v0.8.3p internal checkout */
.customer-lookup-section{position:relative}.customer-lookup-wrap{position:relative}.customer-lookup-results{position:absolute;z-index:25;left:0;right:0;top:calc(100% + 4px);max-height:220px;overflow:auto;background:#111a16;border:1px solid #2b4639;border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.35)}.customer-lookup-result{display:block;width:100%;text-align:left;padding:9px 10px;border:0;border-bottom:1px solid #203329;background:transparent;color:inherit;cursor:pointer}.customer-lookup-result:last-child{border-bottom:0}.customer-lookup-result:hover{background:#183126}.customer-lookup-result strong,.customer-lookup-result span{display:block}.customer-lookup-result span{font-size:12px;color:#9eb1a7;margin-top:2px}.selected-customer{margin-top:7px;padding:8px 10px;border:1px solid #2b4639;border-radius:7px;background:#122219;font-size:12px}.payment-choice-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px}.internal-stripe-wrap{margin-top:12px;padding:12px;border:1px solid #2b4639;border-radius:8px;background:#0f1714}.internal-stripe-wrap .small{margin-bottom:8px}.payment-section #basketZeroPayment,.payment-section #basketPaymentRequestNote{margin-top:10px;color:#b8c8c0}

/* v0.8.3r internal checkout step screens */
.basket-checkout-modal{height:min(820px,96vh);display:flex;flex-direction:column}
.basket-checkout-modal form{min-height:0;flex:1;display:flex;flex-direction:column}
.basket-checkout-step{min-height:0;flex:1;display:flex;flex-direction:column}
.basket-checkout-step>.booking-body{min-height:0;flex:1;overflow:auto}
.payment-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.payment-action{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:3px;padding:12px 14px;min-height:62px}
.payment-action strong{font-size:13px}.payment-action span{font-size:10px;font-weight:400;opacity:.78;line-height:1.35}
.basket-payment-screen{padding:16px 18px!important}
.basket-step-summary{display:flex;justify-content:space-between;align-items:center;padding:13px 14px;border:1px solid #2b4639;border-radius:8px;background:#122019;margin-bottom:12px}
.basket-step-summary span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.basket-step-summary strong{font-size:22px;color:var(--green,#28d391)}
.payment-request-confirm{padding:14px;border:1px solid #2b4639;border-radius:8px;background:#101a16;color:#c4d0ca;line-height:1.55;font-size:12px}
#basketPayStep #basketPaymentElement{min-height:180px}
@media(max-width:700px){.payment-action-buttons{grid-template-columns:1fr}.basket-checkout-modal{height:96vh}}

/* Room editor tabs */
.room-editor-tabs{display:flex;gap:4px;padding:8px 9px 0;border-bottom:1px solid var(--line);background:#121416;flex:none;overflow-x:auto}.room-editor-tab{appearance:none;border:1px solid var(--line);border-bottom:0;background:#1b1e20;color:var(--muted);font:inherit;font-size:11px;font-weight:800;padding:8px 12px;border-radius:5px 5px 0 0;cursor:pointer;white-space:nowrap}.room-editor-tab:hover{color:var(--text);background:#202427}.room-editor-tab.active{background:#20352a;color:#d9eee1;border-color:#3f6c50;box-shadow:inset 0 2px 0 #51ad74}.room-editor-panel{display:none}.room-editor-panel.active{display:block}.room-editor-panel>.editor-section:last-child{margin-bottom:0}

/* Gift card design/settings admin */
.gift-admin-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.4fr);gap:18px;align-items:start}
.gift-design-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.gift-design-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.gift-design-card .room-card-image{aspect-ratio:3/2}.gift-design-name{padding:10px 12px 0;font-weight:800}
.gift-design-preview{min-height:220px;margin:8px 0 10px}.gift-design-preview img{width:100%;max-height:300px;object-fit:contain;border-radius:8px}
@media(max-width:1000px){.gift-admin-layout{grid-template-columns:1fr}}

/* v0.8.4d website embed code controls */
.embed-code-box{width:100%;min-height:150px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.45;resize:vertical;white-space:pre;overflow:auto;margin:10px 0}.room-editor-panel[data-room-panel="embed"] .notice{margin:12px 0}.room-editor-panel[data-room-panel="embed"] .email-test-row,.settings-tab-pane .email-test-row{margin-top:10px}


/* v0.8.4g customer portal stage preview */
.portal-preview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.portal-preview-stages{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 12px}.portal-preview-stage{appearance:none;border:1px solid #343b3f;background:#191d1f;color:#aeb8b3;border-radius:8px;padding:8px 11px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.portal-preview-stage:hover{border-color:#4b6958;color:#edf6f1}.portal-preview-stage.active{background:#20352a;border-color:#51ad74;color:#dff7e8;box-shadow:inset 0 2px 0 #51ad74}.portal-preview-frame{border:1px solid #343b3f;border-radius:12px;overflow:hidden;background:#0c1110}.portal-stage-preview{min-height:390px;padding:22px;background:linear-gradient(180deg,#0c1110 0,#111714 100%);color:#eef5f1;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.pp-eyebrow{font-size:10px;letter-spacing:.18em;font-weight:850;color:#32d583}.pp-title{font-size:28px;line-height:1.05;font-weight:850;margin:6px 0 7px}.pp-muted{color:#98a6a1;font-size:12px}.pp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:18px}.pp-date{border:1px solid #2a3431;border-radius:9px;background:#151c1a;padding:8px 12px;font-size:12px}.pp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pp-card{border:1px solid #2a3431;border-radius:11px;background:#151c1a;overflow:hidden}.pp-image{height:105px;display:grid;place-items:center;background:linear-gradient(135deg,#1a2521,#26332f);font-size:28px;font-weight:900;color:#53635d}.pp-card-body{padding:13px}.pp-card-title{font-size:17px;font-weight:850}.pp-pills{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.pp-pill{border:1px solid #303c38;background:#1c2522;border-radius:999px;padding:4px 7px;font-size:10px;color:#c7d1cd}.pp-times{display:flex;gap:6px;flex-wrap:wrap}.pp-time{border:1px solid #3a4a45;background:#1a2421;color:#fff;border-radius:7px;padding:7px 10px;font-size:11px;font-weight:800}.pp-time.selected,.pp-primary{background:#32d583!important;border-color:#32d583!important;color:#07120e!important}.pp-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px}.pp-panel{border:1px solid #2a3431;border-radius:11px;background:#151c1a;padding:15px}.pp-summary{border:1px solid #2a3431;border-radius:11px;background:#111815;padding:14px}.pp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #2a3431;font-size:12px}.pp-row:last-child{border-bottom:0}.pp-total{font-size:18px;font-weight:850}.pp-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.pp-btn{border:1px solid #3a4a45;background:#1a2421;color:#fff;border-radius:8px;padding:9px 12px;font-size:11px;font-weight:850}.pp-form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.pp-field{display:grid;gap:5px;font-size:10px;font-weight:800;color:#dce5e1}.pp-input{height:34px;border:1px solid #34413d;border-radius:7px;background:#111815;color:#98a6a1;padding:8px 9px;font-size:11px}.pp-payment{border:1px solid #34413d;border-radius:9px;background:#111815;padding:12px;margin-top:10px}.pp-payment-line{height:36px;border:1px solid #3a4743;border-radius:7px;margin:7px 0;background:#17201d}.pp-confirm{text-align:center;max-width:570px;margin:50px auto 20px;border:1px solid #2a3431;border-radius:12px;background:#151c1a;padding:30px}.pp-check{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#32d583;color:#07120e;font-size:25px;font-weight:900}.pp-ref{display:inline-block;margin:12px 0;padding:8px 12px;border:1px solid #34413d;border-radius:8px;background:#111815;color:#32d583;font-weight:850}.pp-stepper{display:inline-flex;align-items:center;border:1px solid #34413d;border-radius:8px;overflow:hidden}.pp-stepper span{padding:9px 13px;background:#111815}.pp-stepper b{padding:9px 12px;background:#1c2723}.pp-room-selection{display:grid;grid-template-columns:36% 1fr;border:1px solid #2a3431;border-radius:11px;overflow:hidden;background:#151c1a}.pp-selection-image{min-height:205px;display:grid;place-items:center;background:linear-gradient(135deg,#1a2521,#26332f);font-size:34px;font-weight:900;color:#53635d}.pp-selection-copy{padding:18px}.pp-basket-item{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:10px;border:1px solid #2a3431;border-radius:9px;background:#111815;padding:8px;margin:8px 0}.pp-thumb{width:60px;height:44px;border-radius:7px;background:linear-gradient(135deg,#1a2521,#26332f);display:grid;place-items:center;color:#53635d;font-size:10px;font-weight:900}@media(max-width:850px){.portal-preview-heading{flex-direction:column}.pp-grid,.pp-form,.pp-layout,.pp-room-selection{grid-template-columns:1fr}.pp-selection-image{min-height:125px}}

/* v0.8.4i gift card delivery preview/test */
.gift-card-test-modal{width:min(1120px,94vw);max-width:1120px}
.gift-card-test-grid{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:18px;align-items:start}
.gift-card-test-controls{display:grid;gap:12px}
.gift-card-test-controls label{display:grid;gap:6px}
.gift-card-test-controls .two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gift-card-test-preview{min-width:0}
.gift-card-test-subject{font-weight:700;margin:0 0 10px;color:var(--text,#f3faf6);overflow-wrap:anywhere}
@media(max-width:820px){.gift-card-test-grid{grid-template-columns:1fr}.gift-card-test-controls .two-col{grid-template-columns:1fr}}

/* v0.8.4j data import/export + 3:2 image standard */
.customer-cleanup-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.customer-data-tools{display:flex;gap:7px;flex-wrap:wrap}.csv-import-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:12px}.csv-import-summary>div{background:#202326;border:1px solid var(--line);border-radius:6px;padding:10px}.csv-import-summary span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.csv-import-summary strong{display:block;font-size:20px;margin-top:3px}.csv-import-errors{color:#ef9a9a;font-size:12px;margin-bottom:10px}.csv-preview-table{max-height:360px;overflow:auto}.csv-preview-table td,.csv-preview-table th{white-space:nowrap}.csv-row-error td{background:rgba(190,55,55,.08)}.csv-row-match td{background:rgba(216,168,80,.06)}.gift-design-card .room-card-image{aspect-ratio:3/2!important;height:auto!important}.gift-design-preview img{aspect-ratio:3/2;object-fit:cover}.graphic-preview.gift-design-preview{aspect-ratio:3/2;min-height:0;height:auto}.room-card-image{aspect-ratio:3/2;height:auto}.compact-room-card .room-card-image{aspect-ratio:3/2;height:auto}.graphic-preview{aspect-ratio:3/2;height:auto;min-height:130px}@media(max-width:700px){.customer-data-tools{width:100%}.customer-data-tools .btn{flex:1}.csv-import-modal{width:96vw}}

/* v0.8.4k customer editing */
.customer-record-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}.customer-profile-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.customer-edit-notes{resize:vertical;min-height:82px}.customer-edit-help{margin:0 15px 12px;padding:9px 11px;border:1px solid var(--line);border-radius:5px;background:#202326;color:var(--muted);font-size:11px;line-height:1.45}@media(max-width:700px){.customer-record-actions{flex-wrap:wrap}.customer-profile-head{flex-direction:column}}

.booking-settings-panel{margin:0 14px 12px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#202326}.booking-settings-actions{display:flex;gap:8px;flex-wrap:wrap}.booking-settings-note{margin:8px 0 0;color:var(--muted);font-size:11px}

/* v0.8.4m booking settings side drawer */
#bookingModal .modal-card{position:relative;overflow:visible}
.booking-settings-cog{position:absolute;right:50px;top:14px;width:34px;height:34px;border:1px solid var(--line);border-radius:7px;background:#202326;color:var(--text);font-size:18px;line-height:1;cursor:pointer;z-index:7}
.booking-settings-cog:hover{border-color:var(--green);color:var(--green)}
.booking-settings-drawer{position:absolute;top:0;right:0;width:min(330px,88vw);height:100%;z-index:20;background:#171a19;border-left:1px solid var(--line);box-shadow:-10px 0 30px rgba(0,0,0,.35);padding:16px;box-sizing:border-box;border-radius:0 10px 10px 0}
.booking-settings-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.booking-settings-drawer .booking-settings-actions{display:flex;flex-direction:column;align-items:stretch;gap:9px}
.booking-settings-drawer .booking-settings-actions .btn{width:100%;text-align:left}
.booking-settings-drawer .icon-btn{width:32px;height:32px;border:1px solid var(--line);border-radius:6px;background:#202326;color:var(--text);font-size:20px;cursor:pointer}
@media(max-width:700px){.booking-settings-drawer{width:100%;border-left:0;border-radius:10px}.booking-settings-cog{right:48px}}

/* v0.8.4n: settings cog lives inline with Cancel / Check In actions */
.booking-settings-inline{min-width:38px;padding-left:10px;padding-right:10px;font-size:17px;line-height:1}

/* v0.8.4o: compact booking settings popover */
.booking-settings-spacer{flex:1 1 auto}
.booking-settings-drawer{
  position:absolute;
  top:auto;
  right:14px;
  bottom:58px;
  width:250px;
  height:auto;
  z-index:20;
  background:#171a19;
  border:1px solid var(--line);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  padding:12px;
  box-sizing:border-box;
  border-radius:8px;
}
.booking-settings-drawer-head{margin-bottom:10px}
.booking-settings-drawer .booking-settings-actions{gap:7px}
.booking-settings-drawer .booking-settings-actions .btn{
  width:100%;
  text-align:left;
  padding-top:8px;
  padding-bottom:8px;
}
.booking-settings-drawer .editor-title{font-size:13px}
.booking-settings-note{font-size:10px}
@media(max-width:700px){
  .booking-settings-drawer{
    width:240px;
    right:10px;
    bottom:56px;
    border-radius:8px;
  }
}

/* v0.8.4p: settings cog fixed to bottom-right corner of Edit Booking */
#bookingModal .modal-card{
  position:relative;
}

.booking-settings-anchor{
  position:absolute;
  right:10px;
  bottom:8px;
  z-index:30;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  pointer-events:none;
}

.booking-settings-corner-cog{
  pointer-events:auto;
  width:34px;
  height:30px;
  min-width:34px;
  padding:0;
  border:1px solid var(--line);
  border-radius:6px;
  background:#202326;
  color:var(--text);
  font-size:16px;
  line-height:1;
  cursor:pointer;
}

.booking-settings-corner-cog:hover{
  border-color:var(--green);
  color:var(--green);
}

.booking-settings-popover{
  pointer-events:auto;
  width:250px;
  margin-bottom:7px;
  padding:10px;
  background:#171a19;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 10px 24px rgba(0,0,0,.4);
}

.booking-settings-popover-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}

.booking-settings-popover .booking-settings-actions{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.booking-settings-popover .booking-settings-actions .btn{
  width:100%;
  text-align:left;
  padding:7px 9px;
}

.booking-settings-popover .icon-btn{
  width:28px;
  height:28px;
  padding:0;
  border:1px solid var(--line);
  border-radius:6px;
  background:#202326;
  color:var(--text);
  font-size:18px;
  line-height:1;
  cursor:pointer;
}

.booking-settings-popover .editor-title{
  font-size:12px;
}

.booking-settings-popover .booking-settings-note{
  margin:7px 0 0;
  font-size:10px;
}

@media(max-width:700px){
  .booking-settings-anchor{
    right:8px;
    bottom:8px;
  }
  .booking-settings-popover{
    width:230px;
  }
}

/* v0.8.4q: anchor booking settings to the actual Edit Booking container */
#bookingModal > .modal{
  position:relative;
}

#bookingModal .booking-settings-anchor{
  position:absolute;
  right:10px;
  bottom:8px;
}

/* v0.8.4r customer email history/open tracking */
.field-help{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-weight:400;line-height:1.35}
.email-history-card{padding:14px}
.email-history-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.email-history-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.email-history-summary span{padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:#202326;font-size:11px}
.email-history-list{display:flex;flex-direction:column;gap:7px}
.email-history-row{display:flex;justify-content:space-between;gap:16px;padding:10px;border:1px solid var(--line);border-radius:7px;background:#1d201f}
.email-history-main{min-width:0;flex:1}
.email-history-title{font-weight:700;font-size:12px;margin-bottom:2px}
.email-history-to{font-size:11px;color:var(--green);margin-bottom:3px;overflow:hidden;text-overflow:ellipsis}
.email-history-subject{font-size:11px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.email-history-meta{min-width:150px;text-align:right;font-size:10px;color:var(--muted);display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.email-status{display:inline-flex;padding:3px 7px;border-radius:999px;border:1px solid var(--line);font-size:10px;font-weight:700}
.email-status.opened{color:#28d391;border-color:#28d391}
.email-status.sent{color:#8fc7ff;border-color:#426d91}
.email-status.failed{color:#ff8e8e;border-color:#7d3e3e}
.email-status.pending{color:#e4a93b;border-color:#6f592e}
.email-status.cancelled{color:var(--muted)}
.email-history-muted{margin-top:4px;font-size:10px;color:var(--muted)}
.email-history-error{margin-top:4px;font-size:10px;color:#ff8e8e}
@media(max-width:700px){
  .email-history-row{flex-direction:column}
  .email-history-meta{min-width:0;text-align:left;align-items:flex-start}
  .email-history-head{flex-direction:column}
}

/* v0.8.4s: customer email history lives in each customer profile */
.customer-email-history{display:flex;flex-direction:column;gap:7px}
.customer-email-row{display:flex;justify-content:space-between;gap:14px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:#1d201f}
.customer-email-main{min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}
.customer-email-main strong{font-size:11px}
.customer-email-main span{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.customer-email-main span:nth-child(2){color:var(--green)}
.customer-email-meta{min-width:145px;display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:10px;color:var(--muted)}
@media(max-width:700px){.customer-email-row{flex-direction:column}.customer-email-meta{min-width:0;align-items:flex-start}}

/* v0.8.4t: keep Customer action buttons in their own table cell on narrow windows */
#customerTab-customers table{min-width:820px}
#customerTab-customers th:nth-child(5),
#customerTab-customers td:nth-child(5){white-space:nowrap}
#customerTab-customers .customer-record-actions{
  display:table-cell!important;
  white-space:nowrap;
  min-width:116px;
  text-align:right;
  vertical-align:middle;
}
#customerTab-customers .customer-record-actions .btn{margin-left:4px}
@media(max-width:700px){
  #customerTab-customers .customer-record-actions{display:table-cell!important;white-space:nowrap}
}

/* v0.8.4u: customer profile Order History / Emails tabs */
.customer-profile-tabs{display:flex;gap:6px;margin:4px 0 10px;border-bottom:1px solid var(--line);padding-bottom:8px}
.customer-profile-tabs .subtab{margin:0}
.customer-profile-tab-pane{margin-top:0}

/* v0.8.4v: future-only booking list range controls */
.booking-list-range{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:#1b1e1d}
.booking-list-range>span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-right:2px}
@media(max-width:620px){.booking-list-range{flex-wrap:wrap}.booking-list-range .subtab{flex:1;min-width:92px}}

/* v0.8.4w: supplied KGBookings logo */
.brand-logo{display:block;object-fit:cover;border-radius:9px}
.sidebar-logo{width:46px;height:46px;flex:0 0 46px}
.auth-logo{width:86px;height:86px;margin:0 auto 14px;border-radius:18px}
@media(max-width:900px){.sidebar-logo{width:46px;height:46px;flex-basis:46px}}


/* v0.8.4x: universal interactive feedback for buttons and button-like controls */
button,
.btn,
.optBtn,
.subtab,
.nav-btn,
[role="button"],
.clickable{
  transition:transform .08s ease,filter .12s ease,background-color .12s ease,border-color .12s ease,box-shadow .12s ease,opacity .12s ease;
}
button:not(:disabled):hover,
.btn:not(:disabled):hover,
.optBtn:not(:disabled):hover,
.subtab:not(:disabled):hover,
.nav-btn:not(:disabled):hover,
[role="button"]:not([aria-disabled="true"]):hover,
.clickable:hover{
  filter:brightness(1.14);
}
button:not(:disabled):active,
.btn:not(:disabled):active,
.optBtn:not(:disabled):active,
.subtab:not(:disabled):active,
.nav-btn:not(:disabled):active,
[role="button"]:not([aria-disabled="true"]):active,
.clickable:active{
  transform:translateY(2px) scale(.985);
  filter:brightness(.92);
}
button:focus-visible,
.btn:focus-visible,
.optBtn:focus-visible,
.subtab:focus-visible,
.nav-btn:focus-visible,
[role="button"]:focus-visible,
.clickable:focus-visible{
  outline:2px solid var(--green,#28d391);
  outline-offset:2px;
}
button:disabled,
.btn:disabled,
.optBtn:disabled,
.subtab:disabled{
  cursor:not-allowed;
  opacity:.5;
}

/* v0.8.4y: consistent Keylock-green hover outline for every calendar session */
.slot:hover,
.slot.available:hover,
.slot.booked:hover,
.slot.paid:hover,
.slot.deposit-paid:hover,
.slot.passed:hover,
.slot.blocked:hover,
.slot.cancelled:hover,
.slot.held:hover,
.slot.booking-blue:hover,
.slot.checked-in:hover,
.slot.call-to-book:hover,
.slot.resource-unavailable:hover{
  border-color:#28d391!important;
  box-shadow:0 0 0 1px rgba(40,211,145,.34);
  z-index:3;
}

/* v0.8.4z: blocked calendar sessions are red */
.slot.blocked{
  background:#5b2525!important;
  border-color:#a84747!important;
  color:#fff;
}
.slot.blocked:hover{
  border-color:#28d391!important;
}

/* v0.8.5a: individual user accounts, My Account and user management */
.header-account-actions{display:flex;align-items:center;gap:8px}
#myAccountBtn{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-modal{width:min(620px,96vw)}
.account-body{display:grid;gap:18px}
.account-password-form{border-top:1px solid var(--line);padding-top:16px}
.user-table{min-width:760px}
.user-table-card{margin-top:12px}
.user-role-pill,.user-status{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:11px}
.user-role-pill{background:#202825}
.user-status.active{border-color:rgba(40,211,145,.45);color:#7be5b8}
.user-status.inactive{opacity:.6}
.user-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}
.auth-card #authHelp{margin-top:-2px;line-height:1.4}
@media(max-width:700px){
  .header-account-actions{gap:5px}
  #myAccountBtn{max-width:130px}
  .user-actions{display:table-cell}
}

/* v0.8.5b: invitation status + GM role-aware UI */
.user-status.pending{border-color:rgba(228,169,59,.55);color:#f0c66f}
.user-role-select{width:92px;min-width:92px;padding:5px 7px}
.gm-readonly-hidden{display:none!important}

/* Keep unavailable GM controls hidden even when their tables re-render. */
.gm-role #nav .nav-btn[data-page="rooms"],
.gm-role #nav .nav-btn[data-page="photo"],
.gm-role #nav .nav-btn[data-page="promos"],
.gm-role #nav .nav-btn[data-page="emails"],
.gm-role #nav .nav-btn[data-page="settings"],
.gm-role .customer-cleanup-row,
.gm-role .edit-customer,
.gm-role .delete-customer,
.gm-role .delete-customer-booking,
.gm-role .delete-customer-transaction{display:none!important}

/* v0.8.5d Step 2: GM operational permissions */
.gm-role #addGM,.gm-role [data-colleague-tab="individuals"],.gm-role #colleagueTab-individuals,
.gm-role [data-gift-tab="designs"],.gm-role #giftTab-designs,
.gm-role .delete-customer,.gm-role .delete-booking,.gm-role .delete-transaction{display:none!important}

/* v0.8.5e: dual user onboarding */
#newUserSetupHelp{max-width:760px;line-height:1.45}


/* v0.8.6.0 Step 4: internal staff chat */
.chat-nav-btn{position:relative}
.chat-unread-dot{position:absolute;right:9px;top:8px;width:9px;height:9px;border-radius:50%;background:#e34b4b;box-shadow:0 0 0 2px #151719}
.chat-unread-flag{position:absolute;left:0;top:66px;z-index:39;border:1px solid #b83939;border-left:0;border-radius:0 6px 6px 0;background:#b83939;color:#fff;padding:7px 10px 7px 8px;font-size:11px;font-weight:800;box-shadow:3px 4px 12px rgba(0,0,0,.3);cursor:pointer}
.app-panel.sidebar-open .chat-unread-flag{display:none!important}
.staff-chat-card{height:calc(100vh - 115px);min-height:520px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--line);border-radius:8px;background:#171a1c;overflow:hidden}
.staff-chat-head{padding:12px 14px;border-bottom:1px solid var(--line);background:#1b1f21}
.staff-chat-messages{overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.staff-chat-empty{margin:auto;color:var(--muted);font-size:12px}
.staff-chat-message{max-width:min(720px,82%);align-self:flex-start}
.staff-chat-message.mine{align-self:flex-end}
.staff-chat-meta{display:flex;align-items:center;gap:7px;margin:0 5px 4px;font-size:10px;color:var(--muted)}
.staff-chat-message.mine .staff-chat-meta{justify-content:flex-end}
.staff-chat-meta strong{font-size:11px;color:var(--text)}
.staff-chat-role{padding:2px 5px;border-radius:999px;border:1px solid var(--line);font-size:9px;text-transform:uppercase}
.staff-chat-bubble{background:#25292c;border:1px solid #3a4045;border-radius:10px 10px 10px 3px;padding:9px 11px;line-height:1.45;overflow:hidden}
.staff-chat-message.mine .staff-chat-bubble{background:#20372a;border-color:#355d46;border-radius:10px 10px 3px 10px}
.staff-chat-message-text{font-size:13px;word-break:break-word}
.staff-chat-image-link{display:block;margin-top:8px}
.staff-chat-message-text+.staff-chat-image-link{margin-top:9px}
.staff-chat-image{display:block;max-width:min(460px,100%);max-height:360px;border-radius:7px;border:1px solid rgba(255,255,255,.1);object-fit:contain;background:#111}
.staff-chat-compose{padding:10px 12px;border-top:1px solid var(--line);background:#1b1f21}
.staff-chat-compose-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:end}
.staff-chat-text{resize:none;min-height:44px;max-height:120px}
.staff-chat-image-btn{height:44px;display:grid;place-items:center;min-width:44px;font-size:18px}
.staff-chat-compose-row #staffChatSend{height:44px}
.staff-chat-help{margin-top:5px}
.staff-chat-image-preview{display:flex;align-items:center;gap:9px;margin-bottom:8px;padding:7px;border:1px solid var(--line);border-radius:6px;background:#202427}
.staff-chat-image-preview img{width:64px;height:48px;object-fit:cover;border-radius:4px}
.staff-chat-image-preview>div{display:flex;align-items:center;gap:8px;min-width:0}
.staff-chat-image-preview span{font-size:11px;color:var(--muted);max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){
  .staff-chat-card{height:calc(100vh - 105px);min-height:420px}
  .staff-chat-message{max-width:92%}
  .staff-chat-compose-row{grid-template-columns:minmax(0,1fr) auto}
  .staff-chat-compose-row #staffChatSend{grid-column:1/-1}
}


/* Reports */
.reports-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-bottom:12px}
.reports-toolbar-left{min-width:0}.report-presets{display:flex;gap:6px;flex-wrap:wrap}.report-presets .btn.active{border-color:#4b8d68;background:#21352a;color:#fff}
.reports-date-controls{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}.reports-date-controls label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.reports-date-controls .input{min-width:138px}
.report-summary-grid{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:10px;margin-bottom:12px}.report-stat{display:grid;gap:5px}.report-stat span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.report-stat strong{font-size:21px;line-height:1.15}.report-stat small{font-size:10px;color:var(--muted)}
.report-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.report-chart-card{min-height:315px}.report-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.report-bar-chart{display:grid;gap:8px}.report-bar-row{display:grid;grid-template-columns:minmax(105px,150px) 1fr 38px;gap:9px;align-items:center;border:0;background:transparent;color:var(--text);padding:5px;border-radius:5px;text-align:left;cursor:pointer}.report-bar-row:hover{background:#202326}.report-bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.report-bar-track{height:15px;border-radius:4px;background:#24292d;overflow:hidden;border:1px solid #33393e}.report-bar-track i{display:block;height:100%;background:var(--accent);min-width:2px}.report-bar-row strong{text-align:right;font-size:12px}
.report-line-chart{position:relative;min-height:240px}.report-line-chart svg{width:100%;height:230px;overflow:visible}.report-line{fill:none;stroke:var(--accent);stroke-width:3;vector-effect:non-scaling-stroke}.report-axis{stroke:#3a4147;stroke-width:1;vector-effect:non-scaling-stroke}.report-line-chart circle{fill:#17191b;stroke:var(--accent);stroke-width:3;vector-effect:non-scaling-stroke}.report-line-chart text{fill:var(--muted);font-size:10px}.report-line-total{position:absolute;right:5px;top:-2px;font-size:18px;font-weight:800}.report-empty{display:grid;place-items:center;min-height:215px;color:var(--muted);font-size:12px}
.report-room-table-card{overflow:auto}.report-room-table{min-width:850px}.report-room-table tbody tr,.report-room-table tfoot tr{cursor:pointer}.report-room-table tbody tr:hover,.report-room-table tfoot tr:hover{background:#20262a}.report-room-table tr.selected{background:#21352a}.report-room-table tfoot td{border-top:2px solid #3f594b;font-weight:700}
@media(max-width:1250px){.report-summary-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}}
@media(max-width:900px){.reports-toolbar{align-items:stretch;flex-direction:column}.reports-date-controls{justify-content:flex-start}.report-grid-two{grid-template-columns:1fr}.report-summary-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:560px){.report-summary-grid{grid-template-columns:1fr}.reports-date-controls label,.reports-date-controls .input{width:100%;min-width:0}.reports-date-controls{display:grid;grid-template-columns:1fr}.report-presets .btn{flex:1 1 auto}}


/* Revised Photo architecture */
.photo-page-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:12px}
.photo-page-card h3{margin:8px 0 5px}.photo-integration-status{display:flex;align-items:center;gap:8px;margin:14px 0;padding:10px 12px;border:1px solid #453f32;background:#242016;border-radius:8px}.photo-integration-status .dot{width:8px;height:8px;border-radius:50%;background:#d4a03b}.photo-architecture-list{display:grid;gap:8px;margin-top:12px}.photo-architecture-list>div{display:grid;gap:3px;padding:12px;border:1px solid #30363a;background:#181b1d;border-radius:8px}.photo-architecture-list span{font-size:11px;color:var(--muted)}.photo-architecture-list code{color:#b7f4d5}
.watermark-editor-section{min-width:0}.watermark-editor-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.watermark-editor-head p{max-width:850px;margin-bottom:0}
.watermark-workspace{display:grid;grid-template-columns:200px minmax(420px,1fr) 230px;gap:10px;margin-top:12px;align-items:start}
.watermark-sidebar,.watermark-properties{border:1px solid #30363a;background:#171a1c;border-radius:8px;padding:10px;min-height:390px}.watermark-add-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.watermark-file-button{display:flex!important;align-items:center;justify-content:center;cursor:pointer}.watermark-hint{margin:9px 1px}.watermark-layer-list{display:grid;gap:5px;margin-top:8px}
.watermark-layer-row{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:7px;width:100%;text-align:left;border:1px solid #30363a;background:#202426;color:var(--text);border-radius:6px;padding:7px;cursor:pointer}.watermark-layer-row.selected{border-color:#28d391;background:#193027}.watermark-layer-visibility{display:grid;place-items:center;color:#28d391;font-size:12px}.watermark-layer-copy{display:grid;min-width:0}.watermark-layer-copy strong,.watermark-layer-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.watermark-layer-copy strong{font-size:11px}.watermark-layer-copy small{font-size:9px;color:var(--muted)}.watermark-empty{padding:12px 4px;text-align:center}
.watermark-main{min-width:0}.watermark-canvas{position:relative;width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,#293136,#14191c);border:1px solid #465057;border-radius:8px;overflow:hidden;user-select:none;touch-action:none}.watermark-photo-placeholder{position:absolute;inset:0;display:grid;place-items:center;align-content:center;color:#718087;gap:3px}.watermark-photo-placeholder span{font-weight:900;letter-spacing:.14em;font-size:14px}.watermark-photo-placeholder small{font-size:10px}.watermark-canvas-layers{position:absolute;inset:0}
.watermark-preview-layer{position:absolute;display:flex;align-items:center;justify-content:center;border:1px dashed transparent;cursor:move;overflow:visible}.watermark-preview-layer.selected{border-color:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.45)}.watermark-preview-layer.hidden-layer{opacity:.18!important}.watermark-preview-layer img{width:100%;height:100%;object-fit:contain;pointer-events:none}.watermark-text-render{width:100%;line-height:1.05;white-space:pre-wrap;overflow:hidden;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.65)}.wm-resize-handle{display:none;position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;background:#fff;border:2px solid #17191b;border-radius:50%;cursor:nwse-resize}.watermark-preview-layer.selected .wm-resize-handle{display:block}.watermark-canvas-caption{text-align:center;color:var(--muted);font-size:9px;margin-top:5px}
.watermark-properties label{display:grid;gap:4px;font-size:10px;color:var(--muted);margin:8px 0}.watermark-prop-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 7px}.watermark-colour{height:34px;padding:3px}.watermark-inline-check{align-content:end;padding-bottom:5px}.watermark-font-upload{border-top:1px solid #2d3336;padding-top:8px}.watermark-order-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:9px 0}.watermark-delete{width:100%}
@media(max-width:1150px){.watermark-workspace{grid-template-columns:180px minmax(380px,1fr)}.watermark-properties{grid-column:1/-1;min-height:0}.watermark-properties #wmProperties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 12px}.watermark-properties #wmProperties>.sectionTitle,.watermark-properties #wmProperties>.watermark-order-actions,.watermark-properties #wmProperties>.watermark-delete{grid-column:1/-1}}
@media(max-width:800px){.photo-page-grid{grid-template-columns:1fr}.watermark-editor-head{display:grid}.watermark-workspace{grid-template-columns:1fr}.watermark-main{grid-row:1}.watermark-sidebar,.watermark-properties{min-height:0}.watermark-properties #wmProperties{display:block}}


/* v0.8.7.3 Room editor drift + watermark save fixes */
.room-editor-scroll{
  scrollbar-gutter:stable;
}
.room-detail-grid,
.room-detail-grid > *,
.room-detail-grid .form-grid,
.room-detail-grid .form-grid > label{
  min-width:0;
}
.room-detail-grid .form-grid{
  align-items:start;
}
.room-detail-grid .input,
.room-detail-grid textarea{
  width:100%;
  max-width:100%;
}
.watermark-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
#saveWatermark.watermark-unsaved{
  box-shadow:0 0 0 1px rgba(40,211,145,.35) inset;
}
@media(max-width:760px){
  .watermark-header-actions{
    justify-content:flex-start;
  }
}


/* v0.8.7.5 Room details alignment + live watermark preview */
.room-editor-panel[data-room-panel="details"] .editor-section{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}
.room-editor-panel[data-room-panel="details"] .form-grid{
  width:100%;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.room-editor-panel[data-room-panel="details"] label,
.room-editor-panel[data-room-panel="details"] .input,
.room-editor-panel[data-room-panel="details"] textarea{
  min-width:0;
  width:100%;
}
.watermark-canvas{container-type:inline-size}
.watermark-text-render{
  display:flex;
  align-items:center;
  width:100%;
  height:100%;
  line-height:1.05;
  white-space:pre-wrap;
  overflow:hidden;
  pointer-events:none;
}


/* v0.8.7.6 stronger Room editor alignment */
.room-editor-scroll{
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable;
}
.room-editor-panel[data-room-panel="details"]{
  width:100%;
  min-width:0;
}
.room-editor-panel[data-room-panel="details"] .editor-section{
  box-sizing:border-box;
  width:100%;
}
.room-editor-panel[data-room-panel="details"] .room-detail-grid{
  box-sizing:border-box;
  grid-template-columns:170px minmax(0,1fr)!important;
  width:100%;
}
.room-editor-panel[data-room-panel="details"] .graphic-field{
  width:170px;
  min-width:170px;
  max-width:170px;
}
.room-editor-panel[data-room-panel="details"] .form-grid{
  min-width:0;
  width:100%;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
}
.watermark-text-render{
  box-sizing:border-box;
  padding:0 2px;
}
@media(max-width:700px){
  .room-editor-panel[data-room-panel="details"] .room-detail-grid{
    grid-template-columns:1fr!important;
  }
  .room-editor-panel[data-room-panel="details"] .graphic-field{
    width:100%;
    min-width:0;
    max-width:none;
  }
}


/* v0.8.7.7 authoritative Room Details + watermark text formatting */
.room-editor-scroll{
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
  padding-left:9px!important;
  padding-right:9px!important;
}
.room-editor-panel[data-room-panel="details"]{
  box-sizing:border-box;
  width:100%;
  min-width:0;
}
.room-editor-panel[data-room-panel="details"] .editor-section{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin-left:0!important;
  margin-right:0!important;
}
.room-editor-panel[data-room-panel="details"] .room-detail-grid{
  display:grid!important;
  grid-template-columns:170px minmax(0,1fr)!important;
  gap:9px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.room-editor-panel[data-room-panel="details"] .graphic-field{
  width:170px!important;
  min-width:170px!important;
  max-width:170px!important;
  justify-self:start!important;
}
.room-editor-panel[data-room-panel="details"] .form-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.room-editor-panel[data-room-panel="details"] .form-grid > label,
.room-editor-panel[data-room-panel="details"] .input,
.room-editor-panel[data-room-panel="details"] textarea{
  box-sizing:border-box!important;
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
}
.watermark-text-render{
  display:flex!important;
  width:100%!important;
  height:100%!important;
  align-items:center!important;
  box-sizing:border-box!important;
  white-space:pre-wrap!important;
  overflow:hidden!important;
}
@media(max-width:700px){
  .room-editor-panel[data-room-panel="details"] .room-detail-grid{
    grid-template-columns:1fr!important;
  }
  .room-editor-panel[data-room-panel="details"] .graphic-field{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}

/* v0.8.7.8 exact screenshot layout fixes */
.room-editor-panel[data-room-panel="details"] .room-detail-grid{display:grid!important;grid-template-columns:170px minmax(0,1fr)!important;align-items:start!important;gap:10px!important;width:100%!important;min-width:0!important}
.room-editor-panel[data-room-panel="details"] .room-detail-grid>.graphic-field{grid-column:1!important;grid-row:1!important;box-sizing:border-box!important;width:170px!important;min-width:170px!important;max-width:170px!important;overflow:hidden!important}
.room-editor-panel[data-room-panel="details"] .room-detail-grid>.form-grid{grid-column:2!important;grid-row:1!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important}
.room-editor-panel[data-room-panel="details"] .room-detail-grid>.form-grid>*,.room-editor-panel[data-room-panel="details"] input,.room-editor-panel[data-room-panel="details"] textarea,.room-editor-panel[data-room-panel="details"] select{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;width:100%!important}
#wmProperties{box-sizing:border-box!important;min-width:0!important;overflow:hidden!important}
#wmProperties label{box-sizing:border-box!important;min-width:0!important;max-width:100%!important}
#wmProperties input,#wmProperties select{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;width:100%!important}
#wmFontFamily{overflow:hidden!important;text-overflow:ellipsis!important}
#wmFontUpload{display:block!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;font-size:9px!important;overflow:hidden!important}
#wmFontUpload::file-selector-button{max-width:88px!important;padding:5px 6px!important;margin-right:4px!important;font-size:9px!important}
@media(max-width:700px){.room-editor-panel[data-room-panel="details"] .room-detail-grid{grid-template-columns:1fr!important}.room-editor-panel[data-room-panel="details"] .room-detail-grid>.graphic-field,.room-editor-panel[data-room-panel="details"] .room-detail-grid>.form-grid{grid-column:1!important;grid-row:auto!important;width:100%!important;min-width:0!important;max-width:100%!important}}

/* v0.8.7.9 Follow Up fixed delay unit */
.delay-controls{align-items:center}
.delay-unit-text{display:flex;align-items:center;min-height:36px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.025);color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}

/* v0.8.8.1 room-specific Facebook photo settings */
.room-social-photo-section{margin-top:14px}
.room-social-album-card{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.018)}
.room-social-album-grid{margin-top:10px}
.room-social-phrase-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:14px}
.room-social-phrase-grid>label{min-width:0}
.room-social-phrase-title{display:block;font-weight:800;margin-bottom:3px}
.room-social-phrases{width:100%;min-height:190px;resize:vertical;box-sizing:border-box;margin-top:7px}
.room-social-vars{margin-top:9px}
.room-social-vars code{font-size:11px}
.room-social-status{margin-top:9px;padding:8px 10px;border-radius:8px;font-size:12px;font-weight:700}
.room-social-status.configured{border:1px solid rgba(61,190,113,.45);background:rgba(61,190,113,.08)}
.room-social-status.attention{border:1px solid rgba(228,177,62,.5);background:rgba(228,177,62,.08)}
@media(max-width:850px){.room-social-phrase-grid{grid-template-columns:1fr}}

/* v0.8.8.3 calendar photo marker + general social links */
.session-photo-sent{display:inline-block;margin-left:4px;font-size:13px;line-height:1;vertical-align:-1px;filter:saturate(.9)}
.settings-social-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}

/* v0.8.8.9 Photo library */
.photo-library-card{margin-top:12px}
.photo-library-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}
.photo-library-head h3{margin:6px 0 3px}
.photo-library-tools{display:flex;align-items:center;gap:10px;min-width:min(420px,100%)}
.photo-library-tools .input{min-width:260px}
.photo-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.photo-library-item{display:grid;padding:0;text-align:left;border:1px solid #30363a;background:#181b1d;color:var(--text);border-radius:10px;overflow:hidden;cursor:pointer}
.photo-library-item:hover{border-color:#4a6758;background:#1c2220}
.photo-library-item img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#0f1112}
.photo-library-copy{display:grid;gap:3px;padding:10px}
.photo-library-copy strong{font-size:13px}
.photo-library-copy small{font-size:10px;color:var(--muted)}
.photo-library-empty{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted);border:1px dashed #343b3f;border-radius:10px}
@media(max-width:700px){.photo-library-head{align-items:stretch;flex-direction:column}.photo-library-tools{min-width:0}.photo-library-tools .input{min-width:0;flex:1}}

/* v0.8.8.11 Watermark precision tools */
.watermark-snap-controls{display:grid;gap:7px;margin:10px 0;padding:9px;border:1px solid #30363a;background:#141719;border-radius:8px}
.watermark-snap-controls label{display:grid;gap:4px;font-size:10px;color:var(--muted)}
.watermark-snap-controls .checkbox-row{display:flex;align-items:center;gap:7px;margin:0}
.watermark-center-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:9px 0}
.wm-center-guide{position:absolute;z-index:999;pointer-events:none;opacity:.62}
.wm-center-guide-v{top:0;bottom:0;left:50%;width:1px;background:rgba(40,211,145,.9);transform:translateX(-.5px)}
.wm-center-guide-h{left:0;right:0;top:50%;height:1px;background:rgba(40,211,145,.9);transform:translateY(-.5px)}
@media(max-width:1150px){.watermark-properties #wmProperties>.watermark-center-actions{grid-column:1/-1}}

/* v0.8.8.15 difficulty rating custom symbol controls */
.difficulty-icon-upload{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.difficulty-image-preview{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.difficulty-image-preview img{width:24px;height:24px;object-fit:contain;border-radius:4px}
