@font-face{font-family:SöhneBreit-Extrafett;src:url(/fonts/S%C3%B6hneBreit-Extrafett.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:SöhneBreit-Dreiviertelfett;src:url(/fonts/S%C3%B6hneBreit-Dreiviertelfett.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Söhne-Leicht;src:url(/fonts/S%C3%B6hne-Leicht.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@tailwind base;@tailwind components;@tailwind utilities;@font-face{font-family:SöhneBreit-Extrafett;src:url(/fonts/S%C3%B6hneBreit-Extrafett.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:SöhneBreit-Dreiviertelfett;src:url(/fonts/S%C3%B6hneBreit-Dreiviertelfett.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Söhne-Leicht;src:url(/fonts/S%C3%B6hne-Leicht.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}:root{--kwp-red: #FF5034;--kwp-pink: #EDBFDB;--kwp-grey: #878FA5;--kwp-black: #221F1F;--kwp-dark-grey: #303030;--kwp-white: #FFFFFF;--color-primary: var(--kwp-red);--color-secondary: var(--kwp-pink);--color-neutral: var(--kwp-grey);--color-text: var(--kwp-black);--color-background: var(--kwp-white);--color-busy: var(--kwp-red);--color-available: var(--kwp-grey);--color-current-time: var(--kwp-red);--header-height: 80px;--grid-gap: 2px;--touch-target-min: 48px;--auth-button-height: 60px;--auth-button-border-radius: 8px;--touch-padding: 16px;--border-radius: 8px;--shadow: 0 2px 8px rgba(0, 0, 0, .1);--shadow-hover: 0 4px 16px rgba(0, 0, 0, .15);--transition-fast: .15s ease-in-out;--transition-medium: .3s ease-in-out;--transition-slow: .5s ease-in-out;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-family-headers: "SöhneBreit-Extrafett", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-family-bold: "SöhneBreit-Dreiviertelfett", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-family-light: "Söhne-Leicht", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--schedule-grid-columns: 8;--schedule-grid-rows: 32;--time-slot-height: 60px;--time-column-width: 100px}*{box-sizing:border-box}html{font-family:var(--font-family-sans);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;padding:0;background-color:var(--color-background);color:var(--color-text);font-size:var(--font-size-base);line-height:1.5;overflow-x:hidden;overflow-y:hidden;height:100vh;height:100dvh}@media (max-width: 1024px){:root{--touch-target-min: 44px;--touch-padding: 12px;--font-size-base: .95rem}}.touch-target{min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--touch-padding);touch-action:manipulation;cursor:pointer;transition:all var(--transition-fast)}.schedule-grid{display:grid;grid-template-columns:var(--time-column-width) repeat(var(--schedule-grid-columns),1fr);grid-template-rows:repeat(var(--schedule-grid-rows),var(--time-slot-height));gap:var(--grid-gap);width:100%;height:calc(var(--schedule-grid-rows) * var(--time-slot-height) + (var(--schedule-grid-rows) - 1) * var(--grid-gap))}.time-slot{position:relative;border:1px solid rgba(0,0,0,.1);border-radius:var(--border-radius);transition:all var(--transition-fast)}.time-slot--available{background-color:var(--color-background);border-color:var(--color-available)}.time-slot--busy{background-color:var(--color-busy);color:var(--color-background);border-color:var(--color-busy)}.time-slot--current{background-color:#ff50341a;border-color:var(--color-current-time);border-width:2px}.current-time-indicator{position:absolute;left:0;right:0;height:2px;background-color:var(--color-current-time);z-index:var(--z-sticky);pointer-events:none}.current-time-indicator:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;background-color:var(--color-current-time);border-radius:50%}.room-header-general{display:flex;align-items:center;justify-content:center;padding:var(--touch-padding);font-weight:600;font-size:var(--font-size-lg);background-color:var(--color-neutral);color:var(--color-background);border-radius:var(--border-radius);text-align:center}.room-detail{display:grid;grid-template-areas:"room-info status" "schedule actions";grid-template-columns:1fr 1fr;grid-template-rows:200px 1fr;gap:24px;height:100vh;padding:24px}.room-info{grid-area:room-info;display:flex;flex-direction:column;align-items:center;justify-content:center}.room-status{grid-area:status;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;border-radius:var(--border-radius);text-align:center}.room-status--busy{background-color:var(--color-busy);color:var(--color-background)}.room-status--available{background-color:var(--color-available);color:var(--color-background)}.room-schedule{grid-area:schedule}.room-actions{grid-area:actions;display:flex;flex-direction:column;gap:16px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;font-size:var(--font-size-base);font-family:var(--font-family-bold);font-weight:600;text-decoration:none;border:none;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);min-height:var(--touch-target-min);min-width:var(--touch-target-min)}.btn--primary{background-color:var(--color-primary);color:var(--color-background)}.btn--secondary{background-color:var(--color-secondary);color:var(--color-text)}.btn--outline{background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center}.modal{background-color:var(--color-background);border-radius:var(--border-radius);box-shadow:var(--shadow-hover);max-width:90vw;max-height:90vh;overflow-y:auto;z-index:var(--z-modal)}.loading{display:inline-block;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:var(--color-background);animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (orientation: portrait){.room-detail{grid-template-areas:"room-info" "status" "schedule" "actions";grid-template-columns:1fr;grid-template-rows:auto auto 1fr auto}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.touch-target:focus,.btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-contrast: high){:root{--color-busy: #000000;--color-available: #ffffff;--shadow: 0 0 0 2px currentColor}}.room-grid{position:relative;width:100%;height:100%;overflow:auto;background-color:var(--color-background)}.grid-header{display:flex;position:sticky;top:0;z-index:var(--z-sticky);background-color:var(--color-background);margin-bottom:var(--grid-gap)}.room-header-cell{min-width:200px;max-width:200px;padding:var(--touch-padding);background-color:var(--color-neutral);color:var(--color-background);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-lg)}.time-header-cell{min-width:80px;max-width:80px;padding:8px 4px;display:flex;align-items:center;justify-content:center;background-color:var(--color-background);border-right:1px solid rgba(0,0,0,.1)}.time-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text);text-align:center;line-height:1.2}.grid-content{display:flex;flex-direction:column;gap:var(--grid-gap)}.room-name-cell{min-width:200px;max-width:200px;padding:var(--touch-padding);background-color:var(--color-secondary);border-radius:var(--border-radius);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);min-height:var(--touch-target-min)}.room-name{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);text-align:center;line-height:1.2}.room-capacity{font-size:var(--font-size-sm);color:var(--color-text);opacity:.7;margin-top:4px}.room-row,.time-row{display:flex;gap:var(--grid-gap);align-items:stretch}.time-slot-cell{min-width:80px;max-width:80px;min-height:var(--touch-target-min);padding:8px;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden}.time-slot-cell.available{background-color:var(--color-background);border:2px solid var(--color-available);color:var(--color-text)}.time-slot-cell.booked{background-color:var(--color-busy);border:2px solid var(--color-busy);color:var(--color-background)}.time-slot-cell.urgent{background-color:#c00;border-color:#c00;animation:urgent-pulse 2s infinite}@keyframes urgent-pulse{0%,to{opacity:1}50%{opacity:.8}}.booking-info{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.booking-title{font-size:var(--font-size-xs);font-weight:600;line-height:1.2;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:2px}.booking-organizer{font-size:10px;opacity:.8;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.available-indicator{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.available-indicator span{font-size:var(--font-size-xs);font-weight:500;opacity:.7}.current-time-indicator{position:absolute;top:0;bottom:0;width:3px;background-color:var(--color-current-time);z-index:var(--z-sticky);pointer-events:none}.time-marker{position:absolute;top:-12px;left:50%;transform:translate(-50%);background-color:var(--color-current-time);color:var(--color-background);padding:4px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600;white-space:nowrap;box-shadow:var(--shadow)}@media (max-width: 1024px){.room-name-cell{min-width:160px;max-width:160px}.time-slot-cell,.time-header-cell{min-width:60px;max-width:60px}.room-header-cell{min-width:160px;max-width:160px}}@media (orientation: portrait) and (max-width: 768px){.room-grid{overflow-x:auto}.grid-header,.room-row{min-width:800px}}.booking-modal{width:90vw;max-width:600px;max-height:90vh;padding:0;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid rgba(0,0,0,.1);background-color:var(--color-secondary)}.modal-title{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-text);margin:0}.modal-close{background:none;border:none;font-size:24px;font-weight:700;color:var(--color-text);cursor:pointer;padding:8px;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.modal-body{padding:24px;overflow-y:auto;max-height:calc(90vh - 140px)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:24px;border-top:1px solid rgba(0,0,0,.1);background-color:var(--color-background)}.booking-summary{background-color:#878fa51a;border-radius:var(--border-radius);padding:16px;margin-bottom:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{font-size:var(--font-size-sm);color:var(--color-neutral);font-weight:500}.summary-value{font-size:var(--font-size-base);color:var(--color-text);font-weight:600}.booking-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.form-input,.form-select,.form-textarea{padding:12px 16px;border:2px solid var(--color-available);border-radius:var(--border-radius);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-background);transition:all var(--transition-fast);min-height:var(--touch-target-min)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{opacity:.6;cursor:not-allowed}.form-textarea{resize:vertical;min-height:80px}.attendee-input-group{display:flex;gap:8px;align-items:stretch}.attendee-input-group .form-input{flex:1}.attendee-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.attendee-chip{display:flex;align-items:center;gap:8px;background-color:var(--color-secondary);color:var(--color-text);padding:6px 12px;border-radius:20px;font-size:var(--font-size-sm)}.attendee-remove{background:none;border:none;color:var(--color-text);cursor:pointer;font-size:16px;font-weight:700;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all var(--transition-fast)}.form-checkbox{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);min-height:var(--touch-target-min);padding:8px 0}.form-checkbox input[type=checkbox]{position:absolute;opacity:0;cursor:pointer}.checkbox-mark{position:relative;height:20px;width:20px;background-color:var(--color-background);border:2px solid var(--color-available);border-radius:4px;transition:all var(--transition-fast)}.form-checkbox input:checked~.checkbox-mark{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-mark:after{content:"";position:absolute;display:none;left:6px;top:2px;width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.form-checkbox input:checked~.checkbox-mark:after{display:block}.error-message{background-color:#fee;color:#c00;padding:12px 16px;border-radius:var(--border-radius);border:1px solid #fcc;font-size:var(--font-size-sm);margin-top:16px}@media (max-width: 768px){.booking-modal{width:95vw;max-height:95vh}.booking-summary{grid-template-columns:1fr}.modal-header,.modal-body,.modal-footer{padding:16px}.attendee-input-group{flex-direction:column}}.room-detail{display:grid;grid-template-areas:"room-info-quadrant status-quadrant" "schedule-quadrant actions-quadrant";grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:24px;height:100vh;padding:24px;background-color:var(--color-background);overflow:hidden}.room-info-quadrant{grid-area:room-info-quadrant;display:flex;flex-direction:column;background-color:var(--color-background);border-radius:var(--border-radius);padding:24px;box-shadow:var(--shadow)}.room-status-quadrant{grid-area:status-quadrant;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-background);border-radius:var(--border-radius);padding:24px;text-align:center;box-shadow:var(--shadow)}.room-schedule-quadrant{grid-area:schedule-quadrant;background-color:var(--color-background);border-radius:var(--border-radius);padding:24px;box-shadow:var(--shadow);overflow-y:auto}.room-actions-quadrant{grid-area:actions-quadrant;background-color:var(--color-secondary);border-radius:var(--border-radius);padding:24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:20px}.back-button{align-self:flex-start;background:none;border:2px solid var(--color-primary);color:var(--color-primary);padding:8px 16px;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);font-weight:500;transition:all var(--transition-fast);margin-bottom:20px;min-height:var(--touch-target-min)}.room-info-content{flex:1;display:flex;flex-direction:column;gap:20px}.room-name{font-size:var(--font-size-4xl);font-weight:600;color:var(--color-text);margin:0;line-height:1.2}.room-details{display:flex;flex-direction:column;gap:12px}.room-detail-item{display:flex;flex-direction:column;gap:4px}.detail-label{font-size:var(--font-size-sm);color:var(--color-neutral);font-weight:500}.detail-value{font-size:var(--font-size-lg);color:var(--color-text);font-weight:600}.room-features{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.feature-tag{background-color:var(--color-neutral);color:var(--color-background);padding:4px 12px;border-radius:16px;font-size:var(--font-size-sm);font-weight:500}.room-photo{flex:1;display:flex;align-items:center;justify-content:center;min-height:200px}.room-image{max-width:100%;max-height:100%;border-radius:var(--border-radius);-o-object-fit:cover;object-fit:cover;box-shadow:var(--shadow)}.status-content{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%}.status-indicator{text-align:center}.status-text{font-size:var(--font-size-3xl);font-weight:600;margin-bottom:8px}.current-time{font-size:var(--font-size-xl);opacity:.9}.current-meeting,.next-meeting{text-align:center;padding:16px;background-color:#ffffff1a;border-radius:var(--border-radius);width:100%}.meeting-title{font-size:var(--font-size-xl);font-weight:600;margin:0 0 8px}.meeting-organizer,.meeting-time{margin:4px 0;opacity:.9}.next-meeting h4{font-size:var(--font-size-lg);margin:0 0 8px}.join-meeting-btn{margin-top:16px;background-color:var(--color-background)!important;color:var(--color-primary)!important}.quadrant-title{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-text);margin:0 0 20px}.schedule-list{display:flex;flex-direction:column;gap:12px}.no-meetings{text-align:center;color:var(--color-neutral);font-style:italic;padding:40px 20px}.schedule-item{display:grid;grid-template-columns:auto 1fr auto;gap:16px;padding:16px;background-color:#878fa51a;border-radius:var(--border-radius);border-left:4px solid var(--color-neutral);transition:all var(--transition-fast)}.schedule-item.current{background-color:#ff50341a;border-left-color:var(--color-primary)}.schedule-time{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);white-space:nowrap}.schedule-details{flex:1}.schedule-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text);margin-bottom:4px}.schedule-organizer{font-size:var(--font-size-sm);color:var(--color-neutral);margin-bottom:2px}.schedule-description{font-size:var(--font-size-sm);color:var(--color-text);opacity:.8;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.schedule-duration{font-size:var(--font-size-sm);color:var(--color-neutral);font-weight:500;white-space:nowrap}.quick-book-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:20px}.quick-book-btn{background-color:var(--color-background);border:2px solid var(--color-primary);color:var(--color-primary);padding:12px;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);text-align:center;min-height:var(--touch-target-min)}.slot-time{font-size:var(--font-size-base);font-weight:600;margin-bottom:4px}.slot-duration{font-size:var(--font-size-sm);opacity:.8}.no-slots-available{text-align:center;color:var(--color-text);padding:20px;background-color:#878fa51a;border-radius:var(--border-radius);margin-bottom:20px}.next-available{font-weight:600;color:var(--color-primary);margin-top:8px}.action-buttons{display:flex;flex-direction:column;gap:12px}.view-full-schedule,.instant-book{min-height:var(--touch-target-min)}.instant-book{background-color:var(--color-primary)!important;color:var(--color-background)!important;border:none!important}@media (max-width: 1024px){.room-detail{gap:16px;padding:16px}.room-name{font-size:var(--font-size-3xl)}.status-text{font-size:var(--font-size-2xl)}.quadrant-title{font-size:var(--font-size-xl)}.quick-book-slots{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}}@media (orientation: portrait){.room-detail{grid-template-areas:"room-info-quadrant" "status-quadrant" "schedule-quadrant" "actions-quadrant";grid-template-columns:1fr;grid-template-rows:auto auto 1fr auto;gap:16px;padding:16px}.room-info-quadrant,.room-status-quadrant{min-height:auto}.room-schedule-quadrant{max-height:300px}}.app-header{position:sticky;top:0;z-index:var(--z-sticky);background-color:var(--color-background);border-bottom:2px solid var(--color-secondary);box-shadow:var(--shadow)}.header-content{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 24px;gap:24px;min-height:var(--header-height)}.header-left{display:flex;align-items:center;justify-self:start}.header-center{display:flex;align-items:center;gap:20px;justify-self:center}.header-right{display:flex;align-items:center;gap:16px;justify-self:end}.brand-section{display:flex;align-items:center;gap:12px;cursor:pointer;padding:8px;border-radius:var(--border-radius);transition:all var(--transition-fast)}.brand-logo{height:48px;width:auto;-o-object-fit:contain;object-fit:contain}.brand-text-logo{width:48px;height:48px;background-color:var(--color-primary);color:var(--color-background);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:600}.brand-info{display:flex;flex-direction:column;gap:2px}.brand-name{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text);margin:0;line-height:1.2}.app-title{font-size:var(--font-size-sm);color:var(--color-neutral);margin:0}.date-navigation{display:flex;align-items:center;gap:16px;background-color:#edbfdb1a;padding:8px 16px;border-radius:var(--border-radius)}.date-nav-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-xl);font-weight:700;padding:8px;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.current-date{text-align:center;min-width:200px}.date-display{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);line-height:1.2}.date-full{font-size:var(--font-size-sm);color:var(--color-neutral);margin-top:2px}.today-btn{background-color:var(--color-primary);color:var(--color-background);border:none;padding:8px 16px;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);font-weight:500;transition:all var(--transition-fast);min-height:var(--touch-target-min)}.today-btn:disabled{opacity:.5;cursor:not-allowed}.current-time-display{text-align:right;padding:8px 12px;background-color:#878fa51a;border-radius:var(--border-radius)}.time-value{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);line-height:1.2}.time-date{font-size:var(--font-size-sm);color:var(--color-neutral);margin-top:2px}.auth-mode-indicator{padding:4px 0}.mode-badge{padding:6px 12px;border-radius:20px;font-size:var(--font-size-sm);font-weight:500;text-align:center;min-width:100px}.mode-kiosk{background-color:var(--color-primary);color:var(--color-background)}.mode-user{background-color:var(--color-secondary);color:var(--color-text)}.mode-guest{background-color:var(--color-neutral);color:var(--color-background)}.user-section{position:relative}.user-button{display:flex;align-items:center;gap:12px;background:none;border:2px solid transparent;padding:8px 12px;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);min-height:var(--touch-target-min)}.user-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background-color:var(--color-primary);color:var(--color-background);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-base);font-weight:600}.user-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.user-info{text-align:left;min-width:120px}.user-name{font-size:var(--font-size-base);font-weight:600;color:var(--color-text);line-height:1.2}.user-email{font-size:var(--font-size-sm);color:var(--color-neutral);margin-top:2px}.user-menu-arrow{color:var(--color-neutral);transition:transform var(--transition-fast);font-size:var(--font-size-sm)}.user-menu-arrow.open{transform:rotate(180deg)}.user-menu{position:absolute;top:100%;right:0;margin-top:8px;background-color:var(--color-background);border-radius:var(--border-radius);box-shadow:var(--shadow-hover);border:1px solid rgba(0,0,0,.1);min-width:250px;z-index:var(--z-dropdown);overflow:hidden}.user-menu-header{padding:16px;background-color:var(--color-secondary)}.menu-user-name{font-size:var(--font-size-base);font-weight:600;color:var(--color-text);line-height:1.2}.menu-user-email{font-size:var(--font-size-sm);color:var(--color-neutral);margin-top:4px}.user-menu-divider{height:1px;background-color:#0000001a}.user-menu-items{padding:8px 0}.menu-item{width:100%;background:none;border:none;padding:12px 16px;text-align:left;cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);transition:all var(--transition-fast);min-height:var(--touch-target-min)}.menu-item.logout{color:var(--color-busy)}.kiosk-section{display:flex;align-items:center}.sign-in-btn{background-color:var(--color-primary);color:var(--color-background);border:none;padding:8px 16px;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);font-weight:500;transition:all var(--transition-fast);min-height:var(--touch-target-min)}.view-indicator{display:flex;justify-content:center;padding:8px 0;background-color:#edbfdb1a;border-top:1px solid rgba(0,0,0,.05)}.view-badge{padding:4px 16px;border-radius:16px;font-size:var(--font-size-sm);font-weight:500;background-color:var(--color-neutral);color:var(--color-background)}.view-grid{background-color:var(--color-primary)}.view-detail{background-color:var(--color-secondary);color:var(--color-text)}@media (max-width: 1024px){.header-content{grid-template-columns:auto 1fr auto;gap:16px;padding:12px 16px}.brand-name{font-size:var(--font-size-lg)}.current-date{min-width:160px}.user-info{min-width:100px}.user-name,.user-email{font-size:var(--font-size-sm)}}@media (max-width: 768px){.header-content{grid-template-columns:1fr;grid-template-rows:auto auto;gap:12px;text-align:center}.header-left,.header-center,.header-right{justify-self:center}.header-center{order:1}.header-left{order:2}.header-right{order:3;flex-wrap:wrap;justify-content:center}.date-navigation{flex-direction:column;gap:8px}.current-date{min-width:auto}}.app{height:100vh;height:100dvh;width:100vw;display:flex;flex-direction:column;background-color:var(--color-background);font-family:var(--font-family-sans);position:fixed;top:0;left:0;overflow:hidden}.app-main{flex:1;position:relative;overflow:hidden;width:100%;height:100%}.grid-view,.detail-view{height:100vh;height:100dvh;width:100vw;overflow:hidden;position:absolute;top:0;left:0}.loading-screen{display:flex;align-items:center;justify-content:center;height:calc(100vh - var(--header-height));background-color:var(--color-background)}.loading-content{text-align:center;padding:40px}.loading-content h2{font-size:var(--font-size-2xl);color:var(--color-text);margin:24px 0 12px}.loading-content p{font-size:var(--font-size-base);color:var(--color-neutral);margin:0}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0000004d;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop)}.loading-indicator{display:flex;align-items:center;gap:12px;background-color:var(--color-background);padding:20px 32px;border-radius:var(--border-radius);box-shadow:var(--shadow-hover);color:var(--color-text);font-size:var(--font-size-base);font-weight:500}.error-banner{position:fixed;top:var(--header-height);left:0;right:0;background-color:#fee;border-bottom:2px solid #fcc;z-index:var(--z-sticky)}.error-content{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;color:#c00;font-size:var(--font-size-base)}.error-dismiss{background:none;border:none;color:#c00;cursor:pointer;font-size:20px;font-weight:700;padding:4px 8px;border-radius:4px;transition:all var(--transition-fast)}.notifications{position:fixed;top:calc(var(--header-height) + 20px);right:20px;z-index:var(--z-popover);display:flex;flex-direction:column;gap:12px;max-width:400px}.notification{padding:16px 20px;border-radius:var(--border-radius);box-shadow:var(--shadow-hover);font-size:var(--font-size-base);font-weight:500;line-height:1.4;word-wrap:break-word}.notification-success{background-color:#d4edda;color:#155724;border-left:4px solid #28a745}.notification-error{background-color:#f8d7da;color:#721c24;border-left:4px solid #dc3545}.notification-info{background-color:#d1ecf1;color:#0c5460;border-left:4px solid #17a2b8}.kiosk-timeout-warning{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--color-background);border-radius:var(--border-radius);box-shadow:var(--shadow-hover);padding:32px;text-align:center;z-index:var(--z-modal);border:3px solid var(--color-primary);max-width:400px;width:90vw}.timeout-content h3{font-size:var(--font-size-xl);color:var(--color-text);margin:0 0 16px}.timeout-content p{font-size:var(--font-size-base);color:var(--color-neutral);margin:0 0 24px}.timeout-content .btn{min-width:150px}@media (max-width: 1024px){.grid-view,.detail-view{height:calc(100vh - 120px)}.notifications{right:16px;max-width:calc(100vw - 32px)}.kiosk-timeout-warning{padding:24px;width:95vw}}@media (max-width: 768px){.grid-view,.detail-view{height:calc(100vh - 140px)}.loading-content{padding:20px}.loading-content h2{font-size:var(--font-size-xl)}.error-content{padding:8px 16px;font-size:var(--font-size-sm)}.notifications{top:calc(var(--header-height) + 10px);right:10px;left:10px;max-width:none}.notification{padding:12px 16px;font-size:var(--font-size-sm)}}.app *:focus{outline:2px solid var(--color-primary);outline-offset:2px}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background-color:var(--color-background)}.error-boundary-content{max-width:600px;text-align:center;padding:40px;border-radius:var(--border-radius);box-shadow:var(--shadow-hover);background-color:var(--color-background)}.error-icon{font-size:64px;margin-bottom:24px}.error-title{font-size:var(--font-size-3xl);font-weight:600;color:var(--color-text);margin:0 0 16px}.error-message{font-size:var(--font-size-lg);color:var(--color-neutral);margin:0 0 32px;line-height:1.6}.error-actions{display:flex;gap:16px;justify-content:center;margin-bottom:32px}.error-details{text-align:left;margin-top:32px;padding:20px;background-color:#878fa51a;border-radius:var(--border-radius);border:1px solid var(--color-neutral)}.error-details summary{cursor:pointer;font-weight:600;color:var(--color-text);margin-bottom:16px}.error-stack{font-family:Courier New,monospace}.error-stack h3{font-size:var(--font-size-base);color:var(--color-text);margin:16px 0 8px}.error-stack pre{background-color:#f5f5f5;padding:12px;border-radius:4px;overflow-x:auto;font-size:var(--font-size-sm);color:#333;white-space:pre-wrap;word-break:break-word}@media (max-width: 768px){.error-boundary-content{padding:24px;margin:16px}.error-icon{font-size:48px;margin-bottom:16px}.error-title{font-size:var(--font-size-2xl)}.error-message{font-size:var(--font-size-base)}.error-actions{flex-direction:column;align-items:center}.error-actions .btn{width:100%;max-width:200px}}@media print{.app-header,.notifications,.kiosk-timeout-warning,.loading-overlay,.error-banner,.error-boundary{display:none!important}.app-main,.grid-view,.detail-view{height:auto!important;overflow:visible!important}}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--color-background) 0%,var(--kwp-grey) 100%);padding:var(--touch-padding)}.auth-content{background:var(--color-background);padding:48px;border-radius:var(--auth-button-border-radius);box-shadow:var(--shadow);text-align:center;max-width:400px;width:100%}.auth-content h1{font-family:var(--font-family-bold);font-size:2rem;color:var(--color-text);margin-bottom:16px}.auth-content p{font-family:var(--font-family-base);color:var(--color-neutral);margin-bottom:32px;font-size:1.1rem}.sign-in-button{width:100%;height:var(--auth-button-height);background:var(--color-primary);color:var(--color-background);border:none;border-radius:var(--auth-button-border-radius);font-family:var(--font-family-bold);font-size:1.1rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow)}.sign-in-button:hover:not(:disabled){background:var(--kwp-red);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.sign-in-button:disabled{opacity:.6;cursor:not-allowed}.auth-error{margin-top:16px;padding:12px;background:#ffe6e6;color:#c00;border-radius:var(--auth-button-border-radius);font-size:.9rem}.app-header{background:var(--color-background);border-bottom:1px solid var(--kwp-grey);padding:0 24px;height:var(--header-height);display:flex;align-items:center;box-shadow:var(--shadow)}.header-content{display:flex;justify-content:space-between;align-items:center;width:100%}.header-content h1{font-family:var(--font-family-bold);font-size:1.5rem;color:var(--color-text);margin:0}.user-info{display:flex;align-items:center;gap:16px;font-family:var(--font-family-base)}.sign-out-button{background:var(--color-neutral);color:var(--color-background);border:none;padding:8px 16px;border-radius:var(--border-radius);font-family:var(--font-family-base);cursor:pointer;transition:all var(--transition-fast)}.sign-out-button:hover{background:var(--color-primary)}.app:has(.app-header) .app-main{padding-top:0;height:calc(100vh - var(--header-height))}.room-grid-table{width:100vw;height:100vh;height:100dvh;background-color:var(--kwp-black);overflow:auto;position:fixed;top:0;left:0;scrollbar-width:none;-ms-overflow-style:none}.room-grid-table::-webkit-scrollbar{display:none}.schedule-grid{position:relative;margin:0;padding:0}.grid-header{position:sticky;top:0;z-index:1020;display:flex;height:60px;background-color:var(--kwp-black);margin:0;padding:0}.time-header{display:flex;align-items:center;justify-content:center;background-color:var(--kwp-black);color:var(--kwp-grey);cursor:pointer}.kwp-logo{width:60px;height:60px;-o-object-fit:contain;object-fit:contain}.room-header{display:flex;align-items:center;justify-content:center;background-color:var(--kwp-grey);color:#fff;padding:0 8px;position:absolute}.grid-divider{position:absolute;top:0;width:1px;border-left:1px solid var(--kwp-black);z-index:5}.grid-body{position:absolute;top:60px;left:0;background-color:var(--kwp-dark-grey);margin:0;padding:0}.time-column-bg{position:absolute;top:0;left:0;width:60px;background-color:var(--kwp-black);z-index:0}.time-line{position:absolute;display:flex;align-items:flex-start}.time-label{width:80px;height:20px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:12px;font-weight:500;color:var(--kwp-grey);background-color:var(--kwp-black);margin-top:-10px}.meeting-block{position:absolute;background-color:var(--kwp-pink);color:#333;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.booking-content{width:100%;height:100%}.booking-subject{font-size:12px;font-family:var(--font-family-bold);font-weight:600;line-height:1.1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.booking-time{font-size:10px;font-family:var(--font-family-light);font-weight:300;line-height:1.2;opacity:.8}.current-time-line{position:absolute;height:1px;background-color:var(--kwp-red);z-index:25;pointer-events:none;box-shadow:0 0 2px var(--kwp-red)}.current-time-label{position:absolute;width:80px;height:20px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:12px;font-weight:500;color:var(--kwp-red);background-color:var(--kwp-black);z-index:26;pointer-events:none}@media (max-width: 1024px){.time-header{width:70px}.time-label,.current-time-label{width:70px;font-size:11px}.booking-subject{font-size:11px}.booking-time{font-size:9px}}@media (orientation: portrait){.room-grid-table{overflow-x:auto}}@media print{.current-time-line,.current-time-label{display:none}.room-grid-table{height:auto;overflow:visible}}.room-detail-new{width:100vw;height:100vh;height:100dvh;background-color:var(--kwp-black);display:flex;position:fixed;top:0;left:0;overflow:hidden}.room-grid-single{flex:0 0 360px;height:100%;background-color:var(--kwp-black);overflow-y:auto;overflow-x:hidden;position:relative;scrollbar-width:none;-ms-overflow-style:none}.room-grid-single::-webkit-scrollbar{display:none}.status-section{flex:1;height:100%;background-color:var(--kwp-black);display:flex;flex-direction:column;overflow:hidden;min-width:0;padding-left:5px}.back-button-discrete{position:absolute;top:10px;right:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px;z-index:100;transition:all .2s ease}.room-info-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#fff;text-align:center;gap:30px;position:relative}.room-status-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#fff;text-align:center;position:relative}.room-detail-new .booking-table .room-header{cursor:pointer}.room-detail-new .room-name{display:flex;align-items:center;justify-content:center;gap:8px}.room-detail-new .back-arrow{font-size:18px;font-weight:700;color:#fff;opacity:.8}.room-logo-placeholder{display:flex;align-items:center;justify-content:center}.logo-circle{width:120px;height:120px;background-color:var(--kwp-red);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px;font-weight:700;color:#fff}.room-name-large{font-size:3.5rem;font-family:var(--font-family-bold);font-weight:600;margin:0;color:#fff;line-height:1.1}.current-time-display{display:flex;flex-direction:column;align-items:center;gap:10px}.time-large{font-size:2.5rem;font-family:var(--font-family-light);font-weight:300;color:#fff;font-variant-numeric:tabular-nums}.date-small{font-size:1.1rem;color:#fffc;font-weight:400}.status-content-large{width:100%;display:flex;flex-direction:column;align-items:center;gap:25px}.status-text-large{font-size:2.8rem;font-family:var(--font-family-bold);font-weight:600;margin-bottom:10px}.status-duration-text{font-size:1.8rem;font-weight:400;margin-bottom:20px;opacity:.9}.current-meeting-info,.next-meeting-info{width:100%;max-width:400px}.meeting-title-large{font-size:1.8rem;font-family:var(--font-family-bold);font-weight:600;margin:0 0 15px;line-height:1.2}.meeting-organizer-large{font-size:1.2rem;font-family:var(--font-family-light);font-weight:300;margin:0 0 10px;opacity:.9}.meeting-time-large{font-size:1.4rem;margin:0;font-weight:500;opacity:.95}.next-meeting-title{font-size:1.4rem;font-weight:600;margin:0 0 10px}.next-meeting-time{font-size:1.2rem;margin:0;opacity:.9}.room-info-panel .quick-book-buttons{position:absolute;right:15px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:15px;width:140px}.quick-book-btn{background-color:var(--kwp-grey);color:#fff;border:none;border-radius:0;padding:20px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center;line-height:1.2;width:140px;height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.btn-line-1{font-size:.9rem;font-weight:700;letter-spacing:.5px}.btn-line-2{font-size:1.1rem;font-weight:600}.btn-line-3{font-size:.8rem;font-weight:500;opacity:.9}.booking-confirmation-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.booking-confirmation-dialog{background-color:var(--kwp-black);border:2px solid #3C3C3C;border-radius:0;padding:40px;min-width:400px;max-width:500px;text-align:center;color:#fff}.confirmation-title{font-size:2rem;font-weight:600;margin:0 0 30px;color:#fff}.confirmation-details{margin:30px 0}.confirmation-booking-time{font-size:1.5rem;font-weight:500;color:var(--kwp-grey);margin:10px 0}.confirmation-buttons{display:flex;gap:20px;justify-content:center;margin-top:40px}.confirmation-btn{background-color:var(--kwp-grey);color:#fff;border:none;border-radius:0;padding:16px 32px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:120px;text-align:center}.confirmation-btn-yes{background-color:var(--kwp-red)}.confirmation-btn-no{background-color:#5a6075}@media (max-width: 1024px){.room-detail-new{gap:1px}.quadrant-top-left,.quadrant-bottom-left{padding:20px}.quadrant-right{padding:10px}.room-name-large{font-size:2.8rem}.logo-circle{width:100px;height:100px;font-size:40px}.time-large{font-size:2rem}.status-text-large{font-size:2.2rem}.meeting-title-large{font-size:1.5rem}}@media (orientation: portrait){.room-detail-new{grid-template-columns:1fr;grid-template-rows:1fr 1fr 2fr;grid-template-areas:"top-left" "bottom-left" "right"}.quadrant-right{grid-area:right}.room-name-large{font-size:2.5rem}.status-text-large{font-size:2rem}}
