@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400&family=Montserrat:wght@300;400;500;600&display=swap";*,:before,:after{box-sizing:border-box}body{margin:0;padding:0}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d4c4a0;border-radius:2px}.guest-tag,.room-card,.bed-slot{font-family:Montserrat,sans-serif}.bed-slot{font-size:11px}.app-root{background:linear-gradient(160deg,#fdfaf0,#f8f0d8 40%,#f5e8c0);min-height:100vh;font-family:Cormorant Garamond,Georgia,serif}.top-bar{z-index:50;background:linear-gradient(135deg,#2c2015,#3d2f18 50%,#2c2015);align-items:center;gap:24px;padding:16px 24px;display:flex;position:sticky;top:0;box-shadow:0 2px 20px #00000040}.top-bar-title-group{flex-shrink:0;align-items:center;gap:12px;margin-right:16px;display:flex}.top-bar-title{color:#f5e6c8;letter-spacing:.05em;margin:0;font-family:Cormorant Garamond,serif;font-size:24px;font-weight:700;line-height:1}.top-bar-subtitle{color:#d4c4a0;opacity:.55;margin-top:4px;font-family:Montserrat,sans-serif;font-size:13px;font-weight:400;line-height:1}.top-bar-divider{opacity:.2;background:#f5e6c8;flex-shrink:0;width:1px;height:44px}.top-bar-stat{flex-shrink:0;align-items:center;gap:12px;display:flex}.top-bar-stat-icon{background:#ffffff1a;border-radius:12px;padding:8px}.top-bar-stat-value{font-family:Cormorant Garamond,serif;font-size:32px;font-weight:700;line-height:1}.top-bar-stat-label{color:#d4c4a0;opacity:.7;margin-top:3px;font-family:Montserrat,sans-serif;font-size:13px;font-weight:400;line-height:1}.top-bar-stat-sep{opacity:.1;background:#f5e6c8;flex-shrink:0;width:1px;height:44px;margin-left:8px}.top-bar-capacity{text-align:right;flex-shrink:0}.top-bar-capacity-label{color:#d4c4a0;opacity:.55;font-family:Montserrat,sans-serif;font-size:13px;font-weight:300}.top-bar-capacity-value{color:#f5e6c8;font-family:Cormorant Garamond,serif;font-size:26px;font-weight:600;line-height:1.1}.top-bar-capacity-unit{opacity:.6;font-size:14px;font-weight:400}.settings-btn{color:#e8c84a;cursor:pointer;background:#c9a84c26;border:1px solid #c9a84c73;border-radius:12px;flex-shrink:0;align-items:center;gap:10px;margin-left:auto;padding:12px 20px;transition:transform .2s;display:flex}.settings-btn:hover{transform:scale(1.05)}.settings-btn-label{font-family:Montserrat,sans-serif;font-size:14px;font-weight:500}.main-layout{height:calc(100vh - 84px);display:flex}.sidebar{flex-shrink:0;padding:16px;overflow-y:auto}.master-list-card{background:linear-gradient(170deg,#fffdf5,#fef8e8);border:1px solid #d4c4a0;border-radius:16px;flex-direction:column;height:100%;display:flex;overflow:hidden;box-shadow:0 4px 24px #b48c3c1f}.master-list-header{background:linear-gradient(135deg,#c9a84c,#e8c84a);border-bottom:1px solid #b8943a;align-items:center;gap:8px;padding:12px 16px;display:flex}.master-list-header-title{letter-spacing:.05em;color:#fff;text-transform:uppercase;font-size:14px;font-weight:700}.master-list-header-count{color:#fff;background:#ffffff4d;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:600}.master-list-add{border-bottom:1px solid #e8dcc0;padding:10px 12px}.master-list-add-row{gap:8px;display:flex}.master-list-input{color:#3d2b0e;background:#fff;border:1px solid #d4c4a0;border-radius:8px;outline:none;flex:1;padding:6px 12px;font-size:14px}.master-list-input:focus{border-color:#c9a84c;box-shadow:0 0 0 2px #c9a84c33}.master-list-add-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#c9a84c,#e8c84a);border:none;border-radius:8px;align-items:center;padding:6px 12px;transition:transform .15s;display:flex}.master-list-add-btn:hover{transform:scale(1.05)}.master-list-body{border-radius:8px;flex:1;min-height:120px;padding:8px;transition:background .2s;overflow-y:auto}.master-list-body.drag-over{outline-offset:-4px;background:#c9a84c14;outline:2px dashed #c9a84c}.master-list-empty{opacity:.4;color:#8a7a60;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:96px;font-size:12px;display:flex}.guest-row{align-items:center;gap:4px;margin-bottom:4px;display:flex}.guest-tag{cursor:grab;-webkit-user-select:none;user-select:none;color:#3d2b0e;background:linear-gradient(135deg,#f5e6c8,#e8d5a3);border:1px solid #c9a84c;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;transition:transform .2s,box-shadow .2s,opacity .2s;display:flex;box-shadow:0 2px 6px #b48c3c33}.guest-tag:hover{transform:scale(1.05);box-shadow:0 4px 12px #b48c3c4d}.guest-tag.is-dragging{opacity:.3;box-shadow:none;transform:scale(.95)}.guest-edit-row{align-items:center;gap:4px;width:100%;display:flex}.guest-edit-input{color:#3d2b0e;background:#fff;border:1px solid #c9a84c;border-radius:6px;outline:none;flex:1;padding:4px 8px;font-size:14px}.guest-action-btn{opacity:0;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;transition:opacity .2s}.guest-row:hover .guest-action-btn{opacity:.6}.guest-action-btn:hover{opacity:1!important}.allocated-section{border-top:1px dashed #d4c4a0;margin-top:8px;padding-top:8px}.allocated-label{opacity:.4;text-transform:uppercase;letter-spacing:.08em;color:#8a7a60;margin-bottom:6px;font-size:12px}.allocated-tag{color:#6a5a40;opacity:.4;background:#ede5d0;border:1px solid #c8bfa8;border-radius:999px;align-items:center;gap:6px;width:fit-content;margin-bottom:4px;padding:4px 12px;font-size:12px;font-weight:500;display:flex}.drop-hint{opacity:.7;color:#c9a84c;justify-content:center;align-items:center;height:40px;font-size:12px;display:flex}.central-area{flex:1;padding:16px;overflow:auto}.section-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-header-line{background:linear-gradient(90deg,#0000,#c9a84c,#0000);flex:1;height:1px}.section-header-text{letter-spacing:.15em;text-transform:uppercase;color:#8a6a20;padding:0 12px;font-family:Montserrat,sans-serif;font-size:11px;font-weight:600}.aisle-banner{align-items:center;gap:16px;margin:20px 8px;display:flex}.aisle-line{border-radius:999px;flex:1;height:2px}.aisle-pill{letter-spacing:.15em;text-transform:uppercase;color:#e8c84a;background:linear-gradient(135deg,#3d2f18,#5a4520);border-radius:999px;padding:6px 20px;font-family:Montserrat,sans-serif;font-size:11px;font-weight:600;box-shadow:0 2px 12px #0003}.wings-container{gap:16px;display:flex;position:relative}.left-wing{flex-shrink:0;width:calc(50% - 24px)}.right-wing{flex:1}.wing-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.wing-title{letter-spacing:.15em;text-transform:uppercase;color:#6a5a40;flex-shrink:0;font-family:Montserrat,sans-serif;font-size:11px;font-weight:600}.wing-line{background:#d4c4a080;flex:1;height:1px}.wing-meta{opacity:.5;color:#8a7a60;flex-shrink:0;font-family:Montserrat,sans-serif;font-size:11px}.vertical-aisle{flex-direction:column;flex-shrink:0;align-items:center;width:48px;display:flex}.vertical-aisle-line{background:linear-gradient(#c9a84c61,#c9a84c1f,#c9a84c61);border-radius:999px;flex:1;width:2px}.vertical-aisle-text{white-space:nowrap;color:#c9a84c80;letter-spacing:.2em;margin:16px 0;font-family:Montserrat,sans-serif;font-size:9px;transform:rotate(90deg)}.left-wing-grid{grid-template-columns:1fr;gap:12px;display:grid}.right-wing-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.suites-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.separate-grid{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:32px;display:grid}.room-card{border-radius:12px;padding:12px;transition:box-shadow .2s;box-shadow:0 2px 8px #0000000f}.room-card:hover{box-shadow:0 8px 24px #0000001f}.room-card--suite{background:linear-gradient(145deg,#fffaf0,#fef5d9 50%,#f9e8b0);border:1px solid #d4a840}.room-card--left,.room-card--right{background:linear-gradient(145deg,#fafaf8,#f5f0e8);border:1px solid #c8bfa8}.room-card--separate{background:linear-gradient(145deg,#f8f4fa,#efe8f5);border:1px solid #c4aed4}.room-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.room-card-label{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.room-card-label--suite{color:#7a5c10}.room-card-label--left,.room-card-label--right{color:#4a3f2f}.room-card-label--separate{color:#4a3060}.room-card-badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.room-card-badge--suite{color:#7a5c10;background:linear-gradient(135deg,#f9e199,#e8c84a)}.room-card-badge--left,.room-card-badge--right{color:#4a3f2f;background:linear-gradient(135deg,#ede5d0,#d4c4a8)}.room-card-badge--separate{color:#4a3060;background:linear-gradient(135deg,#e8d8f5,#d0b8e8)}.beds-grid{gap:6px;display:grid}.beds-grid--2,.beds-grid--4{grid-template-columns:repeat(2,1fr)}.beds-grid--8{grid-template-columns:repeat(4,1fr)}.bed-slot{background:#fff9;border:1px dashed #d4c4a0;border-radius:8px;justify-content:center;align-items:center;min-height:36px;transition:background .2s,border .2s,box-shadow .2s;display:flex;position:relative}.bed-slot.occupied{background:linear-gradient(135deg,#fdf3dc,#f5e2a8);border:1px solid #d4a840;box-shadow:0 1px 4px #b48c3c26}.bed-slot.drag-over{background:linear-gradient(135deg,#fef9ee,#fdf0cc);border:2px dashed #c9a84c}.bed-slot-empty-text{opacity:.3;color:#8a7a60;font-size:11px}.bed-slot-name{cursor:grab;color:#5a3e10;border-radius:8px;justify-content:center;align-items:center;width:100%;height:100%;padding:0 8px;font-size:11px;font-weight:600;transition:opacity .2s;display:flex}.bed-slot-name.is-dragging{opacity:.3}.separate-section-header{margin-top:40px;margin-bottom:24px}.separate-header-row{align-items:center;gap:16px;display:flex}.separate-header-line{flex:1;height:1px}.separate-header-line--left{background:linear-gradient(90deg,#0000,#c4aed4)}.separate-header-line--right{background:linear-gradient(270deg,#0000,#c4aed4)}.separate-header-pill{background:linear-gradient(135deg,#3a2850,#52386e);border-radius:999px;align-items:center;gap:10px;padding:8px 24px;display:flex;box-shadow:0 2px 16px #643ca033}.separate-header-pill-title{letter-spacing:.15em;text-transform:uppercase;color:#e8d8f8;font-family:Montserrat,sans-serif;font-size:11px;font-weight:600}.separate-header-pill-meta{opacity:.5;color:#d4b8f0;font-family:Montserrat,sans-serif;font-size:11px}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#140e05b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:linear-gradient(160deg,#fffdf5,#fef5d8);border:1px solid #d4c4a0;border-radius:24px;width:100%;max-width:512px;margin:0 16px;position:relative;overflow:hidden;box-shadow:0 32px 80px #00000059}.modal-header{background:linear-gradient(135deg,#2c2015,#3d2f18);border-bottom:1px solid #c9a84c4d;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header-icon-wrap{background:#c9a84c2e;border:1px solid #c9a84c4d;border-radius:12px;padding:10px}.modal-header-title{color:#f5e6c8;margin:0;font-family:Cormorant Garamond,serif;font-size:22px;font-weight:700;line-height:1}.modal-header-subtitle{color:#d4c4a0;opacity:.6;margin-top:4px;font-family:Montserrat,sans-serif;font-size:12px;font-weight:300}.modal-close-btn{color:#d4c4a0;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1a;border-radius:12px;align-items:center;padding:8px;transition:transform .2s;display:flex}.modal-close-btn:hover{transform:scale(1.1)}.modal-body{flex-direction:column;gap:16px;padding:24px;display:flex}.counter-card{background:#ffffffa6;border:1px solid #e0d4b8;border-radius:16px;padding:20px}.counter-card-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.counter-card-label{color:#3d2b0e;margin:0;font-family:Cormorant Garamond,serif;font-size:18px;font-weight:600;line-height:1.2}.counter-card-sublabel{color:#8a7a60;opacity:.7;margin-top:3px;font-family:Montserrat,sans-serif;font-size:11px}.counter-card-value{text-align:center;min-width:60px;font-family:Cormorant Garamond,serif;font-size:40px;font-weight:700;line-height:1}.counter-controls{align-items:center;gap:8px;display:flex}.counter-btn-sm{cursor:pointer;border:1px solid #c9a84c;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:transform .15s;display:flex}.counter-btn-sm:hover{transform:scale(1.05)}.counter-btn-sm:active{transform:scale(.95)}.counter-btn-sm--minus{color:#5a3e10;background:linear-gradient(135deg,#e8d5a3,#d4c080)}.counter-btn-sm--minus.disabled{color:#b0a080;background:#f0ece0}.counter-btn-sm--plus{color:#fff;background:linear-gradient(135deg,#c9a84c,#e8c84a)}.counter-quick-btns{flex:1;justify-content:center;gap:6px;display:flex}.counter-quick-btn{cursor:pointer;border:1px solid #c9a84c;border-radius:12px;flex:1;padding:8px 0;font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;transition:transform .15s}.counter-quick-btn:hover{transform:scale(1.05)}.counter-quick-btn--neg{color:#7a5c10;background:linear-gradient(135deg,#f5e6c8,#ead8a8)}.counter-quick-btn--pos{color:#fff;background:linear-gradient(135deg,#c9a84c,#e8c84a)}.modal-summary{background:linear-gradient(135deg,#fef5d8,#fde8a0);border:1px solid #d4a840;border-radius:12px;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.modal-summary-label{color:#6a4c10;margin:0;font-family:Montserrat,sans-serif;font-size:12px;font-weight:600}.modal-summary-sublabel{color:#9a7a30;opacity:.7;margin-top:2px;font-family:Montserrat,sans-serif;font-size:11px}.modal-summary-value{color:#c9a84c;font-family:Cormorant Garamond,serif;font-size:36px;font-weight:700;line-height:1}.modal-summary-unit{opacity:.7;margin-left:4px;font-family:Montserrat,sans-serif;font-size:14px;font-weight:400}.modal-warning{background:#dca03c14;border:1px dashed #c9a84c;border-radius:12px;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.modal-warning-text{color:#7a5c10;margin:0;font-family:Montserrat,sans-serif;font-size:11px;line-height:1.6}.modal-footer{gap:12px;padding:0 24px 24px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:12px;flex:1;padding:12px;font-family:Montserrat,sans-serif;font-size:13px;font-weight:600;transition:transform .15s}.modal-btn:hover{transform:scale(1.02)}.modal-btn:active{transform:scale(.98)}.modal-btn--cancel{color:#6a5a40;background:#0000000a;border:1px solid #d4c4a0!important}.modal-btn--save{color:#fff;background:linear-gradient(135deg,#c9a84c,#e8c84a);box-shadow:0 4px 20px #b48c3c66}.page-footer{text-align:center;margin-top:32px;padding-bottom:16px}.page-footer-inner{opacity:.3;justify-content:center;align-items:center;gap:12px;display:flex}.page-footer-line{background:#c9a84c;width:64px;height:1px}.sync-indicator{border:1px solid;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;transition:color .3s,background .3s,border-color .3s;display:flex}.sync-indicator-text{font-family:Montserrat,sans-serif;font-size:12px;font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.loading-screen{background:linear-gradient(160deg,#2c2015,#3d2f18);flex-direction:column;justify-content:center;align-items:center;height:100vh;display:flex}.room-drag-handle{cursor:grab;opacity:.35;color:inherit;flex-shrink:0;align-items:center;padding:2px 4px 2px 0;transition:opacity .15s;display:flex}.room-card:hover .room-drag-handle{opacity:.7}.room-drag-handle:hover{opacity:1!important}.room-drag-handle:active{cursor:grabbing}.room-dragging{opacity:.4;transition:opacity .15s,transform .15s;transform:scale(.98)}.room-swap-target{outline-offset:3px;transition:transform .15s;transform:scale(1.01);outline:2px dashed #c9a84c!important}.room-card--separate.room-swap-target{outline-color:#9070b8!important}.room-swap-overlay{pointer-events:none;z-index:10;background:#c9a84c2e;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.room-card--separate .room-swap-overlay{background:#9070b82e}.room-swap-overlay-text{letter-spacing:.08em;color:#c9a84c;background:#ffffffe6;border:1px solid #c9a84c;border-radius:999px;padding:6px 14px;font-family:Montserrat,sans-serif;font-size:13px;font-weight:700;box-shadow:0 2px 12px #b48c3c40}.room-card--separate .room-swap-overlay-text{color:#9070b8;border-color:#9070b8}.room-card{position:relative}
