.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-fg, #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-bg, #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", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 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);--success-fg: #3ccf91;--warning-fg: #ffb74d;--danger-fg: #ff8a8a;--info-fg: #4fc3f7;--brand-fg: #a3cdff;--brand-bg: #1565c0;--danger-bg: #c62828;--success-bg: #2e7d32;--warning-bg: #a14a06;--btn-primary-bg: #1565c0;--btn-primary-fg: #ffffff;--btn-primary-hover: #0d47a1;--btn-primary-active: #0b3c8a;--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: #c62828;--btn-danger-fg: #ffffff;--btn-danger-hover: #b71c1c;--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);--link-fg: #fbbf24;--link-hover: #fcd34d;--label-muted: rgba(255, 255, 255, .72);--ref-npc-fg: #d9a6ff;--ref-npc-bg: #3a1a5a;--ref-place-fg: #7ee8b5;--ref-place-bg: #15372a;--ref-map-fg: #9ccbff;--ref-map-bg: #1a3a5a;--ref-table-fg: #8fe0b2;--ref-table-bg: #1a3a2a;--ref-read-fg: #ffc48a;--ref-read-bg: #3a2a1a;--ref-enc-fg: #ff9e9e;--ref-enc-bg: #4a1a1a;--ref-hook-fg: #ffd36b;--ref-hook-bg: #3d321a;--ref-item-fg: #ffb870;--ref-item-bg: #3a2a1a;--ref-defi-fg: #d9a6ff;--ref-defi-bg: #3a1a4a;--ref-evt-fg: #c8c8c8;--ref-evt-bg: #2a2a2a;--tag-bg: rgba(255, 255, 255, .06);--tag-border: rgba(255, 255, 255, .22);--tag-fg: rgba(255, 255, 255, .88);--tag-ally-fg: #7ddc9a;--tag-enemy-fg: #ff9a8f;--tag-neutral-fg: #9cc3ff;--tag-major-bg: #1565c0;--tag-major-fg: #ffffff;--secret-bg: rgba(255, 88, 100, .1);--secret-border: #ff7a85;--secret-label: #ffa3ab;--inset-bg: rgba(245, 222, 179, .06);--inset-border: rgba(245, 222, 179, .4);--inset-fg: #f5deb3;--graph-bg: #0f0f0f;--graph-ink: #e8e8ec}[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);--success-fg: #0d5c3f;--warning-fg: #8a5300;--danger-fg: #b02a37;--info-fg: #0b6a8f;--brand-fg: #0d47a1;--brand-bg: #1565c0;--danger-bg: #c62828;--success-bg: #2e7d32;--warning-bg: #a14a06;--btn-primary-bg: #1565c0;--btn-primary-fg: #ffffff;--btn-primary-hover: #0d47a1;--btn-primary-active: #0b3c8a;--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: #c62828;--btn-danger-fg: #ffffff;--btn-danger-hover: #b71c1c;--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);--link-fg: #8a4b00;--link-hover: #6b3a00;--label-muted: rgba(26, 29, 33, .74);--ref-npc-fg: #5b2a86;--ref-npc-bg: #f2e9fb;--ref-place-fg: #17633a;--ref-place-bg: #e6f4ec;--ref-map-fg: #1f4f8a;--ref-map-bg: #e7f0fb;--ref-table-fg: #17633a;--ref-table-bg: #e6f4ec;--ref-read-fg: #7a4310;--ref-read-bg: #fbf0e3;--ref-enc-fg: #a3262a;--ref-enc-bg: #fcebec;--ref-hook-fg: #6e5200;--ref-hook-bg: #fbf3dc;--ref-item-fg: #7a4310;--ref-item-bg: #fbf0e3;--ref-defi-fg: #5b2a86;--ref-defi-bg: #f2e9fb;--ref-evt-fg: #3d4249;--ref-evt-bg: #eef1f5;--tag-bg: #f1f3f6;--tag-border: rgba(0, 0, 0, .18);--tag-fg: #1a1d21;--tag-ally-fg: #17633a;--tag-enemy-fg: #a3262a;--tag-neutral-fg: #1f4f8a;--tag-major-bg: #1565c0;--tag-major-fg: #ffffff;--secret-bg: #fdecee;--secret-border: #dc3545;--secret-label: #a3262a;--inset-bg: #faf5ea;--inset-border: #c9a86a;--inset-fg: #3d2c19;--graph-bg: #f7f8fa;--graph-ink: #1a1d21}html:not([data-window-style=velin]):not([data-theme=light]){--ccw-accent-text: #d4b45a;--text-secondary: rgba(255, 255, 255, .8);--text-muted: rgba(255, 255, 255, .72);--text-disabled: rgba(255, 255, 255, .5)}html:not([data-window-style=velin])[data-theme=light]{--ccw-accent-text: #7a5a10;--text-secondary: rgba(26, 29, 33, .84);--text-muted: rgba(26, 29, 33, .76);--text-disabled: rgba(26, 29, 33, .58)}html:not([data-window-style=velin]){--text-1: var(--text-primary);--text-2: var(--text-secondary);--text-3: var(--text-muted);--text-mut: var(--text-secondary)}html:not([data-window-style=velin]) :is(.ds-panel,.slide-panel,.overlay-panel,.ds-menu,.velin-window,.velin-menu,.ssm-modal,.cs-modal,.ccw-modal,.tip-modal) :is(button,[role=button],input[type=button],input[type=submit]):is(:disabled,[aria-disabled=true]):not(.velin-exempt *){opacity:1!important;filter:none!important;color:var(--text-disabled)!important;background:transparent!important;border-color:var(--text-disabled)!important;border-style:dashed!important;box-shadow:none!important;text-shadow:none!important;cursor:not-allowed!important}html:not([data-window-style=velin]) :is(.ds-panel,.slide-panel,.overlay-panel,.ds-menu,.velin-window,.velin-menu,.ssm-modal,.cs-modal,.ccw-modal,.tip-modal) :is(button,[role=button]):is(:disabled,[aria-disabled=true]):not(.velin-exempt *) *{opacity:1!important;color:inherit!important}html:not([data-window-style=velin]) :is(.ds-panel,.slide-panel,.overlay-panel,.ds-menu,.velin-window,.velin-menu,.ssm-modal,.cs-modal,.ccw-modal,.tip-modal) [aria-disabled=true]:not(button,[role=button]):not(.velin-exempt *){opacity:1!important;color:var(--text-disabled)!important;cursor:not-allowed}html:not([data-window-style=velin])[data-theme=light] :is(.lobby,.welcome-screen,.atkses-card,.combat-add-modal,.bgm-panel,.abm-modal,.bmp-modal,.mape-modal,.ddb-import-modal,.ssp-panel,.feedback-modal,.vd-pop,.glp-box,.dice-overlay,.ccw-modal,.pts-current-banner,.login-overlay-card,.auth-form-panel,.reset-password-card,.concentric-menu){--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, .8);--text-muted: rgba(255, 255, 255, .72);--text-disabled: rgba(255, 255, 255, .5);--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);--success-fg: #3ccf91;--warning-fg: #ffb74d;--danger-fg: #ff8a8a;--info-fg: #4fc3f7;--brand-fg: #a3cdff;--brand-bg: #1565c0;--danger-bg: #c62828;--success-bg: #2e7d32;--warning-bg: #a14a06;--btn-primary-bg: #1565c0;--btn-primary-fg: #ffffff;--btn-primary-hover: #0d47a1;--btn-primary-active: #0b3c8a;--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: #c62828;--btn-danger-fg: #ffffff;--btn-danger-hover: #b71c1c;--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);--link-fg: #fbbf24;--link-hover: #fcd34d;--label-muted: rgba(255, 255, 255, .72);--ref-npc-fg: #d9a6ff;--ref-npc-bg: #3a1a5a;--ref-place-fg: #7ee8b5;--ref-place-bg: #15372a;--ref-map-fg: #9ccbff;--ref-map-bg: #1a3a5a;--ref-table-fg: #8fe0b2;--ref-table-bg: #1a3a2a;--ref-read-fg: #ffc48a;--ref-read-bg: #3a2a1a;--ref-enc-fg: #ff9e9e;--ref-enc-bg: #4a1a1a;--ref-hook-fg: #ffd36b;--ref-hook-bg: #3d321a;--ref-item-fg: #ffb870;--ref-item-bg: #3a2a1a;--ref-defi-fg: #d9a6ff;--ref-defi-bg: #3a1a4a;--ref-evt-fg: #c8c8c8;--ref-evt-bg: #2a2a2a;--tag-bg: rgba(255, 255, 255, .06);--tag-border: rgba(255, 255, 255, .22);--tag-fg: rgba(255, 255, 255, .88);--tag-ally-fg: #7ddc9a;--tag-enemy-fg: #ff9a8f;--tag-neutral-fg: #9cc3ff;--tag-major-bg: #1565c0;--tag-major-fg: #ffffff;--secret-bg: rgba(255, 88, 100, .1);--secret-border: #ff7a85;--secret-label: #ffa3ab;--inset-bg: rgba(245, 222, 179, .06);--inset-border: rgba(245, 222, 179, .4);--inset-fg: #f5deb3;--graph-bg: #0f0f0f;--graph-ink: #e8e8ec;--ccw-accent-text: #d4b45a;--text-1: var(--text-primary);--text-2: var(--text-secondary);--text-3: var(--text-muted);--text-mut: var(--text-secondary);color:var(--text-primary);color-scheme:dark}[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}.ink-on-fill:not(#_){color:#fff;color:oklch(from var(--fill, #555) clamp(0,(.57 - l) * 1000,1) 0 0)}.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-menu-accent: #a3cdff;--color-menu-success: #7ddc9a;--color-menu-warning: #ffb74d;--color-menu-danger: #ff8a8a;--color-menu-text-disabled: rgba(255, 255, 255, .5);--color-menu-tip-bg: #e0e0e0;--color-menu-tip-text: #1a1a1a;--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:var(--font-family-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--surface-1);color:var(--text-primary)}#root{width:100%;height:100vh;height:var(--app-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;--app-height: 100vh}@supports (height: 100dvh){:root{--app-height: 100dvh}}@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{-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}}@keyframes rm-lifetime-hold{0%,99.9%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ping-circle,.ping-video-container,.ping-video-ring,.ping-with-video .ping-username,.measurement-line.saved,.template-shape.placed,.sc-status{animation-name:rm-lifetime-hold!important;animation-timing-function:step-end!important;animation-delay:0s!important}.ping-circle,.ping-video-ring{animation-duration:2s!important}.ping-video-container,.ping-with-video .ping-username{animation-duration:3s!important}.measurement-line.saved{animation-duration:5s!important}.template-shape.placed{animation-duration:10s!important}.sc-status{animation-duration:2.5s!important}.ping-circle{width:56px;height:56px}.ping-circle-2,.ping-circle-3{display:none}.dice-overlay,.card-banner{animation:none!important;opacity:1}}@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}}.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}
