.fp-fab{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:50%;border:none;background:linear-gradient(135deg,#F43F5E,#4F46E5);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(244,63,94,0.35);cursor:pointer;touch-action:manipulation;z-index:480;transition:transform 0.12s ease,bottom 0.2s ease}.fp-fab:active{transform:scale(0.94)}.sidebar-tabs{display:none}@media (max-width:768px){.fp-fab{display:flex}body{overflow:visible;overflow-x:hidden}#app{flex-direction:column}#canvas-area{height:60vh;min-height:300px;width:100%;position:relative;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}#sidebar{position:fixed;bottom:0;left:0;right:0;height:55vh;max-height:55vh;transform:translateY(100%);transition:transform 0.3s cubic-bezier(0.32,0.72,0,1),height 0.25s ease,max-height 0.25s ease;z-index:500;border-radius:20px 20px 0 0;border-right:none;border-top:none;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;width:100%}#sidebar.sidebar-open{transform:translateY(0)}#sidebar.sidebar-expanded{height:90vh;max-height:90vh}#sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:499;display:none}#sidebar-backdrop.active{display:block}.sidebar-drag-handle{display:block;width:48px;height:5px;background:var(--border-strong);border-radius:3px;margin:10px auto 6px;cursor:grab;padding:16px 40px;box-sizing:content-box;position:relative}#sidebar h1{font-size:1.1em}#guest-stats-bar{display:none}#floorplan-save-row{position:sticky;top:0;z-index:2;background:var(--bg-panel,#fff);padding-top:4px;margin-bottom:4px}.sidebar-tabs{display:flex;gap:6px;position:sticky;top:64px;z-index:2;background:var(--bg-panel,#fff);padding:2px 0 8px;margin-bottom:4px}.sidebar-tab{flex:1;min-height:44px;border:none;border-radius:10px;background:var(--bg-item,rgba(127,127,140,.10));color:var(--text-secondary,#888);font-weight:700;font-size:0.9em;cursor:pointer;touch-action:manipulation}.sidebar-tab.active{background:linear-gradient(135deg,#F43F5E,#4F46E5);color:#fff}#sidebar[class*="tab-"] .panel[data-panel="add-objects"],#sidebar[class*="tab-"] .panel[data-panel="rooms"],#sidebar[class*="tab-"] .panel[data-panel="layouts"],#sidebar[class*="tab-"] .panel[data-panel="options"]{display:none}#sidebar.tab-add-objects .panel[data-panel="add-objects"],#sidebar.tab-rooms .panel[data-panel="rooms"],#sidebar.tab-layouts .panel[data-panel="layouts"],#sidebar.tab-options .panel[data-panel="options"]{display:block}#sidebar.tab-add-objects .panel[data-panel="add-objects"]>.panel-header,#sidebar.tab-rooms .panel[data-panel="rooms"]>.panel-header,#sidebar.tab-layouts .panel[data-panel="layouts"]>.panel-header,#sidebar.tab-options .panel[data-panel="options"]>.panel-header{display:none}#sidebar.tab-add-objects .panel[data-panel="add-objects"] .panel-body,#sidebar.tab-rooms .panel[data-panel="rooms"] .panel-body,#sidebar.tab-layouts .panel[data-panel="layouts"] .panel-body,#sidebar.tab-options .panel[data-panel="options"] .panel-body{display:block!important}.panel{padding:10px}button{min-height:44px}input[type="text"],input[type="number"],select{font-size:16px;min-height:44px}.form-row{flex-wrap:wrap}.btn-auto-assign,.btn-unseat-all,.btn-manage-guests{min-height:44px}.palette-body{max-height:55vh}.palette-grid{grid-template-columns:repeat(3,1fr)}.zoom-controls{position:fixed;left:14px;right:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));gap:8px;padding:6px 10px;transition:bottom 0.2s ease}.zoom-controls>*:not(.zc-mob-keep){display:none}#sec-seating .ux-page-actions{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:4px;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent)}#sec-seating .ux-page-actions::-webkit-scrollbar{display:none}#sec-seating .ux-page-actions .ux-btn{flex:0 0 auto;white-space:nowrap}body .ux-seating-canvas .zoom-controls,body.jpp-verify-on .ux-seating-canvas .zoom-controls,body.has-context-bar .ux-seating-canvas .zoom-controls{position:absolute;left:10px;bottom:10px;top:auto;right:auto}.ux-seating-canvas .snap-btn{display:none}.ux-seating-canvas #canvas-area{padding-top:0;padding-bottom:0}.scrollable-list{max-height:260px}#minimap-canvas{display:none}}@media (min-width:769px) and (max-width:1024px){#sidebar{width:260px;min-width:260px}.palette-body{max-height:400px}}@media (min-width:1025px){body{overflow:hidden}#app{flex-direction:row;height:100vh}#sidebar{position:relative;transform:none;width:320px;min-width:320px;height:auto;border-right:2px solid var(--border);border-top:none;border-radius:0}#sidebar-toggle{display:none}#sidebar-backdrop{display:none!important}.sidebar-drag-handle{display:none}#canvas-area{height:auto;width:auto}}.modal-content{width:min(900px,95vw);max-height:90vh}@media (max-width:768px){.modal-content{width:98vw;max-height:85vh;border-radius:8px}.modal-body{padding:10px 12px}.modal-header{padding:10px 14px}.edit-form-fields{grid-template-columns:1fr}.event-form-fields{grid-template-columns:1fr}.music-columns{flex-direction:column}.music-col-left{flex:none;border-right:none;border-bottom:1px solid var(--border);padding-bottom:12px;padding-right:0}.modal-tab{padding:8px 10px;font-size:0.82em}.modal-tabs{flex-wrap:wrap;gap:4px}}@media (max-width:768px){#app.sidebar-open #canvas-area .align-toolbar,#app.sidebar-open #canvas-area .settings-panel,#app.sidebar-open #canvas-area .properties-panel,#app.sidebar-open #canvas-area .zoom-controls,#app.sidebar-open #canvas-area .resize-hud,#app.sidebar-open #canvas-area #canvas-tooltip,#app.sidebar-open #canvas-area #context-menu,#app.sidebar-open #canvas-area #sidebar-toggle,#app.sidebar-open #canvas-area .mobile-context-bar{display:none!important}}.palette-item.mobile-armed{border-color:#F43F5E!important;background:#2a0f1a!important;box-shadow:0 0 0 2px #F43F5E;position:relative}.palette-item.mobile-armed::after{content:'✓';position:absolute;top:2px;right:4px;color:#F43F5E;font-size:10px;font-weight:bold}.guest-item.mobile-guest-armed{border-color:#4ecca3!important;background:#0a2a20!important;box-shadow:0 0 0 2px #4ecca3}@media (max-width:768px){.context-menu-item{padding:14px 18px;font-size:0.95em}.context-menu{min-width:200px}.zoom-btn{width:48px;height:48px;font-size:1.1em}.snap-btn{min-width:48px;height:48px;font-size:0.78em;padding:0 10px}.zoom-percent{font-size:0.9em;min-width:44px}}.panel-header{cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;margin-bottom:8px}.panel-header:hover{color:var(--red-muted)}.panel-chevron{font-size:0.8em;color:var(--accent);transition:transform 0.2s;margin-left:6px}.panel-collapsed .panel-chevron{transform:rotate(-90deg)}.panel-collapsed .panel-body{display:none}.sub-panel{margin-top:8px}.sub-panel-header{width:100%;background:var(--bg-raised,rgba(255,255,255,0.05));border:1px solid var(--border,rgba(255,255,255,0.12));border-radius:6px;padding:7px 10px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:0.82em;font-weight:600;color:var(--text-primary,#eee);text-align:left;user-select:none;transition:background 0.15s}.sub-panel-header:hover{background:var(--bg-hover,rgba(255,255,255,0.1))}.sub-panel-chevron{font-size:0.85em;color:var(--accent);transition:transform 0.2s}.sub-panel-header[aria-expanded="true"] .sub-panel-chevron{transform:rotate(90deg)}.sub-panel-body{padding-top:4px}@media (max-width:768px){.properties-panel{position:fixed!important;z-index:600!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:auto!important;max-width:none!important;max-height:72vh;overflow-y:auto;border-radius:16px 16px 0 0!important;box-shadow:var(--shadow-lg)!important;padding-bottom:calc(12px + env(safe-area-inset-bottom));animation:properties-sheet-up 0.22s ease-out}.properties-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--text-secondary,#aaa);opacity:0.5;margin:8px auto 4px}.properties-panel input,.properties-panel select,.properties-panel textarea{font-size:16px}}@keyframes properties-sheet-up{from{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-action-bar{position:fixed;top:0;left:0;right:0;transform:translateY(0);display:none;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px;z-index:1000;background:rgba(255,255,255,0.96);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:none;border-bottom:1px solid rgba(244,63,94,0.15);border-radius:0;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px));box-shadow:0 2px 12px rgba(0,0,0,0.10);transition:transform 0.28s cubic-bezier(0.4,0,0.2,1);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mobile-action-bar::-webkit-scrollbar{display:none}.mob-action-btn{min-height:44px;display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:var(--radius-sm);font-size:0.82rem;font-weight:700;letter-spacing:-0.01em;background:var(--bg-input);color:var(--accent);border:1px solid var(--border,rgba(60,60,120,0.16));cursor:pointer;touch-action:manipulation;white-space:nowrap;flex-shrink:0}.mob-action-btn:disabled{opacity:0.4;pointer-events:none}.mob-btn-delete{color:#FF3B30;background:rgba(255,59,48,0.08)}.mob-btn-delete:not(:disabled):active{background:var(--btn-danger-border);color:var(--text-on-accent)}.mob-btn-multi{background:var(--bg-item);color:var(--text-secondary);border-color:var(--border)}.mob-btn-multi.mob-btn-active{background:#2563eb;color:white;border-color:#1d4ed8}.mob-btn-group{background:var(--bg-item);color:var(--teal,#0d9488);border-color:var(--border)}.mob-btn-group:not(:disabled):hover{background:var(--bg-item-hover)}@media (max-width:768px){.mobile-action-bar{display:flex}}.mobile-context-bar{position:fixed;left:0;right:0;bottom:0;display:none;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px;z-index:900;background:rgba(255,255,255,0.96);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(244,63,94,0.15);padding:8px 10px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));box-shadow:0 -2px 12px rgba(0,0,0,0.10);transform:translateY(100%);transition:transform 0.25s cubic-bezier(0.4,0,0.2,1);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mobile-context-bar::-webkit-scrollbar{display:none}@media (max-width:768px){.mobile-context-bar{display:flex;transform:translateY(0)}.mobile-context-bar:not(.mob-has-sel) .mob-ctx-only{display:none}body.fp-seating-mode #mob-ctx-duplicate,body.fp-seating-mode #mob-ctx-rotate,body.fp-seating-mode #mob-ctx-front,body.fp-seating-mode #mob-ctx-back,body.fp-seating-mode #mob-ctx-group,body.fp-seating-mode #mob-ctx-delete{display:none!important}.mob-ctx-sep{flex:0 0 auto;align-self:stretch;width:1px;margin:5px 3px;background:var(--border,rgba(60,60,120,0.18))}body.has-context-bar .fp-fab,body.has-context-bar .zoom-controls{bottom:calc(78px + env(safe-area-inset-bottom,0px))}body.jpp-verify-on .fp-fab,body.jpp-verify-on .zoom-controls{bottom:calc(14px + var(--verify-h,56px) + env(safe-area-inset-bottom,0px))}body.jpp-verify-on.has-context-bar .fp-fab,body.jpp-verify-on.has-context-bar .zoom-controls{bottom:calc(78px + var(--verify-h,56px) + env(safe-area-inset-bottom,0px))}body.jpp-verify-on .mobile-context-bar{bottom:var(--verify-h,56px)}body.jpp-verify-on #sidebar{bottom:var(--verify-h,56px)}}@media (max-width:460px){.mobile-action-bar,.mobile-context-bar{gap:4px;justify-content:space-between;padding:8px 8px}.mobile-action-bar{padding-top:calc(8px + env(safe-area-inset-top,0px))}.mob-action-btn{padding:8px 10px;font-size:1.15em;min-width:44px;justify-content:center}.mob-action-btn .mob-lbl{display:none}}.backup-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;margin-bottom:6px;background:var(--bg-item);border:1px solid var(--border);border-radius:6px}.backup-item .backup-info{font-size:0.85em;color:var(--text-muted)}.backup-item .backup-date{font-weight:600;color:var(--text-primary)}.backup-item .btn-restore-item{padding:6px 14px;background:var(--bg-item);color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:0.85em;white-space:nowrap}.backup-item .btn-restore-item:hover{background:var(--btn-secondary-hover)}#backup-list .no-backups{color:var(--text-muted);text-align:center;padding:20px}