@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Press+Start+2P&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--floor: #2a2520;--floor-line: rgba(255,255,255,.04);--wall: #1a1510;--wall-border: #4a3a28;--desk-wood: #5c3d1e;--desk-wood-light: #7a5230;--carpet: #252018;--glow-warm: rgba(255,180,60,.06);--glow-monitor: rgba(40,120,255,.15)}.app-wrapper{width:1056px;height:682px;background:#0a0a0f;display:flex;flex-direction:column;overflow:hidden;font-family:JetBrains Mono,monospace;user-select:none;border:1px solid #35363a;border-radius:10px;box-shadow:0 8px 32px #0009,0 0 0 1px #ffffff0d;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.app-body{flex:1;display:flex;flex-direction:row;min-height:0}.title-bar{height:28px;background:#151210;display:flex;align-items:center;padding:0 10px;-webkit-app-region:drag;border-bottom:1px solid #2a2520;flex-shrink:0;gap:6px}.title-bar-dot{width:10px;height:10px;border-radius:50%;-webkit-app-region:no-drag;cursor:pointer}.title-bar-text{flex:1;text-align:center;font-size:9px;color:#5a4a38;letter-spacing:3px;text-transform:uppercase;font-family:JetBrains Mono,monospace}.title-bar-daynight{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:3px;cursor:pointer;font-size:7px;font-family:JetBrains Mono,monospace;color:#5a4a38;letter-spacing:1px;padding:2px 6px;-webkit-app-region:no-drag;transition:all .2s}.title-bar-daynight:hover{background:#ffffff1a;color:#8a7a58}.title-bar-phase{font-size:8px;color:#5a4a38;letter-spacing:1px;text-transform:uppercase;font-family:JetBrains Mono,monospace;padding:2px 6px;background:#ffffff08;border-radius:3px}.office-view{flex:1;display:flex;align-items:center;justify-content:center;background:#0a0a0f;overflow:hidden;min-height:0;min-width:0}.office-container{position:relative;width:500px;height:500px;background:var(--floor);overflow:hidden;flex-shrink:0}.office-floor{position:absolute;inset:0;background-image:url(/office-bg.png);background-size:cover;background-position:center;image-rendering:pixelated}.wall,.manager-zone,.office-divider,.zone-label,.coffee-area,.water-cooler,.plant,.desk-wrapper{display:none}.manager-zone{position:absolute;top:12px;left:50%;transform:translate(-50%);width:160px;padding:6px 8px 8px;background:#14120ee6;border:1px solid #3a3020;border-top:none;border-radius:0 0 4px 4px;z-index:5}.manager-zone:before{content:"";position:absolute;bottom:0;left:8px;right:8px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,180,60,.2),transparent)}.manager-label{font-size:5px;font-family:JetBrains Mono,monospace;color:#8a7a55;letter-spacing:2px;text-align:center;margin-bottom:4px}.manager-desk-surface{width:100px;height:24px;margin:0 auto;background:linear-gradient(135deg,var(--desk-wood),var(--desk-wood-light));border:1px solid #9a7040;border-radius:2px;position:relative}.manager-figure{position:relative;width:20px;margin:0 auto 3px}.manager-monitor{width:22px;height:14px;background:#0a0a14;border:1px solid #333;border-radius:1px;margin:0 auto 1px;position:relative;overflow:hidden}.manager-monitor:after{content:"";position:absolute;inset:2px;background:#001830;animation:monFlicker 4s infinite}.office-divider{position:absolute;top:120px;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,180,60,.12),transparent);z-index:3}.desk-wrapper{position:absolute;transform:translate(-50%,-50%);z-index:4}.desk-surface{width:52px;height:28px;background:linear-gradient(135deg,var(--desk-wood),var(--desk-wood-light));border:1px solid #8a6030;border-radius:2px;position:relative;box-shadow:0 2px 4px #00000080}.desk-surface.occupied{border-color:#aa8040}.desk-monitor{position:absolute;top:-14px;left:50%;transform:translate(-50%);width:20px;height:13px;background:#0a0a12;border:1px solid #2a2a3a;border-radius:1px;overflow:hidden}.desk-monitor-screen{position:absolute;inset:1px;background:#080810}.desk-monitor-screen.active{background:#001428;animation:monFlicker 3s infinite;box-shadow:0 0 6px var(--glow-monitor)}.desk-monitor-screen.active:after{content:"";position:absolute;top:1px;left:1px;right:1px;height:1px;background:#00c86499;box-shadow:0 3px #00c8644d,0 6px #00c86426;animation:codeScroll 1s linear infinite}.desk-active-light{position:absolute;top:-13px;right:12px;width:3px;height:3px;border-radius:50%;background:#0f8;box-shadow:0 0 4px #0f8;animation:lightPulse 2s infinite}.desk-monitor-stand{width:6px;height:2px;background:#2a2a3a;margin:0 auto}.desk-chair{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#3a2a1a,#1e1510);border:1px solid #4a3a25}.desk-nameplate{position:absolute;bottom:1px;left:50%;transform:translate(-50%);font-size:5px;font-family:JetBrains Mono,monospace;color:#7a6a40;white-space:nowrap;text-transform:uppercase}.character-wrapper{position:absolute;z-index:10;transition:left 1.2s cubic-bezier(.4,0,.2,1),top 1.2s cubic-bezier(.4,0,.2,1);pointer-events:none}.char-body-group{position:relative}.char-sprite{image-rendering:pixelated;display:block}.char-nametag{position:absolute;bottom:98px;left:50%;transform:translate(-50%);z-index:20;padding:1px 6px;font-size:10px;font-weight:700;line-height:1.3;color:#f5f5f5;background:#12141ad9;border:1px solid #888;border-radius:6px;white-space:nowrap;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.9);box-shadow:0 1px 3px #00000080}.char-shadow{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:24px;height:6px;background:#00000059;border-radius:50%;z-index:9}.character-wrapper.state-idle .char-sprite{animation:idleBob 3s ease-in-out infinite}.character-wrapper.state-working .char-sprite{animation:workShake 1.5s ease-in-out infinite}.character-wrapper.state-walking .char-sprite{animation:walkSway .6s ease-in-out infinite}.character-wrapper.state-talking .char-sprite{animation:talkBob .6s ease-in-out infinite alternate}.character-wrapper.state-coffee .char-sprite{animation:idleBob 3.5s ease-in-out infinite}.character-wrapper.state-new-hire{filter:drop-shadow(0 0 6px #ffd700);animation:hireGlow .8s ease-in-out infinite alternate}@keyframes idleBob{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes workShake{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}@keyframes walkSway{0%,to{transform:translateY(0) rotate(-1.5deg)}25%{transform:translateY(-2px) rotate(0)}50%{transform:translateY(0) rotate(1.5deg)}75%{transform:translateY(-2px) rotate(0)}}@keyframes talkBob{0%{transform:translateY(0)}to{transform:translateY(-1px)}}@keyframes hireGlow{0%{filter:drop-shadow(0 0 3px #ffd700)}to{filter:drop-shadow(0 0 8px #ffd700)}}.speech-bubble{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%) scale(1);background:#1a1a10;border:1px solid #4a4a30;border-radius:4px;padding:3px 6px;max-width:200px;font-size:9px;font-family:JetBrains Mono,monospace;line-height:1.3;color:#eee;text-align:center;white-space:nowrap;z-index:30;pointer-events:none;animation:bubblePop .2s cubic-bezier(.34,1.56,.64,1) forwards;box-shadow:0 2px 6px #0009}.speech-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#1a1a10}.speech-bubble:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#4a4a30;margin-top:1px}.speech-bubble.manager-bubble{background:#1a1520;border-color:#5a4a80;color:#c8b8ff}.speech-bubble.manager-bubble:after{border-top-color:#1a1520}.speech-bubble.manager-bubble:before{border-top-color:#5a4a80}@keyframes bubblePop{0%{transform:translate(-50%) scale(0);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.coffee-area{position:absolute;bottom:16px;left:16px;z-index:4}.coffee-machine{width:28px;height:22px;background:linear-gradient(180deg,#2a2520,#1a1510);border:1px solid #4a3a28;border-radius:2px;position:relative}.coffee-light{position:absolute;top:3px;right:4px;width:4px;height:4px;border-radius:50%;background:#ff6b35;box-shadow:0 0 4px #ff6b35;animation:lightPulse 1.5s infinite}.coffee-counter{width:36px;height:8px;background:linear-gradient(90deg,var(--desk-wood),var(--desk-wood-light));border:1px solid #6a5030;border-top:none}.coffee-label{font-size:4px;font-family:JetBrains Mono,monospace;color:#5a4a30;text-align:center;margin-top:2px}.water-cooler{position:absolute;top:140px;right:18px;z-index:4}.water-jug{width:12px;height:10px;background:#50a0ff33;border:1px solid rgba(80,160,255,.4);border-radius:2px 2px 0 0;margin:0 auto}.water-body{width:14px;height:12px;background:#1a2530;border:1px solid #2a4050;border-radius:0 0 2px 2px}.plant{position:absolute;z-index:4;text-align:center}.plant-pot{width:10px;height:7px;background:linear-gradient(180deg,#6b3510,#4a2508);border:1px solid #7a4520;border-radius:0 0 2px 2px;margin:0 auto}.plant-leaves{font-size:10px;line-height:1;display:block;animation:plantSway 5s ease-in-out infinite;transform-origin:bottom center}@keyframes plantSway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.event-ticker{height:68px;background:#0a0c08;border-top:1px solid #1a2a1a;flex-shrink:0;overflow:hidden;position:relative}.ticker-header{display:flex;align-items:center;gap:4px;padding:2px 8px;background:#0d100d;border-bottom:1px solid #1a2a1a}.ticker-dot{width:5px;height:5px;border-radius:50%}.ticker-title{font-size:5px;font-family:JetBrains Mono,monospace;color:#3a5a3a;letter-spacing:1px}.ticker-body{padding:3px 8px;height:calc(100% - 18px);overflow-y:auto;display:flex;flex-direction:column;gap:1px;scrollbar-width:none}.ticker-body::-webkit-scrollbar{display:none}.ticker-line{font-size:8px;color:#3fb950;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 6px rgba(60,200,80,.3);animation:lineIn .15s ease-out}.ticker-line.dim{color:#2a5a30;text-shadow:none}.ticker-line.bright{color:#7ee787;text-shadow:0 0 8px rgba(120,230,130,.5)}.ticker-cursor{font-size:8px;color:#3fb950;animation:blink 1s step-end infinite;text-shadow:0 0 6px rgba(60,200,80,.4)}@keyframes monFlicker{0%,96%,to{opacity:1}97%{opacity:.6}98%{opacity:1}99%{opacity:.8}}@keyframes lightPulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes codeScroll{0%{transform:translateY(0)}to{transform:translateY(-10px)}}@keyframes lineIn{0%{opacity:0;transform:translate(-3px)}to{opacity:1;transform:translate(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.slack-panel{width:300px;min-width:300px;background:#1a1d21;border-left:1px solid #35363a;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}.slack-header{display:flex;align-items:center;padding:8px 12px;background:#1a1d21;border-bottom:1px solid #35363a;gap:6px}.slack-channel-icon{font-size:13px;font-weight:700;color:#b5bac1;width:16px;text-align:center}.slack-channel-name{font-size:12px;font-weight:900;color:#e8e8e8;letter-spacing:0;white-space:nowrap}.slack-header-right{margin-left:auto;display:flex;align-items:center;gap:5px;flex-wrap:nowrap;min-width:0}.slack-online-dot{width:6px;height:6px;border-radius:50%;background:#2bac76;box-shadow:0 0 3px #2bac76}.slack-online-count{font-size:10px;color:#8b8d91}.slack-body{flex:1;overflow-y:auto;padding:4px 12px;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:#35363a transparent}.slack-body::-webkit-scrollbar{width:4px}.slack-body::-webkit-scrollbar-thumb{background:#35363a;border-radius:2px}.slack-msg{display:flex;gap:8px;padding:3px 6px;border-radius:4px;animation:slackMsgIn .18s ease-out both;transition:background .1s}.slack-msg:hover{background:#ffffff08}.slack-msg-system{display:flex;justify-content:center;padding:4px 12px;margin:2px 0}.slack-msg-system .slack-msg-content{flex:none}.slack-msg-system .slack-system-text{display:inline-block;background:#8b8d911a;border:1px solid rgba(139,141,145,.18);border-radius:10px;padding:3px 12px;font-size:10px;color:#7a7c80;font-style:italic;text-align:center;letter-spacing:.2px}.slack-msg-proactive{animation:slackMsgProactive .28s cubic-bezier(.22,1,.36,1) both}@keyframes slackMsgProactive{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.slack-avatar{width:32px;height:32px;border-radius:6px;overflow:hidden;flex-shrink:0;position:relative;background:#2c2d31;margin-top:2px}.slack-avatar-img{width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0;z-index:1;object-fit:cover;object-position:top center}.slack-avatar-fallback{width:100%;height:100%;border-radius:5px}.slack-msg-content{flex:1;min-width:0}.slack-msg-header{display:flex;align-items:baseline;gap:5px;margin-bottom:1px}.slack-sender{font-size:12px;font-weight:700;letter-spacing:.1px}.slack-time{font-size:9px;color:#4e5157;letter-spacing:.2px}.slack-msg-text{font-size:12px;color:#cfd0d1;line-height:1.55;word-wrap:break-word;overflow-wrap:break-word;white-space:normal}.slack-system-text{font-size:10px;color:#7a7c80;font-style:italic}.slack-input-wrap{position:relative;margin:0 12px 8px}.slack-input-bar{display:flex;align-items:center;padding:7px 12px;background:#222529;border:1px solid #3c3d41;border-radius:8px;transition:border-color .15s}.slack-input-bar:focus-within{border-color:#4a4b50}.slack-input-field{flex:1;background:none;border:none;outline:none;color:#d1d2d3;font-size:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;caret-color:#cc785c}.slack-input-field::placeholder{color:#4e5157}.slack-slash-hint{position:absolute;bottom:calc(100% + 5px);left:0;right:0;background:#2a2d32;border:1px solid #3c3d41;border-radius:7px;padding:5px 6px;display:flex;gap:4px;flex-wrap:wrap;box-shadow:0 -4px 12px #00000059;animation:slashHintIn .12s ease-out both;z-index:10}@keyframes slashHintIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.slack-slash-cmd{font-size:10px;color:#cc785c;background:#cc785c1f;border:1px solid rgba(204,120,92,.25);border-radius:5px;padding:2px 8px;font-family:JetBrains Mono,monospace;cursor:pointer;transition:background .1s,border-color .1s}.slack-slash-cmd:hover{background:#cc785c38;border-color:#cc785c73}@keyframes slackMsgIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.slack-typing-row{animation:typingRowIn .2s ease-out both;opacity:.9}@keyframes typingRowIn{0%{opacity:0;transform:translateY(4px)}to{opacity:.9;transform:translateY(0)}}.slack-typing-label{font-size:9px;color:#5a5d63;margin-bottom:1px;letter-spacing:.2px;font-style:italic}.slack-typing-dots{display:flex;gap:3px;padding:2px 0 4px}.slack-typing-dots span{width:5px;height:5px;border-radius:50%;background:#cc785c;animation:typingBounce 1.2s infinite}.slack-typing-dots span:nth-child(2){animation-delay:.2s}.slack-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-3px);opacity:1}}.slack-seen-row{display:flex;justify-content:flex-end;align-items:center;gap:4px;padding:1px 6px 2px 0}.slack-seen-label{font-size:9px;color:#4e5157;letter-spacing:.3px}.slack-seen-avatar{width:13px;height:13px;border-radius:50%;image-rendering:pixelated;opacity:.55;border:1px solid rgba(204,120,92,.3)}.slack-reactions{display:flex;gap:3px;margin-top:3px;flex-wrap:wrap}.slack-reaction{background:#2c2d31cc;border:1px solid rgba(80,82,88,.7);border-radius:8px;padding:2px 7px;font-size:11px;cursor:default;line-height:1.4;transition:background .12s,border-color .12s,transform .1s;animation:reactionPop .22s cubic-bezier(.34,1.56,.64,1) both}.slack-reaction:hover{background:#3c3e44e6;border-color:#787a80cc;transform:scale(1.06)}@keyframes reactionPop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}.slack-emoji-picker{display:flex;gap:2px;margin-top:3px;background:#1e1f22f2;border:1px solid rgba(80,82,88,.7);border-radius:7px;padding:3px 5px;width:fit-content;animation:reactionPop .18s cubic-bezier(.34,1.56,.64,1) both}.slack-emoji-btn{background:none;border:1px solid transparent;border-radius:5px;padding:2px 4px;font-size:13px;cursor:pointer;transition:background .1s,transform .1s,border-color .1s;line-height:1}.slack-emoji-btn:hover{background:#3c3e44cc;transform:scale(1.18)}.slack-emoji-btn.active{background:#5865f240;border-color:#5865f280}.slack-phase-badge{font-size:9px;color:#8b8d91;background:#2c2d31;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.slack-cron-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-app-region:no-drag;user-select:none}.slack-cron-track{width:28px;height:14px;border-radius:7px;background:#555;position:relative;transition:background .2s}.slack-cron-toggle.active .slack-cron-track{background:#2ecc71}.slack-cron-toggle.paused .slack-cron-track{background:#555}.slack-cron-thumb{width:10px;height:10px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:left .2s}.slack-cron-toggle.active .slack-cron-thumb{left:16px}.slack-cron-label{font-size:8px;color:#8b8d91;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.slack-cron-toggle.active .slack-cron-label{color:#2ecc71}.clickable-furniture:hover img{filter:drop-shadow(0 0 3px rgba(46,204,113,.6)) drop-shadow(0 0 1px #000)!important;transition:filter .2s}.boss-interaction-effect{animation:effect-float .5s ease-out}@keyframes effect-float{0%{opacity:0;transform:translate(-50%,-80%) scale(.5)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}.slack-mute-btn{background:none;border:none;cursor:pointer;font-size:12px;padding:0 2px;-webkit-app-region:no-drag}.slack-volume-slider{width:34px;height:3px;-webkit-appearance:none;appearance:none;background:#3c3d41;border-radius:2px;outline:none;cursor:pointer;-webkit-app-region:no-drag}.slack-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:8px;height:8px;border-radius:50%;background:#2bac76;cursor:pointer}.slack-volume-slider::-moz-range-thumb{width:8px;height:8px;border-radius:50%;background:#2bac76;cursor:pointer;border:none}.day-overlay{position:absolute;inset:0;pointer-events:none;z-index:20;transition:background 8s ease}.day-overlay.dawn{background:#ffb4640f}.day-overlay.morning{background:#ffdc9605}.day-overlay.afternoon{background:transparent}.day-overlay.evening{background:#ff8c320f}.day-overlay.dusk{background:#b4501e1a}.day-overlay.night{background:#00001e2e}.office-container.flickering,.room-container.flickering{animation:powerFlicker .3s ease-in-out 3}@keyframes powerFlicker{0%,to{filter:brightness(1)}25%{filter:brightness(.2)}50%{filter:brightness(.8)}75%{filter:brightness(.3)}}.effect-bubble{position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);z-index:35;pointer-events:none;animation:effectBob 1.8s ease-in-out infinite}.effect-bubble-img{height:24px;width:auto;image-rendering:pixelated;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}@keyframes effectBob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}.zone-label{position:absolute;font-size:4px;font-family:JetBrains Mono,monospace;color:#ffffff14;letter-spacing:2px;text-transform:uppercase;pointer-events:none;z-index:3}.zone-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:200;cursor:pointer;background:#0a0c12d1;color:#00e5ff;border:1px solid rgba(0,229,255,.7);border-radius:12px;padding:14px 18px;font-weight:700;font-size:15px;letter-spacing:.5px;box-shadow:0 0 16px #00e5ff59;backdrop-filter:blur(4px);transition:background .15s,box-shadow .15s,transform .15s}.zone-nav:hover{background:#00e5ff29;box-shadow:0 0 24px #00e5ff99}.zone-nav-left{left:18px}.zone-nav-right{right:18px}.zone-title{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:200;color:#e8faff;font-weight:800;font-size:16px;letter-spacing:2px;text-transform:uppercase;text-shadow:0 0 10px rgba(0,229,255,.7);pointer-events:none}@keyframes navPulse{0%,to{box-shadow:0 0 7px #00e5ff38;border-color:#00e5ff73;transform:translateY(-50%) scale(1)}50%{box-shadow:0 0 15px #00e5ff80;border-color:#00e5ffcc;transform:translateY(-50%) scale(1.02)}}.zone-nav{animation:navPulse 1.5s ease-in-out infinite}.zone-nav:hover{animation:none;background:#00e5ff2e;box-shadow:0 0 28px #00e5ffb3}.char-tooltip{position:absolute;bottom:105%;left:50%;transform:translate(-50%);z-index:1000;min-width:150px;max-width:240px;background:#0a0d14f5;border:1px solid rgba(0,229,255,.6);border-radius:8px;padding:7px 10px;pointer-events:none;box-shadow:0 4px 18px #0009,0 0 12px #00e5ff40}.char-tooltip-name{font-size:12px;font-weight:800;margin-bottom:2px}.char-tooltip-purpose{font-size:10px;color:#cfe9f0;margin-bottom:3px;line-height:1.3}.char-tooltip-stat{font-size:9px;color:#8fb6c2;line-height:1.35}.room-navigator{display:flex;flex-direction:row;flex-shrink:0;flex:0 0 auto}.room-viewport{position:relative;overflow:hidden;flex:1;transition:opacity .2s ease}.room-viewport.transitioning{opacity:.3}.room-sidebar{width:78px;background:#0d0e10;border-right:1px solid #2c2d31;display:flex;flex-direction:column;align-items:center;padding:6px 0;gap:3px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;flex-shrink:0}.room-sidebar::-webkit-scrollbar{display:none}.room-sidebar-btn{width:66px;background:none;border:1px solid transparent;border-radius:6px;padding:6px 3px 5px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;position:relative;transition:all .15s ease}.room-sidebar-btn:hover{background:#ffffff0d;border-color:#ffffff14}.room-sidebar-btn.active{background:#ffffff14;border-color:#ffffff26}.room-sidebar-btn.active:before{content:"";position:absolute;left:-1px;top:4px;bottom:4px;width:2px;background:#2bac76;border-radius:0 2px 2px 0}.sidebar-icon{font-size:21px;line-height:1}.sidebar-label{font-size:8px;font-family:JetBrains Mono,monospace;color:#5a5c60;letter-spacing:.3px;text-align:center;line-height:1.2;max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-sidebar-btn.active .sidebar-label{color:#d1d2d3}.sidebar-badge{position:absolute;top:-3px;right:-3px;font-size:9px;font-family:JetBrains Mono,monospace;color:#fff;background:#2bac76;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #00000080;z-index:2}.sidebar-divider{width:42px;height:1px;background:#2c2d31;margin:4px 0}.room-sidebar-btn.map-btn{margin-bottom:2px}.room-sidebar-btn.map-btn.active{background:#2bac761a;border-color:#2bac7640}.room-container{position:relative;background:#1a1510;overflow:hidden;flex-shrink:0}.room-background{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;image-rendering:auto}.room-background-night{transition:opacity .5s ease}.room-label{position:absolute;top:8px;left:50%;transform:translate(-50%);font-size:10px;font-family:JetBrains Mono,monospace;color:#ffffff80;letter-spacing:2px;text-transform:uppercase;z-index:25;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.8)}.room-door-hotspot{position:absolute;transform:translate(-50%,-50%);z-index:30;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 10px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s ease;backdrop-filter:blur(2px)}.room-door-hotspot:hover{background:#ffffff1f;border-color:#ffffff4d;transform:translate(-50%,-50%) scale(1.05)}.room-door-hotspot:active{transform:translate(-50%,-50%) scale(.98)}.door-label{font-size:8px;font-family:JetBrains Mono,monospace;color:#ffffffb3;letter-spacing:.5px;white-space:nowrap}.door-arrow{font-size:10px;color:#fff6;animation:doorPulse 2s ease-in-out infinite}@keyframes doorPulse{0%,to{opacity:.4}50%{opacity:1}}.fp{width:100%;height:100%;background:#0c0d0f;padding:12px;overflow:auto}.fp-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-template-rows:repeat(4,1fr);gap:6px;height:100%}.fp-room{position:relative;border:1px solid rgba(255,255,255,.06);border-radius:8px;overflow:hidden;cursor:pointer;background:#111214;transition:all .25s ease;display:flex;align-items:flex-end;padding:0}.fp-room:hover{border-color:#fff3;transform:translateY(-2px);box-shadow:0 8px 24px #0006}.fp-room:active{transform:translateY(0)}.fp-thumb{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .4s ease}.fp-room:hover .fp-thumb{transform:scale(1.05)}.fp-overlay{position:absolute;inset:0;background:linear-gradient(to top,#000000d9,#0000004d,#0000001a);transition:opacity .25s ease}.fp-room:hover .fp-overlay{background:linear-gradient(to top,#000000e6,#00000026,#0000)}.fp-info{position:relative;z-index:2;padding:8px 10px;width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:6px}.fp-name{font-size:11px;font-family:JetBrains Mono,monospace;font-weight:600;color:#ffffffd9;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fp-count{font-size:9px;font-family:JetBrains Mono,monospace;color:#2bac76;white-space:nowrap;flex-shrink:0}.fp-badge{position:absolute;top:8px;right:8px;z-index:3;font-size:10px;font-family:JetBrains Mono,monospace;font-weight:700;color:#fff;background:#2bac76;border-radius:10px;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;padding:0 6px;box-shadow:0 2px 8px #2bac7666}.fp-active{border-color:#2bac76;box-shadow:0 0 0 1px #2bac764d,0 4px 16px #2bac7626}.fp-active .fp-name{color:#fff}.fp-active-ring{position:absolute;inset:-1px;border:2px solid #2bac76;border-radius:8px;z-index:4;pointer-events:none;animation:fpRingPulse 2s ease-in-out infinite}@keyframes fpRingPulse{0%,to{opacity:1}50%{opacity:.5}}.fp-occupied{border-color:#2bac7626}.fp-occupied .fp-overlay{background:linear-gradient(to top,#000c,#00000040,#2bac760d)}.room-transition-enter{opacity:0;transform:scale(.98)}.room-transition-enter-active{opacity:1;transform:scale(1);transition:opacity .3s ease,transform .3s ease}.room-transition-exit{opacity:1;transform:scale(1)}.room-transition-exit-active{opacity:0;transform:scale(1.02);transition:opacity .2s ease,transform .2s ease}
