:root{--color-primary: #5a7247;--color-primary-hover: #4a6038;--color-primary-light: rgba(90, 114, 71, .08);--color-bg: #faf8f5;--color-card: #ffffff;--color-sidebar: #3d3329;--color-sidebar-hover: rgba(255, 255, 255, .08);--color-sidebar-text: #c4b9ab;--color-text: #3d3329;--color-text-secondary: #8a7e72;--color-text-muted: #b0a89e;--color-border: #e0dbd4;--color-border-light: #ece8e2;--color-surface: #f3efe9;--color-danger: #c0392b;--color-success: #5a7247;--color-info: #6b8fa3;font-family:"Source Sans 3",DIN Next,Arial,Helvetica,sans-serif;line-height:1.5;font-weight:400;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}a{font-weight:500;color:var(--color-primary);text-decoration:none}body{margin:0;min-width:320px;min-height:100vh}p{margin:0}h1,h2,h3{font-family:Playfair Display,Lulo Clean,Georgia,serif;font-weight:700;color:var(--color-text);margin:0}h1{font-size:1.8rem;line-height:1.2}h2{font-size:1.4rem}h3{font-size:1.1rem}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--color-text-muted);font-size:.95rem}.app-no-access{display:flex;align-items:center;justify-content:center;height:100vh}.app-no-access-card{text-align:center;padding:2rem}.app-no-access-card h2{margin-bottom:.5rem}.app-no-access-card p{color:var(--color-text-muted);margin-bottom:.3rem;font-size:.9rem}.app-debug-banner{position:fixed;top:0;left:0;right:0;z-index:9999;padding:.35rem 1rem;background:#fef9c3;border-bottom:1px solid #eab308;font-size:.75rem;font-family:monospace;color:#713f12}.app-no-access-card .btn-primary{margin-top:1.2rem;display:inline-flex;align-items:center;gap:.35rem;background:var(--color-primary);color:#fff;border:none;padding:.5rem 1.5rem;border-radius:6px;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;background:var(--color-sidebar);padding:1rem .75rem;display:flex;flex-direction:column;flex-shrink:0;height:100vh;overflow-y:auto}.sidebar-title{font-family:Playfair Display,Georgia,serif;font-size:1.15rem;font-weight:700;margin:0;padding:0 .5rem;margin-bottom:.2rem;color:#f0ebe4;letter-spacing:.02em}.sidebar-subtitle{display:flex;align-items:center;gap:.4rem;font-size:.65rem;color:var(--color-sidebar-text);padding:0 .5rem;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.15em;font-weight:300}.sidebar-role-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid rgba(240,235,228,.25);color:#f0ebe4}.sidebar-date{padding:.4rem .5rem;margin-bottom:.2rem;display:flex;flex-direction:column;gap:.1rem;background:var(--color-sidebar-hover);border-radius:6px}.sidebar-date-main{font-size:.8rem;font-weight:600;color:#f0ebe4}.sidebar-date-kw{font-size:.65rem;color:var(--color-sidebar-text);font-weight:500}.sidebar-tenant{padding:.5rem;margin-bottom:.75rem;display:flex;flex-direction:column;gap:.3rem}.sidebar-tenant-name{font-size:.85rem;font-weight:600;color:#f0ebe4;font-family:Playfair Display,Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-tenant-role{display:flex;align-items:center;justify-content:space-between}.sidebar-tenant-role-info{display:flex;align-items:center;gap:.4rem;font-size:.65rem;color:var(--color-sidebar-text);text-transform:uppercase;letter-spacing:.15em;font-weight:300}.btn-logout-sm{display:flex;align-items:center;background:transparent;border:1px solid rgba(240,235,228,.15);color:var(--color-sidebar-text);padding:.3rem;border-radius:5px;cursor:pointer;transition:background .15s,color .15s}.btn-logout-sm:hover{background:var(--color-sidebar-hover);color:#f0ebe4}.sidebar nav{display:flex;flex-direction:column;gap:.2rem}.nav-group-label{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-sidebar-text);opacity:.5;padding:.4rem .5rem .1rem;margin-top:.25rem}.sidebar nav a{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:6px;color:var(--color-sidebar-text);font-weight:500;font-size:.85rem;transition:background .15s,color .15s}.sidebar nav a:hover{background:var(--color-sidebar-hover);color:#f0ebe4}.sidebar nav a.active{background:var(--color-primary);color:#fff}.nav-tenant-info{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem;border-radius:6px;background:var(--color-sidebar-hover);color:#f0ebe4;font-size:.8rem;font-weight:600}.nav-tenant-info span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{margin-top:auto;padding-top:.5rem}.btn-logout{width:100%;display:flex;align-items:center;gap:.5rem;background:transparent;border:1px solid var(--color-sidebar-hover);color:var(--color-sidebar-text);padding:.4rem .5rem;border-radius:6px;font-size:.8rem;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}.btn-logout:hover{background:var(--color-sidebar-hover);color:#f0ebe4}.main-content{flex:1;padding:2rem;overflow-y:auto;height:100vh}.admin-sidebar{background:#1e293b}.admin-logo-icon{background:#6383ff33!important;color:#a5b4fc!important}.admin-subtitle{display:flex;align-items:center;gap:.35rem;color:#94a3b8!important}.admin-sidebar nav a{color:#94a3b8}.admin-sidebar nav a:hover{background:#ffffff14;color:#e2e8f0}.admin-sidebar nav a.active{background:#3b82f6;color:#fff}.admin-sidebar .sidebar-date{background:#ffffff0f}.admin-sidebar .sidebar-header h2{color:#e2e8f0}.admin-sidebar .btn-logout{border-color:#ffffff1a;color:#94a3b8}.admin-sidebar .btn-logout:hover{background:#ffffff14;color:#e2e8f0}.admin-main-wrapper{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden}.admin-header-bar{display:flex;align-items:center;justify-content:flex-end;padding:.6rem 2rem;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.admin-header-user{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--color-text-muted)}.admin-main-wrapper .main-content{flex:1;overflow-y:auto}.dashboard{height:100%}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;align-items:start}.dashboard-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1rem}.dashboard-card h3{margin:0 0 .75rem;font-size:.9rem;display:flex;justify-content:space-between;align-items:baseline}.weather-section{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-light)}.weather-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.weather-section h4{margin:0 0 .5rem;font-size:.78rem;font-weight:600;color:var(--color-text-secondary)}@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}}.weather-current{display:flex;align-items:center;gap:.75rem}.weather-emoji{font-size:2.2rem;line-height:1}.weather-temp{font-size:2rem;font-weight:700;color:var(--color-text)}.weather-details{margin-top:.4rem;font-size:.82rem;color:var(--color-text-secondary);display:flex;gap:1rem}.weather-loading{color:var(--color-text-muted);font-size:.85rem}.weather-error{color:var(--color-danger);font-size:.85rem}.today-date-kw{font-size:.72rem;color:var(--color-text-muted);font-weight:500}.forecast{display:grid;grid-template-columns:repeat(5,1fr);gap:.3rem}.forecast-day{display:flex;flex-direction:column;align-items:center;gap:.15rem;text-align:center}.forecast-label{font-size:.7rem;color:var(--color-text-secondary);font-weight:500}.forecast-emoji{font-size:1.2rem}.forecast-temps{display:flex;flex-direction:column;align-items:center;font-size:.75rem;gap:0}.temp-max{font-weight:600}.temp-min{color:var(--color-text-muted)}.biowetter-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.biowetter-label{font-size:.72rem;color:var(--color-text-secondary);width:95px;flex-shrink:0}.biowetter-bar{display:flex;gap:2px}.biowetter-dot{width:12px;height:5px;border-radius:2px;background:var(--color-border)}.biowetter-dot.active{background:#5a7247}.biowetter-dot.active.warn{background:#d97706}.biowetter-text{font-size:.68rem;color:var(--color-text-muted);white-space:nowrap}.unwetter-none{font-size:.78rem;color:var(--color-text-muted);margin:0}.unwetter-item,.civil-alert-item{padding:.4rem .5rem;border-radius:5px;margin-bottom:.4rem;border-left:3px solid;font-size:.78rem}.unwetter-item.severity-0,.unwetter-item.severity-1{background:#fefce8;border-left-color:#eab308}.unwetter-item.severity-2{background:#fff7ed;border-left-color:#f97316}.unwetter-item.severity-3{background:#fef2f2;border-left-color:#ef4444}.unwetter-item.severity-4{background:#fef2f2;border-left-color:#991b1b}.unwetter-type{font-size:.78rem;font-weight:600;color:var(--color-text)}.unwetter-text{font-size:.72rem;color:var(--color-text-secondary);margin-top:.15rem}.unwetter-time{font-size:.68rem;color:var(--color-text-muted);margin-top:.1rem}.civil-alert-item{background:#f0f4ff;border-left-color:#3b82f6}.civil-alert-item.severity-minor{background:#fefce8;border-left-color:#eab308}.civil-alert-item.severity-moderate{background:#fff7ed;border-left-color:#f97316}.civil-alert-item.severity-severe{background:#fef2f2;border-left-color:#ef4444}.civil-alert-item.severity-extreme{background:#fef2f2;border-left-color:#991b1b}.civil-fallback{display:flex;flex-direction:column;gap:.3rem}.civil-fallback-link{font-size:.75rem;color:var(--color-primary);text-decoration:none;font-weight:500}.civil-fallback-link:hover{text-decoration:underline}.empty-hint{color:var(--color-text-muted);font-size:.85rem;margin:0}.arrival-table{width:100%;border-collapse:collapse;font-size:.8rem}.arrival-table th{text-align:left;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:0 .4rem .4rem 0;border-bottom:1px solid var(--color-border-light)}.arrival-table td{padding:.4rem .4rem .4rem 0;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.arrival-table tr:last-child td{border-bottom:none}.room-col{white-space:nowrap}.dashboard .room-badge{display:inline-block;background:#5a7247;color:#fff;font-weight:700;font-size:.75rem;width:26px;height:26px;line-height:26px;text-align:center;border-radius:5px;border:none}.building-hint{display:block;font-size:.58rem;color:var(--color-text-muted);margin-top:.1rem}.guest-name{font-weight:600;font-size:.82rem}.badge-new{display:inline-block;margin-left:.3rem;padding:.05rem .3rem;border-radius:3px;font-size:.6rem;font-weight:600;background:#dbeafe;color:#1d4ed8;vertical-align:middle}.btn-action{padding:.2rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600;cursor:pointer;border:none;white-space:nowrap}.btn-checkin{background:#5a7247;color:#fff}.btn-checkin:hover{background:#4a6139}.btn-checkout{background:#2563eb;color:#fff}.btn-checkout:hover{background:#1d4ed8}.done-section{margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--color-border-light)}.done-section h4{margin:0 0 .35rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:600}.done-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}.done-list li{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--color-text-secondary);background:var(--color-surface);padding:.2rem .4rem;border-radius:4px}.done-list .room-badge{width:20px;height:20px;line-height:20px;font-size:.65rem;opacity:.7}.confirm-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.confirm-dialog{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem;min-width:300px;max-width:380px}.confirm-dialog p{margin:0 0 1rem;font-size:.9rem;font-weight:500}.confirm-actions{display:flex;justify-content:flex-end;gap:.6rem}.confirm-actions .btn-secondary{background:transparent;border:1px solid var(--color-border);border-radius:5px;padding:.35rem .7rem;font-size:.78rem;cursor:pointer;color:var(--color-text-secondary)}.confirm-actions .btn-action{padding:.35rem .7rem;font-size:.78rem}.guests-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.guests-header h1{margin:0}.guests-count{background:var(--color-surface);padding:.3rem .8rem;border-radius:6px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.guests-controls{margin-bottom:1rem}.guests-search{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .75rem;font-size:.9rem;color:var(--color-text);font-family:inherit;width:100%;max-width:400px}.guests-search:focus{outline:none;border-color:var(--color-primary)}.guests-empty{color:var(--color-text-muted);padding:2rem;text-align:center}.guest-row{cursor:pointer}.guest-name-col{font-weight:600}.guest-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.guest-detail-item{display:flex;flex-direction:column;gap:.2rem}.detail-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:600}.guest-stays-title{margin:0 0 .75rem;font-size:1rem}.guest-stays-table{width:100%;border-collapse:collapse;font-size:.85rem}.guest-stays-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:0 .5rem .5rem 0;border-bottom:1px solid var(--color-border-light)}.guest-stays-table td{padding:.5rem .5rem .5rem 0;border-bottom:1px solid var(--color-border-light)}.guest-stays-table tr:last-child td{border-bottom:none}.guest-stays-table .status-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap}.guest-stays-table .status-offen{background:#e0e7ff;color:#3730a3}.guest-stays-table .status-eingecheckt{background:#dcfce7;color:#166534}.guest-stays-table .status-ausgecheckt{background:#f3f4f6;color:#6b7280}.guest-stays-table .status-no-show{background:#fee2e2;color:#991b1b}.pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem}.pagination button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.35rem .7rem;font-size:1rem;cursor:pointer;color:var(--color-text);font-family:inherit}.pagination button:hover:not(:disabled){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pagination button:disabled{opacity:.4;cursor:default}.pagination-info{font-size:.85rem;color:var(--color-text-secondary)}.btn-primary{background:var(--color-primary);color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);padding:.6rem 1.2rem;border-radius:6px;font-size:.95rem;cursor:pointer;font-family:inherit}.btn-secondary:hover{border-color:var(--color-text-muted);color:var(--color-text)}.btn-delete{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger);padding:.3rem .6rem;border-radius:6px;font-size:.8rem;cursor:pointer}.btn-delete:hover{background:var(--color-danger);color:#fff}.modal-overlay{position:fixed;inset:0;background:#3d332980;display:flex;align-items:flex-start;justify-content:center;padding:2rem;z-index:100;overflow-y:auto}.modal{background:var(--color-card);border-radius:10px;padding:2rem;width:100%;max-width:720px;margin-top:2rem;box-shadow:0 8px 32px #3d332926}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.modal-header h2{margin:0;font-size:1.4rem}form fieldset{border:1px solid var(--color-border);border-radius:8px;padding:1rem 1.25rem;margin:0 0 1rem}form legend{font-weight:600;font-size:.9rem;color:var(--color-text-secondary);padding:0 .5rem;text-transform:uppercase;letter-spacing:.05em}.form-row{display:flex;gap:1rem;margin-bottom:.75rem}.form-row:last-child{margin-bottom:0}.form-row label{display:flex;flex-direction:column;flex:1;font-size:.85rem;color:var(--color-text-secondary);gap:.3rem}.form-row label.full-width{flex:1 1 100%}form input,form select,form textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .6rem;color:var(--color-text);font-size:.95rem;font-family:inherit;width:100%}form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--color-primary)}form textarea{resize:vertical;width:100%}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.guests-table-wrapper{overflow-x:auto}.guests-table{width:100%;border-collapse:collapse;font-size:.9rem}.guests-table th,.guests-table td{text-align:left;padding:.75rem 1rem;white-space:nowrap}.guests-table thead th{color:var(--color-text-secondary);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.guests-table tbody tr{border-bottom:1px solid var(--color-border-light)}.guests-table tbody tr:hover{background:var(--color-primary-light)}@media(max-width:640px){.form-row{flex-direction:column}}.month-picker-wrapper{position:relative}.month-label{font-size:1rem;min-width:170px;text-align:center;cursor:pointer;padding:.2rem .5rem;border-radius:4px;transition:background .15s;-webkit-user-select:none;user-select:none;margin:0}.month-label:hover{background:var(--color-surface)}.month-picker{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 8px 32px #3d332926;padding:.75rem;z-index:100;width:280px}.month-picker-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border-light)}.month-picker-nav-btn{background:none;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);cursor:pointer;font-size:1rem;line-height:1;padding:.2rem .5rem;font-family:inherit}.month-picker-nav-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.month-picker-nav-range{font-size:.8rem;font-weight:600;color:var(--color-text-secondary)}.month-picker-year{margin-bottom:.5rem}.month-picker-year:last-child{margin-bottom:0}.month-picker-year-label{font-size:.75rem;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;padding-left:.2rem}.month-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.2rem}.month-picker-btn{background:none;border:1px solid transparent;border-radius:4px;padding:.3rem .2rem;font-size:.75rem;font-family:inherit;cursor:pointer;color:var(--color-text);text-align:center;transition:background .1s,border-color .1s}.month-picker-btn:hover{background:var(--color-surface);border-color:var(--color-border)}.month-picker-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.calendar-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;background:var(--color-surface)}.room-header{position:sticky;left:0;top:0;z-index:10;background:var(--color-surface);padding:.2rem .3rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);min-width:30px;text-align:center}.building-header{position:sticky;left:0;z-index:2;background:var(--color-border);padding:.3rem .75rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.room-label{position:sticky;left:0;z-index:2;background:var(--color-card);padding:.2rem .3rem;font-weight:600;font-size:.75rem;text-align:center;white-space:nowrap;color:var(--color-text)}.day-header-row th{position:sticky;top:0;z-index:50;background:var(--color-surface)}.overnight-dot{position:absolute;left:-4px;top:25px;z-index:60;width:8px;height:8px;border-radius:50%;background:var(--color-primary);pointer-events:none}.day-header.booking-highlight{z-index:53}.day-header.booking-highlight:before{content:"";position:absolute;inset:0;border-top:4px solid var(--color-primary);border-bottom:4px solid var(--color-primary);pointer-events:none;z-index:61}.day-header.booking-highlight-first:before{border-left:4px solid var(--color-primary)}.day-header.booking-highlight-last:before{border-right:4px solid var(--color-primary)}.day-header.booking-highlight:not(.booking-highlight-first) .overnight-dot{display:block}.school-holiday-tooltip{z-index:1000!important;padding:.35rem .65rem!important;border-radius:6px!important;font-size:.8rem!important;background:#6b8fa3!important;color:#fff!important}.special-period-tooltip{z-index:1000!important;padding:.35rem .65rem!important;border-radius:6px!important;font-size:.8rem!important;background:#e67e22!important;color:#fff!important}.calendar-page .modal{max-width:640px;width:calc(100% - 2rem)}.guest-count-hint{font-weight:400;font-size:.8rem;color:var(--color-text-muted);margin-left:.25rem}.booking-guest-list{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.booking-guest-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px}.booking-guest-item.is-main{border-color:var(--color-primary);background:#5a72470f}.booking-guest-star{background:none;border:none;cursor:pointer;padding:0;color:var(--color-text-muted);display:flex;align-items:center}.booking-guest-item.is-main .booking-guest-star{color:var(--color-primary)}.booking-guest-info{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.booking-guest-name{font-weight:600;font-size:.9rem}.booking-guest-detail{font-size:.75rem;color:var(--color-text-muted)}.booking-guest-remove{background:none;border:none;cursor:pointer;padding:.2rem;color:var(--color-text-muted);display:flex;align-items:center}.booking-guest-remove:hover{color:var(--color-danger)}.booking-guest-actions{display:flex;gap:.5rem;margin-bottom:.5rem}.btn-guest-action{display:inline-flex;align-items:center;gap:.35rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.4rem .75rem;font-size:.85rem;cursor:pointer;color:var(--color-text-secondary);font-family:inherit}.btn-guest-action:hover{border-color:var(--color-primary);color:var(--color-primary)}.guest-search-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.6rem;margin-top:.5rem}.guest-search-panel input{width:100%;margin-bottom:.5rem}.guest-search-results{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem}.guest-search-item{display:flex;flex-direction:column;gap:.1rem;background:none;border:none;text-align:left;padding:.4rem .5rem;border-radius:4px;cursor:pointer;font-family:inherit;width:100%}.guest-search-item:hover{background:#5a724714}.guest-search-name{font-weight:600;font-size:.85rem;color:var(--color-text)}.guest-search-detail{font-size:.75rem;color:var(--color-text-muted)}.guest-search-empty{text-align:center;padding:.75rem;color:var(--color-text-muted);font-size:.85rem}.btn-guest-close{background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--color-text-muted);padding:.3rem 0;margin-top:.3rem;font-family:inherit}.btn-guest-close:hover{color:var(--color-text)}.new-guest-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.75rem;margin-top:.5rem}.new-guest-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.new-guest-actions .btn-primary,.new-guest-actions .btn-secondary{padding:.4rem .8rem;font-size:.85rem}.group-lookup-field{display:flex;align-items:center;gap:.5rem;min-height:2.2rem}.group-lookup-name{font-weight:600;font-size:.9rem;color:var(--color-text)}.group-lookup-clear{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:.2rem;display:flex;align-items:center}.group-lookup-clear:hover{color:#c0392b}.group-lookup-btn{display:flex;align-items:center;gap:.4rem;background:none;border:1px solid var(--color-border);border-radius:6px;padding:.4rem .75rem;font-size:.85rem;font-family:inherit;color:var(--color-text-secondary);cursor:pointer}.group-lookup-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.group-search-modal{min-width:380px}.group-search-input{width:100%;margin-bottom:.5rem}.group-search-results{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem}.group-search-item{display:flex;flex-direction:column;gap:.1rem;background:none;border:none;padding:.5rem .6rem;border-radius:4px;cursor:pointer;text-align:left;font-family:inherit;width:100%}.group-search-item:hover{background:#5a724714}.group-search-name{font-weight:600;font-size:.85rem;color:var(--color-text)}.group-search-detail{font-size:.75rem;color:var(--color-text-muted)}.group-search-empty{text-align:center;padding:.75rem;color:var(--color-text-muted);font-size:.85rem}.confirm-modal{text-align:center;max-width:380px}.confirm-modal-icon{font-size:2.5rem;line-height:1;margin-bottom:.5rem;color:#c0392b}.confirm-modal-title{font-size:1.1rem;font-weight:700;margin:0 0 .5rem;color:var(--color-text)}.confirm-modal-text{font-size:.9rem;color:var(--color-text-secondary);margin:0 0 1.25rem;line-height:1.5}.confirm-modal-actions{display:flex;gap:.75rem;justify-content:center}.confirm-modal-actions .btn-delete,.confirm-modal-actions .btn-secondary{padding:.5rem 1.25rem}.calendar-page{margin:-2rem;padding:.75rem;height:calc(100vh + -0px);display:flex;flex-direction:column}.occupancy-badge{background:#5a72471a;padding:.35rem .8rem;border-radius:6px;font-size:.85rem;font-weight:600;color:var(--color-primary);margin-left:auto}.calendar-nav{display:flex;align-items:center;gap:.25rem;margin-bottom:.75rem;position:relative}.calendar-nav>button{background:none;border:none;color:var(--color-text-muted);padding:.2rem .4rem;font-size:1rem;cursor:pointer;line-height:1;border-radius:4px}.calendar-nav>button:hover{color:var(--color-primary);background:var(--color-surface)}.calendar-nav .btn-today{font-size:.75rem;padding:.2rem .6rem;margin-right:.25rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-card);color:var(--color-text-secondary)}.calendar-nav .btn-today:hover{border-color:var(--color-primary);color:var(--color-primary)}.year-label{font-size:1rem;min-width:50px;text-align:center;margin:0;-webkit-user-select:none;user-select:none}.month-tabs{display:flex;gap:2px;margin-left:.75rem;margin-right:.5rem}.month-tab{background:none;border:1px solid transparent;border-radius:4px;padding:.2rem .4rem;font-size:.7rem;font-family:inherit;cursor:pointer;color:var(--color-text-secondary);transition:background .1s,border-color .1s,color .1s}.month-tab:hover{background:var(--color-surface);border-color:var(--color-border)}.month-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-toggle-occupancy{font-size:.75rem;padding:.2rem .6rem;margin-left:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-card);color:var(--color-text-secondary);cursor:pointer}.btn-toggle-occupancy:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-toggle-occupancy.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.calendar-table-wrapper{overflow:auto;border-radius:10px;border:1px solid var(--color-border);flex:1;min-height:0}.calendar-table{border-collapse:separate;border-spacing:0;width:max-content;background:var(--color-surface)}.calendar-table th,.calendar-table td{border:none;border-bottom:1px solid var(--color-border-light)}.day-header-row th{position:sticky;z-index:50;background:var(--color-surface)}.day-header.has-bar-label{z-index:52}.day-header-corner{z-index:55!important;background:var(--color-surface)!important}.day-header{background:var(--color-surface);padding:.15rem .1rem 53px;text-align:center;min-width:38px;vertical-align:bottom;font-size:.65rem;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);position:relative}.header-bar{position:absolute;left:0;right:0;height:15px;background:transparent;overflow:visible}.header-bar.holiday-bar{bottom:36px}.header-bar.holiday-bar.active{background:#c0392bd9}.header-bar.school-bar{bottom:19px}.header-bar.school-bar.active{background:#6b8fa3}.header-bar.special-period-bar{bottom:2px}.header-bar.special-period-bar.active{background:#e67e22}.header-bar.bar-start{border-top-left-radius:8px;border-bottom-left-radius:8px}.header-bar.bar-end{border-top-right-radius:8px;border-bottom-right-radius:8px}.bar-label{position:absolute;top:0;left:0;height:100%;display:block;line-height:15px;text-align:center;font-size:.6rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:60}.day-month-label{display:block;font-size:.55rem;font-weight:700;text-transform:uppercase;color:var(--color-primary);letter-spacing:.03em}.day-header .day-name{display:block;font-size:.55rem;text-transform:uppercase;opacity:.7}.day-header .day-num{display:block}.day-header.month-start{border-left:2px solid var(--color-primary)}.room-header{position:sticky;left:0;z-index:25;background:var(--color-surface);padding:.2rem .3rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);min-width:30px;text-align:center;border-right:1px solid var(--color-border)}.building-header-row{background:var(--color-border)}.building-header{position:relative;z-index:1;background:var(--color-border);padding:0;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.building-header-label{position:sticky;left:0;display:inline-block;padding:.3rem .75rem}.room-label{position:sticky;left:0;z-index:10;background:var(--color-card);padding:.2rem .3rem;font-weight:600;font-size:.75rem;text-align:center;white-space:nowrap;color:var(--color-text);border-right:1px solid var(--color-border)}.overnight-dot{position:absolute;right:1px;top:50%;transform:translateY(-50%);z-index:1;width:7px;height:7px;border-radius:50%;background:var(--color-primary);pointer-events:none}.day-header .day-name{display:block;font-size:.6rem;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.03em}.day-header .day-num{display:block;font-size:.8rem;font-weight:600;color:var(--color-text)}.day-header.weekend{background:#f7f4ef}.day-header.weekend .day-num{color:var(--color-text-muted)}.day-header.today{background:var(--color-primary)}.day-header.today .day-name{color:#fffc}.day-header.today .day-num{color:#fff}.day-header.holiday{background:#fdf2f1}.day-header.holiday .day-num{color:var(--color-danger)}.cal-cell{background:var(--color-card);padding:0;height:32px;max-height:32px;min-width:38px;position:relative;overflow:hidden;z-index:1}.cal-cell.month-start{border-left:2px solid var(--color-primary)}.cal-cell.weekend{background:#f7f4ef}.cal-cell.today{background:#5a724714}.cal-cell.holiday{background:#c0392b0a}.cal-cell.school-holiday{background:#6b8fa30a}.day-header.hover-col{background:var(--color-border)!important}.day-header.hover-col .day-num{color:var(--color-text)!important}.calendar-year-table .day-header.booking-highlight{z-index:53}.calendar-year-table .day-header.booking-highlight:before{content:"";position:absolute;inset:0;border-top:4px solid var(--color-primary);border-bottom:4px solid var(--color-primary);pointer-events:none;z-index:61}.calendar-year-table .day-header.booking-highlight-first:before{border-left:4px solid var(--color-primary)}.calendar-year-table .day-header.booking-highlight-last:before{border-right:4px solid var(--color-primary)}.calendar-year-table .day-header.booking-highlight:not(.booking-highlight-first):after{content:"";position:absolute;left:-4px;top:25px;width:8px;height:8px;border-radius:50%;background:var(--color-primary);z-index:60}.hover-row-label{background:var(--color-border)!important;color:var(--color-text)!important}.cal-cell.empty-cell{cursor:default}.cal-cell.empty-cell.bookable{cursor:pointer}.cal-cell.empty-cell.bookable:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:#afe1af}.cal-cell.empty-cell.blocked:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:#e57373}.cal-cell.empty-cell:hover{background:#5a72471a}.single-night-label{position:absolute;right:0;top:0;bottom:0;transform:translate(50%);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#1a1a1a;z-index:10;pointer-events:none;white-space:nowrap}.initial-small{font-size:.7rem;justify-content:flex-start}.cal-cell.booked{padding:0;position:relative}.cal-cell.has-label{overflow:visible;z-index:5}.booking-bar{background:var(--color-surface);border:1px solid var(--color-primary)}.booking-bar.bar-first-visit{background:#c8e6c0}.booking-bar.bar-wish-fulfilled{border-width:2px}.category-badge{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:3px;background:var(--color-primary);color:#fff;font-size:.6rem;font-weight:700;line-height:1;flex-shrink:0;margin-right:4px}.cal-cell.weekend .booking-bar{background:#efe9df}.cal-cell.weekend .booking-bar.bar-first-visit{background:#c8e6c0}.cal-cell.holiday .booking-bar{background:#c0392b1a}.cal-cell.holiday .booking-bar.bar-first-visit{background:#c8e6c0}.cal-cell.school-holiday .booking-bar{background:#6b8fa31a}.cal-cell.school-holiday .booking-bar.bar-first-visit{background:#c8e6c0}.booking-bar.bar-group{background:#dce8f0!important;border-color:#4a7a8a!important}.booking-bar.bar-mid{position:absolute;inset:3px 0;cursor:pointer;border-left:none;border-right:none}.booking-bar.bar-arrive{border-right:none}.booking-bar.bar-depart{border-left:none}.booking-label{position:absolute;left:0;top:0;bottom:0;display:block;font-size:.7rem;font-weight:600;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;line-height:24px;pointer-events:none;z-index:10}.booking-bar.bar-depart,.booking-bar.bar-arrive{position:absolute;top:3px;bottom:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.5rem}.booking-bar.bar-depart{left:0;right:55%;border-top-right-radius:4px;border-bottom-right-radius:4px;justify-content:flex-end;padding-right:2px}.booking-bar.bar-arrive{left:55%;right:0;border-top-left-radius:4px;border-bottom-left-radius:4px;justify-content:flex-start;padding-left:2px}.cal-cell.half-cell .bar-arrive{left:50%;right:0}.cal-cell.half-cell .bar-depart{left:0;right:50%}.half-cell-new{position:absolute;inset:0 0 0 50%;cursor:pointer}.half-cell-new.bookable:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:#afe1af}.half-cell-new.blocked:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:#e57373}.half-cell-new:hover{background:#5a72471a}.half-cell-new-left{left:0;right:50%}.booking-bar.bar-hovered{background:#5a7247!important;border-color:#5a7247!important;z-index:5}.booking-bar.bar-hovered .booking-label{color:#fff}.booking-icon{font-size:.85rem;opacity:.7;flex-shrink:0}.booking-icon.arrival{color:#5a7247}.booking-icon.departure{color:#c0392b}.booking-bar.bar-hovered .booking-icon{color:#fff;opacity:1}.booking-bar.bar-group-sibling{background:#5a724799!important;border-color:#5a724799!important;z-index:4}.booking-bar.bar-group-sibling .booking-label{color:#fff}.booking-bar.bar-group-sibling .booking-icon{color:#fff;opacity:1}.booking-bar.bar-overlap{background:#c0392b!important;border-color:#c0392b!important}.booking-bar.bar-overlap .booking-label{color:#fff}.booking-bar.bar-overlap .booking-icon{color:#fff;opacity:1}.booking-detail{background:var(--color-card);border-radius:10px;padding:1.5rem;width:100%;max-width:400px;box-shadow:0 8px 32px #3d332926}.booking-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.booking-detail-header h2{margin:0;font-size:1.2rem}.btn-close{background:none;border:none;color:var(--color-text-muted);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.btn-close:hover{color:var(--color-text)}.booking-detail-body{display:flex;flex-direction:column;gap:.6rem}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:1px solid var(--color-border-light);font-size:.9rem}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--color-text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.calendar-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.25rem;font-size:.8rem;color:var(--color-text-secondary)}.legend-item{display:flex;align-items:center;gap:.4rem}.legend-dot{width:10px;height:10px;border-radius:3px}.legend-item.holiday .legend-dot{background:#c0392b66}.legend-item.school .legend-dot{background:#6b8fa366}.context-menu{position:fixed;z-index:200;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 16px #3d332926;padding:.25rem;min-width:160px}.context-menu button{display:block;width:100%;background:none;border:none;padding:.5rem .75rem;text-align:left;font-size:.85rem;font-family:inherit;color:var(--color-text);border-radius:5px;cursor:pointer}.context-menu button:hover{background:var(--color-surface);color:var(--color-primary)}@keyframes spin{to{transform:rotate(360deg)}}.group-delete-spinner{width:36px;height:36px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}.hover-panel{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.2rem .8rem;width:fit-content;background:var(--color-card);border:2px solid var(--color-border);border-radius:6px;font-size:.8rem;color:var(--color-text);white-space:nowrap;z-index:10;text-align:center}.hover-panel-name{font-weight:700}.hover-panel-sep{color:var(--color-text-muted)}.calendar-note{margin-top:1rem;font-size:.75rem;color:var(--color-text-muted)}.holiday-tooltip{z-index:1000!important;padding:.35rem .65rem!important;border-radius:6px!important;font-size:.8rem!important;background:var(--color-danger)!important;color:#fff!important}.school-holiday-tooltip{z-index:1000!important;padding:.35rem .65rem!important;border-radius:6px!important;font-size:.8rem!important;background:#3b82f6!important;color:#fff!important}.special-period-tooltip{z-index:1000!important;padding:.35rem .65rem!important;border-radius:6px!important;font-size:.8rem!important;background:#f97316!important;color:#fff!important}.lock-tooltip{z-index:1000!important;padding:.5rem .75rem!important;border-radius:6px!important;max-width:280px!important}.lock-tooltip-content{display:flex;flex-direction:column;gap:.3rem}.lock-tooltip-line{display:flex;align-items:center;gap:.35rem;font-size:.8rem;line-height:1.4}.lock-tooltip-line svg{flex-shrink:0;opacity:.85}.calendar-year-page .modal{max-width:640px;width:calc(100% - 2rem)}.bookings-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.bookings-header h1{margin:0}.bookings-count{background:var(--color-surface);padding:.3rem .8rem;border-radius:6px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.bookings-controls{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.bookings-nav{display:flex;align-items:center;gap:.75rem}.bookings-nav button{background:var(--color-card);border:1px solid var(--color-border);color:var(--color-text);border-radius:6px;padding:.4rem .8rem;font-size:1.2rem;cursor:pointer;line-height:1}.bookings-nav button:hover{border-color:var(--color-primary);color:var(--color-primary)}.bookings-month{font-weight:600;font-size:1.1rem;min-width:160px;text-align:center}.bookings-search{background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .8rem;color:var(--color-text);font-size:.9rem;font-family:inherit;width:280px;max-width:100%}.bookings-search:focus{outline:none;border-color:var(--color-primary)}.bookings-search::placeholder{color:var(--color-text-muted)}.bookings-table-wrapper{overflow-x:auto;border-radius:10px;border:1px solid var(--color-border)}.bookings-table{width:100%;border-collapse:collapse;font-size:.9rem}.bookings-table th,.bookings-table td{text-align:left;padding:.65rem .85rem;white-space:nowrap;vertical-align:top}.bookings-table thead th{background:var(--color-surface);color:var(--color-text-secondary);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:1}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{color:var(--color-primary)}.room-group-header td{background:var(--color-surface);font-weight:700;font-size:.8rem;color:var(--color-primary);padding:.5rem .85rem;border-bottom:1px solid var(--color-border);border-top:2px solid var(--color-border);letter-spacing:.03em;vertical-align:middle}.room-group-header td>*{vertical-align:middle}.bookings-table tbody tr:first-child.room-group-header td{border-top:none}.bookings-table tbody tr{border-bottom:1px solid var(--color-border-light)}.bookings-table tbody tr.room-group-header:hover{background:none}.bookings-table tbody tr.booking-row{cursor:pointer}.bookings-table tbody tr:hover:not(.room-group-header){background:var(--color-primary-light)}.room-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:24px;border-radius:4px;border-left:3px solid;background:var(--color-surface);font-weight:700;font-size:.85rem}.guest-name{font-weight:600}.category-col{font-size:.8rem;color:var(--color-text-secondary)}.group-category{font-weight:400;color:var(--color-text-secondary)}.group-amenities{margin-left:1rem;font-weight:400;display:inline-flex;align-items:center;gap:.25rem}.group-amenities .amenity-icon{display:inline-flex;align-items:center;color:var(--color-primary)}.season-col{font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap}.price-col{font-weight:600;white-space:nowrap}.phone-col{color:var(--color-text-secondary);font-size:.85rem}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap}.status-offen{background:#e0e7ff;color:#3730a3}.status-eingecheckt{background:#dcfce7;color:#166534}.status-ausgecheckt{background:#f3f4f6;color:#6b7280}.status-no-show{background:#fee2e2;color:#991b1b}.bookings-empty{color:var(--color-text-muted);padding:2rem;text-align:center}.booking-guests-cell{display:flex;flex-direction:column;gap:.1rem}.booking-guest-tag{display:inline-flex;align-items:center;gap:.2rem;font-size:.8rem;font-weight:500;color:var(--color-text-secondary)}.booking-guest-tag.is-main{font-weight:700;color:var(--color-text)}.booking-guest-tag .lucide{color:var(--color-primary)}.booking-group-name{font-size:.8rem;color:var(--color-text-muted)}.bookings-table td.group-col{vertical-align:middle;text-align:center}.booking-group-badge{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;font-size:.73rem;font-weight:700;border-radius:4px}.config-badges{display:inline-flex;gap:.25rem}.bookings .config-badge{display:inline-block;font-size:.8rem;font-weight:700;background:var(--color-primary);color:#fff;border:none;padding:.25rem .6rem;border-radius:4px;letter-spacing:.03em}.bookings .config-col{vertical-align:middle}.config-col{white-space:nowrap}.bookings .modal{max-width:640px;width:calc(100% - 2rem)}.booking-conflict-warning{background:#fef3f2;border:1px solid #f04438;border-radius:6px;padding:.75rem 1rem;margin-top:.25rem;color:#b42318;font-size:.85rem;line-height:1.5}.booking-conflict-warning strong{display:block;margin-bottom:.25rem}.booking-conflict-warning ul{margin:0;padding-left:1.25rem}.booking-conflict-warning li{margin-bottom:.1rem}.rooms-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.rooms-header h1{margin:0}.rooms-count{background:var(--color-surface);padding:.3rem .8rem;border-radius:6px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.rooms-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.filter-btn{background:var(--color-card);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:6px;padding:.4rem .8rem;font-size:.8rem;cursor:pointer;font-family:inherit}.filter-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.filter-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.floor-group{margin-bottom:1.5rem}.floor-label{margin:0 0 .75rem;font-size:.85rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border-light);padding-bottom:.4rem}.floor-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.room-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:0;cursor:pointer;transition:border-color .15s,box-shadow .15s;overflow:hidden}.room-card:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #5a72471a}.room-tier-header{background:var(--color-primary);color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.3rem .85rem}.room-card-body{padding:.85rem}.room-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.room-number{font-size:1.3rem;font-weight:800;color:var(--color-primary);flex-shrink:0}.room-building{font-size:.7rem;color:var(--color-text-muted);margin-bottom:.4rem}.room-configs{display:flex;gap:.3rem;margin-bottom:.4rem}.config-badge{font-size:.65rem;font-weight:700;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border-light);padding:.1rem .35rem;border-radius:4px;letter-spacing:.03em}.room-amenities{display:flex;flex-wrap:wrap;gap:.3rem}.amenity-tag{font-size:.65rem;background:var(--color-primary-light);color:var(--color-primary);padding:.15rem .4rem;border-radius:3px}.amenity-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--color-primary)}.amenity-icon-sm{display:inline-flex;align-items:center;color:var(--color-primary)}.room-notes-panel{display:flex;align-items:flex-start;gap:.4rem;padding:.45rem .85rem;background:#5a72470f;border-top:1px solid rgba(90,114,71,.15);font-size:.75rem;color:var(--color-text-muted);line-height:1.4}.room-notes-panel.has-notes{background:#e6be3214;border-top-color:#e6be3240;color:var(--color-text-secondary)}.room-notes-panel.has-notes svg{color:#c4a020}.room-notes-panel svg{flex-shrink:0;color:var(--color-text-muted);margin-top:1px}.amenity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.4rem}.amenity-checkbox{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--color-text);cursor:pointer}.amenity-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.room-context-menu{position:fixed;z-index:200;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 16px #3d332926;padding:.25rem;min-width:170px}.room-context-menu-title{padding:.4rem .75rem .25rem;font-size:.75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.room-context-menu button{display:block;width:100%;background:none;border:none;padding:.5rem .75rem;text-align:left;font-size:.85rem;font-family:inherit;color:var(--color-text);border-radius:5px;cursor:pointer}.room-context-menu button:hover{background:var(--color-surface);color:var(--color-primary)}.clone-modal{max-width:480px}.clone-info{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:1rem;line-height:1.5}.clone-preview{margin-top:.75rem;padding:.6rem .75rem;background:var(--color-surface);border-radius:6px;border:1px solid var(--color-border-light);font-size:.85rem}.clone-preview-label{display:block;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem}.clone-preview-numbers{font-weight:600;color:var(--color-primary);word-break:break-word}.clone-progress{padding:1.5rem}.clone-progress-bar{height:8px;background:var(--color-surface);border-radius:4px;overflow:hidden;border:1px solid var(--color-border-light)}.clone-progress-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .2s ease}.clone-progress-text{margin-top:.75rem;text-align:center;font-size:.9rem;color:var(--color-text-secondary)}.clone-progress-success{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--color-success)}.clone-progress-success p{font-size:.95rem;color:var(--color-text);font-weight:500}.confirm-delete-body{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;text-align:center}.confirm-delete-body svg{color:var(--color-danger, #c44)}.confirm-delete-body p{font-size:.95rem}.confirm-delete-hint{font-size:.8rem!important;color:var(--color-text-muted)}.room-tiers-page{max-width:900px}.room-tiers-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.room-tiers-header h1{margin:0}.tier-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.tier-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem}.tier-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.tier-card-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-text)}.tier-card-count{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);padding:.2rem .6rem;border-radius:4px}.tier-room-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.tier-room-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:.25rem .5rem;font-size:.8rem;font-weight:600;border-radius:5px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.tier-no-rooms{font-size:.85rem;color:var(--color-text-muted)}.btn-edit-tier{background:none;border:1px solid var(--color-primary);color:var(--color-primary);border-radius:6px;padding:.4rem .8rem;font-size:.8rem;font-family:inherit;cursor:pointer}.btn-edit-tier:hover{background:var(--color-primary);color:#fff}.tier-assign-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:.4rem;margin-bottom:1.5rem}.tier-assign-btn{padding:.5rem;font-size:.85rem;font-weight:600;font-family:inherit;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background .15s,border-color .15s}.tier-assign-btn:hover{border-color:var(--color-primary)}.tier-assign-btn.assigned{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.room-amenities-page{max-width:900px}.room-amenities-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.room-amenities-header h1{margin:0}.amenity-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.amenity-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem}.amenity-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.amenity-card-title-row{display:flex;align-items:center;gap:.5rem}.amenity-card-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-primary);flex-shrink:0}.amenity-card-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-text)}.amenity-card-actions{display:flex;align-items:center;gap:.4rem}.amenity-card-count{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);padding:.2rem .6rem;border-radius:4px}.amenity-room-badges{display:flex;flex-wrap:wrap;gap:.4rem}.modal-wide{max-width:520px}.icon-search-input{margin-bottom:.75rem}.icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:4px;max-height:240px;overflow-y:auto;padding:4px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.icon-picker-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:2px solid transparent;border-radius:6px;background:none;color:var(--color-text);cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit}.icon-picker-btn:hover{background:var(--color-card);border-color:var(--color-border)}.icon-picker-btn.selected{border-color:var(--color-primary);background:var(--color-primary-light, rgba(90, 114, 71, .1));color:var(--color-primary)}.icon-picker-none{font-size:1.1rem;font-weight:600;color:var(--color-text-muted)}.icon-picker-preview{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.5rem .75rem;background:var(--color-surface);border-radius:6px;font-size:.85rem;color:var(--color-text-secondary)}.icon-picker-preview svg{color:var(--color-primary)}.room-management-tabs{display:flex;gap:.25rem;margin-bottom:1.5rem;border-bottom:2px solid var(--color-border);padding-bottom:0}.room-management-tab{display:flex;align-items:center;gap:.4rem;padding:.6rem 1rem;font-size:.85rem;font-weight:600;font-family:inherit;color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .15s,border-color .15s}.room-management-tab:hover{color:var(--color-text)}.room-management-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.inquiry-header{margin-bottom:1.5rem}.inquiry-tab-bar{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-bottom:1.5rem;position:sticky;top:-2rem;background:var(--color-bg);z-index:10;padding-top:2rem;margin-top:-2rem}.inquiry-tab{display:flex;align-items:center;gap:.4rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:.6rem 1.25rem;font-size:.9rem;font-family:inherit;font-weight:500;color:var(--color-text-secondary);cursor:pointer}.inquiry-tab:hover{color:var(--color-text)}.inquiry-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}@keyframes tab-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.inquiry-tab-content{animation:tab-fade-in .25s ease-out}.inquiry-config-row{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}.inquiry-config-btn{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.7rem .75rem;background:var(--color-surface);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit;color:var(--color-text-secondary)}.inquiry-config-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.inquiry-config-btn.active{border-color:var(--color-primary);background:#2563eb14;color:var(--color-primary)}.inquiry-config-icons{display:flex;align-items:center;gap:.15rem}.inquiry-config-name{font-size:.78rem;font-weight:500}.inquiry-form-layout{display:flex;gap:1.5rem;align-items:flex-start}.inquiry-form{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1.5rem;width:20%;flex-shrink:0;position:sticky;top:calc(3.7rem + 2px);align-self:flex-start;max-height:calc(100vh - 7.2rem - 2px);overflow-y:auto}.inquiry-nights-label{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.inquiry-nights-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;padding:0;transition:background .15s,color .15s}.inquiry-nights-btn:hover:not(:disabled){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.inquiry-nights-btn:disabled{opacity:.3;cursor:not-allowed}.inquiry-form-vertical{display:flex;flex-direction:column;gap:1rem}.inquiry-form-vertical>label{display:flex;flex-direction:column;font-size:.85rem;color:var(--color-text-secondary);gap:.3rem}.inquiry-form-vertical>label input[type=number]{width:100%;box-sizing:border-box}.inquiry-form-vertical .inquiry-form-row{display:flex;gap:.5rem;align-items:center}.inquiry-form-vertical .inquiry-date-field{display:flex;align-items:center;gap:.4rem;flex:1}.inquiry-date-icon{color:var(--color-text-muted);flex-shrink:0}.inquiry-form-vertical .inquiry-date-field input[type=date]{width:100%;min-width:0;box-sizing:border-box}.inquiry-form-vertical input[type=date],.inquiry-form-vertical input[type=number]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .6rem;color:var(--color-text);font-size:.95rem;font-family:inherit}.inquiry-form-vertical input[type=date]:focus,.inquiry-form-vertical input[type=number]:focus{outline:none;border-color:var(--color-primary)}.inquiry-hint{font-size:.72rem;color:var(--color-text-muted);margin-top:-.1rem}.inquiry-submit-row{display:flex;gap:.5rem;align-items:center}.inquiry-btn{flex:1;white-space:nowrap}.inquiry-btn.btn-danger{background:#c86e14;color:#fff;border:none}.inquiry-btn.btn-danger:hover{background:#aa5a0f}.inquiry-reset-btn{display:flex;align-items:center;justify-content:center;padding:.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-muted);cursor:pointer}.inquiry-reset-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.inquiry-number-inline{width:100%;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .6rem;color:var(--color-text);font-size:.95rem;font-family:inherit}.inquiry-number-inline:focus{outline:none;border-color:var(--color-primary)}.inquiry-slider{width:100%;accent-color:var(--color-primary);cursor:pointer}.inquiry-pref-reset{border-color:#c0392b;color:#c0392b;margin-left:auto}.inquiry-pref-reset:hover{background:#c0392b1a;border-color:#c0392b;color:#c0392b}.inquiry-room-wish{display:flex;flex-direction:column;gap:.3rem;position:relative}.inquiry-room-wish.disabled{opacity:.4;pointer-events:none}.inquiry-label-text{font-size:.85rem;color:var(--color-text-secondary)}.inquiry-room-wish-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .6rem;font-size:.95rem;font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left}.inquiry-room-wish-btn:hover{border-color:var(--color-primary)}.inquiry-room-wish-clear{position:absolute;right:.4rem;bottom:.35rem;background:none;border:none;font-size:1.1rem;color:var(--color-text-muted);cursor:pointer;line-height:1}.inquiry-room-wish-clear:hover{color:#c0392b}@keyframes slide-in-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.inquiry-room-wish-panel{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;width:max-content;flex-shrink:0;display:flex;flex-direction:column;animation:slide-in-right .25s ease-out}.inquiry-room-wish-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.inquiry-panel-close{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.2rem;border-radius:4px}.inquiry-panel-close:hover{color:var(--color-text);background:var(--color-surface)}.inquiry-room-wish-panel-title{font-size:.85rem;font-weight:600}.inquiry-room-wish-list{display:flex;flex-direction:column;overflow-y:auto;padding:0 .75rem .75rem}.inquiry-room-wish-option{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--color-border);padding:.6rem .5rem;font-size:.9rem;font-family:inherit;color:var(--color-text);cursor:pointer;white-space:nowrap}.inquiry-room-wish-option:last-child{border-bottom:none}.inquiry-room-wish-option:hover{background:var(--color-primary-light)}.inquiry-room-wish-option.active{background:#2563eb14;color:var(--color-primary)}.inquiry-room-wish-option.locked{color:#c0392b;opacity:.7;cursor:not-allowed}.inquiry-room-wish-option.locked:hover{background:#c0392b0f}.inquiry-room-wish-option.locked .inquiry-room-wish-number,.inquiry-room-wish-option.locked .inquiry-room-wish-detail,.inquiry-room-wish-option.locked .inquiry-room-wish-amenities{color:#c0392b}.inquiry-room-wish-number{font-weight:700;min-width:2.5rem}.inquiry-room-wish-detail{font-size:.82rem;color:var(--color-text-secondary)}.inquiry-room-wish-group{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);padding:.7rem .5rem .3rem;border-bottom:1px solid var(--color-border)}.inquiry-room-wish-amenities{display:flex;gap:.25rem;margin-left:auto;color:#5a7247;flex-shrink:0}.inquiry-preferences{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}.inquiry-pref-btn{display:flex;align-items:center;justify-content:center;padding:.45rem;background:var(--color-surface);border:2px solid var(--color-border);border-radius:8px;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.inquiry-pref-btn:hover{border-color:var(--color-text-secondary);color:var(--color-text)}.inquiry-pref-btn.active{border-color:#5a7247;background:#5a72471a;color:#5a7247}.inquiry-meta{margin-top:.75rem;font-size:.85rem;color:var(--color-text-secondary)}.inquiry-results{display:flex;flex-direction:column;gap:1.5rem;flex:1;min-width:0}.result-section h2{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;margin-bottom:1rem}.result-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.result-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:.6rem .8rem;transition:background .15s}.result-direct{border-left:4px solid var(--color-success)}.result-direct:hover{background:#5a72470f}.result-swap{border-left:4px solid #e6a817}.result-swap:hover{background:#e6a8170f}.result-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.result-card-header .result-amenities{margin-bottom:0;margin-left:auto}.result-affected-guests{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--color-text-secondary);margin-bottom:.25rem}.result-room-number{font-family:Playfair Display,Georgia,serif;font-size:1.4rem;font-weight:700;color:var(--color-text)}.result-building{font-size:.85rem;color:var(--color-text-secondary)}.result-amenities{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.result-amenity{color:var(--color-text-muted)}.result-status{font-size:.85rem;padding:.3rem .6rem;border-radius:4px}.status-free{background:#5a724714;color:var(--color-success);font-weight:600}.result-swaps{margin-top:.75rem;border-top:1px solid var(--color-border-light);padding-top:.75rem}.result-swaps h4{font-size:.8rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem;font-weight:600}.swap-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0;font-size:.85rem}.swap-row+.swap-row{border-top:1px solid var(--color-border-light)}.swap-booking{flex:1}.swap-booking strong{display:block;color:var(--color-text)}.swap-dates{font-size:.8rem;color:var(--color-text-muted)}.swap-arrow{display:flex;align-items:center;gap:.3rem;color:var(--color-text-secondary);font-weight:600;font-size:.85rem;flex-shrink:0}.swap-target{font-size:.8rem;color:var(--color-text-muted)}.result-empty{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:2rem;text-align:center;color:var(--color-text-secondary)}.result-empty svg{margin-bottom:.75rem;color:var(--color-text-muted)}.result-empty p+p{margin-top:.25rem;font-size:.85rem;color:var(--color-text-muted)}.recommendation{display:flex;align-items:flex-start;gap:.75rem;background:#5a72470f;border:1px solid rgba(90,114,71,.2);border-radius:10px;padding:1.25rem;font-size:.95rem;line-height:1.5}.recommendation svg{flex-shrink:0;color:var(--color-success);margin-top:2px}.recommendation-swap{background:#e6a8170f;border-color:#e6a81740}.recommendation-swap svg{color:#e6a817}.rec-swap-detail{color:var(--color-text-secondary)}.inquiry-season-badge{display:inline-block;margin-left:.75rem;padding:.15rem .5rem;border-radius:4px;background:var(--color-primary);color:#fff;font-size:.75rem;font-weight:600;vertical-align:middle}.inquiry-no-season{margin-left:.75rem;color:#c44;font-size:.8rem;font-weight:600}.result-free-icon{display:flex;align-items:center;color:#5a7247;cursor:pointer}.result-price-total-label{margin-left:auto;font-size:.85rem;font-weight:600;color:var(--color-text);cursor:pointer;white-space:nowrap}.result-price-total-label:hover{color:var(--color-primary)}.inquiry-price-tooltip{z-index:1000!important;padding:.5rem .75rem!important;border-radius:6px!important;font-size:.82rem!important;background:#333!important;color:#fff!important;white-space:pre-line!important;max-width:300px!important}.result-price-info{margin-top:.75rem;padding:.6rem .75rem;background:var(--color-surface);border-radius:6px;border:1px solid var(--color-border-light);font-size:.85rem}.result-price-row{display:flex;justify-content:space-between;align-items:center;padding:.15rem 0}.result-price-label{color:var(--color-text-secondary)}.result-price-value{font-weight:600;color:var(--color-text)}.result-price-total{border-top:1px solid var(--color-border-light);margin-top:.2rem;padding-top:.3rem}.result-price-total .result-price-value{font-size:1rem;color:var(--color-primary)}.result-price-surcharge{font-size:.8rem;color:var(--color-text-muted)}.result-price-surcharge .result-price-value{font-weight:500;font-size:.8rem;color:var(--color-text-secondary)}.result-price-tier{margin-top:.25rem;font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.confirmation-price{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border-light)}.result-multi-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.75rem}.result-room-count{font-family:Playfair Display,Georgia,serif;font-size:1.2rem;font-weight:700;color:var(--color-text)}.result-room-numbers{font-size:.9rem;color:var(--color-text-secondary);font-weight:600}.result-multi-rooms{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.result-room-block{padding:.75rem;border:1px solid var(--color-border-light);border-radius:8px;background:var(--color-surface)}.result-room-block .result-card-header{margin-bottom:.3rem}.result-room-block .result-amenities{margin-bottom:0}.result-room-block .result-price-info{margin-top:.5rem}.result-grand-total{background:#5a72470f;border-color:#5a724733}.result-grand-total .result-price-value{font-size:1.1rem;color:var(--color-primary)}.confirmation-rooms-list{margin-top:.5rem}.confirmation-room-line{font-size:.9rem;color:var(--color-text-secondary);padding:.1rem 0}.result-action{margin-top:1rem;width:100%}.btn-swap-action{background:#c48c14}.btn-swap-action:hover{background:#a87610}.confirmation-modal{text-align:center;max-width:520px}.confirmation-icon{color:var(--color-success);margin-bottom:1rem}.confirmation-modal h2{margin-bottom:1.25rem}.confirmation-details{text-align:left;background:var(--color-surface);border-radius:8px;padding:1.25rem;font-size:.95rem;line-height:1.6}.confirmation-swaps{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.confirmation-swap-line{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--color-text-secondary);padding:.15rem 0}.confirmation-modal .form-actions{justify-content:center}@media(max-width:768px){.inquiry-form-row{flex-direction:column}.result-cards{grid-template-columns:1fr}.swap-row{flex-wrap:wrap}}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.booking-preview-overlay{animation:overlay-fade-in .2s ease-out}.booking-preview-modal{width:max-content;min-width:500px;max-width:calc(100vw - 4rem);max-height:calc(100vh - 4rem);padding:0;animation:modal-scale-in .25s ease-out;display:flex;flex-direction:column}.booking-preview-modal.modal{width:max-content}.booking-preview-table{white-space:nowrap}.booking-preview-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.booking-preview-modal .modal-header h2{margin:0;font-size:1.15rem}.booking-preview-modal .btn-close{display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:1.4rem;color:var(--color-text-muted);cursor:pointer;padding:.2rem;border-radius:4px}.booking-preview-modal .btn-close:hover{color:var(--color-text);background:var(--color-surface)}.booking-preview-meta{font-size:.9rem;color:var(--color-text-secondary);padding:1rem 1.5rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.booking-preview-swaps{margin:0 1.5rem 1rem;padding:.75rem;background:#fff3e0;border:1px solid #ffe0b2;border-radius:6px}.booking-preview-swaps h4{margin:0 0 .5rem;font-size:.85rem;display:flex;align-items:center;gap:.35rem;color:#e65100}.booking-preview-table-wrapper{margin:0 1.5rem;border:1px solid var(--color-border);border-radius:6px;overflow-x:auto}.cont-table-scroll{overflow-y:auto;flex:1 1 0;min-height:10rem}.cont-table-scroll thead{position:sticky;top:0;z-index:1}.booking-preview-table{width:100%;border-collapse:collapse}.booking-preview-table th{text-align:left;padding:.5rem .75rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border);vertical-align:middle}.booking-preview-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border);font-size:.85rem;vertical-align:middle}.booking-preview-table tbody tr:last-child td{border-bottom:none}.booking-preview-table .result-amenities{gap:.25rem;margin-bottom:0}.booking-preview-config-select{padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:4px;font-size:.83rem;font-family:inherit;background:var(--color-card);color:var(--color-text);width:100%}.booking-preview-total{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-top:1px solid var(--color-border);margin-top:1rem;font-size:1rem}.booking-preview-total strong{font-size:1.1rem}.booking-preview-season{padding:0 1.5rem .5rem;font-size:.85rem;color:var(--color-text-secondary)}.booking-preview-modal .form-actions{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.swap-guest-link{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.swap-guest-link:hover{color:var(--color-primary)}.guest-info-modal{width:360px;padding:0!important;animation:modal-scale-in .25s ease-out}.guest-info-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.guest-info-modal .modal-header h2{margin:0;font-size:1.1rem}.guest-info-modal .btn-close{display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:1.4rem;color:var(--color-text-secondary);cursor:pointer;border-radius:6px;width:32px;height:32px}.guest-info-modal .btn-close:hover{color:var(--color-text);background:var(--color-surface)}.guest-info-content{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.guest-info-row{display:flex;justify-content:space-between;align-items:center}.guest-info-label{font-size:.85rem;color:var(--color-text-secondary)}.guest-info-phone-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border-radius:6px;background:var(--color-primary);color:#fff;text-decoration:none;font-size:.9rem;transition:background .15s}.guest-info-phone-btn:hover{background:var(--color-primary-hover, #4a6237)}.cont-group-section{padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.cont-group-section h4{margin:0 0 .75rem;font-size:.95rem}.cont-group-row{display:flex;gap:.5rem;align-items:center}.cont-group-select{flex:1;padding:.4rem .6rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-bg);color:var(--color-text)}.cont-group-new-btn{display:flex;align-items:center;gap:.3rem;white-space:nowrap;font-size:.85rem}.cont-group-form{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.cont-group-form .form-row{display:flex;gap:.75rem}.cont-group-form .form-row label{flex:1;display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--color-text-secondary)}.cont-group-form .form-row input[type=text],.cont-group-form .form-row input[type=date]{padding:.4rem .6rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-bg);color:var(--color-text)}.cont-group-form .form-row input:disabled{opacity:.5}.guest-info-modal .form-actions{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.25rem;border-top:1px solid var(--color-border);margin-top:0}.cont-summary{display:flex;gap:1rem;margin-bottom:1.5rem}.cont-summary-card{flex:1;background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1rem 1.25rem;text-align:center}.cont-summary-card.cont-ok{border-color:#5a724780;background:#5a724714}.cont-summary-card.cont-warn{border-color:#e67e2280;background:#e67e2214}.cont-summary-number{font-size:2rem;font-weight:700;line-height:1.1;color:var(--color-text)}.cont-ok .cont-summary-number{color:#5a7247}.cont-warn .cont-summary-number{color:#c86e14}.cont-summary-label{font-size:.82rem;font-weight:500;color:var(--color-text-secondary);margin-top:.25rem}.cont-summary-detail{font-size:.75rem;color:var(--color-text-muted);margin-top:.15rem}.cont-free-rooms{margin-bottom:1.5rem}.cont-free-rooms h3{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.04em}.cont-building-group{margin-bottom:.5rem}.cont-building-label{display:block;font-size:.8rem;font-weight:600;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:.25rem}.cont-room-badges{display:flex;flex-wrap:wrap;gap:.35rem}.cont-room-badge{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;font-size:.8rem;font-weight:600;border-radius:4px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.cont-room-badge:hover{border-color:#5a7247}.cont-room-badge.active{background:#5a7247;border-color:#5a7247;color:#fff}.cont-action-card{margin-top:.75rem;width:33%;background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.cont-selection-summary{font-size:1.1rem;color:var(--color-text-secondary);font-weight:600;display:flex;align-items:center;gap:.5rem}.cont-selection-required{color:var(--color-text-secondary)}.cont-selection-over{color:#5a7247;font-weight:700}.cont-selection-under{color:#c0392b;font-weight:700}.cont-next-available{display:flex;flex-direction:column;gap:.5rem;width:33%;padding:.75rem 1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;margin-bottom:1rem;font-size:.9rem;color:var(--color-text)}.cont-next-available-header{display:flex;align-items:center;gap:.5rem}.cont-next-available svg{flex-shrink:0;color:var(--color-primary)}.cont-next-btn{align-self:flex-start;padding:.3rem .75rem;border:1px solid var(--color-primary);border-radius:6px;background:none;color:var(--color-primary);font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.cont-next-btn:hover{background:var(--color-primary);color:#fff}.cont-night-table-wrapper h3{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.04em}.cont-night-table{width:100%;border-collapse:collapse;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.cont-night-table th{text-align:left;padding:.5rem .75rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.cont-night-table td{padding:.45rem .75rem;font-size:.85rem;border-bottom:1px solid var(--color-border)}.cont-night-table tbody tr:last-child td{border-bottom:none}.cont-night-warn{background:#e67e220f}.cont-status-ok{color:#5a7247;display:inline-flex;align-items:center}.cont-status-warn{color:#c86e14;display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:500}.groups-page{max-width:1100px}.groups-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.groups-header h1{margin:0}.groups-actions{display:flex;align-items:center;gap:1rem;margin-left:auto}.groups-search{background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .75rem;font-size:.9rem;color:var(--color-text);width:200px}.groups-search:focus{outline:none;border-color:var(--color-primary)}.groups-table-wrapper{background:var(--color-card);border-radius:8px;border:1px solid var(--color-border);overflow:hidden}.groups-table{width:100%;border-collapse:collapse}.groups-table th{text-align:left;padding:.75rem 1rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.groups-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.groups-table tbody tr:last-child td{border-bottom:none}.groups-table tbody tr.group-row{cursor:pointer}.groups-table tbody tr:hover{background:var(--color-primary-light)}.group-name-col{font-weight:600}.group-room-badges{display:flex;gap:.3rem;flex-wrap:wrap}.group-room-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.8rem;padding:.15rem .4rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.group-no-rooms{color:var(--color-text-muted)}.groups-empty{text-align:center;padding:2rem;color:var(--color-text-muted)}.modal-wide{min-width:500px}.group-bookings-fieldset{margin-top:.5rem}.group-assign-table{width:100%;border-collapse:collapse;margin-bottom:.5rem}.group-assign-table th{text-align:left;padding:.4rem .6rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.group-assign-table td{padding:.4rem .6rem;font-size:.85rem;border-bottom:1px solid var(--color-border)}.group-assign-table tbody tr:last-child td{border-bottom:none}.group-assign-empty{color:var(--color-text-muted);font-size:.85rem;margin:.5rem 0}.group-assign-divider{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);margin:.75rem 0 .4rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.btn-remove{background:none;border:1px solid #c0392b;color:#c0392b;border-radius:4px;padding:.2rem .5rem;font-size:.75rem;cursor:pointer}.btn-remove:hover{background:#c0392b;color:#fff}.btn-add{background:none;border:1px solid var(--color-primary);color:var(--color-primary);border-radius:4px;padding:.2rem .5rem;font-size:.75rem;cursor:pointer}.btn-add:hover{background:var(--color-primary);color:#fff}.group-mode-toggle{display:flex;gap:.5rem;margin-bottom:.25rem}.group-mode-btn{display:flex;align-items:center;gap:.4rem;flex:1;padding:.6rem .75rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;font-size:.85rem;font-family:inherit;color:var(--color-text-secondary);cursor:pointer;justify-content:center;transition:border-color .15s,background .15s}.group-mode-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.group-mode-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.group-mode-hint{font-size:.8rem;color:var(--color-text-muted);margin:0 0 .75rem}.group-mode-badge{display:inline-block;padding:.15rem .5rem;font-size:.73rem;font-weight:600;border-radius:4px}.group-mode-sync{background:var(--color-primary);color:#fff}.group-mode-async{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary)}.group-mode-collection{background:#e67e2226;border:1px solid rgba(230,126,34,.5);color:#b45f14}.form-label-block{display:flex;flex-direction:column;gap:.25rem;flex:1}.form-label-text{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.group-confirm-dialog{max-width:400px}.btn-print{padding:.3rem;border-color:transparent;background:none}.btn-print:hover{background:var(--color-surface);border-color:var(--color-border)}.group-confirm-text{font-size:.9rem;margin:0 0 1rem;color:var(--color-text)}.group-leader-lookup{margin-top:.25rem}.group-leader-selected{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;font-size:.85rem;font-weight:500}.group-tab-bar{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-top:.75rem}.group-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:.5rem 1rem;font-size:.85rem;font-family:inherit;font-weight:500;color:var(--color-text-secondary);cursor:pointer}.group-tab:hover{color:var(--color-text)}.group-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.group-tab-content{padding:.75rem 0}.group-member-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.group-member-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;font-size:.78rem;font-weight:500;color:var(--color-text)}.btn-remove-member{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:0;border-radius:50%;line-height:1}.btn-remove-member:hover{color:#c0392b}.group-member-add{position:relative}.group-member-search-row{display:flex;gap:.5rem;align-items:center}.group-member-search{flex:1;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;padding:.45rem .65rem;font-size:.85rem;color:var(--color-text);font-family:inherit}.group-member-search:focus{outline:none;border-color:var(--color-primary)}.btn-icon{display:flex;align-items:center;justify-content:center;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;padding:.4rem;cursor:pointer;color:var(--color-text-secondary)}.btn-icon:hover{border-color:var(--color-primary);color:var(--color-primary)}.group-member-dropdown{position:absolute;left:0;right:40px;top:100%;margin-top:2px;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:20;max-height:200px;overflow-y:auto}.group-member-option{display:block;width:100%;text-align:left;background:none;border:none;padding:.5rem .65rem;font-size:.85rem;font-family:inherit;color:var(--color-text);cursor:pointer}.group-member-option:hover{background:var(--color-primary-light)}.group-member-option+.group-member-option{border-top:1px solid var(--color-border)}.group-member-no-results{font-size:.8rem;color:var(--color-text-muted);margin:.4rem 0 0}.group-new-guest-form{display:flex;gap:.5rem;align-items:center;margin-top:.5rem}.group-new-guest-form input{flex:1;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;padding:.45rem .65rem;font-size:.85rem;color:var(--color-text);font-family:inherit}.group-new-guest-form input:focus{outline:none;border-color:var(--color-primary)}.btn-sm{padding:.4rem .75rem;font-size:.8rem;white-space:nowrap}.group-status-col{width:1.5rem;padding-left:.5rem!important;padding-right:0!important}.group-row-warning{color:#d27814}.group-warning-tooltip{z-index:1000!important;padding:.35rem .65rem!important;border-radius:6px!important;font-size:.8rem!important;background:#333!important;color:#fff!important}.group-leader-warning{display:flex;align-items:center;gap:.4rem;margin:0 0 .5rem;padding:.45rem .7rem;background:#e67e221a;border:1px solid rgba(230,126,34,.35);border-radius:6px;font-size:.82rem;color:#b45f14}.btn-booking-search-open{display:inline-flex;align-items:center;gap:.35rem;margin-top:.75rem;padding:.45rem .85rem;background:var(--color-card);border:1px solid var(--color-primary);border-radius:6px;color:var(--color-primary);font-size:.85rem;font-family:inherit;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.btn-booking-search-open:hover{background:var(--color-primary);color:#fff}.group-booking-search-dialog{min-width:560px;max-width:640px;display:flex;flex-direction:column;max-height:80vh}.group-booking-search-input-row{display:flex;align-items:center;gap:.5rem;padding:0 1.25rem;margin-bottom:.75rem}.group-booking-search-icon{color:var(--color-text-muted);flex-shrink:0}.group-booking-search-input{flex:1;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .75rem;font-size:.9rem;color:var(--color-text);font-family:inherit}.group-booking-search-input:focus{outline:none;border-color:var(--color-primary)}.group-booking-search-list{overflow-y:auto;max-height:50vh;padding:0 1.25rem 1rem}.seasons-page{max-width:1100px}.seasons-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.seasons-header h1{margin:0}.seasons-actions{display:flex;align-items:center;gap:1rem;margin-left:auto}.seasons-table-wrapper{background:var(--color-card);border-radius:8px;border:1px solid var(--color-border);overflow:hidden}.seasons-table{width:100%;border-collapse:collapse}.seasons-table th{text-align:left;padding:.75rem 1rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.seasons-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.seasons-table tbody tr:last-child td{border-bottom:none}.seasons-table tbody tr:hover{background:var(--color-surface)}.season-name-col{font-weight:600}.season-active-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-primary);color:#fff}.season-upcoming-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-surface);border:1px solid var(--color-primary);color:var(--color-primary)}.season-past-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted)}.seasons-empty{text-align:center;padding:2rem;color:var(--color-text-muted)}.prices-page{max-width:900px}.prices-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.prices-header h1{margin:0}.prices-empty{text-align:center;padding:2rem;color:var(--color-text-muted)}.prices-season-section{margin-bottom:2.5rem}.prices-season-active{background:var(--color-surface);border-radius:10px;padding:1.25rem;border:1px solid var(--color-primary)}.prices-season-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-border)}.prices-season-header.active{border-bottom-color:var(--color-primary)}.prices-season-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-text)}.prices-season-dates{font-size:.85rem;color:var(--color-text-secondary)}.prices-season-badge{font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:4px;background:var(--color-primary);color:#fff}.btn-sm{padding:.3rem .7rem;font-size:.8rem}.prices-tier-section{margin-bottom:1.25rem;margin-left:.5rem}.prices-tier-title{font-size:.9rem;font-weight:700;color:var(--color-text-secondary);margin:0 0 .5rem}.prices-table-wrapper{background:var(--color-card);border-radius:8px;border:1px solid var(--color-border);overflow:hidden}.prices-table{width:100%;border-collapse:collapse}.prices-table th{text-align:left;padding:.75rem 1rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.prices-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.prices-table tbody tr:last-child td{border-bottom:none}.prices-table tbody tr:hover{background:var(--color-surface)}.price-category-col{font-weight:600}.prices-empty-row{text-align:center;color:var(--color-text-muted);padding:1.5rem 1rem!important}.overview{max-width:1400px}.overview-header{margin-bottom:1.5rem}.overview-header h1{margin:0}.overview-kpis{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem;display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:2rem}.kpi-item{display:flex;flex-direction:column;gap:.25rem;text-align:center}.kpi-item+.kpi-item{border-left:1px solid var(--color-border-light);padding-left:1rem}.kpi-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);font-weight:600}.kpi-value{font-family:Playfair Display,Georgia,serif;font-size:1.6rem;font-weight:700;color:var(--color-text)}.kpi-sub{font-size:.8rem;color:var(--color-text-muted)}.overview-charts{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.chart-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1rem}.chart-card-wide{grid-column:span 2}.chart-card h3{margin:0 0 .75rem;font-size:.85rem;font-weight:700;color:var(--color-text)}.chart-card .recharts-text{font-size:.7rem}@media(max-width:1024px){.overview-charts{grid-template-columns:repeat(2,1fr)}.chart-card-wide{grid-column:span 2}}@media(max-width:768px){.overview-charts{grid-template-columns:1fr}.chart-card-wide{grid-column:span 1}.overview-kpis{grid-template-columns:repeat(2,1fr)}.kpi-item+.kpi-item{border-left:none;padding-left:0}.kpi-item:nth-child(2n){border-left:1px solid var(--color-border-light);padding-left:1rem}}.company-holidays-page{max-width:1100px}.company-holidays-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.company-holidays-header h1{margin:0}.company-holidays-actions{display:flex;align-items:center;gap:1rem;margin-left:auto}.company-holidays-table-wrapper{background:var(--color-card);border-radius:8px;border:1px solid var(--color-border);overflow:hidden}.company-holidays-table{width:100%;border-collapse:collapse}.company-holidays-table th{text-align:left;padding:.75rem 1rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.company-holidays-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.company-holidays-table tbody tr:last-child td{border-bottom:none}.company-holidays-table tbody tr:hover{background:var(--color-surface)}.ch-name-col{font-weight:600}.ch-active-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-primary);color:#fff}.ch-upcoming-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-surface);border:1px solid var(--color-primary);color:var(--color-primary)}.ch-past-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted)}.ch-blocked-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:#d32f2f18;border:1px solid #d32f2f60;color:#d32f2f}.ch-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--color-text);cursor:pointer;margin:.75rem 0}.ch-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.company-holidays-empty{text-align:center;padding:2rem;color:var(--color-text-muted)}.room-locks-page{max-width:1100px}.room-locks-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.room-locks-header h1{margin:0}.room-locks-actions{display:flex;align-items:center;gap:1rem;margin-left:auto}.room-locks-table-wrapper{background:var(--color-card);border-radius:8px;border:1px solid var(--color-border);overflow:hidden}.room-locks-table{width:100%;border-collapse:collapse}.room-locks-table th{text-align:left;padding:.75rem 1rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.room-locks-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.room-locks-table tbody tr:last-child td{border-bottom:none}.room-locks-table tbody tr:hover{background:var(--color-surface)}.rl-room-col{display:flex;align-items:center;gap:.4rem;font-weight:600;color:#d32f2f}.rl-reason-col{color:var(--color-text-secondary);max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rl-active-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:#d32f2f18;border:1px solid #d32f2f60;color:#d32f2f}.rl-upcoming-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary)}.rl-past-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted)}.room-locks-empty{text-align:center;padding:2rem;color:var(--color-text-muted)}.rl-mode-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.rl-mode-btn{display:flex;align-items:center;gap:.4rem;flex:1;padding:.6rem .75rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:6px;font-size:.85rem;font-family:inherit;color:var(--color-text-secondary);cursor:pointer;justify-content:center;transition:border-color .15s,background .15s}.rl-mode-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.rl-mode-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.admin-tenants{max-width:800px}.tenant-row-clickable{cursor:pointer}.tenant-name{font-weight:600}.tenant-display-name{color:var(--color-text-secondary);font-size:.9rem}.th-role{text-align:center;width:50px;color:var(--color-text-muted)}.tenant-role-count{font-weight:600;font-size:.9rem;text-align:center;color:var(--color-text-secondary)}.tenant-date{color:var(--color-text-muted);font-size:.85rem}.tenant-actions{text-align:right;white-space:nowrap}.btn-icon{background:none;border:1px solid var(--color-border);border-radius:5px;padding:.3rem;cursor:pointer;color:var(--color-text-muted);transition:all .15s;margin-left:.25rem}.modal input[type=text]{padding:.5rem .6rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;font-family:inherit;background:var(--color-card)}.modal input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #5a724726}.tenant-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:2rem}.tenant-detail-card{padding:.75rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px}.tenant-detail-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:.25rem}.tenant-detail-value{font-size:1rem;font-weight:600;color:var(--color-text)}.tenant-detail-section{margin-bottom:2rem}.tenant-detail-section h2{font-size:1rem;margin:0 0 .75rem}.th-count{text-align:center;width:80px}.role-manager{background:#6b8fa31f;color:var(--color-info, #6b8fa3)}.object-type-cell{display:flex;align-items:center;gap:.5rem}.administration{max-width:800px}.admin-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.admin-page-title{display:flex;align-items:center;gap:.5rem}.admin-page-title h1{font-size:1.4rem;margin:0}.admin-loading,.admin-empty{color:var(--color-text-muted);font-size:.9rem;padding:2rem 0}.admin-error{color:#dc2626;font-size:.9rem;padding:1rem;background:#fee2e2;border-radius:6px;border:1px solid #fca5a5}.admin-tenant-card{padding:1.25rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px}.admin-tenant-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:.3rem}.admin-tenant-name{font-size:1.2rem;font-weight:700;font-family:Playfair Display,Georgia,serif;color:var(--color-text)}.admin-tenant-role{margin-top:.3rem;font-size:.85rem;color:var(--color-text-secondary)}.admin-tenant-version{margin-top:.75rem;padding-top:.6rem;border-top:1px solid var(--color-border);font-size:.75rem;color:var(--color-text-muted);letter-spacing:.03em}.admin-tenant-display-name-row{margin-top:.5rem;display:flex;align-items:center;gap:.5rem;font-size:.9rem}.admin-tenant-display-label{color:var(--color-text-muted);font-size:.85rem;flex-shrink:0}.admin-tenant-display-value{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-text);font-weight:500}.admin-tenant-display-edit{display:inline-flex;align-items:center;gap:.4rem}.admin-tenant-display-edit input{padding:.3rem .5rem;border:1px solid var(--color-border);border-radius:5px;font-size:.85rem;font-family:inherit;background:var(--color-card);width:200px}.admin-tenant-display-edit input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #5a724726}.btn-sm{padding:.25rem .6rem;font-size:.75rem}.btn-icon-sm{padding:.2rem}.text-muted{color:var(--color-text-muted);font-weight:400;font-style:italic}.admin-roles-section{margin-top:2rem}.admin-roles-section h2{font-size:1.1rem;margin-bottom:.75rem}.roles-table th{vertical-align:middle}.roles-table th:not(:first-child),.roles-table td.role-check{text-align:center;width:120px}.check-yes{color:var(--color-primary)}.check-no{color:var(--color-border)}.admin-users-section{margin-top:1.5rem}.admin-users-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.admin-users-header h2{font-size:1.1rem}.admin-table{width:100%;border-collapse:collapse}.admin-table th{text-align:left;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);padding:.5rem .75rem;border-bottom:2px solid var(--color-border)}.admin-table td{padding:.65rem .75rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.admin-table tbody tr:hover{background:var(--color-card)}.administration select{padding:.5rem .6rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;font-family:inherit;background:var(--color-card)}.administration select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #5a724726}.user-name{font-weight:600;font-size:.9rem}.user-email{font-size:.8rem;color:var(--color-text-muted)}.role-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.role-admin{background:#5a72471f;color:var(--color-primary)}.role-manager{background:#6b8fa31f;color:var(--color-info)}.role-receptionist{background:#a886671f;color:#a88667}.user-actions{text-align:right;white-space:nowrap}.btn-icon{background:none;border:1px solid var(--color-border);border-radius:5px;padding:.3rem;cursor:pointer;color:var(--color-text-muted);transition:all .15s}.btn-icon:hover{background:var(--color-card);color:var(--color-text)}.btn-icon-danger:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.btn-danger{display:inline-flex;align-items:center;gap:.35rem;background:#dc2626;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s}.btn-danger:hover{background:#b91c1c}.confirm-text{font-size:.9rem;color:var(--color-text-secondary);margin:0 0 1.25rem;line-height:1.5}.modal-user-email{font-size:.95rem;font-weight:600;color:var(--color-text);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.btn-primary{display:inline-flex;align-items:center;gap:.35rem;background:var(--color-primary);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--color-primary-hover, #4d6340)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;gap:.35rem;background:var(--color-card);color:var(--color-text);border:1px solid var(--color-border);padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:var(--color-border)}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--color-surface);border-radius:10px;padding:1.5rem;width:400px;max-width:90vw;box-shadow:0 8px 32px #00000026}.modal h2{font-size:1.1rem;margin:0 0 1rem}.modal fieldset{border:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.35rem}.modal label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.modal input[type=text],.modal input[type=email],.modal input[type=password]{padding:.5rem .6rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;font-family:inherit;background:var(--color-card)}.modal input[type=text]:focus,.modal input[type=email]:focus,.modal input[type=password]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #5a724726}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.login-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:2.5rem;width:100%;max-width:380px;box-shadow:0 8px 32px #3d33291a;text-align:center}.login-logo{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:.25rem}.login-logo-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:var(--color-primary);color:#fff;font-family:Playfair Display,Georgia,serif;font-size:1.8rem;font-weight:700;line-height:1;position:relative}.login-logo-one{font-size:1rem;font-weight:800;position:absolute;bottom:6px;right:6px;line-height:1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.login-card h1{font-family:Playfair Display,Georgia,serif;font-size:1.5rem;color:var(--color-text);margin:0;letter-spacing:-.01em}.login-subtitle{font-size:.72rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.15em;margin-bottom:2rem}.login-card form{display:flex;flex-direction:column;gap:1rem;text-align:left}.login-card label{display:flex;flex-direction:column;font-size:.85rem;color:var(--color-text-secondary);gap:.3rem}.login-card input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.6rem .75rem;color:var(--color-text);font-size:.95rem;font-family:inherit}.login-card input:focus{outline:none;border-color:var(--color-primary)}.remember-label{flex-direction:row!important;align-items:center;gap:.5rem!important;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer}.remember-label input[type=checkbox]{width:auto;accent-color:var(--color-primary);cursor:pointer}.login-error{color:var(--color-danger);font-size:.85rem;text-align:center}.login-btn{width:100%;margin-top:.5rem;padding:.7rem;font-size:1rem}
