html,body,#root,.app{overflow:visible!important}.login-page{overflow:visible!important;display:flex;flex-direction:column;align-items:center;justify-content:start;padding:0}.login-image{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100dvh;width:75%}.login-container{height:auto;width:100%;margin:5rem 0 0;padding:0;display:flex;flex-direction:column;align-items:center}.login-hero{margin:20rem 5rem;display:flex;flex-direction:column;align-items:center;height:300px;width:75%;border-radius:16px}.login-hero h1{font-size:5rem;margin:auto;text-align:center;font-family:"Instrument Serif",serif;width:75%}.login-hero h2{font-size:1.5rem;margin:3rem auto .5rem;text-align:center}.buttons-group{margin:0;height:300px;padding:2rem;display:flex;flex-direction:row;align-items:center;justify-content:space-around;overflow:hidden}.buttons-group button{margin:.5rem;font-size:1.25rem}#waitlist{background-color:var(--bg-hover);border:none}#waitlist:hover,.signin-button:hover{background-color:#1e293b80;border:none;color:#f8fafc}.login-callout{margin:1rem;padding:2rem;height:300px;width:50%;background-color:#59563040;border-radius:12px;display:flex;flex-direction:column;align-items:start;justify-content:space-between;overflow:hidden}.login-footer{background-color:#1e293b;margin:0;padding:1rem 10rem;color:var(--text-muted);height:200px;width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.login-page span{color:#595630}#login-card{background-color:#ffffff40;margin-top:2rem;position:fixed;border-radius:16px;padding:1rem 2rem;text-align:center;box-shadow:0 20px 60px var(--shadow);height:80px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);display:flex;flex-direction:row;justify-content:space-between;align-items:center}.shrink{width:500px;transition:all 1s ease}.grow{width:800px;transition:all 1s ease}.login-subtitle{color:#1e293b;font-size:1.25rem;margin:0;display:flex;font-weight:200}.login-divider{height:1px;background:var(--border);margin:1.5rem 0}.login-prompt{color:var(--text-primary);font-size:.9rem;margin-bottom:1.5rem}.login-error{color:var(--danger);font-size:.8rem;background:var(--danger-bg);padding:.5rem .75rem;border-radius:6px;margin-bottom:1rem}.login-btn-wrapper{display:flex;flex-direction:column;justify-content:center}.signin-button{background-color:#1e293b;color:#f8fafc;font-size:1.25rem;border:none}.footer-logo{height:60px;width:auto}@media (max-width: 600px){html,body,#root{overflow:hidden!important;height:100dvh!important}.app{overflow:hidden}.login-page{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden!important;padding:0}#login-card{position:relative;margin:.5rem .5rem 0;height:45px;padding:.75rem;box-shadow:0 10px 20px var(--shadow);border-radius:8px;width:95%}#login-card .signin-button{font-size:1rem;padding:.15rem .5rem;border-radius:6px}.login-subtitle{font-size:.9rem}.login-image{height:35dvh!important;width:80%;margin:0}.login-container{margin:0;padding:0;width:100%}.login-hero{margin:0 auto;height:auto;width:90%}.login-hero h1{font-size:1.6rem;width:100%;margin:.25rem 0}.buttons-group{flex-direction:column;align-items:normal;height:auto;padding:.5rem 0}.buttons-group button{margin:.25rem;font-size:1rem}.shrink,.grow{width:95%;transition:all 1s ease}.login-footer{height:70px;padding:.5rem 1rem;flex-shrink:0;justify-content:flex-start;margin-top:auto}.login-footer svg,.login-footer image{height:30px}.login-footer-section:first-child{margin-right:auto}.login-footer-section p{font-size:.75rem!important}.footer-logo{height:30px;width:auto}}.pending-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.pending-card{background:var(--card-bg);border-radius:16px;padding:2.5rem;text-align:center;max-width:400px;width:100%;box-shadow:0 4px 24px var(--shadow)}.pending-icon{font-size:3rem;margin-bottom:1rem}.pending-card h2{margin:0 0 .75rem;font-size:1.5rem}.pending-card p{color:var(--text-secondary);line-height:1.5;margin:0 0 .5rem}.pending-sub{font-size:.85rem;color:var(--text-muted)}.btn-signout{margin-top:1.25rem;font-size:.8rem!important;padding:.4rem 1rem!important;background:var(--bg-button)!important;color:var(--text-button)!important;border-radius:6px}.admin-panel{min-height:100vh;padding:1.5rem;max-width:1000px;margin:0 auto}.admin-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.admin-header h1{margin:0;font-size:1.5rem}.btn-refresh{background:var(--bg-hover)!important;color:var(--text-primary)!important;font-size:1.1rem!important;padding:.3rem .6rem!important;border-radius:6px;margin-left:auto}.btn-refresh:disabled{opacity:.4}.btn-back{background:var(--bg-hover)!important;color:var(--text-primary)!important;font-size:.875rem!important;padding:.4rem .8rem!important;border-radius:6px}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.admin-toolbar h2{margin:0;font-size:1.1rem}.status-filter{padding:.35rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);font-size:.8rem}.admin-loading{text-align:center;color:var(--text-muted);padding:2rem}.user-table-wrapper{overflow-x:auto;border-radius:10px;border:1px solid var(--border)}.user-table{width:100%;border-collapse:collapse;font-size:.8rem}.user-table th{text-align:left;padding:.6rem .75rem;background:var(--bg-hover);color:var(--text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.user-table td{padding:.6rem .75rem;border-top:1px solid var(--border);vertical-align:middle}.user-table tbody tr:hover{background:var(--bg-hover)}.user-cell{display:flex;flex-direction:column;gap:.1rem}.user-name{font-weight:500}.user-email{font-size:.7rem;color:var(--text-muted)}.date-cell{white-space:nowrap;color:var(--text-secondary)}.actions-cell{display:flex;gap:.3rem;align-items:center}.admin-status-chip{padding:.15rem .4rem;border-radius:4px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.admin-status-chip.status-pending{background:#fef3c7;color:#92400e}.admin-status-chip.status-approved{background:var(--success-bg);color:var(--success)}.admin-status-chip.status-rejected{background:var(--danger-bg);color:var(--danger)}.admin-status-chip.status-deactivated{background:var(--bg-hover);color:var(--text-muted)}.btn-approve{background:var(--success-bg)!important;color:var(--success)!important}.btn-reject{background:#fef3c7!important;color:#92400e!important}.btn-deactivate{background:var(--danger-bg)!important;color:var(--danger)!important}.admin-badge{font-size:.6rem;background:#1e40af;color:#93c5fd;padding:.15rem .4rem;border-radius:4px;font-weight:600;text-transform:uppercase}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1rem;font-size:.8rem}.pagination button{font-size:.8rem!important;padding:.3rem .6rem!important}.pagination button:disabled{opacity:.4;cursor:not-allowed}.bot-status{background:var(--card-bg);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.bot-status.loading{opacity:.5}.status-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.status-indicator{width:12px;height:12px;border-radius:50%}.status-indicator.running{background:#4ade80;box-shadow:0 0 8px #4ade8066}.status-indicator.stopped{background:var(--text-muted)}.status-label{font-weight:600;flex:1}.btn-start{background:#059669!important;color:#fff!important}.btn-stop{background:#dc2626!important;color:#fff!important}.status-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:1.25rem;font-weight:700}.stat-label{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.email-toggle{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--text-secondary);cursor:pointer}.email-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-secondary);border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:0 20px 60px var(--shadow)}@media (max-width: 600px){.modal-backdrop{align-items:flex-start;padding:env(safe-area-inset-top,.5rem) .5rem .5rem}.modal-content{max-height:calc(100dvh - env(safe-area-inset-top,1rem) - 1rem);border-radius:10px}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:1.1rem}.modal-close{background:none!important;border:none!important;color:var(--text-secondary)!important;font-size:1.5rem!important;padding:0!important;cursor:pointer;line-height:1}.modal-close:hover{color:var(--text-primary)!important}.modal-body{padding:1.25rem}.config-list{margin-bottom:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h2{margin:0;font-size:1.25rem}.btn-add{background:#3b82f6!important;color:#fff!important;font-size:.875rem!important;padding:.4rem .8rem!important}.config-card{background:var(--card-bg);border-radius:10px;padding:1rem;margin-bottom:.75rem;border-left:3px solid var(--success)}.config-card.inactive{border-left-color:var(--text-muted);opacity:.6}.config-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.config-courses{display:flex;flex-wrap:wrap;gap:.4rem}.course-tag{background:var(--bg-hover);padding:.2rem .5rem;border-radius:4px;font-size:.75rem}.status-chip{padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.status-chip.status-active{background:var(--success-bg);color:var(--success)}.status-chip.status-completed{background:#1e40af;color:#93c5fd}.status-chip.status-failed{background:var(--danger-bg);color:var(--danger)}.config-actions{display:flex;gap:.4rem}.btn-sm{font-size:.75rem!important;padding:.25rem .5rem!important}.btn-danger{background:var(--danger-bg)!important;color:var(--danger)!important}.config-details{display:flex;gap:1rem;font-size:.8rem;color:var(--text-secondary)}.config-last-scan{font-size:.7rem;color:var(--text-muted);margin-top:.4rem}.config-error{display:flex;align-items:center;gap:.5rem;margin-top:.4rem;font-size:.75rem}.error-chip{background:var(--danger-bg);color:var(--danger);padding:.15rem .4rem;border-radius:4px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.error-message{color:var(--danger);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty{color:var(--text-muted);text-align:center;padding:2rem}.config-form{margin:0}.form-group{margin-bottom:.75rem}.form-group label{display:block;font-size:.8rem;color:var(--text-secondary);margin-bottom:.3rem}.form-group input,.form-group select{width:100%;padding:.5rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);font-size:.875rem;box-sizing:border-box;transition:border-color .2s,box-shadow .2s;-moz-appearance:none;appearance:none;-webkit-appearance:none}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:2rem}.form-row{display:grid;grid-template-columns:3fr 3fr 1.2fr 1.2fr 2fr;gap:1rem;margin-bottom:.75rem}.form-row .form-group{min-width:0}.course-picker{display:flex;flex-wrap:wrap;gap:.4rem}.course-chip{font-size:.75rem!important;padding:.3rem .6rem!important;background:var(--bg-hover)!important;color:var(--text-secondary)!important;border-radius:16px!important}.course-chip.selected{background:#1d4ed8!important;color:#fff!important}.course-select{position:relative}.course-select-trigger{display:flex;align-items:center;justify-content:space-between;min-height:2.5rem;padding:.4rem .6rem;background:var(--bg-hover);border:1px solid var(--border);border-radius:8px;cursor:pointer;gap:.5rem}.course-select-placeholder{color:var(--text-muted);font-size:.85rem}.course-select-arrow{font-size:.65rem;color:var(--text-muted);flex-shrink:0}.course-select-tags{display:flex;flex-wrap:wrap;gap:.3rem;flex:1}.course-select-tag{display:inline-flex;align-items:center;gap:.3rem;background:#1d4ed8;color:#fff;font-size:.7rem;padding:.2rem .5rem;border-radius:12px}.course-select-tag .tag-remove{background:none!important;border:none!important;color:#ffffffb3!important;font-size:.85rem!important;padding:0!important;margin:0!important;cursor:pointer;line-height:1}.course-select-tag .tag-remove:hover{color:#fff!important}.course-select-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000001f;overflow:hidden}.course-select-search{width:100%;padding:.6rem .75rem;border:none;border-bottom:1px solid var(--border);background:var(--bg-hover);color:var(--text-primary);font-size:.85rem;outline:none}.course-select-options{max-height:240px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.course-select-group-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:.5rem .75rem .25rem;font-weight:600}.course-select-option{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.8rem;color:var(--text-primary);transition:background .1s}.course-select-option:hover{background:var(--bg-hover)}.course-select-option.selected{background:#1d4ed81a}.course-select-option.no-creds{opacity:.7}.course-select-check{width:1rem;text-align:center;color:#3b82f6;font-weight:700;font-size:.75rem}.course-select-name{flex:1}.course-select-empty{padding:1rem;text-align:center;color:var(--text-muted);font-size:.8rem}.btn-submit{flex:1;margin-top:.5rem;background:#059669!important;color:#fff!important}.btn-submit:disabled{opacity:.4;cursor:not-allowed}.form-actions{display:flex;gap:.75rem}.btn-cancel{flex:1;margin-top:.5rem;background:var(--bg-hover)!important;color:var(--text-secondary)!important}.form-error{background:var(--danger-bg);color:var(--danger);padding:.6rem 1rem;border-radius:6px;font-size:.85rem;margin-bottom:.75rem}.course-chip.no-creds{border:1px dashed #f59e0b!important}.cred-warning{font-size:.65rem}.cred-missing-hint{color:#f59e0b;font-size:.8rem;margin-top:.4rem}.mini-cal{background:var(--bg-tertiary);border-radius:8px;padding:.75rem;margin-top:.25rem}.mini-cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.mini-cal-title{font-size:.8rem;font-weight:600}.cal-nav-sm{background:var(--bg-hover)!important;color:var(--text-primary)!important;font-size:1rem!important;width:1.5rem!important;height:1.5rem!important;padding:0!important;border-radius:50%!important;display:flex;align-items:center;justify-content:center}.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.mini-cal-dow{text-align:center;font-size:.6rem;color:var(--text-muted);padding:.2rem 0;font-weight:600}.mini-cal-cell{text-align:center;padding:.3rem 0;font-size:.7rem;border-radius:4px;cursor:pointer;transition:background .1s}.mini-cal-cell:hover:not(.empty):not(.past){background:var(--bg-hover)}.mini-cal-cell:hover:not(.empty):not(.past).selected{background:#2563eb}.mini-cal-cell.empty{cursor:default}.mini-cal-cell.past{opacity:.3;cursor:default}.mini-cal-cell.today{border:1px solid #3b82f6}.mini-cal-cell.selected{background:#2563eb;color:#fff;font-weight:600}.selected-dates-list{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem}.date-chip{display:inline-flex;align-items:center;gap:.25rem;background:#dbeafe;padding:.2rem .5rem;border-radius:12px;font-size:.7rem;color:#1e40af}.date-chip-remove{background:none!important;border:none!important;color:#3b82f6!important;font-size:.85rem!important;padding:0!important;cursor:pointer;line-height:1}.date-chip-remove:hover{color:#dc2626!important}.form-toggle-row{margin-top:.5rem}.toggle-label{display:flex;align-items:center;gap:.75rem;font-size:.875rem;cursor:pointer;white-space:nowrap;line-height:1}.toggle-label input[type=checkbox]{width:1rem;height:1rem;margin:0 .25rem 0 0;cursor:pointer;vertical-align:middle}.tooltip-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;margin-left:.25rem;border-radius:50%;background:var(--color-border, #d1d5db);color:var(--color-text-secondary, #6b7280);font-size:.7rem;font-weight:600;cursor:help}.tooltip-trigger:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#1f2937;color:#fff;font-size:.75rem;font-weight:400;padding:.4rem .6rem;border-radius:4px;white-space:normal;width:max-content;max-width:220px;text-align:center;opacity:0;pointer-events:none;transition:opacity .15s;z-index:100}.tooltip-trigger:hover:after{opacity:1}.past-configs{margin-top:.75rem}.past-configs summary{cursor:pointer;color:var(--text-muted);font-size:.85rem;margin-bottom:.5rem}.past-configs .config-card{opacity:.7}.past-configs .btn-x{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:0 .25rem;line-height:1}.past-configs .btn-x:hover{color:var(--danger)}@media (max-width: 600px){.form-row{grid-template-columns:1fr 1fr;gap:.75rem}.form-row .form-group{min-width:0}.form-toggle-row{display:flex;flex-direction:column;gap:.75rem}}.booking-list h2{font-size:1.25rem;margin-bottom:1rem}.booking-card{background:var(--card-bg);border-radius:10px;padding:1rem;margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center}.booking-card.cancelled{opacity:.5}.booking-info{display:flex;gap:1rem;align-items:center}.booking-course{font-weight:600}.booking-time{color:var(--text-secondary);font-size:.875rem}.booking-players{color:var(--text-muted);font-size:.8rem}.booking-meta{display:flex;align-items:center;gap:.75rem}.booking-status{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;text-transform:uppercase;font-weight:600}.status-booked{background:var(--success-bg);color:var(--success)}.status-cancelled{background:var(--danger-bg);color:var(--danger)}.status-played{background:#1e3a5f;color:#93c5fd}.btn-sm.btn-outline{background:transparent;border:1px solid var(--text-muted);color:var(--text-secondary);font-size:.75rem;padding:.25rem .5rem;border-radius:4px;cursor:pointer}.btn-sm.btn-outline:hover{border-color:var(--text-secondary);color:var(--text-primary)}.booking-list .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.booking-list .section-header h2{margin-bottom:0}.btn-sync{background:transparent;border:1px solid var(--border);color:var(--text-secondary);font-size:.8rem;padding:.35rem .75rem;border-radius:6px;cursor:pointer;transition:all .15s}.btn-sync:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-sync:disabled{opacity:.5;cursor:wait}.past-bookings{margin-top:.75rem}.past-bookings summary{cursor:pointer;color:var(--text-muted);font-size:.85rem;margin-bottom:.5rem}.past-bookings .booking-card{opacity:.7}.request-list{margin-bottom:1.5rem}.request-list .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.request-list .section-header h2{margin-bottom:0}.request-list h2{margin-bottom:.25rem}.request-list-subtitle{color:var(--text-muted);font-size:.85rem;margin-bottom:1rem}.request-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-radius:8px;background:var(--card-bg);border:1px solid var(--border);margin-bottom:.5rem}.request-card.pending{border-left:3px solid var(--accent)}.request-info{display:flex;flex-direction:column;gap:.2rem}.request-course{font-weight:600;font-size:.95rem}.request-time{font-size:.9rem;color:var(--text-secondary)}.request-details{font-size:.8rem;color:var(--text-muted)}.request-reason{font-size:.75rem;color:var(--warning);font-style:italic}.request-actions{display:flex;gap:.5rem;flex-shrink:0}.btn-approve{background:var(--accent);color:#fff;border:none;font-weight:600}.btn-approve:hover:not(:disabled){opacity:.9}.btn-approve:disabled{opacity:.5;cursor:wait}.request-status{font-size:.8rem;padding:.2rem .5rem;border-radius:4px;font-weight:500}.request-status.status-booked{color:var(--success)}.request-status.status-dismissed{color:var(--text-muted)}.request-status.status-failed{color:var(--danger)}.past-requests{margin-top:.75rem}.past-requests summary{cursor:pointer;color:var(--text-muted);font-size:.85rem;margin-bottom:.5rem}.past-requests .request-card{opacity:.7}.past-actions{display:flex;justify-content:flex-end;margin-bottom:.5rem}.request-meta{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.btn-x{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:0 .25rem;line-height:1}.btn-x:hover{color:var(--danger)}.credentials{margin-bottom:1.5rem}.cred-form{background:var(--card-bg);border-radius:10px;padding:1.25rem;margin-bottom:1rem}.cred-form select{width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.25rem}.cred-card{background:var(--card-bg);border-radius:10px;padding:.75rem 1rem;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}.cred-info{display:flex;flex-direction:column;gap:.4rem}.cred-header{display:flex;align-items:center}.cred-courses{display:flex;flex-wrap:wrap;gap:.3rem}.cred-course-tag{background:var(--bg-hover);padding:.15rem .4rem;border-radius:4px;font-size:.7rem;color:var(--text-secondary)}.form-unlocks{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:.75rem}.unlocks-label{font-size:.7rem;color:var(--text-muted);margin-right:.2rem}.cred-tenant{font-weight:600;margin-right:1rem}.cred-email{color:var(--text-secondary);font-size:.875rem}.calendar{background:var(--card-bg);border-radius:12px;padding:1.5rem;box-sizing:border-box}.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.cal-title{font-weight:600;font-size:1.1rem}.cal-nav{background:var(--bg-hover)!important;color:var(--text-primary)!important;font-size:1.2rem!important;width:2rem!important;height:2rem!important;min-width:2rem!important;padding:0!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-dow{text-align:center;font-size:.8rem;color:var(--text-muted);padding:.4rem 0;font-weight:600}.cal-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;position:relative;transition:background .15s;padding:.6rem 0}.cal-cell:hover:not(.empty):not(.past){background:var(--bg-hover)}.cal-cell.empty{cursor:default}.cal-cell.past{opacity:.35;cursor:default}.cal-cell.today{border:1px solid var(--accent)}.cal-cell.selected{background:#1d4ed8;color:#fff}.cal-day{font-size:.9rem;font-weight:500;line-height:1}.cal-dots{display:flex;gap:2px;margin-top:3px}.cal-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.cal-dot.status-booked{background:var(--success)}.cal-dot.status-cancelled{background:var(--danger)}.cal-legend{display:flex;gap:1rem;margin-top:1rem;font-size:.8rem;color:var(--text-secondary);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:3px}.legend-selected{width:8px;height:8px;border-radius:2px;background:#1d4ed8;display:inline-block}.cal-bookings{margin-top:.75rem;border-top:1px solid var(--border);padding-top:.6rem;max-height:200px;overflow-y:auto}.cal-bookings-title{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.4rem}.cal-booking-day{margin-bottom:.4rem}.cal-booking-date{font-size:.8rem;font-weight:600;color:var(--text-secondary);display:block;margin-bottom:.25rem}.cal-booking-item{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;padding:.3rem .5rem;border-radius:4px;margin-bottom:3px;background:var(--bg-tertiary);gap:.5rem}.cal-booking-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-booking-item span:first-child{flex:1;min-width:0}.cal-booking-item.status-booked{border-left:2px solid var(--success)}.cal-booking-item.status-cancelled{border-left:2px solid var(--danger);opacity:.6}.badge-booked{color:var(--success);font-size:.6rem;text-transform:uppercase}.badge-cancelled{color:var(--danger);font-size:.6rem;text-transform:uppercase}.cal-cell.has-snipe{background:#3b82f614}.cal-dot.snipe{background:var(--accent)}.cal-tooltip{position:fixed;z-index:10000;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;min-width:180px;max-width:240px;box-shadow:0 4px 12px #0000001a;pointer-events:none}.cal-tooltip-title{font-size:.75rem;font-weight:600;color:var(--text-primary);margin-bottom:.4rem;border-bottom:1px solid var(--border);padding-bottom:.3rem}.cal-tooltip-item{display:flex;flex-direction:column;gap:.15rem;padding:.3rem 0;border-bottom:1px solid var(--border)}.cal-tooltip-item:last-child{border-bottom:none}.cal-tooltip-courses{font-size:.7rem;color:var(--text-primary);font-weight:500}.cal-tooltip-time{font-size:.65rem;color:var(--accent)}.cal-tooltip-meta{font-size:.6rem;color:var(--text-muted)}.cal-tooltip-status{font-size:.6rem;text-transform:uppercase;font-weight:600}.cal-tooltip-status.booked{color:var(--success)}.cal-tooltip-status.cancelled{color:var(--danger)}.cal-tooltip-snipe{border-left:2px solid var(--accent);padding-left:.4rem}.cal-tooltip-booking.status-booked{border-left:2px solid var(--success);padding-left:.4rem}.cal-tooltip-booking.status-cancelled{border-left:2px solid var(--danger);padding-left:.4rem;opacity:.7}.user-menu{position:relative}.user-menu-btn{background:var(--bg-hover)!important;border:2px solid var(--border)!important;border-radius:50%!important;width:2.5rem!important;height:2.5rem!important;padding:0!important;cursor:pointer;display:flex!important;align-items:center!important;justify-content:center!important}.user-avatar{font-size:1rem;font-weight:600;color:var(--text-primary)}.user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;min-width:200px;box-shadow:0 10px 30px var(--shadow);z-index:100;overflow:hidden}.user-info{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.15rem}.user-name{font-weight:600;font-size:.9rem;color:var(--text-primary)}.user-email{font-size:.75rem;color:var(--text-secondary)}.dropdown-divider{height:1px;background:var(--border)}.dropdown-item{display:block;width:100%;padding:.6rem 1rem;background:none!important;border:none!important;border-radius:0!important;color:var(--text-primary)!important;font-size:.85rem;text-align:left;cursor:pointer}.dropdown-item:hover{background:var(--bg-hover)!important}.dropdown-item.signout{color:var(--danger)!important}.account-modal{min-width:300px}.account-user{margin-bottom:1rem}.account-email{font-size:.85rem;color:var(--text-secondary)}.account-description{font-size:.8rem;color:var(--text-muted);margin:0 0 1rem}.account-fields{display:flex;flex-direction:column;gap:.75rem}.field-row{display:flex;gap:.75rem}.field-group{flex:1;display:flex;flex-direction:column;gap:.25rem}.field-group label{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.field-group input{padding:.5rem .65rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text-primary);font-size:.85rem}.field-group input::placeholder{color:var(--text-muted)}.btn-save-account{margin-top:1.25rem;width:100%;padding:.6rem!important;background:var(--accent)!important;color:#fff!important;font-size:.85rem!important;font-weight:600!important;border-radius:8px!important;border:none!important;cursor:pointer}.btn-save-account:disabled{opacity:.5;cursor:not-allowed}.app{width:100%;height:100vh;height:100dvh;padding:1.5rem;overflow:hidden;display:flex;flex-direction:column}.app-content{flex:1;overflow:hidden;position:relative}.header-group{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.pull-indicator{display:flex;align-items:center;justify-content:center;overflow:hidden;transition:height .25s cubic-bezier(.2,0,0,1)}.pull-spinner{width:20px;height:20px;border:2.5px solid rgba(150,150,150,.3);border-top-color:#969696cc;border-radius:50%;opacity:.5;transition:opacity .15s}.pull-spinner.active{opacity:1;border-top-color:var(--text-primary);animation:spin .6s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 600px){.app{padding:1rem}.pull-indicator{margin:0 -1rem}}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.app-header h1{margin:0;font-size:2rem}.subtitle{color:var(--text-primary);font-size:1.25rem}.header-actions{display:flex;align-items:center;gap:.75rem}.btn-admin{background:#1e40af!important;color:#93c5fd!important;font-size:.75rem!important;padding:.3rem .6rem!important;border-radius:6px}.layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start;min-width:0;height:100%;overflow:hidden}.dashboard{display:flex;flex-direction:column;gap:1.5rem;min-width:0;overflow-y:auto;height:100%;padding-right:.5rem;scrollbar-width:none}.dashboard::-webkit-scrollbar{display:none}.sidebar{min-width:0;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;height:100%;padding-right:.5rem;scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}@media (max-width: 900px){.app{height:100vh;height:100dvh}.app-content{overflow-y:auto;-webkit-overflow-scrolling:touch}.layout{grid-template-columns:1fr;height:auto;overflow:visible}.dashboard,.sidebar{overflow-y:visible;height:auto}.subtitle{font-size:1rem}.header-group svg,.header-group image{height:10px;width:40px}}:root{font-family:Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--bg-primary: #f6f6f6;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--bg-hover: #e2e8f0;--bg-button: #f1f5f9;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--accent: #2563eb;--success: #16a34a;--success-bg: #dcfce7;--danger: #dc2626;--danger-bg: #fee2e2;--card-bg: rgba(255, 255, 255, .75);--shadow: rgba(26, 26, 26, .08);--warning: #d97706;color-scheme:light;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100dvh;width:100%}body{min-width:320px}h1{font-size:2rem;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-button);color:var(--text-primary);cursor:pointer;transition:border-color .25s}button:hover{background-color:var(--bg-button-secondary)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}
