:root{--vh: 1vh;--primary: #2563eb;--primary-dark: #1d4ed8;--primary-light: #dbeafe;--success: #059669;--success-light: #d1fae5;--warning: #d97706;--warning-light: #fffbeb;--error: #dc2626;--error-light: #fee2e2;--text-primary: #1e3a5f;--text-secondary: #3d5a80;--text-light: #6b8cae;--background: #eff6ff;--surface: #ffffff;--border: #bfdbfe;font-family:Inter,Hiragino Maru Gothic ProN,"Rounded Mplus 1c",Noto Sans JP,sans-serif!important}*{box-sizing:border-box;margin:0;padding:0}html{font-size:18px;height:calc(var(--vh) * 100);overflow:hidden;font-family:var(--font-family)}body{font-family:var(--font-family);background:var(--background);color:var(--text-primary);line-height:1.6;height:calc(var(--vh) * 100);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:calc(var(--vh) * 100);overflow:hidden}button{font-family:inherit;font-size:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}@media(max-width:600px){html{font-size:16px}}@media(min-width:1200px){html{font-size:24px}}.time-slot-selector{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px #00000014;text-align:center;max-width:800px;margin:0 auto}.time-slot-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.time-slot-instruction{font-size:1rem;color:var(--text-secondary);margin-bottom:24px}.time-slot-warning{font-size:.9rem;color:#dc2626;background:#fee2e2;padding:8px 16px;border-radius:8px;margin-bottom:16px}.time-slot-options{display:flex;flex-direction:column;gap:20px;max-width:400px;margin:0 auto}.time-slot-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}.time-slot-dropdown{width:100%;padding:12px 16px;font-size:1rem;border:2px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.time-slot-dropdown:hover:not(:disabled){border-color:var(--primary)}.time-slot-dropdown:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.time-slot-dropdown:disabled{opacity:.5;cursor:not-allowed;background-color:var(--surface-hover)}.rank-label{font-size:1rem;font-weight:700;padding:4px 12px;border-radius:8px;min-width:80px;text-align:center}.rank-label.first{background:var(--primary);color:#fff}.rank-label.second{background:#3b82f6;color:#fff}.rank-label.third{background:#60a5fa;color:#fff}.slot-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.slot-button{display:flex;flex-direction:column;align-items:center;padding:12px 20px;border:3px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;transition:all .2s ease;min-width:140px}.slot-button:hover:not(:disabled){border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.slot-button.selected{background:var(--primary);border-color:var(--primary-dark);color:#fff}.slot-button:disabled{opacity:.5;cursor:not-allowed}.slot-label{font-size:1.1rem;font-weight:700;margin-bottom:4px}.slot-time{font-size:.85rem;opacity:.8}.selected-summary{margin-top:24px;padding:16px;background:var(--primary-light);border-radius:12px;text-align:left}.selected-summary p{font-weight:700;color:var(--primary);margin-bottom:8px}.selected-summary ul{list-style:none;padding:0;margin:0}.selected-summary li{padding:4px 0;font-weight:600;color:var(--text-primary)}@media(min-width:1024px){.time-slot-selector{padding:16px 24px}.time-slot-title{font-size:1.25rem}.time-slot-instruction{font-size:.9rem;margin-bottom:16px}.time-slot-options{gap:12px}.slot-button{padding:10px 16px;min-width:120px;border-width:2px}.slot-label{font-size:.95rem}.slot-time{font-size:.75rem}}@media(min-width:1200px){.time-slot-selector{padding:32px 48px}.time-slot-title{font-size:1.75rem;margin-bottom:12px}.time-slot-instruction{font-size:1.1rem;margin-bottom:32px}.time-slot-options{gap:24px}.slot-button{padding:16px 28px;min-width:160px}.slot-label{font-size:1.25rem}.slot-time{font-size:.95rem}}@media(max-width:600px){.time-slot-selector{padding:20px 12px}.time-slot-title{font-size:1.25rem}.time-slot-instruction{font-size:.9rem}.rank-label{font-size:.85rem;padding:3px 10px}.slot-button{padding:10px 14px;min-width:100px}.slot-label{font-size:.95rem}.slot-time{font-size:.7rem}}.calendar{background:#fff;border-radius:12px;padding:12px;box-shadow:0 4px 20px #00000014}.calendar-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);text-align:center;margin-bottom:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-header{font-size:.9rem;font-weight:600;text-align:center;padding:8px 0;color:var(--text-secondary)}.calendar-header.sunday{color:#ef4444;font-weight:800}.calendar-header.saturday{color:#3b82f6;font-weight:800}.calendar-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--border);border-radius:50%;background:var(--surface);cursor:pointer;transition:all .2s ease;position:relative;min-height:40px;font-size:1.5rem;font-weight:700;color:var(--text-primary)}.calendar-cell:hover:not(.empty){border-color:var(--primary);transform:scale(1.05)}.calendar-cell.empty{border:none;background:transparent;cursor:default}.calendar-cell.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.calendar-cell.has-preference{background:var(--success-light);border-color:var(--success)}.calendar-cell.has-preference.selected{background:var(--primary);border-color:var(--primary-dark)}.calendar-cell.unavailable{background:var(--surface);border-color:var(--border);opacity:.5;cursor:not-allowed}.calendar-cell.holiday .day-number{color:var(--error)}.unavailable-mark{font-size:1.5rem;color:var(--text-light)}.calendar-cell.sunday .day-number{color:var(--error)}.calendar-cell.saturday .day-number{color:var(--primary)}.calendar-cell.selected .day-number,.calendar-cell.selected.sunday .day-number,.calendar-cell.selected.saturday .day-number{color:#fff}.day-number{font-weight:700}.check-mark{position:absolute;bottom:4px;right:4px;font-size:1rem;color:var(--success)}.selected-mark{position:absolute;bottom:4px;right:4px;font-size:1rem;color:#fff}.calendar-cell.selected .check-mark,.calendar-cell.selected .selected-mark{color:#fff}.calendar-instruction{text-align:center;font-size:1rem;color:var(--text-secondary);margin-bottom:8px}.calendar-time-slot{text-align:center;font-size:1.25rem;font-weight:700;color:var(--primary);margin-bottom:8px}.calendar-warning{text-align:center;font-size:.875rem;color:var(--warning);background:var(--warning-light);padding:8px 16px;border-radius:8px;margin-bottom:2px}.calendar-legend{margin-top:8px;display:flex;justify-content:center;gap:24px;font-size:.9rem;color:var(--text-secondary)}.legend-item{display:flex;align-items:center;gap:8px}.legend-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.875rem}.legend-icon.has-preference{background:var(--success-light);color:var(--success)}@media(min-width:1024px){.calendar{padding:4px;display:flex;flex-direction:column;border-radius:8px}.calendar-title{font-size:1rem;margin-bottom:4px;flex-shrink:0}.calendar-grid{gap:2px;flex:1;min-height:0;grid-auto-rows:1fr}.calendar-cell{font-size:1rem;min-height:24px;border-width:1px;border-radius:4px;aspect-ratio:auto;height:100%}.calendar-header{font-size:.7rem;padding:2px 0}.calendar-instruction{font-size:.8rem;margin-bottom:3px;flex-shrink:0}.calendar-warning{font-size:.7rem;padding:4px 8px;margin-bottom:3px;flex-shrink:0;border-radius:4px}.calendar-legend{margin-top:3px;flex-shrink:0;gap:12px;font-size:.7rem}.legend-icon{width:16px;height:16px;font-size:.65rem;border-radius:3px}.unavailable-mark{font-size:.9rem}.check-mark,.selected-mark{font-size:.6rem;bottom:1px;right:1px}}@media(min-width:1200px){.calendar{padding:24px;display:flex;flex-direction:column}.calendar-title{font-size:1.75rem;margin-bottom:16px;flex-shrink:0}.calendar-grid{gap:8px;flex:1;min-height:0}.calendar-cell{font-size:1.75rem;min-height:auto}.calendar-header{font-size:1rem;padding:10px 0}.calendar-instruction{font-size:1.1rem;margin-bottom:8px;flex-shrink:0}.calendar-warning{font-size:.9rem;padding:8px 14px;margin-bottom:8px;flex-shrink:0}.calendar-legend{margin-top:8px;flex-shrink:0}.unavailable-mark{font-size:1.5rem}}@media(max-width:600px){.calendar{padding:5px}.calendar-title{font-size:1.5rem}.calendar-grid{gap:4px}.calendar-cell{min-height:48px;border-radius:8px;font-size:1.75rem}.calendar-header{font-size:.875rem;padding:8px 0}}.loading-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-content{background:#fff;padding:32px 48px;border-radius:20px;box-shadow:0 8px 32px #0003;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.loading-spinner{font-size:3rem;color:var(--primary)}.loading-message{margin:0;font-size:1.2rem;font-weight:600;color:var(--text-primary)}.reservation-complete-modal{background:#fff;border-radius:2rem;padding:3.5rem 2.5rem;text-align:center;max-width:400px;width:100%;box-shadow:0 20px 60px #0000004d;animation:popIn .5s ease-out;margin:40px auto}@media(max-width:480px){.reservation-complete-modal{padding:2.5rem 1.75rem}}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.complete-icon{font-size:5rem;color:#10b981;margin-bottom:1.5rem;animation:iconPulse 1s ease-in-out infinite alternate}@keyframes iconPulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.complete-title{font-size:1.5rem;color:#1f2937;margin:0 0 1.5rem;font-weight:700}.complete-month{margin:0 0 1.5rem}.month-highlight{display:inline-block;font-size:2rem;font-weight:700;color:#db2777;background:linear-gradient(135deg,#fdf2f8,#fce7f3);padding:.75rem 1.5rem;border-radius:1rem;border:2px solid #f9a8d4}.complete-message{font-size:.95rem;color:#6b7280;line-height:1.8;margin:0 0 2rem}.complete-button{background:linear-gradient(135deg,#ec4899,#db2777);color:#fff;border:none;padding:1rem 3rem;font-size:1.1rem;font-weight:700;border-radius:.75rem;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #ec489966}.complete-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ec489980}.complete-button:active{transform:translateY(0)}.approved-reservations{margin-top:20px;padding:15px;background-color:#e8f5e9;border-radius:8px;border:2px solid #4caf50}.approved-header{margin:0 0 12px;color:#2e7d32;font-size:16px;display:flex;align-items:center;gap:8px}.approved-list{display:flex;flex-direction:column;gap:10px}.approved-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background-color:#fff;border-radius:6px;border-left:4px solid #4caf50}.approved-date{display:flex;align-items:center;gap:8px;font-weight:600;color:#333}.approved-details{display:flex;gap:12px;align-items:center}.approved-time{padding:4px 10px;background-color:#f5f5f5;border-radius:4px;font-size:13px;color:#666}.approved-room{padding:4px 10px;background-color:#4caf50;color:#fff;border-radius:4px;font-size:13px;font-weight:500}.approved-reservations-loading{padding:20px;text-align:center;color:#666}.confirmation-fullscreen{position:fixed;inset:0;width:100vw;height:100vh;background:linear-gradient(135deg,#f0fdf4,#dcfce7,#f0fdf4);display:flex;flex-direction:column;z-index:9999;overflow:hidden}.confirmation-fullscreen-main{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 20px 120px}.confirmation-fullscreen-header{background:linear-gradient(135deg,#fbcfe8,#f472b6);color:#4a1d2f;padding:10px 20px;text-align:center;border-bottom:2px solid white;flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.confirmation-header-title{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.confirmation-app-title{font-size:.9rem;font-weight:800;margin:0;line-height:1.3}.confirmation-app-subtitle{font-size:.75rem;font-weight:700;margin:0;color:#6b3d52}.confirmation-status-info{display:inline-flex;align-items:center;justify-content:center;background:#ffffff4d;border:1px solid rgba(255,255,255,.5);border-radius:8px;padding:3px 10px;font-size:.8rem;font-weight:700;color:#4a1d2f;gap:8px}.confirmation-status-group{display:flex;align-items:baseline;gap:3px}.confirmation-status-label{font-size:.65rem;font-weight:700;color:#6b3d52}.confirmation-status-value{font-size:.8rem;font-weight:800;color:#4a1d2f}.confirmation-status-divider{width:1px;height:16px;background:#0000001a;border-radius:2px}.confirmation-fullscreen-footer{position:fixed;bottom:0;left:0;right:0;background:#f0fdf4;padding:12px 16px;text-align:center;color:#166534;font-size:.9rem;border-top:2px solid #86efac;z-index:10000;box-shadow:0 -4px 12px #0000001a}.confirmation-footer-actions{display:flex;gap:12px;justify-content:space-between;margin-bottom:8px;position:relative;z-index:10001}.confirmation-footer-button{display:inline-flex;align-items:center;justify-content:center;flex:1;padding:14px 24px;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:none;min-height:48px;position:relative;z-index:10002}.confirmation-footer-button.primary{background:linear-gradient(135deg,var(--success),#047857);color:#fff;box-shadow:0 4px 12px #16a34a4d}.confirmation-footer-button.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #16a34a66}.confirmation-footer-button.secondary{background:#fff;color:#166534;border:2px solid #86efac;box-shadow:0 2px 8px #0000000d}.confirmation-footer-button.secondary:hover:not(:disabled){background:#f0fdf4;border-color:#4ade80;transform:translateY(-2px)}.confirmation-footer-notice{padding-top:6px;border-top:1px solid #bbf7d0}.confirmation-footer-notice p{margin:2px 0;font-size:.75rem}@media(max-width:1023px){.confirmation-fullscreen-header{flex-direction:column;padding:8px 16px;gap:6px}.confirmation-header-title{align-items:center}.confirmation-status-info{padding:4px 12px;font-size:.75rem}.confirmation-status-divider{height:20px}}@media(min-width:1024px){.confirmation-fullscreen-header{padding:4px 16px}.confirmation-app-title{font-size:.85rem}.confirmation-app-subtitle{font-size:.7rem}.confirmation-status-info{padding:2px 8px;font-size:.75rem;gap:6px}.confirmation-status-label{font-size:.6rem}.confirmation-status-value{font-size:.75rem}.confirmation-status-divider{height:14px}.confirmation-fullscreen-main{padding:8px 12px}.confirmation-fullscreen-footer{padding:6px 12px;background:#f0fdf4;border-top:2px solid #86efac}.confirmation-footer-actions{margin-bottom:6px;gap:8px}.confirmation-footer-button{padding:8px 16px;font-size:.9rem;min-height:36px;border-radius:8px}.confirmation-footer-notice p{font-size:.7rem;margin:1px 0}}.confirmation-overlay{min-height:100vh;background:linear-gradient(135deg,#f0fdf4,#e8f5e9,#f1f8e9);display:flex;flex-direction:column}.confirmation-modal{background:transparent;width:100%;min-height:100vh;display:flex;flex-direction:column;animation:floatUp .4s ease-out}@keyframes floatUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.confirmation-header{display:flex;align-items:center;justify-content:center;padding:16px 20px;background:#ffffffe6;border-bottom:2px solid rgba(0,0,0,.05)}.confirmation-title{font-size:1.3rem;font-weight:700;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:10px}.confirmation-title svg{color:var(--success);font-size:1.2rem}.confirmation-content{flex:1;padding:16px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch}.confirmation-summary-group{margin-bottom:16px}.confirmation-summary{display:flex;gap:16px;background:#fff;padding:16px 20px;border-radius:14px;box-shadow:0 2px 12px #0000000d}.summary-item{flex:1;display:flex;flex-direction:column}.summary-label{font-size:.75rem;color:var(--text-secondary);font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:1rem;font-weight:700;color:var(--text-primary)}.section-label{font-size:.95rem;font-weight:700;color:var(--text-secondary);margin:0 0 12px;display:flex;align-items:center;gap:8px}.section-label svg{color:var(--primary)}.room-preferences-summary{margin-bottom:20px;padding:16px 20px;background:#fff;border-radius:14px;box-shadow:0 2px 12px #0000000d}.room-preference-list{display:flex;flex-direction:column;gap:10px}.room-preference-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#fef9f3,#fef3c7);border:1px solid #fde68a;border-radius:12px}.preference-rank{font-size:.85rem;font-weight:700;min-width:55px;display:flex;align-items:center;gap:6px}.room-preference-item.first{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fcd34d}.room-preference-item.second{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-color:#bae6fd}.room-preference-item.third{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fecaca}.room-preference-item.first .preference-rank{color:#d4a827}.room-preference-item.second .preference-rank{color:#0369a1}.room-preference-item.third .preference-rank{color:#dc2626}.preference-room{font-size:1rem;font-weight:700;color:#1f2937;flex:1}.conflict-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;color:#dc2626;border-radius:12px;font-size:.8rem;font-weight:600;margin-left:auto}.conflict-badge svg{font-size:.75rem}.conflict-note{margin:10px 0 0;padding:10px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fcd34d;border-radius:10px;font-size:.85rem;color:#92400e;text-align:center}.dates-summary{margin-bottom:20px;background:#fff;padding:16px 20px;border-radius:14px;box-shadow:0 2px 12px #0000000d}.dates-tags{display:flex;flex-wrap:wrap;gap:8px}.date-tag-confirm{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #86efac;border-radius:20px;font-size:.9rem;font-weight:600;color:#166534}.date-tag-confirm small{font-size:.8rem;color:var(--text-secondary);font-weight:400}.no-preferences{text-align:center;font-size:1rem;color:var(--text-secondary);padding:24px}.date-conflict-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;color:#dc2626;border-radius:10px;font-size:.7rem;font-weight:600;margin-left:6px}.date-tag-confirm.has-conflict{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fca5a5;color:#dc2626}.memo-reminder{display:flex;align-items:center;gap:12px;padding:14px 18px;background:linear-gradient(135deg,#e0f2fe,#bae6fd);border:1px solid #7dd3fc;border-radius:14px;margin-bottom:5px}.memo-icon{font-size:1.4rem;color:#0284c7;flex-shrink:0}.memo-text{margin:0;font-size:.9rem;font-weight:600;color:#0369a1;line-height:1.4}@media(min-width:1024px){.confirmation-modal{animation:none}.confirmation-header{padding:8px 12px}.confirmation-title{font-size:1rem}.confirmation-title svg{font-size:.9rem}.confirmation-content{padding:8px 0}.memo-reminder{padding:8px 12px;margin-bottom:8px;border-radius:8px}.memo-icon{font-size:1.1rem}.memo-text{font-size:.8rem}.confirmation-summary{padding:10px 14px;margin-bottom:8px;gap:12px;border-radius:10px}.summary-label{font-size:.65rem}.summary-value{font-size:.85rem}.section-label{font-size:.8rem;margin:0 0 6px}.room-preferences-summary{padding:10px 14px;margin-bottom:8px;border-radius:10px}.room-preference-list{gap:4px}.room-preference-item{padding:6px 10px;border-radius:6px;gap:8px}.preference-rank{font-size:.75rem;min-width:40px}.preference-room{font-size:.85rem}.conflict-badge{padding:2px 6px;font-size:.7rem;border-radius:8px}.conflict-note{padding:6px 8px;font-size:.75rem;margin:6px 0 0}.dates-summary{padding:10px 14px;margin-bottom:8px;border-radius:10px}.dates-tags{gap:4px}.date-tag-confirm{padding:4px 8px;font-size:.8rem;border-radius:12px}.date-tag-confirm small{font-size:.7rem}}.confirmation-actions{display:flex;gap:12px;padding:16px 20px 24px;background:#fffffffa;border-top:2px solid rgba(0,0,0,.05)}.confirmation-actions .action-button{flex:1;padding:16px 24px;border-radius:14px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:none}.confirmation-actions .action-button.primary{background:linear-gradient(135deg,var(--success),#059669);color:#fff;box-shadow:0 4px 16px #10b98159}.confirmation-actions .action-button.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #10b98173}.confirmation-actions .action-button.primary:active{transform:translateY(0)}.confirmation-actions .action-button.primary:disabled{background:var(--border);box-shadow:none;cursor:not-allowed;transform:none}.confirmation-actions .action-button.secondary{background:#fff;color:var(--text-secondary);border:2px solid var(--border);box-shadow:0 2px 8px #0000000d}.confirmation-actions .action-button.secondary:hover{background:var(--surface);border-color:var(--primary-light);transform:translateY(-2px)}@media(max-width:600px){.confirmation-header{padding:14px 16px}.confirmation-title{font-size:1.4rem}.confirmation-content{padding:14px 16px}.confirmation-summary{flex-direction:column;gap:12px;padding:14px 16px;margin-bottom:8px}.confirmation-summary-group{margin-bottom:12px}.room-preferences-summary{padding:14px 16px;margin-bottom:14px}.room-preference-item{padding:10px 14px}.preference-room{font-size:1.05rem}.dates-summary{padding:14px 16px;margin-bottom:14px}.date-tag-confirm{padding:6px 12px;font-size:1rem}.confirmation-actions{padding:14px 16px 28px;flex-direction:column;gap:10px}.confirmation-actions .action-button{padding:14px 20px;font-size:1rem}.summary-item{display:flex;flex-direction:row;align-items:center;gap:15px}}.conflict-detail-info{margin:20px 0;padding:16px 20px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:2px solid #fcd34d;border-radius:14px}.conflict-detail-title{font-size:1rem;font-weight:700;color:#92400e;margin:0 0 12px;display:flex;align-items:center;gap:8px}.conflict-detail-title svg{color:#f59e0b}.conflict-detail-text{font-size:.9rem;color:#78350f;margin:0 0 12px;line-height:1.5}.conflict-date-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.conflict-date-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#fff;border-radius:10px;border:1px solid #fde68a}.conflict-date{font-weight:600;color:#78350f}.conflict-count{font-weight:700;color:#dc2626;background:#fef2f2;padding:4px 10px;border-radius:20px;font-size:.85rem}.qr-password-container{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:24px}.qr-password-form{background:#fff;border-radius:20px;padding:40px;max-width:400px;width:100%;box-shadow:0 4px 20px #00000014;text-align:center}.qr-password-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.qr-password-title svg{color:var(--primary)}.qr-password-subtitle{font-size:1rem;color:var(--text-secondary);margin-bottom:32px}.qr-password-form .input-group{text-align:left;margin-bottom:24px}.qr-password-form .input-group label{display:block;font-weight:600;color:var(--text-primary);margin-bottom:8px}.qr-password-form .input-group input{width:100%;padding:16px;font-size:1.25rem;border:2px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text-primary);transition:border-color .2s}.qr-password-form .input-group input:focus{outline:none;border-color:var(--primary)}.qr-password-form .input-group input:disabled{background:var(--background);color:var(--text-light)}.qr-password-form .error-message{background:var(--error-light);color:var(--error);padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:600}.qr-password-button{width:100%;padding:16px 24px;font-size:1.25rem;font-weight:700;background:var(--primary);color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .2s}.qr-password-button:hover:not(:disabled){background:var(--primary-dark)}.qr-password-button:disabled{background:var(--border);color:var(--text-light);cursor:not-allowed}@media(max-width:600px){.qr-password-form{padding:24px}.qr-password-title{font-size:1.5rem}.qr-password-form .input-group input{font-size:1.125rem;padding:14px}.qr-password-button{font-size:1.125rem;padding:14px 20px}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:12px;z-index:1000}.modal-container{background:#fff;border-radius:16px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 16px 48px #00000040;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:2px solid var(--border)}.modal-title{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin:0}.modal-content{padding:16px}.modal-actions{display:flex;gap:10px;padding:16px;border-top:2px solid var(--border)}.action-button{flex:1;padding:12px 20px;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;border:none}.action-button.primary{background:var(--primary);color:#fff}.action-button.primary:hover:not(:disabled){background:var(--primary-dark)}.action-button.primary:disabled{background:var(--border);color:var(--text-light);cursor:not-allowed}.action-button.secondary{background:var(--surface);color:var(--text-secondary);border:2px solid var(--border)}.action-button.secondary:hover{background:var(--border)}.action-button.success{background:var(--success);color:#fff}.action-button.success:hover:not(:disabled){background:#059669}.action-button.success:disabled{background:var(--border);color:var(--text-light);cursor:not-allowed}@media(max-width:600px){.modal-container{border-radius:16px 16px 0 0;max-height:80vh;height:auto;position:absolute;bottom:0;left:0;right:0;max-width:none;display:flex;flex-direction:column}.modal-header{padding:12px 16px;flex-shrink:0;position:sticky;top:0;background:#fff;z-index:10;border-radius:16px 16px 0 0}.modal-title{font-size:1rem}.modal-content{padding:12px 16px;overflow-y:auto;flex-grow:1;-webkit-overflow-scrolling:touch}.modal-actions{padding:12px 16px 24px;flex-shrink:0;background:#fff;border-top:1px solid var(--border)}.action-button{padding:10px 16px;font-size:.9rem}}.mypage-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.mypage-loading{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:20px;padding:56px 48px;max-width:480px;width:100%;box-shadow:0 8px 32px #2563eb26;border:2px solid var(--primary);text-align:center;color:#1e3a5f;font-size:1.15rem;font-weight:600;margin:40px auto}.main-section{background:#fff;border-radius:16px;border:3px solid var(--border);box-shadow:0 4px 20px #2563eb1a;margin-bottom:16px;overflow:hidden}.section-header{font-weight:800;color:#1e3a5f;margin:0;padding:5px;display:flex;align-items:center;gap:8px}.section-header svg{font-size:1.4rem}.main-section.results .section-header{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-bottom:3px solid #6ee7b7}.main-section.results .section-header svg{color:#059669}.main-section.application .section-header{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-bottom:3px solid var(--primary)}.main-section.application .section-header svg{color:var(--primary)}.section-content{padding:16px}.deadline-badge{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 18px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:3px solid #fcd34d;border-radius:14px;margin-bottom:16px;font-size:1.05rem;font-weight:700;color:#92400e}.deadline-badge svg{font-size:1.5rem;color:#d97706}.deadline-text{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;justify-content:center}.days-left{color:red;font-weight:800;font-size:1.05rem;padding:4px 12px;background:#ffe6e6;border-radius:8px;border:2px solid red}.days-expired{color:#dc2626;font-weight:800;font-size:1.05rem;padding:4px 12px;background:#fee2e2;border-radius:8px;border:2px solid #fca5a5}.messages-section{background:#fff;border-radius:16px;border:3px solid var(--border);box-shadow:0 4px 20px #2563eb1a;margin-bottom:16px;overflow:hidden}.messages-section .section-header{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-bottom:3px solid #93c5fd}.messages-section .section-header svg{color:#2563eb}.messages-list{padding:16px;overflow:auto;max-height:calc(100vh - 300px)}.message-item{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;padding:16px;margin-bottom:12px}.message-item:last-child{margin-bottom:0}.message-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:8px}.message-subject{font-size:1.1rem;font-weight:700;color:#1e40af}.message-date{font-size:.9rem;color:#64748b;font-weight:600}.message-content{font-size:1rem;color:#475569;line-height:1.6;white-space:pre-wrap}.reservation-summary{background:#f8fafc;border:2px solid #e2e8f0;border-radius:14px;padding:14px 18px;margin-bottom:16px}.reservation-summary .summary-row{display:flex;align-items:center;gap:12px;font-size:1.15rem;font-weight:700;color:#1e3a5f}.reservation-summary .summary-row:not(:last-child){margin-bottom:12px;padding-bottom:12px;border-bottom:2px dashed #e2e8f0}.reservation-summary .summary-row svg{color:var(--primary);font-size:1.2rem}.reservation-submitted{font-weight:900;font-size:2rem;color:green;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:3px solid green}.submitted-badge{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;background:linear-gradient(135deg,#059669,#047857);color:#fff;border-radius:12px;font-size:1.35rem;font-weight:800;margin-bottom:14px}.submitted-badge svg{font-size:1.5rem}.date-tag-submitted{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#6ee7b7;color:#047857}.header-dadge{color:brown;font-weight:800;font-size:1.05rem;padding:4px 12px;background:#fee2e2;border-radius:8px;border:2px solid #fca5a5}.results-list{display:flex;flex-direction:column;gap:16px}.result-item{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:14px;border:3px solid transparent;min-height:64px;transition:all .2s ease}.result-item.status-approved{border-color:#6ee7b7;background:linear-gradient(135deg,#ecfdf5,#d1fae5)}.result-item.status-rejected{border-color:#fca5a5;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.result-item.status-pending{border-color:#fcd34d;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.result-date{display:flex;align-items:center;gap:8px;font-size:1.25rem;font-weight:800;color:#1e3a5f;min-width:110px}.result-date svg{font-size:1.1rem;color:var(--primary)}.result-info{flex:1;display:flex;flex-direction:column;gap:6px}.status-badge{display:inline-flex;align-items:center;gap:8px;font-size:1.1rem;font-weight:800;padding:8px 16px;border-radius:10px;align-self:flex-start}.status-badge.status-approved{color:#047857;background:#fff;border:2px solid #6ee7b7}.status-badge.status-approved svg{color:#059669}.status-badge.status-rejected{color:#991b1b;background:#fff;border:2px solid #fca5a5}.status-badge.status-rejected svg{color:#dc2626}.status-badge.status-pending{color:#92400e;background:#fff;border:2px solid #fcd34d}.status-badge.status-pending svg{color:#d97706}.result-room{font-size:1.1rem;font-weight:700;color:#1e3a5f;padding-left:4px}.result-note{font-size:1rem;color:#3d5a80;font-weight:600;padding-left:4px}.application-details{background:#eff6ff;border:2px solid var(--border);border-radius:14px;padding:16px;margin-top:16px}.application-details h4{font-weight:800;color:#1e3a5f;margin:0 0 16px;display:flex;align-items:center;gap:10px}.application-details h4 svg{color:var(--primary);font-size:1.2rem}.preference-info{background:#fff;border:2px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:16px}.preference-row{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:600;color:#1e3a5f}.preference-row:not(:last-child){margin-bottom:10px;padding-bottom:10px;border-bottom:2px dashed var(--border)}.preference-label{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;font-size:.95rem;font-weight:700}.preference-label.first{background:#fef3c7;color:#92400e;border:2px solid #fcd34d}.preference-label.second{background:#e0e7ff;color:#3730a3;border:2px solid #a5b4fc}.preference-label.third{background:#f3e8ff;color:#6b21a8;border:2px solid #d8b4fe}.dates-section{margin-top:20px}.dates-section h5{font-size:1.05rem;font-weight:700;color:#704555;margin:0 0 12px;padding-left:4px}.dates-list{display:flex;flex-wrap:wrap;gap:10px}.date-tag{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:#fff;border:2px solid var(--border);border-radius:10px;font-size:1rem;font-weight:700;color:#1e3a5f}.date-tag.conflict{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.date-tag svg{font-size:.9rem}.empty-state{text-align:center;padding:28px 20px;color:#3d5a80}.empty-state p{font-size:1.1rem;font-weight:600;margin:0 0 18px}.waiting-message{text-align:center;padding:24px 20px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:3px solid #fcd34d;border-radius:14px;color:#92400e;font-size:1.1rem;font-weight:700}.waiting-message svg{font-size:2rem;margin-bottom:12px;display:block;margin-left:auto;margin-right:auto;color:#d97706}.make-reservation-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:18px 32px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:14px;font-size:1.2rem;font-weight:800;cursor:pointer;transition:all .2s ease;box-shadow:0 6px 24px #2563eb59}.make-reservation-button:hover{transform:translateY(-3px);box-shadow:0 8px 28px #2563eb73}.make-reservation-button:active{transform:translateY(0)}.make-reservation-button svg{font-size:1.2rem}.mypage-actions{display:flex;gap:12px;padding:16px 16px 20px;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-top:3px solid var(--border)}.mypage-actions .action-button{flex:1;padding:18px 24px;border-radius:14px;font-size:1.15rem;font-weight:800;cursor:pointer;transition:all .2s ease;border:none}.mypage-actions .action-button.secondary{background:#fff;color:#1e3a5f;border:3px solid var(--border);box-shadow:0 2px 12px #2563eb1a}.mypage-actions .action-button.secondary:hover{background:var(--primary-light);border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 16px #2563eb33}@media(min-width:1200px){.mypage-content{padding:32px 40px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-content:start}.mypage-content>.deadline-badge{grid-column:1 / -1}.messages-section{grid-column:1 / -1;margin-bottom:0}.main-section{margin-bottom:0}.main-section.results{grid-column:1}.main-section.application{grid-column:2}.section-header{font-size:1.4rem;padding:20px 24px}.section-content{padding:24px}.deadline-badge{padding:20px 32px;font-size:1.3rem;margin-bottom:24px}.messages-section .section-header{font-size:1.3rem;padding:18px 24px}.messages-list{padding:20px}.message-item{padding:20px;margin-bottom:16px}.message-subject{font-size:1.2rem}.message-date{font-size:1rem}.message-content{font-size:1.1rem}.reservation-summary{padding:20px 24px}.reservation-summary .summary-row{font-size:1.25rem}.result-item{padding:20px 24px;gap:20px;min-height:80px}.result-date{font-size:1.35rem;min-width:130px}.status-badge{font-size:1.2rem;padding:10px 18px}.result-room,.result-note{font-size:1.1rem}.application-details{padding:24px}.date-tag{padding:12px 18px;font-size:1.1rem}.make-reservation-button{padding:24px 40px;font-size:1.4rem}.mypage-actions{padding:24px 40px 32px}.mypage-actions .action-button{padding:20px 32px;font-size:1.25rem}}@media(max-width:600px){.mypage-content{padding:16px 12px}.main-section{margin-bottom:20px;border-width:2px}.section-header{font-size:1.2rem;padding:16px 18px}.section-content{padding:16px}.deadline-badge{padding:14px 16px;font-size:1rem;margin-bottom:20px}.messages-section{margin-bottom:20px;border-width:2px}.messages-section .section-header{font-size:1.15rem;padding:14px 16px}.messages-list{padding:12px}.message-item{padding:12px;margin-bottom:10px}.message-subject{font-size:1rem}.message-date{font-size:.85rem}.message-content{font-size:.95rem}.reservation-summary{padding:16px 18px}.reservation-summary .summary-row{font-size:1.05rem}.result-item{padding:16px 18px;gap:12px}.result-date{font-size:1.1rem;min-width:90px}.status-badge{font-size:1rem;padding:6px 12px}.result-room,.result-note{font-size:.95rem}.application-details{padding:18px}.date-tag{padding:8px 12px;font-size:.95rem}.make-reservation-button{padding:16px 24px;font-size:1.1rem}.mypage-actions{padding:18px 16px 28px}.mypage-actions .action-button{padding:16px 20px;font-size:1.1rem}}.conflict-info-box{margin-top:16px;padding:16px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:3px solid #fcd34d;border-radius:14px}.conflict-title{font-size:1.1rem;font-weight:800;color:#92400e;margin:0 0 12px;display:flex;align-items:center;gap:8px}.conflict-title svg{color:#f59e0b;font-size:1.2rem}.conflict-description{font-size:.95rem;color:#78350f;margin:0 0 12px;line-height:1.5}.conflict-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:8px}.conflict-list li{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#fff;border-radius:10px;border:2px solid #fde68a}.conflict-list .conflict-date{font-weight:700;color:#78350f}.conflict-list .conflict-count{font-weight:800;color:#dc2626;background:#fef2f2;padding:4px 12px;border-radius:20px;font-size:.9rem}.conflict-note{font-size:.9rem;color:#92400e;margin:0;padding-top:12px;border-top:2px dashed #fcd34d;font-weight:600}.conflict-badge-small{display:inline-flex;align-items:center;padding:2px 8px;background:#dc2626;color:#fff;border-radius:12px;font-size:.75rem;font-weight:700;margin-left:4px}.admin-layout{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;flex-direction:column;height:100vh;overflow:auto}.admin-header{flex-shrink:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.4rem;padding:.3rem .5rem;background:#fff;border-bottom:2px solid #f8bbd9;box-shadow:0 2px 6px #0000000f;min-height:auto}.admin-header-left{display:flex;align-items:center}.admin-header-title{font-size:.85rem;font-weight:700;color:#333;margin:0;display:flex;align-items:center;gap:.3rem;white-space:nowrap}.admin-header-title svg{color:#c2185b;font-size:1rem}.admin-header-center{display:flex;align-items:center;justify-content:center;gap:.4rem}.admin-header-right{display:flex;align-items:center;justify-content:flex-end;gap:.4rem}.admin-header-nav{display:flex;align-items:center;gap:.2rem}.admin-header-nav-btn{width:22px;height:22px;border:none;border-radius:50%;background:linear-gradient(135deg,#fce4ec,#f8bbd9);color:#c2185b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 1px 3px #00000014;flex-shrink:0}.admin-header-nav-btn:hover{background:linear-gradient(135deg,#f8bbd9,#f48fb1);transform:scale(1.05)}.admin-header-nav-text{font-size:.8rem;font-weight:600;color:#333;min-width:55px;text-align:center;white-space:nowrap}.admin-header-back-btn{padding:.25rem .5rem;background:#fff;border:2px solid #e0e0e0;border-radius:5px;font-size:.75rem;font-weight:600;color:#666;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.2rem;white-space:nowrap;flex-shrink:0}.admin-header-back-btn:hover{border-color:#c2185b;color:#c2185b;background:#fff5f8}.admin-layout-content{flex:1;padding:.25rem;overflow:auto;overflow-x:hidden;display:flex;flex-direction:column;min-height:0}@media(max-width:1366px){.admin-header{padding:.25rem .4rem;gap:.3rem}.admin-header-title{font-size:.8rem}.admin-header-title svg{font-size:.9rem}.admin-header-nav-text{min-width:50px;font-size:.75rem}.admin-header-nav-btn{width:20px;height:20px}.admin-header-back-btn{padding:.2rem .4rem;font-size:.7rem}.admin-layout-content{padding:.2rem}}@media(max-width:1024px){.admin-header{padding:.2rem .3rem;gap:.2rem}.admin-header-title{font-size:.75rem}.admin-header-title svg{font-size:.85rem}.admin-header-nav-text{min-width:45px;font-size:.7rem}.admin-header-nav-btn{width:18px;height:18px;font-size:.65rem}.admin-header-back-btn{padding:.15rem .3rem;font-size:.65rem}.admin-layout-content{padding:.15rem}}@media(max-width:768px){.admin-header{grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.2rem;padding:.2rem}.admin-header-center{order:3;grid-column:1 / -1;justify-content:flex-start}.admin-header-right{order:2;justify-content:flex-end}.admin-header-title{font-size:.75rem}.admin-layout-content{padding:.1rem}}.admin-panel{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.35rem;display:flex;flex-direction:column;overflow:auto}.admin-header{text-align:center;margin-bottom:.5rem}.admin-title{font-size:1.2rem;color:#c2185b;margin-bottom:.2rem;font-weight:700}.admin-subtitle{color:#555;font-size:.85rem}.admin-content{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;max-width:1200px;margin:0 auto;overflow:auto}@media(max-width:1200px){.admin-content{grid-template-columns:1fr;gap:.5rem}}@media(max-width:900px){.admin-content{grid-template-columns:1fr}}.block-form-section{background:#fff;border-radius:8px;padding:.5rem;box-shadow:0 2px 8px #00000014}.section-title{font-size:.9rem;color:#333;margin-bottom:.4rem;padding-bottom:.2rem;border-bottom:2px solid #f8bbd9}.admin-calendar{margin-bottom:.4rem}.admin-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.admin-month-nav button{background:#f8bbd9;border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;color:#c2185b;font-size:.8rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.admin-month-nav button:hover{background:#f48fb1;color:#fff}.admin-month-label{font-size:.85rem;font-weight:600;color:#333}.admin-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.admin-weekday-header{text-align:center;font-size:.6rem;padding:.2rem;background:#f8bbd9;color:#880e4f;font-weight:700}.admin-calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.8rem;cursor:pointer;border:2px solid transparent;border-radius:4px;transition:all .2s;background:#fff}.admin-calendar-day:hover{background:#fce4ec}.admin-calendar-day.selected{background:#f8bbd9;border-color:#c2185b;font-weight:700}.admin-calendar-day.other-month{color:#bbb;background:#f5f5f5}.admin-calendar-day.today{border-color:#c2185b;font-weight:700}.room-selector{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem}.room-option{padding:.3rem .6rem;border:2px solid #e0e0e0;border-radius:4px;background:#fff;cursor:pointer;font-size:.8rem;transition:all .2s}.room-option:hover{border-color:#f8bbd9;background:#fce4ec}.room-option.selected{background:#f8bbd9;border-color:#c2185b;color:#880e4f;font-weight:600}.block-type-selector{margin-bottom:.4rem}.block-type-selector label{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem;font-size:.85rem;cursor:pointer}.block-type-selector input[type=radio]{width:16px;height:16px;accent-color:#c2185b}.block-reason-input{margin-bottom:.4rem}.block-reason-input input{width:100%;padding:.4rem;border:1px solid #e0e0e0;border-radius:4px;font-size:.85rem}.block-submit-btn{width:100%;padding:.5rem;background:#c2185b;color:#fff;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.block-submit-btn:hover{background:#ad1457}.block-submit-btn:disabled{background:#ccc;cursor:not-allowed}.block-list-section{background:#fff;border-radius:8px;padding:.5rem;box-shadow:0 2px 8px #00000014}.block-list{display:flex;flex-direction:column;gap:.3rem;overflow:auto;max-height:calc(100vh - 300px)}.block-item{display:flex;justify-content:space-between;align-items:center;padding:.4rem;background:#f5f5f5;border-radius:4px;border-left:4px solid #c2185b}.block-item.full-day{border-left-color:#e53935}.block-item.room-block{border-left-color:#fb8c00}.block-info{display:flex;flex-direction:column;gap:.1rem}.block-date{font-weight:600;color:#333;font-size:.85rem}.block-details{font-size:.75rem;color:#666}.block-reason{font-size:.75rem;color:#999;font-style:italic}.remove-block-btn{padding:.25rem .5rem;background:#ef5350;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.7rem;transition:all .2s}.remove-block-btn:hover{background:#e53935}.no-blocks{text-align:center;color:#888;padding:.75rem;font-size:.8rem}.back-to-user-view{text-align:center;margin-top:.5rem}.back-btn{padding:.35rem .75rem;background:#fff;color:#c2185b;border:1px solid #c2185b;border-radius:4px;font-size:.8rem;cursor:pointer;transition:all .2s}.back-btn:hover{background:#fce4ec}.admin-dashboard{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.5rem;display:flex;flex-direction:column;overflow:auto}.admin-panel-container{min-height:100vh;display:flex;flex-direction:column;flex:1;overflow:auto}.dashboard-content{max-width:900px;margin:0 auto;padding:.5rem 0}.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}@media(max-width:768px){.menu-grid{grid-template-columns:1fr}}@media(max-width:1200px){.menu-grid{grid-template-columns:repeat(2,1fr)}}.menu-card{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border:none;border-radius:8px;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:all .3s ease;text-align:left}.menu-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.menu-icon{font-size:1.25rem;flex-shrink:0}.menu-info{flex:1}.menu-title{font-size:.9rem;color:#333;margin-bottom:.1rem}.menu-description{font-size:.7rem;color:#666;margin:0}.admin-placeholder{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.5rem;text-align:center;display:flex;flex-direction:column;flex:1;overflow:auto}.admin-placeholder h2{color:#c2185b;margin-bottom:.4rem;font-size:1rem}.admin-placeholder p{color:#666;margin-bottom:.75rem;font-size:.8rem}.admin-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.admin-loading .loading-spinner{width:40px;height:40px;border:3px solid #f8bbd9;border-top-color:#c2185b;border-radius:50%;animation:spin .8s linear infinite}.admin-loading p{color:#666;font-size:.9rem}.reservation-fullscreen{display:flex;flex-direction:column;min-height:100vh;height:100vh;overflow:hidden;flex:1}.reservation-header-row{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:.2rem .4rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #dee2e6;gap:.2rem;flex-wrap:wrap}.header-left,.header-right{flex:0 0 auto;display:flex;align-items:center;gap:.25rem}.header-center{flex:1;text-align:center;min-width:150px}.header-subtitle{font-size:.75rem;color:#666;font-weight:500}.admin-title-compact{font-size:.9rem;color:#c2185b;margin:0;font-weight:700;white-space:nowrap}.reservation-nav-compact{display:flex;align-items:center;justify-content:center;gap:.2rem;flex:0 1 auto;min-width:100px;max-width:200px}.back-btn-compact{padding:.25rem .5rem;background:#fff;color:#c2185b;border:1px solid #c2185b;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s;white-space:nowrap}.back-btn-compact:hover{background:#fce4ec}.reservation-header-section{flex-shrink:0;padding:.35rem}.reservation-nav{display:flex;align-items:center;justify-content:center;gap:.25rem;margin-bottom:.35rem}.nav-button{background:#f8bbd9;border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;color:#c2185b;font-size:.8rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.nav-button:hover{background:#f48fb1;color:#fff}.nav-month{font-size:.9rem;font-weight:600;color:#333}.time-slot-filter{display:flex;align-items:center;justify-content:center;gap:.25rem;margin-bottom:.35rem}.time-slot-filter label{font-weight:600;color:#333;font-size:.75rem}.time-slot-filter select{padding:.2rem .4rem;border:1px solid #f8bbd9;border-radius:4px;font-size:.75rem;background:#fff}.reservation-stats{display:flex;justify-content:center;gap:.5rem;margin-bottom:.35rem}.stat-item{display:flex;align-items:center;gap:.2rem;padding:.3rem .5rem;background:#fff;border-radius:4px;box-shadow:0 1px 4px #0000001a;color:#666;font-size:.75rem}.stat-item strong{color:#c2185b;font-size:.9rem}.reservation-table-container{flex:1;display:flex;flex-direction:column;background:#fff;border-radius:6px;box-shadow:0 2px 8px #00000014;overflow:auto;margin:0 .2rem;min-height:0;max-height:calc(100vh - 100px)}.reservation-table-wrapper{flex:1;overflow-x:auto;overflow-y:auto}.reservation-table-wrapper::-webkit-scrollbar{width:6px;height:6px}.reservation-table-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.reservation-table-wrapper::-webkit-scrollbar-thumb{background:#c2185b;border-radius:3px}.reservation-table-wrapper::-webkit-scrollbar-thumb:hover{background:#ad1457}@media(max-width:1024px){.reservation-table-wrapper{max-height:calc(100vh - 250px)}}@media(max-width:768px){.reservation-table-wrapper{max-height:calc(100vh - 200px)}}.reservation-table{width:100%;border-collapse:collapse;font-size:.75rem}.reservation-table th,.reservation-table td{border:1px solid #bdbdbd;padding:.2rem;text-align:center;min-width:40px}.reservation-table th{background:#f8bbd9;color:#880e4f;font-weight:600;position:sticky;top:0;z-index:10;font-size:.7rem;padding:.15rem .2rem}.reservation-table th.room-header{position:sticky;left:0;z-index:20;background:#f8bbd9;min-width:80px;font-size:.65rem}.reservation-table th.time-slot-header{background:#fce4ec;font-size:.6rem;padding:.1rem;min-width:35px;color:#880e4f}.reservation-table td.room-name-cell{position:sticky;left:0;z-index:10;background:#fce4ec;text-align:left;font-size:.7rem}.date-cell{display:flex;justify-content:center;align-items:center;gap:.15rem}.date-day{font-size:.9rem;font-weight:700}.date-weekday{font-size:.7rem}.room-info{display:flex;flex-direction:column;gap:.15rem}.room-id{font-size:.75rem;color:#880e4f;font-weight:700}.room-name{font-size:.8rem;color:#212121;font-weight:600}.reservation-cell{min-height:50px;vertical-align:top;padding:.25rem}.reservation-cell.monday{background:#fff8e1}.reservation-cell.has-reservation{background:#e8f5e9}.reservation-cell.blocked,.reservation-cell.saturday.blocked,.reservation-cell.sunday-holiday.blocked,.reservation-cell.monday.blocked{background:#616161!important;position:relative}.reservation-cell.blocked:after,.reservation-cell.saturday.blocked:after,.reservation-cell.sunday-holiday.blocked:after,.reservation-cell.monday.blocked:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(255,255,255,.1) 5px,rgba(255,255,255,.1) 10px)}.reservation-list{display:flex;flex-direction:column;gap:.3rem}.reservation-tag{display:flex;flex-direction:column;gap:.15rem;padding:.25rem;border-radius:3px;font-size:.8rem;cursor:pointer;border:1px solid transparent}.reservation-tag.rank-1{background:#ffcdd2;border:1px solid #e53935;border-left:4px solid #e53935}.reservation-tag.rank-2{background:#fff9c4;border:1px solid #fdd835;border-left:4px solid #fdd835}.reservation-tag.rank-3{background:#c8e6c9;border:1px solid #43a047;border-left:4px solid #43a047}.user-id{font-weight:700;color:#212121;font-size:.85rem}.time-slot-badge{font-size:.75rem;color:#616161}.rank-badge{font-size:.7rem;color:#424242;font-weight:700}.date-header.monday{background:#ffe0b2}.date-header.saturday{background:#e3f2fd;color:#1565c0}.time-slot-header.saturday{background:#bbdefb;color:#1565c0}.reservation-cell.saturday{background:#f5f9ff}.date-header.sunday-holiday{background:#ffebee;color:#c62828}.time-slot-header.sunday-holiday{background:#ffcdd2;color:#c62828}.reservation-cell.sunday-holiday{background:#fff3f3}.loading-message,.no-data-message{text-align:center;padding:2rem;color:#666;font-size:1rem}.reservation-legend{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:.75rem;padding:.75rem;background:#fff;border-radius:4px;max-width:500px;margin-left:auto;margin-right:auto;font-size:.9rem}.legend-title{font-weight:700;color:#333}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:#424242}.legend-color{width:16px;height:16px;border-radius:3px}.legend-color.rank-1{background:#ffcdd2;border-left:4px solid #e53935}.legend-color.rank-2{background:#fff9c4;border-left:4px solid #fdd835}.legend-color.rank-3{background:#c8e6c9;border-left:4px solid #43a047}.legend-color.blocked{background:#616161;border:1px solid #424242;position:relative}.legend-color.blocked:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.3) 2px,rgba(255,255,255,.3) 4px)}.legend-color.saturday{background:#bbdefb;border:1px solid #1565c0}.legend-color.sunday-holiday{background:#ffcdd2;border:1px solid #c62828}.reservation-footer{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:.25rem .5rem;background:#fff;border-top:1px solid #e0e0e0;gap:.25rem;flex-wrap:wrap}.reservation-footer .reservation-legend{margin:0;padding:.25rem;flex:1;justify-content:flex-start;min-width:200px}.reservation-footer .back-to-user-view{margin:0;text-align:right}.reservation-tag.has-more{position:relative;cursor:pointer}.more-indicator{position:absolute;top:-3px;right:-3px;background:#c2185b;color:#fff;font-size:.6rem;font-weight:700;width:12px;height:12px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000004d}.reservation-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:.5rem;overflow-y:auto}.reservation-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:500px;width:100%;max-height:90vh;overflow:auto;display:flex;flex-direction:column;margin:auto}.reservation-modal.compact{max-width:450px;border-radius:8px}@keyframes modalAppear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem;background:#f8bbd9;border-bottom:2px solid #f48fb1}.modal-header.compact{padding:.75rem 1rem}.modal-header h3{margin:0;color:#880e4f;font-size:1rem;line-height:1.4}.modal-header h3 small{color:#666;font-size:.85rem;font-weight:400}.modal-close-btn{background:none;border:none;color:#880e4f;font-size:1.25rem;cursor:pointer;padding:.25rem;margin-left:.5rem;transition:color .2s}.modal-close-btn:hover{color:#c2185b}.modal-content{padding:.75rem;max-height:calc(100dvh - 180px);overflow-y:auto;flex:1}.modal-content.compact{padding:.5rem;max-height:calc(100dvh - 160px)}.reservation-detail-list{display:flex;flex-direction:column;gap:.75rem}.reservation-detail-list.compact{gap:.5rem}.reservation-detail-item{display:flex;align-items:center;gap:1rem;padding:.75rem;border-radius:8px;border-left:4px solid}.reservation-detail-item.rank-1{background:#ffcdd2;border-left-color:#e53935}.reservation-detail-item.rank-2{background:#fff9c4;border-left-color:#fdd835}.reservation-detail-item.rank-3{background:#c8e6c9;border-left-color:#43a047}.detail-rank{font-weight:700;font-size:.85rem;min-width:60px;color:#333}.detail-user{flex:1;font-size:1rem;font-weight:600;color:#212121}.reservation-tag{cursor:pointer;transition:transform .2s,box-shadow .2s}.reservation-tag:hover{transform:translateY(-2px);box-shadow:0 2px 8px #00000026}.group-preference-item{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#f5f5f5;border-radius:8px;margin-bottom:.75rem;border-left:4px solid #c2185b}.group-preference-item.compact{gap:.35rem;padding:.5rem .6rem;margin-bottom:.4rem;border-left-width:3px;border-radius:6px}.group-preference-item.status-approved{border-left-color:#4caf50;background:#e8f5e9}.group-preference-item.status-rejected{border-left-color:#f44336;background:#ffebee}.group-preference-item.status-pending{border-left-color:#ff9800;background:#fff8e1}.pref-header{display:flex;align-items:center;gap:.75rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0;flex-wrap:wrap}.pref-header.compact{gap:.4rem;padding-bottom:.25rem;border-bottom:none;flex-wrap:nowrap}.pref-date{font-weight:700;font-size:1rem;color:#880e4f}.pref-header.compact .pref-date{font-size:.9rem}.pref-time{font-size:.9rem;color:#666;font-weight:600;background:#fff;padding:.2rem .5rem;border-radius:4px}.pref-header.compact .pref-time{font-size:.8rem;padding:.15rem .4rem}.pref-rooms-compact{display:flex;flex-wrap:wrap;gap:.3rem;margin:.2rem 0}.room-chip{display:inline-block;padding:.15rem .4rem;border-radius:3px;font-size:.75rem;font-weight:500;background:#e0e0e0;color:#555;border:1px solid #ccc}.room-chip.rank-1{background:#ffcdd2;color:#c62828;border-color:#ef5350}.room-chip.rank-2{background:#fff9c4;color:#f57f17;border-color:#fdd835}.room-chip.rank-3{background:#c8e6c9;color:#2e7d32;border-color:#66bb6a}.action-buttons-compact{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem}.action-buttons-compact button{padding:.25rem .5rem;border:none;border-radius:3px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s;min-width:40px}.action-buttons-compact button:disabled{opacity:.5;cursor:not-allowed}.action-buttons-compact .btn-approve{background:#4caf50;color:#fff}.action-buttons-compact .btn-approve:hover:not(:disabled){background:#45a049;transform:translateY(-1px)}.action-buttons-compact .btn-approve.rank-1{background:#e53935}.action-buttons-compact .btn-approve.rank-1:hover:not(:disabled){background:#c62828}.action-buttons-compact .btn-approve.rank-2{background:#fdd835;color:#333}.action-buttons-compact .btn-approve.rank-2:hover:not(:disabled){background:#fbc02d}.action-buttons-compact .btn-approve.rank-3{background:#43a047}.action-buttons-compact .btn-approve.rank-3:hover:not(:disabled){background:#2e7d32}.action-buttons-compact .btn-reject{background:#757575;color:#fff}.action-buttons-compact .btn-reject:hover:not(:disabled){background:#616161;transform:translateY(-1px)}.action-buttons-compact .btn-pending{background:#ff9800;color:#fff}.action-buttons-compact .btn-pending:hover:not(:disabled){background:#f57c00;transform:translateY(-1px)}.approved-badge{display:inline-block;padding:.15rem .4rem;background:#4caf50;color:#fff;border-radius:3px;font-size:.7rem;font-weight:600;margin-top:.2rem}.status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.status-badge.status-approved{background:#4caf50;color:#fff}.status-badge.status-rejected{background:#f44336;color:#fff}.status-badge.status-pending{background:#ff9800;color:#fff}.room-assignment{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #ccc}.room-assignment label{display:block;font-size:.85rem;color:#666;margin-bottom:.5rem}.room-options{display:flex;flex-wrap:wrap;gap:.4rem}.room-options .room-option{padding:.3rem .6rem;font-size:.8rem}.room-option.rank-1{border-left:4px solid #e53935;background:#fff5f5}.room-option.rank-1:hover{background:#ffcdd2}.room-option.rank-1.selected{background:#e53935;color:#fff;border-color:#c62828}.room-option.rank-2{border-left:4px solid #fdd835;background:#fffde7}.room-option.rank-2:hover{background:#fff9c4}.room-option.rank-2.selected{background:#fdd835;color:#333;border-color:#f9a825}.room-option.rank-3{border-left:4px solid #43a047;background:#f1f8e9}.room-option.rank-3:hover{background:#c8e6c9}.room-option.rank-3.selected{background:#43a047;color:#fff;border-color:#2e7d32}.status-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.5rem;border-top:1px solid #e0e0e0}.status-actions button{flex:1;padding:.5rem;border:none;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.status-actions button:disabled{opacity:.5;cursor:not-allowed}.btn-approve{background:#4caf50;color:#fff}.btn-approve:hover:not(:disabled){background:#45a049}.btn-reject{background:#f44336;color:#fff}.btn-reject:hover:not(:disabled){background:#da190b}.btn-pending{background:#ff9800;color:#fff}.btn-pending:hover:not(:disabled){background:#e68900}.assigned-info{margin-top:.5rem;padding:.5rem;background:#c8e6c9;border-radius:4px;font-size:.85rem;color:#2e7d32;font-weight:600}.pref-choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.choice-tag{display:inline-block;padding:.3rem .6rem;border-radius:4px;font-size:.8rem;font-weight:600;background:#e0e0e0;color:#424242}.choice-tag.rank-1{background:#ffcdd2;color:#c62828;border:1px solid #ef5350}.choice-tag.rank-2{background:#fff9c4;color:#f9a825;border:1px solid #fdd835}.choice-tag.rank-3{background:#c8e6c9;color:#2e7d32;border:1px solid #66bb6a}.reservation-modal.table-view{max-width:700px;width:95%}.modal-content.table-view{padding:.5rem;max-height:75vh}.reservation-table-container-modal{overflow-x:auto;border-radius:6px;border:1px solid #e0e0e0}.reservation-table-modal{width:100%;border-collapse:collapse;font-size:.8rem}.reservation-table-modal thead{background:#f8bbd9;color:#880e4f}.reservation-table-modal th{padding:.5rem .4rem;text-align:left;font-weight:600;font-size:.75rem;border-bottom:2px solid #f48fb1;white-space:nowrap}.reservation-table-modal td{padding:.4rem;border-bottom:1px solid #eee;vertical-align:middle}.reservation-table-modal tbody tr:hover{background:#f5f5f5}.reservation-table-modal tbody tr.status-approved{background:#e8f5e9}.reservation-table-modal tbody tr.status-approved:hover{background:#c8e6c9}.reservation-table-modal tbody tr.status-rejected{background:#ffebee}.reservation-table-modal tbody tr.status-rejected:hover{background:#ffcdd2}.reservation-table-modal tbody tr.status-pending{background:#fff8e1}.reservation-table-modal tbody tr.status-pending:hover{background:#ffecb3}.col-date{width:90px;min-width:90px}.col-time{width:50px;min-width:50px;text-align:center}.col-rooms{min-width:150px}.col-status{width:80px;min-width:80px;text-align:center}.col-actions{width:auto;min-width:200px}.reservation-table-modal .room-chips{display:flex;flex-wrap:wrap;gap:.25rem}.reservation-table-modal .room-chip{padding:.1rem .3rem;font-size:.7rem;border-radius:2px}.status-icon{display:inline-flex;align-items:center;gap:.2rem;padding:.2rem .4rem;border-radius:3px;font-size:.7rem;font-weight:600}.status-icon.status-approved{background:#4caf50;color:#fff}.status-icon.status-rejected{background:#f44336;color:#fff}.status-icon.status-pending{background:#ff9800;color:#fff}.assigned-room-text{font-size:.7rem;color:#2e7d32;margin-top:.2rem;font-weight:500}.action-btn-group{display:flex;flex-wrap:wrap;gap:.2rem}.action-btn{padding:.2rem .35rem;border:none;border-radius:2px;font-size:.7rem;font-weight:600;cursor:pointer;transition:all .15s;line-height:1}.action-btn:disabled{opacity:.4;cursor:not-allowed}.action-btn.approve{background:#4caf50;color:#fff}.action-btn.approve:hover:not(:disabled){background:#45a049;transform:translateY(-1px)}.action-btn.approve.rank-1{background:#e53935}.action-btn.approve.rank-1:hover:not(:disabled){background:#c62828}.action-btn.approve.rank-2{background:#fdd835;color:#333}.action-btn.approve.rank-2:hover:not(:disabled){background:#fbc02d}.action-btn.approve.rank-3{background:#43a047}.action-btn.approve.rank-3:hover:not(:disabled){background:#2e7d32}.action-btn.reject{background:#757575;color:#fff}.action-btn.reject:hover:not(:disabled){background:#616161}.action-btn.pending{background:#ff9800;color:#fff}.action-btn.pending:hover:not(:disabled){background:#f57c00}.preference-toggle{margin-right:12px}.toggle-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;color:#555;-webkit-user-select:none;user-select:none}.toggle-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.reservation-list.all-ranks{display:flex;flex-direction:column;gap:2px}.reservation-tag.rank-2{background:#f3e5f5;border:1px solid #ce93d8;color:#7b1fa2;font-size:10px;padding:1px 3px}.reservation-tag.rank-3{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32;font-size:10px;padding:1px 3px}.reservation-tag .rank-badge{font-size:9px;font-weight:700;margin-right:2px;padding:0 2px;border-radius:2px;background:#0000001a}.reservation-tag.rank-1 .rank-badge{background:#1565c0;color:#fff}.reservation-tag.rank-2 .rank-badge{background:#7b1fa2;color:#fff}.reservation-tag.rank-3 .rank-badge{background:#2e7d32;color:#fff}.reservation-tag.has-conflict{border:2px solid #f44336;animation:pulse-conflict 2s infinite}.reservation-tag.has-conflict .conflict-icon{color:#f44336;margin-left:2px;font-size:10px}@keyframes pulse-conflict{0%,to{box-shadow:0 0 #f4433666}50%{box-shadow:0 0 0 4px #f4433600}}.view-mode-toggle{display:flex;gap:3px;margin-right:8px}.view-mode-btn{padding:4px 8px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s;font-size:12px}.view-mode-btn:hover{background:#f5f5f5}.view-mode-btn.active{background:#3498db;color:#fff;border-color:#3498db}.list-view-container{overflow:auto;max-height:calc(100vh - 80px);flex:1}.list-view-table{width:100%;border-collapse:collapse;font-size:12px}.list-view-table th{background:#34495e;color:#fff;padding:6px 4px;text-align:left;font-weight:600;position:sticky;top:0;z-index:10;font-size:11px}.list-view-table td{padding:5px;border-bottom:1px solid #e0e0e0}.list-view-table tr:hover{background:#f5f5f5}.list-view-table .col-date{width:100px;min-width:100px}.list-view-table .col-time{width:80px;min-width:80px}.list-view-table .col-room{width:200px;min-width:200px}.list-view-table .col-user{width:120px;min-width:120px}.list-view-table .col-status{width:100px;min-width:100px}.list-view-table .col-actions{width:200px;min-width:200px}.list-view-table .col-rank,.list-view-table .col-conflict{width:60px;min-width:60px;text-align:center}.list-view-controls{padding:12px 16px;background:#f8f9fa;border-bottom:1px solid #e0e0e0}.list-view-table .rank-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:700;color:#fff}.list-view-table .rank-badge.rank-1{background:#1565c0}.list-view-table .rank-badge.rank-2{background:#7b1fa2}.list-view-table .rank-badge.rank-3{background:#2e7d32}.list-view-table .all-ranks-hint{font-size:10px;color:#999;margin-left:4px}.list-view-table .conflict-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#ffebee;color:#c62828;border-radius:4px;font-size:11px;font-weight:600;animation:pulse-conflict-badge 2s infinite}@keyframes pulse-conflict-badge{0%,to{box-shadow:0 0 #c6282866}50%{box-shadow:0 0 0 4px #c6282800}}.list-view-table tr.has-conflict-row{background:#fff8e1!important}.list-view-table tr.has-conflict-row:hover{background:#ffecb3!important}.list-view-table .action-btn-group.compact{display:flex;gap:4px;flex-wrap:wrap}.list-view-table .action-btn-group.compact .action-btn{padding:4px 8px;font-size:11px;min-width:32px}.list-view-table .room-chips{display:flex;gap:4px;flex-wrap:wrap}.list-view-table .room-chip{padding:2px 6px;border-radius:3px;font-size:11px;white-space:nowrap}.list-view-table .room-chip.rank-1{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.list-view-table .room-chip.rank-2{background:#f3e5f5;color:#7b1fa2;border:1px solid #ce93d8}.list-view-table .room-chip.rank-3{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.list-view-table .status-icon{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.list-view-table .status-icon.status-approved{background:#e8f5e9;color:#2e7d32}.list-view-table .status-icon.status-rejected{background:#ffebee;color:#c62828}.list-view-table .status-icon.status-pending{background:#fff3e0;color:#ef6c00}.list-view-table .assigned-room-text{font-size:11px;color:#666;margin-top:2px}.list-view-table .date-cell{display:flex;flex-direction:column;align-items:flex-start}.list-view-table .date-day{font-weight:600;font-size:14px}.list-view-table .date-weekday{font-size:11px;color:#666}.list-view-table tr.saturday .date-weekday{color:#1565c0}.list-view-table tr.sunday-holiday .date-weekday{color:#c62828}.list-view-table tr.status-approved{background:#f1f8e9}.list-view-table tr.status-rejected{background:#ffebee;opacity:.7}.list-view-table tr.status-pending{background:#fff8e1}@media(max-width:1366px){.admin-title-compact{font-size:.85rem}.reservation-nav-compact{max-width:130px;min-width:70px}.stat-item{padding:.15rem .25rem;font-size:.65rem}.stat-item strong{font-size:.75rem}.reservation-table th,.reservation-table td{min-width:35px;padding:.15rem;font-size:.65rem}.reservation-table th.room-header{min-width:70px}.reservation-table th.time-slot-header{min-width:30px;font-size:.55rem;padding:.1rem}.reservation-table th{padding:.1rem .15rem;font-size:.6rem}.date-day{font-size:.75rem}.room-id{font-size:.65rem}.room-name{font-size:.7rem}.reservation-cell{min-height:40px}.reservation-tag{font-size:.7rem;padding:.15rem}.user-id{font-size:.75rem}.time-slot-badge{font-size:.65rem}.rank-badge{font-size:.6rem}.reservation-legend{font-size:.75rem;gap:.35rem;padding:.35rem}.legend-item{font-size:.75rem}.legend-color{width:12px;height:12px}.menu-grid{gap:.35rem}.menu-card{padding:.5rem;gap:.5rem}.menu-icon{font-size:1.1rem}.menu-title{font-size:.85rem}.menu-description{font-size:.65rem}.modal-header{padding:.5rem .75rem}.modal-header h3{font-size:.85rem}.modal-content{padding:.5rem;max-height:calc(100dvh - 140px)}.reservation-modal{max-width:450px;max-height:85vh}.reservation-detail-item{padding:.4rem;gap:.4rem}.detail-rank{font-size:.75rem;min-width:45px}.detail-user{font-size:.85rem}.group-preference-item{padding:.4rem;margin-bottom:.4rem}.pref-date{font-size:.85rem}.pref-time{font-size:.75rem}.room-chip{font-size:.65rem;padding:.1rem .25rem}.action-buttons-compact button{padding:.2rem .4rem;font-size:.7rem;min-width:35px}.status-badge{font-size:.65rem;padding:.15rem .35rem}.list-view-container{max-height:calc(100dvh - 120px)}.list-view-table{font-size:11px}.list-view-table th,.list-view-table td{padding:4px}.list-view-table .col-date{width:70px;min-width:70px}.list-view-table .col-time{width:50px;min-width:50px}.list-view-table .col-room{width:120px;min-width:120px}.list-view-table .col-user{width:90px;min-width:90px}.list-view-table .col-status{width:70px;min-width:70px}.list-view-table .col-actions{width:130px;min-width:130px}.list-view-controls{padding:6px 10px}.view-mode-btn{padding:5px 8px;font-size:11px}.list-view-table .action-btn-group.compact .action-btn{padding:2px 5px;font-size:9px;min-width:24px}.list-view-table .room-chip{padding:1px 3px;font-size:9px}}@media(max-width:768px){.reservation-fullscreen{min-height:100dvh;height:100dvh}.reservation-header-row{padding:.2rem;gap:.15rem}.header-center{min-width:80px;order:1;flex:1}.header-left{order:2}.header-right{order:3}.admin-title-compact{font-size:.85rem}.reservation-nav-compact{max-width:120px;min-width:60px;gap:.15rem}.back-btn-compact{padding:.2rem .4rem;font-size:.7rem}.header-subtitle{font-size:.7rem}.reservation-footer{padding:.2rem .25rem}.reservation-footer .reservation-legend{min-width:150px;font-size:.7rem}.list-view-container{max-height:calc(100dvh - 110px)}.reservation-modal-overlay{padding:.25rem;align-items:flex-start}.reservation-modal{max-width:100%;max-height:90vh;margin-top:.5rem}.modal-content{max-height:calc(100dvh - 120px)}}.test-mode-content{max-width:600px;margin:0 auto;padding:1rem}.info-box{background:#fff;border-radius:8px;padding:1rem;margin-bottom:1rem;box-shadow:0 2px 8px #00000014;text-align:center}.info-box h3{margin:0 0 .5rem;color:#333;font-size:.9rem}.current-month{font-size:1.5rem;font-weight:700;color:#c2185b;margin:.5rem 0}.test-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;background:#e67e22;color:#fff;border-radius:4px;font-size:.8rem;font-weight:600;margin-top:.5rem}.test-mode-controls{background:#fff;border-radius:8px;padding:1rem;margin-bottom:1rem;box-shadow:0 2px 8px #00000014}.test-mode-controls h3{margin:0 0 1rem;color:#333;font-size:.9rem;border-bottom:2px solid #f8bbd9;padding-bottom:.5rem}.form-group{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.form-group label{font-weight:600;color:#333;min-width:40px;font-size:.9rem}.form-group select{flex:1;padding:.5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:.9rem;background:#fff}.form-group select:disabled{background:#f5f5f5;color:#999}.button-group{margin-top:1rem;display:flex;gap:.5rem}.primary-btn{flex:1;padding:.6rem 1rem;background:#4caf50;color:#fff;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.3rem}.primary-btn:hover{background:#45a049}.danger-btn{flex:1;padding:.6rem 1rem;background:#f44336;color:#fff;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.3rem}.danger-btn:hover{background:#da190b}.info-text{background:#f5f5f5;border-radius:8px;padding:1rem;font-size:.85rem;color:#666}.info-text ul{margin:.5rem 0 0;padding-left:1.2rem}.info-text li{margin-bottom:.3rem}.block-settings-container{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.75rem;overflow:auto}.block-settings-content{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:1400px;margin:0 auto;overflow:auto}@media(max-width:1024px){.block-settings-content{grid-template-columns:1fr}}.block-section{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 2px 12px #00000014;overflow:auto;max-height:calc(100vh - 150px)}.block-section-title{font-size:1.1rem;color:#333;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:3px solid #f8bbd9;display:flex;align-items:center;gap:.5rem}.block-section-title svg{color:#c2185b}.block-calendar-wrapper{margin-bottom:1rem;background:#fff;border-radius:8px;padding:.75rem;border:1px solid #e0e0e0;width:100%}.block-calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding:.5rem;background:linear-gradient(135deg,#fce4ec,#f8bbd9);border-radius:8px}.block-calendar-nav button{background:#fff;border:none;border-radius:50%;width:32px;height:32px;cursor:pointer;color:#c2185b;font-size:1rem;transition:all .2s;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a}.block-calendar-nav button:hover{background:#c2185b;color:#fff;transform:scale(1.1)}.block-calendar-month{font-size:1rem;font-weight:700;color:#880e4f}.block-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:100%}.block-weekday-header{text-align:center;font-size:.75rem;padding:0;height:28px;line-height:28px;background:linear-gradient(135deg,#f8bbd9,#f48fb1);color:#880e4f;font-weight:700;border-radius:4px}.block-weekday-header.sunday{background:linear-gradient(135deg,#ffcdd2,#ef5350);color:#c62828}.block-weekday-header.saturday{background:linear-gradient(135deg,#bbdefb,#64b5f6);color:#1565c0}.block-day-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.85rem;cursor:pointer;border:2px solid transparent;border-radius:4px;transition:all .2s;background:#fff;font-weight:500;position:relative;min-height:36px;min-width:36px}.block-day-cell:hover{background:#fce4ec;border-color:#f8bbd9;transform:scale(1.05)}.block-day-cell.selected{background:linear-gradient(135deg,#f8bbd9,#f48fb1);border-color:#c2185b;font-weight:700;color:#880e4f;box-shadow:0 2px 8px #c218594d}.block-day-cell.blocked{background:#616161;color:#fff;position:relative}.block-day-cell.blocked:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.15) 4px,rgba(255,255,255,.15) 8px);border-radius:4px}.block-day-cell.blocked.selected{background:#ad1457;border-color:#880e4f}.block-day-cell.empty{background:#f5f5f5;cursor:default;aspect-ratio:1;min-height:36px;min-width:36px}.block-day-cell.today{border-color:#c2185b;font-weight:700;box-shadow:inset 0 0 0 2px #f8bbd9}.block-day-cell.closed{background:#e0e0e0;color:#9e9e9e;cursor:not-allowed;position:relative}.block-day-cell.closed:after{content:"休";position:absolute;bottom:2px;right:2px;font-size:.6rem;color:#757575;font-weight:600}.block-day-cell.closed:hover{background:#e0e0e0;border-color:transparent;transform:none}.date-range-selector{margin-bottom:1rem;padding:.75rem;background:#f8f9fa;border-radius:8px;border:2px solid #e0e0e0}.date-range-selector.active{border-color:#f8bbd9;background:#fce4ec}.date-range-label{font-size:.85rem;font-weight:600;color:#555;margin-bottom:.5rem;display:block}.date-range-display{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.date-range-badge{padding:.4rem .75rem;background:#c2185b;color:#fff;border-radius:20px;font-size:.85rem;font-weight:600}.date-range-separator{color:#888;font-weight:600}.block-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}@media(max-width:600px){.block-type-grid{grid-template-columns:1fr}}.block-type-card{padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s;text-align:center}.block-type-card:hover{border-color:#f8bbd9;background:#fce4ec;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.block-type-card.active{background:linear-gradient(135deg,#f8bbd9,#f48fb1);border-color:#c2185b;color:#880e4f}.block-type-card.active .block-type-icon{color:#880e4f}.block-type-icon{font-size:1.5rem;margin-bottom:.25rem;color:#888}.block-type-label{font-size:.85rem;font-weight:600}.block-type-desc{font-size:.7rem;color:#666;margin-top:.25rem}.block-type-card.active .block-type-desc{color:#880e4f}.block-options-area{margin-bottom:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:2px solid #e0e0e0}.block-options-area.active{border-color:#f8bbd9;background:#fff5f8}.option-group-title{font-size:.9rem;font-weight:600;color:#555;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.time-slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem}@media(max-width:500px){.time-slot-grid{grid-template-columns:1fr}}.time-slot-card{padding:.6rem;border:2px solid #e0e0e0;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s;text-align:center}.time-slot-card:hover{border-color:#f8bbd9;background:#fce4ec}.time-slot-card.selected{background:linear-gradient(135deg,#f8bbd9,#f48fb1);border-color:#c2185b;color:#880e4f}.time-slot-card.blocked{background:#616161;color:#fff;border-color:#424242;cursor:not-allowed;opacity:.7}.time-slot-name{font-size:.85rem;font-weight:600}.time-slot-hours{font-size:.7rem;color:#888;margin-top:.15rem}.time-slot-card.selected .time-slot-hours{color:#880e4f}.room-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.75rem}@media(max-width:600px){.room-grid{grid-template-columns:1fr}}.room-card{padding:.6rem;border:2px solid #e0e0e0;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem}.room-card:hover{border-color:#f8bbd9;background:#fce4ec;transform:translate(4px)}.room-card.selected{background:linear-gradient(135deg,#f8bbd9,#f48fb1);border-color:#c2185b;color:#880e4f}.room-card.blocked{background:#616161;color:#fff;border-color:#424242;cursor:not-allowed;opacity:.7}.room-checkbox{width:18px;height:18px;border:2px solid #ccc;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.room-card.selected .room-checkbox{background:#c2185b;border-color:#c2185b}.room-checkbox svg{color:#fff;font-size:.7rem}.room-name{font-size:.8rem;font-weight:500;line-height:1.3}.checkbox-grid{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.time-slot-checkbox-grid,.room-checkbox-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:.5rem}.checkbox-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;position:relative}.checkbox-card:hover{border-color:#f8bbd9;background:#fff5f8}.checkbox-card.selected{border-color:#c2185b;background:linear-gradient(135deg,#fce4ec,#f8bbd9)}.checkbox-card.blocked{background:#f5f5f5;border-color:#ccc;cursor:not-allowed;opacity:.6}.checkbox-card input[type=checkbox]{position:absolute;opacity:0;cursor:pointer;width:0;height:0}.checkbox-checkmark{width:22px;height:22px;border:2px solid #ccc;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;background:#fff}.checkbox-card.selected .checkbox-checkmark{background:#c2185b;border-color:#c2185b}.checkbox-card.blocked .checkbox-checkmark{background:#e0e0e0;border-color:#bbb}.checkbox-checkmark svg{color:#fff;font-size:.8rem}.checkbox-label{display:flex;flex-direction:column;gap:.15rem;flex:1}.checkbox-label-main{font-size:.9rem;font-weight:600;color:#333}.checkbox-card.selected .checkbox-label-main{color:#880e4f}.checkbox-label-sub{font-size:.75rem;color:#888}.checkbox-card.selected .checkbox-label-sub{color:#ad1457}.reason-input-group{margin-bottom:1rem}.reason-input-group label{display:block;font-size:.85rem;font-weight:600;color:#555;margin-bottom:.4rem}.reason-input{width:100%;padding:.6rem .75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:.9rem;transition:all .2s}.reason-input:focus{outline:none;border-color:#f8bbd9;box-shadow:0 0 0 3px #f8bbd933}.reason-input::placeholder{color:#aaa}.block-actions{display:flex;gap:.5rem;flex-wrap:wrap}.add-block-btn{flex:1;min-width:120px;padding:.75rem 1rem;background:linear-gradient(135deg,#c2185b,#ad1457);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.add-block-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #c218594d}.add-block-btn:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.clear-selection-btn{padding:.75rem 1rem;background:#fff;color:#666;border:2px solid #e0e0e0;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.clear-selection-btn:hover{border-color:#999;background:#f5f5f5}.block-list-container{display:flex;flex-direction:column;gap:.5rem;overflow:auto;max-height:calc(100vh - 300px)}.block-filters{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.block-filter-btn{padding:.4rem .75rem;background:#fff;border:2px solid #e0e0e0;border-radius:20px;font-size:.8rem;cursor:pointer;transition:all .2s}.block-filter-btn:hover{border-color:#f8bbd9;background:#fce4ec}.block-filter-btn.active{background:#f8bbd9;border-color:#c2185b;color:#880e4f;font-weight:600}.block-list{display:flex;flex-direction:column;gap:.5rem;max-height:600px;overflow:auto;padding-right:.5rem}.block-list::-webkit-scrollbar{width:6px}.block-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.block-list::-webkit-scrollbar-thumb{background:#f8bbd9;border-radius:3px}.block-list::-webkit-scrollbar-thumb:hover{background:#f48fb1}.block-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem;background:#fff;border-radius:8px;border:2px solid #e0e0e0;transition:all .2s}.block-item:hover{border-color:#f8bbd9;box-shadow:0 2px 8px #00000014}.block-item.full-day{border-left:4px solid #e53935}.block-item.time-slot-block{border-left:4px solid #fb8c00}.block-item.room-block{border-left:4px solid #43a047}.block-item.room-time-block{border-left:4px solid #7e57c2}.block-item-info{flex:1;min-width:0}.block-item-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;flex-wrap:wrap}.block-date{font-weight:700;color:#333;font-size:.95rem}.block-type-badge{padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600}.block-type-badge.full-day{background:#ffcdd2;color:#c62828}.block-type-badge.time-slot{background:#ffe0b2;color:#ef6c00}.block-type-badge.room{background:#c8e6c9;color:#2e7d32}.block-type-badge.room-time{background:#d1c4e9;color:#512da8}.block-details{font-size:.85rem;color:#555;margin-bottom:.3rem}.block-detail-item{display:flex;align-items:center;gap:.3rem;margin-bottom:.15rem}.block-detail-icon{color:#888;font-size:.75rem}.block-reason{font-size:.8rem;color:#888;font-style:italic;margin-top:.3rem;padding:.3rem .5rem;background:#f5f5f5;border-radius:4px}.block-item-actions{display:flex;gap:.4rem;margin-left:.5rem}.remove-block-btn{padding:.4rem .6rem;background:#ef5350;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s;display:flex;align-items:center;gap:.3rem}.remove-block-btn:hover{background:#e53935;transform:scale(1.05)}.no-blocks{text-align:center;color:#888;padding:2rem 1rem;font-size:.9rem;background:#f8f9fa;border-radius:8px;border:2px dashed #e0e0e0}.no-blocks-icon{font-size:2rem;margin-bottom:.5rem;color:#ccc}.loading-container{text-align:center;padding:2rem;color:#888}.loading-spinner{width:40px;height:40px;border:4px solid #f8bbd9;border-top-color:#c2185b;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.block-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}.summary-card{padding:.5rem;background:#f8f9fa;border-radius:6px;text-align:center}.summary-number{font-size:1.5rem;font-weight:700;color:#c2185b}.summary-label{font-size:.7rem;color:#666;margin-top:.2rem}.selection-summary{padding:.75rem;background:linear-gradient(135deg,#fce4ec,#f8bbd9);border-radius:8px;margin-bottom:1rem}.selection-summary-title{font-size:.8rem;font-weight:600;color:#880e4f;margin-bottom:.5rem}.selection-summary-content{display:flex;flex-wrap:wrap;gap:.3rem}.selection-tag{padding:.3rem .6rem;background:#fff;border-radius:4px;font-size:.75rem;color:#555;border:1px solid #f8bbd9}.help-text{font-size:.75rem;color:#888;margin-top:.4rem;line-height:1.4}.block-settings-content.compact{grid-template-columns:minmax(450px,1.4fr) minmax(280px,.8fr);gap:.75rem;height:calc(100vh - 70px);overflow:auto}@media(max-width:1000px){.block-settings-content.compact{grid-template-columns:1fr;height:auto;max-height:calc(100vh - 70px);overflow:auto}}.block-section.compact{height:100%;display:flex;flex-direction:column;overflow:auto;padding:.6rem;border-radius:8px}.block-section-scrollable{flex:1;overflow-y:auto;padding-right:.3rem;margin-right:-.3rem}.block-section-scrollable::-webkit-scrollbar{width:4px}.block-section-scrollable::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.block-section-scrollable::-webkit-scrollbar-thumb{background:#f8bbd9;border-radius:2px}.block-section-title.compact{font-size:.95rem;margin-bottom:.5rem;padding-bottom:.3rem;border-bottom-width:2px}.selected-date-inline{margin-left:auto;padding:.2rem .5rem;background:#c2185b;color:#fff;border-radius:4px;font-size:.75rem;font-weight:600}.block-form-layout{display:grid;grid-template-columns:220px 1fr;gap:.75rem;max-width:100%}@media(max-width:1000px){.block-form-layout{grid-template-columns:1fr}}.block-calendar-wrapper.compact{padding:.5rem;margin-bottom:0}.block-calendar-nav.compact{margin-bottom:.4rem;padding:.3rem .4rem}.block-calendar-nav.compact button{width:24px;height:24px;font-size:.8rem}.block-calendar-month{font-size:.85rem}.block-calendar-grid.compact{gap:3px}.block-weekday-header.compact{padding:0;height:22px;line-height:22px;font-size:.65rem}.block-day-cell.compact{font-size:.7rem;border-radius:3px;min-height:28px;min-width:28px}.block-day-cell.empty.compact{min-height:28px;min-width:28px}.block-day-cell.compact.closed:after{font-size:.5rem;bottom:1px;right:1px}.block-config-panel{display:flex;flex-direction:column;gap:.5rem;min-width:0;overflow-x:hidden}.mode-selector{display:flex;gap:.4rem;margin-bottom:.3rem}.mode-btn{flex:1;padding:.5rem .4rem;background:#fff;border:2px solid #e0e0e0;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.3rem}.mode-btn:hover{border-color:#f8bbd9;background:#fff5f8}.mode-btn.active{background:linear-gradient(135deg,#f8bbd9,#f48fb1);border-color:#c2185b;color:#880e4f}.matrix-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.matrix-label{font-size:.75rem;font-weight:600;color:#555}.matrix-actions{display:flex;gap:.3rem}.matrix-action-btn{padding:.2rem .4rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px;font-size:.65rem;cursor:pointer;transition:all .15s}.matrix-action-btn:hover{background:#f8bbd9;border-color:#c2185b}.matrix-grid{display:flex;flex-direction:column;border:1px solid #e0e0e0;border-radius:6px;overflow:auto;background:#fff;width:100%;max-height:calc(100vh - 350px)}.matrix-grid::-webkit-scrollbar{height:6px;width:6px}.matrix-grid::-webkit-scrollbar-track{background:#f1f1f1}.matrix-grid::-webkit-scrollbar-thumb{background:#f8bbd9;border-radius:3px}.matrix-grid.transposed .matrix-header-row{display:grid;grid-template-columns:100px repeat(3,1fr);background:#f8f9fa;border-bottom:1px solid #e0e0e0}.matrix-grid.transposed .matrix-corner{border-right:1px solid #e0e0e0}.matrix-grid.transposed .matrix-col-header{padding:.3rem .15rem;text-align:center;font-size:.6rem;font-weight:600;color:#555;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem}.matrix-grid.transposed .matrix-col-header:last-child{border-right:none}.matrix-grid.transposed .matrix-col-header.time-slot-header span{font-size:.7rem}.matrix-grid.transposed .matrix-col-header.time-slot-header small{font-size:.55rem;color:#666}.matrix-grid.transposed .matrix-row{display:grid;grid-template-columns:100px repeat(3,1fr);border-bottom:1px solid #e0e0e0;min-height:40px}.matrix-grid.transposed .matrix-row:last-child{border-bottom:none}.matrix-grid.transposed .matrix-row-header{padding:.3rem .4rem;background:#f8f9fa;border-right:1px solid #e0e0e0;display:flex;align-items:center;font-size:.65rem;font-weight:600;color:#333;overflow:hidden}.matrix-grid.transposed .matrix-row-header.room-header{justify-content:flex-start}.room-full-name{font-size:.65rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.matrix-grid.transposed .matrix-cell{border:none;border-right:1px solid #e0e0e0;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;font-size:.85rem;color:#c2185b;min-height:40px;padding:.2rem}.matrix-grid.transposed .matrix-cell:last-child{border-right:none}.matrix-grid.transposed .matrix-cell:hover:not(:disabled){background:#fce4ec}.matrix-grid.transposed .matrix-cell.selected{background:linear-gradient(135deg,#f8bbd9,#f48fb1)}.matrix-grid.transposed .matrix-cell.blocked{background:#e0e0e0;cursor:not-allowed}.blocked-mark{color:#999;font-size:1rem;font-weight:700}.full-day-panel{padding:.4rem;background:#f8f9fa;border-radius:6px;border:1px solid #e0e0e0}.block-type-grid.compact{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem;margin-bottom:.5rem}@media(max-width:600px){.block-type-grid.compact{grid-template-columns:repeat(2,1fr)}}.block-type-card.compact{padding:.4rem;border-radius:4px;font-size:.75rem;display:flex;flex-direction:column;align-items:center;gap:.2rem}.block-type-card.compact svg{font-size:1rem}.block-options-panel{padding:.4rem;background:#f8f9fa;border-radius:6px;border:1px solid #e0e0e0}.option-group-title.compact{font-size:.8rem;margin-bottom:.3rem}.checkbox-list.compact{display:flex;flex-direction:column;gap:.2rem}.checkbox-item{display:flex;align-items:center;gap:.4rem;padding:.3rem .4rem;background:#fff;border-radius:4px;cursor:pointer;transition:all .15s;border:1px solid transparent}.checkbox-item:hover{background:#fff5f8;border-color:#f8bbd9}.checkbox-item.selected{background:#fce4ec;border-color:#f48fb1}.checkbox-item.blocked{opacity:.5;cursor:not-allowed}.checkbox-item input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.checkbox-box{width:16px;height:16px;border:2px solid #ccc;border-radius:3px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff}.checkbox-item.selected .checkbox-box{background:#c2185b;border-color:#c2185b}.checkbox-box svg{color:#fff;font-size:.65rem}.checkbox-text{font-size:.75rem;color:#333;flex:1}.checkbox-text small{color:#888;font-size:.65rem}.reason-input-compact{margin-bottom:.3rem}.reason-input-compact input{width:100%;padding:.4rem .5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:.8rem}.reason-input-compact input:focus{outline:none;border-color:#f8bbd9}.block-actions.compact{gap:.3rem}.add-block-btn.compact,.clear-selection-btn.compact{padding:.4rem .6rem;font-size:.8rem;border-radius:4px}.block-filters.compact{gap:.3rem;margin-bottom:.4rem}.block-filter-btn.compact{padding:.25rem .5rem;font-size:.7rem;border-radius:12px}.block-list.compact{max-height:none;gap:.3rem}.block-item.compact{padding:.4rem;border-radius:6px}.block-item-main{display:flex;align-items:center;gap:.4rem;margin-bottom:.15rem}.block-date-compact{font-size:.8rem;font-weight:700;color:#333}.block-type-badge.compact{padding:.1rem .3rem;font-size:.6rem;border-radius:3px}.block-item-details{font-size:.75rem;color:#666;margin-bottom:.15rem}.block-reason-compact{color:#888;font-style:italic}.remove-block-btn.compact{padding:.25rem .4rem;font-size:.7rem}.loading-container.compact{padding:1rem}.loading-spinner.compact{width:24px;height:24px;border-width:3px}.no-blocks.compact{padding:1rem;font-size:.8rem}.no-blocks.compact svg{font-size:1.5rem;margin-bottom:.3rem;display:block;margin-left:auto;margin-right:auto}@media(max-width:1024px){.block-settings-container{padding:.5rem;overflow:auto}.block-settings-content{grid-template-columns:1fr;gap:.75rem}.block-section{padding:.75rem;overflow:visible}}@media(max-width:768px){.block-settings-container{padding:.25rem}.block-section{padding:.5rem}.block-section-title{font-size:1rem;margin-bottom:.5rem;padding-bottom:.3rem}.block-type-grid,.time-slot-grid,.room-grid{grid-template-columns:1fr}.block-item{flex-direction:column;gap:.5rem}.block-item-actions{margin-left:0;width:100%}.remove-block-btn{width:100%;justify-content:center}.block-actions{flex-direction:column}.add-block-btn,.clear-selection-btn{width:100%}.block-form-layout{grid-template-columns:1fr}.block-type-grid.compact{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.block-section-title{font-size:.9rem}.block-calendar-nav{padding:.3rem .4rem}.block-calendar-nav button{width:28px;height:28px}.block-calendar-month{font-size:.9rem}.block-list{max-height:300px;overflow-y:auto}}.message-manager-container{min-height:100vh;background:#f5f5f5;padding:.5rem;overflow:auto}.message-manager-content{max-width:1200px;margin:0 auto;overflow:auto}.message-layout{display:grid;grid-template-columns:220px 1fr;gap:.5rem;margin-top:.5rem;min-width:0;overflow:auto}.user-panel{background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;overflow:auto;display:flex;flex-direction:column;min-width:0;max-height:calc(100vh - 120px)}.user-panel .search-input{width:100%;padding:.5rem .75rem;border:none;border-bottom:1px solid #eee;font-size:.85rem;outline:none;flex-shrink:0}.user-panel .search-input:focus{background:#fafafa}.user-actions{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-bottom:1px solid #eee;font-size:.75rem;flex-shrink:0}.user-actions .link-btn{background:none;border:none;color:#1976d2;cursor:pointer;font-size:.75rem}.user-actions .selection-count{margin-left:auto;color:#666}.user-list{flex:1;overflow-y:auto;min-height:0;overflow-x:auto}.user-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;border-bottom:1px solid #f5f5f5;cursor:pointer;transition:background .15s}.user-item:hover{background:#fafafa}.user-item.selected{background:#e3f2fd}.user-item.checked{background:#f3e5f5}.user-info{display:flex;align-items:center;gap:.4rem;min-width:0}.user-name{font-size:.85rem;color:#333;display:flex;align-items:center;gap:.3rem;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item.selected .user-name{color:#1565c0;font-weight:500}.history-icon{font-size:.7rem;color:#90a4ae;flex-shrink:0}.badge{font-size:.65rem;padding:.1rem .35rem;border-radius:3px;font-weight:500;flex-shrink:0}.badge.pending{background:#fff3e0;color:#e65100}.badge.approved{background:#e8f5e9;color:#2e7d32}.compose-panel{background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;padding:1rem;overflow:auto;display:flex;flex-direction:column;min-width:0;max-height:calc(100vh - 120px)}.mode-tabs{display:flex;gap:.4rem;margin-bottom:1rem;flex-shrink:0}.mode-tabs .tab{padding:.5rem .75rem;background:#f5f5f5;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;gap:.3rem;color:#666;transition:all .2s}.mode-tabs .tab.active{background:#c2185b;color:#fff}.recipient-field{margin-bottom:.75rem;flex-shrink:0}.recipient-field label{display:block;font-size:.75rem;color:#666;margin-bottom:.3rem}.recipient-field input{width:100%;padding:.5rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.recipient-count{padding:.5rem .75rem;background:#e3f2fd;border-radius:4px;text-align:center;color:#1565c0;font-weight:500;font-size:.85rem;margin-bottom:.75rem;flex-shrink:0}.form-field{margin-bottom:.75rem;flex-shrink:0}.form-field label{display:block;font-size:.8rem;color:#555;margin-bottom:.3rem}.form-field .required{color:#d32f2f}.form-field input,.form-field textarea{width:100%;padding:.5rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;font-family:inherit;box-sizing:border-box}.form-field textarea{resize:vertical;min-height:80px;line-height:1.5}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:#c2185b}.send-btn{width:100%;padding:.75rem;background:#c2185b;color:#fff;border:none;border-radius:4px;font-size:.95rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:background .2s;flex-shrink:0}.send-btn:hover:not(:disabled){background:#ad1457}.send-btn:disabled{opacity:.7;cursor:not-allowed}.history-section{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee;flex-shrink:0}.history-title{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:#666;margin-bottom:.5rem}.history-title svg{color:#90a4ae;font-size:.8rem}.history-title .text-btn{margin-left:auto;background:none;border:none;color:#999;cursor:pointer;font-size:.8rem;padding:.2rem}.history-list{background:#fafafa;border-radius:4px;overflow:auto;max-height:150px}.history-item{display:flex;justify-content:space-between;align-items:center;padding:.4rem .5rem;border-bottom:1px solid #f0f0f0}.history-item:last-child{border-bottom:none}.history-subject{font-size:.8rem;color:#333;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:.5rem}.history-date{font-size:.75rem;color:#999;white-space:nowrap;flex-shrink:0}.result-message{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border-radius:4px;font-size:.85rem;font-weight:500;flex-shrink:0}.result-message.success{background:#e8f5e9;color:#2e7d32}.result-message.error{background:#ffebee;color:#c62828}.loading,.no-users{padding:1.5rem;text-align:center;color:#999;font-size:.8rem}.loading svg{margin-right:.3rem}@media(max-width:1024px){.message-layout{grid-template-columns:200px 1fr}.user-name{max-width:100px}}@media(max-width:900px){.message-layout{grid-template-columns:1fr}.user-panel{flex-direction:row;flex-wrap:wrap}.user-panel .search-input{width:100%;order:0}.user-actions{border-bottom:none;border-left:1px solid #eee;order:1}.user-list{width:100%;max-height:200px;display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem;order:2}.user-item{border:1px solid #e0e0e0;border-radius:4px;padding:.4rem .5rem;flex:0 0 auto}.user-name{max-width:80px}}@media(max-width:600px){.message-manager-container{padding:.25rem}.message-layout{gap:.5rem;margin-top:.5rem}.compose-panel{padding:.75rem}.mode-tabs .tab{padding:.4rem .5rem;font-size:.8rem}.form-field textarea{min-height:60px}.history-section{margin-top:.75rem;padding-top:.75rem}}.user-manager-container{padding:1rem;overflow:auto;max-height:calc(100vh - 20px)}.user-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #ddd}.user-manager-header h1{margin:0;font-size:1.2rem}.header-right{display:flex;gap:.5rem}.btn-primary,.btn-secondary,.btn-back,.btn-export{padding:.4rem .8rem;border:1px solid #ccc;background:#fff;cursor:pointer;font-size:.85rem}.btn-primary{background:#333;color:#fff;border-color:#333}.btn-export{background:#f5f5f5}.stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1rem}@media(max-width:768px){.stats-cards{grid-template-columns:repeat(2,1fr)}}.stat-card{padding:.75rem;background:#f5f5f5;text-align:center}.stat-number{font-size:1.5rem;font-weight:700}.stat-label{font-size:.75rem;color:#666}.control-panel{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.search-box{display:flex;align-items:center;gap:.5rem;flex:1;min-width:200px;padding:.4rem;border:1px solid #ddd}.search-box input{border:none;outline:none;flex:1;font-size:.9rem}.filter-select,.sort-select{padding:.4rem;border:1px solid #ddd;font-size:.85rem}.bulk-actions{display:flex;gap:.3rem}.btn-bulk{padding:.4rem .6rem;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:.8rem}.btn-bulk.activate{background:#4caf50;color:#fff;border-color:#4caf50}.btn-bulk.deactivate{background:#ff9800;color:#fff;border-color:#ff9800}.btn-bulk.delete{background:#f44336;color:#fff;border-color:#f44336}.selection-badge{padding:.2rem .5rem;background:#2196f3;color:#fff;font-size:.8rem}.user-table{width:100%;border-collapse:collapse;font-size:.85rem;overflow:auto;display:block;max-width:100%;max-height:calc(100vh - 280px)}.user-table th{background:#333;color:#fff;padding:.6rem;text-align:left;font-weight:400}.user-table td{padding:.6rem;border-bottom:1px solid #eee}.user-table tr:hover{background:#f9f9f9}.user-table tr.inactive{opacity:.5}.name-link{background:none;border:none;color:#06c;cursor:pointer;font-size:.85rem;text-decoration:underline}.status-badge{padding:.3rem .6rem;font-size:.8rem;font-weight:700;cursor:pointer;border:2px solid transparent;transition:all .2s;min-width:60px;text-align:center}.status-badge.active{background:#4caf50;color:#fff;border-color:#4caf50}.status-badge.active:hover{background:#e8f5e9;color:#4caf50}.status-badge.inactive{background:#f5f5f5;color:#999;border-color:#ccc}.status-badge.inactive:hover{background:#ffebee;color:#f44336;border-color:#f44336}.toggle-switch{position:relative;width:50px;height:26px;background:#ccc;border-radius:13px;cursor:pointer;transition:background .3s}.toggle-switch.active{background:#4caf50}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .3s}.toggle-switch.active:after{transform:translate(24px)}.action-buttons{display:flex;gap:.3rem}.btn-icon{padding:.3rem .5rem;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:.75rem}.btn-icon:hover{background:#f5f5f5}.loading-container{text-align:center;padding:3rem;color:#999}.loading-spinner{width:30px;height:30px;border:3px solid #ddd;border-top-color:#333;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.no-data{text-align:center;padding:3rem;color:#999}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;width:100%;max-width:500px;max-height:90vh;overflow:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#333;color:#fff}.modal-header h3{margin:0;font-size:1rem}.modal-close{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer}.modal-body{padding:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.3rem;font-size:.85rem}.form-group input[type=text],.form-group input[type=password]{width:100%;padding:.5rem;border:1px solid #ddd;font-size:.9rem}.email-input-group{display:flex;align-items:center;gap:.5rem}.email-input-group input{flex:1}.domain-suffix{color:#666;font-size:.85rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.error-message{background:#ffebee;color:#c62828;padding:.5rem;margin-bottom:1rem;font-size:.85rem}.user-info-section,.reservations-section,.login-logs-section{margin-bottom:1.5rem;overflow:auto;max-height:calc(100vh - 400px)}.user-info-section h4,.reservations-section h4,.login-logs-section h4{margin:0 0 .5rem;padding-bottom:.3rem;border-bottom:1px solid #ddd;font-size:.9rem}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.info-item label{font-size:.75rem;color:#666}.info-item span{font-size:.9rem}.reservation-list{display:flex;flex-direction:column;gap:.5rem}.reservation-item{padding:.5rem;background:#f5f5f5;font-size:.85rem}.reservation-header{display:flex;justify-content:space-between;margin-bottom:.3rem}.reservation-month{font-weight:700}.reservation-count{font-size:.75rem}.reservation-details{display:flex;flex-wrap:wrap;gap:.3rem}.reservation-date{padding:.1rem .3rem;background:#fff;border:1px solid #ddd;font-size:.75rem}.login-log-list{list-style:none;padding:0;margin:0}.login-log-list li{padding:.3rem 0;font-size:.85rem;border-bottom:1px solid #eee}.no-data-small{color:#999;font-style:italic;font-size:.85rem}@media(max-width:1024px){.user-manager-container{padding:.5rem;overflow:auto}.control-panel{flex-wrap:wrap}.search-box{min-width:150px}.user-table{font-size:.8rem;display:block;overflow-x:auto}.user-table th,.user-table td{padding:.4rem;white-space:nowrap}}@media(max-width:768px){.control-panel{flex-direction:column;align-items:stretch}.search-box{width:100%;min-width:auto}.user-table{font-size:.75rem}.user-table th,.user-table td{padding:.3rem}.stats-col,.action-col{display:none}}@media(max-width:600px){.user-manager-container{padding:.25rem}.stats-cards{grid-template-columns:repeat(2,1fr);gap:.25rem}.stat-card{padding:.5rem}.stat-number{font-size:1.2rem}.stat-label{font-size:.65rem}}.app{height:calc(var(--vh) * 100);min-height:calc(var(--vh) * 100);display:flex;flex-direction:column;overflow:hidden}body.is-pc .app-header{position:sticky;top:0;z-index:100}.app-header{background:linear-gradient(135deg,#bfdbfe,#60a5fa);color:#4a1d2f;padding:8px 16px;text-align:center;border-bottom:2px solid white;flex-shrink:0}.app-header-title{display:flex;flex-direction:column;align-items:center;gap:4px}.app-title{font-size:1.25rem;font-weight:800;margin:0;line-height:1.3}.app-subtitle{font-size:1rem;font-weight:700;margin:0;color:#1e40af}.app-status-info{margin-top:12px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff4d;border:2px solid rgba(255,255,255,.5);border-radius:12px;padding:8px 20px;font-size:1rem;font-weight:700;color:#1e3a5f;gap:16px}.status-group{display:flex;align-items:baseline;gap:4px}.status-label{font-size:.85rem;font-weight:700;color:#1e40af}.status-value{font-size:1.1rem;font-weight:800;color:#1e3a5f}.status-divider{width:2px;height:32px;background:#0000001a;border-radius:2px}@media(min-width:1024px){.app-header{display:flex;align-items:center;justify-content:space-between;padding:8px 24px;text-align:left}.app-header-title{flex-direction:row;align-items:center;gap:12px}.app-title{font-size:1.1rem}.app-subtitle{font-size:.9rem}.app-status-info{margin-top:0;padding:6px 16px;font-size:.9rem;gap:12px}.status-label{font-size:.75rem}.status-value{font-size:1rem}.status-divider{height:24px}}@media(max-width:600px){.app-status-info{gap:12px;padding:8px 12px;font-size:.95rem}.status-label{font-size:.8rem}.status-value{font-size:1rem}}.app-main{flex:1;padding:10px;margin:0 auto;width:100%;overflow-y:auto;overflow-x:hidden;min-height:0}@media(min-width:1200px){.app-header{flex-direction:row;align-items:center;justify-content:space-between;padding:16px 40px}.app-header-title{flex-direction:column;align-items:flex-start;gap:4px}.app-status-info{display:flex;align-items:center;gap:16px}}.reservation-summary{margin-top:24px;padding:24px;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;text-align:center}.reservation-summary p{font-size:1.25rem;margin-bottom:16px;color:var(--text-secondary)}.reservation-summary strong{font-size:2rem;color:var(--primary)}.time-slot-change{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000f;margin-bottom:16px}.current-slot{font-size:1.125rem;font-weight:700;color:var(--primary)}.change-slot-button{padding:10px 20px;background:var(--surface);border:2px solid var(--border);border-radius:8px;font-size:1rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s}.change-slot-button:hover{background:var(--border)}@media(min-width:1024px){.time-slot-change{padding:8px 12px;border-radius:8px;margin-bottom:8px;box-shadow:0 1px 5px #0000000f}.current-slot{font-size:.9rem}.change-slot-button{padding:6px 12px;font-size:.8rem;border-radius:6px;border-width:1.5px}}.calendar-layout{display:flex;flex-direction:column;gap:16px}.calendar-main{display:flex;flex-direction:column}.calendar-sidebar{display:none}.calendar-mobile-info{display:block;margin-top:16px}.calendar-mobile-info .selection-actions{margin-top:0;padding:16px;border-radius:12px;border-width:2px}.selection-hint{font-size:.85rem;color:var(--text-secondary);margin-bottom:0;margin-top:8px}@media(min-width:1200px){.calendar-mobile-info{display:none}.calendar-layout{flex-direction:row;gap:24px}.calendar-main{flex:2;min-width:0}.calendar-sidebar{display:flex;flex:1;flex-direction:column;min-width:300px;max-width:400px}.calendar-sidebar .selection-actions{margin-top:0;height:100%;display:flex;flex-direction:column;justify-content:center}}@media(min-width:1024px){.calendar-layout{gap:8px}.calendar-sidebar{min-width:220px;max-width:280px}.selection-actions{margin-top:0;padding:12px;border-radius:10px;border-width:2px}.selection-info{font-size:.9rem;margin-bottom:8px}.selection-info strong{font-size:1.4rem}.selection-actions p{font-size:.75rem;margin-bottom:8px}}.selection-actions{margin-top:24px;padding:24px;background:#eff6ff;border-radius:16px;border:3px solid var(--primary);text-align:center}.selection-info{font-size:1.25rem;margin-bottom:16px;color:var(--primary-dark)}.selection-info strong{font-size:2rem}.selection-buttons{display:flex;gap:12px}.selection-buttons .action-button{flex:1;padding:16px 24px;border-radius:12px;font-size:1.125rem;font-weight:700;cursor:pointer;transition:all .2s;border:none}.selection-buttons .action-button.primary{background:var(--primary);color:#fff}.selection-buttons .action-button.primary:hover{background:var(--primary-dark)}.selection-buttons .action-button.secondary{background:#fff;color:var(--text-secondary);border:2px solid var(--border)}.selection-buttons .action-button.secondary:hover{background:var(--surface)}.confirm-button{width:100%;padding:20px 32px;background:linear-gradient(135deg,var(--success) 0%,#059669 100%);color:#fff;border:none;border-radius:12px;font-size:1.25rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #10b9814d}.confirm-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.confirm-button:disabled{background:var(--border);color:var(--text-light);cursor:not-allowed;box-shadow:none}.app-footer{background:var(--surface);padding:12px 20px;text-align:center;color:var(--text-secondary);font-size:.9rem;flex-shrink:0;border-top:2px solid var(--border)}@media(min-width:1024px){.app-header{padding:4px 20px;min-height:auto}.app-header-title{gap:8px}.app-title{font-size:.9rem}.app-subtitle{font-size:.75rem}.app-status-info{margin-top:0;padding:3px 10px;font-size:.8rem;gap:8px;border-width:1px;border-radius:8px}.status-label{font-size:.65rem}.status-value{font-size:.8rem}.status-divider{height:16px;width:1px}.app-footer{padding:6px 12px;border-top-width:1px}.footer-actions{margin-bottom:6px;gap:8px}.footer-button{padding:8px 16px;font-size:.9rem;min-height:36px;border-radius:8px}.footer-notice{padding-top:4px;border-top-width:1px}.footer-notice p{margin:1px 0;font-size:.7rem;line-height:1.3}}.footer-actions{display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.footer-button{flex:1;padding:14px 24px;border-radius:10px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:none;min-height:52px}@media(min-width:1200px){.footer-button{padding:18px 32px;font-size:1.2rem;min-height:64px}}.footer-button.primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 4px 12px #2563eb4d}.footer-button.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #2563eb66}.footer-button.secondary{background:#fff;color:var(--text-secondary);border:2px solid var(--border);box-shadow:0 2px 8px #0000000d}.footer-button.secondary:hover:not(:disabled){background:var(--surface);border-color:var(--primary-light);transform:translateY(-2px)}.footer-button:disabled{background:var(--border);color:var(--text-light);cursor:not-allowed;box-shadow:none;transform:none}.footer-notice{padding-top:10px;border-top:1px solid var(--border)}.footer-notice p{margin:4px 0;font-size:.85rem}@media(max-width:600px){.app-header{padding:2px 4px}.app-title{font-size:1.1rem}.app-subtitle{font-size:.9rem}.app-status-info{gap:12px;padding:8px 12px;font-size:.95rem}.status-label{font-size:.8rem}.status-value{font-size:1rem}.reservation-summary{padding:16px}.reservation-summary p{font-size:1rem}.confirm-button{padding:16px 24px;font-size:1.125rem}}
