:root{--vh: 1vh;--primary: #ec4899;--primary-dark: #be185d;--primary-light: #fce7f3;--success: #059669;--success-light: #d1fae5;--warning: #d97706;--warning-light: #fffbeb;--error: #dc2626;--error-light: #fee2e2;--text-primary: #4a1d2f;--text-secondary: #704555;--text-light: #9d818e;--background: #fff5f7;--surface: #ffffff;--border: #fbcfe8;font-family:Sawarabi Gothic,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;flex:1;min-height:0;overflow-y:auto}.time-slot-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.time-slot-subtitle{font-size:1.15rem;font-weight:700;color:var(--primary);margin-bottom:24px;background:var(--primary-light);display:inline-block;padding:.4rem 1.2rem;border-radius:999px}.time-slot-grid{display:flex;flex-direction:column;gap:16px}.time-slot-button{display:flex;align-items:baseline;justify-content:space-around;padding:18px 24px;border:3px solid var(--border);border-radius:14px;background:var(--surface);cursor:pointer;transition:all .2s ease}.time-slot-button:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.time-slot-button.selected{background:var(--primary);border-color:var(--primary-dark);color:#fff}.slot-label{font-size:1.5rem;font-weight:700;margin-bottom:8px}.slot-icon{font-size:2rem;margin-bottom:12px;opacity:.8}.slot-time{font-size:1.25rem;opacity:.9}.slot-note{font-size:.875rem;margin-top:8px;padding:4px 12px;background:var(--warning-light);color:var(--warning);border-radius:20px;font-weight:600}.time-slot-button.selected .slot-note{background:#fff3;color:#fff}@media(min-width:1024px){.time-slot-selector{padding:8px 16px;border-radius:8px}.time-slot-title{font-size:1rem;margin-bottom:4px}.time-slot-subtitle{font-size:.85rem;margin-bottom:10px;padding:.2rem .8rem}.time-slot-grid{gap:6px}.time-slot-button{padding:8px 12px;border-radius:8px;border-width:2px}.slot-label{font-size:.9rem;margin-bottom:2px}.slot-icon{font-size:1.1rem;margin-bottom:4px}.slot-time{font-size:.8rem}.slot-note{font-size:.65rem;padding:2px 6px;margin-top:2px;border-radius:10px}}@media(min-width:1200px){.time-slot-selector{padding:40px 48px}.time-slot-title{font-size:2rem;margin-bottom:16px}.time-slot-subtitle{font-size:1.5rem;margin-bottom:40px;padding:.6rem 2rem}.time-slot-grid{gap:24px}.time-slot-button{padding:32px 40px}.slot-label{font-size:1.75rem}.slot-time{font-size:1.5rem}.slot-icon{font-size:2.5rem}.slot-note{font-size:1rem;padding:6px 16px}}@media(max-width:600px){.time-slot-selector{padding:24px 16px}.time-slot-title{font-size:1.5rem}.time-slot-button{padding:20px}.slot-label{font-size:1.25rem}.slot-time{font-size:1.125rem}}.calendar{background:#fff;border-radius:12px;padding:12px;box-shadow:0 4px 20px #00000014;flex:1;min-height:0;overflow-y:auto}.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;overflow-y:auto;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;overflow-y:auto}.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}}.room-dropdown{margin-bottom:24px}.choice-icon{margin-right:8px}.choice-icon.gold{color:#f59e0b}.choice-icon.silver{color:#94a3b8}.choice-icon.bronze{color:#b45309}.room-dropdown.disabled{opacity:.5}.room-dropdown-label{display:block;font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:12px}.room-select{width:100%;padding:16px 50px 16px 20px;font-size:1.125rem;font-weight:600;border:3px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text-primary);cursor:pointer;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 16px center;background-size:24px}.room-select:hover:not(:disabled){border-color:var(--primary)}.room-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-light)}.room-select:disabled{cursor:not-allowed;background-color:var(--border)}.room-select option{padding:12px;font-size:1rem}.room-select option:disabled{color:var(--text-light)}.room-dropdown-note{margin-top:8px;font-size:.875rem;color:var(--warning);font-weight:600}@media(min-width:1024px){.room-dropdown{margin-bottom:6px}.room-dropdown-label{font-size:.85rem;margin-bottom:4px}.room-select{padding:6px 30px 6px 10px;font-size:.8rem;border-width:1.5px;border-radius:6px;background-position:right 8px center;background-size:14px}.room-dropdown-note{font-size:.7rem;margin-top:2px}.choice-icon{margin-right:4px}}@media(max-width:600px){.room-select{padding:14px 44px 14px 16px;font-size:1rem;background-size:20px}.room-dropdown-label{font-size:1.125rem}.room-dropdown{margin-bottom:10px}}.preference-form-container{background:var(--surface);border-radius:12px;box-shadow:0 2px 12px #0000000f;display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}.preference-form-header{display:flex;align-items:center;justify-content:center;padding:16px 20px;background:#ffffffe6;border-bottom:2px solid rgba(0,0,0,.05);flex-shrink:0}.preference-form-title{font-size:1.3rem;font-weight:700;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:10px}.preference-form-title svg{color:var(--primary);font-size:1.2rem}.selected-dates-info{padding:12px 20px;background:#fffffff2;text-align:center;border-bottom:1px solid rgba(0,0,0,.05);flex-shrink:0}.dates-count{font-size:1.1rem;margin-bottom:8px;color:var(--primary-dark)}.dates-count strong{font-size:1.5rem;color:var(--primary)}.dates-list{display:flex;flex-wrap:wrap;justify-content:center}.date-tag{background:#fff;color:var(--primary);padding:4px 10px;border-radius:20px;font-weight:700;font-size:1.2rem;box-shadow:0 2px 8px #0000000f;display:inline-flex;align-items:center;border:1px solid var(--primary-light)}.preference-form-content{flex:1;padding:20px;display:flex;flex-direction:column;gap:16px;-webkit-overflow-scrolling:touch}.blocked-warning{background:linear-gradient(135deg,#fff8e1,#fff3cd);border:2px solid #ffc107;border-radius:12px;padding:12px 16px}.blocked-warning-text{color:#856404;font-size:.9rem;margin:0 0 8px;font-weight:600;display:flex;align-items:center;gap:8px}.blocked-dates-list{display:flex;flex-wrap:wrap;gap:6px}.blocked-date-tag{background:#ffc107;color:#856404;padding:4px 10px;border-radius:12px;font-size:.85rem;font-weight:600}.preference-form-actions{display:flex;gap:12px;padding:16px 20px 24px;background:#fffffffa;border-top:2px solid rgba(0,0,0,.05)}.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}.action-button.primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 4px 16px #e91e634d}.action-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #e91e6366}.action-button.primary:active{transform:translateY(0)}.action-button.primary:disabled{background:var(--border);box-shadow:none;cursor:not-allowed;transform:none}.action-button.secondary{background:#fff;color:var(--text-secondary);border:2px solid var(--border);box-shadow:0 2px 8px #0000000d}.action-button.secondary:hover{background:var(--surface);border-color:var(--primary-light);transform:translateY(-2px)}@media(min-width:1024px){.preference-form-container{border-radius:8px}.preference-form-header{padding:6px 12px}.preference-form-title{font-size:.95rem}.preference-form-title svg{font-size:.9rem}.selected-dates-info{padding:6px 12px}.dates-count{font-size:.85rem;margin-bottom:4px}.dates-count strong{font-size:1.1rem}.dates-list{gap:3px}.date-tag{font-size:.8rem;padding:2px 6px;border-radius:12px}.preference-form-content{padding:8px 12px;gap:6px;overflow-y:visible}.blocked-warning{padding:6px 10px;border-radius:8px;border-width:1.5px}.blocked-warning-text{font-size:.75rem}.blocked-dates-list{gap:3px}.blocked-date-tag{font-size:.7rem;padding:2px 6px;border-radius:8px}.room-dropdown{margin-bottom:6px}.room-dropdown-label{font-size:.85rem;margin-bottom:4px}.room-select{padding:6px 30px 6px 10px;font-size:.8rem;border-width:1.5px;border-radius:6px;background-position:right 8px center;background-size:14px}.room-dropdown-note{font-size:.7rem;margin-top:2px}.choice-icon{margin-right:4px}}@media(min-width:1200px){.preference-form-container{border-radius:12px}.preference-form-header{padding:24px 32px}.preference-form-title{font-size:1.6rem}.selected-dates-info{padding:20px 32px}.dates-count{font-size:1.3rem}.dates-count strong{font-size:1.8rem}.date-tag{font-size:1.4rem;padding:6px 14px}.preference-form-content{padding:32px 40px;gap:24px;overflow-y:auto}.blocked-warning{padding:20px 24px}.blocked-warning-text{font-size:1.1rem}.blocked-date-tag{font-size:1rem;padding:6px 14px}.preference-form-actions{padding:24px 40px 32px}.action-button{padding:20px 32px;font-size:1.3rem}}@media(max-width:600px){.preference-form-header{padding:14px 16px}.preference-form-title{font-size:1.15rem}.selected-dates-info{padding:10px 16px}.dates-count{font-size:1rem;margin-bottom:6px}.dates-count strong{font-size:1.8rem}.date-tag{font-size:1.15rem;padding:3px 8px}.preference-form-content{padding:16px;gap:12px}.preference-form-actions{padding:14px 16px 28px;flex-direction:column;gap:10px}.action-button{padding:14px 20px;font-size:1rem}}.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;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-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-main{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 20px}.confirmation-fullscreen-footer{background:#f0fdf4;padding:12px 16px;text-align:center;color:#166534;font-size:.9rem;flex-shrink:0;border-top:2px solid #86efac}.confirmation-footer-actions{display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.confirmation-footer-button{flex:1;padding:10px 20px;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:none;min-height:44px}.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}}.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:16px;z-index:1000}.modal-container{background:#fff;border-radius:20px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:2px solid var(--border)}.modal-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0}.modal-content{padding:24px}.modal-actions{display:flex;gap:12px;padding:24px;border-top:2px solid var(--border)}.action-button{flex:1;padding:16px 24px;border-radius:12px;font-size:1.125rem;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:20px 20px 0 0;max-height:90vh;height:auto;position:absolute;bottom:0;left:0;right:0;max-width:none;display:flex;flex-direction:column}.modal-header{padding:16px 20px;flex-shrink:0;position:sticky;top:0;background:#fff;z-index:10;border-radius:20px 20px 0 0}.modal-title{font-size:1.25rem}.modal-content{padding:16px 20px;overflow-y:auto;flex-grow:1;-webkit-overflow-scrolling:touch}.modal-actions{padding:16px 20px 32px;flex-shrink:0;background:#fff;border-top:1px solid var(--border)}.action-button{padding:14px 20px;font-size:1rem}}.mypage-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.mypage-loading{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-radius:20px;padding:56px 48px;max-width:480px;width:100%;box-shadow:0 8px 32px #ec489926;border:2px solid var(--primary);text-align:center;color:#4a1d2f;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 #ec48991a;margin-bottom:16px;overflow:hidden}.section-header{font-size:1.25rem;font-weight:800;color:#4a1d2f;margin:0;padding:14px 18px;display:flex;align-items:center;gap:10px}.section-header svg{font-size:1.4rem}.main-section.results .section-header{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-bottom:3px solid #3b82f6}.main-section.results .section-header svg{color:#1d4ed8}.main-section.application .section-header{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-bottom:3px solid var(--primary)}.main-section.application .section-header svg{color:var(--primary)}.section-content{padding:16px}.header-dadge{color:brown;font-weight:800;font-size:1.05rem;padding:4px 12px;background:#ffe2e2;border-radius:8px;border:2px solid rosybrown}.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:#ffe2e2;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}.submitted-notice{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:4px solid #059669;border-radius:16px;padding:12px 10px;text-align:center;box-shadow:0 6px 24px #05966933}.submitted-header{display:flex;align-items:center;justify-content:center;gap:12px}.submitted-icon{font-size:2rem;color:#059669}.submitted-title{font-size:1.2rem;font-weight:900;color:#047857;margin:0}.submitted-message{font-size:1.2rem;font-weight:600;color:#065f46;line-height:1.8;margin:0}.submitted-message strong{font-size:1.3rem;font-weight:800;color:#047857;background:#fff;padding:4px 12px;border-radius:8px;border:2px solid #059669}.application-details{background:#fff;border:2px solid var(--border);border-radius:14px;padding:20px;margin-top:16px}.application-details h4{font-size:1.15rem;font-weight:800;color:#4a1d2f;margin:0 0 16px;display:flex;align-items:center;gap:8px}.application-details h4 svg{color:var(--primary);font-size:1.2rem}.application-content{display:flex;flex-direction:column}.application-section{padding:16px 0;border-bottom:2px dashed var(--border)}.application-section:first-child{padding-top:0}.application-section:last-child{border-bottom:none;padding-bottom:0}.application-section-title{font-size:1rem;font-weight:700;color:#704555;margin:0 0 12px;display:flex;align-items:center;gap:8px}.application-section-title svg{color:var(--primary);font-size:1.1rem}.application-section-body{padding-left:4px}.preference-row{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:600;color:#4a1d2f}.preference-row:not(:last-child){margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #f0e8e8}.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}.time-slot-value{font-size:1.05rem;font-weight:600;color:#4a1d2f}.dates-list-container{border-radius:10px;padding:12px 16px;margin-top:4px}.dates-list{display:flex;flex-direction:column}.date-item{display:flex;align-items:center;justify-content:space-between;padding:5px 0}.date-item:not(:last-child){border-bottom:1px solid #e8e0e0}.date-item.conflict{background:#fef2f2;margin:0 -16px;padding:10px 16px;border-radius:8px;border-bottom:none}.date-item-left{display:flex;align-items:center;gap:12px}.date-number{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:8px;font-size:.9rem;font-weight:700;background:#f3e8ff;color:#6b21a8;border:2px solid #d8b4fe}.date-text{font-size:1.05rem;font-weight:600;color:#4a1d2f}.date-item.conflict .date-text{color:#991b1b;font-weight:700}.conflict-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#fee2e2;color:#991b1b;border-radius:6px;font-size:.8rem;font-weight:700}.conflict-badge svg{font-size:.85rem}.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:#4a1d2f}.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}.results-table-wrapper{overflow-x:auto;margin-top:8px}.results-table{width:100%;border-collapse:collapse;font-size:.95rem}.results-table th{text-align:left;padding:10px 12px;background:#f8fafc;font-weight:700;color:#475569;border-bottom:2px solid #e2e8f0}.results-table td{padding:12px;border-bottom:1px solid #e2e8f0;vertical-align:middle}.results-table tr:hover{background:#f8fafc}.results-table tr.status-approved{background:#dbeafe}.results-table tr.status-rejected{background:#fef2f2}.results-table tr.status-pending{background:#fffbeb}.date-cell{font-weight:700;color:#1e293b;min-width:60px}.status-cell{min-width:80px}.room-cell{font-weight:600;color:#334155}.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:#1e40af;background:#fff;border:2px solid #3b82f6}.status-badge.status-approved svg{color:#1d4ed8}.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}.choice-badge{font-size:.75rem;padding:2px 6px;margin-left:6px;background:#dbeafe;color:#1e40af;border-radius:4px}.result-room{font-size:1.1rem;font-weight:700;color:#4a1d2f;padding-left:4px}.result-note{font-size:1rem;color:#704555;font-weight:600;padding-left:4px}.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:#3b82f6;background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.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:#4a1d2f;min-width:110px}.result-date svg{font-size:1.1rem;color:var(--primary)}.result-info{flex:1;display:flex;flex-direction:column;gap:6px}.result-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.time-badge{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;font-weight:700;padding:6px 12px;border-radius:8px;background:#fff;color:#4b5563;border:2px solid #e5e7eb}.empty-state{text-align:center;padding:28px 20px;color:#704555}.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,#ec4899,#db2777);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 #ec489959}.make-reservation-button:hover{transform:translateY(-3px);box-shadow:0 8px 28px #ec489973}.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,#fdf2f8,#fce7f3);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:#4a1d2f;border:3px solid var(--border);box-shadow:0 2px 12px #ec48991a}.mypage-actions .action-button.secondary:hover{background:var(--primary-light);border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 16px #ec489933}@media(min-width:1200px){.submitted-notice{padding:15px 20px;margin-bottom:10px}.submitted-icon{font-size:2rem}.submitted-title{font-size:1.2rem}.submitted-message{font-size:1.4rem}.submitted-message strong{font-size:1.5rem;padding:6px 16px}.mypage-content{display:grid;grid-template-columns:1fr 1fr;gap:5px;align-content:start}.mypage-content>.deadline-badge{grid-column:1 / -1}.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}.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}.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){.submitted-notice{padding:20px 16px;margin-bottom:16px;border-width:3px}.submitted-icon{font-size:2rem}.submitted-title{font-size:1.5rem}.submitted-message{font-size:1.05rem;line-height:1.7}.submitted-message strong{font-size:1.1rem;padding:3px 8px;display:inline-block;margin-top:6px}.mypage-content{padding:5px}.main-section{margin-bottom:20px;border-width:2px}.section-header{display:flex;flex-wrap:wrap;justify-content:center;font-size:1.2rem;padding:8px 5px;gap:3px}.section-content{padding:8px}.deadline-badge{padding:14px 16px;font-size:1rem;margin-bottom:20px}.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:10px}.dates-list-container{padding:0}.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}}.admin-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.75rem 1rem;background:#fff;border-bottom:2px solid #f8bbd9;box-shadow:0 2px 8px #00000014}.admin-header-left{display:flex;align-items:center}.admin-header-title{font-size:1.1rem;font-weight:700;color:#333;margin:0;display:flex;align-items:center;gap:.5rem}.admin-header-title svg{color:#c2185b;font-size:1.2rem}.admin-header-center{display:flex;align-items:center;justify-content:center;gap:1rem}.admin-header-right{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.admin-header-nav{display:flex;align-items:center;gap:.5rem}.admin-header-nav-btn{width:32px;height:32px;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 2px 4px #0000001a}.admin-header-nav-btn:hover{background:linear-gradient(135deg,#f8bbd9,#f48fb1);transform:scale(1.1)}.admin-header-nav-text{font-size:1rem;font-weight:600;color:#333;min-width:100px;text-align:center}.admin-header-back-btn{padding:.5rem 1rem;background:#fff;border:2px solid #e0e0e0;border-radius:6px;font-size:.9rem;font-weight:600;color:#666;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.3rem}.admin-header-back-btn:hover{border-color:#c2185b;color:#c2185b;background:#fff5f8}@media(max-width:768px){.admin-header{grid-template-columns:1fr;grid-template-rows:auto auto;gap:.75rem;padding:.75rem}.admin-header-center{order:3}.admin-header-right{order:2;justify-content:flex-start}.admin-header-title{font-size:1rem}}.admin-panel{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.75rem}.admin-header{text-align:center;margin-bottom:.75rem}.admin-title{font-size:1.4rem;color:#c2185b;margin-bottom:.3rem;font-weight:700}.admin-subtitle{color:#555;font-size:.9rem}.admin-content{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;max-width:1400px;margin:0 auto}@media(max-width:900px){.admin-content{grid-template-columns:1fr}}.block-form-section{background:#fff;border-radius:8px;padding:.75rem;box-shadow:0 2px 8px #00000014}.section-title{font-size:1rem;color:#333;margin-bottom:.5rem;padding-bottom:.25rem;border-bottom:2px solid #f8bbd9}.admin-calendar{margin-bottom:.5rem}.admin-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.admin-month-nav button{background:#f8bbd9;border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;color:#c2185b;font-size:.9rem;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:.9rem;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:.65rem;padding:.25rem;background:#f8bbd9;color:#880e4f;font-weight:700}.admin-calendar-day{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}.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:.4rem;margin-bottom:.5rem}.room-option{padding:.4rem .75rem;border:2px solid #e0e0e0;border-radius:4px;background:#fff;cursor:pointer;font-size:.85rem;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:.5rem}.block-type-selector label{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem;font-size:.9rem;cursor:pointer}.block-type-selector input[type=radio]{width:18px;height:18px;accent-color:#c2185b}.block-reason-input{margin-bottom:.5rem}.block-reason-input input{width:100%;padding:.5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:.9rem}.block-submit-btn{width:100%;padding:.6rem;background:#c2185b;color:#fff;border:none;border-radius:4px;font-size:.95rem;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:.75rem;box-shadow:0 2px 8px #00000014}.block-list{display:flex;flex-direction:column;gap:.4rem}.block-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;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:.15rem}.block-date{font-weight:600;color:#333;font-size:.9rem}.block-details{font-size:.8rem;color:#666}.block-reason{font-size:.8rem;color:#999;font-style:italic}.remove-block-btn{padding:.3rem .6rem;background:#ef5350;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.75rem;transition:all .2s}.remove-block-btn:hover{background:#e53935}.no-blocks{text-align:center;color:#888;padding:1rem;font-size:.85rem}.back-to-user-view{text-align:center;margin-top:.75rem}.back-btn{padding:.4rem 1rem;background:#fff;color:#c2185b;border:1px solid #c2185b;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s}.back-btn:hover{background:#fce4ec}.admin-dashboard{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.5rem}.admin-panel-container{min-height:100vh}.dashboard-content{max-width:1000px;margin:0 auto;padding:.5rem 0}.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}@media(max-width:768px){.menu-grid{grid-template-columns:1fr}}.menu-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;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.5rem;flex-shrink:0}.menu-info{flex:1}.menu-title{font-size:.95rem;color:#333;margin-bottom:.15rem}.menu-description{font-size:.75rem;color:#666;margin:0}.admin-placeholder{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.5rem;text-align:center}.admin-placeholder h2{color:#c2185b;margin-bottom:.5rem;font-size:1.1rem}.admin-placeholder p{color:#666;margin-bottom:1rem;font-size:.85rem}.reservation-fullscreen{display:flex;flex-direction:column;min-height:100vh;overflow-y:auto}.reservation-header-row{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #dee2e6;gap:1rem}.header-left,.header-right{flex:0 0 auto}.header-center{flex:1;text-align:center}.header-subtitle{font-size:.9rem;color:#666;font-weight:500}.admin-title-compact{font-size:1.2rem;color:#c2185b;margin:0;font-weight:700;white-space:nowrap}.reservation-nav-compact{display:flex;align-items:center;justify-content:center;gap:.5rem;flex:1;max-width:300px}.back-btn-compact{padding:.4rem 1rem;background:#fff;color:#c2185b;border:1px solid #c2185b;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s;white-space:nowrap}.back-btn-compact:hover{background:#fce4ec}.reservation-header-section{flex-shrink:0;padding:.5rem}.reservation-nav{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem}.nav-button{background:#f8bbd9;border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;color:#c2185b;font-size:.9rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.nav-button:hover{background:#f48fb1;color:#fff}.nav-month{font-size:1rem;font-weight:600;color:#333}.time-slot-filter{display:flex;align-items:center;justify-content:center;gap:.25rem;margin-bottom:.5rem}.time-slot-filter label{font-weight:600;color:#333;font-size:.8rem}.time-slot-filter select{padding:.25rem .5rem;border:1px solid #f8bbd9;border-radius:4px;font-size:.8rem;background:#fff}.reservation-stats{display:flex;justify-content:center;gap:.75rem;margin-bottom:.5rem}.stat-item{display:flex;align-items:center;gap:.25rem;padding:.4rem .75rem;background:#fff;border-radius:4px;box-shadow:0 1px 4px #0000001a;color:#666;font-size:.8rem}.stat-item strong{color:#c2185b;font-size:1rem}.reservation-table-container{flex:1;display:flex;flex-direction:column;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;overflow-y:auto;margin:0 .5rem}.reservation-table-wrapper{flex:1;overflow-x:auto;overflow-y:auto}.reservation-table-wrapper::-webkit-scrollbar{width:10px;height:10px}.reservation-table-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:5px}.reservation-table-wrapper::-webkit-scrollbar-thumb{background:#c2185b;border-radius:5px}.reservation-table-wrapper::-webkit-scrollbar-thumb:hover{background:#ad1457}.reservation-table{width:100%;border-collapse:collapse;font-size:.85rem}.reservation-table th,.reservation-table td{border:1px solid #bdbdbd;padding:.4rem;text-align:center;min-width:55px}.reservation-table th{background:#f8bbd9;color:#880e4f;font-weight:700;position:sticky;top:0;z-index:10;font-size:.85rem}.reservation-table th.room-header{position:sticky;left:0;z-index:20;background:#f8bbd9;min-width:140px}.reservation-table th.time-slot-header{background:#fce4ec;font-size:.8rem;padding:.3rem;min-width:50px;color:#880e4f}.reservation-table td.room-name-cell{position:sticky;left:0;z-index:10;background:#fce4ec;text-align:left}.date-cell{display:flex;flex-direction:column;align-items:center;gap:.2rem}.date-day{font-size:1rem;font-weight:700}.date-weekday{font-size:.75rem}.room-info{display:flex;flex-direction:column;gap:.2rem}.room-id{font-size:.8rem;color:#880e4f;font-weight:700}.room-name{font-size:.85rem;color:#212121;font-weight:600}.reservation-cell{min-height:40px;vertical-align:top;padding:.2rem}.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:2px}.reservation-tag{display:flex;align-items:center;gap:.25rem;padding:.15rem .3rem;border-radius:3px;font-size:.75rem;cursor:pointer;border:1px solid transparent;white-space:nowrap}.reservation-tag.rank-1{background:#ffcdd2;border:1px solid #ef9a9a}.reservation-tag.rank-2{background:#fff9c4;border:1px solid #fff59d}.reservation-tag.rank-3{background:#c8e6c9;border:1px solid #a5d6a7}.user-id{font-weight:600;color:#333;font-size:.75rem}.time-slot-badge{font-size:.7rem;color:#666}.rank-badge{font-size:.65rem;color:#555;font-weight:700;padding:0 .2rem;background:#0000001a;border-radius:2px}.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:.5rem 1rem;background:#fff;border-top:1px solid #e0e0e0;gap:1rem}.reservation-footer .reservation-legend{margin:0;padding:.5rem;flex:1;justify-content:flex-start}.reservation-footer .back-to-user-view{margin:0;text-align:right}.reservation-tag.has-more{position:relative;cursor:pointer}.more-indicator{position:absolute;top:-4px;right:-4px;background:#c2185b;color:#fff;font-size:.65rem;font-weight:700;width:14px;height:14px;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:1rem}.reservation-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:500px;width:100%;max-height:85vh;overflow-y:auto}.reservation-modal.compact{max-width:450px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f5f5f5;border-bottom:1px solid #ddd}.modal-header h3{margin:0;color:#333;font-size:1rem;font-weight:600}.modal-header h3 small{color:#666;font-size:.8rem;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:1rem;max-height:65vh;overflow-y:auto}.modal-content.compact{padding:.75rem;max-height:70vh}.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:800px;width:95%}.modal-content.table-view{padding:.5rem;max-height:75vh}.reservation-table-container-modal{overflow-x:auto}.reservation-table-modal{width:100%;border-collapse:collapse;font-size:.85rem}.reservation-table-modal thead{background:#f5f5f5}.reservation-table-modal th{padding:.5rem;text-align:left;font-weight:600;font-size:.8rem;border-bottom:2px solid #ddd}.reservation-table-modal td{padding:.5rem;border-bottom:1px solid #eee;vertical-align:middle}.reservation-table-modal tbody tr:hover{background:#fafafa}.reservation-table-modal tbody tr.status-approved{background:#e8f5e9}.reservation-table-modal tbody tr.status-rejected{background:#ffebee}.reservation-table-modal tbody tr.status-pending{background:#fffde7}.col-date{width:95px}.col-time{width:45px;text-align:center}.col-rooms{min-width:180px}.col-status{width:70px}.col-actions{min-width:150px}.reservation-table-modal .room-chips{display:flex;flex-direction:column;gap:.15rem}.reservation-table-modal .room-chip{padding:.15rem .4rem;font-size:.75rem;border-radius:3px;display:inline-block}.reservation-table-modal .room-chip.rank-1{background:#ffcdd2;color:#c62828}.reservation-table-modal .room-chip.rank-2{background:#fff9c4;color:#f57f17}.reservation-table-modal .room-chip.rank-3{background:#c8e6c9;color:#2e7d32}.status-icon{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:3px;font-size:.75rem;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:.75rem;color:#2e7d32;margin-top:.25rem;font-weight:600}.action-btn-group{display:flex;gap:.3rem}.action-btn{padding:.3rem .5rem;border:none;border-radius:3px;font-size:.75rem;font-weight:600;cursor:pointer}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn.approve{background:#4caf50;color:#fff}.action-btn.approve.rank-1{background:#e53935}.action-btn.approve.rank-2{background:#fb8c00}.action-btn.approve.rank-3{background:#43a047}.action-btn.pending{background:#ffb300;color:#fff}background: #43a047; } .action-btn.approve.rank-3:hover:not(:disabled){background:#2e7d32}.action-btn.reject{background:#757575;color:#fff}.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-list.all-ranks .reservation-tag.rank-2{background:#fff3e0;border-color:#ffcc80}.reservation-list.all-ranks .reservation-tag.rank-3{background:#e8f5e9;border-color:#a5d6a7}.reservation-tag .rank-badge{font-size:.65rem;font-weight:700;margin-right:.15rem;padding:0 .2rem;border-radius:2px;background:#00000026;color:#333}.reservation-tag.rank-1 .rank-badge{background:#e53935;color:#fff}.reservation-tag.rank-2 .rank-badge{background:#fb8c00;color:#fff}.reservation-tag.rank-3 .rank-badge{background:#43a047;color:#fff}.reservation-tag.has-conflict{border:2px solid #f44336}.reservation-tag.has-conflict .conflict-icon{color:#f44336;font-size:.65rem}.view-mode-toggle{display:flex;gap:4px;margin-right:12px}.view-mode-btn{padding:8px 12px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s;font-size:14px}.view-mode-btn:hover{background:#f5f5f5}.view-mode-btn.active{background:#3498db;color:#fff;border-color:#3498db}.list-view-container{overflow-x:auto;max-height:calc(100vh - 180px)}.list-view-table{width:100%;border-collapse:collapse;font-size:13px}.list-view-table th{background:#34495e;color:#fff;padding:10px 8px;text-align:left;font-weight:600;position:sticky;top:0;z-index:10}.list-view-table td{padding:8px;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}.test-mode-container{max-width:600px;margin:0 auto;padding:1rem}.test-mode-toggle{display:flex;align-items:center;justify-content:space-between;background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 8px #00000014;margin-bottom:1rem}.test-mode-toggle .toggle-label{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:#333}.test-mode-toggle .toggle-label svg{color:#e67e22}.toggle-button{padding:.5rem 1.5rem;border:none;border-radius:20px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;background:#e0e0e0;color:#666}.toggle-button.active{background:#4caf50;color:#fff}.toggle-button:not(.active):hover{background:#bdbdbd}.test-mode-month-selector{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #00000014;margin-bottom:1rem}.test-mode-month-selector h3{margin:0 0 1rem;font-size:1rem;color:#333}.month-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.month-selector select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;background:#fff}.month-selector span{color:#666;font-size:.9rem}.save-button{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background:#e67e22;color:#fff;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.save-button:hover{background:#d35400}.current-setting{margin-top:1rem;padding:.5rem;background:#f8f9fa;border-radius:4px;font-size:.85rem;color:#666;text-align:center}.test-mode-info{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 8px #00000014}.test-mode-info h4{margin:0 0 .5rem;font-size:.95rem;color:#333}.test-mode-info ul{margin:0;padding-left:1.2rem;font-size:.85rem;color:#666;line-height:1.6}.test-mode-info li{margin-bottom:.3rem}.block-settings-container{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.75rem}.block-settings-content{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:1400px;margin:0 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}.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}.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-y: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)}@media(max-width:1000px){.block-settings-content.compact{grid-template-columns:1fr;height:auto;max-height:calc(100vh - 70px);overflow-y:auto}}.block-section.compact{height:100%;display:flex;flex-direction:column;overflow-y: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;flex:1;min-height:0;overflow-y:auto}@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:visible}.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;min-width: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:minmax(140px,1.5fr) 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:.4rem .2rem;text-align:center;font-size:.65rem;font-weight:600;color:#555;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem}.matrix-grid.transposed .matrix-col-header:last-child{border-right:none}.matrix-grid.transposed .matrix-col-header.time-slot-header span{font-size:.75rem}.matrix-grid.transposed .matrix-col-header.time-slot-header small{font-size:.6rem;color:#666}.matrix-grid.transposed .matrix-row{display:grid;grid-template-columns:minmax(140px,1.5fr) repeat(3,1fr);border-bottom:1px solid #e0e0e0;min-height:45px}.matrix-grid.transposed .matrix-row:last-child{border-bottom:none}.matrix-grid.transposed .matrix-row-header{padding:.4rem .5rem;background:#f8f9fa;border-right:1px solid #e0e0e0;display:flex;align-items:center;font-size:.7rem;font-weight:600;color:#333;overflow:hidden}.matrix-grid.transposed .matrix-row-header.room-header{justify-content:flex-start}.room-full-name{font-size:.7rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.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:.9rem;color:#c2185b;min-height:45px}.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:768px){.block-settings-container{padding:.5rem}.block-section{padding:.75rem}.block-section-title{font-size:1rem}.block-type-grid,.time-slot-grid,.room-grid{grid-template-columns:1fr}.block-item{flex-direction:column;gap:.75rem}.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)}}.message-manager-container{min-height:100vh;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.75rem}.message-manager-content{max-width:1400px;margin:0 auto;padding:1rem}.message-manager-layout{display:grid;grid-template-columns:320px 1fr 320px;gap:1.5rem;height:calc(100vh - 180px)}@media(max-width:1200px){.message-manager-layout{grid-template-columns:1fr;height:auto}}.groups-panel,.compose-panel,.history-panel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;overflow-y:auto}.panel-header{padding:1rem;background:linear-gradient(135deg,#fce4ec,#f8bbd9);border-bottom:2px solid #f8bbd9;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.panel-header h3{margin:0;font-size:1rem;color:#880e4f;display:flex;align-items:center;gap:.5rem}.panel-header h3 svg{color:#c2185b}.groups-panel{max-height:100%}.panel-header-simple{padding:.75rem;border-bottom:1px solid #f0f0f0}.search-input-simple{width:100%;padding:.4rem .6rem;border:1px solid #e0e0e0;border-radius:4px;font-size:.85rem;outline:none}.search-input-simple:focus{border-color:#f8bbd9}.selection-actions-simple{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid #f0f0f0;font-size:.8rem}.link-btn{background:none;border:none;color:#2196f3;cursor:pointer;padding:.2rem .3rem;font-size:.8rem;text-decoration:underline}.link-btn:hover{color:#1976d2}.selection-count-simple{margin-left:auto;color:#666;font-weight:500}.groups-list{flex:1;overflow-y:auto;padding:.5rem}.simple-group-list{list-style:none;padding:0;margin:0}.simple-group-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-bottom:1px solid #f0f0f0;transition:background .15s}.simple-group-item:hover{background:#fafafa}.simple-group-item.selected{background:#fff3e0}.group-label{display:flex;align-items:center;gap:.6rem;flex:1;cursor:pointer}.group-checkbox-input{width:16px;height:16px;cursor:pointer;margin:0}.group-name-text{font-weight:500;color:#333;font-size:.9rem}.status-badge{font-size:.7rem;padding:.15rem .4rem;border-radius:3px;font-weight:600;white-space:nowrap}.status-badge.no-reservation{background:#f5f5f5;color:#888}.status-badge.pending{background:#fff3e0;color:#e65100}.status-badge.approved{background:#e8f5e9;color:#2e7d32}.history-icon-btn{background:none;border:none;color:#aaa;cursor:pointer;padding:.3rem;border-radius:4px;font-size:.85rem;transition:all .15s}.history-icon-btn:hover{background:#f0f0f0;color:#666}.compose-panel{padding:1rem}.send-mode-selector{display:flex;gap:.3rem}.send-mode-selector .mode-btn{padding:.4rem .8rem;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;gap:.3rem;transition:all .2s}.send-mode-selector .mode-btn:hover{border-color:#f8bbd9;background:#fff5f8}.send-mode-selector .mode-btn.active{background:linear-gradient(135deg,#f8bbd9,#f48fb1);border-color:#c2185b;color:#880e4f}.single-recipient-display,.bulk-recipients-display{margin-bottom:1rem;padding:.75rem;background:#f8f9fa;border-radius:8px}.single-recipient-display label,.bulk-recipients-display label{display:block;font-size:.8rem;font-weight:600;color:#666;margin-bottom:.4rem}.recipient-input{width:100%;padding:.6rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.95rem}.selected-users-tags{display:flex;flex-wrap:wrap;gap:.4rem}.user-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;background:#e3f2fd;border:1px solid #2196f3;border-radius:4px;font-size:.8rem;color:#1976d2}.user-tag button{background:none;border:none;color:#1976d2;cursor:pointer;padding:0;font-size:.7rem}.more-tag{padding:.3rem .6rem;background:#f5f5f5;border-radius:4px;font-size:.8rem;color:#666}.compose-panel .form-group{margin-bottom:1rem}.compose-panel .form-group label{display:block;font-size:.85rem;font-weight:600;color:#555;margin-bottom:.4rem}.compose-panel .form-group input,.compose-panel .form-group textarea{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:.95rem;transition:all .2s}.compose-panel .form-group input:focus,.compose-panel .form-group textarea:focus{outline:none;border-color:#f8bbd9;box-shadow:0 0 0 3px #f8bbd933}.required{color:#e53935}.subject-input{font-weight:600}.content-textarea{resize:vertical;min-height:200px;line-height:1.6}.send-btn{width:100%;padding:1rem;background:linear-gradient(135deg,#c2185b,#ad1457);color:#fff;border:none;border-radius:8px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem}.send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #c218594d}.send-btn:disabled{opacity:.7;cursor:not-allowed}.history-panel{max-height:100%}.history-list-simple{flex:1;overflow-y:auto}.empty-state{padding:2rem;text-align:center;color:#999;font-size:.85rem}.simple-history-list{list-style:none;padding:0;margin:0}.simple-history-item{padding:.6rem .75rem;border-bottom:1px solid #f0f0f0}.history-title{font-size:.85rem;color:#333;font-weight:500;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-meta{font-size:.7rem;color:#888}.loading,.no-users{padding:2rem;text-align:center;color:#888}.loading svg{margin-right:.5rem}.result-message{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;border-radius:8px;margin-bottom:1rem;font-weight:600}.result-message.success{background:#e8f5e9;color:#2e7d32;border:1px solid #4caf50}.result-message.error{background:#ffebee;color:#c62828;border:1px solid #f44336}.user-manager-container{padding:1rem}.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}.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}.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}.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:768px){.control-panel{flex-direction:column;align-items:stretch}.user-table{font-size:.8rem}.user-table th,.user-table td{padding:.4rem}.stats-col,.action-col{display:none}}.proxy-application-manager,.proxy-form-container{max-width:1200px;margin:0 auto;padding:24px}.proxy-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.proxy-header h1{font-size:28px;font-weight:700;color:#2c3e50;margin:0;display:flex;align-items:center;gap:12px}.proxy-header h1 svg{color:#16a085}.header-description{color:#7f8c8d;margin:8px 0 0;font-size:14px}.proxy-controls{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.month-display{display:flex;flex-direction:column;gap:4px}.month-display label{font-weight:600;color:#34495e;font-size:14px}.month-value{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#f0f9f4;border:2px solid #16a085;border-radius:8px;font-size:16px;font-weight:600;color:#16a085}.test-mode-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#e67e22;color:#fff;border-radius:12px;font-size:12px;font-weight:600}.proxy-controls .search-box{flex:1;min-width:250px;display:flex;align-items:center;gap:10px;padding:10px 16px;background:#f8f9fa;border:2px solid #bdc3c7;border-radius:8px}.proxy-controls .search-box svg{color:#95a5a6}.proxy-controls .search-box input{flex:1;border:none;background:transparent;font-size:15px;outline:none}.proxy-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow-y:auto;margin-bottom:24px}.user-list{overflow-x:auto}.user-table{width:100%;border-collapse:collapse}.user-table th{background:#f8f9fa;padding:14px 16px;text-align:left;font-weight:600;color:#34495e;border-bottom:2px solid #e9ecef}.user-table td{padding:14px 16px;border-bottom:1px solid #e9ecef;vertical-align:middle}.user-table tbody tr:hover{background:#f8f9fa}.name-cell{font-weight:600;color:#2c3e50}.email-cell{color:#7f8c8d;font-size:14px}.action-cell{text-align:right}.btn-apply{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#16a085;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.btn-apply:hover{background:#1abc9c}.btn-back{padding:10px 20px;background:#ecf0f1;border:none;border-radius:8px;font-size:14px;font-weight:600;color:#34495e;cursor:pointer;transition:background .2s}.btn-back:hover{background:#dfe6e9}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:#7f8c8d}.loading-spinner{width:40px;height:40px;border:3px solid #e9ecef;border-top-color:#16a085;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.no-users{text-align:center;padding:48px;color:#7f8c8d}.proxy-info{background:#f8f9fa;border-radius:12px;padding:20px 24px}.proxy-info h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#34495e}.proxy-info ol{margin:0;padding-left:20px}.proxy-info li{margin-bottom:8px;color:#495057;line-height:1.6}.proxy-info ul{margin:8px 0 0;padding-left:20px}.proxy-info ul li{color:#7f8c8d;font-size:14px}.proxy-form{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.form-section{margin-bottom:24px}.form-label{display:block;font-weight:600;color:#34495e;margin-bottom:8px}.form-input{width:100%;max-width:400px;padding:12px 16px;border:2px solid #bdc3c7;border-radius:8px;font-size:15px;transition:border-color .2s}.form-input:focus{outline:none;border-color:#16a085}.days-section{margin-bottom:24px}.days-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.days-header h3{margin:0;font-size:18px;color:#2c3e50}.btn-add-day{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:#3498db;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.btn-add-day:hover:not(:disabled){background:#2980b9}.btn-add-day:disabled{opacity:.5;cursor:not-allowed}.no-days-message{text-align:center;padding:40px;color:#7f8c8d;background:#f8f9fa;border-radius:8px}.days-list{display:flex;flex-direction:column;gap:16px}.day-card{border:2px solid #e9ecef;border-radius:12px;padding:20px;background:#fff}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.day-date{display:flex;align-items:center;gap:8px}.date-input{padding:8px 12px;border:2px solid #bdc3c7;border-radius:8px;font-size:15px;font-family:inherit;cursor:pointer;transition:border-color .2s}.date-input:focus{outline:none;border-color:#16a085}.holiday-badge{padding:2px 8px;background:#e74c3c;color:#fff;border-radius:4px;font-size:12px;font-weight:500}.btn-remove-day{padding:8px 12px;background:#e74c3c;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.btn-remove-day:hover{background:#c0392b}.day-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.field-group{display:flex;flex-direction:column;gap:6px}.field-group label{font-size:13px;font-weight:600;color:#7f8c8d}.field-group select{padding:10px 12px;border:2px solid #bdc3c7;border-radius:8px;font-size:14px;background:#fff;cursor:pointer;transition:border-color .2s}.field-group select:focus{outline:none;border-color:#16a085}.field-group select:disabled{background:#f8f9fa;cursor:not-allowed}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:24px;border-top:2px solid #e9ecef}.btn-cancel{padding:12px 24px;background:#ecf0f1;color:#34495e;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.btn-cancel:hover{background:#dfe6e9}.btn-submit{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:#16a085;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.btn-submit:hover:not(:disabled){background:#1abc9c}.btn-submit:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.proxy-application-manager,.proxy-form-container{padding:16px}.proxy-header{flex-direction:column;gap:16px}.proxy-header h1{font-size:22px}.proxy-controls{flex-direction:column}.user-table th,.user-table td{padding:10px 12px;font-size:14px}.day-fields{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn-cancel,.btn-submit{width:100%;justify-content:center}}.app{height:calc(var(--vh) * 100);min-height:calc(var(--vh) * 100);display:flex;flex-direction:column;overflow:hidden}.app-header{background:linear-gradient(135deg,#fbcfe8,#f472b6);color:#4a1d2f;padding:8px 16px;text-align:center;border-bottom:2px solid white;flex-shrink:0}.app-header-title{display:flex;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:#6b3d52}.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:#4a1d2f;gap:16px}.status-group{display:flex;flex-direction:column;gap:4px}.status-label{font-size:.85rem;font-weight:700;color:#6b3d52}.status-value{font-size:1.1rem;font-weight:800;color:#4a1d2f}.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:16px 24px;margin:0 auto;width:100%;overflow:scroll;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;flex-shrink:0}.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;flex:1;min-height:0;gap:16px}.calendar-main{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.calendar-sidebar{display:none}.calendar-mobile-info{display:block;margin-top:16px;flex-shrink:0}.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:#fff0f5;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}@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 #ec48994d}.footer-button.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #ec489966}.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){html,body,#root,.app{height:auto;overflow:visible}.app-header{padding:12px 16px;flex-shrink:0}.app-main{overflow:visible;flex:0 0 auto}.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}.app-main{padding:5px}.reservation-summary{padding:16px}.reservation-summary p{font-size:1rem}.confirm-button{padding:16px 24px;font-size:1.125rem}.app-footer{position:sticky;bottom:0;z-index:100;background:var(--surface);box-shadow:0 -4px 12px #00000026;padding:5px}.footer-actions{margin-bottom:0}}
