:root{--accent:#0b6b57;--accent2:#08483d;--accent-soft:#e9f6f1;--bg:#f5f7f6;--card:#fff;--text:#17231f;--muted:#6f7c77;--line:#e1e7e4;--danger:#b64040;--warning:#a46b00;--success:#147455;--shadow:0 12px 34px rgba(22,55,46,.07);--radius:18px;--sidebar:238px}
html[data-theme=ocean]{--accent:#176aa5;--accent2:#104b77;--accent-soft:#e9f3fb}html[data-theme=royal]{--accent:#5447b7;--accent2:#352b81;--accent-soft:#efedff}html[data-theme=sunset]{--accent:#d45e35;--accent2:#9e3c1f;--accent-soft:#fff0ea}html[data-theme=plum]{--accent:#8b3f7d;--accent2:#5f2855;--accent-soft:#f8edf6}html[data-theme=slate]{--accent:#4b6175;--accent2:#334657;--accent-soft:#eef2f5}html[data-theme=rose]{--accent:#bf496d;--accent2:#8a2c49;--accent-soft:#fff0f4}html[data-theme=amber]{--accent:#ae7208;--accent2:#765008;--accent-soft:#fff7e6}html[data-theme=mint]{--accent:#2f8f75;--accent2:#216551;--accent-soft:#eaf8f3}html[data-theme=cobalt]{--accent:#285db7;--accent2:#1e4382;--accent-soft:#edf3ff}html[data-theme=graphite]{--accent:#3d4b5c;--accent2:#26313e;--accent-soft:#eef1f4}html[data-theme=burgundy]{--accent:#8b3440;--accent2:#62242d;--accent-soft:#f9edef}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 12px;color:var(--text);outline:0;min-height:44px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{display:grid;gap:6px;font-weight:700;color:#36453f}label small{font-weight:500;color:var(--muted)}textarea{resize:vertical}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,var(--accent2),color-mix(in srgb,var(--accent2) 84%,#000));padding:20px 14px;color:#fff;overflow:auto;z-index:50}.brand{display:flex;align-items:center;gap:11px;color:#fff;padding:4px 8px 20px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#efcf82,#c69333);display:grid;place-items:center;color:#17382f;font-family:Georgia,serif;font-size:22px;font-weight:900}.brand b{display:block;font-size:18px}.brand small{display:block;color:#bed4cd;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.nav{display:grid;gap:3px}.nav-section{padding:16px 10px 5px;font-size:9px;font-weight:900;letter-spacing:.14em;color:#9fc0b7;text-transform:uppercase}.nav a{display:flex;align-items:center;gap:11px;color:#dceae6;padding:10px 11px;border-radius:10px;font-weight:700}.nav a>span{width:22px;text-align:center;font-size:16px}.nav a:hover{background:#ffffff12;color:#fff}.nav a.active{background:#fff;color:var(--accent2);box-shadow:0 8px 20px #00000018}.sidebar-foot{margin:22px 9px 0;padding-top:14px;border-top:1px solid #ffffff18;color:#9fc0b7;font-size:10px}.workspace{margin-left:var(--sidebar);min-width:0}.topbar{height:78px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:rgba(245,247,246,.92);backdrop-filter:blur(12px);position:sticky;top:0;z-index:30;border-bottom:1px solid transparent}.topbar-left{display:flex;align-items:center;gap:12px}.topbar h1{font-size:22px;margin:1px 0 0;letter-spacing:-.02em}.eyebrow{font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.eyebrow.light{color:#d4e8e2}.topbar-actions{display:flex;align-items:center;gap:9px}.menu-btn{display:none;width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:11px}.user-menu{display:flex;align-items:center;gap:8px}.user-menu>span:last-child b,.user-menu>span:last-child small{display:block}.user-menu small{color:var(--muted);font-size:10px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent);font-weight:900}.icon-btn{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:11px;cursor:pointer}.page{padding:18px 28px 36px;max-width:1600px;margin:0 auto}footer{text-align:center;color:var(--muted);font-size:9px;padding:0 20px 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 14px;color:var(--text);font-weight:800;cursor:pointer}.btn:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));transform:translateY(-1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-light{background:#fff;color:var(--accent2);border-color:#fff}.btn-ghost{background:#ffffff13;border-color:#ffffff3d;color:#fff}.btn-danger{background:#fff2f2;border-color:#f1cccc;color:var(--danger)}.btn-xl{min-height:48px;padding:12px 18px;font-size:14px}.btn-block{width:100%;margin-top:8px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card h2,.card h3{margin:0}.card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:15px}.card-head p{margin:3px 0 0}.muted{color:var(--muted)}.grid{display:grid;gap:16px;margin-top:16px}.grid.two,.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{display:grid;gap:12px}.form-grid.three,.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.two,.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.span2{grid-column:span 2}.stack{display:grid;gap:12px}.flash{margin:0 28px 4px;padding:12px 14px;border-radius:12px;display:flex;gap:8px;align-items:center}.flash.success{background:#e9f8f0;color:#176544;border:1px solid #c9e9d8}.flash.error{background:#fff0ee;color:#9c352c;border:1px solid #f0c8c3}.welcome-panel{background:linear-gradient(120deg,var(--accent2),var(--accent));border-radius:22px;padding:28px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 18px 44px color-mix(in srgb,var(--accent) 20%,transparent)}.welcome-panel h2{font-size:30px;margin:7px 0 4px;letter-spacing:-.03em}.welcome-panel p{margin:0;color:#d6e7e2}.welcome-actions{display:flex;gap:8px;flex-wrap:wrap}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.stat-grid.compact{grid-template-columns:repeat(5,minmax(0,1fr))}.stat-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:0 7px 22px #163e3408;color:var(--text);display:block}.stat-card span,.stat-card small{display:block;color:var(--muted)}.stat-card b{display:block;font-size:26px;margin:5px 0;color:var(--text);letter-spacing:-.03em}.stat-card small{font-size:10px}.warn-card{border-color:#ecd9b8;background:#fffaf1}.success-card{border-color:#cce7da;background:#f4fbf7}.danger-lite{border-color:#efdddd}.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.action-grid a{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;color:var(--text);display:grid;grid-template-columns:42px 1fr;column-gap:10px;align-items:center}.action-grid a>span{grid-row:1/3;width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:19px;font-weight:900}.action-grid b{font-size:14px}.action-grid small{color:var(--muted)}.list-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text)}.list-row:last-child{border:0}.list-row b,.list-row small{display:block}.list-row small{color:var(--muted);margin-top:2px}.money-list{display:grid;gap:2px}.money-list>div,.detail-list>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.money-list>div:last-child,.detail-list>div:last-child{border:0}.money-list span,.detail-list span{color:var(--muted)}.money-list .balance b{color:var(--warning)}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:680px}.table-wrap th{text-align:left;padding:10px 12px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line)}.table-wrap td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}.table-sub{display:block;color:var(--muted);font-size:10px}.strong-link{font-weight:850;color:var(--text)}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:850}.empty,.empty-state{padding:24px;text-align:center;color:var(--muted)}.empty-state b,.empty-state span{display:block}.empty-state span{font-size:11px;margin-top:4px}.front-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.rack-card{padding:20px}.rack-head{align-items:center}.legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:10px}.legend span{display:flex;align-items:center;gap:5px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.ready{background:#35a979}.dot.occupied{background:var(--accent)}.dot.arrival{background:#d29a2f}.dot.service{background:#c85f5f}.rack-tools{display:flex;gap:8px}.rack-tools input{width:210px}.room-rack{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.room-tile{min-height:175px;border:1px solid var(--line);border-radius:14px;padding:13px;color:var(--text);display:flex;flex-direction:column;gap:9px;position:relative;overflow:hidden;background:#fff}.room-tile:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#36a878}.room-tile.state-occupied:before{background:var(--accent)}.room-tile.state-arrival:before{background:#d39a2e}.room-tile.state-service:before{background:#c55d5d}.room-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.room-top{display:flex;justify-content:space-between;gap:8px}.room-top small,.guest-block small{display:block;color:var(--muted);font-size:10px}.room-no{font-size:23px}.room-state{font-size:9px;font-weight:850;text-transform:uppercase;color:var(--muted)}.guest-block{margin-top:2px}.guest-block b{font-size:13px}.occupancy-count{display:flex;align-items:center;gap:8px;background:var(--accent-soft);border-radius:10px;padding:8px}.occupancy-count strong{font-size:20px;color:var(--accent)}.occupancy-count span{font-size:10px}.room-dates{margin-top:auto;color:var(--muted);font-size:10px}.vacant-message{color:var(--muted);margin-top:10px}.booking-progress{display:grid;grid-template-columns:repeat(4,1fr);max-width:700px;margin:0 auto 16px;background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.booking-progress span{padding:9px;text-align:center;color:var(--muted);font-size:10px;font-weight:800;border-right:1px solid var(--line)}.booking-progress span:last-child{border:0}.booking-progress span.active{background:var(--accent-soft);color:var(--accent)}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.booking-main{display:grid;gap:14px}.booking-card{padding:20px}.section-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.section-heading h2{font-size:18px}.section-heading p{margin:3px 0 0;color:var(--muted)}.step{width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:900;flex:0 0 30px}.guest-search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-bottom:10px}.search-results{display:grid;gap:7px;margin-bottom:10px}.guest-result{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 12px;text-align:left;cursor:pointer}.guest-result:hover{border-color:var(--accent);background:var(--accent-soft)}.guest-result b,.guest-result small,.guest-result span{display:block}.guest-result small{color:var(--muted);margin-top:2px}.guest-result span{font-size:9px;color:var(--accent);margin-top:3px}.selected-guest{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));padding:10px 12px;border-radius:10px;margin-bottom:12px;color:var(--accent2)}.advanced{border:1px solid var(--line);border-radius:12px;margin-top:12px;overflow:hidden}.advanced summary{padding:11px 13px;cursor:pointer;font-weight:800;display:flex;justify-content:space-between;gap:10px;background:#fafbfb}.advanced summary span{color:var(--muted);font-size:10px}.advanced-body{padding:13px}.document-box{margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:11px;display:grid;grid-template-columns:1fr 150px 1fr;gap:10px;align-items:center}.document-box b,.document-box small{display:block}.document-box small{color:var(--muted)}.room-quantity-bar{display:grid;grid-template-columns:1.6fr 120px auto auto;gap:9px;align-items:end;background:#f8faf9;border:1px solid var(--line);padding:12px;border-radius:13px}.availability-message{padding:8px 2px;color:var(--muted);font-size:11px}.room-builder{display:grid;gap:10px}.room-line{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff}.room-line.no-availability{border-color:#e5b9b9;background:#fff9f8}.room-line-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.room-line-head>div{display:flex;gap:9px;align-items:center}.room-badge{background:var(--accent-soft);color:var(--accent);padding:5px 8px;border-radius:8px;font-weight:850;font-size:10px}.availability-label{font-size:11px}.remove-room{border:0;background:none;color:var(--danger);cursor:pointer;font-size:10px;font-weight:800}.room-simple{display:grid;grid-template-columns:100px 100px 1fr;gap:10px;align-items:end;margin-top:10px}.line-total{text-align:right;font-size:16px;color:var(--accent);padding-bottom:10px}.capacity-note{font-size:10px;color:var(--muted);margin-top:8px}.add-another{margin-top:10px}.booking-summary{position:sticky;top:96px}.booking-summary h2{font-size:20px;margin:5px 0 14px}.summary-row{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.summary-row span{color:var(--muted)}.summary-row.total{border:0;padding-top:16px}.summary-row.total b{color:var(--accent);font-size:18px}.summary-help{background:var(--accent-soft);padding:10px;border-radius:10px;color:var(--accent2);font-size:10px;margin:8px 0 12px}.reservation-head{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;justify-content:space-between;gap:20px;align-items:center}.reservation-head h2{margin:7px 0 3px;font-size:23px}.reservation-head p{margin:0;color:var(--muted)}.reservation-head-actions,.action-buttons{display:flex;gap:8px;flex-wrap:wrap}.stay-actions{margin-top:16px;display:flex;justify-content:space-between;gap:20px;align-items:center}.stay-actions p{margin:4px 0 0}.reservation-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.reservation-room-card{border:1px solid var(--line);border-radius:14px;padding:14px}.room-card-head{display:flex;justify-content:space-between}.room-card-head small,.room-card-head b,.room-card-head span{display:block}.room-card-head b{font-size:25px}.room-card-head span{color:var(--muted);font-size:10px}.occupancy-badge{height:max-content;background:var(--accent-soft);color:var(--accent)!important;padding:5px 8px;border-radius:999px}.room-person{padding:11px 0;border-bottom:1px solid var(--line)}.room-person b,.room-person small{display:block}.room-person small{color:var(--muted)}.room-facts{display:flex;gap:8px;flex-wrap:wrap;padding:9px 0;color:var(--muted);font-size:10px}.note-box{background:#f8faf9;border-radius:10px;padding:10px;margin-top:8px}.danger-details{margin-top:16px;border:1px solid #eed4d4;border-radius:12px;background:#fff}.danger-details summary{padding:12px;color:var(--danger);font-weight:800;cursor:pointer}.danger-body{padding:12px;display:flex;gap:8px}.danger-body form{display:flex;gap:7px}.payment-hero{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;justify-content:space-between;align-items:center;gap:18px}.payment-hero h2{margin:3px 0}.payment-hero p{margin:0;color:var(--muted)}.balance-box{background:#fff7e8;border:1px solid #ecd7ae;border-radius:14px;padding:13px 18px;text-align:right}.balance-box.paid{background:#edf8f3;border-color:#c9e7d8}.balance-box span,.balance-box b{display:block}.balance-box span{font-size:9px;font-weight:900;color:var(--muted)}.balance-box b{font-size:24px;margin-top:3px}.money-input{font-size:22px;font-weight:850}.transaction-list{display:grid}.transaction-list>div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.transaction-list>div:last-child{border:0}.transaction-list span{display:grid;grid-template-columns:30px 1fr;column-gap:9px}.transaction-list .tx{grid-row:1/3;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-style:normal;font-weight:900}.tx.charge{background:#fff0ee;color:var(--danger)}.tx.payment{background:#eaf8f1;color:var(--success)}.transaction-list small{color:var(--muted)}.transaction-list .positive{color:var(--success)}.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:12px;padding:12px}.calendar-toolbar>div:last-child{text-align:right}.calendar-range{text-align:center}.calendar-range b,.calendar-range span{display:block}.calendar-range span{color:var(--muted);font-size:10px}.calendar-card{padding:12px}.calendar-help{color:var(--muted);font-size:10px;padding:3px 5px 10px}.calendar-scroll{overflow:auto}.calendar-grid{display:grid;grid-template-columns:130px repeat(var(--days),minmax(105px,1fr));min-width:max-content;border:1px solid var(--line);border-radius:12px;overflow:hidden}.cal-room,.cal-date,.cal-cell{min-height:58px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cal-head,.cal-date{background:#f7f9f8;position:sticky;top:0;z-index:3}.cal-room{position:sticky;left:0;background:#fff;z-index:2}.cal-room b,.cal-room small,.cal-date b,.cal-date span,.cal-cell b,.cal-cell small{display:block}.cal-room small,.cal-date span,.cal-cell small{color:var(--muted);font-size:9px}.cal-cell.booked{background:var(--accent-soft);color:var(--accent2);border-left:3px solid var(--accent)}.cal-cell.today,.cal-date.today{box-shadow:inset 0 0 0 2px #d6a43a}.mobile-nav{display:none}.scrim{display:none}
html[data-density=compact] body{font-size:13px}html[data-density=compact] .card{padding:15px}html[data-density=spacious] body{font-size:15px}html[data-density=spacious] .card{padding:24px}
@media(max-width:1200px){.room-rack{grid-template-columns:repeat(4,minmax(0,1fr))}.reservation-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-layout{grid-template-columns:minmax(0,1fr) 270px}}
@media(max-width:980px){.sidebar{transform:translateX(-105%);transition:.2s}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0}.menu-btn{display:block}.scrim.show{display:block;position:fixed;inset:0;background:#061c1890;z-index:40}.page{padding:15px 18px 90px}.topbar{padding:0 18px}.room-rack{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);inset:auto 0 0 0;height:68px;background:#fff;border-top:1px solid var(--line);z-index:35;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav a{display:grid;place-items:center;align-content:center;gap:1px;color:var(--muted);font-size:17px}.mobile-nav a small{font-size:9px}.mobile-nav a.active{color:var(--accent)}.mobile-nav .mobile-new{width:54px;height:54px;border-radius:50%;background:var(--accent);color:#fff;margin:-13px auto 0;box-shadow:0 9px 24px color-mix(in srgb,var(--accent) 30%,transparent)}.grid.two,.grid-2{grid-template-columns:1fr}.reservation-room-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.topbar{height:68px}.topbar h1{font-size:18px}.user-menu>span:last-child,.new-booking{display:none}.page{padding:12px 12px 86px}.welcome-panel{display:block;padding:22px}.welcome-panel h2{font-size:24px}.welcome-actions{margin-top:15px}.stat-grid,.stat-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card{padding:13px}.stat-card b{font-size:22px}.action-grid{grid-template-columns:1fr 1fr;gap:8px}.action-grid a{padding:12px}.room-rack{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.room-tile{min-height:160px;padding:11px}.rack-head{display:block}.rack-tools{margin-top:12px;display:grid;grid-template-columns:1fr 1fr}.rack-tools input{width:auto}.form-grid.three,.form-grid.cols-3{grid-template-columns:1fr 1fr}.guest-search{grid-template-columns:1fr 1fr}.guest-search input{grid-column:1/-1}.room-quantity-bar{grid-template-columns:1fr 100px}.room-quantity-bar button{width:100%}.document-box{grid-template-columns:1fr}.reservation-head,.stay-actions,.payment-hero{display:block}.reservation-head-actions,.action-buttons{margin-top:13px}.reservation-room-grid{grid-template-columns:1fr}.calendar-toolbar{grid-template-columns:1fr;gap:10px}.calendar-toolbar>div,.calendar-toolbar>div:last-child{text-align:center}.calendar-toolbar>div:first-child{display:flex;justify-content:center;gap:5px}.danger-body,.danger-body form{display:grid}.booking-progress{font-size:9px}.booking-progress span{padding:8px 3px}.flash{margin:0 12px 4px}}
@media(max-width:480px){.form-grid.three,.form-grid.cols-3,.form-grid.two,.form-grid.cols-2{grid-template-columns:1fr}.span2{grid-column:auto}.room-rack{grid-template-columns:1fr 1fr}.room-simple{grid-template-columns:80px 80px 1fr}.action-grid{grid-template-columns:1fr}.rack-tools{grid-template-columns:1fr}.welcome-actions .btn{width:100%}.card{padding:14px;border-radius:14px}.booking-card{padding:14px}.section-heading{gap:9px}.room-quantity-bar{grid-template-columns:1fr}.room-quantity-bar label,.room-quantity-bar button{grid-column:1}.reservation-room-grid{grid-template-columns:1fr}}
:root{--bg:#f4f7f6;--surface:#fff;--surface2:#f8faf9;--ink:#12231f;--muted:#6c7d78;--line:#dce6e2;--brand:#0c6b55;--brand2:#0a5747;--brand-soft:#e5f4ef;--gold:#c99c45;--danger:#b8463d;--warn:#b57919;--ok:#14815f;--shadow:0 10px 32px rgba(22,52,45,.08);--radius:18px;--sidebar:224px}
html[data-theme=ocean]{--brand:#146e8d;--brand2:#105a74;--brand-soft:#e5f3f8}.html{}html[data-theme=royal]{--brand:#4b56a8;--brand2:#384286;--brand-soft:#eceefd}html[data-theme=sunset]{--brand:#b85c35;--brand2:#93462a;--brand-soft:#fbede6}html[data-theme=plum]{--brand:#7d4d81;--brand2:#663a6a;--brand-soft:#f4eaf5}html[data-theme=slate]{--brand:#455b67;--brand2:#354852;--brand-soft:#edf2f4}html[data-theme=rose]{--brand:#a74e6d;--brand2:#8b3e59;--brand-soft:#f8e9ef}html[data-theme=amber]{--brand:#9d6a16;--brand2:#79500e;--brand-soft:#fbf1df}html[data-theme=mint]{--brand:#25816c;--brand2:#1a6655;--brand-soft:#e7f5f1}html[data-theme=cobalt]{--brand:#245d9c;--brand2:#1d4979;--brand-soft:#e8eff8}html[data-theme=graphite]{--brand:#3e4a4d;--brand2:#2d3739;--brand-soft:#eef1f1}html[data-theme=burgundy]{--brand:#7b3747;--brand2:#642b39;--brand-soft:#f5e9ec}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);background:linear-gradient(180deg,var(--brand2),#073b32);color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:30;box-shadow:8px 0 30px rgba(6,38,32,.08)}.brand{display:flex;align-items:center;gap:11px;padding:4px 5px 18px}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#e7c267,var(--gold));color:#15332c;display:grid;place-items:center;font-family:Georgia,serif;font-size:22px;font-weight:800}.brand b{font-size:16px}.brand small{display:block;color:#b9d4cc;margin-top:1px;font-size:10px;letter-spacing:.11em;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:4px;overflow:auto;padding-right:2px}.nav-label{font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:#94bcb1;padding:9px 10px 4px}.nav>a,.nav-more>summary,.nav-more div>a{min-height:40px;border-radius:11px;padding:9px 11px;display:flex;align-items:center;gap:10px;color:#d9ebe6}.nav>a span,.nav-more>summary span{width:18px;text-align:center;color:#a9cdc4}.nav>a:hover,.nav-more div>a:hover,.nav>a.active,.nav-more div>a.active{background:rgba(255,255,255,.12);color:#fff}.nav>a.active{box-shadow:inset 3px 0 #e8c267}.nav-more{margin-top:2px}.nav-more>summary{list-style:none;cursor:pointer}.nav-more>summary::-webkit-details-marker{display:none}.nav-more div{padding:3px 0 4px 29px;display:grid;gap:2px}.nav-more div>a{min-height:34px;padding:7px 9px;font-size:12px}.sidebar-help{margin-top:auto;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:13px;padding:11px}.sidebar-help small{display:block;color:#b8d0ca}.sidebar-help a{display:block;font-weight:800;margin-top:5px}.sidebar-foot{padding:12px 4px 0;color:#83ada2;font-size:10px}.workspace{margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column}.topbar{height:76px;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:20}.topbar-left{display:flex;align-items:center;gap:12px}.eyebrow{display:block;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:800}.topbar h1{font-size:20px;line-height:1.1;margin:3px 0 0}.menu-btn{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;width:40px;height:40px}.topbar-actions{display:flex;align-items:center;gap:10px}.user-menu{display:flex;align-items:center;gap:8px}.avatar,.guest-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:900}.user-menu small{display:block;color:var(--muted);font-size:10px}.icon-btn{border:0;background:#f1f5f3;border-radius:10px;width:36px;height:36px}.page{width:min(1520px,100%);margin:0 auto;padding:22px 26px 50px;flex:1}footer{text-align:center;color:#8a9995;font-size:10px;padding:10px 20px 25px}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);min-height:40px;border-radius:11px;padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:800}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,55,46,.08)}.btn-primary,.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn-soft{background:var(--brand-soft);color:var(--brand);border-color:transparent}.btn-light{background:#fff;color:var(--brand);border-color:#fff}.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25)}.btn-xl,.btn-lg{min-height:48px;padding:12px 18px}.btn-block{width:100%}.btn-danger{background:#fff1ef;color:var(--danger);border-color:#f0c8c2}.flash{margin:14px 26px 0;padding:12px 15px;border-radius:12px;display:flex;gap:8px}.flash.success{background:#e7f6f0;color:#16644e}.flash.error{background:#fff0ee;color:#9c3d34}.card,.booking-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:18px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.card-head h2,.card h2,.booking-panel h2{font-size:18px;margin:2px 0 0}.card-head p,.muted{color:var(--muted);margin:4px 0 0}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.hero{background:linear-gradient(125deg,var(--brand2),var(--brand));border-radius:22px;color:#fff;padding:26px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:0 18px 42px rgba(10,82,66,.16)}.hero-kicker{font-size:9px;letter-spacing:.18em;color:#c9e7df;font-weight:900}.hero h2{font-size:31px;margin:6px 0}.hero p{margin:0;color:#d6ebe6}.hero-actions{display:flex;gap:9px;flex-wrap:wrap}.quick-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0}.quick-strip>a,.quick-strip>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px 15px;display:flex;flex-direction:column;gap:2px;min-height:86px}.quick-strip span{color:var(--muted);font-size:11px}.quick-strip b{font-size:22px}.quick-strip small{color:#899792}.workflow-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.workflow-row a{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:14px;display:flex;align-items:center;gap:11px}.workflow-row i{font-style:normal;width:31px;height:31px;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-weight:900;display:grid;place-items:center}.workflow-row small{display:block;color:var(--muted);margin-top:2px;font-size:11px}.arrival-row,.action-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid var(--line)}.arrival-row:first-of-type,.action-row:first-of-type{border-top:0}.arrival-row>div,.action-row>div{flex:1}.arrival-row small,.action-row small{display:block;color:var(--muted);margin-top:2px}.arrival-rooms{color:var(--muted);font-size:11px}.finance-cards{display:grid;gap:9px}.finance-cards>div{background:var(--surface2);padding:13px;border-radius:12px;display:flex;justify-content:space-between;gap:10px}.finance-cards .attention{background:#fff8e8}.empty-state{padding:30px 15px;text-align:center;color:var(--muted)}.empty-state b{display:block;color:var(--ink);margin-bottom:3px}.clean-table,table{width:100%;border-collapse:collapse}.clean-table th,table th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:10px;border-bottom:1px solid var(--line)}.clean-table td,table td{padding:11px 10px;border-bottom:1px solid #edf2f0;vertical-align:middle}.num{text-align:right!important}.table-sub{display:block;color:var(--muted);font-size:10px;margin-top:2px}.strong-link{font-weight:800}.status-pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef3f1;color:#51635e;font-size:10px;font-weight:800}.status-checked_in{background:#e4f5ef;color:#14634c}.status-confirmed,.status-guaranteed{background:#e9f1fb;color:#2c5f8d}.status-cancelled,.status-no_show{background:#f9eae8;color:#99433b}.text-link{color:var(--brand);font-weight:800}.count{min-width:28px;height:28px;border-radius:999px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-weight:900}.front-command{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.front-command h2{font-size:22px;margin:0}.front-command p{margin:4px 0 0;color:var(--muted)}.front-actions{display:flex;gap:8px;flex-wrap:wrap}.front-stats{margin-top:0}.rack-card{padding:0;overflow:hidden}.rack-toolbar{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fbfcfc}.rack-legend{display:flex;gap:13px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.rack-legend span{display:flex;align-items:center;gap:5px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#b8c6c1}.dot.ready{background:#36a57e}.dot.occupied{background:#2b6ba1}.dot.arrival{background:#d49933}.dot.service{background:#c45b51}.rack-tools{display:flex;gap:7px}.rack-tools input{min-width:230px}.room-rack{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}.room-tile{min-height:164px;padding:13px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;background:#fff;transition:.15s}.room-tile:hover{z-index:2;box-shadow:0 8px 24px rgba(16,58,49,.14);transform:translateY(-1px)}.room-tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#39a981}.room-tile.state-occupied:before{background:#3776a8}.room-tile.state-arrival:before{background:#dba644}.room-tile.state-service:before{background:#c45d54}.room-top{display:flex;justify-content:space-between;gap:8px}.room-no{font-size:19px}.room-top small{display:block;color:var(--muted);font-size:10px}.room-state{font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--muted)}.guest-block{margin-top:16px}.guest-block b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guest-block small{color:var(--muted)}.occupancy-count{display:flex;align-items:baseline;gap:7px;margin-top:10px}.occupancy-count strong{font-size:24px}.occupancy-count span{font-size:10px;color:var(--muted)}.room-meta{position:absolute;left:13px;right:13px;bottom:11px;display:flex;justify-content:space-between;gap:6px;font-size:10px;color:var(--muted)}.balance-due{color:var(--danger)}.paid-ok{color:var(--ok)}.vacant-message{margin-top:30px;color:#74847f}.booking-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.booking-stage{display:grid;gap:12px}.booking-panel{padding:18px}.panel-step{display:flex;align-items:flex-start;gap:11px;margin-bottom:14px}.panel-step>span{width:30px;height:30px;border-radius:9px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:900;flex:none}.panel-step h2{margin:0}.panel-step p{margin:3px 0 0;color:var(--muted);font-size:12px}.guest-searchbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.selected-guest{display:flex;gap:8px;align-items:center;background:var(--brand-soft);color:var(--brand);padding:10px 12px;border-radius:11px;margin:9px 0}.selected-guest span{color:var(--ink)}.search-results{display:grid;gap:6px;margin:8px 0}.guest-result{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:2px 10px}.guest-result small{color:var(--muted)}.guest-result span{grid-column:2;grid-row:1/3;color:var(--brand);font-size:10px;align-self:center}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid.three,.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.span2{grid-column:span 2}label{display:flex;flex-direction:column;gap:5px;color:#53645f;font-size:11px;font-weight:800}input,select,textarea{width:100%;border:1px solid #cfdcd7;background:#fff;color:var(--ink);border-radius:10px;padding:10px 11px;min-height:41px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}textarea{resize:vertical}.advanced{margin-top:11px;border:1px solid var(--line);border-radius:12px;background:var(--surface2)}.advanced summary{cursor:pointer;padding:10px 12px;font-weight:800}.advanced summary span{float:right;color:var(--muted);font-size:10px}.advanced-body{padding:0 12px 12px}.document-box{margin-top:10px;padding:10px;background:#fff;border:1px dashed #c3d3cd;border-radius:11px;display:grid;grid-template-columns:1fr 140px minmax(180px,1fr);gap:9px;align-items:center}.document-box small{display:block;color:var(--muted);font-weight:400}.stay-grid{display:grid;grid-template-columns:1fr 76px 1fr 1fr;gap:10px;align-items:end}.nights-badge{height:68px;border-radius:12px;background:var(--brand-soft);display:grid;place-items:center;color:var(--brand);align-content:center}.nights-badge b{font-size:23px}.nights-badge small{font-size:9px}.bulk-room-card{display:grid;grid-template-columns:minmax(200px,1fr) 100px auto auto;gap:8px;align-items:end;background:var(--surface2);border:1px solid var(--line);padding:12px;border-radius:13px}.availability-message{margin:9px 0;color:var(--muted);font-size:11px}.room-builder{display:grid;gap:8px}.room-line{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff}.room-line-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.room-badge{background:var(--brand-soft);color:var(--brand);padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;margin-right:8px}.availability-label{font-size:11px;color:var(--muted)}.remove-room{border:0;background:none;color:var(--danger);font-size:10px}.room-primary-row{display:grid;grid-template-columns:minmax(220px,1.4fr) 90px 90px 130px;gap:9px;align-items:end}.line-total{padding:12px;background:#f5f8f7;border-radius:10px;text-align:right}.capacity-note{font-size:10px;color:var(--muted);margin-top:7px}.booking-summary{position:sticky;top:94px;padding:18px}.booking-summary h2{font-size:21px;margin:5px 0 16px}.summary-stay{display:flex;flex-wrap:wrap;gap:6px}.summary-stay span{background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:10px}.summary-total{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:14px 0}.summary-total{display:flex;justify-content:space-between;align-items:center}.summary-total b{font-size:20px;color:var(--brand)}.booking-summary p{font-size:11px;color:var(--muted)}.booking-summary .btn{margin-top:7px}.compact-panel textarea{min-height:74px}.table-wrap{overflow:auto}.mobile-nav{display:none}.scrim{display:none}.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.theme-option{border:1px solid var(--line);border-radius:12px;padding:10px;flex-direction:row;align-items:center}.theme-swatch{width:24px;height:24px;border-radius:8px;background:var(--brand)}.settings-links{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.settings-links a{display:flex;justify-content:space-between;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px}.settings-links small{display:block;color:var(--muted)}
@media(max-width:1200px){.room-rack{grid-template-columns:repeat(4,1fr)}.workflow-row{grid-template-columns:repeat(2,1fr)}.quick-strip{grid-template-columns:repeat(3,1fr)}.bulk-room-card{grid-template-columns:1fr 90px 1fr}.bulk-room-card .btn-soft{grid-column:1/-1}.booking-workspace{grid-template-columns:minmax(0,1fr) 270px}}
@media(max-width:1023px){:root{--sidebar:250px}.sidebar{transform:translateX(-105%);transition:.2s}.sidebar.open{transform:none}.workspace{margin-left:0}.menu-btn{display:grid;place-items:center}.scrim.show{display:block;position:fixed;inset:0;background:#092f2980;z-index:29}.page{padding:18px 16px 86px}.topbar{padding:0 16px}.user-menu span:not(.avatar){display:none}.room-rack{grid-template-columns:repeat(3,1fr)}.booking-workspace{grid-template-columns:1fr}.booking-summary{position:static;order:-1}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:25;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(20,48,42,.08)}.mobile-nav a{display:grid;place-items:center;gap:1px;color:#64756f;font-size:16px}.mobile-nav small{font-size:9px}.mobile-nav a.active{color:var(--brand)}.mobile-new{width:48px;height:48px;border-radius:16px;background:var(--brand);color:#fff!important;justify-self:center;margin-top:-22px;box-shadow:0 8px 20px rgba(12,107,85,.25)}footer{display:none}}
@media(max-width:720px){body{font-size:13px}.topbar{height:66px}.topbar h1{font-size:17px}.new-booking{display:none}.page{padding:12px 10px 82px}.hero{padding:18px;display:block;border-radius:17px}.hero h2{font-size:25px}.hero-actions{margin-top:13px}.quick-strip{grid-template-columns:repeat(2,1fr);gap:7px}.quick-strip>a,.quick-strip>div{min-height:75px;padding:10px}.workflow-row{grid-template-columns:1fr}.grid.two,.grid.three{grid-template-columns:1fr}.card,.booking-panel{padding:13px;border-radius:15px}.front-command{align-items:flex-start}.front-command p{display:none}.front-actions .btn:not(.btn-primary){display:none}.rack-toolbar{display:block}.rack-tools{margin-top:9px}.rack-tools input{min-width:0}.room-rack{grid-template-columns:repeat(2,1fr)}.room-tile{min-height:154px;padding:11px}.room-meta{left:11px;right:11px}.guest-searchbar{grid-template-columns:1fr auto}.guest-searchbar .btn-soft{grid-column:1/-1}.form-grid,.form-grid.three,.form-grid.cols-3{grid-template-columns:1fr}.span2{grid-column:auto}.stay-grid{grid-template-columns:1fr 62px 1fr}.stay-grid label:last-child{grid-column:1/-1}.document-box{grid-template-columns:1fr}.bulk-room-card{grid-template-columns:1fr 84px}.bulk-room-card button{grid-column:1/-1}.room-primary-row{grid-template-columns:1fr 78px 78px}.room-primary-row .line-total{grid-column:1/-1}.booking-summary{border:2px solid var(--brand-soft)}.theme-grid{grid-template-columns:repeat(2,1fr)}.settings-links{grid-template-columns:1fr}.table-wrap table{min-width:680px}}
@media(max-width:430px){.room-rack{grid-template-columns:1fr}.room-tile{min-height:138px}.quick-strip{grid-template-columns:repeat(2,1fr)}.rack-legend{display:none}.rack-tools{display:grid;grid-template-columns:1fr}.hero-actions .btn{width:100%}}
.stay-hero{margin-bottom:14px}.stay-strip{margin-top:0}.stay-actions{margin-bottom:16px}.reservation-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.reservation-room-card{border:1px solid var(--line);border-radius:14px;padding:13px;background:var(--surface2)}.room-card-head{display:flex;justify-content:space-between;gap:8px}.room-card-head small{font-size:8px;color:var(--muted)}.room-card-head b{font-size:20px;display:block}.room-card-head span{font-size:10px;color:var(--muted)}.occupancy-badge{background:var(--brand-soft);color:var(--brand)!important;border-radius:999px;padding:5px 8px;height:max-content;font-weight:900}.room-person{margin-top:12px}.room-person b{display:block}.room-person small{color:var(--muted)}.room-facts{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.room-facts span{font-size:9px;background:#fff;border:1px solid var(--line);padding:5px 7px;border-radius:999px}.detail-list{display:grid}.detail-list>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.detail-list span{color:var(--muted)}.note-box{margin-top:10px;background:#fff9e9;border:1px solid #f1dfad;border-radius:10px;padding:10px}.note-box p{margin:4px 0 0}@media(max-width:1100px){.reservation-room-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.reservation-room-grid{grid-template-columns:1fr}.stay-strip{grid-template-columns:repeat(2,1fr)}}
