.App{display:flex;flex-direction:column;min-height:98vh}.header{align-items:center;background-color:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;padding:0 2rem}.logo{color:#3498db;font-size:1.5rem;font-weight:700}.nav{display:flex;gap:1.5rem}.nav a{border-bottom:3px solid #0000;color:#34495e;font-weight:500;padding:1.5rem 0;text-decoration:none;transition:border-color .3s}.nav a.active{border-bottom-color:#3498db;color:#3498db}.main-content{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;margin:0 auto;max-width:1200px;padding:2rem;width:100%}h1{border-bottom:2px solid #e0e0e0;color:#2c3e50;margin-top:0;padding-bottom:.5rem}.confirmation-backdrop{align-items:center;animation:fadeIn .2s ease-in-out;background-color:#0009;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.confirmation-modal{animation:slideUp .3s ease-out;background-color:#fff;border-radius:8px;box-shadow:0 5px 20px #00000040;max-width:450px;padding:2rem;text-align:center;width:90%}.confirmation-message{color:#34495e;font-size:1.1rem;line-height:1.6;margin:0 0 2rem}.confirmation-actions{display:flex;gap:1rem;justify-content:flex-end}.confirmation-actions button{border:none;border-radius:5px;cursor:pointer;font-size:.9rem;font-weight:700;padding:.75rem 1.5rem;transition:all .2s ease}.btn-cancel{background-color:#ecf0f1;border:1px solid #bdc3c7;color:#7f8c8d}.btn-cancel:hover{background-color:#dce1e2}.btn-confirm{background-color:#e74c3c;color:#fff}.btn-confirm:hover{background-color:#c0392b}.alert-backdrop{align-items:center;animation:fadeIn .2s ease-in-out;background-color:#0009;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.alert-modal{animation:slideUp .3s ease-out;background-color:#fff;border-radius:8px;box-shadow:0 5px 20px #00000040;max-width:450px;padding:2rem;text-align:center;width:90%}.alert-message{color:#34495e;font-size:1.1rem;line-height:1.6;margin:0 0 2rem}.alert-actions{display:flex;justify-content:center}.btn-ok{background-color:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:.75rem 2.5rem;transition:all .2s ease}.btn-ok:hover{background-color:#2980b9}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-container{align-items:center;display:flex;gap:1rem}.user-name{color:#555;font-weight:500}.auth-button{background-color:#0078d4;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;padding:.5rem 1rem;transition:background-color .2s}.auth-button:hover{background-color:#005a9e}.overview-calendar-widget{background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #00000040;display:flex;flex-direction:column;padding:1.5rem}.overview-calendar-widget .calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.overview-calendar-widget .calendar-header h2{color:#2c3e50;font-size:1.5rem;margin:0}.overview-calendar-widget .calendar-header button{background-color:#e9ecef;border:1px solid #ced4da;border-radius:5px;color:#495057;cursor:pointer;font-size:.9rem;font-weight:700;padding:.5rem 1rem}.overview-calendar-widget .calendar-grid,.overview-calendar-widget .calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.overview-calendar-widget .calendar-grid{flex-grow:1}.overview-calendar-widget .calendar-weekdays{border-bottom:1px solid #f0f0f0;color:#7f8c8d;font-weight:700;margin-bottom:.5rem;padding-bottom:.5rem}.day-cell{align-items:center;border:1px solid #8080800d;border-bottom:2px solid #80808040;border-radius:4px;cursor:pointer;display:flex;height:6vh;justify-content:center;margin:2px;transition:background-color .2s,border-color .2s}.day-cell.empty{cursor:default}.day-cell:not(.empty):hover{background-color:#f0f8ff}.day-cell.has-reservation{background-color:#e6f7ff;color:#096dd9;font-weight:700}.day-cell.has-reservation span{align-items:center;background-color:#91d5ff;border-radius:50%;color:#002766;display:flex;height:30px;justify-content:center;width:30px}.day-cell.active-highlight{background-color:#fffbe6;border-color:#ffc107}.personal-page-layout{display:flex;flex-direction:column;height:100%}.overview-container{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;height:75vh;margin-top:1rem}.overview-calendar-pane{flex:2 1;min-width:450px}.overview-list-pane{align-self:stretch;background-color:#f8f9fa;border-radius:8px;box-shadow:0 4px 8px #00000040;display:flex;flex:1 1;flex-direction:column;height:90%;min-width:200px;padding:.5rem;scrollbar-width:thin}.overview-list-pane h2{border-bottom:1px solid #dee2e6;color:#2c3e50;font-size:1.5rem;margin:.5rem .5rem 1rem;padding-bottom:1rem;text-align:center}.overview-list-scroll{flex-grow:1;overflow-y:auto;padding:0 .5rem;scrollbar-color:#2c3e5080 #0000;scrollbar-width:thin}.reservation-card-overview{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:2px 2px 2px #00000080;margin-bottom:1rem;transition:all .2s ease-in-out}.reservation-card-overview.highlighted{border-left:5px solid #3498db;box-shadow:5px 2px 5px #0000004d;transform:scale(1.05)}.card-header-overview{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:.25rem 1rem}.card-header-overview h3{color:#34495e;font-size:1.05rem;margin:0}.badge{border-radius:12px;color:#fff;font-size:.75rem;font-weight:700;padding:.3rem .7rem}.badge.manual{background-color:#3498db}.badge.auto{background-color:#28a745}.reservation-card-overview.auto{border-left-color:#28a745}.card-body-overview{padding:.8rem}.card-body-overview p{align-items:center;color:#555;display:flex;gap:.5rem;margin:.1rem}.card-body-overview p svg{flex-shrink:0}.view-map-button{background-color:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;padding:.4rem .7rem;transition:background-color .2s}.view-map-button:hover{background-color:#2980b9}.no-reservations-message{align-items:center;color:#95a5a6;display:flex;flex-direction:column;height:100%;justify-content:center;text-align:center}.no-reservations-message span{font-size:3rem;margin-bottom:1rem}.no-reservations-message p{font-size:1.2rem;margin:0}.no-reservations-message small{font-size:.9rem}.viewer-container{background-color:#f0f2f5;border:1px solid #d9d9d9;border-radius:8px;height:70vh;overflow:hidden;perspective:50000px;position:relative;width:100%}.zoom-controls{display:flex;flex-direction:column;gap:5px;position:absolute;right:10px;top:10px;z-index:10}.zoom-controls button{border:1px solid #ccc;border-radius:50%;cursor:pointer;font-size:1.5rem;font-weight:700;height:40px;width:40px}.floorplan-viewport{cursor:grab;height:100%;transform-style:preserve-3d;width:100%}.floor-plate{background-color:#dde0e3;border:1px solid #c2bfbf;box-shadow:-20px 30px 15px -5px #0003;position:absolute;z-index:0}.floorplan-canvas{height:100%;transition:transform .1s ease-out;width:100%}.floorplan-3d-perspective{position:relative;transform:rotateX(60deg) rotate(-30deg);transform-origin:left bottom;transform-style:preserve-3d}.room{background-color:#fff6;border:2px solid #adb5bd;box-shadow:-30px 50px 3px -4px #0003;position:absolute;transform-style:preserve-3d}.room,.room:hover{transition:transform .2s ease-out}.room:hover{background-color:#fffc;box-shadow:-33px 52px 3px -4px #0006;transform:translateZ(2px)}.room-label{background-color:#fff;border:1px solid #000;border-radius:4px;color:#495057;font-size:1.4em;font-weight:700;left:50%;padding:2px 8px;pointer-events:none;position:absolute;top:10%;transform:translateX(-50%) translateY(50%) translateZ(15px) rotateX(-45deg)}.desk{align-items:center;border:2px solid #fff;border-radius:6px;box-shadow:-18px 25px 8px -5px #0009;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;height:160px;justify-content:center;position:absolute;transform-style:preserve-3d;transition:all .2s ease-in-out;width:70px}.desk .desk-name{background:#1919191a;font-size:1.2em;font-weight:600;text-align:center;transform:translateX(0) translateY(0) translateZ(10px) rotateX(-75deg);width:100%}.desk.available{background-color:#28a745}.desk.available:hover{box-shadow:-24px 35px 10px -4px #00000080;transform:translateZ(10px) scale(1);z-index:5}.desk.booked{background-color:#dc3545;cursor:not-allowed}.desk.my-booking{background-color:#ffc107;border-color:#ffc107;color:#343a40}.facility{background-color:#9b9b9b99;border:2px solid #ced4da;box-shadow:-25px 40px 10px -4px #0000000d;pointer-events:none;position:absolute;transform-style:preserve-3d}.facility-label{background-color:#ffffffb3;border-radius:4px;color:#868e96;font-size:1.2em;font-weight:700;padding:2px 8px;transform:translateX(-50%) translateY(-50%) translateZ(10px) rotateX(-55deg)}.facility-icon,.facility-label{left:50%;position:absolute;top:50%}.facility-icon{fill:#34495e;height:50%;transform:translateX(-50%) translateY(-50%) translateZ(5px) rotateX(0deg);width:50%}.facility-meeting{background-color:#cce5ff99;border-color:#b8daff}.minimap-container{background-color:#fffc;border:1px solid #b0b0b0;border-radius:4px;bottom:20px;box-shadow:0 2px 8px #0003;left:20px;padding:5px;position:absolute;z-index:10}.minimap-content{background-color:#e9ecef;cursor:pointer;overflow:hidden;position:relative}.minimap-room{background-color:#adb5bd;border:1px solid #868e96;position:absolute}.minimap-svg-overlay{height:100%;left:0;overflow:visible;pointer-events:none;position:absolute;top:0;width:100%}.minimap-viewport-polygon{fill:#f003;border:2px solid #e60000}.minimap-facility{background-color:#adb5bd;border:1px solid #868e96;position:absolute}.calendar-backdrop{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.calendar-modal{background-color:#fff;border-radius:8px;box-shadow:0 5px 15px #0000004d;padding:1.5rem;width:320px}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.calendar-header h2{color:#2c3e50;font-size:1.2rem;margin:0}.calendar-header button{background:none;border:none;color:#3498db;cursor:pointer;font-size:1.5rem;padding:0 .5rem}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.calendar-weekdays{color:#7f8c8d;font-size:.9rem;font-weight:700;margin-bottom:.5rem}.calendar-day{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;height:40px;justify-content:center;transition:background-color .2s,color .2s}.calendar-day:not(.empty):hover{background-color:#ecf0f1}.calendar-day.selected{background-color:#3498db;color:#fff;font-weight:700}.calendar-day.empty{cursor:default}.date-selector{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-bottom:2rem}.date-nav-button{background-color:#e9ecef;border:1px solid #ced4da;border-radius:5px;color:#495057;cursor:pointer;font-size:1rem;font-weight:700;padding:.75rem 1rem;transition:background-color .2s}.date-nav-button:hover{background-color:#dee2e6}.date-display-button{background-color:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:500;min-width:280px;padding:.75rem 1.5rem;text-align:center;transition:background-color .2s}.date-display-button:hover{background-color:#2980b9}.floorplan-wrapper{position:relative;transition:opacity .3s ease-in-out}.floorplan-wrapper.updating:after{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#ffffffb3;border-radius:8px;color:#34495e;content:"Updating...";display:flex;font-size:1.5rem;font-weight:700;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:20}.preferences-card{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000000d;margin-bottom:2rem;padding:2rem}.preferences-card h2{border-bottom:1px solid #eee;margin-bottom:1.5rem;margin-top:0;padding-bottom:1rem}.pref-item{margin-bottom:1.5rem}.pref-item label{color:#34495e;display:block;font-weight:600;margin-bottom:.5rem}.pref-group{align-items:flex-start;display:flex;gap:1.5rem}.pref-group .pref-item{flex:1 1;margin-bottom:0}.name-change-group{align-items:center;display:flex;gap:1rem}.name-change-group input{border:1px solid #ccc;border-radius:4px;flex-grow:1;font-size:1rem;padding:.75rem}.change-name-button{background-color:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;flex-shrink:0;font-weight:700;padding:.75rem 1rem;transition:background-color .2s}.change-name-button:hover:not(:disabled){background-color:#2980b9}.change-name-button:disabled{background-color:#ccc;cursor:not-allowed}.pref-details.disabled{opacity:.5;pointer-events:none}select{border:1px solid #ccc;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.weekday-selector{display:flex;gap:.5rem}.weekday-btn{background-color:#f8f9fa;border:1px solid #ccc;border-radius:50%;cursor:pointer;font-weight:700;height:40px;transition:all .2s;width:40px}.weekday-btn:hover{background-color:#e9ecef}.weekday-btn.active{background-color:#3498db;border-color:#3498db;color:#fff}.save-button-container{margin-top:2rem;text-align:right}.save-button{background-color:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:.75rem 1.5rem;transition:background-color .2s}.save-button:hover:not(:disabled){background-color:#218838}.save-button:disabled{background-color:#ccc;cursor:not-allowed}.toggle-switch{display:inline-block;height:34px;position:relative;width:60px}.toggle-switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:34px;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{bottom:0;position:absolute;transition:.4s}.slider:before{background-color:#fff;border-radius:50%;content:"";height:26px;left:4px;width:26px}input:checked+.slider{background-color:#28a745}input:focus+.slider{box-shadow:0 0 1px #28a745}input:checked+.slider:before{transform:translateX(26px)}.login-overlay-backdrop{align-items:center;background-color:#f4f7f9;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:3000}.login-overlay-card{background-color:#fff;border-radius:12px;box-shadow:0 10px 30px #0000001a;max-width:450px;padding:2rem 3rem;text-align:center;width:100%}.login-overlay-card h1{border:none;color:#3498db;margin-bottom:.5rem}.login-overlay-card p{color:#555;line-height:1.6;margin-bottom:2rem}.input-group{margin-bottom:1.5rem;text-align:left}.input-group label{color:#34495e;display:block;font-weight:600;margin-bottom:.5rem}.input-group input{border:1px solid #ccc;border-radius:5px;box-sizing:border-box;font-size:1rem;padding:.8rem;width:100%}.login-button{background-color:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;padding:.8rem 2rem;transition:background-color .2s;width:100%}.login-button:hover{background-color:#218838}
/*# sourceMappingURL=main.43f1fc80.css.map*/