:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#1f2937;background-color:#f4f6fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:#f4f6fb}a{font-weight:600;color:inherit;text-decoration:none}a:hover{text-decoration:underline}button{border:none;padding:.5em .9em;font-size:.95em;font-weight:600;font-family:inherit;background-color:#e7edf8;color:#1f2937;cursor:pointer;transition:background .15s ease,border-color .15s ease}button:hover{background-color:#d9e4fb}textarea{font-family:inherit}:root{--font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bg-app: #0f172a;--bg-gridline: rgba(30, 41, 73, .45);--bg-panel: rgba(15, 23, 42, .85);--bg-panel-inset: rgba(21, 30, 51, .9);--bg-panel-header: rgba(45, 55, 72, .4);--bg-panel-hover: rgba(59, 73, 103, .55);--bg-canvas: rgba(17, 24, 39, .9);--bg-canvas-wrapper: rgba(15, 23, 42, .95);--text-light: #f1f5f9;--text-base: #e2e8f0;--text-muted: rgba(203, 213, 225, .8);--text-subtle: rgba(203, 213, 225, .75);--text-dark: #020617;--border-primary: rgba(148, 163, 184, .35);--border-secondary: rgba(100, 116, 139, .45);--border-btn: rgba(94, 109, 140, .65);--border-btn-hover: rgba(140, 154, 185, .75);--btn-bg: rgba(30, 41, 59, .9);--btn-bg-hover: rgba(46, 60, 89, .95);--btn-bg-active: rgba(99, 111, 164, .95);--btn-border-active: rgba(197, 206, 232, .85);--btn-text-active: #f8fafc;--shadow-panel: 0 18px 36px rgba(2, 6, 23, .55);--spacing-xs: clamp(.3rem, 1vw, .4rem);--spacing-sm: clamp(.5rem, 1.2vw, .65rem);--spacing-md: clamp(1rem, 1.8vw, 1.2rem);--spacing-lg: clamp(1.2rem, 2.2vw, 1.6rem);--spacing-xl: clamp(1.6rem, 3.5vw, 2.8rem);--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--sidebar-width: 280px;--sidebar-collapsed-width: 64px;--inspector-min-width: 260px;--inspector-max-width: 420px}*{box-sizing:border-box;margin:0;padding:0;scrollbar-width:thin;scrollbar-color:rgba(136,146,176,.5) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:#8892b080;border-radius:0}*::-webkit-scrollbar-track{background:transparent}html,body,#root{min-height:100%}.app{min-height:100vh;height:100%;width:100%;background:var(--bg-app);background-image:linear-gradient(var(--bg-gridline) 1px,transparent 1px),linear-gradient(90deg,var(--bg-gridline) 1px,transparent 1px);background-size:32px 32px;padding:var(--spacing-xl);font-family:var(--font-family);color:var(--text-base)}.app-shell{width:100%;margin:0;display:flex;flex-direction:column;gap:var(--spacing-lg);min-height:100vh}.app-content{flex:1;display:flex;justify-content:center;align-items:stretch;width:100%}.auth-placeholder{width:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.auth-placeholder-card{width:min(520px,100%);display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center;background:#0f172aeb;border:1px solid var(--border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);padding:clamp(1.6rem,3vw,2.2rem);text-align:center}.public-slider{width:min(480px,100%);display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:center}.public-slider.loading,.public-slider.error{border:1px dashed rgba(148,163,184,.4);background:#17203473;padding:.8rem 1rem;font-size:.72rem;letter-spacing:.06em;color:var(--text-muted)}.public-slider-frame{width:100%;aspect-ratio:16 / 9;border:1px solid rgba(71,85,122,.55);background:#0d1423d9;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.public-slider-frame img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.public-slider-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:1rem;font-size:.7rem;letter-spacing:.05em;color:var(--text-muted);text-align:center}.public-slider-placeholder button{background:#60a5fa33;border:1px solid rgba(148,197,255,.5);color:#e0f2fe;padding:.3rem .7rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease}.public-slider-placeholder button:hover{background:#60a5fa4d;border-color:#94c5ffb3}.public-slider-meta{display:flex;flex-direction:column;gap:.2rem;align-items:center}.public-slider-name{font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#f8fafc}.public-slider-owner{font-size:.7rem;letter-spacing:.05em;color:var(--text-muted)}.public-slider-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.public-slider-controls>button{background:#1e2949cc;border:1px solid rgba(82,102,140,.6);color:#f8fafc;padding:.25rem .6rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease}.public-slider-controls>button:hover{background:#3b4967bf;border-color:#94c5ff8c}.public-slider-dots{display:flex;gap:.35rem;align-items:center}.public-slider-dots .dot{width:8px;height:8px;border-radius:999px;border:none;background:#52668c80;cursor:pointer;padding:0}.public-slider-dots .dot.active{background:#94c5ffd9}.public-slider-dots .dot:hover{background:#94c5ff99}.auth-placeholder-title{font-size:clamp(1rem,2.5vw,1.3rem);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#60a5fa}.auth-placeholder-text{font-size:.78rem;letter-spacing:.05em;color:var(--text-muted);line-height:1.6;max-width:28ch}.auth-placeholder-actions{margin-top:var(--spacing-sm);display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center}.auth-placeholder-cta{padding:.55rem 1.6rem;background:#60a5fa2e;border:1px solid rgba(148,197,255,.6);color:#e2e8f0;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;cursor:pointer;transition:background .16s ease,border-color .16s ease}.auth-placeholder-cta:hover{background:#60a5fa4d;border-color:#94c5ffcc}.auth-placeholder-cta.secondary{background:#10b98129;border-color:#6ee7b78c}.auth-placeholder-cta.secondary:hover{background:#10b98147;border-color:#6ee7b7bf}@media(max-width:640px){.auth-placeholder-card{width:min(100%,420px)}.auth-placeholder-actions{flex-direction:column;gap:var(--spacing-xs);width:100%}.auth-placeholder-cta{width:100%;padding:.6rem 1rem;font-size:.75rem}}.top-navbar{display:flex;align-items:center;justify-content:space-between;background:#0d1321d1;border:1px solid rgba(94,109,140,.65);border-radius:var(--radius-md);padding:.75rem 1.1rem;box-shadow:0 14px 28px #02061780;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;gap:var(--spacing-sm)}.top-navbar-brand{display:flex;align-items:center;gap:.55rem;min-width:0}.top-navbar-logo{font-size:1.12rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#f8fafc}.top-navbar-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.auth-button,.nav-user-pill,.sidebar-toggle-button{height:2.4rem;display:inline-flex;align-items:center;justify-content:center}.auth-button{background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:0 1rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.sidebar-toggle-button{display:inline-flex;align-items:center;gap:.35rem;padding:0 .6rem;width:auto}.sidebar-toggle-button svg{width:1.1rem;height:1.1rem}.auth-button:hover{background:var(--btn-bg-hover);border-color:var(--border-btn-hover)}.auth-button.primary{background:#60a5fa33;border-color:#94c5ff8c;color:#e0f2fe}.auth-button.primary:hover{background:#60a5fa52;border-color:#94c5ffbf;color:#f8fafc}.auth-button:disabled{opacity:.55;cursor:not-allowed}.nav-status{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.nav-user-pill{display:flex;align-items:center;background:#1e2949a6;border:1px solid rgba(82,102,140,.6);border-radius:0;padding:0 .9rem}.nav-user-email{font-size:.72rem;letter-spacing:.06em;color:#e2e8f0}.collections-modal-overlay{position:fixed;inset:0;background:#020617bd;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2100;padding:2rem}.collections-modal{background:#0f172af2;border:1px solid rgba(94,109,140,.65);border-radius:var(--radius-md);width:min(920px,92vw);max-height:82vh;display:flex;flex-direction:column;box-shadow:0 18px 48px #02061799;overflow:hidden}.collections-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid rgba(71,85,122,.55);background:#151e33f2}.collections-modal-header h2{font-size:.95rem;text-transform:uppercase;letter-spacing:.14em;color:#e2e8f0}.collections-modal-close{background:transparent;border:1px solid rgba(148,197,255,.25);color:#f8fafc;width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .16s ease,background .16s ease}.collections-modal-close:hover{border-color:#94c5ff73;background:#3b496766}.preview-modal-overlay{position:fixed;inset:0;background:#070b16d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:1000}.preview-modal{position:relative;width:min(1200px,96vw);max-height:90vh;background:#0f172af5;border:1px solid rgba(94,109,140,.65);box-shadow:0 20px 40px #020617b3;border-radius:var(--radius-lg);padding:0;display:flex;flex-direction:column}.preview-modal-body{padding:0;overflow:hidden}.preview-modal-body img{display:block;width:100%;height:auto;image-rendering:pixelated}.preview-modal-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;background:#0f172aeb;border:1px solid rgba(148,197,255,.4);color:#e2e8f0;border-radius:999px;cursor:pointer;transition:background .16s ease,border-color .16s ease}.preview-modal-close:hover{background:#2d3748e6;border-color:#94c5ff99}.collections-modal-body{padding:1.25rem;display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.collections-error{border:1px solid rgba(248,113,113,.4);background:#f871712e;color:#fecaca;padding:.75rem;font-size:.74rem;letter-spacing:.05em;border-radius:var(--radius-sm)}.collections-loading,.collections-empty{border:1px dashed rgba(148,163,184,.45);background:#17203480;color:var(--text-muted);padding:1.1rem;text-align:center;font-size:.75rem;letter-spacing:.06em}.collections-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.collections-load-more{display:flex;justify-content:center;margin-top:1.25rem}.collections-load-more>button{background:#1e2949cc;border:1px solid rgba(148,197,255,.45);color:#f8fafc;padding:.55rem 1.6rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease}.collections-load-more>button:hover:not(:disabled){background:#3b4967bf;border-color:#94c5ffa6}.collections-load-more>button:disabled{opacity:.6;cursor:not-allowed}.collection-card{border:1px solid rgba(71,85,122,.55);background:#0d1423eb;border-radius:var(--radius-sm);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 10px 24px #02061773;min-width:0}.collection-thumb{position:relative;width:100%;padding-top:56.25%;background:#111827e6;border-bottom:1px solid rgba(71,85,122,.55)}.collection-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.collection-thumb-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.72rem;letter-spacing:.06em;color:var(--text-muted)}.collection-details{display:flex;flex-direction:column;gap:.35rem;padding:.9rem}.collection-name{font-size:.82rem;font-weight:600;letter-spacing:.05em;color:#f1f5f9}.collection-owner{font-size:.68rem;letter-spacing:.05em;color:#94c5ffe6;text-transform:uppercase}.collection-owner span{text-transform:none;color:#e2e8f0}.collection-updated{font-size:.68rem;letter-spacing:.04em;color:var(--text-muted)}.collection-actions{display:flex;align-items:center;gap:.45rem;margin-top:.45rem;flex-wrap:wrap}.collection-open-editor{background:#60a5fa2e;border:1px solid rgba(148,197,255,.5);color:#e0f2fe;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .6rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.collection-open-editor:hover:not(:disabled){background:#60a5fa47;border-color:#94c5ffb3}.collection-open-editor:disabled{opacity:.5;cursor:not-allowed}.collection-link{margin-top:.3rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#bae6fd;text-decoration:none;border:1px solid rgba(148,197,255,.45);padding:.32rem .5rem;border-radius:var(--radius-sm);text-align:center;transition:background .16s ease,border-color .16s ease;flex:1}.collection-actions .collection-open-editor,.collection-actions .collection-link{min-width:120px}@media(max-width:960px){.collections-modal-overlay{padding:1.3rem}.collections-modal{width:min(720px,95vw);max-height:85vh}.collections-modal-header{padding:.9rem 1rem}.collections-modal-body{padding:1rem}.collections-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}.collection-thumb{padding-top:60%}}@media(max-width:640px){.collection-actions{flex-direction:column;align-items:stretch;gap:.35rem;width:100%}.collection-open-editor,.collection-link{width:100%;margin-top:0}.collections-modal-overlay{padding:.85rem}.collections-modal{width:96vw;max-height:88vh}.collections-modal-header{padding:.75rem .9rem}.collections-modal-body{padding:.75rem}.collections-list{grid-template-columns:1fr;gap:.6rem}.collection-thumb{padding-top:62%}.collection-details{padding:.75rem}}.collection-link:hover{border-color:#94c5ffb3;background:#60a5fa24}.auth-modal-overlay{position:fixed;inset:0;background:#020617b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1.5rem}.auth-modal{width:min(420px,100%);background:#0f172af5;border:1px solid rgba(94,109,140,.65);border-radius:var(--radius-md);box-shadow:0 24px 48px #020617a6;display:flex;flex-direction:column;gap:1rem;padding:1.6rem}.auth-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.auth-modal-header h2{font-size:1.05rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#f8fafc}.auth-modal-close{background:transparent;border:none;color:#f8fafc;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(148,197,255,.2);font-size:1rem;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.auth-modal-close:hover{background:#60a5fa33;border-color:#94c5ff73}.auth-form{display:flex;flex-direction:column;gap:.85rem}.auth-field{display:flex;flex-direction:column;gap:.4rem;font-size:.78rem;letter-spacing:.04em;color:#e2e8f0d9}.auth-field input{background:#172034d9;border:1px solid rgba(82,102,140,.6);color:#f1f5f9;padding:.55rem .65rem;border-radius:var(--radius-sm);font-size:.82rem}.auth-field input:focus{outline:none;border-color:#94c5ffbf;box-shadow:0 0 0 2px #60a5fa33}.auth-error{font-size:.72rem;color:#f87171;letter-spacing:.04em}.auth-submit{background:#60a5fa40;border:1px solid rgba(148,197,255,.6);color:#f8fafc;padding:.6rem .9rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease}.auth-submit:hover{background:#60a5fa61;border-color:#94c5ffd9}.faq-modal-overlay{position:fixed;inset:0;background:#020617ad;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2100;padding:1.5rem}.faq-modal{width:min(560px,100%);max-height:min(620px,100%);background:#0f172af0;border:1px solid rgba(94,109,140,.7);border-radius:var(--radius-md);box-shadow:0 28px 56px #020617b3;display:flex;flex-direction:column;gap:1.2rem;padding:1.8rem;overflow:hidden}.faq-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.faq-modal-header h2{font-size:1.08rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#f8fafc}.faq-modal-close{background:transparent;border:1px solid rgba(148,197,255,.24);color:#f8fafc;width:34px;height:34px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.faq-modal-close:hover{background:#60a5fa33;border-color:#94c5ff73}.faq-modal-body{display:flex;flex-direction:column;gap:1.1rem;overflow-y:auto;padding-right:.35rem}.faq-item{display:flex;flex-direction:column;gap:.45rem;padding:1rem;border-radius:var(--radius-md);background:#172034c7;border:1px solid rgba(71,85,105,.55)}.faq-item h3{font-size:.92rem;letter-spacing:.07em;text-transform:uppercase;color:#e2e8f0eb}.faq-item p{font-size:.82rem;letter-spacing:.04em;line-height:1.55;color:#cbd5e1eb}.faq-button-preview{display:inline-flex;align-items:center;justify-content:center;min-width:2.2rem;height:2rem;padding:0 .6rem;gap:.35rem;background:#1e293bd9;border:1px solid rgba(71,85,105,.65);color:#f8fafcf0;border-radius:var(--radius-sm);font-size:.86rem;letter-spacing:.04em;white-space:nowrap}.faq-button-preview svg{width:1.1rem;height:1.1rem}.faq-button-group{display:inline-flex;flex-wrap:wrap;gap:.35rem;align-items:center}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.panel{background:var(--bg-panel);border:1px solid var(--border-primary);box-shadow:var(--shadow-panel);padding:var(--spacing-lg);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:var(--spacing-md);scrollbar-width:thin;scrollbar-color:rgba(136,146,176,.5) transparent}.panel::-webkit-scrollbar{width:6px;height:6px}.panel::-webkit-scrollbar-thumb{background:#8892b080;border-radius:0}.btn{background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:.4rem .85rem;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease;border-radius:var(--radius-md);white-space:nowrap}.btn:hover{background:var(--btn-bg-hover);border-color:var(--border-btn-hover)}.btn.active{background:var(--btn-bg-active);border-color:var(--btn-border-active);color:var(--btn-text-active)}.btn:disabled{opacity:.4;cursor:not-allowed}.sidebar-section{background:var(--bg-panel-inset);border:1px solid var(--border-secondary);border-radius:var(--radius-md);display:flex;flex-direction:column;overflow:hidden;margin-bottom:var(--spacing-sm)}.section-header{padding:.65rem .75rem;display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#f1f5f9d6;background:var(--bg-panel-header);border:none;cursor:pointer}.section-header-main{display:flex;align-items:center;gap:.55rem;min-width:0}.section-icon{width:1.2rem;height:1.2rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.section-icon img{width:100%;height:100%;display:block;object-fit:contain;filter:invert(88%) sepia(7%) saturate(626%) hue-rotate(184deg) brightness(101%) contrast(97%)}.section-label{white-space:nowrap}.section-header:hover{background:var(--bg-panel-hover)}.collapse-icon{display:inline-block;width:1.25rem;height:1.25rem;color:#94a3b8cc;transition:transform .18s ease,color .18s ease;transform-origin:center}.collapse-icon path{stroke:currentColor}.collapse-icon.expanded{transform:rotate(90deg)}.section-body{padding:.85rem .9rem 1rem;display:flex;flex-direction:column;gap:.65rem}.empty-state{border:1px solid var(--border-secondary);background:var(--bg-panel-inset);padding:1.4rem;font-size:.78rem;letter-spacing:.06em;color:var(--text-muted);text-align:center;border-radius:var(--radius-md)}.tile-map-editor{width:100%;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);gap:var(--spacing-lg)}.tile-map-editor.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr);gap:0}.editor-body{display:grid;grid-template-columns:minmax(0,1fr) clamp(var(--inspector-min-width),24vw,var(--inspector-max-width));gap:var(--spacing-lg);align-items:stretch;min-width:0;min-height:0}.editor-body.inspector-collapsed{grid-template-columns:minmax(0,1fr)}.editor-body.inspector-collapsed>.sidebar{display:none}.editor-body>.sidebar{min-width:0;max-height:calc(100vh - (2 * var(--spacing-xl)));overflow:hidden}.control-sidebar{position:relative;overflow-y:auto;max-height:calc(100vh - (2 * var(--spacing-xl)))}.control-sidebar.collapsed{width:0;padding:0;margin:0;border:0;overflow:hidden}.sidebar-collapse-toggle svg{width:1.1rem;height:1.1rem}.sidebar-nav{display:flex;gap:var(--spacing-xs);flex-wrap:wrap;margin-bottom:var(--spacing-sm)}.collapsed-controls{display:grid;grid-template-rows:repeat(4,2.25rem);gap:var(--spacing-xs)}.collapsed-control-button{background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:0;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-md);cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease;display:inline-flex;align-items:center;justify-content:center}.collapsed-control-button:hover{background:var(--btn-bg-hover);border-color:var(--border-btn-hover);color:var(--text-light)}.collapsed-control-button:disabled{opacity:.45;cursor:not-allowed}.collapsed-zoom-indicator{display:inline-flex;justify-content:center;align-items:center;padding:0;font-size:.72rem;letter-spacing:.08em;color:#e2e8f0eb;background:#0f172ac7;border:1px solid rgba(71,85,105,.6);border-radius:var(--radius-md)}.sidebar-nav-button{background:transparent;border:1px solid transparent;color:var(--text-base);display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .6rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;transition:background .16s ease,border-color .16s ease,color .16s ease}.sidebar-nav-button svg{width:1rem;height:1rem}.sidebar-nav-button.active{background:var(--btn-bg-active);border-color:var(--btn-border-active);color:var(--btn-text-active)}.sidebar-nav-button:hover{background:var(--btn-bg-hover);border-color:var(--border-btn-hover)}.control-sidebar.collapsed .sidebar-nav{flex-direction:column;align-items:center;gap:var(--spacing-xs)}.control-sidebar.collapsed .sidebar-nav-button{width:2.6rem;padding:.45rem;justify-content:center}.control-sidebar.collapsed .sidebar-nav-button span{display:none}.control-sidebar.collapsed .section-header{justify-content:center;padding:.6rem 0;background:transparent;border:none}.control-sidebar.collapsed .section-label{display:none}.control-sidebar.collapsed .section-header-main{justify-content:center}.control-sidebar.collapsed .collapse-icon,.control-sidebar.collapsed .section-body{display:none}.sidebar-collapse-toggle img{width:1.4rem;height:1.4rem;display:block;filter:invert(88%) sepia(7%) saturate(626%) hue-rotate(184deg) brightness(101%) contrast(97%)}.sidebar-intro{display:flex;flex-direction:column;gap:.35rem;padding-bottom:.9rem;border-bottom:1px solid var(--border-primary)}.sidebar-intro h1{margin:0;font-size:1.22rem;font-weight:600;color:var(--text-light);letter-spacing:.04em}.sidebar-subtitle{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.selection-buttons,.rotation-buttons,.map-action-buttons,.preview-buttons{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}.map-action-buttons button{display:inline-flex;align-items:center;gap:.35rem}.map-size-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-sm);align-items:stretch}.map-size-inputs button{width:100%;justify-self:stretch;grid-column:span 2}.map-size-inputs button,.selection-button,.rotation-button,.zoom-buttons button,.map-action-buttons button,.preview-buttons button,.tileset-tab-button,.sidebar-tab,.tileset-source-card{background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:.4rem .85rem;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease;border-radius:var(--radius-md);white-space:nowrap}.map-size-inputs button:hover,.selection-button:hover,.rotation-button:hover,.zoom-buttons button:hover,.map-action-buttons button:hover,.preview-buttons button:hover,.tileset-tab-button:hover,.sidebar-tab:hover,.tileset-source-card:hover{background:var(--btn-bg-hover);border-color:var(--border-btn-hover)}.selection-button.active,.rotation-button.active,.tileset-tab-button.active,.sidebar-tab.active,.tileset-source-card.active{background:var(--btn-bg-active);border-color:var(--btn-border-active);color:var(--btn-text-active)}.map-size-inputs button:disabled,.selection-button:disabled,.rotation-button:disabled,.zoom-buttons button:disabled,.map-action-buttons button:disabled,.preview-buttons button:disabled,.tileset-tab-button:disabled,.sidebar-tab:disabled,.tileset-source-card:disabled{opacity:.4;cursor:not-allowed}.map-size-inputs label{display:flex;flex-direction:column;gap:.28rem;font-size:.7rem;color:#e2e8f0d9;letter-spacing:.05em;width:100%}.map-size-inputs input,.map-size-inputs select{width:100%;padding:.32rem .6rem;font-size:.75rem;color:var(--btn-text-active);background:#0f172abf;border:1px solid var(--border-secondary);border-radius:var(--radius-sm);height:2rem;display:inline-flex;align-items:center}.map-size-inputs select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2396bbff' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:calc(100% - 10px) center;background-size:12px 8px;background-repeat:no-repeat;padding-right:1.6rem}.zoom-slider{--slider-progress: 0%;--slider-track-bg: rgba(46, 60, 89, .45);--slider-track-fill: rgba(59, 130, 246, .7);--slider-thumb-bg: var(--btn-bg-active);--slider-thumb-border: var(--btn-border-active);--slider-thumb-shadow: 0 0 0 2px rgba(15, 23, 42, .7);width:100%;min-width:0;height:.75rem;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer;transition:opacity .16s ease}.zoom-slider::-webkit-slider-runnable-track{height:.4rem;background:linear-gradient(90deg,var(--slider-track-fill) 0%,var(--slider-track-fill) var(--slider-progress),var(--slider-track-bg) var(--slider-progress),var(--slider-track-bg) 100%)}.zoom-slider::-webkit-slider-thumb{appearance:none;width:18px;height:18px;background:var(--slider-thumb-bg);border:2px solid var(--slider-thumb-border);box-shadow:var(--slider-thumb-shadow);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease;margin-top:-.5rem}.zoom-slider::-moz-range-track{height:.4rem;background:var(--slider-track-bg)}.zoom-slider::-moz-range-progress{height:.4rem;background:var(--slider-track-fill)}.zoom-slider::-moz-range-thumb{-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--slider-thumb-bg);border:2px solid var(--slider-thumb-border);border-radius:0;box-shadow:none;cursor:pointer;transition:none;margin-top:-.5rem;margin-bottom:0}.zoom-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-sm);align-items:center}.zoom-buttons button{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.zoom-slider{grid-column:1 / span 2;height:auto;min-height:2.2rem}.zoom-buttons button:nth-child(1),.zoom-buttons button:nth-child(2),.zoom-buttons button:nth-child(3){padding:.4rem .85rem}.zoom-buttons button svg{width:1.1rem;height:1.1rem}.zoom-slider:focus-visible::-webkit-slider-thumb{transform:scale(1.08);box-shadow:var(--slider-thumb-shadow),0 0 0 4px #3b82f640}.zoom-slider:focus-visible::-moz-range-thumb{transform:none;box-shadow:none}.zoom-slider:disabled{cursor:not-allowed;opacity:.4}.zoom-slider:disabled::-webkit-slider-thumb,.zoom-slider:disabled::-moz-range-thumb{cursor:not-allowed;opacity:.7;box-shadow:0 0 0 1px #0f172a80}.zoom-label{grid-column:3 / span 1;justify-self:end;font-size:.74rem;letter-spacing:.08em;color:#e2e8f0d9;min-width:60px;text-align:right}.zoom-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--btn-bg-active);border:2px solid var(--btn-border-active);box-shadow:0 0 0 2px #0f172a99;cursor:pointer;transition:transform .16s ease}.zoom-slider:focus-visible::-webkit-slider-thumb,.zoom-slider:focus-visible::-moz-range-thumb{transform:scale(1.1)}.zoom-slider:disabled{opacity:.4;cursor:not-allowed}.zoom-slider:disabled::-webkit-slider-thumb,.zoom-slider:disabled::-moz-range-thumb{cursor:not-allowed}.play-mode-controls{display:flex;flex-direction:column;gap:var(--spacing-sm)}.play-mode-label{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f0d9}.play-character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-sm);max-height:220px;overflow-y:auto;padding-right:.2rem}.play-character-card{position:relative;display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;padding:.45rem .35rem;background:#0f172a99;border:1px solid rgba(71,85,105,.65);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.play-character-card:hover{border-color:#94a3b8d9;background:#1e293bbf}.play-character-card.active{border-color:var(--btn-border-active);background:#3b82f626;box-shadow:inset 0 0 0 1px #60a5fa59}.play-character-thumb{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:0;overflow:hidden}.play-character-thumb img{width:44px;height:44px;image-rendering:pixelated;object-fit:contain}.play-character-label{position:absolute;left:0;right:0;bottom:0;padding:.24rem .35rem;background:linear-gradient(180deg,#02061700,#020617e6 70%);color:#e2e8f0f2;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;text-align:center;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.play-character-empty{font-size:.68rem;letter-spacing:.04em;color:#94a3b8d9;padding:.5rem .4rem;background:#0f172a80;border:1px dashed rgba(148,163,184,.4);border-radius:var(--radius-sm);text-align:center}.play-character-preview{display:flex;justify-content:center;align-items:center;padding:.35rem;background:#0f172aa6;border:1px dashed rgba(148,163,184,.45);border-radius:var(--radius-sm)}.play-character-preview img{width:48px;height:48px;image-rendering:pixelated}.play-mode-buttons{display:flex;gap:var(--spacing-xs)}.play-mode-buttons button{flex:1;background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:.35rem .5rem;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.play-mode-buttons button:hover{background:var(--btn-bg-hover);border-color:var(--border-btn-hover)}.play-mode-buttons button:disabled{opacity:.4;cursor:not-allowed}.play-mode-hint{font-size:.64rem;color:#94a3b8d9;letter-spacing:.04em;line-height:1.4}.tile-type-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-sm);align-items:stretch}.tile-type-button{background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:.32rem .6rem;font-size:.68rem;letter-spacing:.07em;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease;border-radius:var(--radius-sm);min-width:2.2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;text-transform:uppercase}.tile-type-button strong{font-size:inherit;font-weight:600;letter-spacing:inherit}.tile-type-button:hover{background:var(--btn-bg-hover);border-color:var(--border-btn-hover)}.tile-type-button.active{background:var(--btn-bg-active);border-color:var(--btn-border-active);color:var(--btn-text-active)}.tile-type-button:disabled{opacity:.45;cursor:not-allowed}.canvas-pane{background:var(--bg-canvas-wrapper);border-color:#47556980;min-height:400px;display:flex;flex-direction:column;gap:var(--spacing-sm)}.canvas-wrapper{width:100%;height:100%;border:1px solid var(--border-secondary);background:var(--bg-canvas);overflow:auto;border-radius:var(--radius-md);position:relative;flex:1;scroll-behavior:smooth;overscroll-behavior:contain}.canvas-wrapper.pan-ready{cursor:grab}.canvas-wrapper.pan-active{cursor:grabbing}.canvas-stage{position:relative}.canvas-wrapper canvas{image-rendering:pixelated;display:block;background:transparent;position:relative;z-index:1}.canvas-grid-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;opacity:.7;background-image:linear-gradient(var(--bg-gridline) 1px,transparent 1px),linear-gradient(90deg,var(--bg-gridline) 1px,transparent 1px);background-repeat:repeat}.grid-hover-cell{position:absolute;top:0;left:0;border:1px solid rgba(148,163,184,.95);background:#94a3b833;border-radius:0;pointer-events:none;transform-origin:top left;transition:opacity .08s ease}.grid-selection-area{position:absolute;top:0;left:0;border:1px solid rgba(96,165,250,.9);background:#60a5fa40;border-radius:0;pointer-events:none;transform-origin:top left}.tile-type-overlay{position:absolute;top:0;left:0;pointer-events:none;z-index:3;image-rendering:optimizespeed}.tile-type-overlay-icon{position:absolute;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(15,23,42,.35));opacity:.9}.canvas-toolbar{display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap}.canvas-toolbar-group{display:inline-flex;gap:var(--spacing-xs);align-items:center}.canvas-toolbar-spacer{flex:1}.marker-button{min-width:2.2rem}.canvas-toolbar-button{background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:.32rem .6rem;font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease;border-radius:var(--radius-sm);min-width:2.2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center}.canvas-toolbar-button:hover{background:var(--btn-bg-hover);border-color:var(--border-btn-hover)}.canvas-toolbar-button.active{background:var(--btn-bg-active);border-color:var(--btn-border-active);color:var(--btn-text-active)}.canvas-toolbar-button svg{width:1rem;height:1rem;pointer-events:none}.canvas-placeholder{width:100%;min-height:280px;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-panel-inset);border:1px solid var(--border-btn);font-size:.84rem;letter-spacing:.04em;color:var(--text-muted);text-align:center;padding:1.5rem;border-radius:var(--radius-md)}.sidebar{display:flex;flex-direction:column;gap:var(--spacing-md);height:100%;min-width:0}.sidebar-tabs{display:grid;grid-auto-flow:column;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-xs)}.sidebar-tab{text-align:center;flex-grow:1;width:100%;padding:.42rem .75rem;font-size:.76rem;letter-spacing:.08em}.sidebar-content{display:flex;flex-direction:column;gap:var(--spacing-md);flex:1;min-height:0;overflow-y:auto;padding-right:calc(var(--spacing-xs) + 4px)}.tileset-tab,.inspector-tab,.export-tab{display:flex;flex-direction:column;gap:.85rem}.tileset-tab{flex:1;min-height:0;display:grid;grid-template-rows:auto auto 1fr;gap:var(--spacing-md)}.tileset-label{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#e2e8f0d9}.tileset-source{display:flex;flex-direction:column;gap:.55rem;border:1px solid var(--border-secondary);background:#172034d9;padding:.6rem;border-radius:var(--radius-md);max-height:240px}.tileset-source-body{display:flex;flex-direction:column;gap:.55rem;max-height:180px;overflow-y:auto}.tileset-source-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.55rem}.tileset-source-card{height:78px;background-size:cover;background-position:center;display:flex;align-items:flex-end;justify-content:flex-start;position:relative;image-rendering:pixelated;padding:0;overflow:hidden}.tileset-source-card span{width:100%;background:linear-gradient(180deg,#02061700,#020617d9 60%);color:#e2e8f0f2;padding:.3rem .45rem;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;display:-webkit-box;-webkit-box-orient:vertical;line-clamp:3;-webkit-line-clamp:3;overflow:hidden;word-break:break-word}.tile-palette{display:flex;flex-direction:column;gap:.6rem;border:1px solid var(--border-secondary);background:#172034d9;padding:.6rem;border-radius:var(--radius-md);overflow-y:auto;min-height:0}.tileset-tabs{display:flex;flex-direction:column;gap:.5rem}.tileset-tab-buttons{display:flex;gap:var(--spacing-xs);overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(136,146,176,.5) transparent}.tileset-tab-panel,.tileset-section{border:1px solid var(--border-secondary);background:#090d19eb;padding:.6rem;border-radius:var(--radius-md)}.tileset-section{display:flex;flex-direction:column;gap:.4rem}.tileset-section-title{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle)}.tileset-grid{display:grid;gap:.3rem;grid-template-columns:repeat(auto-fill,minmax(42px,1fr))}.tileset-cell{width:100%;padding-top:100%;position:relative;border:1px solid var(--border-btn);background-repeat:no-repeat;background-size:contain;background-position:center;image-rendering:pixelated;transition:border-color .16s ease,box-shadow .16s ease;border-radius:var(--radius-sm);cursor:pointer}.tileset-cell>*{position:absolute;top:0;left:0;width:100%;height:100%}.my-maps-panel{display:flex;flex-direction:column;gap:var(--spacing-sm);border:1px solid var(--border-secondary);background:#172034d9;padding:.75rem;border-radius:var(--radius-md)}.my-maps-header{display:flex;align-items:center;justify-content:space-between;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:#e2e8f0d9}.my-maps-loading{font-size:.66rem;color:var(--text-muted)}.my-maps-message{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .7rem;border-radius:var(--radius-sm);font-size:.72rem;letter-spacing:.05em}.my-maps-message.success{background:#38bdf829;border:1px solid rgba(148,197,255,.4);color:#e0f2fe}.my-maps-message.error{background:#f8717129;border:1px solid rgba(248,113,113,.35);color:#fecaca}.my-maps-message button{background:transparent;border:none;color:inherit;cursor:pointer;font-size:.8rem;line-height:1;padding:0}.my-maps-actions{display:flex;gap:var(--spacing-xs)}.my-maps-actions button{flex:1;background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:.55rem .8rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease}.my-maps-actions button:hover:not(:disabled){background:var(--btn-bg-hover);border-color:var(--border-btn-hover)}.my-maps-actions button:disabled{opacity:.55;cursor:not-allowed}.my-maps-list{display:flex;flex-direction:column;gap:.55rem;max-height:240px;overflow-y:auto}.my-map-card{border:1px solid var(--border-secondary);background:#0d1423d1;border-radius:var(--radius-sm);display:flex;flex-direction:column}.my-map-card.active{border-color:var(--btn-text-active);box-shadow:0 0 0 2px #94a3b859}.my-map-card:hover{border-color:#94c5ff59;background:#151e33d9;box-shadow:0 10px 28px #0206176b;transform:translateY(-1px)}.my-map-main{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.65rem .7rem;background:#0d142303;border:none;color:inherit;text-align:left;cursor:pointer;transition:background .18s ease,color .18s ease}.my-map-main:hover{background:#3b496733}.my-map-name{font-size:.78rem;font-weight:600;letter-spacing:.05em;color:var(--text-base)}.my-map-meta{font-size:.62rem;color:var(--text-muted);letter-spacing:.04em;display:block}.my-map-footer{display:flex;align-items:center;justify-content:space-between;padding:.5rem .7rem;gap:.6rem;border-top:1px solid rgba(94,109,140,.35)}.my-map-status{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .45rem;border-radius:var(--radius-sm);border:1px solid rgba(148,163,184,.3);color:#f1f5f9;background:#3b496766}.my-map-status.pending{background:#facc1529;border-color:#facc1559;color:#facc15}.my-map-status.approved{background:#4ade8024;border-color:#4ade8059;color:#bbf7d0}.my-map-status.rejected{background:#f8717124;border-color:#f8717159;color:#fecaca}.my-map-actions{display:flex;gap:.4rem}.my-map-actions button{background:transparent;border:1px solid var(--border-secondary);color:var(--text-base);padding:.32rem .6rem;font-size:.64rem;letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:border-color .16s ease,background .16s ease}.my-map-actions button:hover:not(:disabled){border-color:var(--border-btn-hover);background:#3b496759}.my-map-actions button:disabled{opacity:.55;cursor:not-allowed}.my-maps-empty{border:1px dashed rgba(148,163,184,.35);background:#17203466;padding:.9rem;font-size:.7rem;letter-spacing:.05em;color:var(--text-muted);text-align:center}.tileset-cell:hover{border-color:var(--border-btn-hover)}.tileset-cell.active{border-color:var(--btn-text-active);box-shadow:0 0 0 2px #94a3b873}.tileset-empty,.hover-empty,.preview-empty{border:1px solid var(--border-secondary);background:var(--bg-panel-inset);padding:1.4rem;font-size:.78rem;letter-spacing:.06em;color:var(--text-muted);text-align:center;border-radius:var(--radius-md)}.hover-panel{display:flex;flex-direction:column;gap:.55rem}.hover-panel span{font-weight:600;letter-spacing:.12em;font-size:.74rem;text-transform:uppercase;color:#e2e8f0cc}.hover-details{display:grid;gap:.3rem;font-size:.76rem;color:#bfdbfed9;letter-spacing:.05em;word-break:break-word}.preview-panel,.export-panel,.map-name-panel{display:flex;flex-direction:column;gap:.55rem}.map-name-panel label{display:flex;flex-direction:column;gap:.35rem;font-size:.72rem;letter-spacing:.05em;color:#e2e8f0d9}.map-name-panel label span{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#e2e8f0e6}.map-name-panel input{background:var(--bg-canvas);border:1px solid var(--border-secondary);color:#e2e8f0e0;padding:.45rem .6rem;font-size:.78rem;letter-spacing:.05em;outline:none}.preview-image{width:100%;border:1px solid var(--border-secondary);image-rendering:pixelated;border-radius:var(--radius-md)}.export-panel textarea{width:100%;min-height:220px;background:var(--bg-canvas);border:1px solid var(--border-secondary);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.7rem;color:#e2e8f0e0;padding:.65rem;letter-spacing:.05em;resize:vertical;border-radius:var(--radius-md)}@media(max-width:1200px){:root{--sidebar-width: 250px;--inspector-min-width: 240px;--inspector-max-width: 360px}}@media(max-width:1024px){.app{--spacing-lg: clamp(1rem, 1.8vw, 1.2rem);--spacing-xl: clamp(1.2rem, 2.2vw, 1.6rem)}.tile-map-editor,.editor-body{grid-template-columns:1fr}.control-sidebar{order:2;max-height:none}.editor-body{order:1}.sidebar{order:3;max-height:none}.sidebar-content{max-height:none}.zoom-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.zoom-label{grid-column:1 / span 2;justify-self:center;text-align:center}}@media(max-width:720px){.app{--spacing-xl: var(--spacing-lg)}.panel{padding:var(--spacing-md)}.tileset-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-size-inputs,.tile-type-buttons{grid-template-columns:1fr}.top-navbar{flex-direction:column;align-items:stretch}.top-navbar-brand{width:100%;justify-content:space-between}.top-navbar-actions{width:100%;justify-content:space-between;gap:var(--spacing-xs)}.nav-user-pill{flex:1;justify-content:center}.top-navbar-actions button,.top-navbar-actions .auth-button,.top-navbar-actions .nav-status{flex:1;text-align:center}.top-navbar-actions .auth-button{min-width:0}}.toast-container{position:fixed;top:1.5rem;right:1.5rem;display:flex;flex-direction:column;gap:.65rem;z-index:2200;pointer-events:none}.toast{min-width:220px;max-width:320px;padding:.8rem 1.05rem;border-radius:0;font-size:.76rem;letter-spacing:.04em;color:#fff;box-shadow:0 12px 28px #0206178c;background:#047857;border:1px solid #34d399;pointer-events:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-transform:uppercase;font-weight:500}.toast-success{background:#047857;border-color:#34d399}.toast-error{background:#b91c1c;border-color:#f87171}.toast-info{background:#1d4ed8;border-color:#93c5fd}@media(max-width:640px){.toast-container{top:auto;bottom:1rem;right:50%;transform:translate(50%);width:calc(100vw - 2rem);max-width:420px;align-items:flex-end}.toast{width:100%;max-width:100%;border-radius:0}}.app-footer{margin-top:var(--spacing-lg);padding:.75rem 1rem;text-align:center;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#cbd5e1b8;border-top:1px solid rgba(71,85,122,.45);background:#0f172ab3}@media(max-width:640px){.public-slider{width:100%}.public-slider-frame{aspect-ratio:4 / 3}}.quick-toolbar{display:none}.tooltip{position:relative;display:inline-flex}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + .4rem);left:50%;transform:translate(-50%);background:#0f172aeb;color:var(--text-base);padding:.25rem .5rem;font-size:.65rem;letter-spacing:.08em;white-space:nowrap;border:1px solid var(--border-secondary);border-radius:var(--radius-sm);box-shadow:0 8px 18px #02061759;opacity:0;pointer-events:none;transition:opacity .14s ease}.tooltip:hover:after{opacity:1}.canvas-toolbar-button:disabled{opacity:.45;cursor:not-allowed}.collapsed-zoom-inline{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.collapsed-zoom-inline .canvas-toolbar-button{width:2.25rem;height:2rem;padding:0;justify-content:center}.collapsed-zoom-inline .collapsed-zoom-indicator{cursor:default;font-size:.7rem;letter-spacing:.08em;font-weight:400;background:#0f172ad9;border:1px solid rgba(71,85,105,.65);color:#e2e8f0eb;width:auto;min-width:0;padding:0 .7rem}.preview-buttons button{display:inline-flex;align-items:center;gap:.35rem;justify-content:center}.preview-modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#020617e0;z-index:2400;padding:2.5rem}.preview-modal{position:relative;max-width:min(95vw,1200px);max-height:min(95vh,900px);background:#0f172af2;border:1px solid rgba(71,85,122,.65);border-radius:var(--radius-md);box-shadow:0 24px 48px #02061799;padding:1.5rem;display:flex;align-items:center;justify-content:center}.preview-modal img{max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:var(--radius-sm);border:1px solid rgba(148,163,184,.45);box-shadow:0 18px 36px #0206178c}.preview-modal-close{position:absolute;top:.75rem;right:.75rem;width:2.2rem;height:2.2rem;background:#0f172ae6;border:1px solid rgba(148,163,184,.6);border-radius:var(--radius-sm);color:#e2e8f0eb;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.preview-modal-close:hover{background:#1e293bf2;border-color:#94c5ffb3;color:#e0f2fe}.legacy-tab{display:flex;flex-direction:column;height:100%;gap:var(--spacing-sm)}.legacy-maps-panel{display:flex;flex-direction:column;gap:var(--spacing-md);flex:1;overflow:hidden}.legacy-maps-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(71,85,122,.4)}.legacy-maps-header>span:first-child{font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-light)}.legacy-maps-count{font-size:.7rem;letter-spacing:.05em;color:var(--text-muted)}.legacy-maps-list{display:flex;flex-direction:column;gap:var(--spacing-sm);overflow-y:auto;padding-right:var(--spacing-xs);flex:1}.legacy-map-card{background:#151e33bf;border:1px solid rgba(71,85,122,.5);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.legacy-map-card:hover{background:#1e293bd9;border-color:#5e6d8ca6;box-shadow:0 4px 12px #02061766}.legacy-map-main{display:flex;flex-direction:column;gap:var(--spacing-sm)}.legacy-map-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-sm)}.legacy-map-name{font-size:.85rem;font-weight:600;letter-spacing:.05em;color:var(--text-light);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legacy-map-id{font-size:.7rem;letter-spacing:.05em;color:var(--text-muted);font-weight:500;flex-shrink:0}.legacy-map-details{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:.72rem;color:var(--text-subtle)}.legacy-map-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.legacy-map-pvp{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#fca5a5;padding:.15rem .5rem;font-size:.65rem;letter-spacing:.05em;text-transform:uppercase;font-weight:500}.legacy-map-spawn{font-size:.7rem;color:var(--text-muted)}.legacy-map-graphics{display:flex;flex-direction:column;gap:var(--spacing-xs)}.legacy-map-graphics>span:first-child{font-size:.7rem;color:var(--text-muted)}.legacy-map-graphics-list{display:flex;flex-wrap:wrap;gap:.3rem}.legacy-map-graphics-item{background:#1e293b99;border:1px solid rgba(71,85,122,.4);padding:.2rem .5rem;font-size:.65rem;letter-spacing:.03em;color:var(--text-subtle);border-radius:var(--radius-sm)}.legacy-map-graphics-more{background:#3b496766;border:1px solid rgba(94,109,140,.5);padding:.2rem .5rem;font-size:.65rem;letter-spacing:.03em;color:var(--text-muted);border-radius:var(--radius-sm)}.legacy-map-footer{display:flex;justify-content:flex-end;padding-top:var(--spacing-xs);border-top:1px solid rgba(71,85,122,.3)}.legacy-map-load-button{background:var(--btn-bg);border:1px solid var(--border-btn);color:var(--text-base);padding:.5rem 1rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease;font-weight:500}.legacy-map-load-button:hover:not(:disabled){background:var(--btn-bg-hover);border-color:var(--border-btn-hover);color:var(--text-light)}.legacy-map-load-button:active:not(:disabled){background:var(--btn-bg-active);border-color:var(--btn-border-active);color:var(--btn-text-active)}.legacy-map-load-button:disabled{opacity:.45;cursor:not-allowed}.legacy-maps-empty{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);font-size:.75rem;letter-spacing:.05em;color:var(--text-muted);text-align:center}
