:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{color-scheme:dark;--bg-primary: #0a0e1a;--bg-secondary: #1a1f35;--bg-tertiary: #14192d;--bg-overlay: rgba(10, 14, 26, .95);--bg-glass: rgba(30, 35, 55, .7);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .7);--text-tertiary: rgba(255, 255, 255, .5);--text-muted: rgba(255, 255, 255, .4);--accent-primary: #00b4ff;--accent-secondary: #00ff88;--accent-tertiary: #6366f1;--accent-danger: #ff4444;--accent-warning: #ffb400;--accent-success: #00ff88;--border-primary: rgba(255, 255, 255, .1);--border-secondary: rgba(255, 255, 255, .15);--border-hover: rgba(0, 180, 255, .5);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(0, 180, 255, .3);--scene-bg: #0a0e1a;--scene-fog: #0a0e1a;--grid-line: rgba(0, 180, 255, .1);--node-inactive: #555555;color:var(--text-primary);background-color:var(--bg-primary)}:root[data-theme=light]{color-scheme:light;--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--bg-overlay: rgba(248, 250, 252, .95);--bg-glass: rgba(255, 255, 255, .8);--text-primary: rgba(15, 23, 42, .95);--text-secondary: rgba(30, 41, 59, .8);--text-tertiary: rgba(51, 65, 85, .7);--text-muted: rgba(71, 85, 105, .6);--accent-primary: #0088cc;--accent-secondary: #00aa66;--accent-tertiary: #4f46e5;--accent-danger: #dc2626;--accent-warning: #f59e0b;--accent-success: #10b981;--border-primary: rgba(0, 0, 0, .1);--border-secondary: rgba(0, 0, 0, .15);--border-hover: rgba(0, 136, 204, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .15);--shadow-glow: 0 0 20px rgba(0, 136, 204, .2);--scene-bg: #e0f2fe;--scene-fog: #e0f2fe;--grid-line: rgba(0, 136, 204, .15);--node-inactive: #94a3b8;color:var(--text-primary);background-color:var(--bg-primary)}html,body{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth}#root{width:100%;height:100%}a{font-weight:500;color:var(--accent-primary);text-decoration:inherit;transition:color .2s ease}a:hover{color:var(--accent-secondary)}button{border-radius:8px;border:1px solid var(--border-primary);padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-glass);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}button:hover{background-color:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text-primary)}button:focus,button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}select{font-family:inherit}.background-paths-layer{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.3}.floating-paths-container{position:absolute;inset:0;pointer-events:none}.floating-paths-svg{width:100%;height:100%;color:#00b4ff66}@media(prefers-color-scheme:dark){.floating-paths-svg{color:#00b4ff4d}}@media(prefers-reduced-motion:reduce){.floating-paths-svg path{animation:none!important}}.install-pwa-button{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#0f8,#00b4ff);border:none;border-radius:10px;color:#0a0e1a;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #00ff964d}.install-pwa-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00ff9666}.install-pwa-button:active{transform:translateY(0)}.install-icon{font-size:18px;line-height:1}.install-text{font-size:14px}.install-status{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#00ff961a;border:1px solid rgba(0,255,150,.3);border-radius:8px;color:#0f8;font-size:13px;font-weight:500}@media(max-width:640px){.install-pwa-button{padding:8px 16px;font-size:13px}.install-icon{font-size:16px}.install-text{font-size:13px}}.landing-page{min-height:100vh;background:linear-gradient(135deg,#0a0e1a,#1a1f35,#0a0e1a);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden;overflow-y:auto}.landing-bg{position:fixed;inset:0;pointer-events:none;z-index:0}.bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(0,180,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,180,255,.03) 1px,transparent 1px);background-size:50px 50px}.bg-glow{position:absolute;border-radius:50%;filter:blur(100px);opacity:.4}.glow-1{width:600px;height:600px;background:radial-gradient(circle,rgba(0,180,255,.3) 0%,transparent 70%);top:-200px;right:-100px;animation:float 20s ease-in-out infinite}.glow-2{width:500px;height:500px;background:radial-gradient(circle,rgba(100,50,255,.25) 0%,transparent 70%);bottom:-100px;left:-100px;animation:float 25s ease-in-out infinite reverse}.glow-3{width:400px;height:400px;background:radial-gradient(circle,rgba(0,255,180,.2) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);animation:pulse 15s ease-in-out infinite}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(30px,-30px)}}@keyframes pulse{0%,to{opacity:.2;transform:translate(-50%,-50%) scale(1)}50%{opacity:.4;transform:translate(-50%,-50%) scale(1.1)}}.landing-hero{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:60px 40px}.landing-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1280px;margin:0 auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.landing-nav .brand{display:flex;align-items:center;gap:10px;font-weight:700}.landing-nav .brand .logo{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,#00b4ff4d,#00ff884d)}.landing-nav .links{display:flex;gap:18px}.landing-nav .links a{color:#ffffffd9;text-decoration:none;font-weight:600;font-size:14px;padding:8px 12px;border-radius:8px;transition:background .2s ease,color .2s ease}.landing-nav .links a:hover{background:#ffffff14;color:#fff}.landing-nav .links a.admin-link{background:linear-gradient(135deg,#6366f133,#8b5cf633);border:1px solid rgba(139,92,246,.3);color:#a78bfa}.landing-nav .links a.admin-link:hover{background:linear-gradient(135deg,#6366f14d,#8b5cf64d);border-color:#8b5cf680;color:#c4b5fd}.scroll-indicator{position:absolute;bottom:24px;left:50%;transform:translate(-50%);color:#fff9;font-size:12px;letter-spacing:1px;text-transform:uppercase}.scroll-indicator:after{content:"▾";display:block;text-align:center;margin-top:6px;animation:bounce 1.5s ease-in-out infinite}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(6px)}}.hero-container{width:100%;max-width:1280px;display:grid;grid-template-columns:1fr 360px;gap:60px;align-items:start}.hero-content{padding-top:80px}.hero-badge{display:inline-block;padding:8px 16px;background:#00b4ff26;border:1px solid rgba(0,180,255,.3);border-radius:20px;font-size:12px;font-weight:600;color:#00b4ff;text-transform:uppercase;letter-spacing:1px;margin-bottom:24px}.hero-title{font-size:72px;font-weight:800;line-height:1.1;margin:0 0 24px;display:flex;flex-direction:column}.gradient-text{background:linear-gradient(135deg,#00b4ff,#0f8,#00b4ff);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 5s ease infinite}@keyframes gradient-shift{0%,to{background-position:0% center}50%{background-position:100% center}}.subtitle{font-size:48px;font-weight:300;color:#fffc}.hero-description{font-size:18px;line-height:1.7;color:#ffffffb3;margin-bottom:40px}.hero-actions{display:flex;gap:16px}.cta-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;border-radius:10px;font-size:15px;font-weight:600;text-decoration:none;transition:all .3s ease;white-space:nowrap}.cta-button.primary{background:linear-gradient(135deg,#00b4ff,#08c);color:#fff;box-shadow:0 4px 20px #00b4ff66;flex:1.5}.cta-button.primary:hover{transform:translateY(-3px);box-shadow:0 8px 30px #00b4ff80}.cta-button.secondary{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;flex:1}.cta-button.secondary:hover{background:#ffffff1f;border-color:#ffffff40}.cta-icon{font-size:18px}.hero-sidebar{display:flex;flex-direction:column;gap:24px;padding-top:80px}.feature-badges{display:flex;flex-direction:column;gap:12px}.feature-badge{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;transition:all .3s ease}.feature-badge:hover{background:#ffffff14;border-color:#00b4ff4d;transform:translate(5px)}.badge-icon{font-size:24px;line-height:1}.badge-label{font-size:14px;font-weight:500;color:#ffffffe6}.hero-maps-box{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:20px}.hero-maps-box h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#ffffffe6}.hero-visual{display:none}.floating-card{position:absolute;display:flex;align-items:center;gap:12px;padding:16px 24px;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:16px;font-size:14px;font-weight:500;color:#fff;box-shadow:0 8px 32px #0003;animation:float-card 6s ease-in-out infinite}.floating-card .card-icon{font-size:24px}.card-1{top:60px;right:40px;animation-delay:0s}.card-2{top:200px;left:20px;animation-delay:2s}.card-3{bottom:80px;right:80px;animation-delay:4s}@keyframes float-card{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.hero-maps-list{position:absolute;bottom:40px;left:80px;background:#001428e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,180,255,.3);border-radius:16px;padding:20px 24px;min-width:240px;max-width:320px;z-index:10}.hero-maps-list h3{font-size:14px;font-weight:600;color:#00b4ff;margin:0 0 12px;text-transform:uppercase;letter-spacing:1px}.hero-maps-loading{display:flex;align-items:center;gap:10px;color:#fff9;font-size:14px}.loading-spinner-small{width:16px;height:16px;border:2px solid rgba(0,180,255,.2);border-top-color:#00b4ff;border-radius:50%;animation:spin 1s linear infinite}.hero-maps-items{list-style:none;margin:0;padding:0}.hero-maps-items li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.hero-maps-items li:last-child{border-bottom:none}.hero-maps-items a{color:#fff;text-decoration:none;font-size:14px;display:block;transition:color .2s}.hero-maps-items a:hover{color:#00b4ff}.hero-maps-items .more-link a{color:#ffffff80;font-size:12px}.hero-maps-error,.hero-maps-empty,.hero-maps-offline{color:#ffffff80;font-size:13px;margin:0}.hero-maps-error{color:#ff6b6b}.landing-features{position:relative;z-index:1;padding:100px 80px}.landing-features:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,#fff0,#00b4ff66,#fff0);opacity:.4}.section-title{font-size:36px;font-weight:700;text-align:center;margin-bottom:60px;color:#fff}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;max-width:1200px;margin:0 auto}.feature-card{padding:32px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;transition:all .3s ease}.feature-card:hover{background:#ffffff14;border-color:#00b4ff4d;transform:translateY(-5px)}.feature-icon{font-size:40px;margin-bottom:20px}.feature-card h3{font-size:20px;font-weight:600;margin:0 0 12px;color:#fff}.feature-card p{font-size:14px;line-height:1.6;color:#fff9;margin:0}.landing-maps{position:relative;z-index:1;padding:100px 80px;background:#0003}.maps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;max-width:1200px;margin:0 auto}.map-card{position:relative;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;overflow:hidden;text-decoration:none;color:#fff;transition:all .3s ease}.map-card:hover{background:#ffffff14;border-color:#00b4ff66;transform:translateY(-5px);box-shadow:0 20px 40px #0000004d}.map-card.featured{border-color:#00b4ff4d}.map-card.featured:hover{border-color:#00b4ff99}.map-preview{height:180px;background:linear-gradient(135deg,#00b4ff1a,#6432ff1a);display:flex;align-items:center;justify-content:center}.preview-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px}.preview-icon{font-size:48px;opacity:.8}.preview-floors{font-size:12px;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:1px}.map-info{padding:24px}.map-info h3{font-size:18px;font-weight:600;margin:0 0 8px}.map-info p{font-size:13px;color:#ffffff80;margin:0 0 16px}.map-stats{display:flex;gap:20px;font-size:13px;color:#fff9}.map-stats strong{color:#00b4ff}.map-badge{position:absolute;top:16px;right:16px;padding:6px 12px;background:linear-gradient(135deg,#00b4ff,#08c);border-radius:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.map-card.create-new{border-style:dashed;display:flex;align-items:center;justify-content:center;min-height:300px}.create-content{text-align:center;padding:40px}.create-icon{display:flex;align-items:center;justify-content:center;width:60px;height:60px;margin:0 auto 20px;font-size:32px;background:#00b4ff1a;border:2px solid rgba(0,180,255,.3);border-radius:50%;color:#00b4ff;transition:all .3s ease}.map-card.create-new:hover .create-icon{background:#00b4ff33;transform:scale(1.1)}.create-content h3{font-size:18px;font-weight:600;margin:0 0 8px}.create-content p{font-size:13px;color:#ffffff80;margin:0}.map-card.loading,.map-card.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;cursor:default}.map-card.loading:hover,.map-card.placeholder:hover{transform:none;box-shadow:none}.loading-spinner{width:40px;height:40px;border:3px solid rgba(0,180,255,.2);border-top-color:#00b4ff;border-radius:50%;animation:spin 1s linear infinite}.placeholder-content{text-align:center;padding:40px}.placeholder-icon{font-size:48px;display:block;margin-bottom:16px;opacity:.5}.placeholder-hint{font-size:12px;color:#fff6;display:block;margin-top:8px}.landing-footer{position:relative;z-index:1;padding:40px 80px;border-top:1px solid rgba(255,255,255,.1)}.footer-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto}.footer-brand{display:flex;align-items:center;gap:10px}.footer-logo{font-size:24px}.footer-name{font-size:16px;font-weight:600}.footer-links{display:flex;gap:32px}.footer-links a{color:#fff9;text-decoration:none;font-size:14px;transition:color .2s ease}.footer-links a:hover{color:#00b4ff}.footer-install{display:flex;justify-content:center}.footer-version{font-size:13px;color:#fff6}@media(max-width:1024px){.landing-nav{padding:12px 20px}.hero-container{grid-template-columns:1fr;gap:40px}.hero-content{padding-top:40px;text-align:center}.hero-sidebar{padding-top:0}.hero-title{font-size:52px}.subtitle{font-size:36px}.hero-actions{justify-content:center}.feature-badges{flex-direction:row;justify-content:center;flex-wrap:wrap}.feature-badge{flex:0 1 calc(50% - 6px)}.hero-maps-box{max-width:500px;margin:0 auto}.landing-features,.landing-maps{padding:60px 40px}.landing-footer{padding:30px 40px}.footer-content{flex-direction:column;gap:20px}}@media(max-width:768px){.landing-nav .links{gap:10px}.landing-nav .links a{font-size:13px;padding:6px 10px}.landing-hero{padding:40px 24px;min-height:auto}.hero-content{padding-top:20px}.hero-badge{font-size:10px;padding:6px 12px;margin-bottom:16px}.hero-title{font-size:40px;margin-bottom:16px}.subtitle{font-size:28px}.hero-description{font-size:15px;line-height:1.6;margin-bottom:28px}.hero-actions{flex-direction:column;gap:12px;width:100%}.cta-button{width:100%;padding:12px 24px;font-size:14px}.cta-button.primary,.cta-button.secondary{flex:1}.cta-icon{font-size:16px}.hero-sidebar{gap:16px}.feature-badges{flex-direction:column;gap:8px}.feature-badge{padding:10px 14px;font-size:13px}.badge-icon{font-size:20px}.badge-label{font-size:13px}.hero-maps-box{padding:16px}.hero-maps-box h3{font-size:14px;margin-bottom:12px}.hero-maps-items li{padding:6px 0}.hero-maps-items a{font-size:12px}.landing-features,.landing-maps{padding:40px 20px}.section-title{font-size:24px;margin-bottom:24px}.features-grid{grid-template-columns:1fr;gap:16px}.feature-card{padding:20px}.feature-icon{font-size:32px;margin-bottom:12px}.feature-card h3{font-size:16px;margin-bottom:8px}.feature-card p{font-size:13px}.maps-grid{grid-template-columns:1fr;gap:16px}.map-card{padding:16px}.map-info h3{font-size:16px}.map-info p{font-size:12px}.landing-footer{padding:24px 20px}.footer-content{gap:16px}.footer-brand{font-size:14px}.footer-links{gap:12px;font-size:13px}.footer-version{font-size:11px}}@media(max-width:380px){.hero-title{font-size:32px}.subtitle{font-size:22px}.cta-button{padding:10px 20px;font-size:13px}}.panel-expand-btn{position:fixed;top:20px;left:20px;display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#14192df2,#1e2337f2);border:1px solid rgba(0,180,255,.3);border-radius:12px;box-shadow:0 4px 20px #0000004d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);cursor:pointer;z-index:1000;transition:all .2s ease}.panel-expand-btn:hover{background:linear-gradient(135deg,#1e2337fa,#282d41fa);border-color:#00b4ff99;transform:scale(1.02)}.panel-expand-btn .expand-icon{font-size:20px}.panel-expand-btn .expand-text{font-size:14px;font-weight:600;color:#fff}.panel-minimize-btn{margin-left:auto;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#ffffffb3;font-size:14px;cursor:pointer;transition:all .2s ease}.panel-minimize-btn:hover{background:#fff3;color:#fff}.debug-panel{position:fixed;top:20px;left:20px;width:340px;background:linear-gradient(135deg,#14192df2,#1e2337f2);border-radius:16px;box-shadow:0 10px 40px #0006,0 0 0 1px #ffffff1a,inset 0 1px #ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1000;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}.panel-header{display:flex;align-items:center;gap:12px;padding:20px;background:linear-gradient(135deg,#00b4ff26,#6464ff1a);border-bottom:1px solid rgba(255,255,255,.1)}.qr-icon{font-size:28px;filter:drop-shadow(0 0 8px rgba(0,180,255,.5))}.panel-header h2{margin:0;font-size:18px;font-weight:600;color:#fff;letter-spacing:-.5px}.subtitle{font-size:11px;color:#ffffff80;text-transform:uppercase;letter-spacing:1px;margin-left:auto}.panel-content{padding:20px;display:flex;flex-direction:column;gap:16px}.input-group{display:flex;flex-direction:column;gap:8px}.input-group label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#fffc}.label-icon{font-size:16px}.input-group select{width:100%;padding:12px 16px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff9;font-size:14px;cursor:pointer;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.input-group select:hover{border-color:#00b4ff80;background-color:#0006}.input-group select:focus{outline:none;border-color:#00b4ffcc;box-shadow:0 0 0 3px #00b4ff33}.input-group select.has-value{color:#fff;border-color:#00b4ff80;background-color:#00b4ff1a}.input-group select option{background:#1a1f35;color:#fff;padding:8px}.input-group select optgroup{background:#252a40;color:#fff9;font-style:normal;font-weight:600}.swap-button{align-self:center;width:40px;height:40px;border-radius:50%;background:#00b4ff33;border:1px solid rgba(0,180,255,.3);color:#00b4ff;font-size:20px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.swap-button:hover:not(:disabled){background:#00b4ff4d;transform:scale(1.1)}.swap-button:disabled{opacity:.3;cursor:not-allowed}.path-info{background:linear-gradient(135deg,#00ff961a,#00b4ff1a);border:1px solid rgba(0,255,150,.3);border-radius:12px;padding:16px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.path-header{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#00ff96;margin-bottom:12px}.route-icon{font-size:18px}.path-details{display:flex;gap:20px;margin-bottom:12px}.path-stat{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:11px;color:#ffffff80;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:16px;font-weight:600;color:#fff}.path-waypoints{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.waypoint{display:flex;align-items:center;gap:4px}.waypoint-name{background:#00b4ff33;padding:4px 8px;border-radius:6px;font-size:11px;color:#00b4ff;font-weight:500}.arrow{color:#fff6;font-size:12px}.no-path-warning{display:flex;align-items:center;gap:8px;background:#ff64641a;border:1px solid rgba(255,100,100,.3);border-radius:10px;padding:12px;color:#ff6464;font-size:13px}.warning-icon{font-size:16px}.clear-button{width:100%;padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff9;font-size:13px;cursor:pointer;transition:all .2s ease}.clear-button:hover{background:#ffffff1a;color:#fff}.panel-footer{padding:16px 20px;background:#0003;border-top:1px solid rgba(255,255,255,.05)}.panel-footer p{margin:0;font-size:12px;color:#fff6;display:flex;align-items:center;gap:6px}.panel-footer p+p{margin-top:6px}.floor-change-badge{background:linear-gradient(135deg,#f90,#f60);color:#000;font-size:10px;font-weight:700;padding:3px 8px;border-radius:10px;margin-left:auto;text-transform:uppercase;letter-spacing:.5px}.floor-transitions{background:#ff99001a;border:1px solid rgba(255,153,0,.3);border-radius:8px;padding:10px;margin-bottom:12px}.transition-header{font-size:11px;color:#fff9;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.transition-item{display:flex;align-items:center;gap:8px;margin-bottom:6px}.transition-item:last-child{margin-bottom:0}.floor-badge{font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px}.floor-badge.f1{background:#00b4ff4d;color:#00b4ff}.floor-badge.f2{background:#ff99004d;color:#f90}.transition-arrow{color:#fff6;font-size:14px}.transition-via{font-size:11px;color:#ffffff80;margin-left:auto}.waypoint-name.floor-1{background:#00b4ff33;color:#00b4ff}.waypoint-name.floor-2{background:#f903;color:#f90}.arrow.floor-change{color:#f90;font-size:14px;font-weight:700}.path-details{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.floor-selector{display:flex;align-items:center;gap:12px;padding:12px;background:#0003;border-radius:10px}.controls-row{display:flex;gap:8px;padding:8px;background:#0003;border-radius:10px}.icon-control-btn{flex:1;height:40px;border-radius:8px;border:1px solid var(--border-primary);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:0}.icon-control-btn:hover{transform:scale(1.05);border-color:var(--border-hover)}.icon-control-btn:active{transform:scale(.95)}.icon-control-btn .control-icon{width:22px;height:22px;transition:all .3s ease}.icon-control-btn.torch{color:var(--text-tertiary)}.icon-control-btn.torch.active{color:orange;background:#ffa5001a;border-color:#ffa5004d}.icon-control-btn.torch.active:hover{background:#ffa50026}.icon-control-btn.torch.active .control-icon{animation:flicker 2s ease-in-out infinite}@keyframes flicker{0%,to{opacity:1}50%{opacity:.85}}.icon-control-btn.theme.light{color:gold;background:linear-gradient(135deg,#ffd70026,#ffb7001a);border-color:#ffd7004d}.icon-control-btn.theme.light:hover{background:linear-gradient(135deg,#ffd70040,#ffb70033)}.icon-control-btn.theme.dark{color:#6366f1;background:linear-gradient(135deg,#6366f126,#4f46e51a);border-color:#6366f14d}.icon-control-btn.theme.dark:hover{background:linear-gradient(135deg,#6366f140,#4f46e533)}.control-icon.sun{animation:rotate-sun 20s linear infinite}.control-icon.moon{animation:float-moon 3s ease-in-out infinite}@keyframes rotate-sun{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float-moon{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.floor-selector label{font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.floor-buttons{display:flex;flex-wrap:wrap;gap:6px;flex:1}.floor-btn{min-width:40px;padding:8px 12px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#0000004d;color:#ffffff80;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.floor-btn:hover{background:#ffffff1a;color:#fffc}.floor-btn.active{color:#fff;background:#00b4ff4d;border-color:#00b4ff80;color:#00b4ff}.floor-btn.active.all{background:linear-gradient(135deg,#00b4ff4d,#ff99004d);border-color:#ffffff4d;color:#fff}.lighting-selector{display:flex;align-items:center;gap:12px;padding:12px;background:#0003;border-radius:10px;margin-bottom:8px}.lighting-selector label{font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.lighting-buttons{display:flex;gap:6px;flex:1}.lighting-btn{flex:1;padding:8px 12px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#0000004d;font-size:16px;cursor:pointer;transition:all .2s ease}.lighting-btn:hover{background:#ffffff1a}.lighting-btn.active.day{background:#ffc8324d;border-color:#ffc83280}.lighting-btn.active.sunset{background:#ff64324d;border-color:#ff643280}.lighting-btn.active.night{background:#3232964d;border-color:#6464c880}.search-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:10px;margin-bottom:8px;transition:all .2s ease}.search-bar:focus-within{border-color:#00b4ff80;background:#0006}.search-icon{font-size:14px;opacity:.6}.search-input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-size:14px}.search-input::placeholder{color:#fff6}.search-clear{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:50%;color:#fff9;font-size:10px;cursor:pointer;transition:all .2s ease}.search-clear:hover{background:#fff3;color:#fff}.search-results-info{font-size:11px;color:#00b4ffcc;padding:4px 0 8px;text-align:center}.share-btn{margin-left:auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#00b4ff33;border:1px solid rgba(0,180,255,.3);border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s ease}.share-btn:hover{background:#00b4ff4d;transform:scale(1.1)}.copied-toast{position:absolute;bottom:70px;left:50%;transform:translate(-50%);background:#00ff96e6;color:#000;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:600;animation:toastSlide .3s ease;box-shadow:0 4px 15px #00ff964d}@keyframes toastSlide{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.debug-panel{max-height:90vh;overflow-y:auto}.panel-content{max-height:calc(90vh - 200px);overflow-y:auto}@media(max-width:768px){.debug-panel{top:10px;left:10px;right:10px;width:auto;max-width:340px}}.walkthrough-top-actions{position:fixed;top:16px;right:16px;display:flex;gap:8px;z-index:200}.top-action-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;background:#0a0e1ad9;border:1px solid rgba(255,255,255,.2);border-radius:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:all .2s ease}.top-action-btn:active{transform:scale(.95)}.top-action-btn.restart{border-color:#00b4ff66}.top-action-btn.exit{border-color:#f486}.top-action-icon{font-size:18px;color:#fff}.top-action-btn.restart .top-action-icon{color:#00b4ff}.top-action-btn.exit .top-action-icon{color:#f48}.top-action-text{font-size:9px;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.walkthrough-start-btn{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:14px 24px;background:linear-gradient(135deg,#00ff9633,#00b4ff33);border:2px solid rgba(0,255,150,.5);border-radius:50px;color:#00ff96;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 20px #00ff9633;z-index:1100}.walkthrough-start-btn:hover{background:linear-gradient(135deg,#00ff964d,#00b4ff4d);border-color:#00ff96cc;transform:translate(-50%) scale(1.05)}.walkthrough-start-btn:active{transform:translate(-50%) scale(.98)}:root[data-theme=light] .walkthrough-start-btn{background:linear-gradient(135deg,#10b981e6,#0ea5e9e6);border-color:#10b981cc;color:#fff;font-weight:700;box-shadow:0 4px 20px #10b98166}:root[data-theme=light] .walkthrough-start-btn:hover{background:linear-gradient(135deg,#10b981,#0ea5e9);border-color:#10b981;box-shadow:0 6px 24px #10b98180}.walkthrough-icon{font-size:18px}.walkthrough-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:#0a0e1af2;border-top:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:200}.bar-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:12px;color:#fff;font-size:18px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.bar-btn:active{transform:scale(.95)}.bar-btn.play-btn{background:#00ff9633;border-color:#00ff9666;color:#00ff96}.bar-btn.play-btn.playing{background:#fa03;border-color:#fa06;color:#fa0}.bar-btn.expand-btn.expanded{background:#f483;border-color:#f486;color:#f48}.bar-progress{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.bar-progress-track{flex:1;height:6px;background:#ffffff1a;border-radius:3px;position:relative;overflow:hidden}.bar-progress-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#00ff96,#00b4ff);border-radius:3px;transition:width .1s ease}.bar-progress-slider{position:absolute;top:-8px;left:0;width:100%;height:22px;opacity:0;cursor:pointer;margin:0;-webkit-appearance:none}.bar-progress-text{font-size:12px;font-weight:600;color:#fff9;min-width:36px;text-align:right}.bar-floor{padding:6px 10px;border-radius:8px;font-size:12px;font-weight:700;flex-shrink:0}.bar-floor.floor-1{background:#00b4ff33;color:#00b4ff;border:1px solid rgba(0,180,255,.4)}.bar-floor.floor-2{background:#f903;color:#f90;border:1px solid rgba(255,153,0,.4)}.walkthrough-drawer{position:fixed;bottom:70px;left:16px;right:16px;max-height:0;overflow:hidden;background:#0a0e1afa;border:1px solid rgba(255,255,255,.1);border-radius:16px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all .3s cubic-bezier(.4,0,.2,1);opacity:0;z-index:199}.walkthrough-drawer.open{max-height:300px;opacity:1;padding:16px;margin-bottom:env(safe-area-inset-bottom)}.drawer-location{display:flex;flex-direction:column;gap:4px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:12px}.drawer-location-label{font-size:10px;color:#ffffff80;text-transform:uppercase;letter-spacing:1px}.drawer-location-name{font-size:16px;font-weight:600;color:#fff}.drawer-location-step{font-size:12px;color:#ffffff80}.drawer-speed{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.drawer-speed-label{font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.drawer-speed-buttons{display:flex;gap:6px}.drawer-speed-btn{padding:8px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff9;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.drawer-speed-btn:active{transform:scale(.95)}.drawer-speed-btn.active{background:#00ff9633;border-color:#00ff9680;color:#00ff96}.drawer-actions{display:flex;gap:10px;margin-bottom:12px}.drawer-action-btn{flex:1;padding:12px;background:#00b4ff1a;border:1px solid rgba(0,180,255,.3);border-radius:10px;color:#00b4ff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.drawer-action-btn:active{transform:scale(.98)}.drawer-action-btn.exit{background:#ff44881a;border-color:#ff44884d;color:#f48}.drawer-hint{text-align:center;font-size:12px;color:#fff6;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.touch-hint-overlay{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:8px 16px;background:#0009;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:150;pointer-events:none;animation:fadeInOut 3s ease-in-out infinite}.touch-hint-text{font-size:12px;color:#fffc;white-space:nowrap}@keyframes fadeInOut{0%,to{opacity:.4}50%{opacity:.8}}@media(min-width:768px){.walkthrough-bar{left:50%;right:auto;transform:translate(-50%);width:auto;min-width:500px;max-width:600px;border-radius:16px 16px 0 0;border:1px solid rgba(255,255,255,.1);border-bottom:none}.walkthrough-drawer{left:50%;right:auto;transform:translate(-50%);width:500px;max-width:600px;bottom:80px}.bar-btn:hover{background:#ffffff26;transform:scale(1.05)}.bar-btn.play-btn:hover{background:#00ff964d}.drawer-speed-btn:hover{background:#ffffff1a;color:#ffffffe6}.drawer-action-btn:hover{background:#00b4ff33}.drawer-action-btn.exit:hover{background:#f483}.touch-hint-overlay{display:none}.top-action-btn:hover{background:#1e283cf2;transform:scale(1.05)}.top-action-btn.restart:hover{border-color:#00b4ffb3}.top-action-btn.exit:hover{border-color:#ff4488b3}}@media(max-width:380px){.walkthrough-bar{gap:8px;padding:10px 12px}.bar-btn{width:40px;height:40px;font-size:16px}.bar-progress-text{display:none}.bar-floor{padding:5px 8px;font-size:11px}.drawer-speed-btn{padding:6px 10px;font-size:12px}}@media(max-height:500px)and (orientation:landscape){.walkthrough-bar{padding:8px 16px}.bar-btn{width:36px;height:36px;font-size:14px}.walkthrough-drawer.open{max-height:200px;padding:12px}.drawer-location{flex-direction:row;align-items:center;gap:12px;padding-bottom:8px;margin-bottom:8px}.drawer-speed{margin-bottom:8px}}.floor-transition-overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:300;background:transparent}.floor-transition-overlay.entering{opacity:0;transform:scale(.9)}.floor-transition-overlay.visible{opacity:1;transform:scale(1);transition:all .5s cubic-bezier(.4,0,.2,1)}.floor-transition-overlay.exiting{opacity:0;transform:scale(1.1);transition:all .5s cubic-bezier(.4,0,.2,1)}.floor-transition-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 60px;background:#0a0e1ad9;border-radius:24px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:2px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #00000080}.floor-transition-overlay.floor-1 .floor-transition-content{border-color:#00b4ff66;box-shadow:0 20px 60px #00000080,0 0 60px #00b4ff33}.floor-transition-overlay.floor-2 .floor-transition-content{border-color:#f906;box-shadow:0 20px 60px #00000080,0 0 60px #f903}.floor-transition-icon{font-size:48px;animation:bounce .6s ease-in-out}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.floor-transition-text{display:flex;flex-direction:column;align-items:center;gap:6px}.floor-transition-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:3px;color:#ffffff80}.floor-transition-name{font-size:42px;font-weight:700;letter-spacing:-1px;animation:slideUp .5s ease-out}.floor-1 .floor-transition-name{color:#00b4ff;text-shadow:0 0 30px rgba(0,180,255,.5)}.floor-2 .floor-transition-name{color:#f90;text-shadow:0 0 30px rgba(255,153,0,.5)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.floor-transition-subtitle{font-size:14px;color:#fff9;letter-spacing:1px}.floor-transition-line{width:80px;height:3px;border-radius:2px;margin-top:8px;animation:expandLine .6s ease-out}.floor-1 .floor-transition-line{background:linear-gradient(90deg,transparent,#00b4ff,transparent)}.floor-2 .floor-transition-line{background:linear-gradient(90deg,transparent,#ff9900,transparent)}@keyframes expandLine{0%{width:0;opacity:0}to{width:80px;opacity:1}}@media(max-width:500px){.floor-transition-content{padding:30px 40px}.floor-transition-icon{font-size:36px}.floor-transition-name{font-size:32px}}.turn-by-turn-panel{position:fixed;top:80px;right:20px;width:300px;max-height:calc(100vh - 180px);background:linear-gradient(135deg,#14192df2,#1e2337f2);border-radius:16px;box-shadow:0 10px 40px #0006,0 0 0 1px #ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:900;overflow:hidden;display:flex;flex-direction:column}.directions-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:linear-gradient(135deg,#00b4ff26,#6464ff1a);border-bottom:1px solid rgba(255,255,255,.1)}.header-left{display:flex;align-items:center;gap:8px}.header-icon{font-size:18px}.header-title{font-size:16px;font-weight:600;color:#fff}.header-right{display:flex;gap:8px}.voice-btn,.minimize-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#ffffffb3;font-size:14px;cursor:pointer;transition:all .2s ease}.voice-btn:hover,.minimize-btn:hover{background:#fff3;color:#fff}.voice-btn.active{background:#00b4ff4d;border-color:#00b4ff80;color:#00b4ff}.time-estimate{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#00ff961a;border-bottom:1px solid rgba(255,255,255,.05)}.time-icon{font-size:16px}.time-value{font-size:18px;font-weight:700;color:#00ff96}.time-distance{font-size:13px;color:#ffffff80;margin-left:auto}.directions-list{flex:1;overflow-y:auto;padding:12px}.direction-step{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:10px;margin-bottom:8px;background:#ffffff08;border:1px solid transparent;transition:all .3s ease}.direction-step:last-child{margin-bottom:0}.direction-step.current{background:#00b4ff26;border-color:#00b4ff66}.direction-step.completed{opacity:.5}.direction-step.completed .step-number{background:#00ff964d;color:#00ff96}.step-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:50%;font-size:11px;font-weight:700;color:#fff9;flex-shrink:0}.step-icon{font-size:18px;flex-shrink:0}.step-content{flex:1;min-width:0}.step-text{font-size:13px;font-weight:500;color:#fff;line-height:1.4}.step-detail{font-size:11px;color:#ffffff80;margin-top:2px}.direction-step.start .step-icon{color:#00b4ff}.direction-step.destination .step-icon{color:#00ff96}.direction-step.floor-change .step-icon{color:#f90}.directions-expand-btn{position:fixed;top:80px;right:20px;display:flex;align-items:center;gap:8px;padding:10px 14px;background:linear-gradient(135deg,#14192df2,#1e2337f2);border:1px solid rgba(0,180,255,.3);border-radius:12px;box-shadow:0 4px 20px #0000004d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);cursor:pointer;z-index:900;transition:all .2s ease}.directions-expand-btn:hover{border-color:#00b4ff99;transform:scale(1.02)}.directions-expand-btn .expand-icon{font-size:16px}.directions-expand-btn .expand-text{font-size:13px;font-weight:600;color:#fff}.step-badge{background:#00b4ff4d;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;color:#00b4ff}@media(max-width:768px){.turn-by-turn-panel{inset:auto 10px 100px;width:auto;max-height:40vh}.directions-expand-btn{top:auto;bottom:100px;right:10px}}.minimap-container{position:fixed;bottom:100px;left:20px;background:linear-gradient(135deg,#14192df2,#1e2337f2);border-radius:12px;box-shadow:0 4px 20px #0006,0 0 0 1px #ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:800;overflow:hidden}.minimap-header{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#0003;border-bottom:1px solid rgba(255,255,255,.1)}.minimap-title{font-size:12px;font-weight:600;color:#fff}.minimap-floor-btns{display:flex;gap:4px;margin-left:auto}.minimap-floor-btns .floor-btn{padding:3px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#ffffff80;font-size:10px;font-weight:600;cursor:pointer;transition:all .2s ease}.minimap-floor-btns .floor-btn:hover{background:#fff3;color:#fff}.minimap-floor-btns .floor-btn.active{background:#00b4ff4d;border-color:#00b4ff80;color:#00b4ff}.minimap-minimize-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:4px;color:#fff9;font-size:10px;cursor:pointer;transition:all .2s ease}.minimap-minimize-btn:hover{background:#fff3;color:#fff}.minimap-canvas{display:block;border-radius:0}.minimap-legend{display:flex;justify-content:center;gap:12px;padding:6px;background:#0003;border-top:1px solid rgba(255,255,255,.05)}.legend-item{display:flex;align-items:center;gap:4px;font-size:9px;color:#ffffff80}.legend-item .dot{width:6px;height:6px;border-radius:50%}.legend-item .dot.start{background:#00b4ff}.legend-item .dot.end{background:#00ff96}.legend-item .dot.current{background:#fff;box-shadow:0 0 4px #00b4ff}.minimap-expand-btn{position:fixed;bottom:100px;left:20px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#14192df2,#1e2337f2);border:1px solid rgba(0,180,255,.3);border-radius:10px;box-shadow:0 4px 20px #0000004d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);cursor:pointer;z-index:800;font-size:20px;transition:all .2s ease}.minimap-expand-btn:hover{border-color:#00b4ff99;transform:scale(1.05)}@media(max-width:768px){.minimap-container{bottom:auto;top:60px;left:10px}.minimap-expand-btn{bottom:auto;top:60px;left:10px;width:36px;height:36px;font-size:16px}.minimap-canvas{width:140px;height:100px}}.minimap-container.hidden,.minimap-expand-btn.hidden{display:none}.floor-plan-viewer{width:100%;height:100vh;position:relative;background:#0a0e1a;overflow:hidden}.canvas-container{width:100%;height:100%}.back-home-btn{position:fixed;top:20px;left:20px;z-index:100;display:flex;align-items:center;gap:8px;padding:10px 16px;background:#14192de6;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;text-decoration:none;font-size:14px;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease}.back-home-btn:hover{background:#1e2846f2;border-color:#00b4ff66;transform:translate(-3px)}.back-icon{font-size:18px;transition:transform .2s ease}.back-home-btn:hover .back-icon{transform:translate(-3px)}.editor-link-btn{position:fixed;top:20px;right:20px;z-index:100;padding:10px 16px;background:#14192de6;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;text-decoration:none;font-size:14px;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease}.editor-link-btn:hover{background:#1e2846f2;border-color:#00b4ff66}.app-title{position:fixed;bottom:20px;left:20px;z-index:50;transition:opacity .3s ease}.app-title.dimmed{opacity:.3}.app-title h1{margin:0;font-size:24px;font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}.app-title p{margin:4px 0 0;font-size:12px;color:#ffffff80}@media(max-width:768px){.back-home-btn{padding:8px 12px;font-size:12px}.back-text{display:none}.editor-link-btn{padding:8px 12px;font-size:12px}.app-title h1{font-size:18px}}.scene-container canvas,.floor-plan-viewer canvas{touch-action:none}.floor-plan-editor{position:fixed;inset:0;background:#0a0e1a;display:flex;flex-direction:column;z-index:2000;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:linear-gradient(135deg,#14192dfa,#1e2337fa);border-bottom:1px solid rgba(255,255,255,.1)}.editor-title{display:flex;align-items:center;gap:12px}.editor-icon{font-size:24px}.editor-title h1{font-size:18px;font-weight:600;color:#fff;margin:0}.unsaved-badge{background:#ffb40033;color:#ffb400;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.nav-readiness{padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease}.nav-readiness.ready{background:#0f83;color:#0f8;border:1px solid rgba(0,255,136,.3)}.nav-readiness.ready:hover{background:#00ff884d}.nav-readiness.not-ready{background:#ff646433;color:#f88;border:1px solid rgba(255,100,100,.3);animation:pulse-warning 2s infinite}.nav-readiness.not-ready:hover{background:#ff64644d}.editor-actions{display:flex;gap:8px}.editor-btn{padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.editor-btn:hover{background:#ffffff26}.editor-btn.primary{background:#00b4ff4d;border-color:#00b4ff80}.editor-btn.primary:hover{background:#00b4ff66}.editor-btn.primary:disabled{opacity:.5;cursor:not-allowed}.editor-btn.danger{background:#f443;border-color:#f446}.editor-btn.danger:hover{background:#ff44444d}.editor-btn.warning{background:#ff963240;border-color:#ff963280;color:#fa4;animation:pulse-warning 2s ease-in-out infinite}.editor-btn.warning:hover{background:#ff963259}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.7}}.editor-btn.help{width:32px;padding:8px;font-weight:700}.editor-main{flex:1;display:flex;overflow:hidden}.editor-toolbar{width:220px;background:#14192df2;border-right:1px solid rgba(255,255,255,.1);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:20px}.toolbar-section{display:flex;flex-direction:column;gap:10px}.toolbar-title{font-size:11px;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:1px}.toolbar-tools{display:flex;flex-direction:column;gap:4px}.tool-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#ffffff0d;border:1px solid transparent;border-radius:8px;color:#ffffffb3;font-size:13px;cursor:pointer;transition:all .2s ease;text-align:left}.tool-btn:hover{background:#ffffff1a;color:#fff}.tool-btn.active{background:#00b4ff33;border-color:#00b4ff80;color:#00b4ff}.tool-icon{font-size:16px}.tool-label{flex:1}.tool-shortcut{font-size:10px;padding:2px 6px;background:#ffffff1a;border-radius:4px;color:#ffffff80}.tool-btn-wrapper{position:relative;display:flex;gap:2px}.tool-btn-wrapper .tool-btn{flex:1;border-radius:8px 0 0 8px}.tool-btn-wrapper:has(.tool-dropdown-btn) .tool-btn{border-radius:8px 0 0 8px}.tool-btn-wrapper:not(:has(.tool-dropdown-btn)) .tool-btn{border-radius:8px}.tool-dropdown-btn{padding:0 8px;background:#ffffff0d;border:1px solid transparent;border-left:1px solid rgba(255,255,255,.1);border-radius:0 8px 8px 0;color:#ffffff80;font-size:8px;cursor:pointer;transition:all .2s ease}.tool-dropdown-btn:hover{background:#ffffff1a;color:#fff}.tool-dropdown-btn.open{background:#00b4ff33;color:#00b4ff}.tool-dropdown-menu{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#141928fa;border:1px solid rgba(255,255,255,.15);border-radius:8px;box-shadow:0 8px 24px #0006;z-index:100;overflow:hidden}.tool-dropdown-menu .dropdown-header{padding:8px 12px;font-size:11px;color:#ffffff80;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.tool-dropdown-menu .dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:transparent;border:none;color:#fffc;font-size:12px;cursor:pointer;transition:all .15s ease;text-align:left}.tool-dropdown-menu .dropdown-item:hover{background:#00b4ff26;color:#00b4ff}.tool-dropdown-menu .floor-icon{font-size:14px}.duplicate-floor-section{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.duplicate-floor-label{font-size:11px;color:#ffffff80;margin-bottom:8px}.duplicate-floor-buttons{display:flex;flex-direction:column;gap:4px}.duplicate-floor-btn{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#ffb4001a;border:1px solid rgba(255,180,0,.2);border-radius:6px;color:#ffb400;font-size:11px;cursor:pointer;transition:all .2s ease}.duplicate-floor-btn:hover{background:#ffb40033;border-color:#ffb40066}.floor-selector-toolbar{display:flex;flex-wrap:wrap;gap:6px}.floor-btn-toolbar{display:flex;align-items:center;justify-content:center;gap:4px;min-width:40px;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff9;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.floor-btn-toolbar:hover{background:#ffffff1a;color:#fff}.floor-btn-toolbar.active{background:#00b4ff33;border-color:#00b4ff80;color:#00b4ff}.floor-btn-toolbar.add-floor{background:#00ff881a;border-color:#00ff884d;color:#0f8;min-width:36px;padding:8px;font-size:16px;font-weight:400}.floor-btn-toolbar.add-floor:hover{background:#0f83;border-color:#00ff8880}.floor-btn-label{font-weight:600}.floor-btn-count{background:#fff3;padding:1px 5px;border-radius:8px;font-size:10px;font-weight:600}.floor-btn-toolbar.active .floor-btn-count{background:#00b4ff4d}.current-floor-info{margin-top:8px;padding:8px;background:#ffffff08;border-radius:6px}.floor-info-name{font-size:11px;color:#ffffff80;margin-bottom:6px}.floor-name-input{width:100%;padding:6px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#fff;font-size:12px}.floor-name-input:focus{outline:none;border-color:#00b4ff80;background:#ffffff14}.toolbar-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#ffffffb3}.toolbar-checkbox input{width:16px;height:16px;accent-color:#00b4ff}.toolbar-control{display:flex;flex-direction:column;gap:6px}.toolbar-control label{font-size:12px;color:#fff9}.toolbar-control select,.toolbar-control input[type=range]{padding:6px 10px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:13px}.toolbar-control input[type=range]{padding:0;height:6px;-webkit-appearance:none;appearance:none;cursor:pointer}.toolbar-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#00b4ff;border-radius:50%;cursor:pointer}.zoom-controls{display:flex;align-items:center;gap:8px}.zoom-controls button{width:28px;height:28px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:16px;cursor:pointer;transition:all .2s ease}.zoom-controls button:hover{background:#fff3}.zoom-controls span{flex:1;text-align:center;font-size:12px;color:#ffffffb3}.scale-presets{display:flex;gap:4px;margin-top:6px}.scale-presets button{flex:1;padding:4px 8px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#ffffffb3;font-size:10px;cursor:pointer;transition:all .2s ease}.scale-presets button:hover{background:#ffffff26;color:#fff}.toolbar-btn{padding:8px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:12px;cursor:pointer;transition:all .2s ease}.toolbar-btn:hover{background:#ffffff26}.toolbar-btn.danger-text{color:#f66}.toolbar-btn.ai-btn{background:linear-gradient(135deg,#6432ff4d,#00b4ff4d);border-color:#6464ff66;color:#fff}.toolbar-btn.ai-btn:hover:not(:disabled){background:linear-gradient(135deg,#6432ff66,#00b4ff66);border-color:#6464ff99}.toolbar-btn.ai-btn.analyzing{animation:pulse-ai 1.5s ease-in-out infinite}.toolbar-btn.ai-btn:disabled{opacity:.7;cursor:wait}@keyframes pulse-ai{0%,to{opacity:1}50%{opacity:.6}}.toolbar-stats{display:flex;flex-direction:column;gap:6px}.stat-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#fff9}.stat-icon{font-size:14px}.editor-canvas-container{flex:1;position:relative;overflow:hidden}.editor-canvas-wrapper{width:100%;height:100%;position:relative}.editor-canvas-wrapper canvas{display:block}.canvas-status{position:absolute;bottom:10px;left:10px;display:flex;gap:16px;padding:8px 12px;background:#000000b3;border-radius:6px;font-size:11px;color:#ffffffb3;font-family:Monaco,Consolas,monospace}.wall-fix-menu{background:#1e2337fa;border:1px solid rgba(255,150,50,.5);border-radius:10px;padding:12px;min-width:200px;box-shadow:0 8px 32px #00000080;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.wall-fix-menu-header{display:flex;align-items:center;gap:8px;font-weight:600;color:#fa4;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.wall-fix-menu-header .warning-icon{font-size:16px}.wall-fix-menu-info{display:flex;align-items:center;gap:6px;font-size:12px;color:#ffffffb3;margin-bottom:12px;padding:8px;background:#0003;border-radius:6px}.wall-fix-menu-info .arrow{color:#fff6}.wall-fix-menu-actions{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.fix-btn{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#ffffff14;color:#fff;font-size:13px;cursor:pointer;transition:all .15s ease}.fix-btn:hover{background:#ffffff26}.fix-btn .btn-icon{font-size:14px}.fix-btn.add-waypoint{background:#00b46433;border-color:#00b46466}.fix-btn.add-waypoint:hover{background:#00b46459}.fix-btn.delete-conn{background:#ff505026;border-color:#ff50504d}.fix-btn.delete-conn:hover{background:#ff50504d}.fix-btn.cancel{background:transparent;border-color:transparent;color:#ffffff80;font-size:12px;justify-content:center}.fix-btn.cancel:hover{color:#fffc}.editor-properties{width:280px;background:#14192df2;border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column}.properties-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.empty-icon{font-size:48px;opacity:.5;margin-bottom:16px}.properties-empty p{color:#ffffff80;font-size:14px;margin:0}.empty-hints{margin-top:24px;display:flex;flex-direction:column;gap:8px}.empty-hints p{font-size:12px}.empty-hints kbd{display:inline-block;padding:2px 8px;background:#ffffff1a;border-radius:4px;font-family:inherit;margin-right:8px}.properties-header{display:flex;align-items:center;gap:10px;padding:16px;background:#0003;border-bottom:1px solid rgba(255,255,255,.1)}.properties-type-icon{font-size:20px}.properties-type{flex:1;font-size:15px;font-weight:600;color:#fff}.delete-btn{width:32px;height:32px;background:#f443;border:1px solid rgba(255,68,68,.3);border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s ease}.delete-btn:hover{background:#ff44444d}.properties-content{flex:1;padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.property-group{display:flex;flex-direction:column;gap:6px}.property-group label{font-size:11px;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:.5px}.property-group input[type=text],.property-group input[type=number],.property-group select{padding:10px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:13px;transition:all .2s ease}.property-group input:focus,.property-group select:focus{outline:none;border-color:#00b4ff80}.property-group input[type=color]{width:50px;height:36px;padding:4px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:8px;cursor:pointer}.color-picker-container{display:flex;align-items:center;gap:10px}.color-hex{font-size:12px;color:#ffffffb3;font-family:monospace;background:#0003;padding:4px 8px;border-radius:4px}.color-presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.color-preset-btn{width:28px;height:28px;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s ease}.color-preset-btn:hover{transform:scale(1.1);border-color:#ffffff4d}.color-preset-btn.active{border-color:#00b4ff;box-shadow:0 0 8px #00b4ff80}.wall-type-selector{display:flex;flex-direction:column;gap:4px;margin-top:8px;max-height:280px;overflow-y:auto}.wall-type-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;transition:all .2s ease;text-align:left}.wall-type-btn:hover{background:#ffffff1a;border-color:#fff3}.wall-type-btn.active{background:#00b4ff26;border-color:#00b4ff;box-shadow:0 0 8px #00b4ff33}.wall-type-color{width:16px;height:16px;border-radius:4px;flex-shrink:0;border:1px solid rgba(255,255,255,.2)}.wall-type-icon{font-size:14px;flex-shrink:0}.wall-type-label{flex:1;font-size:12px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wall-type-height{font-size:11px;color:#ffffff80;background:#ffffff1a;padding:2px 6px;border-radius:4px;flex-shrink:0}.wall-type-info{margin-top:10px;padding:10px;background:#00b4ff14;border:1px solid rgba(0,180,255,.2);border-radius:8px}.wall-type-info-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.wall-type-info-header .info-icon{font-size:16px}.wall-type-info-header .info-label{font-size:13px;font-weight:600;color:#fff;flex:1}.wall-type-info-header .info-category{font-size:10px;color:#ffffff80;background:#ffffff1a;padding:2px 8px;border-radius:10px;text-transform:uppercase}.wall-type-info .info-description{font-size:11px;color:#ffffffb3;line-height:1.4;margin:0}.height-input-row{display:flex;gap:8px;align-items:center}.height-input-row input{flex:1}.height-presets{display:flex;gap:4px}.height-preset{padding:4px 8px;font-size:11px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#ffffffb3;cursor:pointer;transition:all .2s ease}.height-preset:hover{background:#ffffff26;color:#fff}.height-preset.active{background:#00b4ff33;border-color:#00b4ff;color:#00b4ff}.standard-colors{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.standard-color-btn{width:32px;height:32px;border:2px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;transition:all .2s ease}.standard-color-btn:hover{transform:scale(1.1);border-color:#fff6}.standard-color-btn.active{border-color:#00b4ff;box-shadow:0 0 8px #00b4ff80}.multi-select-info{padding:12px;background:#ff99001a;border:1px solid rgba(255,153,0,.2);border-radius:8px;margin-bottom:12px}.multi-select-info p{font-size:12px;color:#ffffffb3;margin:0;line-height:1.6}.multi-select-info p:first-child{color:#f90;font-weight:500}.height-presets.bulk{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.height-presets.bulk button{flex:1;min-width:60px;padding:10px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fffc;font-size:13px;cursor:pointer;transition:all .2s ease}.height-presets.bulk button:hover{background:#00b4ff26;border-color:#00b4ff;color:#00b4ff}.height-presets.bulk button.active{background:#00b4ff33;border-color:#00b4ff;color:#00b4ff}.add-wall-info{padding:12px;background:#00b4ff1a;border:1px solid rgba(0,180,255,.2);border-radius:8px;margin-bottom:12px}.add-wall-info p{font-size:12px;color:#ffffffb3;margin:0;line-height:1.6}.add-wall-info p:first-child{color:#00b4ff;font-weight:500}.current-wall-type-preview{padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;margin-bottom:12px}.current-wall-type-preview .preview-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.current-wall-type-preview .preview-color{width:20px;height:20px;border-radius:4px;border:1px solid rgba(255,255,255,.2)}.current-wall-type-preview .preview-icon{font-size:18px}.current-wall-type-preview .preview-label{font-size:14px;font-weight:600;color:#fff}.current-wall-type-preview .preview-description{font-size:11px;color:#fff9;margin:0 0 8px;line-height:1.4}.current-wall-type-preview .preview-specs{display:flex;justify-content:space-between;font-size:11px;color:#ffffff80}.current-wall-type-preview .preview-category{background:#ffffff1a;padding:2px 8px;border-radius:10px;text-transform:uppercase;font-size:10px}.position-inputs{display:flex;gap:8px}.position-input{flex:1;display:flex;align-items:center;gap:6px}.position-input span{font-size:12px;color:#ffffff80;width:16px}.position-input input{flex:1;width:100%}.connections-list{display:flex;flex-direction:column;gap:6px;max-height:120px;overflow-y:auto}.no-connections{font-size:12px;color:#fff6;font-style:italic}.connection-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#00b4ff1a;border-radius:6px;font-size:12px;color:#fffc}.connection-floor{font-size:10px;padding:2px 6px;background:#ffffff1a;border-radius:4px;color:#ffffff80}.properties-footer{padding:12px 16px;background:#0003;border-top:1px solid rgba(255,255,255,.05)}.item-id{font-size:10px;color:#ffffff4d;font-family:Monaco,Consolas,monospace}.editor-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:3000}.editor-modal{background:linear-gradient(135deg,#1e2337fa,#282d41fa);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;max-width:400px;width:90%}.editor-modal h2{font-size:18px;font-weight:600;color:#fff;margin:0 0 16px}.editor-modal h3{font-size:14px;font-weight:600;color:#ffffffb3;margin:20px 0 12px}.shortcuts-list{display:flex;flex-direction:column;gap:8px}.shortcut{display:flex;align-items:center;gap:8px;font-size:13px;color:#ffffffb3}.shortcut kbd{display:inline-block;padding:4px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;font-family:inherit;font-size:11px;min-width:24px;text-align:center}.editor-modal .editor-btn{margin-top:20px;width:100%;justify-content:center}.editor-modal.ai-modal{max-width:480px}.ai-dialog-content{margin-bottom:16px}.ai-description{color:#ffffffb3;font-size:14px;margin:0 0 16px;line-height:1.5}.api-key-hint{display:block;margin-top:8px;font-size:12px;color:#ffffff80}.api-key-hint a{color:#00b4ff;text-decoration:none}.api-key-hint a:hover{text-decoration:underline}.ai-info{margin-top:16px;padding:12px;background:#6432ff1a;border:1px solid rgba(100,100,255,.2);border-radius:8px}.ai-info p{margin:0 0 8px;font-size:13px;color:#fffc}.ai-info ul{margin:8px 0;padding-left:20px}.ai-info li{font-size:13px;color:#ffffffb3;margin:4px 0}.ai-info .ai-note{margin-top:12px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:#ffffff80}.ai-analyze-btn{background:linear-gradient(135deg,#6432ff80,#00b4ff80)!important}.ai-analyze-btn:hover:not(:disabled){background:linear-gradient(135deg,#6432ffb3,#00b4ffb3)!important}.editor-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);background:#00b4ffe6;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;z-index:3100;animation:toast-slide-in .3s ease;box-shadow:0 4px 20px #0000004d}@keyframes toast-slide-in{0%{transform:translate(-50%) translateY(-20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.backend-status{font-size:11px;padding:4px 10px;border-radius:12px;margin-left:8px}.backend-status.connected{background:#00c86433;color:#00c864}.backend-status.disconnected{background:#ff646433;color:#ff6464}.modal-actions{display:flex;gap:10px;margin-top:20px}.modal-actions .editor-btn{flex:1;margin-top:0}.save-dialog-content{display:flex;flex-direction:column;gap:16px}.save-info{font-size:12px;color:#ffffff80;margin:0;font-style:italic}.save-stats{display:flex;gap:16px;padding:12px;background:#0003;border-radius:8px;font-size:13px;color:#ffffffb3}.load-modal{max-width:500px}.load-dialog-content{max-height:300px;overflow-y:auto}.no-plans{text-align:center;padding:40px 20px;color:#ffffff80}.no-plans .hint{font-size:12px;margin-top:8px}.floor-plans-list{display:flex;flex-direction:column;gap:8px}.floor-plan-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s ease}.floor-plan-item:hover{background:#00b4ff1a;border-color:#00b4ff4d}.floor-plan-item.current{background:#00b4ff26;border-color:#00b4ff66}.plan-info{display:flex;flex-direction:column;gap:4px}.plan-name{font-size:14px;font-weight:500;color:#fff}.plan-meta{font-size:11px;color:#ffffff80;display:flex;align-items:center;gap:8px}.active-badge{background:#00c86433;color:#00c864;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600}.plan-stats{display:flex;gap:12px;font-size:12px;color:#fff9}.floor-manager{background:#0003;border-radius:8px;overflow:hidden}.floor-manager-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;cursor:pointer;background:#ffffff0d}.floor-manager-title{font-size:12px;font-weight:600;color:#fffc}.floor-manager-toggle{font-size:10px;color:#ffffff80}.floor-quick-selector{display:flex;gap:4px;padding:8px;flex-wrap:wrap}.floor-quick-btn{padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:12px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.floor-quick-btn:hover{background:#ffffff26}.floor-quick-btn.active{background:#00b4ff4d;border-color:#00b4ff80}.floor-quick-btn.add-floor-btn{background:#00c86433;border-color:#00c86466}.floor-count{background:#fff3;padding:2px 6px;border-radius:10px;font-size:10px}.floor-manager-expanded{padding:8px;border-top:1px solid rgba(255,255,255,.1)}.floor-item{padding:8px 10px;border-radius:6px;margin-bottom:4px;cursor:pointer;transition:all .2s ease}.floor-item:hover{background:#ffffff0d}.floor-item.active{background:#00b4ff26}.floor-item-content{display:flex;justify-content:space-between;align-items:center}.floor-info{display:flex;flex-direction:column;gap:2px}.floor-name{font-size:13px;color:#fff}.floor-stats{font-size:11px;color:#ffffff80}.floor-actions{display:flex;gap:4px}.floor-action-btn{padding:4px 6px;background:transparent;border:none;cursor:pointer;opacity:.5;transition:opacity .2s}.floor-action-btn:hover{opacity:1}.floor-action-btn.danger:hover{color:#f44}.floor-edit-form{display:flex;gap:4px}.floor-edit-form input{padding:4px 8px;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:12px}.vertical-transit-summary{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.transit-title{font-size:11px;font-weight:600;color:#fff9;margin-bottom:8px}.transit-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px}.transit-icon{font-size:14px}.transit-name{flex:1;color:#fff}.transit-floor{color:#ffffff80;font-size:11px}.validation-panel{position:absolute;top:60px;right:280px;width:320px;max-height:calc(100vh - 80px);background:#14192dfa;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;z-index:100}.validation-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.validation-header h3{margin:0;font-size:14px;color:#fff}.validation-header .close-btn{background:transparent;border:none;color:#ffffff80;cursor:pointer;font-size:16px}.validation-loading{padding:40px;text-align:center;color:#fff9}.validation-loading .spinner{display:block;font-size:24px;margin-bottom:12px}.validation-content{padding:12px;overflow-y:auto;max-height:calc(100vh - 140px)}.validation-summary{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;margin-bottom:12px}.validation-summary.valid{background:#00c86426;border:1px solid rgba(0,200,100,.3)}.validation-summary.invalid{background:#ff444426;border:1px solid rgba(255,68,68,.3)}.auto-fix-section{background:#ffb4001a;border:1px solid rgba(255,180,0,.3);border-radius:8px;padding:12px;margin-bottom:12px}.auto-fix-btn{width:100%;padding:10px 16px;background:linear-gradient(135deg,#ff6b00,#ff9500);border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.auto-fix-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #ff6b004d}.auto-fix-btn:disabled{opacity:.7;cursor:not-allowed}.auto-fix-btn.applied{background:linear-gradient(135deg,#00c853,#00e676)}.auto-fix-hint{margin:8px 0 0;font-size:11px;color:#ffb400cc;text-align:center}.summary-icon{font-size:24px}.summary-text{display:flex;flex-direction:column;gap:2px}.summary-text strong{color:#fff;font-size:14px}.summary-text span{color:#fff9;font-size:12px}.validation-section{margin-bottom:8px;border-radius:8px;overflow:hidden;background:#ffffff08}.section-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;cursor:pointer;font-size:13px;color:#fff}.section-header:hover{background:#ffffff0d}.section-header .toggle{font-size:10px;color:#ffffff80}.section-content{padding:8px 12px 12px;border-top:1px solid rgba(255,255,255,.05)}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.metric-item{display:flex;flex-direction:column;padding:8px;background:#0003;border-radius:6px}.metric-item.small{flex-direction:row;justify-content:space-between;align-items:center;grid-column:span 2}.metric-item.clickable{cursor:pointer}.metric-item.clickable:hover{background:#00b4ff1a}.metric-value{font-size:18px;font-weight:600;color:#00b4ff}.metric-item.small .metric-value{font-size:13px}.metric-label{font-size:11px;color:#ffffff80}.metric-section-title{grid-column:span 2;font-size:11px;font-weight:600;color:#fff6;margin-top:8px;text-transform:uppercase}.issues-list{display:flex;flex-direction:column;gap:6px}.no-issues{text-align:center;padding:20px;color:#ffffff80}.no-issues span{display:block;font-size:24px;margin-bottom:8px}.issue-item{display:flex;gap:10px;padding:8px;border-radius:6px;background:#0003}.issue-item.clickable{cursor:pointer}.issue-item.clickable:hover{background:#00b4ff1a}.issue-item.error{border-left:3px solid #ff4444}.issue-item.warning{border-left:3px solid #ffaa00}.issue-item.info{border-left:3px solid #00b4ff}.issue-icon{font-size:14px}.issue-content{flex:1;display:flex;flex-direction:column;gap:2px}.issue-type{font-size:11px;font-weight:600;color:#ffffff80;text-transform:uppercase}.issue-message{font-size:12px;color:#fff}.issue-floor{font-size:10px;color:#fff6}.suggestions-list{display:flex;flex-direction:column;gap:8px}.suggestion-item{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:#ffffffb3}.suggestion-item.error-suggestion{background:#ff44441a;border:1px solid rgba(255,68,68,.3);border-radius:6px;padding:10px;margin-top:8px}.suggestion-icon{font-size:14px}.issue-suggestion{display:block;font-size:11px;color:#fff9;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.1);font-style:italic}.advanced-toggle{width:100%;padding:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ffffffb3;font-size:12px;cursor:pointer;margin:8px 0;transition:all .2s}.advanced-toggle:hover{background:#ffffff1a}.type-description{font-size:11px;color:#ffffff80;margin-top:4px;display:block}.checkbox-group{display:flex;flex-wrap:wrap;gap:6px}.checkbox-item{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#0003;border-radius:4px;font-size:11px;cursor:pointer}.checkbox-item input{width:14px;height:14px}.checkbox-item:has(input:checked){background:#00b4ff33}.connection-nodes-info{display:flex;align-items:center;gap:8px;padding:10px;background:#0003;border-radius:6px}.connection-endpoint{display:flex;align-items:center;gap:6px;flex:1}.endpoint-icon{font-size:16px}.endpoint-name{font-size:12px;color:#fff}.endpoint-floor{font-size:10px;color:#ffffff80;background:#ffffff1a;padding:2px 6px;border-radius:4px}.connection-arrow{font-size:16px;color:#00b4ffcc}.history-panel{position:absolute;top:60px;left:260px;width:280px;max-height:400px;background:#14192dfa;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;z-index:100}.history-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.history-header h3{margin:0;font-size:14px;color:#fff}.history-controls{display:flex;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.1)}.history-btn{flex:1;padding:8px;background:#ffffff1a;border:none;border-radius:6px;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px}.history-btn:disabled{opacity:.3;cursor:not-allowed}.history-btn:not(:disabled):hover{background:#ffffff26}.history-list{max-height:300px;overflow-y:auto;padding:8px}.history-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:12px;color:#ffffffb3}.history-item.current{background:#00b4ff26;color:#fff}.history-time{font-size:10px;color:#fff6}.undo-redo-controls{display:flex;gap:4px;padding:8px;border-top:1px solid rgba(255,255,255,.1)}.undo-redo-btn{flex:1;padding:8px;background:#ffffff1a;border:none;border-radius:6px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s}.undo-redo-btn:disabled{opacity:.3;cursor:not-allowed}.undo-redo-btn:not(:disabled):hover{background:#ffffff26}.bulk-edit-panel{position:absolute;top:60px;left:260px;width:300px;max-height:calc(100vh - 80px);background:#14192dfa;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;z-index:100}.bulk-edit-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.bulk-edit-header h3{margin:0;font-size:14px;color:#fff}.bulk-edit-content{padding:12px;overflow-y:auto;max-height:calc(100vh - 140px)}.selection-summary{background:#00b4ff1a;border:1px solid rgba(0,180,255,.3);border-radius:8px;padding:10px;margin-bottom:12px}.summary-title{font-size:11px;color:#fff9;text-transform:uppercase;display:block;margin-bottom:6px}.summary-counts{display:flex;flex-wrap:wrap;gap:6px}.count-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.count-badge.nodes{background:#00b4ff33;color:#00b4ff}.count-badge.walls{background:#f903;color:#f90}.count-badge.connections{background:#00ff9633;color:#00ff96}.clear-selection-btn{width:100%;margin-top:8px;padding:6px;background:#ffffff1a;border:none;border-radius:4px;color:#ffffffb3;font-size:11px;cursor:pointer}.clear-selection-btn:hover{background:#ffffff26}.no-selection{text-align:center;padding:20px;color:#ffffff80}.no-selection p{margin:8px 0;font-size:12px}.no-selection kbd{background:#ffffff1a;padding:2px 6px;border-radius:4px;font-size:11px}.bulk-section{background:#0003;border-radius:8px;padding:10px;margin-bottom:10px}.bulk-section h4{margin:0 0 8px;font-size:12px;color:#ffffffb3}.bulk-row{display:flex;gap:8px}.bulk-row select{flex:1;padding:8px;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:12px}.apply-btn{padding:8px 16px;background:#00b4ff4d;border:1px solid rgba(0,180,255,.5);border-radius:6px;color:#fff;font-size:12px;cursor:pointer}.apply-btn:disabled{opacity:.5;cursor:not-allowed}.apply-btn:not(:disabled):hover{background:#00b4ff66}.offset-inputs{display:flex;gap:8px;align-items:center}.offset-row{display:flex;align-items:center;gap:4px}.offset-row label{color:#fff9;font-size:11px}.offset-row input{width:60px;padding:6px 8px;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:12px}.bulk-actions{display:flex;gap:8px}.action-btn{flex:1;padding:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:12px;cursor:pointer}.action-btn:not(:disabled):hover{background:#ffffff26}.danger-section{background:#ff44441a;border:1px solid rgba(255,68,68,.3)}.danger-section .delete-btn{width:100%;padding:10px;background:#ff44444d;border:none;border-radius:6px;color:#f66;font-size:13px;cursor:pointer}.danger-section .delete-btn:hover{background:#f446}.multi-selected{outline:2px dashed #ffff00!important;outline-offset:2px}.poi-type-info-card{margin-top:8px;padding:10px;background:#00b4ff1a;border:1px solid rgba(0,180,255,.2);border-radius:6px}.poi-type-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.poi-icon{font-size:18px}.poi-label{font-weight:600;color:#00b4ff}.poi-description{font-size:12px;color:#a0a0b0;margin:0 0 6px;line-height:1.4}.poi-category{font-size:11px;color:#666}.poi-category span{color:#888;font-style:italic}.label-help{display:inline-block;width:14px;height:14px;line-height:14px;text-align:center;font-size:10px;background:#00b4ff33;border-radius:50%;color:#00b4ff;cursor:help;margin-left:4px;position:relative;font-weight:700}.label-help:hover{background:#00b4ff66}.label-help:hover:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:100%;transform:translate(-50%);background:#14192dfa;border:1px solid rgba(0,180,255,.3);color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:400;white-space:nowrap;max-width:250px;white-space:normal;z-index:1000;margin-bottom:8px;box-shadow:0 4px 16px #0000004d;line-height:1.4}.label-help:hover:before{content:"";position:absolute;left:50%;bottom:100%;transform:translate(-50%);border:6px solid transparent;border-top-color:#00b4ff4d;margin-bottom:2px}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip-content{position:absolute;background:#14192dfa;border:1px solid rgba(0,180,255,.3);color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;white-space:nowrap;max-width:280px;white-space:normal;z-index:1000;box-shadow:0 4px 16px #0000004d;line-height:1.4;pointer-events:none}.tooltip-top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.vertical-transit-section{background:#ffff000d;border:1px solid rgba(255,255,0,.2);border-radius:8px;padding:12px;margin-top:8px}.vertical-transit-section label{color:#fd0}.helper-text{font-size:11px;color:#fff9;margin:4px 0 8px}.floor-connect-checkboxes{display:flex;flex-direction:column;gap:6px}.floor-connect-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#0003;border-radius:6px;cursor:pointer;transition:background .15s ease}.floor-connect-item:hover{background:#0000004d}.floor-connect-item input[type=checkbox]{width:16px;height:16px;accent-color:#ffdd00}.floor-connect-item .floor-label{flex:1;font-size:12px}.floor-connect-item .connected-badge{font-size:10px;color:#00ff96;background:#00ff961a;padding:2px 6px;border-radius:4px}.no-floors-hint{font-size:11px;color:#fff6;font-style:italic;margin-top:8px}.vertical-node-manager-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.vertical-node-manager{background:#1a1d28;border:1px solid rgba(255,255,255,.1);border-radius:12px;width:90%;max-width:600px;max-height:85vh;display:flex;flex-direction:column}.vnm-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.vnm-header h2{margin:0;font-size:18px;color:#fff}.vnm-content{flex:1;overflow-y:auto;padding:20px}.vnm-section{margin-bottom:24px}.vnm-section h3{font-size:14px;color:#00ff96;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.no-transit{color:#666;font-style:italic;font-size:13px}.existing-transit-list{display:flex;flex-direction:column;gap:8px}.transit-item-card{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#ffffff0d;border-radius:6px}.transit-info{display:flex;align-items:center;gap:8px}.transit-icon{font-size:16px}.transit-name{font-size:13px;color:#fff}.transit-floors{display:flex;gap:4px}.floor-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.floor-badge.active{background:#00ff964d;color:#00ff96}.floor-badge.inactive{background:#ffffff0d;color:#444}.vnm-form{display:flex;flex-direction:column;gap:16px}.vnm-form .form-group label{display:block;font-size:12px;color:#888;margin-bottom:6px}.vnm-form input[type=text],.vnm-form input[type=number]{width:100%;padding:8px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:13px}.transit-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.transit-type-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;background:#ffffff0d;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s}.transit-type-btn:hover{background:#ffffff1a}.transit-type-btn.active{background:#00b4ff33;border-color:#00b4ff}.transit-type-btn .type-icon{font-size:20px}.transit-type-btn .type-label{font-size:11px;color:#888}.transit-type-btn.active .type-label{color:#00b4ff}.position-row{display:flex;gap:8px}.position-row input{flex:1}.vnm-form .hint{font-size:11px;color:#666;margin-top:4px}.vnm-form .warning{font-size:11px;color:#f66;margin-top:4px}.floor-selection{background:#0003;border-radius:6px;padding:12px}.floor-actions{display:flex;gap:8px;margin-bottom:10px}.floor-actions button{padding:4px 10px;background:#ffffff1a;border:none;border-radius:4px;color:#888;font-size:11px;cursor:pointer}.floor-actions button:hover{background:#ffffff26;color:#fff}.floor-checkboxes{display:flex;flex-direction:column;gap:6px}.floor-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer}.floor-checkbox input{cursor:pointer}.floor-checkbox .floor-label{font-size:13px;color:#ccc}.vnm-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid rgba(255,255,255,.1)}.vnm-footer .cancel-btn{padding:8px 16px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#888;cursor:pointer}.vnm-footer .cancel-btn:hover{background:#ffffff0d}.vnm-footer .create-btn{padding:8px 20px;background:linear-gradient(135deg,#00ff96,#00b4ff);border:none;border-radius:6px;color:#000;font-weight:600;cursor:pointer}.vnm-footer .create-btn:disabled{opacity:.5;cursor:not-allowed}.lod-panel-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.lod-panel{background:#1a1d28;border:1px solid rgba(255,255,255,.1);border-radius:12px;width:90%;max-width:700px;max-height:85vh;display:flex;flex-direction:column}.lod-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.lod-header h2{margin:0;font-size:18px;color:#fff}.lod-presets{display:flex;gap:10px;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.preset-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;background:#ffffff0d;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s}.preset-btn:hover{background:#ffffff1a}.preset-btn.active{border-color:#00ff96;background:#00ff961a}.preset-btn .preset-icon{font-size:24px}.preset-btn .preset-name{font-size:14px;font-weight:600;color:#fff}.preset-btn .preset-desc{font-size:11px;color:#666}.lod-content{flex:1;overflow-y:auto;padding:20px}.lod-category{margin-bottom:20px}.lod-category-header{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#00b4ff;margin-bottom:10px}.lod-features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.lod-feature-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#ffffff08;border-radius:6px}.lod-feature-info{flex:1}.lod-feature-label{font-size:13px;color:#ccc;display:block;margin-bottom:2px}.lod-feature-desc{font-size:11px;color:#666}.lod-feature-impact{padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;margin-right:10px}.lod-feature-impact.low{background:#00ff9633;color:#00ff96}.lod-feature-impact.medium{background:#fa03;color:#fa0}.lod-feature-impact.high{background:#f443;color:#f44}.lod-toggle{position:relative;width:44px;height:24px;background:#ffffff1a;border-radius:12px;cursor:pointer;transition:background .2s}.lod-toggle.active{background:#00ff9666}.lod-toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s}.lod-toggle.active:after{transform:translate(20px)}.lod-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid rgba(255,255,255,.1)}.lod-stats{font-size:12px;color:#666}.lod-stats span{color:#00ff96;font-weight:600}.lod-actions{display:flex;gap:10px}.lod-actions .cancel-btn{padding:8px 16px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#888;cursor:pointer}.lod-actions .cancel-btn:hover{background:#ffffff0d}.lod-actions .save-btn{padding:8px 20px;background:linear-gradient(135deg,#00ff96,#00b4ff);border:none;border-radius:6px;color:#000;font-weight:600;cursor:pointer}.lod-actions .save-btn:hover{opacity:.9}.floor-plan-editor.loading-map{display:flex;align-items:center;justify-content:center}.loading-overlay{display:flex;flex-direction:column;align-items:center;gap:20px;color:#fff}.loading-overlay p{font-size:18px;color:#fffc}.loading-spinner{width:48px;height:48px;border:4px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;animation:editor-spin 1s linear infinite}@keyframes editor-spin{to{transform:rotate(360deg)}}.offset-controls{display:flex;flex-direction:column;align-items:center;gap:4px;margin:8px 0}.offset-row{display:flex;gap:4px}.offset-btn{width:32px;height:32px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.offset-btn:hover{background:#ffffff1a;border-color:#6366f180}.offset-btn:active{background:#6366f14d}.offset-btn.reset{font-size:14px}.offset-values{font-size:11px;color:#ffffff80;text-align:center;margin-top:4px}.editor-canvas-container canvas{touch-action:none}.history-panel{position:fixed;top:70px;right:320px;width:280px;max-height:calc(100vh - 100px);background:linear-gradient(135deg,#1a1f35,#252a40);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #0006;display:flex;flex-direction:column;z-index:100;overflow:hidden}.history-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.history-header h3{margin:0;font-size:14px;font-weight:600;color:#fff}.history-close-btn{background:none;border:none;color:#ffffff80;font-size:16px;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s}.history-close-btn:hover{color:#fff;background:#ffffff1a}.history-actions{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05)}.history-action-btn{flex:1;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:12px;cursor:pointer;transition:all .2s}.history-action-btn:hover:not(:disabled){background:#ffffff1a}.history-action-btn:disabled{opacity:.4;cursor:not-allowed}.history-stats{padding:8px 16px;font-size:11px;color:#ffffff80;display:flex;gap:8px}.history-list{flex:1;overflow-y:auto;padding:8px;max-height:400px}.history-empty{text-align:center;padding:32px 16px;color:#fff6}.history-empty p{margin:0 0 4px;font-size:13px}.history-empty span{font-size:11px}.history-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:all .2s;margin-bottom:4px}.history-item:hover{background:#ffffff0d}.history-item.past{opacity:.7}.history-item.past:hover{opacity:1;background:#6366f11a}.history-item.current{background:#22c55e26;border:1px solid rgba(34,197,94,.3);cursor:default;opacity:1}.history-item.future{opacity:.4}.history-item.future:hover{opacity:.7;background:#eab3081a}.history-icon{font-size:16px;width:24px;text-align:center}.history-info{flex:1;min-width:0}.history-label{display:block;font-size:12px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-time{display:block;font-size:10px;color:#fff6;margin-top:2px}.history-current-badge{color:#22c55e;font-size:14px}.history-footer{padding:8px 16px;border-top:1px solid rgba(255,255,255,.05);text-align:center}.history-footer small{font-size:10px;color:#ffffff4d}.history-count{font-size:11px;opacity:.7}.auto-connect-modal{min-width:500px;max-width:600px}.auto-connect-content{padding:20px 0}.progress-bar-container{margin-bottom:24px}.progress-info{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px;color:#ffffffb3}.progress-bar{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#00ff96,#00d4aa);transition:width .3s ease}.current-connection-preview{background:#ffffff0d;border-radius:8px;padding:16px}.current-connection-preview h3{margin:0 0 12px;font-size:14px;color:#ffffffb3}.connection-pair{display:flex;align-items:center;gap:16px;margin-bottom:12px}.node-info{flex:1;display:flex;flex-direction:column;gap:4px}.node-name{font-size:15px;font-weight:600;color:#fff}.node-type{font-size:12px;color:#ffffff80;text-transform:capitalize}.connection-arrow{font-size:20px;color:#00ff96}.connection-distance{padding:8px 12px;background:#00ff961a;border-radius:6px;font-size:13px;color:#00ff96;margin-bottom:12px}.connection-strategy{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.connection-strategy p{margin:0 0 8px;font-size:13px;color:#ffffffb3}.connection-strategy ol{margin:0;padding-left:20px;font-size:12px;color:#fff9;line-height:1.8}.completion-message{text-align:center;padding:32px 16px}.completion-icon{font-size:48px;display:block;margin-bottom:16px}.completion-message h3{margin:0 0 8px;font-size:20px;color:#fff}.completion-message p{margin:0;font-size:14px;color:#fff9}.connection-manager-panel{position:fixed;right:20px;top:80px;bottom:20px;width:400px;background:#14192dfa;border:1px solid rgba(255,255,255,.1);border-radius:12px;display:flex;flex-direction:column;z-index:1000;box-shadow:0 8px 32px #00000080}.connection-manager-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.connection-manager-header h3{margin:0;font-size:16px;color:#fff;font-weight:600}.connection-manager-controls{padding:16px 20px;display:flex;gap:12px;border-bottom:1px solid rgba(255,255,255,.05)}.connection-search{flex:1;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:13px}.connection-search::placeholder{color:#fff6}.floor-filter{padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:13px;cursor:pointer}.connection-manager-stats-boxes{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05)}.connection-manager-stats-boxes .stat-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px;background:#00b4ff1a;border:1px solid rgba(0,180,255,.2);border-radius:6px;cursor:pointer;transition:all .2s ease}.connection-manager-stats-boxes .stat-item:hover{background:#00b4ff33;border-color:#00b4ff66;transform:translateY(-2px)}.connection-manager-stats-boxes .stat-item.active{background:#00b4ff4d;border-color:#00b4ff99;box-shadow:0 0 10px #00b4ff4d}.connection-manager-stats-boxes .stat-item.warning{background:#ffb4001a;border-color:#ffb4004d}.connection-manager-stats-boxes .stat-item.warning:hover{background:#ffb40033;border-color:#ffb40080}.connection-manager-stats-boxes .stat-item.warning.active{background:#ffb4004d;border-color:#ffb40099;box-shadow:0 0 10px #ffb4004d}.connection-manager-stats-boxes .stat-item.info{background:#6496ff1a;border-color:#6496ff33}.connection-manager-stats-boxes .stat-item.info:hover{background:#6496ff33;border-color:#6496ff66}.connection-manager-stats-boxes .stat-item.info.active{background:#6496ff4d;border-color:#6496ff99;box-shadow:0 0 10px #6496ff4d}.connection-manager-showing{padding:8px 16px;font-size:12px;color:#fff9;text-align:center;border-bottom:1px solid rgba(255,255,255,.05)}.connection-manager-list{flex:1;overflow-y:auto;padding:12px}.connection-item{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px;margin-bottom:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:12px}.connection-item:hover{background:#ffffff0f;border-color:#00ff964d}.connection-nodes{flex:1;display:flex;flex-direction:column;gap:8px}.node-name{display:flex;align-items:center;gap:6px;font-size:13px;color:#fff}.node-icon{font-size:14px}.node-type{font-size:11px;color:#fff6;text-transform:capitalize}.connection-arrow{color:#00ff9699;font-size:12px}.connection-info{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.connection-distance{font-size:11px;color:#ffffff80}.connection-badge{padding:2px 8px;background:#0096ff33;color:#4aa3ff;border-radius:4px;font-size:10px;font-weight:600}.connection-badge.vertical{background:#ffc80033;color:#fc0}.connection-badge.wall-crossing-badge{background:#ffb40033;color:#ffb400}.connection-item.wall-crossing{border-color:#ffb4004d;background:#ffb4000d}.connection-item.wall-crossing:hover{border-color:#ffb40080;background:#ffb4001a}.connection-item.highlighted{border-color:#00ff9699;background:#00ff9626;animation:pulse-highlight 1s ease-in-out 3}@keyframes pulse-highlight{0%,to{box-shadow:0 0 #00ff9666}50%{box-shadow:0 0 20px #00ff9699}}.delete-connection-btn{padding:6px 10px;background:#ff32321a;border:1px solid rgba(255,50,50,.3);border-radius:6px;color:#f55;font-size:14px;cursor:pointer;transition:all .2s ease}.delete-connection-btn:hover{background:#ff323233;border-color:#ff323280}.no-connections{text-align:center;padding:48px 20px;color:#fff6}.no-connections span{font-size:48px;display:block;margin-bottom:12px;opacity:.5}.no-connections p{margin:0;font-size:14px}.dropdown-container{position:relative;display:inline-flex;gap:0}.dropdown-arrow{padding:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-left:none;border-radius:0 6px 6px 0;color:#fff;font-size:10px;cursor:pointer;transition:all .2s ease}.dropdown-arrow.primary{background:linear-gradient(135deg,#00ff9633,#00b46e33);border-color:#00ff964d}.dropdown-arrow:hover:not(:disabled){background:#ffffff26}.dropdown-arrow.primary:hover:not(:disabled){background:linear-gradient(135deg,#00ff964d,#00b46e4d)}.dropdown-arrow:disabled{opacity:.4;cursor:not-allowed}.dropdown-container .editor-btn{border-radius:6px 0 0 6px;border-right:none}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:4px;background:#1e2337fa;border:1px solid rgba(255,255,255,.2);border-radius:6px;box-shadow:0 4px 12px #00000080;z-index:1000;min-width:150px;overflow:hidden}.dropdown-menu button{width:100%;padding:10px 16px;background:transparent;border:none;color:#fff;font-size:13px;text-align:left;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;gap:8px}.dropdown-menu button:hover:not(:disabled){background:#ffffff1a}.dropdown-menu button:disabled{opacity:.4;cursor:not-allowed}.node-manager-panel{position:absolute;top:60px;right:20px;width:420px;max-height:calc(100vh - 100px);background:#14192dfa;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;z-index:100;display:flex;flex-direction:column;box-shadow:0 8px 32px #0006}.node-manager-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.node-manager-header h3{margin:0;font-size:14px;color:#fff;display:flex;align-items:center;gap:8px}.node-manager-stats{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05)}.node-manager-stats .stat-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px;background:#00b4ff1a;border:1px solid rgba(0,180,255,.2);border-radius:6px;cursor:pointer;transition:all .2s ease;position:relative}.node-manager-stats .stat-item:hover{background:#00b4ff33;border-color:#00b4ff66;transform:translateY(-2px)}.node-manager-stats .stat-item.active{background:#00b4ff4d;border-color:#00b4ff99;box-shadow:0 0 10px #00b4ff4d}.node-manager-stats .stat-item.warning{background:#ffb4001a;border-color:#ffb4004d}.node-manager-stats .stat-item.warning:hover{background:#ffb40033;border-color:#ffb40080}.node-manager-stats .stat-item.warning.active{background:#ffb4004d;border-color:#ffb40099;box-shadow:0 0 10px #ffb4004d}.node-manager-stats .stat-item.error{background:#ff44441a;border-color:#ff44444d}.node-manager-stats .stat-item.error:hover{background:#f443;border-color:#ff444480}.node-manager-stats .stat-item.error.active{background:#ff44444d;border-color:#f449;box-shadow:0 0 10px #ff44444d}.node-manager-stats .stat-value{font-size:20px;font-weight:600;color:#fff}.node-manager-stats .stat-label{font-size:10px;color:#fff9;text-transform:uppercase;margin-top:2px}.node-manager-controls{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05)}.node-search-input{width:100%;padding:10px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:13px;margin-bottom:8px}.node-search-input:focus{outline:none;border-color:#00b4ff80;background:#0006}.node-filters{display:flex;gap:6px}.node-filters select{flex:1;padding:8px;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:12px;cursor:pointer}.node-filters select:focus{outline:none;border-color:#00b4ff80}.node-manager-list{flex:1;overflow-y:auto;padding:8px}.node-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all .2s ease}.node-item:hover{background:#ffffff14;border-color:#00b4ff4d}.node-item.has-issues{border-color:#ffb4004d;background:#ffb4000d}.node-item.has-issues:hover{border-color:#ffb40080;background:#ffb4001a}.node-icon{font-size:24px;line-height:1;min-width:32px;text-align:center}.node-info{flex:1;min-width:0}.node-name-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.node-name{font-size:14px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-badge{padding:2px 6px;border-radius:4px;font-size:9px;font-weight:600;text-transform:uppercase;white-space:nowrap}.issue-badge.error{background:#f443;color:#f66}.issue-badge.warning{background:#ffb40033;color:#ffb400}.node-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px;font-size:11px;color:#fff9}.node-type,.node-floor,.node-connections{padding:2px 6px;background:#ffffff0d;border-radius:4px}.node-id{font-size:10px;color:#fff6;font-family:Courier New,monospace;margin-top:4px;word-break:break-all}.id-label,.qr-label{color:#ffffff4d;margin-right:4px}.id-value,.qr-value{color:#ffffff80}.node-qr{font-size:10px;color:#fff6;font-family:Courier New,monospace;margin-top:2px}.delete-node-btn{padding:6px 10px;background:#ff32321a;border:1px solid rgba(255,50,50,.3);border-radius:6px;color:#f55;font-size:14px;cursor:pointer;transition:all .2s ease;align-self:flex-start}.delete-node-btn:hover{background:#ff323233;border-color:#ff323280}.no-nodes{text-align:center;padding:48px 20px;color:#fff6;font-size:14px}.editor-guide{position:absolute;top:60px;right:320px;width:380px;max-height:calc(100vh - 80px);background:linear-gradient(135deg,#14192dfa,#1e2337fa);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #0006;z-index:1500;display:flex;flex-direction:column;overflow:hidden}.guide-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.guide-header h3{margin:0;font-size:16px;font-weight:600;color:#fff}.guide-header .close-btn{background:none;border:none;color:#ffffff80;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s ease}.guide-header .close-btn:hover{background:#ffffff1a;color:#fff}.guide-warning{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:12px;background:#ff444426;border:1px solid rgba(255,68,68,.4);border-radius:8px;cursor:pointer;transition:all .2s ease;animation:pulse-error 2s infinite}.guide-warning:hover{background:#ff444440;border-color:#f449}@keyframes pulse-error{0%,to{opacity:1}50%{opacity:.8}}.warning-icon{font-size:24px}.warning-content{display:flex;flex-direction:column;gap:2px}.warning-content strong{color:#f66;font-size:13px}.warning-content span{color:#ff9696cc;font-size:11px}.guide-progress{padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.progress-bar{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#00b4ff,#0f8);border-radius:4px;transition:width .3s ease}.progress-text{font-size:12px;color:#fff9}.guide-tabs{display:flex;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.1)}.guide-tab{flex:1;padding:12px 8px;background:none;border:none;border-bottom:2px solid transparent;color:#ffffff80;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.guide-tab:hover{color:#fffc}.guide-tab.active{color:#00b4ff;border-bottom-color:#00b4ff}.guide-content{flex:1;overflow-y:auto;padding:16px}.checklist-tab{display:flex;flex-direction:column;gap:12px}.checklist-item{display:flex;gap:12px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:all .2s ease}.checklist-item.done{background:#00ff880d;border-color:#0f83}.checklist-item.critical:not(.done){background:#ff44440d;border-color:#f443}.check-icon{font-size:18px;line-height:1}.check-content{flex:1;display:flex;flex-direction:column;gap:4px}.check-label{font-size:14px;font-weight:600;color:#fff}.check-desc{font-size:12px;color:#fff9}.check-tip{font-size:11px;color:#00b4ff;background:#00b4ff1a;padding:6px 10px;border-radius:6px;margin-top:6px}.checklist-complete{text-align:center;padding:20px;background:#00ff881a;border:1px solid rgba(0,255,136,.3);border-radius:8px;color:#0f8;font-size:14px}.validate-btn{display:block;margin-top:12px;padding:8px 16px;background:#0f83;border:1px solid rgba(0,255,136,.4);border-radius:6px;color:#0f8;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.validate-btn:hover{background:#00ff884d}.rules-tab{display:flex;flex-direction:column;gap:20px}.rule-section h4{margin:0 0 10px;font-size:14px;font-weight:600;color:#00b4ff}.rule-section ul{margin:0;padding-left:20px;font-size:13px;color:#fffc;line-height:1.8}.rule-section li strong{color:#fff}.tips-tab{display:flex;flex-direction:column;gap:12px}.tip-card{display:flex;gap:12px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px}.tip-icon{font-size:24px;line-height:1}.tip-content{flex:1}.tip-content strong{display:block;font-size:13px;font-weight:600;color:#fff;margin-bottom:4px}.tip-content p{margin:0;font-size:12px;color:#fff9;line-height:1.5}.guide-status{display:flex;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid rgba(255,255,255,.1);background:#0003}.guide-status.valid{background:#00ff881a}.guide-status.invalid{background:#ffb4001a}.status-icon{font-size:16px}.status-text{flex:1;font-size:12px;color:#fffc}.status-btn{padding:4px 10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fffc;font-size:11px;cursor:pointer;transition:all .2s ease}.status-btn:hover{background:#ffffff26}.map-management{min-height:100vh;background:linear-gradient(135deg,#0f0f1a,#1a1a2e);color:#fff;padding:0}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px}.spinner{width:48px;height:48px;border:4px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite}.mm-header{display:flex;justify-content:space-between;align-items:center;padding:20px 32px;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1)}.mm-header-left{display:flex;align-items:center;gap:20px}.mm-header-left h1{font-size:24px;font-weight:600;margin:0}.mm-back-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s}.mm-back-btn:hover{background:#ffffff26}.mm-header-actions{display:flex;gap:12px}.mm-btn{padding:10px 20px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.mm-btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.mm-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 20px #6366f166}.mm-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.mm-btn-secondary{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2)}.mm-btn-secondary:hover{background:#ffffff26}.mm-error{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 32px;background:#ef44441a;border-bottom:1px solid rgba(239,68,68,.2);color:#fca5a5}.mm-error button{padding:6px 12px;background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:6px;color:#fca5a5;cursor:pointer}.mm-error button:hover{background:#ef44444d}.mm-filters{display:flex;align-items:center;gap:16px;padding:20px 32px;border-bottom:1px solid rgba(255,255,255,.05)}.mm-search{flex:1;max-width:400px}.mm-search input{width:100%;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px}.mm-search input::placeholder{color:#fff6}.mm-search input:focus{outline:none;border-color:#6366f1;background:#ffffff14}.mm-hospital-filter{display:flex;align-items:center;gap:8px}.mm-hospital-filter select{padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;cursor:pointer}.mm-hospital-filter select:focus{outline:none;border-color:#6366f1}.mm-hospital-filter select option{background:#1a1a2e;color:#fff}.mm-sync-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:18px;cursor:pointer;transition:all .2s ease}.mm-sync-btn:hover:not(:disabled){background:#6366f133;border-color:#6366f1;transform:rotate(180deg)}.mm-sync-btn:disabled{opacity:.6;cursor:not-allowed}.mm-sync-btn:disabled:hover{transform:none}.mm-stats{color:#ffffff80;font-size:14px}.mm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;padding:32px}.mm-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 32px;text-align:center}.mm-empty-icon{font-size:64px;margin-bottom:16px}.mm-empty h3{font-size:20px;font-weight:600;margin:0 0 8px}.mm-empty p{color:#ffffff80;margin:0 0 24px}.mm-card{position:relative;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;transition:all .3s}.mm-card:hover{transform:translateY(-4px);border-color:#6366f166;box-shadow:0 8px 32px #0000004d}.mm-card.active{border-color:#22c55e66;background:#22c55e0d}.mm-active-badge{position:absolute;top:12px;right:12px;padding:4px 10px;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase}.mm-card-header{margin-bottom:20px}.mm-card-header h3{font-size:18px;font-weight:600;margin:0 0 8px;padding-right:60px}.mm-hospital-tag{display:inline-block;padding:4px 10px;background:#6366f133;border-radius:20px;font-size:12px;color:#a5b4fc}.mm-card-stats{display:flex;gap:24px;margin-bottom:16px;padding:16px;background:#0003;border-radius:12px}.mm-stat{display:flex;flex-direction:column;align-items:center;flex:1}.mm-stat-value{font-size:24px;font-weight:700;color:#6366f1}.mm-stat-label{font-size:12px;color:#ffffff80;text-transform:uppercase}.mm-card-meta{font-size:12px;color:#fff6;margin-bottom:16px}.mm-card-actions{display:flex;gap:8px;flex-wrap:wrap}.mm-action-btn{padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:13px;cursor:pointer;transition:all .2s}.mm-action-btn:hover:not(:disabled){background:#ffffff1a}.mm-action-btn:disabled{opacity:.5;cursor:not-allowed}.mm-action-btn.edit:hover:not(:disabled){background:#6366f133;border-color:#6366f166}.mm-action-btn.view:hover:not(:disabled){background:#22c55e33;border-color:#22c55e66}.mm-action-btn.duplicate:hover:not(:disabled){background:#eab30833;border-color:#eab30866}.mm-action-btn.activate:hover:not(:disabled){background:#a855f733;border-color:#a855f766}.mm-action-btn.delete:hover:not(:disabled){background:#ef444433;border-color:#ef444466}.mm-card-loading{position:absolute;inset:0;background:#00000080;border-radius:16px;display:flex;align-items:center;justify-content:center}.mm-card-loading:after{content:"";width:32px;height:32px;border:3px solid rgba(255,255,255,.2);border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite}.mm-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.mm-modal{background:linear-gradient(135deg,#1a1a2e,#252540);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:32px;width:100%;max-width:440px;box-shadow:0 20px 60px #00000080}.mm-modal h2{font-size:22px;font-weight:600;margin:0 0 24px}.mm-modal-form{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.mm-form-group{display:flex;flex-direction:column;gap:8px}.mm-form-group label{font-size:14px;font-weight:500;color:#fffc}.mm-form-group input,.mm-form-group select{padding:12px 16px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:14px}.mm-form-group input::placeholder{color:#ffffff4d}.mm-form-group input:focus,.mm-form-group select:focus{outline:none;border-color:#6366f1}.mm-form-group select option{background:#1a1a2e}.mm-modal-actions{display:flex;justify-content:flex-end;gap:12px}@media(max-width:768px){.mm-header{flex-direction:column;gap:16px;padding:16px}.mm-header-left{width:100%;justify-content:space-between}.mm-header-actions{width:100%}.mm-header-actions .mm-btn{flex:1}.mm-filters{flex-direction:column;padding:16px}.mm-search{max-width:100%;width:100%}.mm-hospital-filter,.mm-hospital-filter select{width:100%}.mm-grid{padding:16px;gap:16px}.mm-card-stats{gap:12px;padding:12px}.mm-modal{margin:16px;padding:24px}}.pwa-toast{position:fixed;bottom:20px;right:20px;background:#0a0e1afa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(0,180,255,.3);border-radius:12px;padding:16px 20px;box-shadow:0 8px 32px #00000080;z-index:10000;max-width:360px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.pwa-message{margin-bottom:12px}.pwa-content{display:flex;align-items:center;gap:12px;color:#fff}.pwa-icon{font-size:24px;line-height:1}.pwa-text{display:flex;flex-direction:column;gap:4px}.pwa-text strong{font-size:14px;font-weight:600;color:#fff}.pwa-subtitle{font-size:12px;color:#ffffffb3}.pwa-actions{display:flex;gap:8px;justify-content:flex-end}.pwa-btn{padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.pwa-btn.primary{background:linear-gradient(135deg,#00b4ff,#08c);color:#fff}.pwa-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00b4ff66}.pwa-btn.secondary{background:#ffffff1a;color:#ffffffe6;border:1px solid rgba(255,255,255,.2)}.pwa-btn.secondary:hover{background:#ffffff26}@media(max-width:640px){.pwa-toast{bottom:10px;right:10px;left:10px;max-width:none}}.admin-layout{display:flex;min-height:100vh;background:var(--bg-primary, #0a0a0f)}.admin-sidebar{width:260px;background:var(--bg-secondary, #12121a);border-right:1px solid var(--border-primary, rgba(255, 255, 255, .1));display:flex;flex-direction:column;transition:width .3s ease;position:fixed;left:0;top:0;bottom:0;z-index:100}.admin-layout.sidebar-collapsed .admin-sidebar{width:70px}.sidebar-header{padding:20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.sidebar-logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text-primary, #ffffff);font-weight:700;font-size:1.1rem}.logo-icon{font-size:1.5rem}.sidebar-toggle{background:transparent;border:none;color:var(--text-muted, #888);cursor:pointer;padding:8px;border-radius:6px;transition:all .2s ease}.sidebar-toggle:hover{background:var(--bg-glass-light, rgba(255, 255, 255, .05));color:var(--text-primary, #ffffff)}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;text-decoration:none;color:var(--text-muted, #888);transition:all .2s ease}.nav-item:hover{background:var(--bg-glass-light, rgba(255, 255, 255, .05));color:var(--text-primary, #ffffff)}.nav-item.active{background:linear-gradient(135deg,#6366f133,#8b5cf633);color:var(--accent-primary, #6366f1);border:1px solid var(--accent-primary, #6366f1)}.nav-icon{font-size:1.25rem;width:24px;text-align:center}.nav-label{font-size:.95rem;font-weight:500}.sidebar-footer{padding:16px;border-top:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.user-info{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-glass-light, rgba(255, 255, 255, .03));border-radius:8px;margin-bottom:12px}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary, #6366f1) 0%,var(--accent-secondary, #8b5cf6) 100%);display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-details{display:flex;flex-direction:column;gap:2px;overflow:hidden}.user-name{font-size:.9rem;font-weight:500;color:var(--text-primary, #ffffff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:var(--text-muted, #888);display:flex;align-items:center;gap:4px}.user-access-badge{display:inline-block;font-size:.65rem;padding:2px 8px;border-radius:10px;background:linear-gradient(135deg,#6366f133,#8b5cf633);border:1px solid rgba(139,92,246,.3);color:#a78bfa;margin-top:4px}.sign-out-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-muted, #888);cursor:pointer;transition:all .2s ease;font-size:.9rem}.sign-out-btn:hover{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.admin-main{flex:1;margin-left:260px;transition:margin-left .3s ease;display:flex;flex-direction:column}.admin-layout.sidebar-collapsed .admin-main{margin-left:70px}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--bg-secondary, #12121a);border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1));position:sticky;top:0;z-index:50}.header-breadcrumb{display:flex;align-items:center;gap:8px;font-size:.9rem}.header-breadcrumb a{color:var(--text-muted, #888);text-decoration:none;transition:color .2s ease}.header-breadcrumb a:hover{color:var(--accent-primary, #6366f1)}.breadcrumb-separator{color:var(--text-muted, #888)}.breadcrumb-current{color:var(--text-primary, #ffffff);font-weight:500}.header-actions{display:flex;align-items:center;gap:12px}.header-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-glass-light, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #ffffff);text-decoration:none;font-size:.9rem;transition:all .2s ease}.header-btn:hover{background:var(--bg-glass-dark, rgba(255, 255, 255, .1));border-color:var(--accent-primary, #6366f1)}.admin-content{flex:1;padding:24px;overflow-y:auto}@media(max-width:1024px){.admin-sidebar{width:70px}.admin-main{margin-left:70px}.logo-text,.nav-label,.user-details,.sidebar-toggle{display:none}}@media(max-width:768px){.admin-sidebar{position:fixed;transform:translate(-100%);width:260px;z-index:1000}.admin-sidebar.open{transform:translate(0)}.admin-main{margin-left:0}.logo-text,.nav-label,.user-details{display:block}}.admin-dashboard{max-width:1400px;margin:0 auto}.welcome-banner{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#10b98126,#0596691a);border:1px solid rgba(16,185,129,.3);border-radius:16px;padding:24px 32px;margin-bottom:32px}.welcome-content h2{font-size:1.5rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 12px}.welcome-badges{display:flex;flex-wrap:wrap;gap:8px}.welcome-badges .badge{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:20px;font-size:.8rem;font-weight:600}.welcome-badges .badge.super-admin{background:linear-gradient(135deg,#6a11cb4d,#8b5cf64d);border:1px solid rgba(139,92,246,.5);color:#c4b5fd}.welcome-badges .badge.champion{background:linear-gradient(135deg,#2575fc4d,#3b82f64d);border:1px solid rgba(59,130,246,.5);color:#93c5fd}.welcome-badges .badge.hospital{background:linear-gradient(135deg,#00b4d84d,#06b6d44d);border:1px solid rgba(6,182,212,.5);color:#67e8f9}.welcome-badges .badge.access{background:linear-gradient(135deg,#10b9814d,#0596694d);border:1px solid rgba(16,185,129,.5);color:#6ee7b7}.session-info{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.session-label{font-size:.75rem;color:var(--text-muted, #888)}.session-time{font-size:1.5rem;font-weight:700;color:#10b981}.dashboard-header{margin-bottom:32px}.dashboard-header h1{font-size:2rem;font-weight:700;color:var(--text-primary, #ffffff);margin:0 0 8px}.dashboard-subtitle{color:var(--text-muted, #888);font-size:1rem;margin:0}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-muted, #888)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}.stat-card{background:var(--bg-secondary, #12121a);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px;position:relative;transition:all .2s ease}.stat-card:hover{border-color:var(--accent-primary, #6366f1);transform:translateY(-2px)}.stat-card.highlight{background:linear-gradient(135deg,#6366f11a,#8b5cf61a);border-color:var(--accent-primary, #6366f1)}.stat-icon{font-size:2rem}.stat-content{display:flex;flex-direction:column;gap:4px}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary, #ffffff)}.stat-label{font-size:.9rem;color:var(--text-muted, #888)}.stat-link{font-size:.85rem;color:var(--accent-primary, #6366f1);text-decoration:none;margin-top:auto;transition:color .2s ease}.stat-link:hover{color:var(--accent-secondary, #8b5cf6)}.stat-badge{position:absolute;top:16px;right:16px;padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.stat-badge.live{background:#22c55e33;color:#22c55e;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.secondary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px;padding:20px;background:var(--bg-secondary, #12121a);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:12px}.secondary-stat{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.secondary-label{font-size:.85rem;color:var(--text-muted, #888)}.secondary-value{font-size:1.5rem;font-weight:600;color:var(--text-primary, #ffffff)}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.dashboard-card{background:var(--bg-secondary, #12121a);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:12px;padding:24px}.dashboard-card.wide{grid-column:span 2}.dashboard-card h2{font-size:1.1rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 20px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-header h2{margin:0}.view-all-link{font-size:.9rem;color:var(--accent-primary, #6366f1);text-decoration:none}.view-all-link:hover{text-decoration:underline}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.action-btn{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--bg-glass-light, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #ffffff);text-decoration:none;font-size:.9rem;transition:all .2s ease}.action-btn:hover{background:var(--bg-glass-dark, rgba(255, 255, 255, .08));border-color:var(--accent-primary, #6366f1)}.action-btn.primary{background:linear-gradient(135deg,var(--accent-primary, #6366f1) 0%,var(--accent-secondary, #8b5cf6) 100%);border-color:transparent}.action-btn.primary:hover{opacity:.9;transform:translateY(-1px)}.action-icon{font-size:1.25rem}.activity-list{display:flex;flex-direction:column;gap:12px}.activity-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--bg-glass-light, rgba(255, 255, 255, .02));border-radius:8px}.activity-icon{font-size:1.25rem;flex-shrink:0}.activity-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.activity-message{font-size:.9rem;color:var(--text-primary, #ffffff)}.activity-time{font-size:.8rem;color:var(--text-muted, #888)}.system-status{display:flex;flex-direction:column;gap:12px}.status-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-glass-light, rgba(255, 255, 255, .02));border-radius:8px}.status-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-item.healthy .status-indicator{background:#22c55e;box-shadow:0 0 8px #22c55e80}.status-item.warning .status-indicator{background:#f59e0b;box-shadow:0 0 8px #f59e0b80}.status-item.error .status-indicator{background:#ef4444;box-shadow:0 0 8px #ef444480}.status-label{flex:1;font-size:.9rem;color:var(--text-primary, #ffffff)}.status-value{font-size:.85rem;color:var(--text-muted, #888)}.maps-preview{text-align:center;padding:20px}.empty-state{color:var(--text-muted, #888);margin-bottom:16px}.create-map-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,var(--accent-primary, #6366f1) 0%,var(--accent-secondary, #8b5cf6) 100%);border-radius:8px;color:#fff;text-decoration:none;font-weight:500;transition:all .2s ease}.create-map-btn:hover{opacity:.9;transform:translateY(-1px)}@media(max-width:1200px){.stats-grid,.secondary-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.welcome-banner{flex-direction:column;gap:16px;padding:20px;text-align:center}.welcome-content h2{font-size:1.25rem}.welcome-badges{justify-content:center}.session-info{align-items:center}.stats-grid{grid-template-columns:1fr}.secondary-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.dashboard-card.wide{grid-column:span 1}.quick-actions{grid-template-columns:1fr}}.analytics-page{max-width:1400px;margin:0 auto}.analytics-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-muted, #888)}.analytics-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;flex-wrap:wrap;gap:16px}.header-title h1{font-size:2rem;font-weight:700;color:var(--text-primary, #ffffff);margin:0 0 8px}.header-subtitle{color:var(--text-muted, #888);font-size:1rem;margin:0}.header-controls{display:flex;gap:12px}.date-range-select{padding:10px 16px;background:var(--bg-secondary, #12121a);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #ffffff);font-size:.9rem;cursor:pointer}.date-range-select:focus{outline:none;border-color:var(--accent-primary, #6366f1)}.refresh-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-glass-light, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #ffffff);font-size:.9rem;cursor:pointer;transition:all .2s ease}.refresh-btn:hover{background:var(--bg-glass-dark, rgba(255, 255, 255, .1));border-color:var(--accent-primary, #6366f1)}.overview-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:32px}.overview-stats .stat-card{background:var(--bg-secondary, #12121a);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;transition:all .2s ease}.overview-stats .stat-card:hover{border-color:var(--accent-primary, #6366f1)}.overview-stats .stat-card.highlight{background:linear-gradient(135deg,#22c55e1a,#22c55e0d);border-color:#22c55e4d}.overview-stats .stat-icon{font-size:1.5rem}.overview-stats .stat-info{display:flex;flex-direction:column;gap:4px}.overview-stats .stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary, #ffffff)}.overview-stats .stat-label{font-size:.8rem;color:var(--text-muted, #888)}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.chart-card{background:var(--bg-secondary, #12121a);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:12px;padding:24px}.chart-card.wide{grid-column:span 2}.chart-card h2{font-size:1rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 20px}.empty-chart{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--text-muted, #888);font-size:.9rem}.timeline-chart{height:200px}.bar-chart{display:flex;align-items:flex-end;justify-content:space-between;height:100%;gap:4px;padding-bottom:30px}.bar-group{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;max-width:40px}.bar{flex:1;width:100%;background:linear-gradient(180deg,var(--accent-primary, #6366f1) 0%,var(--accent-secondary, #8b5cf6) 100%);border-radius:4px 4px 0 0;min-height:4px;display:flex;align-items:flex-start;justify-content:center;position:relative}.bar-value{position:absolute;top:-20px;font-size:.7rem;color:var(--text-muted, #888)}.bar-label{font-size:.7rem;color:var(--text-muted, #888);margin-top:8px;white-space:nowrap}.ranking-list{display:flex;flex-direction:column;gap:12px}.ranking-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-glass-light, rgba(255, 255, 255, .02));border-radius:8px;position:relative;overflow:hidden}.ranking-bar{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(99,102,241,.1) 0%,transparent 100%);z-index:0}.rank{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary, #12121a);border-radius:50%;font-size:.8rem;font-weight:600;color:var(--text-muted, #888);z-index:1}.ranking-info{flex:1;display:flex;flex-direction:column;gap:2px;z-index:1}.ranking-name{font-size:.9rem;color:var(--text-primary, #ffffff)}.ranking-type{font-size:.75rem;color:var(--text-muted, #888)}.ranking-count{font-size:.9rem;font-weight:600;color:var(--accent-primary, #6366f1);z-index:1}.device-stats{display:flex;flex-direction:column;gap:16px}.device-chart{display:flex;flex-direction:column;gap:12px}.device-bar{display:flex;align-items:center;gap:12px}.device-label{display:flex;align-items:center;gap:8px;width:100px;font-size:.9rem;color:var(--text-primary, #ffffff)}.device-icon{font-size:1.2rem}.device-progress{flex:1;height:8px;background:var(--bg-glass-light, rgba(255, 255, 255, .05));border-radius:4px;overflow:hidden}.device-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary, #6366f1) 0%,var(--accent-secondary, #8b5cf6) 100%);border-radius:4px;transition:width .3s ease}.device-percent{width:50px;text-align:right;font-size:.9rem;font-weight:600;color:var(--text-primary, #ffffff)}.pwa-stat{display:flex;justify-content:space-between;padding:12px;background:var(--bg-glass-light, rgba(255, 255, 255, .02));border-radius:8px;font-size:.9rem;color:var(--text-muted, #888)}.pwa-value{font-weight:600;color:var(--accent-primary, #6366f1)}.funnel-chart{display:flex;flex-direction:column;gap:12px}.funnel-step{display:flex;justify-content:center}.funnel-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(90deg,var(--accent-primary, #6366f1) 0%,var(--accent-secondary, #8b5cf6) 100%);border-radius:8px;color:#fff;font-size:.9rem;min-width:50%;transition:width .3s ease}.funnel-step:nth-child(2) .funnel-bar{background:linear-gradient(90deg,#22c55e,#16a34a)}.funnel-step:nth-child(3) .funnel-bar{background:linear-gradient(90deg,#f59e0b,#d97706)}.funnel-summary{text-align:center;padding-top:12px;color:var(--text-muted, #888);font-size:.9rem}.funnel-summary strong{color:var(--accent-primary, #6366f1)}.hourly-chart{display:flex;flex-direction:column;gap:8px}.hourly-bars{display:flex;align-items:flex-end;height:120px;gap:2px}.hourly-bar{flex:1;background:linear-gradient(180deg,var(--accent-primary, #6366f1) 0%,var(--accent-secondary, #8b5cf6) 100%);border-radius:2px 2px 0 0;min-height:4px;transition:all .2s ease}.hourly-bar:hover{opacity:.8}.hourly-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-muted, #888)}.routes-table{overflow-x:auto}.routes-table table{width:100%;border-collapse:collapse}.routes-table th,.routes-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.routes-table th{font-size:.8rem;font-weight:600;color:var(--text-muted, #888);text-transform:uppercase}.routes-table td{font-size:.9rem;color:var(--text-primary, #ffffff)}.routes-table .rank-cell{width:40px;color:var(--text-muted, #888)}.routes-table .count-cell{font-weight:600;color:var(--accent-primary, #6366f1)}.routes-table tr:hover td{background:var(--bg-glass-light, rgba(255, 255, 255, .02))}@media(max-width:1200px){.overview-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.overview-stats{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}.chart-card.wide{grid-column:span 1}.analytics-header{flex-direction:column}.header-controls{width:100%}.date-range-select,.refresh-btn{flex:1}}.admin-maps{max-width:1400px;margin:0 auto}.admin-maps-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-muted, #888)}.maps-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.maps-header h1{font-size:2rem;font-weight:700;color:var(--text-primary, #ffffff);margin:0 0 8px}.maps-subtitle{color:var(--text-muted, #888);font-size:1rem;margin:0}.create-map-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.create-map-btn:hover{transform:translateY(-2px);box-shadow:0 4px 20px #6366f166}.maps-error{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;margin-bottom:24px;color:#ef4444}.maps-error button{padding:6px 12px;background:#ef444433;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;cursor:pointer}.maps-filters{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:12px}.maps-search{flex:1;display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-secondary, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px}.maps-search .search-icon{opacity:.5}.maps-search input{flex:1;background:none;border:none;color:var(--text-primary, #ffffff);font-size:.95rem;outline:none}.maps-search input::placeholder{color:var(--text-muted, #888)}.hospital-filter{display:flex;align-items:center;gap:8px}.hospital-filter select{padding:10px 16px;background:var(--bg-secondary, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #ffffff);font-size:.95rem;cursor:pointer}.hospital-filter select:focus{outline:none;border-color:var(--accent-primary, #6366f1)}.hospital-filter select option{background:#1a1a2e;color:#fff}.sync-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #ffffff);font-size:18px;cursor:pointer;transition:all .3s ease}.sync-btn:hover:not(:disabled){background:#6366f133;border-color:var(--accent-primary, #6366f1);transform:rotate(180deg)}.sync-btn:disabled{opacity:.6;cursor:not-allowed}.maps-count{color:var(--text-muted, #888);font-size:.9rem;white-space:nowrap}.maps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.maps-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center}.maps-empty .empty-icon{font-size:64px;margin-bottom:16px}.maps-empty h3{font-size:1.5rem;color:var(--text-primary, #ffffff);margin:0 0 8px}.maps-empty p{color:var(--text-muted, #888);margin:0 0 24px}.map-card{position:relative;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:16px;padding:24px;transition:all .2s ease}.map-card:hover{border-color:var(--accent-primary, #6366f1);transform:translateY(-4px);box-shadow:0 8px 30px #0000004d}.map-card.active{border-color:#10b98180;background:linear-gradient(135deg,#10b9811a,#0596690d)}.active-badge{position:absolute;top:12px;right:12px;padding:4px 10px;background:linear-gradient(135deg,#10b981,#059669);border-radius:20px;font-size:.7rem;font-weight:600;color:#fff}.map-card-header{margin-bottom:16px}.map-card-header h3{font-size:1.2rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 8px}.hospital-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#6366f126;border-radius:20px;font-size:.75rem;color:var(--text-muted, #a0a0a0)}.map-card-stats{display:flex;gap:16px;padding:16px;background:var(--bg-secondary, rgba(255, 255, 255, .03));border-radius:12px;margin-bottom:16px}.stat{flex:1;text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--text-primary, #ffffff)}.stat-label{font-size:.75rem;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.5px}.map-card-meta{font-size:.8rem;color:var(--text-muted, #888);margin-bottom:16px}.map-card-actions{display:flex;gap:8px}.action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:10px;background:var(--bg-secondary, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #ffffff);font-size:.85rem;text-decoration:none;cursor:pointer;transition:all .2s ease}.action-btn:hover{background:var(--bg-hover, rgba(255, 255, 255, .1))}.action-btn.edit:hover{border-color:#6366f1;color:#6366f1}.action-btn.view:hover{border-color:#10b981;color:#10b981}.action-btn.activate:hover{border-color:#f59e0b;color:#f59e0b}.action-btn.delete:hover{border-color:#ef4444;color:#ef4444}.action-btn:disabled{opacity:.5;cursor:not-allowed}.map-card-loading{position:absolute;inset:0;background:#00000080;border-radius:16px;display:flex;align-items:center;justify-content:center}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-primary, #1a1a2e);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:20px;padding:32px;width:100%;max-width:480px;margin:16px}.modal h2{font-size:1.5rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 24px}.modal-form{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-primary, #ffffff)}.form-group input,.form-group select{padding:12px 16px;background:var(--bg-secondary, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:10px;color:var(--text-primary, #ffffff);font-size:1rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary, #6366f1)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.form-group select option{background:#1a1a2e;color:#fff}.form-hint{font-size:.8rem;color:var(--text-muted, #888);margin:0}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-secondary,.btn-primary{padding:12px 24px;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary{background:transparent;border:1px solid var(--border-primary, rgba(255, 255, 255, .2));color:var(--text-primary, #ffffff)}.btn-secondary:hover{background:var(--bg-hover, rgba(255, 255, 255, .1))}.btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 20px #6366f166}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}@media(max-width:768px){.maps-header{flex-direction:column;gap:16px}.maps-filters{flex-direction:column;align-items:stretch}.hospital-filter{width:100%}.hospital-filter select{flex:1}.maps-grid{grid-template-columns:1fr}.map-card-actions{flex-wrap:wrap}.action-btn{min-width:calc(50% - 4px)}}.admin-hospitals{max-width:1200px;margin:0 auto}.hospitals-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-muted, #888)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-primary, rgba(255, 255, 255, .1));border-top-color:var(--accent-primary, #6366f1);border-radius:50%;animation:spin 1s linear infinite}.hospitals-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.hospitals-header h1{font-size:2rem;font-weight:700;color:var(--text-primary, #ffffff);margin:0 0 8px}.hospitals-subtitle{color:var(--text-muted, #888);font-size:1rem;margin:0}.sync-hospitals-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.sync-hospitals-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 20px #10b98166}.sync-hospitals-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.hospitals-info{display:flex;gap:16px;padding:20px 24px;background:linear-gradient(135deg,#6366f11a,#8b5cf60d);border:1px solid rgba(99,102,241,.3);border-radius:16px;margin-bottom:24px}.hospitals-info .info-icon{font-size:24px;flex-shrink:0}.hospitals-info .info-content{flex:1}.hospitals-info .info-content strong{display:block;color:var(--text-primary, #ffffff);margin-bottom:8px}.hospitals-info .info-content p{color:var(--text-muted, #888);font-size:.9rem;margin:0 0 8px;line-height:1.5}.hospitals-info .last-sync{font-size:.8rem;color:#10b981}.hospitals-error{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;margin-bottom:24px;color:#ef4444}.hospitals-error button{padding:6px 12px;background:#ef444433;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;cursor:pointer}.hospitals-search{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:12px;margin-bottom:24px}.hospitals-search .search-icon{opacity:.5}.hospitals-search input{flex:1;background:none;border:none;color:var(--text-primary, #ffffff);font-size:1rem;outline:none}.hospitals-search input::placeholder{color:var(--text-muted, #888)}.hospitals-count{color:var(--text-muted, #888);font-size:.9rem;white-space:nowrap}.hospitals-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center}.hospitals-empty .empty-icon{font-size:64px;margin-bottom:16px}.hospitals-empty h3{font-size:1.5rem;color:var(--text-primary, #ffffff);margin:0 0 8px}.hospitals-empty p{color:var(--text-muted, #888);margin:0 0 24px}.hospitals-grid{display:flex;flex-direction:column;gap:16px}.hospital-card{display:flex;align-items:center;gap:20px;padding:24px;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:16px;transition:all .2s ease}.hospital-card:hover{border-color:var(--accent-primary, #6366f1);transform:translate(4px)}.hospital-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#00b4d833,#06b6d41a);border-radius:16px;font-size:28px;flex-shrink:0}.hospital-info{flex:1;min-width:0}.hospital-info h3{font-size:1.2rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 8px}.hospital-meta{display:flex;align-items:center;gap:12px;margin-bottom:8px}.status-badge{padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge.active{background:#10b98133;color:#10b981}.status-badge.inactive{background:#ef444433;color:#ef4444}.hospital-address{font-size:.85rem;color:var(--text-muted, #888)}.hospital-dates{display:flex;gap:16px;font-size:.8rem;color:var(--text-muted, #666)}.hospital-id{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.hospital-id .id-label{font-size:.7rem;color:var(--text-muted, #666);text-transform:uppercase;letter-spacing:.5px}.hospital-id code{font-family:Monaco,Consolas,monospace;font-size:.8rem;padding:4px 8px;background:var(--bg-secondary, rgba(255, 255, 255, .05));border-radius:6px;color:var(--text-muted, #888)}.hospitals-notice{margin-top:24px;padding:16px 20px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:12px}.hospitals-notice p{margin:0;color:#f59e0b;font-size:.9rem}@media(max-width:768px){.hospitals-header{flex-direction:column;gap:16px}.hospital-card{flex-direction:column;text-align:center}.hospital-meta,.hospital-dates{justify-content:center;flex-wrap:wrap}.hospital-id{align-items:center}}.admin-settings{max-width:900px;margin:0 auto}.settings-header{margin-bottom:32px}.settings-header h1{font-size:2rem;font-weight:700;color:var(--text-primary, #ffffff);margin:0 0 8px}.settings-subtitle{color:var(--text-muted, #888);font-size:1rem;margin:0}.settings-tabs{display:flex;gap:8px;margin-bottom:32px;padding:8px;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:16px}.settings-tabs .tab{flex:1;padding:12px 20px;background:transparent;border:none;border-radius:12px;color:var(--text-muted, #888);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.settings-tabs .tab:hover{color:var(--text-primary, #ffffff);background:var(--bg-hover, rgba(255, 255, 255, .05))}.settings-tabs .tab.active{color:var(--text-primary, #ffffff);background:linear-gradient(135deg,#6366f133,#8b5cf61a);border:1px solid rgba(99,102,241,.3)}.settings-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 8px}.section-description{color:var(--text-muted, #888);font-size:.95rem;margin:0 0 24px}.profile-card{display:flex;gap:24px;padding:24px;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:16px;margin-bottom:24px}.profile-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:600;color:#fff;overflow:hidden;flex-shrink:0}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-details{flex:1;display:flex;flex-direction:column;gap:16px}.profile-field{display:flex;flex-direction:column;gap:4px}.profile-field label{font-size:.8rem;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.5px}.profile-field span,.profile-field code{font-size:1rem;color:var(--text-primary, #ffffff)}.profile-field code{font-family:Monaco,Consolas,monospace;font-size:.85rem;padding:4px 8px;background:var(--bg-secondary, rgba(255, 255, 255, .05));border-radius:6px;width:fit-content}.roles-card{padding:24px;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:16px}.roles-card h3{font-size:1.1rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 16px}.roles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.role-item{display:flex;flex-direction:column;gap:6px}.role-item label{font-size:.8rem;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.5px}.role-item span{font-size:.95rem;color:var(--text-primary, #ffffff)}.role-badge{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:500;width:fit-content}.role-badge.super_admin{background:linear-gradient(135deg,#6a11cb4d,#8b5cf633);border:1px solid rgba(139,92,246,.4);color:#c4b5fd}.role-badge.champion{background:linear-gradient(135deg,#2575fc4d,#3b82f633);border:1px solid rgba(59,130,246,.4);color:#93c5fd}.access-badge{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:500;width:fit-content}.access-badge.admin{background:#f59e0b33;border:1px solid rgba(245,158,11,.4);color:#fbbf24}.access-badge.editor{background:#06b6d433;border:1px solid rgba(6,182,212,.4);color:#22d3ee}.access-badge.viewer{background:#6b728033;border:1px solid rgba(107,114,128,.4);color:#9ca3af}.session-card{padding:24px;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:16px}.session-status{display:flex;align-items:center;gap:12px;margin-bottom:24px}.status-indicator{width:12px;height:12px;border-radius:50%}.status-indicator.active{background:#10b981;box-shadow:0 0 10px #10b98180}.status-indicator.warning{background:#f59e0b;box-shadow:0 0 10px #f59e0b80;animation:pulse 2s infinite}.status-indicator.error{background:#ef4444;box-shadow:0 0 10px #ef444480}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.session-status span{font-size:1.1rem;font-weight:500;color:var(--text-primary, #ffffff)}.session-details{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.session-field{display:flex;flex-direction:column;gap:6px}.session-field label{font-size:.8rem;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.5px}.session-field span{font-size:.95rem;color:var(--text-primary, #ffffff)}.session-field span.warning{color:#f59e0b;font-weight:600}.session-warning{padding:12px 16px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:10px;color:#f59e0b;font-size:.9rem;margin-bottom:24px}.sign-out-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;background:linear-gradient(135deg,#ef444433,#dc26261a);border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#ef4444;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.sign-out-btn:hover{background:linear-gradient(135deg,#ef44444d,#dc262633);border-color:#ef444480}.system-card{padding:24px;background:var(--bg-glass, rgba(255, 255, 255, .03));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:16px;margin-bottom:16px}.system-card h3{font-size:1.1rem;font-weight:600;color:var(--text-primary, #ffffff);margin:0 0 16px}.system-status{display:flex;align-items:center;gap:12px}.system-status span{font-size:1rem;color:var(--text-primary, #ffffff)}.status-time{font-size:.8rem;color:var(--text-muted, #888);margin:8px 0 0}.env-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.env-item{display:flex;flex-direction:column;gap:6px}.env-item label{font-size:.8rem;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.5px}.env-item code{font-family:Monaco,Consolas,monospace;font-size:.85rem;padding:6px 10px;background:var(--bg-secondary, rgba(255, 255, 255, .05));border-radius:6px;color:var(--text-primary, #ffffff);word-break:break-all}.mode-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:500;width:fit-content}.mode-badge.dev{background:#f59e0b33;border:1px solid rgba(245,158,11,.4);color:#fbbf24}.mode-badge.prod{background:#10b98133;border:1px solid rgba(16,185,129,.4);color:#10b981}.version-info{display:flex;align-items:baseline;gap:12px}.version-number{font-size:1.5rem;font-weight:700;color:var(--text-primary, #ffffff)}.version-label{font-size:.9rem;color:var(--text-muted, #888)}@media(max-width:768px){.settings-tabs{flex-direction:column}.profile-card{flex-direction:column;align-items:center;text-align:center}.profile-details{align-items:center}.roles-grid,.session-details,.env-grid{grid-template-columns:1fr}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{width:100vw;height:100vh;position:relative;background:var(--bg-primary);transition:background-color .3s ease}.canvas-container{width:100%;height:100%;position:absolute;top:0;left:0}.app-title{position:fixed;bottom:20px;right:20px;text-align:right;pointer-events:none;z-index:100}.app-title h1{font-size:24px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px;margin-bottom:4px;text-shadow:var(--shadow-sm);transition:color .3s ease}.app-title p{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:2px;transition:color .3s ease}.app-title.dimmed{opacity:.3;transition:opacity .3s ease}.loading{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--accent-primary);font-size:18px;display:flex;flex-direction:column;align-items:center;gap:16px;transition:color .3s ease}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-secondary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;transition:border-color .3s ease}@keyframes spin{to{transform:rotate(360deg)}}.tooltip{position:fixed;background:#14192df2;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 16px;color:#fff;font-size:14px;pointer-events:none;z-index:1000;box-shadow:0 4px 20px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(max-width:768px){.app-title{bottom:10px;right:10px}.app-title h1{font-size:18px}.app-title p{font-size:10px}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}::selection{background:#00b4ff4d;color:#fff}.editor-toggle-btn{position:fixed;top:20px;right:20px;padding:10px 16px;background:linear-gradient(135deg,#643296e6,#963264e6);border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;z-index:500;transition:all .2s ease;display:flex;align-items:center;gap:6px;box-shadow:0 4px 15px #0000004d}.editor-toggle-btn:hover{transform:scale(1.05);box-shadow:0 6px 20px #64329666}@media(max-width:768px){.editor-toggle-btn{top:auto;bottom:80px;right:10px;padding:8px 12px;font-size:12px}}
