.consent-banner{position:fixed;left:16px;right:16px;bottom:16px;max-width:520px;margin-left:auto;margin-right:auto;background:var(--surface-1, #1f1f1f);color:var(--text-1, #e8e8e8);border:1px solid var(--panel-border, rgba(255,255,255,.1));border-radius:10px;box-shadow:0 8px 28px #00000080;z-index:9999;font-size:.9rem;animation:consentSlideUp .35s ease-out}@keyframes consentSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.consent-banner-content{padding:16px 18px 14px}.consent-banner-content h3{margin:0 0 8px;font-size:1rem;color:var(--text-1, #fff)}.consent-banner-content p{margin:0 0 8px;line-height:1.5;color:var(--text-2, #c0c0c0)}.consent-banner-rgpd{font-size:.82rem;color:var(--text-3, #999)}.consent-banner-content a{color:var(--brand, #6366f1);text-decoration:underline}.consent-banner-content code{background:var(--surface-2, #2a2a2a);padding:1px 5px;border-radius:3px;font-size:.85em}.consent-banner-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.consent-banner-link{font-size:.85rem}.consent-banner-btn{background:var(--brand, #6366f1);color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;transition:background .15s}.consent-banner-btn:hover{background:var(--brand-hover, #4f46e5)}@media (max-width: 540px){.consent-banner-actions{flex-direction:column-reverse;align-items:stretch}.consent-banner-btn{width:100%}}:root{--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--density: 1;--radius-sm: 3px;--radius-md: 6px;--radius-lg: 10px;--radius-full: 9999px;--elevation-1: 0 1px 2px rgba(0, 0, 0, .3);--elevation-2: 0 4px 12px rgba(0, 0, 0, .35);--elevation-3: 0 8px 24px rgba(0, 0, 0, .45);--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "Source Code Pro", "Fira Code", Menlo, Consolas, monospace;--font-xs: 10px;--font-sm: 11px;--font-base: 12px;--font-md: 13px;--font-lg: 15px;--font-xl: 18px;--line-tight: 1.2;--line-normal: 1.4;--line-loose: 1.6;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--transition-fast: .12s;--transition-std: .2s;--transition-slow: .32s;--ease-out: cubic-bezier(.2, .6, .2, 1);--z-base: 1;--z-overlay: 900;--z-panel: 1000;--z-dropdown: 1100;--z-modal: 1200;--z-toast: 1300;--panel-padding: var(--space-3);--panel-header-height: 36px;--panel-header-padding: var(--space-2) var(--space-3);--panel-border-width: 1px;--panel-radius: var(--radius-md);--panel-min-width: 240px;--section-gap: var(--space-4);--form-row-gap: var(--space-2);--control-height-sm: 26px;--control-height-md: 32px;--control-height-lg: 40px}:root,[data-theme=dark]{--surface-1: #181a1e;--surface-2: #1f2227;--surface-3: #262a30;--surface-raised: #22262c;--surface-overlay: rgba(10, 12, 16, .72);--panel-bg: #1f2227;--panel-border: rgba(255, 255, 255, .08);--panel-header-bg: rgba(255, 255, 255, .03);--panel-header-border: rgba(255, 255, 255, .06);--panel-shadow: var(--elevation-2);--text-primary: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .65);--text-muted: rgba(255, 255, 255, .42);--text-disabled: rgba(255, 255, 255, .25);--brand: #1976d2;--brand-hover: #1565c0;--brand-active: #0d47a1;--brand-subtle: rgba(25, 118, 210, .15);--success: #3ccf91;--success-subtle: rgba(60, 207, 145, .18);--warning: #ffb74d;--warning-subtle: rgba(255, 183, 77, .18);--danger: #ff5864;--danger-subtle: rgba(255, 88, 100, .18);--info: #4fc3f7;--info-subtle: rgba(79, 195, 247, .18);--btn-primary-bg: var(--brand);--btn-primary-fg: #ffffff;--btn-primary-hover: var(--brand-hover);--btn-primary-active: var(--brand-active);--btn-secondary-bg: rgba(255, 255, 255, .06);--btn-secondary-fg: var(--text-primary);--btn-secondary-hover: rgba(255, 255, 255, .12);--btn-secondary-border: rgba(255, 255, 255, .12);--btn-ghost-fg: var(--text-secondary);--btn-ghost-hover: rgba(255, 255, 255, .06);--btn-danger-bg: var(--danger);--btn-danger-fg: #ffffff;--btn-danger-hover: #ff7680;--input-bg: rgba(0, 0, 0, .28);--input-border: rgba(255, 255, 255, .12);--input-border-hover: rgba(255, 255, 255, .22);--input-focus: var(--brand);--input-fg: var(--text-primary);--input-placeholder: var(--text-muted);--focus-ring: 0 0 0 2px rgba(25, 118, 210, .55);--overlay-subtle: rgba(255, 255, 255, .03);--overlay-weak: rgba(255, 255, 255, .06);--overlay-medium: rgba(255, 255, 255, .1);--overlay-strong: rgba(255, 255, 255, .18);--scrim-soft: rgba(0, 0, 0, .25);--scrim-hard: rgba(0, 0, 0, .55)}[data-theme=light]{--surface-1: #f7f8fa;--surface-2: #ffffff;--surface-3: #eef1f5;--surface-raised: #ffffff;--surface-overlay: rgba(0, 0, 0, .42);--panel-bg: #ffffff;--panel-border: rgba(0, 0, 0, .08);--panel-header-bg: rgba(0, 0, 0, .02);--panel-header-border: rgba(0, 0, 0, .06);--panel-shadow: 0 2px 8px rgba(15, 20, 30, .08), 0 4px 16px rgba(15, 20, 30, .06);--text-primary: #1a1d21;--text-secondary: rgba(26, 29, 33, .68);--text-muted: rgba(26, 29, 33, .46);--text-disabled: rgba(26, 29, 33, .3);--brand: #1e7fd6;--brand-hover: #1a6fbb;--brand-active: #165f9f;--brand-subtle: rgba(30, 127, 214, .12);--success: #17a676;--success-subtle: rgba(23, 166, 118, .14);--warning: #d98e14;--warning-subtle: rgba(217, 142, 20, .14);--danger: #dc3545;--danger-subtle: rgba(220, 53, 69, .12);--info: #1498c8;--info-subtle: rgba(20, 152, 200, .14);--btn-primary-bg: var(--brand);--btn-primary-fg: #ffffff;--btn-primary-hover: var(--brand-hover);--btn-primary-active: var(--brand-active);--btn-secondary-bg: #f1f3f6;--btn-secondary-fg: var(--text-primary);--btn-secondary-hover: #e5e9ee;--btn-secondary-border: rgba(0, 0, 0, .08);--btn-ghost-fg: var(--text-secondary);--btn-ghost-hover: rgba(0, 0, 0, .05);--btn-danger-bg: var(--danger);--btn-danger-fg: #ffffff;--btn-danger-hover: #c82333;--input-bg: #ffffff;--input-border: rgba(0, 0, 0, .14);--input-border-hover: rgba(0, 0, 0, .24);--input-focus: var(--brand);--input-fg: var(--text-primary);--input-placeholder: var(--text-muted);--focus-ring: 0 0 0 2px rgba(30, 127, 214, .35);--overlay-subtle: rgba(0, 0, 0, .02);--overlay-weak: rgba(0, 0, 0, .04);--overlay-medium: rgba(0, 0, 0, .08);--overlay-strong: rgba(0, 0, 0, .14);--scrim-soft: rgba(0, 0, 0, .18);--scrim-hard: rgba(0, 0, 0, .38)}[data-density=compact]{--density: .75}[data-density=normal]{--density: 1}[data-density=cozy]{--density: 1.25}.ds-padded{padding:calc(var(--panel-padding) * var(--density))}.ds-section-gap>*+*{margin-top:calc(var(--section-gap) * var(--density))}:root,[data-theme=dark],[data-theme=light]{--ab-bg: var(--surface-2);--ab-border: var(--panel-border);--ab-accent: var(--brand-subtle);--ab-accent-solid: var(--brand);--ab-accent-light: var(--brand-hover);--ab-slot-bg: var(--surface-3);--ab-slot-hover: var(--surface-raised);--ab-slot-active: var(--brand-subtle);--ab-text: var(--text-primary);--ab-text-muted: var(--text-muted)}.ds-btn--primary{background:var(--btn-primary-bg)!important;color:var(--btn-primary-fg)!important}.ds-btn--danger{background:var(--btn-danger-bg)!important;color:var(--btn-danger-fg)!important}button.btn-primary,button.primary,.btn.primary,.badge-primary,.tab-badge,.admin-badge,.you-badge,.notification-badge,.default-badge,.status-badge.online{color:var(--btn-primary-fg)!important}.ds-panel,.ds-panel__body,[data-theme=light] .ds-panel,[data-theme=light] .ds-panel__body,[data-theme=light] .floating-panel,[data-theme=light] .modal-content,[data-theme=light] .dialog-content{color:var(--text-primary)}.uip{background:var(--surface-1);color:var(--text-primary)}html:has(.uip),body:has(.uip){background:var(--surface-1)!important}:root{--z-playfield-object: 1;--z-playfield-controls: 10;--z-playfield-overlay: 100;--z-panel: 1000;--z-toolbar: 2000;--z-dropdown: 5000;--z-modal-backdrop: 9000;--z-modal: 10000;--z-context-backdrop: 29000;--z-context-menu: 30000;--z-fullscreen: 50000;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-selection: 0 0 0 3px var(--color-selection), 0 0 10px var(--color-selection-glow);--color-selection: #00c8ff;--color-selection-glow: rgba(0, 200, 255, .5);--color-selection-border: #00d1ff;--color-locked: #ffc107;--color-hidden: #9c27b0;--color-danger: #ff6b6b;--color-success: #4CAF50;--color-warning: #ffa726;--color-info: #4a9eff;--color-menu-bg: rgba(40, 40, 40, .98);--color-menu-hover: rgba(90, 140, 110, .3);--color-menu-divider: rgba(255, 255, 255, .1);--color-menu-text: #e0e0e0;--color-menu-text-muted: #aaa;--color-handle-bg: rgba(40, 40, 40, .9);--color-handle-hover: rgba(80, 130, 200, .95);--color-handle-active: rgba(60, 110, 180, .95);--spacing-xs: 2px;--spacing-sm: 4px;--spacing-md: 8px;--spacing-lg: 12px;--spacing-xl: 16px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--font-size-xs: 10px;--font-size-sm: 11px;--font-size-md: 12px;--font-size-lg: 14px;--font-size-xl: 16px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}*{margin:0;padding:0;box-sizing:border-box}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}select{color-scheme:dark}option{background-color:var(--surface-2, #1f2530);color:var(--text-primary, #e8e8e8)}button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,input[type=reset]::-moz-focus-inner{border:0;padding:0}html{font-size:var(--font-base, 12px)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--surface-1);color:var(--text-primary)}#root{width:100%;height:100vh;overflow:hidden}:root{--breakpoint-desktop: 1200px;--breakpoint-tablet: 768px;--breakpoint-mobile: 480px;--breakpoint-small: 360px;--touch-target-min: 44px;--touch-target-comfortable: 48px;--touch-target-large: 56px;--sat: 0px;--sar: 0px;--sab: 0px;--sal: 0px;--mobile-padding: 16px;--mobile-padding-sm: 8px;--mobile-gap: 12px;--mobile-nav-height: 56px;--mobile-drawer-width: 280px}@supports (padding: env(safe-area-inset-top)){:root{--sat: env(safe-area-inset-top);--sar: env(safe-area-inset-right);--sab: env(safe-area-inset-bottom);--sal: env(safe-area-inset-left)}}@media (max-width: 768px){.desktop-only{display:none!important}}@media (min-width: 769px){.mobile-only{display:none!important}}@media (max-width: 768px){.tablet-hide{display:none!important}}@media (max-width: 480px){.phone-hide{display:none!important}}@media (pointer: coarse){button,[role=button],input[type=checkbox],input[type=radio],select,.clickable,.interactive{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}a{padding:4px}}button,input,select,textarea,a{touch-action:manipulation}.scroll-container,.floating-panel-content,.sidebar-submenu{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@media (pointer: coarse){.scroll-container::-webkit-scrollbar,.floating-panel-content::-webkit-scrollbar{display:none}.scroll-container,.floating-panel-content{scrollbar-width:none;-ms-overflow-style:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (pointer: coarse){.no-select,.floating-panel-header,.mobile-nav-bar,.action-bar{-webkit-user-select:none;user-select:none}}@media (pointer: coarse){.draggable{cursor:default}.resize-handle{width:20px!important;height:20px!important}}@media (pointer: coarse){*:focus{outline:none}*:focus-visible{outline:2px solid var(--brand);outline-offset:2px}}.full-height{height:100vh;height:100dvh}.min-full-height{min-height:100vh;min-height:100dvh}@media (orientation: portrait) and (max-width: 768px){.landscape-only{display:none!important}}@media (orientation: landscape) and (max-height: 500px){.portrait-only{display:none!important}.mobile-nav-bar{--mobile-nav-height: 48px}}.safe-area-top{padding-top:var(--sat)}.safe-area-bottom{padding-bottom:var(--sab)}.safe-area-left{padding-left:var(--sal)}.safe-area-right{padding-right:var(--sar)}.safe-area-all{padding-top:var(--sat);padding-right:var(--sar);padding-bottom:var(--sab);padding-left:var(--sal)}.mobile-grid{display:grid;gap:var(--mobile-gap)}@media (max-width: 480px){.mobile-grid{grid-template-columns:1fr}}@media (min-width: 481px) and (max-width: 768px){.mobile-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 769px){.mobile-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width: 768px){input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],textarea,select{font-size:1.143rem;padding:12px;border-radius:8px}}@media (max-width: 768px){.modal-fullscreen-mobile{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;border-radius:0!important;margin:0!important;transform:none!important}}@media (hover: none){.hover-effect:hover{background:inherit;transform:none}}@media (hover: hover){.hover-effect:hover{background:#ffffff1a}}@media (pointer: coarse){[title]:after,.tooltip{display:none!important}}@media (max-width: 768px){.context-menu,.shape-context-menu{min-width:200px;padding:8px}.context-menu-item{padding:12px 16px;font-size:1.071rem}}.debug-touch-targets button,.debug-touch-targets [role=button],.debug-touch-targets .interactive{outline:2px dashed red}.debug-safe-areas:before{content:"";position:fixed;top:0;left:0;right:0;height:var(--sat);background:#ff00004d;pointer-events:none;z-index:99999}.debug-safe-areas:after{content:"";position:fixed;bottom:0;left:0;right:0;height:var(--sab);background:#0000ff4d;pointer-events:none;z-index:99999}.tap-to-place-selected{outline:3px solid #f39c12!important;outline-offset:2px;animation:tapToPlaceSelected .8s ease-in-out infinite alternate;position:relative}.tap-to-place-selected:after{content:"u2713";position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#f39c12;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.857rem;font-weight:700}@keyframes tapToPlaceSelected{0%{box-shadow:0 0 8px #f39c1280}to{box-shadow:0 0 16px #f39c12cc}}.tap-to-place-target-active{cursor:crosshair}.tap-to-place-target-active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px dashed rgba(243,156,18,.5);border-radius:inherit;pointer-events:none;animation:targetPulse 1.5s ease-in-out infinite}@keyframes targetPulse{0%,to{border-color:#f39c124d}50%{border-color:#f39c12b3}}.placement-indicator{position:fixed;bottom:calc(var(--mobile-nav-height, 56px) + var(--sab, 0px));left:0;right:0;display:none;z-index:9400;padding:8px 16px;pointer-events:none}@media (max-width: 768px){.placement-indicator{display:block}}.placement-indicator-content{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#f39c12f2;border-radius:10px;color:#fff;font-size:1rem;font-weight:500;box-shadow:0 4px 20px #0000004d;pointer-events:auto}.placement-indicator-icon{font-size:1.429rem}.placement-indicator-text{flex:1}.placement-indicator-cancel{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff3;border:none;border-radius:50%;color:#fff;font-size:1rem;cursor:pointer}.placement-indicator-cancel:active{background:#ffffff4d}
