:root{--brand-vert:#2bfcb1;--brand-bleu:#38b5fb;--brand-turquoise:#2cfffd;--brand-mauve:#7a8efb;--brand-jaune:#fff837;--brand-rose:#f479a5;--brand-orange:#fbdb47;--brand-rouge:#f2565d;--gradient-froid-1:linear-gradient(45deg,#2bfcb1,#38b5fb);--gradient-froid-2:linear-gradient(45deg,#2cfffd,#7a8efb);--gradient-chaud-1:linear-gradient(45deg,#fff837,#f479a5);--gradient-chaud-2:linear-gradient(45deg,#fbdb47,#f2565d);--color-education-green:#2bfcb1;--color-education-blue:#38b5fb;--color-education-turquoise:#2cfffd;--color-education-purple:#7a8efb;--color-sports-yellow:#fff837;--color-sports-pink:#f479a5;--color-sports-orange:#fbdb47;--color-sports-red:#f2565d;--color-white:#fff;--color-black:#000;--color-gray-light:#f5f5f5;--color-gray-medium:#e0e0e0;--color-gray-dark:#757575;--color-text-primary:#1a1a1a;--color-text-secondary:#666;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Nexa,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-weight:400;line-height:1.6}*{box-sizing:border-box;margin:0;padding:0}body{min-width:320px;min-height:100vh;color:var(--color-text-primary);background:#f8fafc;margin:0}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}a{color:var(--color-education-blue);text-decoration:none;transition:color .3s}a:hover{color:var(--color-education-purple)}button{cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .3s}button:disabled{opacity:.6;cursor:not-allowed}input,textarea{font-family:inherit;font-size:1rem}.auth-container{background:linear-gradient(45deg,#2cfffd,#7a8efb);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{background:var(--color-white);border-radius:24px;width:100%;max-width:900px;padding:3.5rem;animation:.6s cubic-bezier(.16,1,.3,1) slideUpFade;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000026}.auth-card:before{content:"";background:linear-gradient(90deg,var(--color-education-green),var(--color-education-turquoise),var(--color-education-blue),var(--color-education-purple));height:6px;position:absolute;top:0;left:0;right:0}@keyframes slideUpFade{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.auth-logo{text-align:center;margin-bottom:2.5rem}.auth-title{background:linear-gradient(45deg,#2cfffd,#7a8efb);-webkit-text-fill-color:transparent;letter-spacing:-1px;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-family:Nexa,sans-serif;font-size:3rem;font-weight:800}.auth-logo-img{width:100%;max-width:280px;height:auto;margin-bottom:1rem;margin-left:auto;margin-right:auto;display:block}.auth-heading{color:var(--color-text-primary);text-align:center;margin-bottom:1rem;font-family:Nexa,sans-serif;font-size:1.75rem;font-weight:700}.auth-subtitle{color:var(--color-text-secondary);margin-top:.5rem;font-size:1.1rem;font-weight:500}.auth-error{border-left:4px solid var(--color-sports-red);color:#991b1b;background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%);border-radius:12px;align-items:center;gap:.75rem;margin-bottom:2rem;padding:1rem 1.5rem;font-weight:600;animation:.5s ease-in-out shake;display:flex}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.auth-form{flex-direction:column;gap:1.75rem;display:flex}.form-group{flex-direction:column;gap:.6rem;display:flex;position:relative}.form-label{color:var(--color-education-purple);margin-left:.25rem;font-family:Nexa,sans-serif;font-size:.95rem;font-weight:700}.form-input{border:2px solid var(--color-gray-medium);width:100%;color:var(--color-text-primary);background-color:#f8fafc;border-radius:12px;padding:1rem 1.25rem;font-family:inherit;font-size:1rem;transition:all .2s}.form-input:hover:not(:disabled){background-color:#fff;border-color:#cbd5e1}.form-input:focus{border-color:var(--color-education-blue);background-color:#fff;outline:none;box-shadow:0 0 0 4px #38b5fb26}.form-input:disabled{background-color:var(--color-gray-light);color:var(--color-text-secondary);cursor:not-allowed;border-color:var(--color-gray-medium)}.form-input::placeholder{color:#94a3b8}select.form-input{appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 1rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}textarea.form-input{resize:vertical;min-height:120px}.auth-button{cursor:pointer;text-transform:uppercase;letter-spacing:.5px;color:var(--color-white);background:linear-gradient(45deg,#2cfffd,#7a8efb);border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:1rem 2rem;font-family:Nexa,sans-serif;font-size:1.1rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 10px 20px -5px #7a8efb66}.auth-button:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 15px 30px -5px #38b5fb80}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{background:var(--color-gray-medium);color:var(--color-text-secondary);box-shadow:none;cursor:not-allowed}.auth-button.secondary{border:2px solid var(--color-education-purple);color:var(--color-education-purple);box-shadow:none;background:0 0}.auth-button.secondary:hover:not(:disabled){background:#7a8efb0d;transform:translateY(-2px)}.auth-checkbox-group{cursor:pointer;align-items:center;gap:.6rem;margin-top:1rem;display:flex}.auth-checkbox-group input[type=checkbox]{width:18px;min-width:18px;height:18px;accent-color:var(--color-education-purple);cursor:pointer}.auth-checkbox-group span{color:#4b5563;font-size:.85rem;line-height:1.3}.forgot-password-link{text-align:right;margin-top:-.5rem}.forgot-password-link button,.forgot-password-link a{font-size:.9rem}.reset-description{color:var(--color-text-secondary);text-align:center;margin-bottom:2rem;font-size:1rem;line-height:1.6}.reset-success{text-align:center;padding:1rem 0}.reset-success .success-icon{color:#059669;background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:1.5rem;display:inline-flex}.reset-success .success-message{color:#065f46;background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%);border-left:4px solid #10b981;border-radius:12px;padding:1.25rem 1.5rem;font-size:1.05rem;line-height:1.6}.auth-footer{text-align:center;border-top:1px solid var(--color-gray-medium);margin-top:2.5rem;padding-top:1.5rem}.auth-link{color:var(--color-education-blue);font-weight:700;position:relative}.auth-link:after{content:"";background-color:var(--color-education-blue);transform-origin:100%;width:100%;height:2px;transition:transform .3s;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.auth-link:hover:after{transform-origin:0;transform:scaleX(1)}@media (max-width:768px){.auth-container{align-items:flex-start;padding:1rem}.auth-card{border-radius:16px;margin-top:1rem;padding:1.5rem}.auth-title{font-size:2.25rem}.auth-heading{font-size:1.5rem}.form-input{padding:.875rem 1rem}.auth-button{min-height:48px;padding:.875rem 1.25rem;font-size:.95rem}}@media (max-width:480px){.auth-button{width:100%;min-height:44px;padding:.75rem 1rem;font-size:.9rem}}.registration-choice-buttons{flex-direction:column;gap:1rem;display:flex}.registration-choice-btn{min-height:140px;text-transform:none!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:.5rem!important;padding:1.5rem 1rem!important;display:flex!important}.registration-choice-btn.existing-member{color:#fff!important;background:linear-gradient(45deg,#2cfffd,#7a8efb)!important;box-shadow:0 10px 20px -5px #7a8efb66!important}.registration-choice-btn.new-member{color:#1f2937!important;background:linear-gradient(45deg,#fff837,#f479a5)!important;box-shadow:0 10px 20px -5px #f479a566!important}.registration-choice-btn .choice-icon{margin-bottom:.25rem;font-size:2rem;line-height:1}.registration-choice-btn .choice-title{text-align:center;letter-spacing:.3px;font-size:1rem;font-weight:700;line-height:1.3}.registration-choice-btn .choice-subtitle{opacity:.85;text-align:center;text-transform:uppercase;letter-spacing:.5px;font-size:.85rem;font-weight:500}@media (max-width:480px){.registration-choice-btn{min-height:120px;padding:1.25rem .75rem!important}.registration-choice-btn .choice-icon{font-size:1.75rem}.registration-choice-btn .choice-title{padding:0 .5rem;font-size:.9rem}.registration-choice-btn .choice-subtitle{padding:0 .5rem;font-size:.75rem}}.form-navigation-buttons{gap:1rem;margin-top:2rem;display:flex}@media (max-width:480px){.form-navigation-buttons{flex-direction:column-reverse;gap:.75rem}.form-navigation-buttons .auth-button{width:100%;flex:none!important}}.multi-select-chips{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.chip{border:2px solid var(--color-gray-medium);background-color:var(--color-white);min-height:42px;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:25px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1rem;font-family:Nexa,sans-serif;font-size:.875rem;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden}.chip:before{content:"";opacity:0;width:0;height:0;transition:all .2s;display:inline-block}.chip-selected:before{content:"✓";opacity:1;width:auto;font-size:.85rem;font-weight:700}.chip:hover:not(.chip-disabled){border-color:var(--color-education-turquoise);background-color:#2cfffd14;transform:translateY(-1px);box-shadow:0 3px 10px #2cfffd33}.chip:active:not(.chip-disabled){transform:translateY(0)scale(.98)}.chip-selected{border-color:var(--brand-vert);color:var(--color-white);text-shadow:0 1px 2px #00000026;background:linear-gradient(45deg,#2bfcb1,#38b5fb);box-shadow:0 3px 12px #2bfcb159}.chip-selected:hover:not(.chip-disabled){border-color:var(--brand-turquoise);background:linear-gradient(45deg,#2cfffd,#7a8efb);box-shadow:0 4px 15px #2cfffd73}.chip-disabled{opacity:.45;cursor:not-allowed;filter:grayscale()}@media (max-width:480px){.multi-select-chips{gap:.4rem}.chip{border-width:1.5px;border-radius:20px;min-height:38px;padding:.4rem .85rem;font-size:.8rem}.chip-selected:before{font-size:.75rem}}@media (max-width:360px){.multi-select-chips{gap:.35rem}.chip{min-height:36px;padding:.35rem .7rem;font-size:.75rem}}.radio-cards{flex-wrap:wrap;gap:1rem;margin-top:.75rem;display:flex}.radio-cards-default{flex-direction:column}.radio-cards-compact{flex-direction:row}.radio-card{border:2px solid var(--color-gray-medium);background-color:var(--color-white);min-height:56px;color:var(--color-text-primary);cursor:pointer;border-radius:16px;flex:1;align-items:center;gap:1rem;min-width:fit-content;padding:1rem 1.25rem;font-size:1rem;font-weight:600;transition:all .3s;display:flex;position:relative;overflow:hidden}.radio-card:hover:not(:disabled){border-color:var(--color-education-turquoise);background-color:#2cfffd08;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.radio-card:active:not(:disabled){transform:translateY(0)}.radio-card-selected{border-color:var(--color-education-green);background-color:#2bfcba0d;box-shadow:0 0 0 4px #2bfcba1a}.radio-card:disabled{opacity:.6;background-color:var(--color-gray-light);border-color:var(--color-gray-medium);cursor:not-allowed}.radio-card-indicator{border:2px solid var(--color-gray-medium);background-color:var(--color-white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:all .3s;display:flex}.radio-card-selected .radio-card-indicator{border-color:var(--color-education-green);background-color:var(--color-education-green);transform:scale(1.1)}.radio-card-dot{background-color:var(--color-white);border-radius:50%;width:10px;height:10px;transition:transform .2s cubic-bezier(.175,.885,.32,1.275);transform:scale(0)}.radio-card-selected .radio-card-dot{transform:scale(1)}.radio-card-label{text-align:left;flex:1}.rating-select-container{align-items:center;gap:1rem;margin-top:.75rem;display:flex}.rating-select{min-width:120px;max-width:150px;height:48px;color:var(--color-text-primary);background-color:var(--color-white);border:2px solid var(--color-gray-medium);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%237A8EFB' 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-position:right .75rem center;background-repeat:no-repeat;background-size:20px;border-radius:12px;flex:none;padding:.5rem 2.5rem .5rem 1rem;font-family:Nexa,sans-serif;font-size:1.1rem;font-weight:700;transition:all .2s}.rating-select:hover:not(:disabled){border-color:var(--color-education-purple);box-shadow:0 4px 12px #7a8efb33}.rating-select:focus{border-color:var(--color-education-purple);outline:none;box-shadow:0 0 0 4px #7a8efb26}.rating-select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-gray-light)}.rating-select option{padding:.5rem;font-size:1rem;font-weight:600}.rating-select-container .rating-emoji{font-size:1.75rem;line-height:1;animation:.4s cubic-bezier(.175,.885,.32,1.275) emojiPop}@keyframes emojiPop{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.rating-scale-hint{color:var(--color-text-secondary);background-color:var(--color-gray-light);border-radius:8px;justify-content:space-between;margin-top:.5rem;margin-bottom:1rem;padding:.5rem .75rem;font-size:.8rem;display:flex}.rating-scale-hint span:first-child{color:var(--color-sports-red);font-weight:600}.rating-scale-hint span:last-child{color:var(--color-education-green);font-weight:600}@media (max-width:480px){.rating-select-container{gap:.75rem}.rating-select{border-radius:10px;min-width:100px;max-width:130px;height:44px;padding:.4rem 2rem .4rem .85rem;font-size:1rem}.rating-select-container .rating-emoji{font-size:1.5rem}.rating-scale-hint{padding:.4rem .6rem;font-size:.75rem}}.rating-slider-container{align-items:center;gap:1.5rem;margin-top:1rem;padding:.5rem 0;display:flex}.rating-slider{appearance:none;background:linear-gradient(to right,var(--color-sports-red)0%,var(--color-sports-yellow)50%,var(--color-education-green)100%);cursor:pointer;border-radius:10px;outline:none;flex:1;height:10px;box-shadow:inset 0 2px 4px #0000001a}.rating-slider::-webkit-slider-thumb{appearance:none;background-color:var(--color-white);border:4px solid var(--color-education-purple);cursor:grab;border-radius:50%;width:28px;height:28px;margin-top:-1px;transition:all .2s;box-shadow:0 4px 8px #0003}.rating-slider::-webkit-slider-thumb:hover{border-color:var(--color-education-blue);transform:scale(1.2);box-shadow:0 6px 12px #38b5fb66}.rating-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}.rating-slider::-moz-range-thumb{background-color:var(--color-white);border:4px solid var(--color-education-purple);cursor:grab;border-radius:50%;width:28px;height:28px;transition:all .2s;box-shadow:0 4px 8px #0003}.rating-slider:disabled{opacity:.5;filter:grayscale();cursor:not-allowed}.rating-slider-value{background-color:var(--color-gray-light);border:1px solid var(--color-gray-medium);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:60px;padding:.5rem;display:flex}.rating-emoji{margin-bottom:.25rem;font-size:1.5rem;line-height:1;animation:.4s cubic-bezier(.175,.885,.32,1.275) emojiPop}.rating-number{color:var(--color-education-purple);font-family:Nexa,sans-serif;font-size:1.2rem;font-weight:800}.rating-slider-labels{color:var(--color-text-secondary);justify-content:space-between;margin-top:.35rem;margin-bottom:1.5rem;padding:0 10px;font-family:Nexa,sans-serif;font-size:1.25rem;display:flex}.rating-label-min{color:var(--color-sports-red);font-size:1.5rem;font-weight:800}.rating-label-mid{color:var(--color-sports-orange);font-size:1.35rem;font-weight:800}.rating-label-max{color:var(--color-education-green);font-size:1.5rem;font-weight:800}.form-helper-text{color:var(--color-text-secondary);border-left:3px solid var(--color-education-blue);background-color:#38b5fb0d;border-radius:8px;margin:.4rem 0 .75rem;padding:.5rem .75rem;font-size:.85rem;line-height:1.5}.form-hint{color:var(--color-text-secondary);margin-top:.5rem;font-size:.8rem;font-style:italic;display:block}.autocomplete-container{width:100%;position:relative}.autocomplete-input-wrapper{align-items:center;display:flex;position:relative}.autocomplete-input{padding-right:70px!important}.autocomplete-icons{pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute;right:12px}.autocomplete-clear-btn{background-color:var(--color-gray-medium);width:24px;height:24px;color:var(--color-text-secondary);cursor:pointer;pointer-events:auto;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.autocomplete-clear-btn:hover{background-color:var(--color-sports-red);color:#fff;transform:scale(1.1)}.autocomplete-chevron{color:var(--color-text-secondary);justify-content:center;align-items:center;transition:transform .2s;display:flex}.autocomplete-dropdown{background-color:var(--color-white);border:2px solid var(--color-education-blue);z-index:1000;border-radius:12px;max-height:280px;margin:0;padding:.5rem;list-style:none;animation:.2s dropdownSlide;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000026}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.autocomplete-option{cursor:pointer;color:var(--color-text-primary);border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.95rem;transition:all .15s;display:flex}.autocomplete-option:hover,.autocomplete-option.highlighted{background-color:#38b5fb1a}.autocomplete-option.selected{color:var(--color-education-green);background-color:#2bfcba26;font-weight:600}.autocomplete-option.selected.highlighted{background-color:#2bfcba40}.autocomplete-option strong{color:var(--color-education-purple);font-weight:700}.autocomplete-check{color:var(--color-education-green);flex-shrink:0}.autocomplete-no-results{text-align:center;color:var(--color-text-secondary);padding:1rem;font-size:.9rem;font-style:italic}.autocomplete-dropdown::-webkit-scrollbar{width:6px}.autocomplete-dropdown::-webkit-scrollbar-track{background:0 0}.autocomplete-dropdown::-webkit-scrollbar-thumb{background-color:var(--color-gray-medium);border-radius:3px}.autocomplete-dropdown::-webkit-scrollbar-thumb:hover{background-color:var(--color-text-secondary)}@media (max-width:480px){.autocomplete-dropdown{border-radius:10px;max-height:220px;padding:.35rem}.autocomplete-option{border-radius:6px;padding:.65rem .85rem;font-size:.9rem}.autocomplete-no-results{padding:.85rem;font-size:.85rem}.autocomplete-clear-btn{width:22px;height:22px}.autocomplete-clear-btn svg{width:14px;height:14px}.autocomplete-chevron svg{width:18px;height:18px}}.home-container{color:#1f2937;background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.test-mode-banner{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);justify-content:center;align-items:center;gap:1rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;display:flex;box-shadow:0 2px 8px #f59e0b4d}.exit-test-btn{color:#fff;cursor:pointer;background:#fff3;border:1px solid #fff6;border-radius:8px;padding:.4rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.exit-test-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.header-action-button.role-selector{background:#f59e0b4d;border-color:#f59e0b80}.header-action-button.role-selector:hover{background:#f59e0b66}.role-modal-overlay{z-index:10000;background:#0009;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.role-modal{background:#fff;border-radius:20px;width:100%;max-width:420px;padding:2rem;animation:.3s slideUp;position:relative;box-shadow:0 20px 60px #0000004d}.role-modal-close{cursor:pointer;color:#6b7280;background:#f3f4f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.5rem;transition:all .3s;display:flex;position:absolute;top:1rem;right:1rem}.role-modal-close:hover{color:#111827;background:#e5e7eb;transform:rotate(90deg)}.role-modal-content{flex-direction:column;gap:1.5rem;display:flex}.role-modal-title{color:#111827;text-align:center;margin:0;font-size:1.5rem;font-weight:700}.role-modal-subtitle{color:#6b7280;text-align:center;margin:0;font-size:.95rem}.role-options-grid{flex-direction:column;gap:.75rem;display:flex}.role-option-card{cursor:pointer;text-align:left;background:#fff;border:2px solid #e5e7eb;border-radius:12px;align-items:center;gap:1rem;width:100%;padding:1rem 1.25rem;transition:all .2s;display:flex}.role-option-card:hover{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f59e0b;transform:translate(4px)}.role-option-icon{flex-shrink:0;font-size:1.75rem}.role-option-name{color:#111827;font-size:1.1rem;font-weight:600;display:block}.role-option-desc{color:#6b7280;margin-top:.25rem;font-size:.85rem;display:block}@media (min-width:768px){.page-header{padding:2rem 3rem}}.header-action-button{color:#fff;cursor:pointer;z-index:101;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff40;border:2px solid #fff6;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;transition:all .25s;display:flex;position:relative;box-shadow:0 4px 12px #0000001a}.header-action-button:hover{background:#fff6;border-color:#fff9;transform:translateY(-2px)scale(1.05);box-shadow:0 6px 20px #00000026}.header-action-button:active{transform:translateY(0)scale(.98)}.header-action-button.scanner:hover{background:#f59e0b4d;border-color:#f59e0b80}.header-action-button.qr:hover{background:#10b9814d;border-color:#10b98180}.header-action-button.profile:hover{background:#8b5cf64d;border-color:#8b5cf680}.header-action-button svg{z-index:102;width:22px;height:22px;display:block;position:relative;overflow:visible}.header-action-button svg path,.header-action-button svg circle,.header-action-button svg rect,.header-action-button svg line,.header-action-button svg polyline{stroke:#fff;stroke-width:2px;fill:none;stroke-linecap:round;stroke-linejoin:round}@media (min-width:768px){.header-title h1{font-size:2.5rem}}@media (min-width:768px){.page-content{padding:2rem 3rem}}.info-banner{background:#fff;border-left:4px solid #10b981;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding:.75rem 1.5rem;animation:.4s ease-out fadeIn;display:flex;position:relative;box-shadow:0 2px 8px #00000014}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.info-banner p{color:#6b7280;flex:1;margin:0;font-size:.95rem}.banner-close{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:1.5rem;line-height:1;transition:all .2s;display:flex}.banner-close:hover{color:#111827;background:#0000000d}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;max-width:100%;display:grid}.feature-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:16px;flex-direction:column;gap:1.25rem;min-height:200px;padding:2rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000001a}.feature-card:hover{border-color:#d1d5db;transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.feature-card h3{color:#111827;letter-spacing:-.025em;margin-bottom:.5rem;font-size:1.375rem;font-weight:700}.feature-card p{color:#6b7280;margin:0;font-size:.9rem;line-height:1.6}.card-icon{border-radius:14px;flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;width:60px;height:60px;display:flex}.card-icon svg{color:#fff;width:28px;min-width:28px;height:28px;min-height:28px;display:block;overflow:visible}.card-icon svg path,.card-icon svg circle,.card-icon svg line,.card-icon svg rect,.card-icon svg polyline{stroke:#fff;stroke-width:2px;fill:none;stroke-linecap:round;stroke-linejoin:round}.feature-card.admin-dashboard .card-icon,.feature-card.admin-settings-card .card-icon,.feature-card.student-management-card .card-icon{background:linear-gradient(45deg,#2cfffd,#7a8efb)}.feature-card.student-stats-card .card-icon{background:linear-gradient(45deg,#38b5fb,#7a8efb)}.feature-card.member-stats-card .card-icon{background:linear-gradient(45deg,#8b5cf6,#6366f1)}.feature-card-wrapper{position:relative}.card-hide-toggle{color:#6b7280;cursor:pointer;z-index:10;opacity:0;background:#0000001a;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.feature-card-wrapper:hover .card-hide-toggle{opacity:1}.card-hide-toggle:hover{color:#374151;background:#0003}.feature-card.hidden-card{opacity:.5;background:#f9fafb;border:2px dashed #d1d5db;min-height:60px;padding:.75rem 1rem}.feature-card.hidden-card .card-icon{width:36px;height:36px;background:#e5e7eb!important}.feature-card.hidden-card .card-content h3{color:#9ca3af;font-size:.85rem}.feature-card.hidden-card .card-content p{color:#9ca3af;font-size:.75rem}.feature-card.hidden-card:hover{opacity:.8;border-color:#9ca3af}.feature-card.player-management-card .card-icon{background:linear-gradient(45deg,#fff837,#f479a5)}.feature-card.form-test-card .card-icon,.feature-card.room-management-card .card-icon,.feature-card.reservation-card .card-icon,.feature-card.today-reservations-card .card-icon{background:linear-gradient(45deg,#2cfffd,#7a8efb)}.feature-card.opening-calendar-card .card-icon{background:linear-gradient(45deg,#fff837,#f479a5)}.feature-card.mes-reservations-card .card-icon{background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.feature-card.faq-card .card-icon{background:linear-gradient(45deg,#2cfffd,#7a8efb)}.feature-card.staff-aide-card .card-icon{background:linear-gradient(45deg,#fff837,#f479a5)}.card-content{flex:1;padding-right:50px}.reservation-status-badge{border-radius:8px;align-items:center;gap:.5rem;margin-top:.75rem;padding:.5rem .75rem;font-size:.8rem;font-weight:600;animation:.3s fadeIn;display:flex}.reservation-status-badge.open{color:#047857;background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%);border:1px solid #6ee7b7}.reservation-status-badge.closed{color:#92400e;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:1px solid #fcd34d}.badge-icon{font-size:.9rem}.badge-text{line-height:1.3}.card-arrow{color:#4b5563;background:#f3f4f6;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.5rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;bottom:2rem;right:2rem}.feature-card:hover .card-arrow{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb);transform:translate(3px)}.player-status-badge{text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;border-radius:12px;margin-left:.5rem;padding:.2rem .6rem;font-size:.7rem;font-weight:700;display:inline-block}.player-status-badge.active{color:#d1fae5;background:#10b9814d;border:1px solid #10b98180}.player-status-badge.inactive{color:#fef3c7;background:#fbbf244d;border:1px solid #fbbf2480}@media (max-width:768px){.page-content{padding:1.5rem}.info-banner{padding:.625rem 1rem}.info-banner p{font-size:.875rem}.feature-grid{grid-template-columns:1fr}.feature-card{padding:1.5rem}.feature-card h3{font-size:1.25rem}.card-icon{width:50px;height:50px}.card-icon svg{width:24px;height:24px}.card-arrow{width:36px;height:36px;font-size:1.25rem;bottom:1.5rem;right:1.5rem}}.qr-modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.qr-modal{background:#fff;border-radius:20px;width:100%;max-width:400px;padding:2rem;animation:.3s slideUp;position:relative;box-shadow:0 20px 60px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.qr-modal-close{cursor:pointer;color:#6b7280;background:#f3f4f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.5rem;transition:all .3s;display:flex;position:absolute;top:1rem;right:1rem}.qr-modal-close:hover{color:#111827;background:#e5e7eb;transform:rotate(90deg)}.qr-modal-content{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.qr-modal-title{color:#111827;text-align:center;margin:0;font-size:1.75rem;font-weight:700}.qr-modal-subtitle{color:#10b981;text-align:center;margin:0;font-size:1.1rem;font-weight:600}.qr-code-container{background:#fff;border-radius:16px;justify-content:center;align-items:center;padding:1.5rem;display:flex;box-shadow:0 4px 12px #0000001a}.qr-modal-info{color:#6b7280;text-align:center;margin:0;font-size:.9rem;line-height:1.5}@media (max-width:640px){.qr-modal{max-width:90%;padding:1.5rem}.qr-modal-title{font-size:1.5rem}.qr-modal-subtitle{font-size:1rem}.qr-code-container{padding:1rem}.qr-code-container svg{width:200px!important;height:200px!important}}.scanner-modal{background:#fff;border-radius:20px;width:100%;max-width:500px;padding:2rem;animation:.3s slideUp;position:relative;box-shadow:0 20px 60px #0000004d}.scanner-content{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.scanner-title{color:#111827;text-align:center;margin:0;font-size:1.75rem;font-weight:700}.scanner-subtitle{color:#6b7280;text-align:center;margin:0;font-size:1rem;font-weight:500}.scanner-video-container{aspect-ratio:1;background:#000;border-radius:16px;width:100%;max-width:400px;position:relative;overflow:hidden}.scanner-video{object-fit:cover;width:100%;height:100%}.scanner-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scanner-frame{border:3px solid #f59e0b;border-radius:12px;width:200px;height:200px;animation:2s ease-in-out infinite pulse;box-shadow:0 0 0 9999px #00000080}@keyframes pulse{0%,to{border-color:#f59e0b}50%{border-color:#fbbf24}}.scanner-error{color:#991b1b;text-align:center;background:#fee2e2;border-radius:8px;padding:1rem;font-weight:500}.student-profile{flex-direction:column;gap:1.5rem;width:100%;display:flex}.profile-title{color:#111827;text-align:center;margin:0;font-size:1.75rem;font-weight:700}.profile-header{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border-radius:12px;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.profile-avatar{color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.5rem;font-weight:700;display:flex}.profile-name{flex:1}.profile-name h3{color:#111827;margin:0 0 .25rem;font-size:1.25rem;font-weight:700}.profile-email{color:#6b7280;margin:0;font-size:.9rem}.profile-details{flex-direction:column;gap:1rem;display:flex}.profile-detail-item{background:#f9fafb;border-radius:8px;justify-content:space-between;align-items:center;padding:1rem;display:flex}.detail-label{color:#6b7280;font-size:.9rem;font-weight:600}.status-badge.approved{color:#065f46;background:#d1fae5;border-radius:12px;padding:.25rem .75rem;font-size:.85rem}.status-badge.pending{color:#92400e;background:#fef3c7;border-radius:12px;padding:.25rem .75rem;font-size:.85rem}.close-profile-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:12px;padding:1rem;font-size:1rem;font-weight:600;transition:all .3s}.close-profile-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #f59e0b66}@media (max-width:640px){.scanner-modal{max-width:90%;padding:1.5rem}.scanner-title{font-size:1.5rem}.scanner-subtitle{font-size:.9rem}.scanner-frame{width:150px;height:150px}.profile-header{text-align:center;flex-direction:column}.profile-detail-item{text-align:center;flex-direction:column;gap:.5rem}}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background-color:#1a1a2eb3;justify-content:center;align-items:center;padding:20px;animation:.2s ease-in-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border:1px solid #7a8efb1a;border-radius:24px;width:100%;max-width:600px;max-height:90vh;animation:.3s ease-out modalSlideUp;overflow-y:auto;box-shadow:0 25px 60px #7a8efb40}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.user-profile-header{z-index:10;border-radius:24px 24px 0 0;justify-content:space-between;align-items:flex-start;padding:1.5rem 1.75rem;display:flex;position:sticky;top:0;background:linear-gradient(45deg,#2cfffd,#7a8efb)!important;border-bottom:none!important}.user-profile-header h2{text-shadow:0 2px 8px #0000001a;margin:0;font-size:1.35rem;font-weight:700;color:#fff!important}.user-profile-header .modal-email{margin:6px 0 0;font-size:.9rem;font-weight:500;color:#ffffffe6!important}.add-contact-button{color:#7a8efb;cursor:pointer;background:#fffffff2;border:none;border-radius:20px;align-items:center;gap:8px;margin-top:12px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #0000001a}.add-contact-button:hover{background:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.add-contact-button:active{transform:translateY(0)}.add-contact-button svg{stroke:#7a8efb;width:18px;height:18px}.header-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.edit-profile-button{color:#fff;cursor:pointer;background:#fff3;border:1px solid #fff6;border-radius:20px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.edit-profile-button:hover{background:#ffffff4d;transform:translateY(-2px)}.edit-profile-button svg{stroke:#fff;width:16px;height:16px}.edit-toolbar{background:linear-gradient(135deg,#fbbf2426 0%,#f59e0b26 100%);border:1px solid #f59e0b4d;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:12px 16px;display:flex}.edit-mode-label{color:#92400e;font-size:.9rem;font-weight:600}.edit-toolbar-actions{gap:10px;display:flex}.cancel-edit-button{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s}.cancel-edit-button:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.save-edit-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2bfcb1 0%,#38b5fb 100%);border:none;border-radius:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s}.save-edit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #2bfcb14d}.save-edit-button:disabled,.cancel-edit-button:disabled{opacity:.6;cursor:not-allowed}.edit-input{color:#1f2937;background:#fff;border:2px solid #e5e7eb;border-radius:10px;width:100%;padding:10px 14px;font-size:.95rem;transition:all .2s}.edit-input:focus{border-color:#7a8efb;outline:none;box-shadow:0 0 0 3px #7a8efb33}.edit-input::placeholder{color:#9ca3af}select.edit-input{cursor:pointer;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='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.edit-field-button{cursor:pointer;opacity:.4;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:8px;padding:0;transition:all .2s;display:inline-flex}.edit-field-button svg{stroke:#7a8efb;width:14px;height:14px}.info-value{color:#111827;align-items:flex-start;gap:4px;font-size:.95rem;font-weight:600;line-height:1.5;display:flex}.info-item:hover .edit-field-button{opacity:.7}.edit-input-inline{color:#1f2937;background:#fff;border:2px solid #7a8efb;border-radius:8px;flex:1;min-width:0;padding:8px 12px;font-family:inherit;font-size:.9rem}.edit-input-number{text-align:center;max-width:80px;font-weight:700}.edit-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.edit-input-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.edit-input-number[type=number]{-moz-appearance:textfield}.inline-save,.inline-cancel{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:all .2s;display:flex}.inline-save svg{stroke:#fff;stroke-width:3px;width:16px;height:16px}.inline-cancel svg{stroke:#6b7280;stroke-width:2.5px;width:14px;height:14px}.inline-save:disabled,.inline-cancel:disabled{opacity:.5;cursor:not-allowed}.user-profile-header .modal-close{cursor:pointer;background:#fff3;border:none;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;padding:0;font-size:1.5rem;transition:all .2s;display:flex;color:#fff!important}.user-profile-header .modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-section{margin-bottom:1.75rem}.modal-section:last-child{margin-bottom:0}.modal-section h3{color:#374151;border-bottom:2px solid #7a8efb;align-items:center;gap:.5rem;margin:0 0 1rem;padding-bottom:.75rem;font-size:1rem;font-weight:700;display:flex}.info-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.info-item{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #7a8efb1a;border-radius:14px;flex-direction:column;gap:.35rem;padding:1rem;transition:all .2s;display:flex}.info-item:hover{border-color:#7a8efb40;box-shadow:0 4px 12px #7a8efb1a}.info-item.full-width{grid-column:1/-1}.info-label{color:#7a8efb;text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:700}.info-value ul{margin:4px 0 0;padding-left:18px}.info-value li{color:#374151;margin-bottom:4px}.modal-footer{background:#fff;border-top:1px solid #e5e7eb;border-radius:0 0 24px 24px;flex-wrap:wrap;gap:.5rem;padding:1rem 1.25rem;display:flex;position:sticky;bottom:0}@media (max-width:480px){.modal-footer{gap:.4rem;padding:.75rem 1rem}.modal-footer .modal-button{flex:calc(50% - .2rem);min-width:calc(50% - .2rem)}}@media (min-width:481px) and (max-width:768px){.modal-footer{gap:.5rem}}.modal-button{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border:none;border-radius:12px;flex:1;min-width:0;padding:.75rem;font-family:inherit;font-size:.85rem;font-weight:700;transition:all .2s;overflow:hidden}.modal-button.approve{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.modal-button.approve:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #38b5fb59}.modal-button.reject{color:#fff;background:linear-gradient(45deg,#ef4444,#dc2626)}.modal-button.reject:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #dc262666}.modal-button.to-discuss{color:#fff;background:linear-gradient(45deg,#f59e0b,#d97706)}.modal-button.to-discuss:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #f59e0b59}.modal-button.to-discuss.active{color:#d97706;background:#f3f4f6;border:2px solid #f59e0b}.modal-button.to-discuss.active:hover:not(:disabled){background:#fef3c7}.modal-button.delete{color:#6b7280;background:#f3f4f6;border:2px solid #e5e7eb}.modal-button.delete:hover:not(:disabled){color:#374151;background:#e5e7eb;border-color:#d1d5db}.modal-button:disabled{opacity:.6;cursor:not-allowed}.role-badge{vertical-align:middle;text-transform:uppercase;letter-spacing:.03em;border-radius:20px;margin-left:.75rem;padding:.35rem .9rem;font-size:.75rem;font-weight:700;display:inline-block}.role-badge.role-student{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb)}.role-badge.role-player{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.role-badge.role-capitaine{color:#1f2937;background:linear-gradient(45deg,#fff837,#f479a5)}.role-badge.role-admin{color:#fff;background:linear-gradient(45deg,#fbdb47,#f2565d)}.role-section{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #7a8efb26;border-radius:16px;margin-top:1rem;padding:1.25rem!important}.role-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.role-button{cursor:pointer;color:#6b7280;background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:.75rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s}.role-button:hover:not(:disabled){color:#7a8efb;border-color:#7a8efb;transform:translateY(-2px)}.role-button.active{color:#7a8efb;background:#7a8efb1a;border-color:#7a8efb}.role-button.student.active{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-color:#0000}.role-button.player.active{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb);border-color:#0000}.role-button.capitaine.active{color:#1f2937;background:linear-gradient(45deg,#fff837,#f479a5);border-color:#0000}.role-button:disabled{opacity:.5;cursor:not-allowed}.role-note{color:#6b7280;margin-top:.75rem;font-size:.8rem;font-style:italic}.admin-section{background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1px solid #f2565d33;border-radius:16px;margin-top:1rem;padding:1.25rem!important}.admin-toggle-container{flex-direction:column;gap:.75rem;display:flex}.admin-toggle{cursor:pointer;align-items:center;gap:.75rem;display:flex}.admin-toggle input{display:none}.toggle-slider{background:#d1d5db;border-radius:14px;width:52px;height:28px;transition:all .3s;position:relative}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:all .3s;position:absolute;top:2px;left:2px;box-shadow:0 2px 6px #00000026}.admin-toggle input:checked+.toggle-slider{background:linear-gradient(45deg,#fbdb47,#f2565d)}.admin-toggle input:checked+.toggle-slider:before{transform:translate(24px)}.admin-toggle input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.toggle-label{color:#374151;font-size:.95rem;font-weight:600}.admin-warning{color:#dc2626;background:#f2565d1a;border-radius:10px;margin:0;padding:.75rem 1rem;font-size:.8rem;font-weight:500}@media (max-width:768px){.modal-content{border-radius:20px;max-height:95vh;margin:.5rem}.modal-header{border-radius:20px 20px 0 0;padding:1.25rem}.modal-header h2{font-size:1.15rem}.modal-body{padding:1.25rem}.info-grid{grid-template-columns:1fr}.modal-footer{border-radius:0 0 20px 20px;flex-direction:column;padding:1rem 1.25rem}.role-buttons{flex-direction:column}.role-button{text-align:center;width:100%}}@media (max-width:480px){.modal-overlay{padding:.5rem}.modal-content{border-radius:16px;max-height:98vh}.modal-header{border-radius:16px 16px 0 0}.modal-footer{border-radius:0 0 16px 16px}}@font-face{font-family:Nexa;src:local(Nexa Bold),local(Nexa-Bold);font-weight:700;font-style:normal}@font-face{font-family:Nexa;src:local(Nexa Regular),local(Nexa-Regular);font-weight:400;font-style:normal}@media (min-width:768px){.admin-controls{flex-direction:row;justify-content:space-between;align-items:center}}@keyframes adminFadeIn{0%{opacity:0}to{opacity:1}}@keyframes adminSlideUp{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes adminSpin{to{transform:rotate(360deg)}}@media (max-width:768px){.admin-header{padding:1.5rem 1rem 3.5rem}.admin-header-title h1{font-size:1.75rem}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.admin-stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.admin-stat-icon{width:48px;height:48px}.admin-stat-info h3{font-size:1.75rem}.admin-content{padding:0 1rem 2rem}.admin-cards-grid{grid-template-columns:1fr}.admin-filters{justify-content:center;width:100%}.admin-filter-btn{padding:.5rem 1rem;font-size:.8rem}.admin-option-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.admin-back-btn span{display:none}.admin-back-btn{padding:.6rem}.admin-stats-grid{grid-template-columns:repeat(3,1fr)}.admin-stat-card{padding:1rem .5rem}.admin-stat-icon{width:40px;height:40px}.admin-stat-icon svg{width:20px;height:20px}.admin-stat-info h3{font-size:1.5rem}.admin-stat-info span{font-size:.65rem}}.admin-dashboard-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.header-top{z-index:100;position:relative}.stat-icon.pending{color:#78350f;background:linear-gradient(45deg,#fff837,#f479a5)}.stat-icon.approved{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.stat-icon.to-discuss{color:#fff;background:linear-gradient(45deg,#f59e0b,#d97706)}.stat-icon.rejected{color:#fff;background:linear-gradient(45deg,#fbdb47,#f2565d)}.stat-card.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.stat-card.clickable:hover{transform:translateY(-4px)scale(1.02);box-shadow:0 12px 35px #7a8efb38}.stat-card.clickable.active{background:linear-gradient(135deg,#7a8efb14 0%,#2cfffd14 100%);border:2px solid #7a8efb;box-shadow:0 8px 30px #7a8efb40}.stat-card.clickable.active .stat-info h3{color:#5b6edb}.controls-bar{background:#fff;border:1px solid #7a8efb14;border-radius:20px;align-items:stretch;margin-bottom:1.5rem;padding:1.25rem;display:flex;box-shadow:0 2px 12px #7a8efb14}.search-wrapper{flex:1;width:100%;position:relative}.filter-pills{background:#f3f4f6;border-radius:14px;flex-wrap:wrap;gap:.5rem;padding:.4rem;display:flex}.users-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.25rem;display:grid}.user-card{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:20px;flex-direction:column;padding:1.5rem;transition:all .3s;display:flex;box-shadow:0 2px 12px #7a8efb14}.user-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #7a8efb26}.user-card.is-pending{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border-color:#fbdb474d}.user-card.is-pending:hover{border-color:#fbdb4780}.user-card.is-to-discuss{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border-color:#f59e0b4d}.user-card.is-to-discuss:hover{border-color:#f59e0b80}.user-card.is-rejected{background:linear-gradient(135deg,#fff5f5 0%,#ffe8e8 100%);border-color:#f2565d33}.user-card.is-rejected:hover{border-color:#f2565d66}.card-header{align-items:center;gap:.875rem;width:100%;margin-bottom:1rem;display:flex}.card-avatar{color:#fff;text-transform:uppercase;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:14px;justify-content:center;align-items:center;width:52px;min-width:52px;height:52px;font-size:1rem;font-weight:700;display:flex}.user-card.is-pending .card-avatar{color:#78350f;background:linear-gradient(45deg,#fff837,#f479a5)}.user-card.is-to-discuss .card-avatar{color:#fff;background:linear-gradient(45deg,#f59e0b,#d97706)}.user-card.is-rejected .card-avatar{background:linear-gradient(45deg,#fbdb47,#f2565d)}.card-info h3{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;margin:0 0 .25rem;font-size:1rem;font-weight:700;overflow:hidden}.card-info .email{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.8rem;overflow:hidden}.card-status{text-transform:uppercase;letter-spacing:.03em;border-radius:20px;flex-shrink:0;padding:.4rem .9rem;font-size:.75rem;font-weight:700}.card-status.pending{color:#92400e;background:#fbdb474d}.card-status.approved{color:#0d9488;background:#2bfcba33}.card-status.to-discuss{color:#d97706;background:#f59e0b33}.card-status.rejected{color:#dc2626;background:#f2565d26}.card-details{flex-direction:column;gap:.5rem;width:100%;margin-bottom:1rem;display:flex}.detail-row{color:#6b7280;align-items:center;gap:.5rem;width:100%;font-size:.85rem;display:flex}.detail-row svg{color:#9ca3af;flex-shrink:0;width:16px;height:16px}.admin-tag{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:8px;align-items:center;gap:.4rem;margin-top:.25rem;padding:.4rem .8rem;font-size:.75rem;font-weight:700;display:inline-flex}.admin-tag svg{width:14px;height:14px}.card-footer{border-top:1px solid #f3f4f6;justify-content:flex-end;width:100%;margin-top:auto;padding-top:1rem;display:flex}.user-card.is-pending .card-footer{border-top-color:#fbdb474d}.user-card.is-to-discuss .card-footer{border-top-color:#f59e0b4d}.user-card.is-rejected .card-footer{border-top-color:#f2565d26}.view-more{color:#7a8efb;font-size:.875rem;font-weight:600}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.page-header{padding:1.5rem 1rem 3.5rem}.header-title h1{font-size:1.75rem}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.stat-icon{width:48px;height:48px}.stat-icon svg{width:24px;height:24px}.stat-info h3{font-size:1.75rem}.stat-info span{font-size:.75rem}.page-content{padding:0 1rem 2rem}.users-grid{grid-template-columns:1fr}.filter-pills{justify-content:center;width:100%}.filter-pill{padding:.5rem 1rem;font-size:.8rem}}@media (max-width:480px){.back-button span{display:none}.back-button{padding:.6rem}.user-card{padding:1rem}.card-header{gap:.6rem}.card-avatar{border-radius:10px;width:42px;min-width:42px;height:42px;font-size:.85rem}.card-info h3{font-size:.9rem}.card-info .email{font-size:.75rem}.card-status{padding:.25rem .5rem;font-size:.6rem}.detail-row{font-size:.8rem}.detail-row svg{width:14px;height:14px}.stat-card{padding:1rem .5rem}.stat-icon{width:40px;height:40px}.stat-icon svg{width:20px;height:20px}.stat-info h3{font-size:1.5rem}.stat-info span{font-size:.65rem}}@font-face{font-family:Nexa;src:local(Nexa Bold),local(Nexa-Bold);font-weight:700;font-style:normal}@font-face{font-family:Nexa;src:local(Nexa Regular),local(Nexa-Regular);font-weight:400;font-style:normal}@media (min-width:768px){.admin-controls{flex-direction:row;justify-content:space-between;align-items:center}}@media (max-width:768px){.admin-header{padding:1.5rem 1rem 3.5rem}.admin-header-title h1{font-size:1.75rem}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.admin-stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.admin-stat-icon{width:48px;height:48px}.admin-stat-info h3{font-size:1.75rem}.admin-content{padding:0 1rem 2rem}.admin-cards-grid{grid-template-columns:1fr}.admin-filters{justify-content:center;width:100%}.admin-filter-btn{padding:.5rem 1rem;font-size:.8rem}.admin-option-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.admin-back-btn span{display:none}.admin-back-btn{padding:.6rem}.admin-stats-grid{grid-template-columns:repeat(3,1fr)}.admin-stat-card{padding:1rem .5rem}.admin-stat-icon{width:40px;height:40px}.admin-stat-icon svg{width:20px;height:20px}.admin-stat-info h3{font-size:1.5rem}.admin-stat-info span{font-size:.65rem}}.admin-table-view-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}@media (min-width:768px){.page-header{padding:2rem 3rem 4rem}}@media (min-width:768px){.header-top{margin-bottom:2rem}}.back-button svg path,.back-button svg polyline,.back-button svg circle,.back-button svg rect,.back-button svg line{stroke-linecap:round;stroke-linejoin:round;z-index:102;stroke:#fff!important;stroke-width:2px!important;fill:none!important}@media (min-width:768px){.header-title h1{font-size:2.25rem}.header-title p{font-size:1.1rem}}@media (min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:-2.5rem;padding:0 3rem}}@media (min-width:768px){.stat-card{gap:1.25rem;padding:1.5rem}}@media (min-width:768px){.stat-icon{width:56px;height:56px}}@media (min-width:768px){.stat-icon svg{width:28px;height:28px}}.stat-icon.pending{background:linear-gradient(135deg,var(--p4p-orange)0%,#e67e22 100%)}.stat-icon.approved{background:linear-gradient(135deg,var(--p4p-vert)0%,#1dd1a1 100%)}.stat-icon.rejected{background:linear-gradient(135deg,var(--p4p-rouge)0%,#d63031 100%)}.stat-icon.total{background:linear-gradient(135deg,var(--p4p-mauve)0%,#5a6fd6 100%)}@media (min-width:768px){.stat-info h3{font-size:1.75rem}}@media (min-width:768px){.stat-info span{font-size:.875rem}}@media (min-width:768px){.page-content{padding:2.5rem 3rem}}@media (min-width:768px){.controls-bar{flex-direction:row;justify-content:space-between;align-items:center}}@media (min-width:768px){.filter-pills{gap:.75rem}}@media (min-width:768px){.filter-pill{padding:.75rem 1.25rem;font-size:.9rem}}.filter-toggle-btn{border:2px solid var(--p4p-mauve);color:var(--p4p-mauve);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .3s;display:flex}.filter-toggle-btn svg{width:18px;height:18px}.filter-toggle-btn:hover{background:var(--p4p-gradient-primary);color:#fff;border-color:#0000;box-shadow:0 4px 12px #7a8efb4d}.active-filters{background:#7a8efb14;border-radius:14px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.filter-tag{border:2px solid var(--p4p-mauve);color:var(--p4p-mauve);background:#fff;border-radius:20px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;display:inline-flex}.filter-tag button{color:var(--p4p-mauve);cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1;transition:color .2s}.filter-tag button:hover{color:var(--p4p-rouge)}.clear-filters-button{background:var(--p4p-gradient-danger);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.5rem 1rem;font-family:inherit;font-weight:600;transition:all .2s}.clear-filters-button:hover{transform:scale(1.02);box-shadow:0 4px 12px #f2565d4d}.filters-panel{background:#fff;border:1px solid #7a8efb1a;border-radius:20px;margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 4px 20px #7a8efb1a}.filters-panel h3{color:var(--p4p-gray-900);margin:0 0 1.5rem;font-size:1.1rem;font-weight:700}.filters-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;display:grid}.filter-group h4{color:var(--p4p-gray-700);margin:0 0 .75rem;font-size:.95rem;font-weight:600}.filter-options{flex-direction:column;gap:.5rem;display:flex}.filter-option{background:var(--p4p-gray-50);border:2px solid var(--p4p-gray-200);text-align:left;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;transition:all .2s;display:flex}.filter-option:hover{border-color:var(--p4p-mauve);background:#7a8efb14}.filter-option.active{border-color:var(--p4p-mauve);color:var(--p4p-mauve);background:#7a8efb26;font-weight:600}.filter-count{color:var(--p4p-gray-400);font-size:.85rem;font-weight:400}.filter-option.active .filter-count{color:var(--p4p-mauve)}.table-container{background:#fff;border:1px solid #7a8efb1a;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px #7a8efb1a}.users-table{border-collapse:collapse;width:100%;font-size:.9rem}.users-table thead{background:var(--p4p-gradient-primary);color:#fff;z-index:10;position:sticky;top:0}.users-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;padding:1rem .75rem;font-size:.8rem;font-weight:600}.users-table tbody tr{border-bottom:1px solid var(--p4p-gray-100);transition:background-color .2s}.users-table tbody tr:hover{background-color:#7a8efb0d}.users-table td{color:var(--p4p-gray-700);white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding:1rem .75rem;overflow:hidden}.status-badge{white-space:nowrap;border-radius:12px;padding:.35rem .75rem;font-size:.8rem;font-weight:700;display:inline-block}.status-badge.approved{background:var(--p4p-gradient-success);color:#fff}.status-badge.rejected{background:var(--p4p-gradient-danger);color:#fff}.status-badge.pending{background:var(--p4p-gradient-warning);color:var(--p4p-gray-800)}.table-actions{justify-content:flex-start;gap:.5rem;display:flex}.table-action-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;transition:all .2s;display:flex}.table-action-btn.approve{background:var(--p4p-gradient-success);color:#fff}.table-action-btn.approve:hover:not(:disabled){transform:scale(1.1);box-shadow:0 4px 12px #2bfcba4d}.table-action-btn.reject{background:var(--p4p-gradient-danger);color:#fff}.table-action-btn.reject:hover:not(:disabled){transform:scale(1.1);box-shadow:0 4px 12px #f2565d4d}.table-action-btn.delete{background:var(--p4p-gray-200);color:var(--p4p-gray-600)}.table-action-btn.delete:hover:not(:disabled){background:var(--p4p-gray-300);color:var(--p4p-gray-800)}.table-action-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width:1400px){.table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.users-table{min-width:1200px}}@media (max-width:768px){.filters-grid{grid-template-columns:1fr}}@font-face{font-family:Nexa;src:local(Nexa Bold),local(Nexa-Bold);font-weight:700;font-style:normal}@font-face{font-family:Nexa;src:local(Nexa Regular),local(Nexa-Regular);font-weight:400;font-style:normal}@media (min-width:768px){.admin-controls{flex-direction:row;justify-content:space-between;align-items:center}}@media (max-width:768px){.admin-header{padding:1.5rem 1rem 3.5rem}.admin-header-title h1{font-size:1.75rem}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.admin-stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.admin-stat-icon{width:48px;height:48px}.admin-stat-info h3{font-size:1.75rem}.admin-content{padding:0 1rem 2rem}.admin-cards-grid{grid-template-columns:1fr}.admin-filters{justify-content:center;width:100%}.admin-filter-btn{padding:.5rem 1rem;font-size:.8rem}.admin-option-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.admin-back-btn span{display:none}.admin-back-btn{padding:.6rem}.admin-stats-grid{grid-template-columns:repeat(3,1fr)}.admin-stat-card{padding:1rem .5rem}.admin-stat-icon{width:40px;height:40px}.admin-stat-icon svg{width:20px;height:20px}.admin-stat-info h3{font-size:1.5rem}.admin-stat-info span{font-size:.65rem}}.admin-reservation-manager-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}@media (min-width:768px){.page-header{padding:2rem 3rem 4rem}}@media (min-width:768px){.header-top{margin-bottom:2rem}}@media (min-width:768px){.header-title h1{font-size:2.25rem}.header-title p{font-size:1.1rem}}@media (min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:-2.5rem;padding:0 3rem}}@media (min-width:768px){.stat-card{gap:1.25rem;padding:1.5rem}}@media (min-width:768px){.stat-icon{width:56px;height:56px}}@media (min-width:768px){.stat-icon svg{width:28px;height:28px}}.stat-icon.today{background:linear-gradient(135deg,var(--p4p-mauve)0%,#5a6fd6 100%)}.stat-icon.tomorrow{background:linear-gradient(135deg,var(--p4p-bleu)0%,#1e9bd1 100%)}.stat-icon.students{background:linear-gradient(135deg,var(--p4p-orange)0%,#e67e22 100%)}@media (min-width:768px){.stat-info h3{font-size:1.75rem}}@media (min-width:768px){.stat-info span{font-size:.875rem}}@media (min-width:768px){.page-content{padding:2.5rem 3rem}}.controls-bar{flex-direction:column;gap:1rem;margin-bottom:2rem;display:flex}@media (min-width:768px){.controls-bar{flex-direction:row;justify-content:flex-start;align-items:center}}.filter-pills{flex-wrap:wrap;gap:.5rem;display:flex}@media (min-width:768px){.filter-pills{gap:.75rem}}.filter-pill{border:2px solid var(--p4p-gray-200);color:var(--p4p-gray-600);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:.5rem;padding:.625rem 1rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}@media (min-width:768px){.filter-pill{padding:.75rem 1.25rem;font-size:.9rem}}.filter-pill:hover:not(.active){border-color:var(--p4p-mauve);color:var(--p4p-mauve);background:#7a8efb0d}.filter-pill.active{background:var(--p4p-gradient-primary);color:#fff;border-color:#0000;box-shadow:0 4px 12px #7a8efb4d}.filter-pill:not(.active) .count{background:var(--p4p-gray-100);color:var(--p4p-gray-500)}.empty-state-card{border:2px dashed var(--p4p-gray-200);text-align:center;background:#fff;border-radius:24px;padding:4rem 2rem}.empty-icon svg{width:40px;height:40px;color:var(--p4p-gray-400)}.reservations-content{flex-direction:column;gap:2rem;display:flex}.salle-group{background:#fff;border:1px solid #7a8efb1a;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px #7a8efb1a}.salle-group-header{background:var(--p4p-gradient-primary);color:#fff;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}@media (min-width:768px){.salle-group-header{padding:1.5rem 2rem}}.salle-group-header h2{margin:0;font-size:1.25rem;font-weight:700}@media (min-width:768px){.salle-group-header h2{font-size:1.5rem}}.reservations-count{background:#fff3;border-radius:12px;padding:.375rem 1rem;font-size:.875rem;font-weight:600}.reservations-table-container{overflow-x:auto}.reservations-table{border-collapse:collapse;width:100%}.reservations-table thead{background:var(--p4p-gray-50);border-bottom:2px solid var(--p4p-gray-200)}.reservations-table th{text-align:left;color:var(--p4p-gray-700);text-transform:uppercase;letter-spacing:.05em;padding:1rem 1.25rem;font-size:.8rem;font-weight:700}@media (min-width:768px){.reservations-table th{padding:1rem 1.5rem;font-size:.875rem}}.reservations-table tbody tr{border-bottom:1px solid var(--p4p-gray-100);transition:all .2s}.reservations-table tbody tr:hover{background:#7a8efb0d}.reservations-table tbody tr:last-child{border-bottom:none}.reservations-table td{color:var(--p4p-gray-700);padding:1rem 1.25rem;font-size:.9rem}@media (min-width:768px){.reservations-table td{padding:1.25rem 1.5rem;font-size:.95rem}}.student-name{color:var(--p4p-gray-900);font-weight:700}.student-email{color:var(--p4p-gray-500);background:var(--p4p-gray-100);border-radius:6px;padding:.25rem .5rem;font-family:monospace;font-size:.85rem;display:inline-block}.reservation-date{color:var(--p4p-gray-900);text-transform:capitalize;font-weight:600}.creneaux-cell{max-width:300px}.creneaux-badges{flex-wrap:wrap;gap:.5rem;display:flex}.creneau-badge-table{border:2px solid var(--p4p-mauve);color:var(--p4p-mauve);white-space:nowrap;background:#7a8efb1a;border-radius:8px;padding:.375rem .75rem;font-size:.8rem;font-weight:700}@media (min-width:768px){.creneau-badge-table{border-radius:10px;padding:.5rem 1rem;font-size:.875rem}}.created-at{color:var(--p4p-gray-500);font-size:.85rem;font-weight:500}.mode-badge{background:var(--p4p-gray-100);color:var(--p4p-gray-700);text-transform:capitalize;border:2px solid var(--p4p-gray-200);border-radius:8px;padding:.375rem .75rem;font-size:.8rem;font-weight:700}@media (min-width:768px){.mode-badge{padding:.5rem 1rem;font-size:.875rem}}.delete-button{color:var(--p4p-rouge);border:2px solid var(--p4p-rouge);cursor:pointer;background:#f2565d1a;border-radius:10px;justify-content:center;align-items:center;padding:.5rem;transition:all .3s;display:inline-flex}.delete-button svg{width:18px;height:18px}@media (min-width:768px){.delete-button svg{width:20px;height:20px}}.delete-button:hover{background:var(--p4p-rouge);color:#fff;border-color:var(--p4p-rouge);transform:scale(1.1);box-shadow:0 4px 12px #f2565d4d}@media (max-width:768px){.salle-group-header{flex-direction:column;align-items:flex-start;gap:.75rem}.reservations-table-container{-webkit-overflow-scrolling:touch;overflow-x:scroll}.reservations-table{min-width:900px}.reservations-table th,.reservations-table td{padding:.875rem 1rem;font-size:.85rem}}@font-face{font-family:Nexa;src:local(Nexa Bold),local(Nexa-Bold);font-weight:700;font-style:normal}@font-face{font-family:Nexa;src:local(Nexa Regular),local(Nexa-Regular);font-weight:400;font-style:normal}@media (min-width:768px){.admin-controls{flex-direction:row;justify-content:space-between;align-items:center}}@media (max-width:768px){.admin-header{padding:1.5rem 1rem 3.5rem}.admin-header-title h1{font-size:1.75rem}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.admin-stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.admin-stat-icon{width:48px;height:48px}.admin-stat-info h3{font-size:1.75rem}.admin-content{padding:0 1rem 2rem}.admin-cards-grid{grid-template-columns:1fr}.admin-filters{justify-content:center;width:100%}.admin-filter-btn{padding:.5rem 1rem;font-size:.8rem}.admin-option-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.admin-back-btn span{display:none}.admin-back-btn{padding:.6rem}.admin-stats-grid{grid-template-columns:repeat(3,1fr)}.admin-stat-card{padding:1rem .5rem}.admin-stat-icon{width:40px;height:40px}.admin-stat-icon svg{width:20px;height:20px}.admin-stat-info h3{font-size:1.5rem}.admin-stat-info span{font-size:.65rem}}.admin-settings-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}@media (min-width:768px){.page-header{padding:2rem 3rem 4rem}}@media (min-width:768px){.header-top{margin-bottom:2rem}}@media (min-width:768px){.header-title h1{font-size:2.25rem}.header-title p{font-size:1.1rem}}@media (min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:-2.5rem;padding:0 3rem}}@media (min-width:768px){.stat-card{gap:1.25rem;padding:1.5rem}}@media (min-width:768px){.stat-icon{width:56px;height:56px}}@media (min-width:768px){.stat-icon svg{width:28px;height:28px}}.stat-icon.blocus{background:linear-gradient(135deg,var(--p4p-rouge)0%,#d63031 100%)}.stat-icon.normal{background:linear-gradient(135deg,var(--p4p-vert)0%,#1dd1a1 100%)}.stat-icon.reset{background:linear-gradient(135deg,var(--p4p-mauve)0%,#5a6fd6 100%)}.stat-icon.morning{background:linear-gradient(135deg,var(--p4p-orange)0%,#e67e22 100%)}.stat-icon.afternoon{background:linear-gradient(135deg,var(--p4p-bleu)0%,#1e9bd1 100%)}.stat-icon.evening{background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%)}@media (min-width:768px){.stat-info h3{font-size:1.5rem}}@media (min-width:768px){.stat-info span{font-size:.8rem}}.loading-state{text-align:center;background:#fff;border-radius:24px;max-width:400px;margin:2rem auto;padding:4rem 2rem;box-shadow:0 4px 20px #7a8efb1a}.settings-main{max-width:1000px;margin:0 auto;padding:2rem 1.5rem}@media (min-width:768px){.settings-main{padding:2.5rem 3rem}}.message-banner{border-radius:14px;margin-bottom:2rem;padding:1rem 1.5rem;font-weight:500;animation:.3s slideDown}.message-banner.success{color:#047857;border:2px solid var(--p4p-vert);background:#2bfcba33}.message-banner.error{color:#991b1b;border:2px solid var(--p4p-rouge);background:#f2565d1a}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.settings-card{background:#fff;border:1px solid #7a8efb1a;border-radius:24px;padding:1.5rem;box-shadow:0 4px 20px #7a8efb1a}@media (min-width:768px){.settings-card{padding:2.5rem}}.settings-section{border-bottom:1px solid var(--p4p-gray-200);margin-bottom:2rem;padding-bottom:1.5rem}@media (min-width:768px){.settings-section{margin-bottom:3rem;padding-bottom:2rem}}.settings-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.section-description{color:var(--p4p-gray-500);margin-bottom:1.5rem;font-size:.875rem}@media (min-width:768px){.section-title{font-size:1.5rem}.section-description{font-size:.95rem}}.mode-toggle-wrapper{grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem;display:grid}@media (min-width:640px){.mode-toggle-wrapper{grid-template-columns:1fr 1fr}}.mode-option{background:var(--p4p-white);border:2px solid var(--p4p-gray-200);cursor:pointer;border-radius:16px;align-items:center;gap:.75rem;padding:1rem;transition:all .3s;display:flex;position:relative}@media (min-width:640px){.mode-option{gap:1rem;padding:1.5rem}}.mode-option:hover{border-color:var(--p4p-mauve);transform:translateY(-2px);box-shadow:0 4px 12px #7a8efb1a}.mode-option.active{border-color:var(--p4p-mauve);background:#7a8efb14;box-shadow:0 8px 20px #7a8efb33}.mode-option-icon{flex-shrink:0;font-size:1.5rem;transition:transform .3s}.mode-option.active .mode-option-icon{transform:scale(1.1)}@media (min-width:640px){.mode-option-icon{font-size:2rem}.mode-option.active .mode-option-icon{transform:scale(1.2)}}.mode-option-content{flex:1}.mode-option-title{color:var(--p4p-gray-900);margin-bottom:.25rem;font-size:.95rem;font-weight:700}.mode-option.active .mode-option-title{color:var(--p4p-mauve)}.mode-option-subtitle{color:var(--p4p-gray-500);font-size:.8rem}.mode-option.active .mode-option-subtitle{color:var(--p4p-mauve)}@media (min-width:640px){.mode-option-title{font-size:1.1rem}.mode-option-subtitle{font-size:.875rem}}.mode-option-check{color:var(--p4p-mauve);font-size:1.25rem;font-weight:700;animation:.3s checkAppear}@media (min-width:640px){.mode-option-check{font-size:1.5rem}}@keyframes checkAppear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.input-group{margin-top:1.5rem}.input-group label{align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.label-icon{flex-shrink:0;font-size:1.5rem}.label-content{flex:1}.label-title{color:var(--p4p-gray-700);margin-bottom:.25rem;font-size:1rem;font-weight:600}.label-subtitle{color:var(--p4p-gray-500);font-size:.875rem}.time-input{border:2px solid var(--p4p-gray-200);width:100%;color:var(--p4p-gray-900);border-radius:14px;padding:.875rem;font-family:inherit;font-size:1rem;transition:all .2s}@media (min-width:640px){.time-input{padding:1rem;font-size:1.2rem}}.time-input:focus{border-color:var(--p4p-mauve);outline:none;box-shadow:0 0 0 4px #7a8efb26}.info-box{border-left:4px solid var(--p4p-orange);background:#fff83733;border-radius:12px;gap:.75rem;margin-top:1.5rem;padding:.875rem 1rem;display:flex}@media (min-width:640px){.info-box{gap:1rem;padding:1rem 1.5rem}}.info-box svg{width:24px;height:24px;color:var(--p4p-orange);flex-shrink:0}.info-content p{color:#92400e;margin:0;font-size:.8rem;line-height:1.5}@media (min-width:640px){.info-content p{font-size:.9rem;line-height:1.6}}.info-content strong{color:#78350f;font-weight:700}.info-box.warning{border-left-color:var(--p4p-rouge);background:#f2565d14}.info-box.warning svg{color:var(--p4p-rouge)}.info-box.warning p{color:#991b1b}.info-box.warning strong{color:#7f1d1d}.info-box.success{background:#22c55e1a;border-left-color:#22c55e}.info-box.success svg{color:#22c55e}.info-box.success p{color:#166534}.info-box.success strong{color:#14532d}.blocus-period-section{background:linear-gradient(135deg,#7a8efb0d 0%,#2cfffd0d 100%);border:2px solid #7a8efb33;border-radius:20px;padding:1.75rem!important}.blocus-period-inputs{flex-direction:column;gap:1rem;margin-top:1.25rem;display:flex}@media (min-width:640px){.blocus-period-inputs{flex-direction:row;align-items:flex-end;gap:1rem}}.date-input-group{flex-direction:column;flex:1;gap:.5rem;display:flex}.date-input-group label{color:var(--p4p-gray-700);align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.label-icon-small{font-size:1rem}.date-input{border:2px solid var(--p4p-gray-200);width:100%;color:var(--p4p-gray-900);background:#fff;border-radius:12px;padding:.875rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}.date-separator{color:var(--p4p-mauve);text-align:center;padding:.5rem 0;font-size:1.5rem;font-weight:700}@media (min-width:640px){.date-separator{margin-bottom:.875rem;padding:0}}.section-title .title-icon{margin-right:.5rem}.entry-time-group{background:var(--p4p-gray-50);border:2px solid var(--p4p-gray-200);border-radius:16px;margin-bottom:1rem;padding:1.25rem;transition:all .3s}.entry-time-group:hover{border-color:#7a8efb4d;box-shadow:0 2px 8px #7a8efb14}.entry-time-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.entry-time-icon{font-size:1.25rem}.entry-time-title{color:var(--p4p-gray-700);font-size:.95rem;font-weight:600}@media (min-width:640px){.entry-time-title{font-size:1.05rem}}.entry-time-inputs{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}@media (min-width:640px){.entry-time-inputs{flex-wrap:nowrap;gap:1rem}}.entry-time-field{flex-direction:column;flex:1;gap:.375rem;min-width:120px;display:flex}.entry-time-field label{color:var(--p4p-gray-500);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}.time-input-small{border:2px solid var(--p4p-gray-200);color:var(--p4p-gray-900);background:#fff;border-radius:10px;width:100%;padding:.625rem .75rem;font-family:inherit;font-size:.95rem;transition:all .2s}.time-input-small:focus{border-color:var(--p4p-mauve);outline:none;box-shadow:0 0 0 3px #7a8efb26}.entry-time-separator{color:var(--p4p-gray-400);align-self:flex-end;margin-bottom:.5rem;padding:.5rem 0;font-weight:600}@media (min-width:640px){.entry-time-separator{padding:0 .5rem}}.save-section{border-top:2px solid var(--p4p-gray-200);justify-content:flex-end;margin-top:2rem;padding-top:2rem;display:flex}.save-button{background:var(--p4p-gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.875rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .3s;display:flex}@media (min-width:640px){.save-button{gap:.75rem;width:auto;padding:1rem 2rem;font-size:1rem}}.save-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #7a8efb66}.save-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.save-button svg{width:20px;height:20px}.button-spinner{border:2px solid #fff;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}.maintenance-card{border:2px solid var(--p4p-gray-200);background:var(--p4p-white);margin-top:1.5rem}.maintenance-action{background:var(--p4p-gray-50);border-radius:12px;flex-direction:column;gap:1rem;margin-top:1rem;padding:1.25rem;display:flex}@media (min-width:640px){.maintenance-action{flex-direction:row;justify-content:space-between;align-items:center}}.maintenance-info{flex:1}.maintenance-info strong{color:var(--p4p-gray-800);margin-bottom:.375rem;font-size:1rem;font-weight:600;display:block}.maintenance-info p{color:var(--p4p-gray-500);margin:0;font-size:.875rem;line-height:1.4}.cleanup-button{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .3s;display:flex}@media (min-width:640px){.cleanup-button{padding:.875rem 1.5rem}}.cleanup-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ef444466}.cleanup-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.cleanup-button svg{width:18px;height:18px}@font-face{font-family:Nexa;src:local(Nexa Bold),local(Nexa-Bold);font-weight:700;font-style:normal}@font-face{font-family:Nexa;src:local(Nexa Regular),local(Nexa-Regular);font-weight:400;font-style:normal}@media (min-width:768px){.admin-controls{flex-direction:row;justify-content:space-between;align-items:center}}@media (max-width:768px){.admin-header{padding:1.5rem 1rem 3.5rem}.admin-header-title h1{font-size:1.75rem}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.admin-stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.admin-stat-icon{width:48px;height:48px}.admin-stat-info h3{font-size:1.75rem}.admin-content{padding:0 1rem 2rem}.admin-cards-grid{grid-template-columns:1fr}.admin-filters{justify-content:center;width:100%}.admin-filter-btn{padding:.5rem 1rem;font-size:.8rem}.admin-option-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.admin-back-btn span{display:none}.admin-back-btn{padding:.6rem}.admin-stats-grid{grid-template-columns:repeat(3,1fr)}.admin-stat-card{padding:1rem .5rem}.admin-stat-icon{width:40px;height:40px}.admin-stat-icon svg{width:20px;height:20px}.admin-stat-info h3{font-size:1.5rem}.admin-stat-info span{font-size:.65rem}}.admin-room-management-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}@media (min-width:768px){.page-header{padding:2rem 3rem 4rem}}@media (min-width:768px){.header-top{margin-bottom:2rem}}.back-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:12px;align-items:center;gap:.5rem;padding:.625rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}@media (min-width:768px){.header-title h1{font-size:2.25rem}.header-title p{font-size:1.1rem}}.stats-grid{z-index:2;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:1400px;margin-top:-2rem;margin-left:auto;margin-right:auto;padding:0 1.5rem;display:grid;position:relative}@media (min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:-2.5rem;padding:0 3rem}}@media (min-width:768px){.stat-card{gap:1.25rem;padding:1.5rem}}@media (min-width:768px){.stat-icon{width:56px;height:56px}}.stat-icon svg{color:#fff;width:24px;height:24px}@media (min-width:768px){.stat-icon svg{width:28px;height:28px}}.stat-icon.rooms{background:linear-gradient(135deg,var(--p4p-mauve)0%,#5a6fd6 100%)}.stat-icon.floor1{background:linear-gradient(135deg,var(--p4p-bleu)0%,#1e9bd1 100%)}.stat-icon.floor2{background:linear-gradient(135deg,var(--p4p-vert)0%,#1dd1a1 100%)}.stat-icon.floor3{background:linear-gradient(135deg,var(--p4p-orange)0%,#e67e22 100%)}@media (min-width:768px){.stat-info h3{font-size:1.75rem}}.stat-info span{color:var(--p4p-gray-500);font-size:.8rem;font-weight:500}@media (min-width:768px){.stat-info span{font-size:.875rem}}@media (min-width:768px){.page-content{padding:2.5rem 3rem}}.etage-section{margin-bottom:3rem}.etage-section:last-child{margin-bottom:0}.etage-section-title{color:var(--p4p-gray-900);border-bottom:3px solid var(--p4p-rose);margin-bottom:1.5rem;padding-bottom:.75rem;font-size:1.5rem;font-weight:700}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.room-card{box-shadow:var(--p4p-shadow-sm);background:#fff;border:2px solid #0000;border-radius:20px;transition:all .3s;overflow:hidden}.room-card.clickable{cursor:pointer}.room-card.clickable:hover{box-shadow:var(--p4p-shadow-lg);border-color:var(--p4p-mauve);transform:translateY(-4px)}.room-image-container{background:var(--p4p-gray-100);justify-content:center;align-items:center;width:100%;height:200px;display:flex;position:relative;overflow:hidden}.room-image-container:before{content:"";z-index:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239ca3af'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:48px;height:48px;position:absolute}.room-image{object-fit:cover;z-index:1;background:var(--p4p-gray-100);width:100%;height:100%;transition:transform .3s;display:block;position:relative}.room-card.clickable:hover .room-image{transform:scale(1.05)}.room-overlay{opacity:0;background:linear-gradient(#0000,#7a8efbe6);justify-content:center;align-items:flex-end;padding-bottom:1rem;transition:opacity .3s;display:flex;position:absolute;inset:0}.room-card.clickable:hover .room-overlay{opacity:1}.group-rooms-section{border-top:2px solid var(--p4p-gray-200);margin-top:2rem;padding-top:2rem}.group-badge{color:#fff;text-transform:uppercase;letter-spacing:.05em;z-index:3;background:linear-gradient(135deg,#f97316 0%,#eab308 100%);border-radius:6px;padding:.3rem .6rem;font-size:.7rem;font-weight:700;position:absolute;top:.75rem;left:.75rem}.view-details{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border-radius:20px;padding:.5rem 1rem;font-size:.95rem;font-weight:600}.room-info{padding:1.5rem}.room-details{flex-direction:column;gap:.75rem;display:flex}.room-detail{color:var(--p4p-gray-500);align-items:center;gap:.5rem;font-size:.95rem;display:flex}.room-detail svg{width:18px;height:18px;color:var(--p4p-rose)}.detail-actions{margin-bottom:2rem}.block-btn{background:var(--p4p-gradient-danger);color:#fff;cursor:pointer;border:none;border-radius:14px;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .3s;display:inline-flex;box-shadow:0 4px 12px #f2565d4d}.block-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #f2565d66}.block-btn svg{width:20px;height:20px}.loading-state p{color:var(--p4p-gray-500);margin:0;font-size:1rem}.detail-content{flex-direction:column;gap:2rem;display:flex}.section-card{background:#fff;border:1px solid #7a8efb1a;border-radius:24px;padding:2rem;box-shadow:0 4px 20px #7a8efb1a}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.section-title{color:var(--p4p-gray-900);align-items:center;gap:.75rem;margin:0;font-size:1.25rem;font-weight:700;display:flex}.section-title svg{width:24px;height:24px;color:var(--p4p-rose)}.blocked-list{flex-direction:column;gap:1rem;display:flex}.blocked-item{background:#f2565d0f;border:2px solid #f2565d33;border-radius:16px;justify-content:space-between;align-items:flex-start;padding:1.25rem;transition:all .2s;display:flex}.blocked-item:hover{border-color:var(--p4p-rouge);box-shadow:0 4px 12px #f2565d26}.blocked-item-info{flex:1}.blocked-date{color:#991b1b;margin-bottom:.5rem;font-size:1rem;font-weight:700}.blocked-slot{color:#b91c1c;font-weight:500}.blocked-message{color:#7f1d1d;background:#fff;border-radius:10px;margin-top:.5rem;padding:.75rem;font-size:.9rem;line-height:1.5}.unblock-btn{border:2px solid var(--p4p-rouge);color:var(--p4p-rouge);cursor:pointer;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-left:1rem;font-size:1rem;transition:all .2s;display:flex}.unblock-btn:hover{background:var(--p4p-gradient-danger);color:#fff;border-color:#0000;transform:scale(1.1)}.filter-group{align-items:center;gap:.75rem;display:flex}.date-filter{border:2px solid var(--p4p-gray-200);color:var(--p4p-gray-900);border-radius:10px;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;transition:all .2s}.date-filter:focus{border-color:var(--p4p-mauve);outline:none;box-shadow:0 0 0 3px #7a8efb26}.clear-filter{background:var(--p4p-gray-100);cursor:pointer;width:28px;height:28px;color:var(--p4p-gray-500);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;transition:all .2s;display:flex}.clear-filter:hover{background:var(--p4p-gray-200);color:var(--p4p-gray-900)}.date-group{border:2px solid var(--p4p-gray-200);border-radius:16px;overflow:hidden}.date-group-title{background:var(--p4p-gradient-primary);color:#fff;margin:0;padding:1rem 1.25rem;font-size:1rem;font-weight:700}.reservations-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;padding:1.25rem;display:grid}.reservation-item{background:var(--p4p-gray-50);border:2px solid var(--p4p-gray-200);border-radius:14px;padding:1rem;transition:all .2s}.reservation-item:hover{border-color:var(--p4p-mauve);background:#7a8efb0d}.reservation-slot{color:var(--p4p-mauve);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.5rem;font-size:.85rem;font-weight:700}.reservation-user{color:var(--p4p-gray-900);align-items:center;gap:.5rem;font-size:.95rem;font-weight:500;display:flex}.reservation-user svg{width:18px;height:18px;color:var(--p4p-gray-400)}.empty-state{text-align:center;color:var(--p4p-gray-400);padding:3rem}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#1a1a2eb3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{width:100%;max-width:480px;max-height:90vh;box-shadow:var(--p4p-shadow-xl);background:#fff;border-radius:24px;overflow-y:auto}.modal-header{background:var(--p4p-gradient-danger);border-radius:24px 24px 0 0;justify-content:space-between;align-items:center;padding:1.5rem 2rem;display:flex}.modal-close{cursor:pointer;color:#fff;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;transition:all .2s;display:flex}.modal-close:hover{background:#ffffff4d}.form-group:last-child{margin-bottom:0}.form-group input,.form-group select,.form-group textarea{border:2px solid var(--p4p-gray-200);width:100%;color:var(--p4p-gray-900);box-sizing:border-box;border-radius:14px;padding:.875rem;font-family:inherit;font-size:1rem;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--p4p-mauve);outline:none;box-shadow:0 0 0 4px #7a8efb26}.modal-actions{border-top:1px solid var(--p4p-gray-200);background:var(--p4p-gray-50);border-radius:0 0 24px 24px;gap:1rem;padding:1.5rem 2rem;display:flex}.secondary-button{color:var(--p4p-gray-600);border:2px solid var(--p4p-gray-200);cursor:pointer;background:#fff;border-radius:14px;flex:1;padding:.875rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .2s}.secondary-button:hover{background:var(--p4p-gray-50);color:var(--p4p-gray-900);border-color:var(--p4p-gray-300)}.danger-button{background:var(--p4p-gradient-danger);color:#fff;cursor:pointer;border:none;border-radius:14px;flex:1;padding:.875rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .3s;box-shadow:0 4px 12px #f2565d4d}.danger-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #f2565d66}.danger-button:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width:768px){.rooms-grid{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start}.filter-group{width:100%}.date-filter{flex:1}.reservations-grid{grid-template-columns:1fr}}@media (max-width:480px){.section-card{padding:1.25rem}.modal-body{padding:1.5rem}.modal-header,.modal-actions{padding:1.25rem 1.5rem}}@font-face{font-family:Nexa;src:local(Nexa Bold),local(Nexa-Bold);font-weight:700;font-style:normal}@font-face{font-family:Nexa;src:local(Nexa Regular),local(Nexa-Regular);font-weight:400;font-style:normal}@media (min-width:768px){.admin-controls{flex-direction:row;justify-content:space-between;align-items:center}}@media (max-width:768px){.admin-header{padding:1.5rem 1rem 3.5rem}.admin-header-title h1{font-size:1.75rem}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.admin-stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.admin-stat-icon{width:48px;height:48px}.admin-stat-info h3{font-size:1.75rem}.admin-content{padding:0 1rem 2rem}.admin-cards-grid{grid-template-columns:1fr}.admin-filters{justify-content:center;width:100%}.admin-filter-btn{padding:.5rem 1rem;font-size:.8rem}.admin-option-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.admin-back-btn span{display:none}.admin-back-btn{padding:.6rem}.admin-stats-grid{grid-template-columns:repeat(3,1fr)}.admin-stat-card{padding:1rem .5rem}.admin-stat-icon{width:40px;height:40px}.admin-stat-icon svg{width:20px;height:20px}.admin-stat-info h3{font-size:1.5rem}.admin-stat-info span{font-size:.65rem}}.admin-students-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.students-page-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);margin-bottom:-2rem;padding:2rem 1.5rem 4rem;position:relative}.students-page-header:after{content:"";background:linear-gradient(#f8faff 0%,#f0f4ff 100%);border-radius:30px 30px 0 0;height:60px;position:absolute;bottom:0;left:0;right:0}.back-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:12px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.back-button svg{width:18px;height:18px}.back-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:101;background:#fff3;border:1px solid #ffffff4d;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex;position:relative}.header-title{text-align:center}.header-title h1{color:#fff;text-shadow:0 2px 15px #00000026;letter-spacing:-.02em;margin:0 0 .5rem;font-size:2.25rem;font-weight:800}.header-title p{color:#ffffffe6;margin:0;font-size:1.05rem;font-weight:500}.stats-grid{z-index:2;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1400px;margin:0 auto 2rem;padding:0 1.5rem;display:grid;position:relative}.stat-card{background:#fff;border:1px solid #7a8efb1a;border-radius:20px;align-items:center;gap:1.25rem;padding:1.5rem;transition:all .3s;display:flex;box-shadow:0 4px 20px #7a8efb1f}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #7a8efb2e}.stat-icon{border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.stat-icon.total{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb)}.stat-icon.active{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.stat-icon.banned{color:#fff;background:linear-gradient(45deg,#fbdb47,#f2565d)}.stat-info h3{color:#1f2937;margin:0;font-size:2rem;font-weight:800;line-height:1}.stat-info span{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:600}.students-content{max-width:1400px;margin:0 auto;padding:0 1.5rem 2rem}.controls-bar{background:#fff;border:1px solid #7a8efb14;border-radius:20px;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.25rem;display:flex;box-shadow:0 2px 12px #7a8efb14}@media (min-width:768px){.controls-bar{flex-direction:row;justify-content:space-between;align-items:center}}.search-wrapper{flex:1;max-width:400px;position:relative}.search-wrapper svg{color:#9ca3af;pointer-events:none;width:20px;height:20px;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.search-wrapper input{background:#f9fafb;border:2px solid #e5e7eb;border-radius:14px;width:100%;padding:.9rem 1rem .9rem 3rem;font-family:inherit;font-size:.95rem;transition:all .2s}.search-wrapper input:focus{background:#fff;border-color:#7a8efb;outline:none;box-shadow:0 0 0 4px #7a8efb26}.search-wrapper input::placeholder{color:#9ca3af}.filter-pills{background:#f3f4f6;border-radius:14px;gap:.5rem;padding:.4rem;display:flex}.filter-pill{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.filter-pill:hover{color:#374151}.filter-pill.active{color:#7a8efb;background:#fff;box-shadow:0 2px 8px #00000014}.filter-pill .count{background:#e5e7eb;border-radius:8px;padding:.2rem .6rem;font-size:.75rem;font-weight:700}.filter-pill.active .count{color:#7a8efb;background:#7a8efb26}.students-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.25rem;display:grid}.student-card{background:#fff;border:2px solid #0000;border-radius:20px;padding:1.5rem;transition:all .3s;box-shadow:0 2px 12px #7a8efb14}.student-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #7a8efb26}.student-card.is-banned{background:linear-gradient(135deg,#fff5f5 0%,#ffe8e8 100%);border-color:#f2565d33}.student-card.is-banned:hover{border-color:#f2565d66}.card-header{align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.card-avatar{color:#fff;text-transform:uppercase;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.125rem;font-weight:700;display:flex}.student-card.is-banned .card-avatar{background:linear-gradient(45deg,#fbdb47,#f2565d)}.card-info .email{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;overflow:hidden}.card-status{text-transform:uppercase;letter-spacing:.03em;border-radius:20px;padding:.4rem .9rem;font-size:.75rem;font-weight:700}.card-status.active{color:#0d9488;background:#2bfcba33}.card-status.banned{color:#dc2626;background:#f2565d26}.ban-details{background:#f2565d14;border-radius:14px;margin-bottom:1rem;padding:1rem}.ban-reason{align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.ban-reason svg{color:#f2565d;flex-shrink:0;width:16px;height:16px;margin-top:2px}.ban-reason span{color:#991b1b;font-size:.875rem;line-height:1.4}.ban-timer{align-items:center;gap:.5rem;display:flex}.ban-timer svg{color:#dc2626;width:14px;height:14px}.ban-timer span{color:#dc2626;font-size:.8rem;font-weight:600}.card-footer{border-top:1px solid #f3f4f6;justify-content:flex-end;padding-top:1rem;display:flex}.student-card.is-banned .card-footer{border-top-color:#f2565d26}.card-action-btn{cursor:pointer;border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.card-action-btn svg{width:18px;height:18px}.card-action-btn.unban-btn{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.card-action-btn.unban-btn:hover{transform:scale(1.02);box-shadow:0 4px 15px #2bfcba66}.card-action-btn.ban-btn{color:#f2565d;background:#f2565d1a}.card-action-btn.ban-btn:hover{background:#f2565d33}.card-action-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.empty-state-card{text-align:center;background:#fff;border-radius:24px;padding:4rem 2rem;box-shadow:0 4px 20px #7a8efb14}.empty-icon svg{color:#9ca3af;width:45px;height:45px}.empty-state-card h3{color:#374151;margin:0 0 .5rem;font-size:1.25rem;font-weight:700}.empty-state-card p{color:#6b7280;margin:0;font-size:.95rem}.loading-state{text-align:center;padding:4rem 2rem}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#1a1a2eb3;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.ban-modal-content{background:#fff;border-radius:24px;width:100%;max-width:520px;max-height:90vh;animation:.3s slideUp;overflow-y:auto;box-shadow:0 25px 50px #00000040}.modal-header-ban{background:linear-gradient(45deg,#fbdb47,#f2565d);border-radius:24px 24px 0 0;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header-ban h2{color:#fff;align-items:center;gap:.75rem;margin:0;font-size:1.25rem;font-weight:700;display:flex}.modal-header-ban h2 svg{width:24px;height:24px}.modal-close-btn{cursor:pointer;color:#fff;background:#fff3;border:none;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s;display:flex}.modal-close-btn:hover{background:#ffffff4d}.modal-close-btn svg{width:20px;height:20px}.modal-body-ban{padding:1.5rem}.ban-target-info{background:#f9fafb;border-radius:14px;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;display:flex}.ban-target-avatar{color:#fff;text-transform:uppercase;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;font-size:1rem;font-weight:700;display:flex}.ban-target-details h4{color:#1f2937;margin:0 0 .25rem;font-size:1rem;font-weight:600}.ban-target-details p{color:#6b7280;margin:0;font-size:.85rem}.form-section{margin-bottom:1.5rem}.form-section label{color:#374151;margin-bottom:.75rem;font-size:.875rem;font-weight:600;display:block}.duration-option{color:#4b5563;cursor:pointer;text-align:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:.8rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s}.duration-option:hover{color:#7a8efb;border-color:#7a8efb}.duration-option.selected{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-color:#0000}.form-section textarea{resize:vertical;border:2px solid #e5e7eb;border-radius:14px;width:100%;min-height:100px;padding:1rem;font-family:inherit;font-size:.95rem;transition:all .2s}.form-section textarea:focus{border-color:#7a8efb;outline:none;box-shadow:0 0 0 4px #7a8efb26}.form-section textarea::placeholder{color:#9ca3af}.warning-banner{background:#fff83733;border-left:4px solid #fbdb47;border-radius:14px;gap:.75rem;padding:1rem;display:flex}.warning-banner svg{color:#b45309;flex-shrink:0;width:22px;height:22px}.warning-banner p{color:#92400e;margin:0;font-size:.875rem;line-height:1.5}.modal-footer-ban{border-top:1px solid #e5e7eb;gap:1rem;padding:1.5rem;display:flex}.btn-confirm-ban{color:#fff;cursor:pointer;background:linear-gradient(45deg,#fbdb47,#f2565d);border:none;border-radius:14px;flex:1;padding:.9rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s}.btn-confirm-ban:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #f2565d66}.btn-confirm-ban:disabled{opacity:.6;cursor:not-allowed}@media (max-width:768px){.students-page-header{padding:1.5rem 1rem 3.5rem}.header-title h1{font-size:1.75rem}.stats-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;padding:0 1rem}.stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.stat-icon{width:48px;height:48px}.stat-icon svg{width:24px;height:24px}.stat-info h3{font-size:1.75rem}.stat-info span{font-size:.75rem}.students-content{padding:0 1rem 2rem}.students-grid{grid-template-columns:1fr}.filter-pills{justify-content:center;width:100%}.filter-pill{padding:.5rem 1rem;font-size:.8rem}.duration-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.back-button span{display:none}.back-button{padding:.6rem}.card-header{flex-wrap:wrap}.card-status{margin-top:.5rem;margin-left:auto}.stat-card{padding:1rem .5rem}.stat-icon{width:40px;height:40px}.stat-icon svg{width:20px;height:20px}.stat-info h3{font-size:1.5rem}.stat-info span{font-size:.65rem}}.student-card.clickable{cursor:pointer}.student-card.clickable:hover{border-color:#7a8efb4d}.student-card.clickable.is-banned:hover{border-color:#f2565d66}.view-profile-hint{color:#7a8efb;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.view-profile-hint svg{width:18px;height:18px}.student-card:hover .view-profile-hint{color:#5a6edb}.student-card.is-banned .view-profile-hint{color:#f2565d}.student-card.is-banned:hover .view-profile-hint{color:#dc2626}.profile-modal-content{background:#fff;border-radius:24px;width:100%;max-width:480px;max-height:90vh;animation:.3s slideUp;overflow-y:auto;box-shadow:0 25px 50px #00000040}.profile-modal-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:24px 24px 0 0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.profile-modal-header h2{color:#fff;margin:0;font-size:1.15rem;font-weight:700}.profile-modal-body{padding:1.5rem}.profile-hero{text-align:center;border-bottom:1px solid #e5e7eb;margin-bottom:1.5rem;padding-bottom:1.5rem}.profile-avatar-large{color:#fff;text-transform:uppercase;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:20px;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 1rem;font-size:1.5rem;font-weight:700;display:flex;box-shadow:0 8px 25px #7a8efb4d}.profile-avatar-large.banned{background:linear-gradient(45deg,#fbdb47,#f2565d);box-shadow:0 8px 25px #f2565d4d}.profile-name{color:#1f2937;margin:0 0 .5rem;font-size:1.35rem;font-weight:700}.profile-status-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:20px;padding:.4rem 1rem;font-size:.8rem;font-weight:700;display:inline-block}.profile-status-badge.active{color:#0d9488;background:#2bfcba33}.profile-status-badge.banned{color:#dc2626;background:#f2565d26}.profile-info-grid{flex-direction:column;gap:.75rem;margin-bottom:1.5rem;display:flex}.profile-info-item{background:#f9fafb;border-radius:12px;align-items:center;gap:1rem;padding:.875rem 1rem;display:flex}.info-icon{background:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 2px 8px #0000000f}.info-icon svg{color:#7a8efb;width:20px;height:20px}.info-content{flex:1;min-width:0;overflow:hidden}.info-label{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem;font-size:.75rem;font-weight:600;display:block}.info-value{color:#1f2937;word-break:break-all;overflow-wrap:break-word;-webkit-user-select:all;user-select:all;cursor:text;font-size:.95rem;font-weight:600;display:block}.profile-info-item .info-value{word-break:break-all;overflow-wrap:break-word;white-space:normal;-webkit-user-select:all;user-select:all;cursor:text}.profile-ban-section{background:linear-gradient(135deg,#fff5f5 0%,#ffe8e8 100%);border:1px solid #f2565d33;border-radius:16px;padding:1.25rem}.profile-ban-section h4{color:#dc2626;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.95rem;font-weight:700;display:flex}.profile-ban-section h4 svg{width:20px;height:20px}.ban-info-grid{flex-direction:column;gap:.75rem;display:flex}.ban-info-item{justify-content:space-between;align-items:center;display:flex}.ban-info-label{color:#991b1b;font-size:.85rem;font-weight:500}.ban-info-value{color:#7f1d1d;font-size:.875rem;font-weight:600}.profile-modal-footer{background:#f9fafb;border-top:1px solid #e5e7eb;border-radius:0 0 24px 24px;gap:1rem;padding:1.25rem 1.5rem;display:flex}.btn-unban{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2bfcb1,#38b5fb);border:none;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.9rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.btn-unban:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #2bfcba66}.btn-unban:disabled{opacity:.6;cursor:not-allowed}.btn-unban svg{width:18px;height:18px}.btn-ban{color:#fff;cursor:pointer;background:linear-gradient(45deg,#fbdb47,#f2565d);border:none;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.9rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.btn-ban:hover{transform:translateY(-1px);box-shadow:0 4px 15px #f2565d66}.btn-ban svg{width:18px;height:18px}.btn-close-profile{color:#4b5563;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:14px;flex:1;padding:.9rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s}.btn-close-profile:hover{background:#f3f4f6;border-color:#d1d5db}@media (max-width:480px){.profile-modal-content{max-width:100%;max-height:95vh;margin:.5rem}.profile-avatar-large{width:70px;height:70px;font-size:1.25rem}.profile-name{font-size:1.2rem}.profile-modal-footer{flex-direction:column}}.card-badges{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}.card-role{text-transform:uppercase;letter-spacing:.03em;border-radius:12px;padding:.25rem .6rem;font-size:.7rem;font-weight:700;display:inline-block}.card-role.player{color:#0284c7;background:linear-gradient(135deg,#38b5fb33 0%,#7a8efb33 100%)}.card-role.capitaine{color:#b45309;background:linear-gradient(135deg,#fbbf2433 0%,#f59e0b33 100%)}.role-selector-section{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #7a8efb1a;border-radius:16px;margin-bottom:1.5rem;padding:1.25rem}.role-selector-section h4{color:#374151;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.9rem;font-weight:700;display:flex}.role-selector-section h4 svg{color:#7a8efb;width:20px;height:20px}.role-buttons{gap:.5rem;display:flex}.role-btn{color:#6b7280;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:12px;flex:1;padding:.75rem .5rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s}.role-btn:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.role-btn:disabled{opacity:.6;cursor:not-allowed}.role-btn.student.active{color:#374151;background:linear-gradient(135deg,#f3f4f6 0%,#e5e7eb 100%);border-color:#9ca3af}.role-btn.player.active{color:#0369a1;background:linear-gradient(135deg,#38b5fb33 0%,#7a8efb33 100%);border-color:#0284c7;box-shadow:0 2px 8px #38b5fb40}.role-btn.capitaine.active{color:#92400e;background:linear-gradient(135deg,#fbbf2440 0%,#f59e0b33 100%);border-color:#b45309;box-shadow:0 2px 8px #f59e0b40}.role-loading{text-align:center;color:#7a8efb;margin:.5rem 0 0;font-size:.8rem;font-weight:500}@media (max-width:480px){.role-buttons{flex-direction:column}.role-btn{padding:.6rem}}.profile-section-header{margin-bottom:1rem}.profile-section-header h4{color:#374151;align-items:center;gap:.5rem;margin:0;font-size:.95rem;font-weight:700;display:flex}.profile-section-header h4 svg{color:#7a8efb;width:20px;height:20px}.edit-hint{color:#9ca3af;margin-left:.5rem;font-size:.75rem;font-style:italic;font-weight:500}.profile-info-item.editable{transition:all .2s}.profile-info-item.editable:hover{background:#f3f4f6}.info-value.editable-value{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.edit-field-button{cursor:pointer;opacity:.4;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.edit-field-button:hover{opacity:1;background:#7a8efb1a}.edit-field-button svg{color:#7a8efb;width:14px;height:14px}.profile-info-item:hover .edit-field-button{opacity:.8}.inline-edit{align-items:center;gap:.5rem;width:100%;display:flex}.edit-input-inline{color:#1f2937;background:#fff;border:2px solid #7a8efb;border-radius:8px;flex:1;min-width:0;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;transition:all .2s}.edit-input-inline:focus{outline:none;box-shadow:0 0 0 3px #7a8efb33}select.edit-input-inline{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237A8EFB' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2rem}.inline-edit-actions{flex-shrink:0;gap:.25rem;display:flex}.inline-save,.inline-cancel{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.inline-save{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.inline-save:hover:not(:disabled){transform:scale(1.05);box-shadow:0 2px 8px #2bfcba66}.inline-save:disabled{opacity:.5;cursor:not-allowed}.inline-cancel{color:#f2565d;background:#f2565d1a}.inline-cancel:hover:not(:disabled){background:#f2565d33}.inline-cancel:disabled{opacity:.5;cursor:not-allowed}.inline-save svg,.inline-cancel svg{width:16px;height:16px}.profile-info-grid.readonly{opacity:.9}.profile-info-grid.readonly .profile-info-item{background:#f3f4f6}.profile-info-grid.readonly .info-icon{background:#e5e7eb}.profile-info-grid.readonly .info-icon svg{color:#9ca3af}@media (max-width:480px){.inline-edit{flex-wrap:wrap}.edit-input-inline{width:100%}.inline-edit-actions{justify-content:flex-end;width:100%;margin-top:.5rem}.edit-hint{margin-top:.25rem;margin-left:0;display:block}}:root{--p4p-vert:#2bfcb1;--p4p-bleu:#38b5fb;--p4p-turquoise:#2cfffd;--p4p-mauve:#7a8efb;--p4p-jaune:#fff837;--p4p-rose:#f479a5;--p4p-orange:#fbdb47;--p4p-rouge:#f2565d;--p4p-gradient-froid-1:linear-gradient(45deg,#2bfcb1,#38b5fb);--p4p-gradient-froid-2:linear-gradient(45deg,#2cfffd,#7a8efb);--p4p-gradient-chaud-1:linear-gradient(45deg,#fff837,#f479a5);--p4p-gradient-chaud-2:linear-gradient(45deg,#fbdb47,#f2565d);--p4p-gradient-primary:var(--p4p-gradient-froid-2);--p4p-gradient-success:var(--p4p-gradient-froid-1);--p4p-gradient-danger:var(--p4p-gradient-chaud-2);--p4p-gradient-warning:var(--p4p-gradient-chaud-1);--p4p-gradient-cool:var(--p4p-gradient-froid-2);--p4p-gradient-warm:var(--p4p-gradient-chaud-1);--p4p-dark:#1a1a2e;--p4p-dark-secondary:#16213e;--p4p-gray-900:#111827;--p4p-gray-800:#1f2937;--p4p-gray-700:#374151;--p4p-gray-600:#4b5563;--p4p-gray-500:#6b7280;--p4p-gray-400:#9ca3af;--p4p-gray-300:#d1d5db;--p4p-gray-200:#e5e7eb;--p4p-gray-100:#f3f4f6;--p4p-gray-50:#f9fafb;--p4p-white:#fff;--p4p-shadow-sm:0 2px 8px #7a8efb14;--p4p-shadow-md:0 4px 20px #7a8efb1f;--p4p-shadow-lg:0 8px 30px #7a8efb26;--p4p-shadow-xl:0 15px 50px #7a8efb33}@font-face{font-family:Nexa;src:local(Nexa Bold),local(Nexa-Bold);font-weight:700;font-style:normal}@font-face{font-family:Nexa;src:local(Nexa Regular),local(Nexa-Regular);font-weight:400;font-style:normal}.admin-page{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.admin-header{background:var(--p4p-gradient-primary);margin-bottom:-2rem;padding:2rem 1.5rem 4rem;position:relative}.admin-header:after{content:"";background:linear-gradient(#f8faff 0%,#f0f4ff 100%);border-radius:30px 30px 0 0;height:60px;position:absolute;bottom:0;left:0;right:0}.admin-header-content{z-index:1;max-width:1400px;margin:0 auto;position:relative}.admin-header-top{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.admin-back-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:12px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.admin-back-btn:hover{background:#ffffff4d;transform:translate(-3px)}.admin-back-btn svg{width:18px;height:18px}.admin-header-title{text-align:center}.admin-header-title h1{color:#fff;text-shadow:0 2px 15px #00000026;letter-spacing:-.02em;margin:0 0 .5rem;font-size:2.25rem;font-weight:800}.admin-header-title p{color:#ffffffe6;margin:0;font-size:1.05rem;font-weight:500}.admin-stats-grid{z-index:2;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;max-width:1400px;margin:0 auto 2rem;padding:0 1.5rem;display:grid;position:relative}.admin-stat-card{background:var(--p4p-white);box-shadow:var(--p4p-shadow-md);border:1px solid #7a8efb1a;border-radius:20px;align-items:center;gap:1.25rem;padding:1.5rem;transition:all .3s;display:flex}.admin-stat-card:hover{box-shadow:var(--p4p-shadow-lg);transform:translateY(-4px)}.admin-stat-icon{border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.admin-stat-icon svg{width:28px;height:28px}.admin-stat-icon.primary{background:var(--p4p-gradient-primary);color:#fff}.admin-stat-icon.success{background:var(--p4p-gradient-success);color:#fff}.admin-stat-icon.danger{background:var(--p4p-gradient-danger);color:#fff}.admin-stat-icon.warning{background:var(--p4p-gradient-warning);color:var(--p4p-gray-800)}.admin-stat-icon.cool{background:var(--p4p-gradient-cool);color:#fff}.admin-stat-info h3{color:var(--p4p-gray-900);margin:0;font-size:2rem;font-weight:800;line-height:1}.admin-stat-info span{color:var(--p4p-gray-500);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:600}.admin-content{max-width:1400px;margin:0 auto;padding:0 1.5rem 2rem}.admin-controls{background:var(--p4p-white);box-shadow:var(--p4p-shadow-sm);border:1px solid #7a8efb14;border-radius:20px;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.25rem;display:flex}@media (min-width:768px){.admin-controls{flex-direction:row;justify-content:space-between;align-items:center}}.admin-search{flex:1;max-width:400px;position:relative}.admin-search svg{width:20px;height:20px;color:var(--p4p-gray-400);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.admin-search input{border:2px solid var(--p4p-gray-200);background:var(--p4p-gray-50);border-radius:14px;width:100%;padding:.9rem 1rem .9rem 3rem;font-family:inherit;font-size:.95rem;transition:all .2s}.admin-search input:focus{border-color:var(--p4p-mauve);background:var(--p4p-white);outline:none;box-shadow:0 0 0 4px #7a8efb26}.admin-search input::placeholder{color:var(--p4p-gray-400)}.admin-filters{background:var(--p4p-gray-100);border-radius:14px;gap:.5rem;padding:.4rem;display:flex}.admin-filter-btn{color:var(--p4p-gray-500);cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.admin-filter-btn:hover{color:var(--p4p-gray-700)}.admin-filter-btn.active{background:var(--p4p-white);color:var(--p4p-mauve);box-shadow:0 2px 8px #00000014}.admin-filter-btn .badge{background:var(--p4p-gray-200);border-radius:8px;padding:.2rem .6rem;font-size:.75rem;font-weight:700}.admin-filter-btn.active .badge{color:var(--p4p-mauve);background:#7a8efb26}.admin-cards-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.25rem;display:grid}.admin-card{background:var(--p4p-white);box-shadow:var(--p4p-shadow-sm);border:2px solid #0000;border-radius:20px;padding:1.5rem;transition:all .3s}.admin-card:hover{box-shadow:var(--p4p-shadow-md);transform:translateY(-3px)}.admin-card.danger{background:linear-gradient(135deg,#fff5f5 0%,#ffe8e8 100%);border-color:#f2565d33}.admin-card.danger:hover{border-color:#f2565d66}.admin-card-header{align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.admin-card-avatar{background:var(--p4p-gradient-primary);color:#fff;text-transform:uppercase;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.125rem;font-weight:700;display:flex}.admin-card.danger .admin-card-avatar{background:var(--p4p-gradient-danger)}.admin-card-info{flex:1;min-width:0}.admin-card-info h3{color:var(--p4p-gray-900);white-space:nowrap;text-overflow:ellipsis;margin:0 0 .3rem;font-size:1.1rem;font-weight:700;overflow:hidden}.admin-card-info p{color:var(--p4p-gray-500);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.875rem;overflow:hidden}.admin-card-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:20px;padding:.4rem .9rem;font-size:.75rem;font-weight:700}.admin-card-badge.success{color:#0d9488;background:#2bfcba33}.admin-card-badge.danger{color:#dc2626;background:#f2565d26}.admin-card-badge.warning{color:#b45309;background:#fff8374d}.admin-card-badge.primary{color:var(--p4p-mauve);background:#7a8efb26}.admin-card-details{background:#7a8efb0f;border-radius:14px;margin-bottom:1rem;padding:1rem}.admin-card.danger .admin-card-details{background:#f2565d14}.admin-detail-row{align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.admin-detail-row:last-child{margin-bottom:0}.admin-detail-row svg{width:16px;height:16px;color:var(--p4p-mauve);flex-shrink:0;margin-top:2px}.admin-card.danger .admin-detail-row svg{color:var(--p4p-rouge)}.admin-detail-row span{color:var(--p4p-gray-700);font-size:.875rem;line-height:1.4}.admin-card.danger .admin-detail-row span{color:#991b1b}.admin-card-footer{border-top:1px solid var(--p4p-gray-100);justify-content:flex-end;padding-top:1rem;display:flex}.admin-card.danger .admin-card-footer{border-top-color:#f2565d26}.admin-btn{cursor:pointer;border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}.admin-btn svg{width:18px;height:18px}.admin-btn.primary{background:var(--p4p-gradient-primary);color:#fff}.admin-btn.primary:hover{transform:scale(1.02);box-shadow:0 4px 15px #7a8efb66}.admin-btn.success{background:var(--p4p-gradient-success);color:#fff}.admin-btn.success:hover{transform:scale(1.02);box-shadow:0 4px 15px #2bfcba66}.admin-btn.danger{color:var(--p4p-rouge);background:#f2565d1a}.admin-btn.danger:hover{background:#f2565d33}.admin-btn.danger-solid{background:var(--p4p-gradient-danger);color:#fff}.admin-btn.danger-solid:hover{transform:scale(1.02);box-shadow:0 4px 15px #f2565d66}.admin-btn.outline{background:var(--p4p-white);border:2px solid var(--p4p-gray-200);color:var(--p4p-gray-600)}.admin-btn.outline:hover{background:var(--p4p-gray-50);border-color:var(--p4p-gray-300)}.admin-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.admin-modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#1a1a2eb3;justify-content:center;align-items:center;padding:1rem;animation:.2s adminFadeIn;display:flex;position:fixed;inset:0}.admin-modal{background:var(--p4p-white);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--p4p-shadow-xl);border-radius:24px;animation:.3s adminSlideUp;overflow-y:auto}.admin-modal-header{background:var(--p4p-gradient-primary);border-radius:24px 24px 0 0;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.admin-modal-header.danger{background:var(--p4p-gradient-danger)}.admin-modal-header.success{background:var(--p4p-gradient-success)}.admin-modal-header h2{color:#fff;align-items:center;gap:.75rem;margin:0;font-size:1.25rem;font-weight:700;display:flex}.admin-modal-header h2 svg{width:24px;height:24px}.admin-modal-close{cursor:pointer;color:#fff;background:#fff3;border:none;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s;display:flex}.admin-modal-close:hover{background:#ffffff4d}.admin-modal-close svg{width:20px;height:20px}.admin-modal-body{padding:1.5rem}.admin-modal-footer{border-top:1px solid var(--p4p-gray-200);gap:1rem;padding:1.5rem;display:flex}.admin-modal-footer .admin-btn{flex:1}.admin-form-group{margin-bottom:1.5rem}.admin-form-group label{color:var(--p4p-gray-700);margin-bottom:.75rem;font-size:.875rem;font-weight:600;display:block}.admin-form-group input,.admin-form-group textarea,.admin-form-group select{border:2px solid var(--p4p-gray-200);background:var(--p4p-white);border-radius:14px;width:100%;padding:1rem;font-family:inherit;font-size:.95rem;transition:all .2s}.admin-form-group input:focus,.admin-form-group textarea:focus,.admin-form-group select:focus{border-color:var(--p4p-mauve);outline:none;box-shadow:0 0 0 4px #7a8efb26}.admin-form-group textarea{resize:vertical;min-height:100px}.admin-form-group input::placeholder,.admin-form-group textarea::placeholder{color:var(--p4p-gray-400)}.admin-option-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.admin-option-btn{border:2px solid var(--p4p-gray-200);background:var(--p4p-white);color:var(--p4p-gray-600);cursor:pointer;text-align:center;border-radius:12px;padding:.8rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s}.admin-option-btn:hover{border-color:var(--p4p-mauve);color:var(--p4p-mauve)}.admin-option-btn.selected{background:var(--p4p-gradient-primary);color:#fff;border-color:#0000}.admin-info-box{background:var(--p4p-gray-50);border-radius:14px;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;display:flex}.admin-info-box-avatar{background:var(--p4p-gradient-primary);color:#fff;text-transform:uppercase;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;font-size:1rem;font-weight:700;display:flex}.admin-info-box-details h4{color:var(--p4p-gray-900);margin:0 0 .25rem;font-size:1rem;font-weight:600}.admin-info-box-details p{color:var(--p4p-gray-500);margin:0;font-size:.85rem}.admin-warning{border-left:4px solid var(--p4p-orange);background:#fff83733;border-radius:14px;gap:.75rem;padding:1rem;display:flex}.admin-warning svg{color:#b45309;flex-shrink:0;width:22px;height:22px}.admin-warning p{color:#92400e;margin:0;font-size:.875rem;line-height:1.5}.admin-empty-state{background:var(--p4p-white);text-align:center;box-shadow:var(--p4p-shadow-sm);border-radius:24px;padding:4rem 2rem}.admin-empty-icon{background:linear-gradient(135deg,var(--p4p-gray-100)0%,var(--p4p-gray-200)100%);border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;margin:0 auto 1.5rem;display:flex}.admin-empty-icon svg{width:45px;height:45px;color:var(--p4p-gray-400)}.admin-empty-state h3{color:var(--p4p-gray-700);margin:0 0 .5rem;font-size:1.25rem;font-weight:700}.admin-empty-state p{color:var(--p4p-gray-500);margin:0;font-size:.95rem}.admin-loading{text-align:center;padding:4rem 2rem}.admin-loader{border:4px solid var(--p4p-gray-200);border-top-color:var(--p4p-mauve);border-radius:50%;width:56px;height:56px;margin:0 auto 1.5rem;animation:.8s linear infinite adminSpin}.admin-loading p{color:var(--p4p-gray-500);font-size:.95rem}.admin-table-container{background:var(--p4p-white);box-shadow:var(--p4p-shadow-sm);border:1px solid #7a8efb14;border-radius:20px;overflow:hidden}.admin-table{border-collapse:collapse;width:100%}.admin-table th{text-align:left;background:var(--p4p-gray-50);color:var(--p4p-gray-500);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--p4p-gray-200);padding:1rem 1.25rem;font-size:.75rem;font-weight:700}.admin-table td{border-bottom:1px solid var(--p4p-gray-100);vertical-align:middle;padding:1rem 1.25rem}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover{background:#7a8efb08}@media (max-width:768px){.admin-header{padding:1.5rem 1rem 3.5rem}.admin-header-title h1{font-size:1.75rem}.admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.admin-stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.admin-stat-icon{width:48px;height:48px}.admin-stat-info h3{font-size:1.75rem}.admin-content{padding:0 1rem 2rem}.admin-cards-grid{grid-template-columns:1fr}.admin-filters{justify-content:center;width:100%}.admin-filter-btn{padding:.5rem 1rem;font-size:.8rem}.admin-option-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.admin-back-btn span{display:none}.admin-back-btn{padding:.6rem}.admin-stats-grid{grid-template-columns:repeat(3,1fr)}.admin-stat-card{padding:1rem .5rem}.admin-stat-icon{width:40px;height:40px}.admin-stat-icon svg{width:20px;height:20px}.admin-stat-info h3{font-size:1.5rem}.admin-stat-info span{font-size:.65rem}}.admin-stats-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.admin-stats-container .page-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);margin-bottom:-2rem;padding:2rem 1.5rem 4rem;position:relative;overflow:hidden}.admin-stats-container .page-header:after{content:"";background:linear-gradient(#f8faff 0%,#f0f4ff 100%);border-radius:30px 30px 0 0;height:60px;position:absolute;bottom:0;left:0;right:0}.admin-stats-container .header-content{z-index:10;max-width:1400px;margin:0 auto;position:relative}.admin-stats-container .header-top{justify-content:flex-start;margin-bottom:1.5rem;display:flex}.admin-stats-container .back-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.admin-stats-container .back-button:hover{background:#ffffff4d;transform:scale(1.05)}.admin-stats-container .header-title{text-align:center}.admin-stats-container .header-title h1{color:#fff;text-shadow:0 2px 15px #00000026;margin:0 0 .5rem;font-size:2.25rem;font-weight:800}.admin-stats-container .header-title p{color:#ffffffe6;margin:0;font-size:1.05rem;font-weight:500}.admin-stats-container .stats-grid{z-index:2;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:1400px;margin:0 auto 2rem;padding:0 1.5rem;display:grid;position:relative}.admin-stats-container .stat-card{background:#fff;border:1px solid #7a8efb1a;border-radius:20px;align-items:center;gap:1.25rem;padding:1.5rem;transition:all .3s;display:flex;box-shadow:0 4px 20px #7a8efb1f}.admin-stats-container .stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #7a8efb2e}.admin-stats-container .stat-icon{border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.admin-stats-container .stat-icon svg{width:28px;height:28px}.admin-stats-container .stat-icon.total{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb)}.admin-stats-container .stat-icon.attendance{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.admin-stats-container .stat-icon.justified{color:#fff;background:linear-gradient(45deg,#f59e0b,#d97706)}.admin-stats-container .stat-icon.unjustified{color:#fff;background:linear-gradient(45deg,#ef4444,#dc2626)}.admin-stats-container .stat-info h3{color:#1f2937;margin:0;font-size:2rem;font-weight:800;line-height:1}.admin-stats-container .stat-info span{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:600}.admin-stats-container .stat-card.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.admin-stats-container .stat-card.clickable:hover{transform:translateY(-4px)scale(1.02);box-shadow:0 12px 35px #7a8efb38}.admin-stats-container .stat-card.clickable.active{background:linear-gradient(135deg,#7a8efb14 0%,#2cfffd14 100%);border:2px solid #7a8efb;box-shadow:0 8px 30px #7a8efb40}.admin-stats-container .stat-card.clickable.active .stat-info h3{color:#5b6edb}.active-filter-indicator{background:linear-gradient(135deg,#7a8efb1f 0%,#2cfffd1f 100%);border:1px solid #7a8efb4d;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1.25rem;display:flex}.active-filter-indicator .filter-label{color:#5b6edb;font-size:.9rem;font-weight:600}.active-filter-indicator .clear-filter-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #7a8efb4d;border-radius:8px;padding:.4rem .85rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:all .2s}.active-filter-indicator .clear-filter-btn:hover{color:#374151;background:#f3f4f6;border-color:#7a8efb80}.admin-stats-container .page-content{max-width:1400px;margin:0 auto;padding:0 1.5rem 2rem}.filters-section{background:#fff;border:1px solid #7a8efb14;border-radius:20px;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.5rem;display:flex;box-shadow:0 2px 12px #7a8efb14}.period-presets{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.presets-label{color:#374151;margin-right:.5rem;font-weight:600}.preset-btn{color:#6b7280;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s}.preset-btn:hover{color:#7a8efb;background:#7a8efb0d;border-color:#7a8efb}.date-filters{flex-wrap:wrap;gap:1rem;display:flex}.date-input-group{align-items:center;gap:.5rem;display:flex}.date-input-group label{color:#6b7280;font-size:.9rem;font-weight:600}.date-input{border:2px solid #e5e7eb;border-radius:10px;padding:.65rem 1rem;font-family:inherit;font-size:.9rem;transition:all .2s}.date-input:focus{border-color:#7a8efb;outline:none;box-shadow:0 0 0 4px #7a8efb26}.filters-section .search-wrapper{flex:1;min-width:250px;position:relative}.filters-section .search-wrapper svg{color:#9ca3af;pointer-events:none;width:20px;height:20px;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.filters-section .search-wrapper input{background:#f9fafb;border:2px solid #e5e7eb;border-radius:14px;width:100%;padding:.9rem 1rem .9rem 3rem;font-family:inherit;font-size:.95rem;transition:all .2s}.filters-section .search-wrapper input:focus{background:#fff;border-color:#7a8efb;outline:none;box-shadow:0 0 0 4px #7a8efb26}.stats-table-container{background:#fff;border:1px solid #7a8efb14;border-radius:20px;overflow:hidden;box-shadow:0 2px 12px #7a8efb14}.stats-table{border-collapse:collapse;width:100%}.stats-table thead{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%)}.stats-table th{text-align:left;color:#374151;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #7a8efb1a;padding:1rem 1.25rem;font-size:.85rem;font-weight:700}.stats-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.stats-table th.sortable:hover{color:#7a8efb;background:#7a8efb0d}.stats-table th.center,.stats-table td.center{text-align:center}.stats-table tbody tr{transition:all .2s}.stats-table tbody tr:hover{background:#7a8efb08}.stats-table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:1rem 1.25rem}.stats-table tbody tr:last-child td{border-bottom:none}.student-cell{min-width:250px}.student-info{align-items:center;gap:.875rem;display:flex}.student-avatar{color:#fff;text-transform:uppercase;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:12px;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;font-size:.9rem;font-weight:700;display:flex}.student-details{flex-direction:column;gap:.2rem;min-width:0;display:flex}.student-name{color:#1f2937;font-size:.95rem;font-weight:600}.student-email{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.stat-badge{border-radius:8px;justify-content:center;align-items:center;min-width:32px;padding:.35rem .75rem;font-size:.875rem;font-weight:700;display:inline-flex}.stat-badge.total{color:#5b6edb;background:#7a8efb26}.stat-badge.attendance{color:#0d9488;background:#2bfcb126}.stat-badge.justified{color:#b45309;background:#f59e0b26}.stat-badge.unjustified{color:#b91c1c;background:#ef44441a}.stat-badge.unjustified.has-issues{background:#ef444433;font-weight:800}.stat-badge.pending{color:#6b7280;background:#9ca3af26}.reliability-badge{border-radius:20px;justify-content:center;align-items:center;min-width:48px;padding:.35rem .75rem;font-size:.875rem;font-weight:700;display:inline-flex}.reliability-badge.excellent{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.reliability-badge.good{color:#0d9488;background:#2bfcb133}.reliability-badge.warning{color:#b45309;background:#f59e0b33}.reliability-badge.poor{color:#b91c1c;background:#ef444433}.no-data{color:#9ca3af;font-style:italic}.empty-row{text-align:center;color:#6b7280;font-style:italic;padding:3rem 1rem!important}.legend-section{background:#fff;border:1px solid #7a8efb14;border-radius:20px;margin-top:1.5rem;padding:1.5rem;box-shadow:0 2px 12px #7a8efb14}.legend-section h4{color:#374151;margin:0 0 1rem;font-size:1rem;font-weight:700}.legend-items{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem;display:grid}.legend-item{color:#6b7280;align-items:center;gap:.75rem;font-size:.875rem;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.legend-dot.attendance{background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.legend-dot.justified{background:linear-gradient(45deg,#f59e0b,#d97706)}.legend-dot.unjustified{background:linear-gradient(45deg,#ef4444,#dc2626)}.legend-dot.pending{background:#9ca3af}.loading-state{text-align:center;background:#fff;border-radius:20px;padding:4rem 2rem;box-shadow:0 2px 12px #7a8efb14}.loader{border:4px solid #e5e7eb;border-top-color:#7a8efb;border-radius:50%;width:56px;height:56px;margin:0 auto 1.5rem;animation:.8s linear infinite spin}.loading-state p{color:#6b7280;font-size:.95rem}@media (max-width:1024px){.admin-stats-container .stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.admin-stats-container .page-header{padding:1.5rem 1rem 3.5rem}.admin-stats-container .header-title h1{font-size:1.75rem}.admin-stats-container .stats-grid{gap:.75rem;padding:0 1rem}.admin-stats-container .stat-card{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.admin-stats-container .stat-icon{width:48px;height:48px}.admin-stats-container .stat-info h3{font-size:1.75rem}.admin-stats-container .page-content{padding:0 1rem 2rem}.filters-section{padding:1rem}.date-filters{flex-direction:column;gap:.75rem}.date-input-group{width:100%}.date-input{flex:1}.stats-table-container{overflow-x:auto}.stats-table{min-width:800px}.student-cell{min-width:200px}}@media (max-width:480px){.admin-stats-container .stats-grid{grid-template-columns:1fr}.admin-stats-container .stat-card{text-align:left;flex-direction:row}.period-presets{justify-content:center}.preset-btn{padding:.4rem .75rem;font-size:.8rem}.legend-items{grid-template-columns:1fr}}.clickable-row{cursor:pointer}.clickable-row:hover{background:#7a8efb14!important}.ban-indicator{margin-left:.5rem;font-size:.9rem}.modal-content{background:#fff;border-radius:24px;width:100%;max-width:700px;max-height:90vh;position:relative;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.modal-close{cursor:pointer;color:#6b7280;z-index:10;background:#f3f4f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.5rem;transition:all .2s;display:flex;position:absolute;top:1rem;right:1rem}.modal-close:hover{color:#374151;background:#e5e7eb}.student-detail-modal .modal-header{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border-bottom:1px solid #7a8efb1a;align-items:center;gap:1.25rem;padding:2rem;display:flex}.student-avatar.large{border-radius:18px;width:72px;min-width:72px;height:72px;font-size:1.5rem}.modal-header-info h2{color:#1f2937;margin:0 0 .25rem;font-size:1.5rem;font-weight:700}.modal-header-info p{color:#6b7280;margin:0;font-size:.95rem}.sanction-indicators{border-bottom:1px solid #f3f4f6;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;padding:1.5rem 2rem;display:grid}.sanction-card{text-align:center;background:#f9fafb;border-radius:16px;padding:1.25rem}.sanction-card.banned{background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1px solid #fecaca}.sanction-label{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.8rem;font-weight:600}.sanction-value{color:#1f2937;font-size:1.5rem;font-weight:800}.sanction-card.banned .sanction-value{color:#dc2626;font-size:1rem}.sanction-warning{color:#dc2626;margin-top:.5rem;font-size:.75rem;font-weight:600;display:block}.ban-until{color:#b91c1c;margin-top:.5rem;font-size:.8rem;font-weight:500;display:block}.ban-reason{color:#6b7280;margin-top:.5rem;font-size:.75rem;font-style:italic;display:block}.admin-actions{border-bottom:1px solid #f3f4f6;flex-wrap:wrap;gap:1rem;padding:1.5rem 2rem;display:flex}.action-btn{cursor:pointer;border:none;border-radius:12px;padding:.75rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-btn.remove-ban{color:#fff;background:linear-gradient(45deg,#2bfcb1,#38b5fb)}.action-btn.remove-ban:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #2bfcb166}.action-btn.reset-counters{color:#374151;background:#f3f4f6;border:2px solid #e5e7eb}.action-btn.reset-counters:hover:not(:disabled){background:#e5e7eb;border-color:#d1d5db}.reservations-section{padding:1.5rem 2rem 2rem}.reservations-section h3{color:#374151;margin:0 0 1rem;font-size:1.1rem;font-weight:700}.reservations-list{flex-direction:column;gap:.75rem;max-height:350px;display:flex;overflow-y:auto}.reservation-item{background:#f9fafb;border-left:4px solid #9ca3af;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.reservation-item.status-confirmed{background:#38b5fb0d;border-left-color:#38b5fb}.reservation-item.status-cancelled{background:#f59e0b0d;border-left-color:#f59e0b}.reservation-item.status-no-show{background:#ef44440d;border-left-color:#ef4444}.reservation-info{flex-wrap:wrap;flex:1;align-items:center;gap:1.5rem;min-width:0;display:flex}.reservation-date{color:#1f2937;min-width:120px;font-weight:600}.reservation-details{color:#6b7280;gap:.75rem;font-size:.9rem;display:flex}.reservation-details .slot{font-weight:500}.reservation-details .room{color:#9ca3af}.reservation-status{border-radius:8px;align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.85rem;font-weight:600;display:flex}.reservation-status.status-confirmed{color:#0284c7;background:#38b5fb26}.reservation-status.status-cancelled{color:#b45309;background:#f59e0b26}.reservation-status.status-no-show{color:#dc2626;background:#ef444426}.scanned-badge{color:#065f46;background:#2bfcb1;border-radius:6px;padding:.2rem .5rem;font-size:.7rem;font-weight:700}.reservation-actions{flex-shrink:0;gap:.5rem;display:flex}.mini-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;transition:all .2s;display:flex}.mini-btn:disabled{opacity:.5;cursor:not-allowed}.mini-btn.confirm{color:#059669;background:#2bfcb133}.mini-btn.confirm:hover:not(:disabled){background:#2bfcb166}.mini-btn.cancel{color:#b45309;background:#f59e0b33}.mini-btn.cancel:hover:not(:disabled){background:#f59e0b66}.mini-btn.noshow{color:#dc2626;background:#ef444433}.mini-btn.noshow:hover:not(:disabled){background:#ef444466}.mini-btn.delete{color:#6b7280;background:#6b72801a}.mini-btn.delete:hover:not(:disabled){color:#dc2626;background:#ef444433}.no-reservations{text-align:center;color:#9ca3af;padding:2rem 0;font-style:italic}.loading-state.small{padding:2rem}.loading-state.small .loader{width:40px;height:40px}@media (max-width:640px){.modal-content{border-radius:20px 20px 0 0;max-height:95vh;margin-top:auto}.student-detail-modal .modal-header{padding:1.5rem}.student-avatar.large{width:56px;min-width:56px;height:56px;font-size:1.25rem}.modal-header-info h2{font-size:1.25rem}.sanction-indicators{grid-template-columns:1fr 1fr;padding:1rem 1.5rem}.sanction-card.banned{grid-column:1/-1}.admin-actions{padding:1rem 1.5rem}.reservations-section{padding:1rem 1.5rem 1.5rem}.reservation-info{flex-direction:column;align-items:flex-start;gap:.5rem}.reservation-item{flex-direction:column;align-items:stretch}.reservation-actions{border-top:1px solid #e5e7eb;justify-content:flex-end;margin-top:.75rem;padding-top:.75rem}}.admin-member-stats{color:#e0e0e0;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);min-height:100vh;padding:20px}.admin-member-stats .loading{color:#a0a0a0;justify-content:center;align-items:center;min-height:50vh;font-size:1.2rem;display:flex}.stats-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.stats-header-left{align-items:center;gap:16px;display:flex}.stats-header-left h1{color:#fff;margin:0;font-size:1.8rem}.stats-header-right{gap:12px;display:flex}.back-button{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;padding:10px 16px;transition:all .2s}.back-button:hover{background:#fff3}.export-button{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-weight:500;transition:all .2s;display:flex}.export-button.csv{color:#fff;background:linear-gradient(135deg,#2e7d32 0%,#4caf50 100%)}.export-button.excel{color:#fff;background:linear-gradient(135deg,#1565c0 0%,#42a5f5 100%)}.export-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.stats-filters{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:20px;display:flex}.filter-group{flex-direction:column;gap:6px;min-width:150px;display:flex}.filter-group label{color:#a0a0a0;font-size:.85rem;font-weight:500}.filter-group select,.filter-group input{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;padding:10px 12px;font-size:.95rem}.filter-group select:hover,.filter-group input:hover{border-color:#fff6}.filter-group select:focus,.filter-group input:focus{border-color:#6366f1;outline:none}.filter-group select option{color:#fff;background:#1a1a2e}.stats-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px;display:grid}.summary-card{text-align:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;padding:20px;transition:all .2s}.summary-card:hover{background:#ffffff14;transform:translateY(-2px)}.summary-card .summary-value{color:#fff;margin-bottom:4px;font-size:2rem;font-weight:700;display:block}.summary-card .summary-label{color:#a0a0a0;font-size:.9rem}.summary-card.new .summary-value{color:#4ade80}.summary-card.existing .summary-value{color:#60a5fa}.summary-card.age .summary-value{color:#f472b6}.stats-tabs{background:#ffffff08;border-radius:12px;flex-wrap:wrap;gap:8px;margin-bottom:24px;padding:8px;display:flex}.tab-button{color:#a0a0a0;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:12px 20px;font-size:.95rem;transition:all .2s;display:flex}.tab-button:hover{color:#fff;background:#ffffff1a}.tab-button.active{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%)}.tab-icon{font-size:1.1rem}.stats-content{background:#ffffff08;border:1px solid #ffffff1a;border-radius:12px;padding:24px}.chart-section{margin-bottom:32px}.chart-section:last-child{margin-bottom:0}.chart-section h2{color:#fff;border-bottom:1px solid #ffffff1a;margin-bottom:16px;padding-bottom:8px;font-size:1.3rem}.chart-section h3{color:#d0d0d0;margin-bottom:12px;font-size:1.1rem}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:28px;display:grid}.chart-container{background:#ffffff0d;border:1px solid #ffffff26;border-radius:16px;padding:24px;transition:all .3s;box-shadow:0 4px 20px #0000004d,inset 0 1px #ffffff1a}.chart-container h3{color:#d0d0d0;margin-bottom:16px;font-size:1rem}.chart-wrapper{width:100%;height:300px}.chart-wrapper.tall{height:400px}.chart-wrapper.short{height:250px}.stats-cards-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{text-align:center;background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;padding:16px}.stat-card .stat-value{color:#fff;margin-bottom:4px;font-size:1.8rem;font-weight:700;display:block}.stat-card .stat-label{color:#a0a0a0;font-size:.85rem}.stat-card.positive .stat-value{color:#4ade80}.stat-card.negative .stat-value{color:#f87171}.stat-card.neutral .stat-value{color:#fbbf24}.stat-card.primary .stat-value{color:#60a5fa}.confidence-comparison{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}.confidence-box{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;padding:20px}.confidence-box h3{color:#fff;margin-bottom:16px;font-size:1.1rem}.confidence-metric{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.confidence-metric:last-child{border-bottom:none}.confidence-metric .metric-label{color:#a0a0a0;font-size:.95rem}.confidence-metric .metric-value{font-size:1.5rem;font-weight:700}.confidence-metric .metric-value.before{color:#fbbf24}.confidence-metric .metric-value.after{color:#4ade80}.confidence-metric .metric-value.evolution{color:#60a5fa}.evolution-badge{border-radius:20px;align-items:center;gap:4px;padding:6px 12px;font-size:1rem;font-weight:600;display:inline-flex}.evolution-badge.positive{color:#4ade80;background:#4ade8033}.evolution-badge.negative{color:#f87171;background:#f8717133}.evolution-badge.neutral{color:#fbbf24;background:#fbbf2433}.no-data{text-align:center;color:#a0a0a0;padding:40px}.no-data-icon{opacity:.5;margin-bottom:16px;font-size:3rem}.no-data p{font-size:1.1rem}.cross-analysis-selector{background:#ffffff08;border-radius:10px;flex-wrap:wrap;gap:12px;margin-bottom:24px;padding:16px;display:flex}.cross-analysis-selector label{color:#a0a0a0;margin-right:8px}.cross-analysis-selector select{color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;padding:8px 12px;font-size:.9rem}@media (max-width:768px){.admin-member-stats{padding:12px}.stats-header{flex-direction:column;align-items:flex-start}.stats-header-left{flex-direction:column;align-items:flex-start;gap:12px}.stats-header-left h1{font-size:1.4rem}.stats-filters{flex-direction:column}.filter-group{width:100%}.stats-tabs{flex-wrap:nowrap;padding-bottom:8px;overflow-x:auto}.tab-button{white-space:nowrap;padding:10px 16px}.tab-label{display:none}.chart-grid,.confidence-comparison{grid-template-columns:1fr}}.recharts-default-legend{margin-top:16px!important}.recharts-legend-item-text{color:#d0d0d0!important}.recharts-cartesian-axis-tick-value{fill:#a0a0a0!important}.recharts-tooltip-wrapper{outline:none}.recharts-default-tooltip{background:#1a1a2ef2!important;border:1px solid #fff3!important;border-radius:8px!important}.recharts-tooltip-label{color:#fff!important;font-weight:600!important}.recharts-tooltip-item{color:#d0d0d0!important}.chart-container.clickable{cursor:pointer;transition:all .2s}.chart-container.clickable:hover{background:#ffffff0f;border-color:#6366f166;transform:translateY(-2px)}.chart-container.clickable:after{content:"Cliquer pour agrandir";color:#6366f1;opacity:0;font-size:.75rem;transition:opacity .2s;position:absolute;bottom:8px;right:12px}.chart-container.clickable:hover:after{opacity:1}.chart-container{position:relative}.stat-modal-backdrop{z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.stat-modal{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;width:95%;max-width:95vw;max-height:90vh;animation:.3s slideUp;display:flex;box-shadow:0 20px 60px #00000080}.stat-modal-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.stat-modal-header h2{color:#fff;margin:0;font-size:1.5rem}.stat-modal-header-actions{align-items:center;gap:12px;display:flex}.stat-modal-toggle-panel{color:#fff;cursor:pointer;background:#6366f133;border:1px solid #6366f166;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:.9rem;transition:all .2s;display:flex}.stat-modal-toggle-panel:hover{background:#6366f14d;transform:translateY(-1px)}.stat-modal-toggle-panel svg{flex-shrink:0}.stat-modal-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;transition:all .2s;display:flex}.stat-modal-close:hover{background:#fff3;transform:scale(1.05)}.stat-modal.light-mode .stat-modal-toggle-panel{color:#4f46e5;background:#6366f11a;border:1px solid #6366f14d}.stat-modal.light-mode .stat-modal-toggle-panel:hover{background:#6366f133}.stat-modal-content{flex:1;grid-template-columns:1fr 8px 400px;gap:0;padding:24px;display:grid;overflow:hidden}.stat-modal-divider{cursor:col-resize;background:0 0;justify-content:center;align-items:center;margin:0 8px;transition:background .2s;display:flex}.stat-modal-divider:hover,.stat-modal-divider.dragging{background:#6366f11a}.stat-modal-divider-handle{background:#fff3;border-radius:4px;width:4px;height:60px;transition:all .2s}.stat-modal-divider:hover .stat-modal-divider-handle,.stat-modal-divider.dragging .stat-modal-divider-handle{background:#6366f1;height:80px}.stat-modal.light-mode .stat-modal-divider-handle{background:#00000026}.stat-modal.light-mode .stat-modal-divider:hover .stat-modal-divider-handle,.stat-modal.light-mode .stat-modal-divider.dragging .stat-modal-divider-handle{background:#6366f1}.stat-modal-chart{flex-direction:column;display:flex}.stat-modal-chart-wrapper{flex:1;min-height:400px}.stat-modal-hint{text-align:center;color:#a0a0a0;margin-top:12px;font-size:.85rem}.stat-modal-users{background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;padding:20px;display:flex;overflow:hidden}.stat-modal-users-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.stat-modal-users-header h3{color:#fff;margin:0;font-size:1.1rem}.stat-modal-count{color:#a0a0a0;margin-left:8px;font-size:.9rem;font-weight:400}.stat-modal-clear{color:#f87171;cursor:pointer;background:#f8717133;border:none;border-radius:6px;padding:6px 12px;font-size:.8rem;transition:all .2s}.stat-modal-clear:hover{background:#f871714d}.stat-modal-search{margin-bottom:16px;position:relative}.stat-modal-search input{color:#fff;box-sizing:border-box;background:#ffffff0d;border:1px solid #ffffff26;border-radius:8px;width:100%;padding:12px 40px 12px 16px;font-size:.95rem}.stat-modal-search input:focus{border-color:#6366f1;outline:none}.stat-modal-search input::placeholder{color:gray}.stat-modal-search-clear{color:#a0a0a0;cursor:pointer;background:#ffffff1a;border:none;border-radius:4px;width:24px;height:24px;font-size:.8rem;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.stat-modal-search-clear:hover{color:#fff;background:#fff3}.stat-modal-users-list{flex:1;margin:0 -8px;padding:0 8px;overflow-y:auto}.stat-modal-user-item{background:#ffffff08;border-radius:8px;align-items:center;gap:12px;margin-bottom:8px;padding:12px;transition:all .2s;display:flex}.stat-modal-user-item:hover{background:#ffffff0f}.stat-modal-user-avatar{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.85rem;font-weight:600;display:flex}.stat-modal-user-info{flex:1;min-width:0}.stat-modal-user-name{color:#fff;margin-bottom:2px;font-weight:500;display:block}.stat-modal-user-email{color:gray;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;display:block;overflow:hidden}.stat-modal-user-badge{color:#818cf8;background:#6366f133;border-radius:12px;flex-shrink:0;padding:4px 10px;font-size:.75rem;font-weight:500}.stat-modal-no-results{text-align:center;color:gray;padding:40px 20px;font-size:.95rem}.stat-modal-no-selection{text-align:center;color:gray;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.stat-modal-no-selection-icon{opacity:.5;margin-bottom:16px;font-size:3rem}.stat-modal-no-selection p{max-width:250px;line-height:1.5}.stat-modal-summary{border-top:1px solid #ffffff1a;flex-wrap:wrap;gap:12px;max-height:150px;padding:16px 24px 24px;display:flex;overflow-y:auto}.stat-modal-summary-item{cursor:pointer;background:#ffffff0d;border-left:4px solid #6366f1;border-radius:8px;min-width:120px;padding:10px 16px;transition:all .2s}.stat-modal-summary-item:hover{background:#ffffff14}.stat-modal-summary-item.active{background:#6366f133;border-color:#6366f1}.stat-modal-summary-value{color:#fff;font-size:1.3rem;font-weight:700;display:block}.stat-modal-summary-label{color:#a0a0a0;white-space:nowrap;text-overflow:ellipsis;max-width:150px;margin-top:2px;font-size:.8rem;display:block;overflow:hidden}.stat-modal-summary-percent{color:#6366f1;margin-top:2px;font-size:.75rem;display:block}@media (max-width:1024px){.stat-modal-content{grid-template-columns:1fr!important}.stat-modal-divider{display:none}.stat-modal-users{max-height:300px}}@media (max-width:768px){.stat-modal{border-radius:0;width:100%;max-height:100vh}.stat-modal-content{padding:16px}.stat-modal-chart-wrapper{min-height:300px}.stat-modal-summary{flex-wrap:nowrap;padding-bottom:16px;overflow-x:auto}.stat-modal-summary-item{flex-shrink:0}}.stat-modal-user-item{flex-wrap:wrap;position:relative}.stat-modal-edit-btn{color:#fff;cursor:pointer;background:#6366f133;border:1px solid #6366f166;border-radius:6px;flex-shrink:0;margin-left:8px;padding:6px 10px;font-size:.85rem;transition:all .2s}.stat-modal-edit-btn:hover{background:#6366f166;transform:scale(1.05)}.stat-modal-edit-panel{background:#1a1a2ef2;border:1px solid #6366f14d;border-radius:10px;width:100%;margin-top:12px;padding:16px;animation:.2s slideDown}.stat-modal-edit-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.stat-modal-edit-header span{color:#fff;font-size:.95rem;font-weight:600}.stat-modal-edit-header button{color:#a0a0a0;cursor:pointer;background:0 0;border:none;padding:4px;font-size:1.1rem;transition:color .2s}.stat-modal-edit-header button:hover{color:#fff}.stat-modal-edit-options{flex-direction:column;gap:10px;display:flex}.stat-modal-edit-label{color:#d0d0d0;cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.stat-modal-edit-label input[type=radio]{accent-color:#6366f1;width:16px;height:16px}.stat-modal-edit-select{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:8px;width:100%;margin-top:4px;padding:10px 12px;font-size:.9rem}.stat-modal-edit-select:focus{border-color:#6366f1;outline:none}.stat-modal-edit-select option{color:#fff;background:#1a1a2e}.stat-modal-edit-input{color:#fff;background:#ffffff14;border:1px solid #fff3;border-radius:8px;width:100%;margin-top:4px;padding:10px 12px;font-size:.9rem}.stat-modal-edit-input:focus{border-color:#6366f1;outline:none}.stat-modal-edit-input::placeholder{color:gray}.stat-modal-edit-error{color:#f87171;background:#ef444426;border:1px solid #ef44444d;border-radius:6px;margin-top:10px;padding:8px 12px;font-size:.85rem}.stat-modal-edit-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.stat-modal-edit-cancel{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;padding:8px 16px;font-size:.85rem;transition:all .2s}.stat-modal-edit-cancel:hover{background:#fff3}.stat-modal-edit-cancel:disabled{opacity:.5;cursor:not-allowed}.stat-modal-edit-save{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);border:none;border-radius:6px;padding:8px 20px;font-size:.85rem;font-weight:500;transition:all .2s}.stat-modal-edit-save:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.stat-modal-edit-save:disabled{opacity:.6;cursor:not-allowed;transform:none}.theme-toggle-button{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.theme-toggle-button:hover{background:#fff3;transform:scale(1.05)}.admin-member-stats.light-mode{color:#1e293b;background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%)}.admin-member-stats.light-mode .loading{color:#64748b}.admin-member-stats.light-mode .stats-header-left h1{color:#1e293b}.admin-member-stats.light-mode .back-button{color:#475569;background:#0000000d;border:1px solid #0000001a}.admin-member-stats.light-mode .back-button:hover{background:#0000001a}.admin-member-stats.light-mode .theme-toggle-button{color:#475569;background:#0000000d;border:1px solid #0000001a}.admin-member-stats.light-mode .theme-toggle-button:hover{background:#0000001a}.admin-member-stats.light-mode .stats-filters{background:#fffc;border:1px solid #0000001a;box-shadow:0 2px 8px #0000000d}.admin-member-stats.light-mode .filter-group label{color:#64748b}.admin-member-stats.light-mode .filter-group select,.admin-member-stats.light-mode .filter-group input{color:#1e293b;background:#fff;border:1px solid #cbd5e1}.admin-member-stats.light-mode .filter-group select:hover,.admin-member-stats.light-mode .filter-group input:hover{border-color:#94a3b8}.admin-member-stats.light-mode .filter-group select option{color:#1e293b;background:#fff}.admin-member-stats.light-mode .summary-card{background:#fff;border:1px solid #00000014;box-shadow:0 2px 8px #0000000d}.admin-member-stats.light-mode .summary-card:hover{background:#fff;box-shadow:0 4px 16px #0000001a}.admin-member-stats.light-mode .summary-card .summary-value{color:#1e293b}.admin-member-stats.light-mode .summary-card .summary-label{color:#64748b}.admin-member-stats.light-mode .stats-tabs{background:#fff9}.admin-member-stats.light-mode .tab-button{color:#64748b}.admin-member-stats.light-mode .tab-button:hover{color:#1e293b;background:#0000000d}.admin-member-stats.light-mode .tab-button.active{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%)}.admin-member-stats.light-mode .stats-content{background:#fffc;border:1px solid #00000014;box-shadow:0 2px 8px #0000000d}.admin-member-stats.light-mode .chart-section h2{color:#1e293b;border-bottom-color:#0000001a}.admin-member-stats.light-mode .chart-section h3{color:#334155}.admin-member-stats.light-mode .chart-card{background:#fff;border:1px solid #00000014}.admin-member-stats.light-mode .chart-card h4{color:#1e293b;border-bottom-color:#0000001a}.admin-member-stats.light-mode .chart-container{background:#fff;border:1px solid #0000001a;box-shadow:0 4px 16px #00000014,0 1px 3px #0000000d}.admin-member-stats.light-mode .chart-container h3{color:#1e293b}.admin-member-stats.light-mode .chart-container.clickable:hover{background:#fafafa;border-color:#6366f180;box-shadow:0 8px 24px #0000001f}.admin-member-stats.light-mode .confidence-card{background:#fff;border:1px solid #00000014}.admin-member-stats.light-mode .confidence-card h4{color:#1e293b}.admin-member-stats.light-mode .confidence-card .big-number{color:#6366f1}.admin-member-stats.light-mode .confidence-card .delta-label,.admin-member-stats.light-mode .cross-analysis-selector label{color:#64748b}.admin-member-stats.light-mode .cross-analysis-selector select{color:#1e293b;background:#fff;border:1px solid #cbd5e1}.admin-member-stats.light-mode .recharts-legend-item-text{color:#475569!important}.admin-member-stats.light-mode .recharts-cartesian-axis-tick-value{fill:#475569!important}.admin-member-stats.light-mode .recharts-text{fill:#475569}.admin-member-stats.light-mode .stat-detail-modal-content{background:#fff;border:1px solid #0000001a}.admin-member-stats.light-mode .stat-detail-modal-header h2{color:#1e293b}.admin-member-stats.light-mode .stat-detail-modal-header span{color:#64748b}.admin-member-stats.light-mode .stat-modal-user-item{background:#f8fafc;border-color:#e2e8f0}.admin-member-stats.light-mode .stat-modal-user-item:hover{background:#f1f5f9;border-color:#cbd5e1}.admin-member-stats.light-mode .stat-modal-user-name{color:#1e293b}.admin-member-stats.light-mode .stat-modal-user-email,.admin-member-stats.light-mode .stat-modal-close{color:#64748b}.admin-member-stats.light-mode .stat-modal-close:hover{color:#1e293b;background:#0000001a}.stat-modal-backdrop.light-mode{background:#0006}.stat-modal.light-mode{background:linear-gradient(135deg,#fff 0%,#f1f5f9 100%);border:1px solid #0000001a;box-shadow:0 20px 60px #00000026}.stat-modal.light-mode .stat-modal-header{border-bottom:1px solid #e2e8f0}.stat-modal.light-mode .stat-modal-header h2{color:#1e293b}.stat-modal.light-mode .stat-modal-close{color:#64748b;background:#0000000d}.stat-modal.light-mode .stat-modal-close:hover{color:#1e293b;background:#0000001a}.stat-modal.light-mode .stat-modal-hint{color:#64748b}.stat-modal.light-mode .stat-modal-users{background:#fff;border:1px solid #e2e8f0}.stat-modal.light-mode .stat-modal-users-header h3{color:#1e293b}.stat-modal.light-mode .stat-modal-count{color:#64748b}.stat-modal.light-mode .stat-modal-clear{color:#dc2626;background:#ef44441a}.stat-modal.light-mode .stat-modal-clear:hover{background:#ef444433}.stat-modal.light-mode .stat-modal-search input{color:#1e293b;background:#f8fafc;border:1px solid #cbd5e1}.stat-modal.light-mode .stat-modal-search input:focus{border-color:#6366f1}.stat-modal.light-mode .stat-modal-search input::placeholder{color:#94a3b8}.stat-modal.light-mode .stat-modal-search-clear{color:#64748b;background:#0000000d}.stat-modal.light-mode .stat-modal-search-clear:hover{color:#1e293b;background:#0000001a}.stat-modal.light-mode .stat-modal-user-item{background:#f8fafc;border:1px solid #e2e8f0}.stat-modal.light-mode .stat-modal-user-item:hover{background:#f1f5f9;border-color:#cbd5e1}.stat-modal.light-mode .stat-modal-user-name{color:#1e293b}.stat-modal.light-mode .stat-modal-user-email{color:#64748b}.stat-modal.light-mode .stat-modal-user-badge{color:#4f46e5;background:#6366f11a}.stat-modal.light-mode .stat-modal-no-results,.stat-modal.light-mode .stat-modal-no-selection{color:#64748b}.stat-modal.light-mode .stat-modal-summary{border-top:1px solid #e2e8f0}.stat-modal.light-mode .stat-modal-summary-item{background:#f8fafc}.stat-modal.light-mode .stat-modal-summary-item:hover{background:#f1f5f9}.stat-modal.light-mode .stat-modal-summary-item.active{background:#6366f11a}.stat-modal.light-mode .stat-modal-summary-value{color:#1e293b}.stat-modal.light-mode .stat-modal-summary-label{color:#64748b}.stat-modal.light-mode .stat-modal-edit-btn{color:#4f46e5;background:#6366f11a;border-color:#6366f14d}.stat-modal.light-mode .stat-modal-edit-btn:hover{background:#6366f133}.stat-modal.light-mode .stat-modal-edit-panel{background:#fff;border:1px solid #e2e8f0}.stat-modal.light-mode .stat-modal-edit-header{border-bottom-color:#e2e8f0}.stat-modal.light-mode .stat-modal-edit-header span{color:#1e293b}.stat-modal.light-mode .stat-modal-edit-header button{color:#64748b}.stat-modal.light-mode .stat-modal-edit-header button:hover{color:#1e293b}.stat-modal.light-mode .stat-modal-edit-label{color:#475569}.stat-modal.light-mode .stat-modal-edit-select{color:#1e293b;background:#f8fafc;border:1px solid #cbd5e1}.stat-modal.light-mode .stat-modal-edit-select:focus{border-color:#6366f1}.stat-modal.light-mode .stat-modal-edit-select option{color:#1e293b;background:#fff}.stat-modal.light-mode .stat-modal-edit-input{color:#1e293b;background:#f8fafc;border:1px solid #cbd5e1}.stat-modal.light-mode .stat-modal-edit-input:focus{border-color:#6366f1}.stat-modal.light-mode .stat-modal-edit-input::placeholder{color:#94a3b8}.stat-modal.light-mode .stat-modal-edit-error{color:#dc2626;background:#ef44441a;border:1px solid #ef444433}.stat-modal.light-mode .stat-modal-edit-cancel{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0}.stat-modal.light-mode .stat-modal-edit-cancel:hover{background:#e2e8f0}.stat-modal.light-mode .recharts-text{fill:#475569}.stat-modal.light-mode .recharts-legend-item-text{color:#475569!important}.stat-modal.light-mode .recharts-cartesian-axis-tick-value{fill:#475569!important}.admin-player-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.admin-player-header{z-index:100;background:linear-gradient(135deg,#2cfffd 0%,#7a8efb 100%);padding:1.5rem;position:sticky;top:0}.admin-player-header .header-content{flex-direction:column;gap:1rem;max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex}.admin-player-header .header-top{z-index:100;justify-content:flex-end;align-items:center;width:100%;margin:0 -1.5rem;padding:0 1.5rem;display:flex;position:relative}.admin-player-header .back-button{color:#fff;cursor:pointer;background:#fff3;border:2px solid #fff6;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.admin-player-header .back-button:hover{background:#ffffff4d;transform:scale(1.05)}.admin-player-header .back-button svg{width:22px;height:22px}.admin-player-header .header-title h1{color:#fff;text-shadow:0 2px 10px #0000001a;margin:0;font-size:1.5rem;font-weight:800}.admin-player-header .header-title p{color:#ffffffe6;margin:.25rem 0 0;font-size:.9rem}.message-banner{justify-content:space-between;align-items:center;padding:1rem 1.5rem;font-weight:600;animation:.3s slideDown;display:flex}.message-banner.success{color:#047857;background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%)}.message-banner.error{color:#dc2626;background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%)}.message-banner .close-btn{cursor:pointer;opacity:.7;color:inherit;background:0 0;border:none;font-size:1.25rem}.message-banner .close-btn:hover{opacity:1}.controls-section{max-width:1200px;margin:0 auto;padding:1.5rem 1.5rem 0}.tabs-container{background:#fff;border:1px solid #7a8efb1a;border-radius:12px;flex-direction:row;gap:.5rem;width:100%;padding:1rem;display:flex;box-shadow:0 2px 12px #7a8efb14}.tab-btn{color:#6b7280;cursor:pointer;white-space:nowrap;background:#f8faff;border:2px solid #0000;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:.75rem;padding:.875rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.tab-btn svg{flex-shrink:0;width:20px;height:20px}.tab-btn:hover{color:#7a8efb;background:#f0f4ff}.tab-btn.active{color:#7a8efb;background:linear-gradient(135deg,#2cfffd1a 0%,#7a8efb1a 100%);border-color:#7a8efb}.mode-selector-section{background:#fff;border:1px solid #7a8efb1a;border-radius:12px;flex-direction:column;gap:1rem;padding:1.5rem;display:flex;box-shadow:0 2px 12px #7a8efb14}.mode-selector-section h3{color:#1f2937;margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.mode-description{color:#6b7280;margin:0 0 1rem;font-size:.9rem}.current-mode-hint{color:#7a8efb;font-weight:600}.mode-buttons{gap:1rem;display:flex}.mode-btn{color:#6b7280;cursor:pointer;background:#f8faff;border:2px solid #e5e7eb;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:.5rem;padding:1.25rem 1rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .2s;display:flex}.mode-btn svg{opacity:.6;width:28px;height:28px}.mode-btn .mode-slots{color:#9ca3af;font-size:.8rem;font-weight:500}.mode-btn:hover{color:#7a8efb;background:#f0f4ff;border-color:#7a8efb}.mode-btn:hover svg{opacity:1}.mode-btn.active{color:#7a8efb;background:linear-gradient(135deg,#2cfffd1a 0%,#7a8efb1a 100%);border-color:#7a8efb}.mode-btn.active svg{opacity:1}.mode-btn.active .mode-slots{color:#7a8efb}.admin-player-content{max-width:1200px;margin:0 auto;padding:1.5rem}.planning-tab,.roles-tab{flex-direction:column;gap:1.5rem;display:flex}.stat-icon.capitaines{color:#f479a5;background:linear-gradient(135deg,#fff83733 0%,#f479a533 100%)}.stats-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.stat-card{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;align-items:center;gap:1rem;padding:1.25rem;display:flex;box-shadow:0 2px 12px #7a8efb14}.stat-icon{border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-icon svg{width:24px;height:24px}.stat-icon.players{color:#7a8efb;background:linear-gradient(135deg,#2cfffd33 0%,#7a8efb33 100%)}.stat-icon.schedules{color:#f479a5;background:linear-gradient(135deg,#fff83733 0%,#f479a533 100%)}.stat-info{flex-direction:column;display:flex}.stat-value{color:#1f2937;font-size:1.75rem;font-weight:800}.search-section{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;padding:1rem;box-shadow:0 2px 12px #7a8efb14}.search-box{background:#f8faff;border:2px solid #0000;border-radius:12px;align-items:center;gap:.75rem;padding:.75rem 1rem;transition:all .2s;display:flex}.search-box:focus-within{background:#fff;border-color:#7a8efb}.search-box svg{color:#9ca3af;flex-shrink:0;width:20px;height:20px}.search-box input{color:#1f2937;background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:1rem}.search-box input::placeholder{color:#9ca3af}.search-box .clear-btn{color:#9ca3af;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.25rem;line-height:1}.search-box .clear-btn:hover{color:#6b7280}.users-section{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;padding:1.5rem;box-shadow:0 2px 12px #7a8efb14}.users-section h3{color:#1f2937;margin:0 0 1rem;font-size:1rem;font-weight:700}.users-list{flex-direction:column;gap:.75rem;max-height:400px;display:flex;overflow-y:auto}.user-card{background:#f8faff;border:2px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;padding:1rem;transition:all .2s;display:flex}.user-card:hover{background:#f0f4ff}.user-card.is-player{background:linear-gradient(135deg,#2cfffd0d 0%,#7a8efb0d 100%);border-color:#7a8efb33}.user-info{align-items:center;gap:1rem;display:flex}.user-details{flex-direction:column;gap:.25rem;display:flex}.user-name{color:#1f2937;font-weight:600}.user-email{color:#6b7280;font-size:.85rem}.user-actions{align-items:center;gap:.75rem;display:flex}.admin-star{margin-left:.5rem;font-size:.9rem}.role-selector{color:#6b7280;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:8px;min-width:120px;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s}.role-selector:hover{border-color:#7a8efb}.role-selector:focus{border-color:#7a8efb;outline:none;box-shadow:0 0 0 3px #7a8efb1a}.role-selector.player{color:#7a8efb;background:linear-gradient(135deg,#2cfffd1a 0%,#7a8efb1a 100%);border-color:#7a8efb}.role-selector.capitaine{color:#d1477a;background:linear-gradient(135deg,#fff8371a 0%,#f479a51a 100%);border-color:#f479a5}.admin-toggle-btn{color:#9ca3af;cursor:pointer;background:#f8faff;border:2px solid #e5e7eb;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.admin-toggle-btn svg{width:20px;height:20px}.admin-toggle-btn:hover{color:#7a8efb;background:#f0f4ff;border-color:#7a8efb}.admin-toggle-btn.is-admin{color:#8b6914;background:linear-gradient(135deg,#fff837 0%,gold 100%);border-color:#d4af37}.admin-toggle-btn.is-admin:hover{transform:scale(1.05)}.user-card.is-capitaine{background:linear-gradient(135deg,#fff8370d 0%,#f479a50d 100%);border-color:#f479a533}.player-badge,.capitaine-badge{text-transform:uppercase;border-radius:6px;padding:.25rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.player-badge{color:#fff;background:linear-gradient(135deg,#2cfffd 0%,#7a8efb 100%)}.capitaine-badge{color:#1f2937;background:linear-gradient(135deg,#fff837 0%,#f479a5 100%)}.role-toggle-btn{cursor:pointer;border:2px solid;border-radius:10px;align-items:center;gap:.5rem;padding:.625rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.role-toggle-btn svg{width:16px;height:16px}.role-toggle-btn.add{color:#fff;background:linear-gradient(135deg,#2cfffd 0%,#7a8efb 100%);border-color:#0000}.role-toggle-btn.add:hover{transform:translateY(-2px);box-shadow:0 4px 12px #7a8efb4d}.role-toggle-btn.remove{color:#dc2626;background:#fff;border-color:#dc2626}.role-toggle-btn.remove:hover{background:#fef2f2}.role-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.current-players-section{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;padding:1.5rem;box-shadow:0 2px 12px #7a8efb14}.current-players-section h3{color:#1f2937;margin:0 0 1rem;font-size:1rem;font-weight:700}.players-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.player-card{background:linear-gradient(135deg,#2cfffd0d 0%,#7a8efb14 100%);border:1px solid #7a8efb26;border-radius:12px;padding:1rem}.player-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.player-avatar{color:#fff;background:linear-gradient(135deg,#7a8efb 0%,#2cfffd 100%);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:.85rem;font-weight:700;display:flex}.player-avatar.small{border-radius:8px;width:32px;height:32px;font-size:.75rem}.player-info{flex-direction:column;flex:1;min-width:0;display:flex}.player-name{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.player-email{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.player-stats{align-items:center;gap:.5rem;display:flex}.schedule-count{color:#7a8efb;font-size:.85rem;font-weight:600}.planning-tab{flex-direction:column;gap:1.5rem;display:flex}.calendar-header{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.calendar-nav-btn{color:#6b7280;cursor:pointer;background:#f8faff;border:2px solid #e5e7eb;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.calendar-nav-btn svg{width:20px;height:20px}.calendar-nav-btn:hover{color:#7a8efb;background:#f0f4ff;border-color:#7a8efb}.calendar-title{color:#1f2937;text-transform:capitalize;flex:1;margin:0;font-size:1.25rem;font-weight:700}.today-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2cfffd 0%,#7a8efb 100%);border:none;border-radius:10px;padding:.625rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s}.today-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #7a8efb4d}.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem;display:grid}.weekday{text-align:center;color:#9ca3af;text-transform:uppercase;padding:.5rem;font-size:.8rem;font-weight:600}.calendar-grid-month{grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.calendar-grid-month .calendar-day{cursor:pointer;background:#f8faff;border:2px solid #0000;border-radius:10px;flex-direction:column;align-items:center;min-height:70px;padding:.5rem;transition:all .2s;display:flex}.calendar-grid-month .calendar-day:hover:not(.empty):not(.past){background:#f0f4ff;border-color:#7a8efb4d}.calendar-grid-month .calendar-day.empty{cursor:default;background:0 0}.calendar-grid-month .calendar-day.past{opacity:.5;cursor:not-allowed}.calendar-grid-month .calendar-day.today{border-color:#7a8efb}.calendar-grid-month .calendar-day.today .day-number{color:#fff;background:#7a8efb;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.calendar-grid-month .calendar-day.selected{background:linear-gradient(135deg,#2cfffd26 0%,#7a8efb26 100%);border-color:#7a8efb}.calendar-grid-month .calendar-day.has-schedules{background:linear-gradient(135deg,#2cfffd14 0%,#7a8efb14 100%)}.calendar-grid-month .day-number{color:#1f2937;margin-bottom:.25rem;font-size:.95rem;font-weight:600}.schedule-dots{gap:3px;margin-top:auto;display:flex}.schedule-dots .dot{background:#7a8efb;border-radius:50%;width:8px;height:8px}.schedule-dots .dot.slot-morning{background:#22c55e}.schedule-dots .dot.slot-afternoon{background:#3b82f6}.schedule-dots .dot.slot-evening{background:#a855f7}.select-date-hint{color:#9ca3af;background:#fff;border:2px dashed #7a8efb33;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:3rem 2rem;display:flex}.select-date-hint svg{opacity:.5;width:48px;height:48px;margin-bottom:1rem}.select-date-hint p{text-align:center;margin:0;font-size:.95rem}.add-schedule-form{background:linear-gradient(135deg,#2cfffd0d 0%,#7a8efb0d 100%);border-radius:12px;margin-bottom:1.5rem;padding:1rem}.form-row{align-items:flex-end;gap:1rem;display:flex}.add-schedule-form .form-group{flex:1}.add-schedule-form .form-group label{color:#7a8efb;margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:block}.add-schedule-form .form-group select{color:#1f2937;background:#fff;border:2px solid #e5e7eb;border-radius:10px;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;transition:all .2s}.add-schedule-form .form-group select:focus{border-color:#7a8efb;outline:none}.add-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#2cfffd 0%,#7a8efb 100%);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.add-btn svg{width:18px;height:18px}.add-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #7a8efb4d}.add-btn:disabled{opacity:.5;cursor:not-allowed}.player-details{flex-direction:column;display:flex}.player-details .player-name{color:#1f2937;font-weight:600}.player-details .player-email{color:#6b7280;font-size:.8rem}.schedule-form-card{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;padding:1.5rem;box-shadow:0 2px 12px #7a8efb14}.schedule-form-card h3{color:#1f2937;margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.form-description{color:#6b7280;margin:0 0 1.5rem;font-size:.9rem;line-height:1.5}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:#7a8efb;font-size:.85rem;font-weight:600}.form-group input,.form-group select{color:#1f2937;background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}.form-group input:focus,.form-group select:focus{border-color:#7a8efb;outline:none}.form-hint{color:#6b7280;margin:.25rem 0 0;font-size:.8rem}.form-hint.warning{color:#f59e0b}.form-actions{align-items:flex-end;display:flex}.add-schedule-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2cfffd 0%,#7a8efb 100%);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.add-schedule-btn svg{width:18px;height:18px}.add-schedule-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #7a8efb4d}.add-schedule-btn:disabled{opacity:.5;cursor:not-allowed}.calendar-section{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;padding:1.5rem;box-shadow:0 2px 12px #7a8efb14}.calendar-section h3{color:#1f2937;margin:0 0 1rem;font-size:1rem;font-weight:700}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.calendar-day{cursor:pointer;background:#f8faff;border:2px solid #0000;border-radius:12px;min-height:100px;padding:.75rem .5rem;transition:all .2s}.calendar-day:hover{background:#f0f4ff}.calendar-day.today{border-color:#7a8efb}.calendar-day.selected{background:linear-gradient(135deg,#2cfffd1a 0%,#7a8efb1a 100%);border-color:#7a8efb}.calendar-day.has-schedules{background:linear-gradient(135deg,#2cfffd0d 0%,#7a8efb14 100%)}.day-header{flex-direction:column;align-items:center;margin-bottom:.5rem;display:flex}.day-name{color:#9ca3af;text-transform:uppercase;font-size:.7rem;font-weight:600}.day-number{color:#1f2937;font-size:1.1rem;font-weight:700}.calendar-day.today .day-number{color:#fff;background:#7a8efb;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.day-schedules{flex-direction:column;gap:.25rem;display:flex}.schedule-pill{border-radius:6px;flex-direction:column;padding:.25rem .5rem;font-size:.7rem;display:flex;overflow:hidden}.schedule-pill.slot-morning{color:#15803d;background:#22c55e33}.schedule-pill.slot-afternoon{color:#1d4ed8;background:#3b82f633}.schedule-pill.slot-evening{color:#7c3aed;background:#a855f733}.schedule-time{font-weight:700}.schedule-player{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.no-schedules{text-align:center;color:#d1d5db;font-size:.9rem}.selected-day-details{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;padding:1.5rem;box-shadow:0 2px 12px #7a8efb14}.selected-day-details h3{color:#1f2937;text-transform:capitalize;margin:0 0 1rem;font-size:1.1rem;font-weight:700}.day-slots{flex-direction:column;gap:.75rem;display:flex}.slot-card{background:#f8faff;border:2px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;padding:1rem;display:flex}.slot-card.assigned{background:linear-gradient(135deg,#2cfffd0d 0%,#7a8efb14 100%);border-color:#7a8efb33}.slot-card.available{border-style:dashed;border-color:#e5e7eb}.slot-time{flex:1}.slot-label{color:#1f2937;font-weight:600}.slot-assignment{align-items:center;gap:1rem;display:flex}.assigned-player{align-items:center;gap:.75rem;display:flex}.slot-empty{color:#9ca3af;font-style:italic}.delete-btn{color:#dc2626;cursor:pointer;background:#fef2f2;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.delete-btn svg{width:18px;height:18px}.delete-btn:hover{background:#fee2e2;transform:scale(1.05)}.upcoming-schedules{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;padding:1.5rem;box-shadow:0 2px 12px #7a8efb14}.upcoming-schedules h3{color:#1f2937;margin:0 0 1rem;font-size:1rem;font-weight:700}.schedules-list{flex-direction:column;gap:.75rem;display:flex}.schedule-item{background:#f8faff;border-radius:10px;align-items:center;gap:1rem;padding:.75rem;display:flex}.schedule-date{color:#fff;background:linear-gradient(135deg,#2cfffd 0%,#7a8efb 100%);border-radius:8px;flex-direction:column;align-items:center;min-width:60px;padding:.5rem;display:flex}.schedule-date .date-day{text-transform:uppercase;font-size:.7rem;font-weight:600}.schedule-date .date-number{font-size:1.25rem;font-weight:800}.schedule-date .date-month{text-transform:uppercase;font-size:.7rem}.schedule-info{flex-direction:column;flex:1;display:flex}.schedule-player-name{color:#1f2937;font-weight:600}.schedule-slot{color:#6b7280;font-size:.85rem}.empty-state{color:#9ca3af;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.empty-state svg{opacity:.5;width:48px;height:48px;margin-bottom:1rem}.empty-state p{margin:0;font-size:.95rem}.loading-state{flex-direction:column;justify-content:center;align-items:center;min-height:400px;display:flex}.spinner{border:4px solid #f0f4ff;border-top-color:#7a8efb;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@media (max-width:768px){.admin-player-header{padding:1rem}.admin-player-header .header-title h1{font-size:1.25rem}.controls-section{flex-direction:column;gap:1rem;padding:0 1rem}.tabs-container{flex-direction:row;gap:.5rem;min-width:auto}.tab-btn{flex:1;padding:.75rem;font-size:.8rem}.tab-btn svg{width:18px;height:18px}.mode-selector-section{flex:none}.mode-btn{padding:1rem .75rem;font-size:.9rem}.admin-player-content{padding:1rem}.mode-buttons{flex-direction:column}.mode-btn{flex-direction:row;justify-content:center}.mode-btn .mode-slots{margin-left:.5rem}.calendar-header{flex-wrap:wrap}.calendar-title{text-align:center;order:-1;width:100%;margin-bottom:.5rem}.today-btn{flex:1}.calendar-grid-month .calendar-day{min-height:55px;padding:.375rem}.calendar-grid-month .day-number{font-size:.85rem}.calendar-grid-month .calendar-day.today .day-number{width:24px;height:24px}.schedule-dots .dot{width:6px;height:6px}.form-row{flex-direction:column}.add-btn{justify-content:center;width:100%}.form-grid{grid-template-columns:1fr}.user-card{flex-direction:column;align-items:flex-start;gap:1rem}.user-actions{justify-content:space-between;width:100%;display:flex}.role-selector{flex:1}.role-toggle-btn{justify-content:center;width:100%}.slot-card{flex-direction:column;align-items:flex-start;gap:.75rem}.slot-assignment{justify-content:space-between;width:100%}}@media (max-width:480px){.calendar-grid-month .calendar-day{min-height:45px;padding:.25rem}.calendar-grid-month .day-number{font-size:.75rem}.calendar-grid-month .calendar-day.today .day-number{width:20px;height:20px;font-size:.7rem}.weekday{padding:.25rem;font-size:.65rem}.schedule-dots .dot{width:5px;height:5px}.day-schedules{display:none}.calendar-day.has-schedules:after{content:"";background:#7a8efb;border-radius:50%;width:8px;height:8px;margin:.25rem auto 0;display:block}}.cal-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);flex-direction:column;min-height:100vh;display:flex}.cal-topbar{color:#fff;background:linear-gradient(135deg,#7a8efb 0%,#38b5fb 100%);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.cal-back-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;transition:all .2s;display:flex}.cal-back-btn svg{flex-shrink:0;width:24px;height:24px}.cal-back-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.cal-page-title{color:#fff;text-shadow:0 1px 2px #0000001a;margin:0;font-size:1.25rem;font-weight:700}.cal-today-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:12px;padding:10px 16px;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s}.cal-today-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.cal-mode-indicator{border-radius:12px;justify-content:center;align-items:center;gap:8px;margin:12px 16px 8px;padding:10px 16px;transition:all .3s;display:flex}.cal-mode-indicator.blocus{background:linear-gradient(135deg,#f59e0b26 0%,#ea580c26 100%);border:2px solid #f59e0b66}.cal-mode-indicator.hors-blocus{background:linear-gradient(135deg,#22c55e1f 0%,#16a34a1f 100%);border:2px solid #22c55e59}.cal-mode-badge{font-size:.95rem;font-weight:700}.cal-mode-indicator.blocus .cal-mode-badge{color:#d97706}.cal-mode-indicator.hors-blocus .cal-mode-badge{color:#16a34a}.cal-mode-auto{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;background:#6b728026;border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:600}.cal-mode-toggle{background:#fff;border-radius:14px;margin:8px 16px 16px;padding:4px;display:flex;box-shadow:0 2px 12px #0000000f}.cal-mode-toggle.admin{background:#7a8efb14;border:1px dashed #7a8efb66;align-items:center;gap:8px;padding:8px 12px}.cal-mode-toggle-label{color:#7a8efb;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;font-size:.75rem;font-weight:600}.cal-mode-option{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:10px 16px;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s}.cal-mode-toggle.admin .cal-mode-option{flex:0 auto;padding:8px 14px;font-size:.8rem}.cal-mode-option.active{color:#fff;background:linear-gradient(135deg,#7a8efb 0%,#38b5fb 100%);box-shadow:0 4px 12px #7a8efb59}.cal-mode-option.auto-active{color:#5b6edb;background:#7a8efb26;border:1px solid #7a8efb4d}.cal-mode-option:not(.active):not(.auto-active):hover{background:#f3f4f6}.cal-mode-reset{color:#6b7280;cursor:pointer;white-space:nowrap;background:#f3f4f6;border:none;border-radius:8px;padding:6px 10px;font-family:inherit;font-size:.75rem;font-weight:600;transition:all .2s}.cal-mode-reset:hover{color:#374151;background:#e5e7eb}.cal-main{background:#fff;border-radius:20px;margin:0 16px;padding:16px;box-shadow:0 4px 20px #00000014}.cal-month-nav{justify-content:space-between;align-items:center;padding:8px 4px 20px;display:flex}.cal-nav-arrow{color:#6b7280;cursor:pointer;background:#f3f4f6;border:none;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:all .2s;display:flex}.cal-nav-arrow svg{flex-shrink:0;width:22px;height:22px}.cal-nav-arrow:hover{color:#374151;background:#e5e7eb}.cal-nav-arrow:active{transform:scale(.95)}.cal-month-label{color:#1f2937;text-transform:capitalize;font-size:1.15rem;font-weight:700}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-day-name{text-align:center;color:#9ca3af;text-transform:uppercase;letter-spacing:.03em;padding:8px 0;font-size:.75rem;font-weight:700}.cal-day-name.weekend{color:#ef4444}.cal-day{aspect-ratio:1;cursor:pointer;background:#f9fafb;border:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:all .15s;display:flex;position:relative}.cal-day:hover:not(:disabled):not(.past):not(.other){background:#e5e7eb;transform:scale(1.05)}.cal-day:active:not(:disabled):not(.past):not(.other){transform:scale(.98)}.cal-day:disabled{cursor:default}.cal-day.other{opacity:.25;pointer-events:none}.cal-day.past{opacity:.4}.cal-day-num{color:#374151;font-size:.95rem;font-weight:600;line-height:1}.cal-day.today{border:2px solid #7a8efb}.cal-day.today .cal-day-num{color:#7a8efb;font-weight:700}.cal-day.selected{background:linear-gradient(135deg,#7a8efb 0%,#38b5fb 100%);box-shadow:0 4px 12px #7a8efb66}.cal-day.selected .cal-day-num{color:#fff;font-weight:700}.cal-day.selected.today{border-color:#ffffff80}.cal-day-indicator{border-radius:50%;width:8px;height:8px;position:absolute;bottom:4px}.cal-day-indicator.cal-fill-full{background:#22c55e;box-shadow:0 0 4px #22c55e80}.cal-day-indicator.cal-fill-partial{background:#f59e0b;box-shadow:0 0 4px #f59e0b80}.cal-day-indicator.cal-fill-empty{background:#ef4444;box-shadow:0 0 4px #ef444480}.cal-day.selected .cal-day-indicator{box-shadow:none;background:#ffffffe6}.cal-detail-panel{background:#fff;border-radius:20px;flex-direction:column;flex:1;min-height:220px;margin:16px;padding:20px;display:flex;box-shadow:0 4px 20px #00000014}.cal-detail-date{border-bottom:1px solid #f0f0f5;flex-direction:column;margin-bottom:16px;padding-bottom:12px;display:flex}.cal-detail-weekday{color:#7a8efb;text-transform:capitalize;font-size:.85rem;font-weight:600}.cal-detail-full{color:#1f2937;font-size:1.5rem;font-weight:700}.cal-empty-state{color:#9ca3af;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.cal-empty-icon{opacity:.5;font-size:40px}.cal-empty-state p{margin:0;font-size:.95rem;font-weight:500}.cal-slots{flex-direction:column;gap:12px;display:flex}.cal-slot{background:#f9fafb;border:2px solid #0000;border-radius:16px;padding:16px;transition:all .2s}.cal-slot.registered{background:#2bfcb114;border-color:#2bfcb1}.cal-slot-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.cal-slot-time{flex-direction:column;display:flex}.cal-slot-name-row{align-items:center;gap:10px;display:flex}.cal-slot-name{color:#1f2937;font-size:1rem;font-weight:700}.cal-slot-count{border-radius:12px;padding:3px 8px;font-size:.8rem;font-weight:700}.cal-slot-count.cal-count-full{color:#16a34a;background:#22c55e26}.cal-slot-count.cal-count-partial{color:#d97706;background:#f59e0b26}.cal-slot-count.cal-count-empty{color:#dc2626;background:#ef444426}.cal-slot-hours{color:#6b7280;margin-top:2px;font-size:.85rem}.cal-slot.cal-slot-full{border-left:4px solid #22c55e}.cal-slot.cal-slot-partial{border-left:4px solid #f59e0b}.cal-slot.cal-slot-empty{border-left:4px solid #ef4444}.cal-slot-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:12px;padding:10px 20px;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s}.cal-slot-btn:not(.active){color:#fff;background:linear-gradient(135deg,#2bfcb1 0%,#38b5fb 100%)}.cal-slot-btn:not(.active):hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #2bfcb166}.cal-slot-btn.active{color:#6b7280;background:#f3f4f6;border:2px solid #e5e7eb}.cal-slot-btn.active:hover:not(:disabled){color:#dc2626;background:#fee2e2;border-color:#fecaca}.cal-slot-btn:disabled{opacity:.5;cursor:not-allowed}.cal-slot-btn:active:not(:disabled){transform:scale(.98)}.cal-slot-people{border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;display:flex}.cal-person{background:#fff;border:1px solid #e5e7eb;border-radius:20px;align-items:center;gap:8px;padding:6px 12px 6px 6px;display:flex}.cal-person.me{background:#7a8efb1a;border-color:#7a8efb}.cal-person-avatar{color:#fff;background:linear-gradient(135deg,#7a8efb 0%,#38b5fb 100%);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex}.cal-person.me .cal-person-avatar{background:linear-gradient(135deg,#2bfcb1 0%,#38b5fb 100%)}.cal-person-name{color:#374151;font-size:.85rem;font-weight:600}.cal-slot-empty{color:#9ca3af;margin:10px 0 0;font-size:.85rem;font-style:italic}.cal-loading,.cal-loading-overlay{z-index:100;background:#ffffffe6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cal-spinner{border:3px solid #e5e7eb;border-top-color:#7a8efb;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite cal-spin}@keyframes cal-spin{to{transform:rotate(360deg)}}.cal-stats-section{margin:0 16px 16px}.cal-stats-toggle{color:#374151;cursor:pointer;background:#fff;border:none;border-radius:16px;justify-content:space-between;align-items:center;width:100%;padding:16px 20px;font-family:inherit;font-size:1rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 2px 12px #0000000f}.cal-stats-toggle:hover{background:#f9fafb}.cal-stats-arrow{color:#6b7280;transition:transform .2s}.cal-stats-arrow.open{transform:rotate(180deg)}.cal-stats-panel{background:#fff;border-radius:16px;margin-top:8px;padding:16px;box-shadow:0 2px 12px #0000000f}.cal-stats-empty{text-align:center;color:#9ca3af;margin:0;padding:12px;font-size:.9rem}.cal-stats-list{flex-direction:column;gap:8px;display:flex}.cal-stat-item{background:#f9fafb;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;transition:all .2s;display:flex}.cal-stat-item.me{background:#7a8efb1a;border:1px solid #7a8efb}.cal-stat-rank{color:#9ca3af;min-width:28px;font-size:.85rem;font-weight:700}.cal-stat-item:first-child .cal-stat-rank{color:#f59e0b}.cal-stat-item:nth-child(2) .cal-stat-rank{color:#6b7280}.cal-stat-item:nth-child(3) .cal-stat-rank{color:#b45309}.cal-stat-name{color:#1f2937;flex:1;font-size:.95rem;font-weight:600}.cal-stat-role{font-size:1rem}.cal-stat-count{color:#7a8efb;background:#7a8efb1a;border-radius:12px;padding:4px 10px;font-size:.85rem;font-weight:600}@media (min-width:640px){.cal-container{max-width:600px;min-height:100vh;margin:0 auto}.cal-topbar{border-radius:0 0 24px 24px;padding:20px 24px}.cal-page-title{font-size:1.4rem}.cal-mode-toggle{margin:20px}.cal-mode-option{padding:14px 24px;font-size:1rem}.cal-main{margin:0 20px;padding:20px}.cal-month-label{font-size:1.25rem}.cal-day-num{font-size:1rem}.cal-day-indicator{width:7px;height:7px;bottom:6px}.cal-detail-panel{min-height:280px;margin:20px;padding:24px}.cal-detail-full{font-size:1.75rem}.cal-slot{padding:18px}.cal-slot-name{font-size:1.1rem}.cal-slot-btn{padding:12px 24px}}.today-reservations-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.today-reservations-container .page-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);margin-bottom:-2rem;padding:2rem 1.5rem 4rem;position:relative}.today-reservations-container .page-header:after{content:"";background:linear-gradient(#f8faff 0%,#f0f4ff 100%);border-radius:30px 30px 0 0;height:60px;position:absolute;bottom:0;left:0;right:0}.today-reservations-container .header-content{z-index:10;max-width:900px;margin:0 auto;position:relative}.today-reservations-container .header-top{justify-content:flex-start;margin-bottom:1.5rem;display:flex}.today-reservations-container .back-button{color:#fff;cursor:pointer;background:#fff3;border:1px solid #ffffff4d;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.today-reservations-container .back-button:hover{background:#ffffff4d;transform:translateY(-2px)}.today-reservations-container .header-title h1{color:#fff;margin:0 0 .5rem;font-size:2rem;font-weight:800}.today-reservations-container .header-title p{color:#ffffffe6;text-transform:capitalize;margin:0;font-size:1rem}.today-reservations-container .page-content{max-width:900px;margin:0 auto;padding:2rem 1.5rem}.controls-section{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}@media (min-width:640px){.controls-section{flex-direction:row;justify-content:space-between;align-items:center}}.date-filter{background:#fff;border-radius:12px;gap:.5rem;padding:.25rem;display:flex;box-shadow:0 2px 8px #0000000f}.date-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s}.date-btn:hover{color:#374151}.date-btn.active{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb)}.controls-section .search-wrapper{background:#fff;border-radius:12px;flex:1;align-items:center;gap:.75rem;max-width:400px;padding:.75rem 1rem;display:flex;box-shadow:0 2px 8px #0000000f}.controls-section .search-wrapper svg{color:#9ca3af;flex-shrink:0;width:20px;height:20px}.controls-section .search-wrapper input{color:#111827;background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.controls-section .search-wrapper input::placeholder{color:#9ca3af}.stats-bar{gap:1rem;margin-bottom:1.5rem;display:flex}.stat-item{text-align:center;background:#fff;border-radius:12px;flex:1;padding:1rem;box-shadow:0 2px 8px #0000000f}.stat-value{color:#111827;font-size:1.5rem;font-weight:700;display:block}.stat-label{color:#6b7280;font-size:.8rem}.today-reservations-container .loading-state,.today-reservations-container .empty-state{text-align:center;background:#fff;border-radius:16px;padding:4rem 2rem;box-shadow:0 2px 8px #0000000f}.today-reservations-container .loader{border:3px solid #e5e7eb;border-top-color:#7a8efb;border-radius:50%;width:40px;height:40px;margin:0 auto 1rem;animation:1s linear infinite spin}.today-reservations-container .empty-state svg{color:#d1d5db;width:64px;height:64px;margin-bottom:1rem}.today-reservations-container .empty-state h3{color:#374151;margin:0 0 .5rem;font-size:1.25rem;font-weight:700}.today-reservations-container .empty-state p{color:#6b7280;margin:0}.access-denied{text-align:center;background:#fff;border-radius:16px;padding:4rem 2rem}.access-denied p{color:#6b7280;margin-bottom:1.5rem}.back-home-btn{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2cfffd,#7a8efb);border:none;border-radius:10px;padding:.75rem 1.5rem;font-weight:600;transition:all .2s}.back-home-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #7a8efb4d}.reservations-by-slot{flex-direction:column;gap:2rem;display:flex}.slot-section{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 12px #0000000f}.slot-title{color:#111827;border-bottom:1px solid #e5e7eb;align-items:center;gap:.75rem;margin:0 0 1rem;padding-bottom:1rem;font-size:1.1rem;font-weight:700;display:flex}.slot-icon{font-size:1.25rem}.slot-count{color:#7a8efb;background:#7a8efb1a;border-radius:20px;margin-left:auto;padding:.25rem .75rem;font-size:.85rem;font-weight:600}.slot-time{color:#6b7280;font-size:.85rem;font-weight:500}.slot-header{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.slot-header .slot-title{border:none;margin:0;padding:0}.slot-section.entry-passed{background:linear-gradient(#fef2f2 0%,#fff 100%);border:2px solid #ef4444}.entry-passed-alert{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem;font-weight:500;display:flex}.entry-passed-alert svg{flex-shrink:0;width:18px;height:18px}.batch-absent-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#ef4444;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.batch-absent-btn:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.batch-absent-btn:disabled{opacity:.6;cursor:not-allowed}.batch-absent-btn svg{width:16px;height:16px}.reservation-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:1rem;transition:all .2s}.reservation-card:hover{border-color:#d1d5db}.reservation-card.is-present{background:#ecfdf5;border-color:#a7f3d0}.card-main{align-items:center;gap:1rem;display:flex}.card-avatar{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:.9rem;font-weight:700;display:flex}.reservation-card.is-present .card-avatar{background:linear-gradient(45deg,#10b981,#059669)}.card-info{flex:1;min-width:0}.card-info h3{color:#111827;white-space:nowrap;text-overflow:ellipsis;margin:0 0 .25rem;font-size:1rem;font-weight:600;overflow:hidden}.card-email{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;margin:0 0 .25rem;font-size:.85rem;overflow:hidden}.card-room{color:#7a8efb;align-items:center;gap:.35rem;margin:0;font-size:.85rem;display:flex}.card-room svg{width:14px;height:14px}.card-status{flex-shrink:0}.status-badge{border-radius:20px;align-items:center;gap:.35rem;padding:.5rem .75rem;font-size:.8rem;font-weight:600;display:flex}.status-badge svg{width:14px;height:14px}.status-badge.present{color:#059669;background:#d1fae5}.status-badge.waiting{color:#d97706;background:#fef3c7}.scanned-info{color:#6b7280;text-align:center;border-top:1px dashed #d1d5db;margin-top:.75rem;padding-top:.75rem;font-size:.8rem}.mark-present-btn{color:#fff;cursor:pointer;background:linear-gradient(45deg,#10b981,#059669);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.75rem;padding:.75rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.mark-present-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.mark-present-btn:disabled{opacity:.7;cursor:not-allowed}.mark-present-btn svg{width:18px;height:18px}.view-mode-tabs{background:#fff;border-radius:14px;gap:.5rem;margin-bottom:1.5rem;padding:.35rem;display:flex;box-shadow:0 2px 8px #0000000f}.view-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.view-tab:hover{color:#374151;background:#f3f4f6}.view-tab svg{width:18px;height:18px}.view-tab.active{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb);box-shadow:0 2px 8px #7a8efb4d}.view-tab.group.active{background:linear-gradient(45deg,#fbdb47,#f97316);box-shadow:0 2px 8px #f973164d}.tab-count{background:#fff3;border-radius:10px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.view-tab:not(.active) .tab-count{color:#6b7280;background:#e5e7eb}.group-reservations-list{flex-direction:column;gap:1.5rem;display:flex}.group-reservation-card{background:#fff;border:2px solid #0000;border-radius:16px;padding:1.5rem;position:relative;overflow:hidden;box-shadow:0 2px 12px #0000000f}.group-reservation-card:before{content:"";background:linear-gradient(90deg,#fbdb47 0%,#f97316 50%,#f2565d 100%);height:4px;position:absolute;top:0;left:0;right:0}.group-card-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;display:flex}.group-info{flex:1;gap:1rem;display:flex}.group-badge{color:#fff;background:linear-gradient(45deg,#fbdb47,#f97316);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.group-badge svg{width:26px;height:26px}.group-details h3{color:#111827;margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.group-room,.group-time{color:#6b7280;align-items:center;gap:.4rem;margin:0 0 .25rem;font-size:.85rem;display:flex}.group-room svg,.group-time svg{color:#f97316;width:14px;height:14px}.group-progress{text-align:center;background:linear-gradient(135deg,#fbdb4726 0%,#f973161a 100%);border-radius:12px;flex-shrink:0;padding:.75rem 1rem}.progress-count{color:#ea580c;font-size:1.5rem;font-weight:700;display:block}.progress-label{color:#9a3412;text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.group-creator{background:#f9fafb;border-radius:8px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.creator-label{color:#6b7280}.creator-name{color:#374151;font-weight:600}.group-members-section h4{color:#374151;text-transform:uppercase;letter-spacing:.03em;margin:0 0 .75rem;font-size:.85rem;font-weight:700}.member-row{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:.75rem;padding:.75rem;transition:all .2s;display:flex}.member-row:hover{border-color:#d1d5db}.member-row.is-present{background:#ecfdf5;border-color:#a7f3d0}.member-avatar{color:#fff;background:linear-gradient(45deg,#fbdb47,#f97316);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8rem;font-weight:700;display:flex}.member-row.is-present .member-avatar{background:linear-gradient(45deg,#10b981,#059669)}.member-info{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.member-name{color:#374151;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.creator-tag{color:#fff;text-transform:uppercase;letter-spacing:.03em;background:linear-gradient(45deg,#fbdb47,#f97316);border-radius:4px;flex-shrink:0;padding:.15rem .4rem;font-size:.65rem;font-weight:700}.member-actions{flex-shrink:0}.member-status.present{color:#059669;background:#d1fae5;border-radius:20px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.8rem;font-weight:600;display:flex}.member-status.present svg{width:14px;height:14px}.mark-member-btn{color:#fff;cursor:pointer;background:linear-gradient(45deg,#10b981,#059669);border:none;border-radius:8px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.mark-member-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #10b9814d}.mark-member-btn:disabled{opacity:.7;cursor:not-allowed}.mark-member-btn svg{width:14px;height:14px}@media (max-width:640px){.today-reservations-container .page-header{padding:1.5rem 1rem 3.5rem}.today-reservations-container .header-title h1{font-size:1.5rem}.today-reservations-container .page-content{padding:1.5rem 1rem}.stats-bar{gap:.5rem}.stat-item{padding:.75rem}.stat-value{font-size:1.25rem}.card-main{flex-wrap:wrap}.card-status{width:100%;margin-top:.5rem}.status-badge{justify-content:center;width:100%}.view-mode-tabs{flex-direction:row}.view-tab{padding:.7rem .5rem;font-size:.8rem}.view-tab svg{display:none}.group-card-header{flex-direction:column;gap:1rem}.group-progress{justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;display:flex}.progress-count{font-size:1.1rem}.member-row{flex-wrap:wrap}.member-actions{width:100%;margin-top:.5rem}.mark-member-btn,.member-status.present{justify-content:center;width:100%}}.student-reservation-container{color:#1f2937;background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden}.page-header{padding:3.5rem 1.5rem 2rem;padding-top:max(3.5rem,env(safe-area-inset-top,3.5rem));z-index:1;background:linear-gradient(45deg,#2cfffd,#7a8efb);position:sticky;top:0;overflow:hidden}@media (min-width:768px){.page-header{padding:2rem 3rem}}.header-top{z-index:100;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1rem;margin-bottom:1.5rem;display:flex;position:relative}@media (min-width:768px){.header-title h1{font-size:2.5rem}}.page-content{background:#f8fafc;max-width:1400px;margin:0 auto;padding:2rem 1.5rem}@media (min-width:768px){.page-content{padding:2rem 3rem}}.sr-header{z-index:10;margin-bottom:3rem;position:relative}.sr-title{color:#111827;background:linear-gradient(135deg,#111827 0%,#4b5563 100%);-webkit-text-fill-color:transparent;letter-spacing:-.025em;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:800}.sr-subtitle{color:#6b7280;font-size:1.1rem;font-weight:500}.breadcrumb{background:#fff;border:1px solid #e5e7eb;border-radius:50px;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:.5rem 1rem .5rem .5rem;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #0000000f}.breadcrumb:hover{box-shadow:0 4px 12px #0000001a}.breadcrumb .back-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:0;transition:all .2s;display:flex;box-shadow:0 2px 6px #3b82f64d}.breadcrumb .back-button:hover{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);transform:scale(1.08);box-shadow:0 4px 12px #3b82f666}.breadcrumb .back-button:active{transform:scale(.95)}.breadcrumb-text{color:#1f2937;white-space:nowrap;font-size:.9rem;font-weight:600}.rules-banner{background:linear-gradient(135deg,#fff5f5 0%,#fef2f2 100%);border:1px solid #ef444433;border-left:5px solid #ef4444;border-radius:20px;margin-bottom:2rem;padding:1.5rem 1.75rem;animation:.5s cubic-bezier(.2,.8,.2,1) slideDown;position:relative;box-shadow:0 8px 24px -8px #ef444426}.rules-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.rules-header h2{color:#dc2626;align-items:center;gap:.6rem;margin:0;font-size:1.1rem;font-weight:700;line-height:1.3;display:flex}.rules-icon{flex-shrink:0;width:22px;min-width:22px;height:22px;min-height:22px}.rules-icon path,.rules-icon line{stroke:#dc2626;stroke-width:2px;fill:none;stroke-linecap:round;stroke-linejoin:round}.rules-content{color:#991b1b;margin:0;padding-left:.25rem;font-size:.9rem;font-weight:500;line-height:1.7}.close-rules-btn{color:#dc2626;cursor:pointer;background:#ef44441a;border:2px solid #ef444433;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;min-width:36px;height:36px;font-size:1.1rem;font-weight:600;transition:all .2s;display:flex}.close-rules-btn:hover{color:#fff;background:#ef4444;border-color:#ef4444;transform:scale(1.05)}.close-rules-btn:active{transform:scale(.95)}.floor-section-title{text-align:center;margin-bottom:3rem;font-size:2rem;font-weight:800;display:inline-block;position:relative;left:50%;transform:translate(-50%)}.floor-section-title:after{content:"";background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:2px;width:60px;height:4px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.floor-grid{perspective:1000px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2.5rem;padding:1rem;display:grid}.floor-card{-webkit-backdrop-filter:blur(20px);cursor:pointer;opacity:0;background:#ffffffb3;border:1px solid #fffc;border-radius:30px;flex-direction:column;justify-content:center;align-items:center;height:400px;padding:2rem;transition:all .6s cubic-bezier(.23,1,.32,1);animation:.8s cubic-bezier(.2,.8,.2,1) forwards cardEntrance;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 40px -15px #0000000d,inset 0 0 0 1px #fff9}.floor-card:first-child{animation-delay:.1s}.floor-card:nth-child(2){animation-delay:.2s}.floor-card:nth-child(3){animation-delay:.3s}.floor-card:nth-child(4){animation-delay:.4s}.floor-card:nth-child(5){animation-delay:.5s}.floor-card:before{content:"";opacity:0;z-index:-1;background:linear-gradient(45deg,#2cfffd0f 0%,#7a8efb0f 100%);border-radius:30px;transition:opacity .5s;position:absolute;inset:0}.floor-card:hover{background:#ffffffe6;border-color:#0000;transform:translateY(-15px)scale(1.02);box-shadow:0 30px 60px -12px #7a8efb33,inset 0 0 0 2px #ffffffe6}.floor-card:hover:before{opacity:1}.floor-number-image{object-fit:contain;filter:drop-shadow(0 8px 16px #38b5fb4d);z-index:1;width:auto;height:120px;margin-bottom:1.5rem;transition:all .6s cubic-bezier(.23,1,.32,1);position:relative}.floor-card:hover .floor-number-image{filter:drop-shadow(0 20px 30px #3b82f64d);transform:scale(1.15)rotate(-3deg)}.floor-number{background:linear-gradient(#e2e8f0 0%,#94a3b8 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 8px #0000000d);z-index:1;-webkit-background-clip:text;margin-bottom:1.5rem;font-size:10rem;font-weight:900;line-height:.8;transition:all .6s cubic-bezier(.23,1,.32,1);position:relative}.floor-card:hover .floor-number{background:linear-gradient(45deg,#2bfcb1 0%,#38b5fb 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 20px 30px #38b5fb4d);-webkit-background-clip:text;transform:scale(1.1)rotate(-5deg)}.floor-label{color:#1f2937;margin-bottom:.75rem;font-size:1.5rem;font-weight:700;transition:transform .4s}.floor-card:hover .floor-label{color:#111827;transform:translateY(-5px)}.floor-info{color:#6b7280;background:#f3f4f6;border-radius:12px;padding:.5rem 1rem;font-size:1rem;font-weight:500;transition:all .4s}.floor-card:hover .floor-info{color:#7a8efb;background:#2cfffd1a;transform:translateY(-5px);box-shadow:0 4px 12px #7a8efb26}.floor-card:after{content:"";opacity:0;pointer-events:none;background:radial-gradient(circle,#7a8efb26 0%,#0000 70%);border-radius:50%;width:200px;height:200px;transition:opacity .6s,transform .6s;position:absolute;top:-50px;right:-50px}.floor-card:hover:after{opacity:1;transform:scale(1.5)}.room-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2rem;animation:.5s ease-out fadeIn;display:grid}.room-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:20px;flex-direction:column;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d}.room-card:hover{border-color:#7a8efb4d;transform:translateY(-8px);box-shadow:0 20px 25px -5px #7a8efb26,0 10px 10px -5px #0000000a}.room-image-wrapper{background-color:#f3f4f6;width:100%;height:220px;position:relative;overflow:hidden}.room-image-skeleton{z-index:1;background:linear-gradient(90deg,#f3f4f6 0%,#e5e7eb 50%,#f3f4f6 100%) 0 0/200% 100%;width:100%;height:100%;animation:1.5s ease-in-out infinite skeleton-shimmer;position:absolute;top:0;left:0}.room-image-skeleton.hidden{opacity:0;pointer-events:none;transition:opacity .3s}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.room-card:hover .room-image{transform:scale(1.05)}.room-capacity-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#111827;background:#ffffffe6;border-radius:100px;align-items:center;gap:.35rem;padding:.4rem .8rem;font-size:.8rem;font-weight:700;display:flex;position:absolute;top:1rem;right:1rem;box-shadow:0 2px 8px #0000001a}.room-availability-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffffff2;border-radius:100px;align-items:center;gap:.35rem;padding:.5rem .9rem;font-size:.8rem;font-weight:700;transition:all .3s;display:flex;position:absolute;bottom:1rem;left:1rem;box-shadow:0 2px 8px #00000026}.room-availability-badge.places-high{color:#047857;background:#ecfdf5fa;border:1px solid #6ee7b7}.room-availability-badge.places-medium{color:#b45309;background:#fffbebfa;border:1px solid #fbbf24}.room-availability-badge.places-low{color:#dc2626;background:#fef2f2f2;border:1px solid #fca5a5}.room-availability-badge.places-none{color:#6b7280;background:#f3f4f6f2;border:1px solid #d1d5db}.room-card:hover .room-availability-badge{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.room-content{flex-direction:column;flex:1;padding:1.75rem;display:flex}.room-title{color:#111827;letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.35rem;font-weight:700}.room-features{gap:.75rem;margin-top:auto;padding-top:1.25rem;display:flex}.feature-tag{color:#4b5563;background:#f3f4f6;border-radius:8px;padding:.35rem .75rem;font-size:.75rem;font-weight:600;transition:all .2s}.room-card:hover .feature-tag{color:#7a8efb;background:#2cfffd1a}.date-section{background:#fff;border:1px solid #e5e7eb;border-radius:24px;margin-bottom:2.5rem;padding:2.5rem;animation:.4s ease-out slideUp;box-shadow:0 4px 20px -4px #0000000d}.date-header{border-bottom:1px solid #f3f4f6;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.date-header h3{color:#111827;margin:0;font-size:1.35rem;font-weight:700}.slots-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;display:grid}.slot-card{cursor:pointer;text-align:center;background:#f9fafb;border:2px solid #0000;border-radius:16px;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.slot-card.available{background:#fff;border-color:#e5e7eb;box-shadow:0 2px 4px #00000005}.slot-card.available:hover{border-color:#7a8efb;transform:translateY(-2px);box-shadow:0 8px 16px -4px #7a8efb33}.slot-card.available .slot-time{color:#111827;font-weight:700}.slot-card.available .slot-status{color:#059669;font-weight:600}.slot-status.places-high{font-weight:700;color:#059669!important}.slot-status.places-medium{font-weight:700;color:#d97706!important}.slot-status.places-low{font-weight:700;color:#ef4444!important}.slot-status.places-none{font-weight:600;color:#6b7280!important}.slot-card.selected{background:linear-gradient(45deg,#2cfffd,#7a8efb);border-color:#0000;transform:translateY(-2px);box-shadow:0 8px 20px -4px #7a8efb66}.slot-card.selected .slot-time,.slot-card.selected .slot-status{color:#fff}.slot-card.disabled{cursor:not-allowed;opacity:.6;background:#f3f4f6}.slot-card.disabled .slot-time{color:#9ca3af}.student-reservation-container .modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#1a1a2eb3;justify-content:center;align-items:center;width:100%;height:100%;padding:1rem;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0}.student-reservation-container .modal-content{background:#fff;border:1px solid #7a8efb1a;border-radius:24px;flex-direction:column;width:100%;max-width:500px;max-height:90vh;padding:0;animation:.3s cubic-bezier(.2,.8,.2,1) scaleIn;display:flex;overflow:hidden;box-shadow:0 25px 60px #7a8efb40}.student-reservation-container .modal-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);margin:0;padding:1.5rem 2rem}.student-reservation-container .modal-header h2{color:#fff;text-align:center;text-shadow:0 2px 8px #0000001a;margin:0;font-size:1.5rem;font-weight:700}.student-reservation-container .modal-body{flex:1;min-height:0;padding:1.75rem 2rem;overflow-y:auto}.confirmation-details{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #7a8efb26;border-radius:16px;margin:1rem 0;padding:1.25rem}.detail-label{color:#7a8efb;text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:700}.detail-value{color:#111827;text-align:right;font-size:.95rem;font-weight:600}.warning-box{background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1px solid #f2565d33;border-radius:14px;margin-top:1rem;padding:1rem 1.25rem}.warning-text{color:#dc2626;text-align:center;margin:0;font-size:.85rem;font-weight:600;line-height:1.5}.modal-actions{border-top:1px solid #e5e7eb;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.primary-button{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2bfcb1,#38b5fb);border:none;border-radius:14px;flex:1;padding:.9rem 1.25rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:all .2s}.secondary-button{color:#6b7280;cursor:pointer;background:#f3f4f6;border:2px solid #e5e7eb;border-radius:14px;flex:1;padding:.9rem 1.25rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s}.secondary-button:hover:not(:disabled){color:#374151;background:#e5e7eb;border-color:#d1d5db}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes cardEntrance{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.loading-container{justify-content:center;align-items:center;min-height:60vh;display:flex}.slot-card.admin-blocked{cursor:not-allowed;background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:2px solid #f87171;position:relative;overflow:visible}.slot-card.admin-blocked:before{content:"";z-index:-1;opacity:.15;background:linear-gradient(135deg,#ef4444,#f97316);border-radius:18px;position:absolute;inset:-2px}.admin-blocked-icon{background:linear-gradient(135deg,#ef4444,#dc2626);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;top:-8px;right:-8px;box-shadow:0 4px 12px #ef444466}.admin-blocked-icon svg{color:#fff;width:16px;height:16px}.slot-card.admin-blocked .slot-time{color:#991b1b;font-weight:700}.slot-card.admin-blocked .slot-status{color:#dc2626;background:#ef44441a;border-radius:6px;margin-top:.25rem;padding:.25rem .5rem;font-size:.8rem;font-weight:600;line-height:1.3}.slot-card.blocked{cursor:not-allowed;opacity:.7;background:#fef3c7;border-color:#fcd34d}.slot-card.blocked .slot-time{color:#92400e}.slot-card.blocked .slot-status{color:#b45309;font-size:.75rem}.selection-summary{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border:1px solid #e5e7eb;border-radius:16px;justify-content:space-between;align-items:center;margin-top:2rem;padding:1rem 1.5rem;animation:.3s ease-out slideUp;display:flex;position:sticky;bottom:1rem;box-shadow:0 -4px 20px #0000001a}.selection-summary p{color:#1f2937;margin:0;font-size:1rem;font-weight:700}.selection-summary .primary-button{flex:none;padding:.75rem 1.5rem}.selected-slots-list{margin:1.5rem 0}.selected-slots-list h4{color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem;font-size:.9rem;font-weight:600}.selected-slot-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:1rem 1.25rem;transition:all .2s;display:flex}.selected-slot-item:last-child{margin-bottom:0}.selected-slot-item:hover{background:#f1f5f9;border-color:#cbd5e1}.selected-slot-item.success{background:#ecfdf5;border-color:#a7f3d0}.selected-slot-item .slot-date{color:#1f2937;font-size:.95rem;font-weight:600}.selected-slot-item .slot-time-label{color:#7a8efb;background:#7a8efb1a;border-radius:8px;padding:.35rem .75rem;font-size:.9rem;font-weight:500}.selected-slot-item.success .slot-time-label{color:#059669;background:#d1fae5}.primary-button:disabled,.secondary-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.any-room-card{background:linear-gradient(135deg,#10b98114 0%,#3b82f614 100%);border:2px dashed #10b9814d}.any-room-card:hover{background:linear-gradient(135deg,#10b98126 0%,#3b82f626 100%);border-style:solid;border-color:#10b98180}.any-room-icon{background:linear-gradient(135deg,#10b981 0%,#3b82f6 100%);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:1.5rem;transition:all .4s;display:flex}.any-room-icon svg{color:#fff}.any-room-card:hover .any-room-icon{transform:scale(1.1);box-shadow:0 10px 30px #10b9814d}.group-room-card{background:linear-gradient(135deg,#f9731614 0%,#eab30814 100%);border:2px dashed #f973164d}.group-room-card:hover{background:linear-gradient(135deg,#f9731626 0%,#eab30826 100%);border-style:solid;border-color:#f9731680}.group-room-card .any-room-icon{background:linear-gradient(135deg,#f97316 0%,#eab308 100%)}.group-room-card:hover .any-room-icon{box-shadow:0 10px 30px #f973164d}.group-room-badge{color:#fff;text-transform:uppercase;letter-spacing:.05em;z-index:2;background:linear-gradient(135deg,#f97316 0%,#eab308 100%);border-radius:6px;padding:.3rem .6rem;font-size:.7rem;font-weight:700;position:absolute;top:.75rem;left:.75rem}.room-card.group-room:hover{border-color:#f9731680;box-shadow:0 10px 30px #f9731626}.slot-count-grid{flex-wrap:wrap;justify-content:center;gap:1.5rem;display:flex}.slot-count-card{cursor:pointer;background:#fffc;border:2px solid #e5e7eb;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;width:120px;height:140px;transition:all .3s;display:flex}.slot-count-card:hover{border-color:#7a8efb;transform:translateY(-5px);box-shadow:0 10px 30px #0000001a}.slot-count-card.selected{background:linear-gradient(135deg,#7a8efb 0%,#2cfffd 100%);border-color:#0000;transform:translateY(-5px)scale(1.05);box-shadow:0 15px 40px #7a8efb4d}.slot-count-number{color:#1f2937;font-size:3rem;font-weight:800;line-height:1;transition:all .3s}.slot-count-card.selected .slot-count-number{color:#fff}.slot-count-label{color:#6b7280;margin-top:.5rem;font-size:.9rem;transition:all .3s}.slot-count-card.selected .slot-count-label{color:#ffffffe6}.available-slots-badge{color:#fff;z-index:5;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:10px;align-items:center;gap:4px;padding:6px 10px;font-size:.75rem;font-weight:600;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 4px 12px #10b9814d}.available-slots-badge svg{color:#fff}.feature-tag.success{color:#059669;background:#10b98126}.loading-spinner{border:4px solid #e5e7eb;border-top-color:#7a8efb;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.mes-reservations-container{color:#1f2937;background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;padding-bottom:4rem;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}@media (min-width:768px){.page-header{padding:2rem 3rem 4rem}}.header-top{z-index:100;justify-content:flex-end;align-items:center;margin-bottom:1.5rem;display:flex;position:relative}.back-button{color:#fff;cursor:pointer;z-index:101;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff40;border:2px solid #fff6;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;transition:all .25s;display:flex;position:relative;box-shadow:0 4px 12px #0000001a}.back-button:hover{background:#fff6;border-color:#fff9;transform:translateY(-2px)scale(1.05);box-shadow:0 6px 20px #00000026}.back-button:active{transform:translateY(0)scale(.98)}.back-button svg{z-index:102;width:22px;height:22px;display:block;position:relative;overflow:visible}.back-button svg path,.back-button svg polyline,.back-button svg circle,.back-button svg rect,.back-button svg line{stroke-linecap:round;stroke-linejoin:round;stroke:#fff!important;stroke-width:2px!important;fill:none!important}@media (min-width:768px){.header-title h1{font-size:2.5rem}}@media (min-width:768px){.page-content{padding:2rem 3rem}}.mr-header{margin-bottom:2rem}.filter-container{justify-content:center;margin-bottom:2.5rem;display:flex}.filter-tabs{background:#e5e7eb;border-radius:12px;padding:.25rem;display:inline-flex}.filter-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:.5rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s}.filter-tab.active{color:#111827;background:#fff;box-shadow:0 1px 3px #0000001a}.filter-tab:hover:not(.active){color:#374151}.reservations-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.reservation-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;flex-direction:column;gap:1rem;padding:1.5rem;transition:all .2s;display:flex;position:relative}.reservation-card:hover{border-color:#d1d5db;transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.reservation-card.past{opacity:.75;background:#f9fafb}.res-header{justify-content:space-between;align-items:flex-start;display:flex}.res-room-name{color:#111827;margin:0;font-size:1.125rem;font-weight:700}.res-date-time{border-top:1px solid #f3f4f6;border-bottom:1px solid #f3f4f6;flex-direction:column;gap:.5rem;padding:1rem 0;display:flex}.res-date,.res-time{color:#374151;align-items:center;gap:.5rem;font-weight:500;display:flex}.res-icon{color:#6b7280;width:18px;height:18px}.status-badge{text-transform:uppercase;letter-spacing:.025em;border-radius:20px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.status-badge.upcoming{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe}.status-badge.past{color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb}.status-badge.cancelled{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.status-badge.no-show{color:#be123c;background:#fff1f2;border:1px solid #fda4af}.res-footer{justify-content:space-between;align-items:center;margin-top:auto;font-size:.85rem;display:flex}.res-created{color:#9ca3af;font-size:.8rem}.cancel-btn{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:8px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s}.cancel-btn:hover{background:#fef2f2;border-color:#dc2626}.absent-btn{color:#f59e0b;cursor:pointer;background:#fff;border:1px solid #fcd34d;border-radius:8px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s}.absent-btn:hover{background:#fffbeb;border-color:#f59e0b}.res-actions{gap:.5rem;display:flex}.cancel-info{border-radius:6px;align-items:center;gap:.5rem;margin-top:.5rem;padding:.5rem;font-size:.8rem;display:flex}.cancel-info.allowed{color:#047857;background:#ecfdf5}.cancel-info.too-late{color:#d97706;background:#fff7ed}.presence-info{color:#047857;background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%);border:1px solid #6ee7b7;border-radius:10px;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600;display:flex}.presence-info svg{color:#10b981;flex-shrink:0}.empty-state-container{text-align:center;color:#6b7280;background:#fff;border:2px dashed #e5e7eb;border-radius:16px;padding:4rem 2rem}.empty-icon{color:#d1d5db;width:64px;height:64px;margin-bottom:1rem}.new-res-btn{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:10px;margin-top:1.5rem;padding:.75rem 1.5rem;font-weight:600;transition:background .2s}.new-res-btn:hover{background:#2563eb}.fab-add{color:#fff;cursor:pointer;z-index:40;background:linear-gradient(45deg,#2cfffd,#7a8efb);border:none;border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 8px 24px #7a8efb66,0 4px 12px #2cfffd33}.fab-add svg{stroke:#fff;stroke-width:3px;filter:drop-shadow(0 2px 4px #0000001a);transition:transform .3s}.fab-add:hover{transform:translateY(-4px)scale(1.05);box-shadow:0 16px 32px #7a8efb73,0 8px 16px #2cfffd40}.fab-add:hover svg{transform:rotate(90deg)}.fab-add:active{transform:translateY(-2px)scale(1.02)}.fab-add:before{content:"";opacity:0;z-index:-1;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:24px;animation:2s ease-in-out infinite fabPulse;position:absolute;inset:-4px}@keyframes fabPulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:.3;transform:scale(1.15)}}.qr-btn{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2cfffd,#7a8efb);border:none;border-radius:8px;align-items:center;gap:6px;padding:.5rem .75rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.qr-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #7a8efb4d}.qr-btn svg{stroke:#fff}.present-badge{color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-radius:8px;align-items:center;gap:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;display:flex;box-shadow:0 2px 8px #10b9814d}.present-badge svg{stroke:#fff}.qr-modal{text-align:center;border:1px solid #7a8efb1a;border-radius:24px;max-width:380px;overflow:hidden;box-shadow:0 25px 60px #7a8efb40}.qr-modal .modal-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);border-bottom:none;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.qr-modal .modal-header h2{color:#fff;text-shadow:0 2px 8px #0000001a;margin:0;font-size:1.25rem;font-weight:700}.modal-close-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1.5rem;line-height:1;transition:all .2s;display:flex}.modal-close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.qr-body{background:linear-gradient(#fff 0%,#f8faff 100%);padding:2rem 1.5rem!important}.qr-code-container{background:#fff;border:2px solid #7a8efb1a;border-radius:20px;margin-bottom:1.5rem;padding:1.25rem;transition:all .3s;display:inline-block;box-shadow:0 8px 24px #7a8efb26}.qr-code-container:hover{transform:scale(1.02);box-shadow:0 12px 32px #7a8efb33}.qr-info{margin-bottom:1.25rem}.qr-name{color:#111827;margin:0 0 .75rem;font-size:1.35rem;font-weight:700}.qr-details{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;font-size:.95rem;display:flex}.qr-room,.qr-date,.qr-slot{color:#374151;font-weight:600}.qr-separator{color:#7a8efb;font-weight:700}.qr-instruction{color:#6b7280;background:linear-gradient(135deg,#f0f4ff 0%,#f8faff 100%);border:1px solid #7a8efb1a;border-radius:14px;margin:0;padding:1rem 1.25rem;font-size:.9rem;line-height:1.5}@media (max-width:640px){.reservations-grid{grid-template-columns:1fr}.filter-container{justify-content:flex-start;padding-bottom:1rem;overflow-x:auto}.filter-tabs{width:100%;display:flex}.filter-tab{text-align:center;flex:1;padding:.5rem 1rem}}.reservation-card.group-card{background:#fff;border:none;position:relative;overflow:hidden}.group-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.group-card-title{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.group-card-header .status-badge{white-space:nowrap;flex-shrink:0}.reservation-card.group-card:before{content:"";background:linear-gradient(90deg,#fbdb47 0%,#f97316 50%,#f2565d 100%);height:4px;position:absolute;top:0;left:0;right:0}.reservation-card.group-card:after{content:"";pointer-events:none;z-index:-1;background:linear-gradient(#fff,#fff) padding-box padding-box,linear-gradient(135deg,#fbdb4766,#f9731666,#f2565d4d) border-box;border:2px solid #0000;border-radius:16px;position:absolute;inset:0}.reservation-card.group-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px -8px #f9731640}.reservation-card.group-card.past{opacity:.85}.reservation-card.group-card.past:before{background:linear-gradient(90deg,#d4d4d4 0%,#9ca3af 100%)}.group-badge{text-transform:uppercase;letter-spacing:.04em;color:#fff;z-index:5;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border-radius:14px;align-items:center;gap:5px;padding:.3rem .7rem;font-size:.6rem;font-weight:700;display:inline-flex;position:absolute;top:14px;right:14px;box-shadow:0 2px 8px #f9731659}.group-badge svg{stroke:#fff;width:12px;height:12px}.group-name-tag{color:#c2410c;letter-spacing:-.01em;background:linear-gradient(135deg,#fbdb4740 0%,#f9731626 100%);border-left:4px solid #f97316;border-radius:12px;margin-bottom:.75rem;padding:.6rem 1rem;font-size:1.35rem;font-weight:800;display:block}.reservation-card.group-card .res-room-name{color:#6b7280;word-wrap:break-word;overflow-wrap:break-word;margin-bottom:.5rem;font-size:1rem;font-weight:500}.status-badge.upcoming.group{color:#c2410c;background:linear-gradient(135deg,#fbdb4740 0%,#f9731640 100%);border:1px solid #f9731680;padding:.35rem .9rem;font-weight:700}.group-role-info{background:linear-gradient(135deg,#fbdb471a 0%,#f9731614 100%);border:1px solid #f9731633;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.5rem;padding:.875rem 1rem;display:flex}.creator-tag{color:#fff;background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);border-radius:8px;align-items:center;gap:6px;padding:.4rem .9rem;font-size:.85rem;font-weight:700;display:inline-flex;box-shadow:0 2px 6px #f973164d}.creator-tag:before{content:"★";font-size:.75rem}.member-tag{color:#9a3412;background:#f973161f;border-radius:6px;padding:.35rem .75rem;font-size:.85rem;font-weight:600}.members-count{color:#ea580c;background:#fff;border:2px solid #f9731640;border-radius:20px;align-items:center;gap:4px;padding:.35rem .75rem;font-size:.8rem;font-weight:700;display:inline-flex;box-shadow:0 1px 3px #0000000d}.presence-info.group{color:#fff;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border:none;box-shadow:0 2px 8px #f973164d}.presence-info.group svg{color:#fff}.qr-btn.group{background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border:none;font-weight:700;box-shadow:0 2px 8px #f9731640}.qr-btn.group:hover{transform:translateY(-2px);box-shadow:0 6px 16px #f9731666}.cancel-btn.group{color:#ea580c;border:2px solid #fdba74;font-weight:600}.cancel-btn.group:hover{background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 100%);border-color:#ea580c}.present-badge.group{background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);box-shadow:0 2px 8px #f973164d}.reservation-card.group-card .res-date-time{background:linear-gradient(135deg,#fbdb4714 0%,#f973160d 100%);border-radius:10px;margin:.5rem 0;padding:.75rem}.reservation-card.group-card .res-icon{color:#f97316}.reservation-card.group-card .res-footer{border-top:1px solid #f9731626;margin-top:.75rem;padding-top:1rem}.group-modal{border-color:#f9731633}.qr-modal.group-modal{border:1px solid #f973161a;box-shadow:0 25px 60px #f9731640}.modal-header.group{background:linear-gradient(135deg,#fbdb47 0%,#f97316 50%,#f2565d 100%)!important}.qr-code-container.group{border:2px solid #f973161a;box-shadow:0 8px 24px #f9731626}.qr-code-container.group:hover{box-shadow:0 12px 32px #f9731633}.qr-details.group .qr-separator{color:#f97316}.confirmation-details.group{background:linear-gradient(135deg,#fbdb471a 0%,#f973161a 100%);border:1px solid #f9731633;border-radius:12px;padding:1rem}.primary-button.group{background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%)}.primary-button.group:hover:not(:disabled){box-shadow:0 6px 20px #f9731666}.group-name-tag{color:#c2410c;background:linear-gradient(135deg,#fbdb474d 0%,#f9731633 100%);border:1px solid #f973164d;border-radius:8px;margin-bottom:.5rem;padding:.35rem .9rem;font-size:1.1rem;font-weight:700;display:inline-block}.qr-group-name{color:#c2410c;background:linear-gradient(135deg,#fbdb4733 0%,#f9731626 100%);border-radius:6px;margin:-.5rem 0 .75rem;padding:.35rem .9rem;font-size:1.1rem;font-weight:600;display:inline-block}.detail-row.highlight .detail-label{color:#9a3412;font-weight:600}.detail-row.highlight .detail-value{color:#c2410c;font-size:1.05rem;font-weight:700}.group-members-list{background:linear-gradient(135deg,#fbdb4714 0%,#f973160d 100%);border:1px solid #f9731626;border-radius:12px;margin-top:.5rem;padding:.875rem}.members-list-header{color:#9a3412;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #f9731626;align-items:center;gap:.5rem;margin-bottom:.75rem;padding-bottom:.5rem;font-size:.8rem;font-weight:700;display:flex}.members-list-header svg{stroke:#f97316}.members-list{flex-direction:column;gap:.5rem;display:flex}.member-item{background:#fff;border:1px solid #f973161f;border-radius:10px;align-items:center;gap:.75rem;padding:.5rem .625rem;transition:all .2s;display:flex}.member-item:hover{border-color:#f973164d;box-shadow:0 2px 8px #f973161a}.member-item.is-me{background:linear-gradient(135deg,#fbdb4726 0%,#f973161a 100%);border-color:#f973164d}.member-item.scanned{border-left:3px solid #10b981}.member-avatar{color:#fff;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex;box-shadow:0 2px 4px #f9731640}.member-item.is-me .member-avatar{background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);box-shadow:0 2px 8px #f9731666}.member-info{flex:1;min-width:0}.member-name{color:#374151;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;display:flex}.me-tag{color:#ea580c;background:#f9731626;border-radius:4px;padding:.1rem .4rem;font-size:.75rem;font-weight:700}.creator-icon{color:#f97316;margin-left:.1rem;font-size:.85rem}.member-status{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.member-status.scanned{color:#059669;background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%)}.member-status.scanned svg{stroke:#059669}.member-status.pending{color:#9ca3af;background:#9ca3af26}.member-status.pending svg{stroke:#9ca3af}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:20px;width:100%;max-width:450px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000040}.modal-header{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border-bottom:1px solid #e5e7eb;border-radius:20px 20px 0 0;padding:1.25rem 1.5rem}.modal-header h2{color:#111827;margin:0;font-size:1.25rem;font-weight:700}.confirmation-details{background:#f9fafb;border-radius:12px;margin-bottom:1rem;padding:1rem}.detail-label{color:#6b7280;font-size:.9rem}.detail-value{color:#111827;font-size:.9rem;font-weight:600}.warning-box{border-radius:10px;margin-top:1rem;padding:1rem}.modal-actions{background:#f9fafb;border-top:1px solid #e5e7eb;border-radius:0 0 20px 20px;gap:1rem;padding:1.25rem 1.5rem;display:flex}.secondary-button{color:#6b7280;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:12px;flex:1;padding:.875rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s}.secondary-button:hover{color:#374151;border-color:#9ca3af}.primary-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:12px;flex:1;padding:.875rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s}.primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.primary-button:disabled{opacity:.6;cursor:not-allowed}.rules-banner{border-radius:12px;padding:1rem 1.25rem}.rules-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.rules-header h2{align-items:center;gap:.5rem;margin:0;display:flex}@media (max-width:480px){.group-card-header{flex-direction:column;align-items:flex-start;gap:.75rem}.group-card-header .status-badge{align-self:flex-start}.group-badge{padding:.25rem .55rem;font-size:.55rem;top:10px;right:10px}.reservation-card.group-card .res-room-name{font-size:.9rem}.group-name-tag{padding:.3rem .75rem;font-size:1rem}.group-role-info{flex-direction:column;align-items:flex-start;gap:.5rem}.members-list{gap:.5rem}.member-item{padding:.5rem}.member-avatar{width:32px;height:32px;font-size:.75rem}.member-name{font-size:.85rem}}.profile-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.page-header{z-index:1;background:linear-gradient(45deg,#2cfffd,#7a8efb);padding:2rem 1.5rem 4rem;position:sticky;top:-2rem;overflow:hidden}@media (min-width:768px){.page-header{padding:2rem 3rem 4rem}}.header-top{z-index:100;justify-content:flex-end;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex;position:relative}.back-button,.logout-button{color:#fff;cursor:pointer;z-index:101;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff40;border:2px solid #fff6;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;transition:all .25s;display:flex;position:relative;box-shadow:0 4px 12px #0000001a}.back-button:hover,.logout-button:hover{background:#fff6;border-color:#fff9;transform:translateY(-2px)scale(1.05);box-shadow:0 6px 20px #00000026}.back-button:active,.logout-button:active{transform:translateY(0)scale(.98)}.logout-button:hover{background:#ef44444d;border-color:#ef444480}.back-button svg,.logout-button svg{z-index:102;width:22px;height:22px;display:block;position:relative;overflow:visible}.back-button svg path,.back-button svg polyline,.back-button svg circle,.back-button svg rect,.back-button svg line,.logout-button svg path,.logout-button svg polyline,.logout-button svg circle,.logout-button svg rect,.logout-button svg line{stroke-linecap:round;stroke-linejoin:round;stroke:#fff!important;stroke-width:2px!important;fill:none!important}.header-title h1{color:#fff;text-shadow:0 2px 4px #0000001a;margin:0 0 .5rem;font-size:2rem;font-weight:800}@media (min-width:768px){.header-title h1{font-size:2.5rem}}.page-content{z-index:10;background:linear-gradient(#f8faff 0%,#f0f4ff 100%);max-width:1000px;margin:-2rem auto 0;padding:2rem 1.5rem;position:relative}@media (min-width:768px){.page-content{padding:2rem 3rem}}.alert{border-radius:8px;margin-bottom:1.5rem;padding:.75rem 1.5rem;font-weight:500;animation:.4s ease-out fadeIn;box-shadow:0 2px 8px #00000014}.alert-error{color:#dc2626;background:#fff;border-left:4px solid #dc2626}.alert-success{color:#059669;background:#fff;border-left:4px solid #10b981}.profile-form{flex-direction:column;gap:2rem;display:flex}.profile-section{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:2rem;transition:all .3s;box-shadow:0 1px 3px #0000001a}.profile-section:hover{box-shadow:0 4px 6px #0000001a}.section-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.section-title{color:#111827;letter-spacing:-.025em;border-bottom:2px solid #e5e7eb;margin:0 0 1.5rem;padding-bottom:.75rem;font-size:1.375rem;font-weight:700}.section-header .section-title{border-bottom:none;margin-bottom:0;padding-bottom:0}.edit-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;padding:.5rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .3s;box-shadow:0 2px 4px #3b82f633}.edit-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.form-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;display:grid}.form-field{flex-direction:column;gap:.5rem;display:flex}.form-field label{color:#111827;font-size:.9rem;font-weight:600}.form-field input,.form-field select{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;font-size:1rem;transition:all .3s}.form-field input:not(:disabled):focus,.form-field select:not(:disabled):focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-field.readonly input,.form-field input:disabled,.form-field select:disabled{color:#6b7280;cursor:not-allowed;background:#f9fafb;border-color:#e5e7eb}.form-actions{background:#fff;border:1px solid #e5e7eb;border-radius:16px;justify-content:flex-end;gap:1rem;margin-top:1rem;padding:1.5rem 2rem;display:flex;box-shadow:0 1px 3px #0000001a}.cancel-button{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem 2rem;font-weight:600;transition:all .3s}.cancel-button:hover{color:#111827;background:#f9fafb;border-color:#d1d5db}.save-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;padding:.75rem 2rem;font-weight:600;transition:all .3s;box-shadow:0 2px 4px #10b98133}.save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.save-button:disabled{opacity:.6;cursor:not-allowed}.logout-section{text-align:center;box-shadow:none;background:0 0;border:none;margin-top:1rem;padding:1rem}.logout-section:hover{box-shadow:none}.logout-section .logout-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:12px;justify-content:center;align-items:center;gap:.75rem;width:100%;max-width:300px;height:auto;padding:.875rem 2rem;font-size:1rem;font-weight:600;transition:all .3s;display:inline-flex;box-shadow:0 4px 12px #ef444440}.logout-section .logout-button:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-2px);box-shadow:0 6px 20px #ef444466}.logout-section .logout-button svg{stroke:#fff;width:20px;height:20px}@media (max-width:768px){.profile-section{padding:1.5rem}.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column;padding:1rem}.cancel-button,.save-button{width:100%}.section-header{flex-direction:column;align-items:stretch;gap:1rem}.edit-button{width:100%}}.staff-help-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.staff-page-header{z-index:1;background:linear-gradient(45deg,#2cfffd,#7a8efb);padding:2rem 1.5rem 4rem;position:sticky;top:-2rem}.staff-page-header:after{content:"";background:linear-gradient(#f8faff 0%,#f0f4ff 100%);border-radius:30px 30px 0 0;height:60px;position:absolute;bottom:-1px;left:0;right:0}.staff-help-container .header-content{z-index:10;max-width:1200px;margin:0 auto;position:relative}.staff-help-container .header-top{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.staff-help-container .back-button,.staff-help-container .add-staff-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff40;border:2px solid #fff6;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;transition:all .25s;display:flex;box-shadow:0 4px 12px #0000001a}.staff-help-container .back-button:hover,.staff-help-container .add-staff-button:hover{background:#fff6;border-color:#fff9;transform:translateY(-2px)scale(1.05);box-shadow:0 6px 20px #00000026}.staff-help-container .back-button:active,.staff-help-container .add-staff-button:active{transform:translateY(0)scale(.98)}.staff-help-container .back-button svg,.staff-help-container .add-staff-button svg{width:22px;min-width:22px;height:22px;min-height:22px;display:block;overflow:visible}.staff-help-container .back-button svg *,.staff-help-container .add-staff-button svg *{stroke:#fff!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.staff-help-container .header-title{text-align:center}.staff-help-container .header-title h1{color:#fff;text-shadow:0 2px 15px #00000026;margin:0 0 .5rem;font-size:2.25rem;font-weight:800}.staff-help-container .header-title p{color:#ffffffe6;margin:0;font-size:1.05rem;font-weight:500}.staff-content{z-index:10;background:linear-gradient(#f8faff 0%,#f0f4ff 100%);max-width:1200px;margin:-2rem auto 0;padding:0 1.5rem 3rem;position:relative}.staff-help-container .loading-state{text-align:center;padding:4rem 2rem}.staff-help-container .loader{border:4px solid #e5e7eb;border-top-color:#7a8efb;border-radius:50%;width:56px;height:56px;margin:0 auto 1.5rem;animation:.8s linear infinite spin}.staff-help-container .loading-state p{color:#6b7280;font-size:.95rem}.empty-state{text-align:center;background:#fff;border-radius:24px;padding:4rem 2rem;box-shadow:0 4px 20px #7a8efb14}.empty-icon{background:linear-gradient(135deg,#f3f4f6 0%,#e5e7eb 100%);border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;margin:0 auto 1.5rem;display:flex}.empty-icon svg{width:45px;min-width:45px;height:45px;min-height:45px;display:block;overflow:visible}.empty-icon svg *{stroke:#9ca3af!important;stroke-width:1.5px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.empty-state h3{color:#374151;margin:0 0 .5rem;font-size:1.25rem;font-weight:700}.empty-state p{color:#6b7280;margin:0 0 1.5rem;font-size:.95rem}.add-first-btn{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2cfffd,#7a8efb);border:none;border-radius:14px;align-items:center;gap:.5rem;padding:.9rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex}.add-first-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px #7a8efb59}.add-first-btn svg{width:20px;min-width:20px;height:20px;min-height:20px;display:block;overflow:visible}.add-first-btn svg *{stroke:#fff!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.staff-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.staff-card{background:#fff;border:1px solid #7a8efb14;border-radius:20px;transition:all .3s;overflow:hidden;box-shadow:0 4px 20px #7a8efb14}.staff-card:hover{transform:translateY(-5px);box-shadow:0 12px 35px #7a8efb26}.staff-card-image{background:linear-gradient(45deg,#2cfffd,#7a8efb);justify-content:center;align-items:center;width:100%;padding:2.5rem 0;display:flex}.staff-card-image img{object-fit:cover;aspect-ratio:1;border:4px solid #fff6;width:160px;min-width:160px;height:160px;min-height:160px;box-shadow:0 8px 25px #00000026;border-radius:50%!important}.staff-avatar{color:#fff;text-transform:uppercase;background:#fff3;border:4px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:160px;height:160px;font-size:3.5rem;font-weight:700;display:flex}.staff-card-content{padding:1.5rem}.staff-name{color:#1f2937;margin:0 0 .35rem;font-size:1.25rem;font-weight:700}.staff-role{color:#7a8efb;text-transform:uppercase;letter-spacing:.03em;background:linear-gradient(135deg,#7a8efb1a 0%,#38b5fb1a 100%);border-radius:20px;padding:.3rem .8rem;font-size:.8rem;font-weight:600;display:inline-block}.staff-description{color:#6b7280;margin:1rem 0 0;font-size:.9rem;line-height:1.6}.staff-card-actions{border-top:1px solid #f3f4f6;gap:.5rem;margin-top:0;padding:1rem 1.5rem 1.5rem;display:flex}.edit-btn,.delete-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.edit-btn{color:#7a8efb;background:#7a8efb1a}.edit-btn:hover{background:#7a8efb33}.delete-btn{color:#f2565d;background:#f2565d1a}.delete-btn:hover{background:#f2565d33}.edit-btn svg,.delete-btn svg{width:18px;min-width:18px;height:18px;min-height:18px;display:block;overflow:visible}.edit-btn svg *{stroke:#7a8efb!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.delete-btn svg *{stroke:#f2565d!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.delete-confirm{flex:1;gap:.5rem;display:flex}.confirm-delete-btn,.cancel-delete-btn{cursor:pointer;border:none;border-radius:8px;flex:1;padding:.5rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:all .2s}.confirm-delete-btn{color:#fff;background:linear-gradient(45deg,#fbdb47,#f2565d)}.confirm-delete-btn:hover{box-shadow:0 4px 12px #f2565d4d}.cancel-delete-btn{color:#6b7280;background:#f3f4f6}.cancel-delete-btn:hover{background:#e5e7eb}.staff-help-container .modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#1a1a2eb3;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.staff-modal{background:#fff;border-radius:24px;width:100%;max-width:500px;max-height:90vh;animation:.3s slideUp;overflow-y:auto;box-shadow:0 25px 50px #00000040}.staff-modal .modal-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:24px 24px 0 0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.staff-modal .modal-header h2{color:#fff;margin:0;font-size:1.15rem;font-weight:700}.staff-modal .modal-close-btn{cursor:pointer;color:#fff;background:#fff3;border:none;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s;display:flex}.staff-modal .modal-close-btn:hover{background:#ffffff4d}.staff-modal .modal-close-btn svg{width:20px;min-width:20px;height:20px;min-height:20px;display:block;overflow:visible}.staff-modal .modal-close-btn svg *{stroke:#fff!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.staff-modal .modal-body{padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{color:#374151;margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-group input,.form-group textarea{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;width:100%;padding:.9rem 1rem;font-family:inherit;font-size:.95rem;transition:all .2s}.form-group input:focus,.form-group textarea:focus{background:#fff;border-color:#7a8efb;outline:none;box-shadow:0 0 0 4px #7a8efb26}.form-group input::placeholder,.form-group textarea::placeholder{color:#9ca3af}.form-group textarea{resize:vertical;min-height:80px}.form-hint{color:#9ca3af;margin-top:.35rem;font-size:.8rem;display:block}.image-upload-section{flex-direction:column;align-items:center;gap:1rem;display:flex}.image-preview-circle{background:linear-gradient(#fff,#fff) padding-box padding-box,linear-gradient(135deg,#7a8efb 0%,#38b5fb 100%) border-box;border:4px solid #0000;border-radius:50%;width:140px;height:140px;position:relative;overflow:hidden;box-shadow:0 8px 25px #7a8efb40}.image-preview-circle img{object-fit:cover;width:100%;height:100%}.remove-image-btn{cursor:pointer;background:linear-gradient(135deg,#f2565d 0%,#f479a5 100%);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:absolute;top:5px;right:5px;box-shadow:0 2px 8px #f2565d4d}.remove-image-btn:hover{transform:scale(1.1);box-shadow:0 4px 12px #f2565d66}.remove-image-btn svg{width:16px;min-width:16px;height:16px;min-height:16px;display:block;overflow:visible}.remove-image-btn svg *{stroke:#fff!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.image-upload-placeholder{cursor:pointer;background:linear-gradient(135deg,#f9fafb 0%,#f3f4f6 100%);border:3px dashed #d1d5db;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;transition:all .3s;display:flex}.image-upload-placeholder:hover{background:linear-gradient(135deg,#f0f4ff 0%,#e8efff 100%);border-color:#7a8efb;transform:scale(1.02)}.upload-icon{background:linear-gradient(135deg,#7a8efb 0%,#38b5fb 100%);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:.5rem;display:flex}.upload-icon svg{width:20px;min-width:20px;height:20px;min-height:20px;display:block;overflow:visible}.upload-icon svg *{stroke:#fff!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.upload-text{color:#374151;text-align:center;font-size:.8rem;font-weight:600}.upload-hint{color:#9ca3af;margin-top:.2rem;font-size:.7rem}.hidden-file-input{display:none}.change-image-btn{color:#7a8efb;cursor:pointer;background:#7a8efb1a;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.change-image-btn:hover{background:#7a8efb33}.change-image-btn svg{width:16px;min-width:16px;height:16px;min-height:16px;display:block;overflow:visible}.change-image-btn svg *{stroke:#7a8efb!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.staff-modal .modal-footer{border-top:1px solid #e5e7eb;gap:1rem;margin-top:.5rem;padding-top:1rem;display:flex}.btn-cancel{color:#4b5563;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:14px;flex:1;padding:.9rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s}.btn-cancel:hover{background:#f9fafb;border-color:#d1d5db}.btn-save{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2cfffd,#7a8efb);border:none;border-radius:14px;flex:1;padding:.9rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s}.btn-save:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #7a8efb66}.btn-save:disabled{opacity:.6;cursor:not-allowed}.admin-header-actions{gap:.5rem;display:flex}.visibility-toggle-container{justify-content:center;margin-top:1rem;padding-bottom:.5rem;display:flex}.visibility-toggle-btn{cursor:pointer;border:none;border-radius:20px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.visibility-toggle-btn.visible{color:#fff;background:#ffffff40;border:1px solid #fff6}.visibility-toggle-btn.visible:hover{background:#ffffff59}.visibility-toggle-btn.hidden{color:#fff;background:#f2565de6;border:1px solid #ffffff4d}.visibility-toggle-btn.hidden:hover{background:#f2565d}.visibility-toggle-btn svg{flex-shrink:0;width:18px;min-width:18px;height:18px;min-height:18px;display:block;overflow:visible}.visibility-toggle-btn svg *{stroke:#fff!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.visibility-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.visibility-btn.is-visible{color:#3bb677;background:#3bb6771a}.visibility-btn.is-visible:hover{background:#3bb67733}.visibility-btn.is-hidden{color:#f2565d;background:#f2565d1a}.visibility-btn.is-hidden:hover{background:#f2565d33}.visibility-btn:disabled{opacity:.5;cursor:not-allowed}.visibility-btn svg{width:18px;min-width:18px;height:18px;min-height:18px;display:block;overflow:visible}.visibility-btn.is-visible svg *{stroke:#3bb677!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.visibility-btn.is-hidden svg *{stroke:#f2565d!important;stroke-width:2px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important}.hidden-badge{color:#fff;text-transform:uppercase;letter-spacing:.03em;z-index:5;background:linear-gradient(45deg,#fbdb47,#f2565d);border-radius:8px;padding:.3rem .7rem;font-size:.7rem;font-weight:700;position:absolute;top:12px;right:12px;box-shadow:0 2px 8px #f2565d4d}.staff-card-hidden{opacity:.7;border:2px dashed #f2565d66;position:relative}.staff-card-hidden .staff-card-image{filter:grayscale(50%)}.staff-card-hidden:hover{opacity:1}@media (max-width:768px){.staff-page-header{padding:1.5rem 1rem 3.5rem}.staff-help-container .header-title h1{font-size:1.75rem}.staff-content{padding:0 1rem 2rem}.staff-grid{grid-template-columns:1fr}.staff-card-image{padding:1.5rem 0}.staff-card-image img,.staff-avatar{width:130px;min-width:130px;height:130px;min-height:130px;font-size:2.5rem;border-radius:50%!important}}@media (max-width:480px){.staff-modal{max-width:100%;max-height:95vh;margin:.5rem}.staff-modal .modal-footer{flex-direction:column}}.qr-scanner-container{background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.page-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);margin-bottom:-2rem;padding:2rem 1.5rem 4rem;position:relative;overflow:hidden}@media (min-width:768px){.page-header{padding:2rem 3rem 4rem}}.page-header:after{content:"";background:linear-gradient(#f8faff 0%,#f0f4ff 100%);border-radius:30px 30px 0 0;height:60px;position:absolute;bottom:0;left:0;right:0}.header-top{justify-content:flex-end;align-items:center;margin-bottom:1.5rem;display:flex}.back-button{color:#fff;cursor:pointer;background:#fff3;border:1px solid #ffffff4d;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.back-button:hover{background:#ffffff4d;transform:translateY(-2px)}.back-button svg path,.back-button svg polyline{stroke:#fff!important;stroke-width:2px!important;fill:none!important}.header-title h1{color:#fff;margin:0 0 .5rem;font-size:2rem;font-weight:800}.header-title p{color:#ffffffe6;margin:0;font-size:1rem}.opening-hours-indicator{border-radius:12px;align-items:center;gap:12px;margin-bottom:1.5rem;padding:16px 20px;transition:all .3s;display:flex}.opening-hours-indicator.open{background:linear-gradient(135deg,#2bfcb126 0%,#38b5fb26 100%);border:2px solid #2bfcb1}.opening-hours-indicator.closed{background:linear-gradient(135deg,#fbdb4726 0%,#f2565d26 100%);border:2px solid #f2565d}.opening-hours-indicator .indicator-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.opening-hours-indicator.open .indicator-icon{background:linear-gradient(135deg,#2bfcb1 0%,#38b5fb 100%)}.opening-hours-indicator.closed .indicator-icon{background:linear-gradient(135deg,#fbdb47 0%,#f2565d 100%)}.opening-hours-indicator .indicator-icon svg{color:#fff;width:22px;height:22px}.opening-hours-indicator .indicator-text{flex-direction:column;gap:2px;display:flex}.opening-hours-indicator .indicator-text .status{font-size:1.1rem;font-weight:700}.opening-hours-indicator.open .indicator-text .status{color:#059669}.opening-hours-indicator.closed .indicator-text .status{color:#dc2626}.opening-hours-indicator .indicator-text .slot{color:#6b7280;font-size:.9rem}.opening-hours-indicator.open .indicator-text .slot{color:#047857}.opening-hours-indicator.closed .indicator-text .slot{color:#9a3412}.scanner-section{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.qr-reader{background:#1f2937;border-radius:16px;width:100%;max-width:400px;min-height:300px;display:none;overflow:hidden}.qr-reader.active{display:block}.qr-reader video{object-fit:cover;border-radius:16px;width:100%!important;height:auto!important}.qr-reader #qr-shaded-region{border-width:50px!important}#html5-qrcode-button-camera-permission,#html5-qrcode-button-camera-start,#html5-qrcode-button-camera-stop,#html5-qrcode-anchor-scan-type-change{display:none!important}.scan-button{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2cfffd,#7a8efb);border:none;border-radius:12px;justify-content:center;align-items:center;gap:12px;padding:16px 32px;font-size:1.1rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 12px #7a8efb4d}.scan-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}.scan-button:disabled{opacity:.6;cursor:not-allowed}.scan-button.scanning{background:linear-gradient(45deg,#fbdb47,#f2565d);box-shadow:0 4px 12px #f2565d4d}.scan-button.scanning:hover{box-shadow:0 6px 20px #ef444466}.scan-button svg{width:24px;height:24px}.scan-result{background:#fff;border-radius:16px;width:100%;padding:24px;animation:.3s slideUp;box-shadow:0 4px 12px #0000001a}.result-header{border-bottom:2px solid #e5e7eb;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;display:flex}.result-header svg{width:32px;height:32px}.result-header.success svg{color:#10b981}.result-header.warning svg{color:#f59e0b}.result-header.error svg{color:#ef4444}.result-header.info svg{color:#3b82f6}.result-header h2{color:#111827;margin:0;font-size:1.25rem;font-weight:700}.result-message{color:#4b5563;margin-bottom:20px;font-size:1rem;line-height:1.6}.reservation-details{background:#f9fafb;border-radius:12px;margin-bottom:20px;padding:20px}.user-info{border-bottom:1px solid #e5e7eb;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:16px;display:flex}.user-avatar{color:#fff;background:linear-gradient(45deg,#2cfffd,#7a8efb);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.25rem;font-weight:700;display:flex}.user-name{flex-direction:column;gap:4px;display:flex}.user-name strong{color:#111827;font-size:1.125rem}.user-name span{color:#6b7280;font-size:.9rem}.reservation-info{flex-direction:column;gap:12px;display:flex}.info-row{justify-content:space-between;align-items:center;display:flex}.info-row .label{color:#6b7280;font-size:.9rem}.info-row .value{color:#111827;font-size:.95rem;font-weight:600}.action-buttons{flex-direction:column;gap:12px;display:flex}.mark-present-button{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2bfcb1,#38b5fb);border:none;border-radius:12px;width:100%;padding:16px 24px;font-size:1.05rem;font-weight:600;transition:all .3s;box-shadow:0 4px 12px #2bfcb14d}.mark-present-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.mark-present-button:disabled{opacity:.6;cursor:not-allowed}.new-scan-button{color:#6b7280;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:12px;width:100%;padding:14px 24px;font-size:1rem;font-weight:600;transition:all .2s}.new-scan-button:hover{color:#3b82f6;background:#f0f7ff;border-color:#3b82f6}.entry-time-info{color:#92400e;text-align:center;background:#fef3c7;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-weight:500}.scanned-by-info{color:#1e40af;text-align:center;background:#dbeafe;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-weight:500}.instructions{background:#fff;border-radius:16px;margin-top:24px;padding:24px;box-shadow:0 2px 8px #0000000f}.instructions h3{color:#111827;margin:0 0 16px;font-size:1.1rem;font-weight:700}.instructions ol{color:#4b5563;margin:0;padding-left:24px}.instructions li{margin-bottom:8px;line-height:1.5}.access-denied{text-align:center;background:#fff;border-radius:16px;padding:48px 24px;box-shadow:0 2px 8px #0000000f}.denied-icon{color:#ef4444;width:64px;height:64px;margin-bottom:16px}.access-denied h2{color:#111827;margin:0 0 12px;font-size:1.5rem;font-weight:700}.access-denied p{color:#6b7280;margin:0 0 24px;font-size:1rem}.back-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:10px;padding:12px 24px;font-size:1rem;font-weight:600;transition:all .2s}.back-button:hover{transform:translateY(-2px)}.result-header.success.group{border-bottom-color:#f97316}.result-header.success.group svg{color:#f97316}.group-name-display{background:linear-gradient(135deg,#f9731626 0%,#ea580c26 100%);border:2px solid #f97316;border-radius:12px;align-items:center;gap:12px;margin-bottom:20px;padding:16px 20px;display:flex}.group-name-label{color:#9a3412;font-size:.9rem;font-weight:500}.group-name-value{color:#c2410c;font-size:1.25rem;font-weight:700}.user-avatar.group{background:linear-gradient(135deg,#f97316 0%,#ea580c 100%)}.mark-present-button.group{background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);box-shadow:0 4px 12px #f973164d}.mark-present-button.group:hover:not(:disabled){box-shadow:0 6px 20px #f9731666}.group-creator-info{background:linear-gradient(135deg,#f973161a 0%,#ea580c1a 100%);border:1px solid #f973164d;border-radius:10px;margin-top:16px;padding:12px 16px}.creator-header{color:#c2410c;align-items:center;gap:8px;margin-bottom:8px;font-size:.85rem;display:flex}.creator-header svg{width:16px;height:16px}.creator-name{color:#9a3412;align-items:center;gap:8px;font-size:1rem;font-weight:700;display:flex}.creator-badge{color:#fff;background:#f97316;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600}.group-members-list{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:16px}.members-header{color:#374151;margin-bottom:12px;font-size:.95rem;font-weight:600}.members-grid{flex-direction:column;gap:8px;display:flex}.member-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.member-item.current{background:linear-gradient(135deg,#f973161a 0%,#ea580c1a 100%);border-color:#f97316}.member-item.scanned{background:#d1fae5;border-color:#10b981}.member-name{color:#1f2937;font-weight:500}.member-status{color:#fff;background:#10b981;border-radius:10px;padding:2px 10px;font-size:.75rem;font-weight:600}.member-current{color:#fff;background:#f97316;border-radius:10px;padding:2px 10px;font-size:.75rem;font-weight:600}@media (max-width:640px){.page-content{padding:1.5rem 1rem}.scan-button{width:100%;padding:14px 24px}.reservation-details{padding:16px}.user-info{text-align:center;flex-direction:column}.info-row{flex-direction:column;align-items:flex-start;gap:4px}.member-item{flex-direction:column;align-items:flex-start;gap:6px}}.faq-container{color:#1f2937;background:linear-gradient(#f8faff 0%,#f0f4ff 100%);min-height:100vh;padding-bottom:2rem;font-family:Nexa,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.faq-header{background:linear-gradient(45deg,#2cfffd,#7a8efb);padding:2rem 1.5rem 4rem;position:relative}.faq-header:after{content:"";background:linear-gradient(#f8faff 0%,#f0f4ff 100%);border-radius:30px 30px 0 0;height:60px;position:absolute;bottom:0;left:0;right:0}.faq-header-content{z-index:10;max-width:900px;margin:0 auto;position:relative}.faq-header-top{justify-content:flex-start;margin-bottom:1.5rem;display:flex}.faq-back-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1f293799;border:2px solid #fffc;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex;box-shadow:0 4px 12px #0000004d}.faq-back-button:hover{background:#1f2937cc;transform:scale(1.05);box-shadow:0 6px 16px #0006}.faq-back-button svg{width:24px;height:24px;display:block;overflow:visible}.faq-back-button svg path{stroke:#fff!important;stroke-width:2.5px!important;fill:none!important}.faq-title{text-align:center}.faq-title h1{color:#fff;text-shadow:0 2px 15px #00000026;margin:0 0 .5rem;font-size:2.25rem;font-weight:800}.faq-title p{color:#ffffffe6;margin:0;font-size:1.05rem}.faq-content{z-index:10;max-width:900px;margin:0 auto;padding:0 1.5rem;position:relative}.faq-category{margin-bottom:2rem}.faq-category:last-of-type{margin-bottom:0}.faq-category-title{color:#1f2937;background:linear-gradient(135deg,#7a8efb14,#2cfffd14);border-left:4px solid #7a8efb;border-radius:12px;align-items:center;gap:.75rem;margin:0 0 1rem;padding:.75rem 1rem;font-size:1.1rem;font-weight:700;display:flex}.faq-category-emoji{font-size:1.25rem}.faq-list{flex-direction:column;gap:.75rem;display:flex}.faq-item{background:#fff;border:1px solid #7a8efb1a;border-radius:16px;transition:all .3s;overflow:hidden;box-shadow:0 2px 12px #7a8efb14}.faq-item:hover{box-shadow:0 4px 20px #7a8efb26}.faq-item.open{border-color:#7a8efb40}.faq-question{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1.25rem 1.5rem;font-family:inherit;transition:all .2s;display:flex}.faq-question:hover{background:#7a8efb08}.faq-question-text{color:#1f2937;font-size:1.05rem;font-weight:600;line-height:1.4}.faq-item.open .faq-question-text{color:#7a8efb}.faq-toggle-icon{background:#7a8efb1a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:all .3s;display:flex}.faq-toggle-icon svg{color:#7a8efb;width:18px;height:18px;transition:transform .3s}.faq-item.open .faq-toggle-icon{background:linear-gradient(45deg,#2cfffd,#7a8efb)}.faq-item.open .faq-toggle-icon svg{color:#fff;transform:rotate(180deg)}.faq-answer{max-height:0;transition:max-height .3s,padding .3s;overflow:hidden}.faq-item.open .faq-answer{max-height:1000px}.faq-answer-content{color:#4b5563;padding:0 1.5rem 1.5rem;font-size:.95rem;line-height:1.7}.faq-answer-content p{margin:0 0 1rem}.faq-answer-content p:last-child{margin-bottom:0}.faq-answer-content ul,.faq-answer-content ol{margin:.5rem 0;padding-left:1.25rem}.faq-answer-content li{margin-bottom:.5rem}.faq-answer-content strong{color:#1f2937}.faq-answer-content a{color:#7a8efb;font-weight:600;text-decoration:none}.faq-answer-content a:hover{text-decoration:underline}.faq-answer-content table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.9rem}.faq-answer-content table th,.faq-answer-content table td{text-align:left;border-bottom:1px solid #7a8efb26;padding:.75rem}.faq-answer-content table th{color:#1f2937;background:#7a8efb14;font-weight:600}.faq-answer-content table tr:hover{background:#7a8efb08}.faq-contact-section{text-align:center;background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #7a8efb26;border-radius:16px;margin-top:2rem;padding:1.5rem}.faq-contact-section h3{color:#1f2937;margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.faq-contact-section p{color:#6b7280;margin:0 0 1rem;font-size:.9rem}.faq-contact-btn{color:#fff;cursor:pointer;background:linear-gradient(45deg,#2cfffd,#7a8efb);border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.faq-contact-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #7a8efb4d}.faq-contact-btn svg{width:18px;height:18px}@media (max-width:768px){.faq-header{padding:1.5rem 1rem 3.5rem}.faq-title h1{font-size:1.75rem}.faq-content{padding:0 1rem}.faq-question{padding:1rem 1.25rem}.faq-question-text{font-size:.95rem}.faq-answer-content{padding:0 1.25rem 1.25rem;font-size:.9rem}}.group-reservation-container{background:linear-gradient(#fffbeb 0%,#fef3c7 50%,#fde68a 100%);min-height:100vh}.page-header.group-header{background:linear-gradient(135deg,#fbdb47 0%,#f97316 50%,#f2565d 100%)}.rules-banner.group-rules{background:linear-gradient(135deg,#f973161a 0%,#ea580c1a 100%);border:1px solid #f973164d;border-radius:16px;margin-bottom:2rem;padding:1.5rem}.rules-banner.group-rules .rules-header h2{color:#c2410c}.rules-banner.group-rules .rules-icon{color:#f97316}.rules-list{margin:1rem 0 0;padding:0;list-style:none}.rules-list li{color:#9a3412;margin-bottom:.75rem;padding-left:1.5rem;font-size:.95rem;position:relative}.rules-list li:before{content:"";background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);border-radius:50%;width:8px;height:8px;position:absolute;top:.5em;left:0}.rules-list li strong{color:#c2410c}.section-title{color:#1f2937;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.section-description{color:#6b7280;margin-bottom:1.5rem}.subsection-title{color:#374151;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.1rem;font-weight:600;display:flex}.subsection-title svg{color:#f97316;width:20px;height:20px}.selection-section{background:#fff;border-radius:16px;margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 2px 8px #0000000d}.date-buttons{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;display:grid}.date-button{cursor:pointer;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;flex-direction:column;align-items:center;padding:1rem;transition:all .2s;display:flex}.date-button:hover{background:#fff7ed;border-color:#f97316}.date-button.selected{background:linear-gradient(135deg,#f973161a 0%,#ea580c1a 100%);border-color:#f97316}.date-label{color:#1f2937;font-size:1rem;font-weight:600}.date-full{color:#6b7280;margin-top:.25rem;font-size:.85rem}.date-button.selected .date-label,.date-button.selected .date-full{color:#c2410c}.existing-reservations-preview{margin-bottom:1.5rem}.view-existing-button{color:#92400e;cursor:pointer;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:2px solid #f59e0b;border-radius:12px;align-items:center;gap:.75rem;width:100%;padding:1rem 1.5rem;font-weight:600;transition:all .2s;display:flex}.view-existing-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.view-existing-button svg{width:24px;height:24px}.join-hint{color:#fff;background:#f59e0b;border-radius:20px;margin-left:auto;padding:.25rem .75rem;font-size:.85rem}.time-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.75rem;display:grid}.time-button{color:#374151;cursor:pointer;background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;padding:.75rem .5rem;font-size:1rem;font-weight:600;transition:all .2s;position:relative}.time-button:hover:not(.disabled){background:#fff7ed;border-color:#f97316}.time-button.selected{color:#fff;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border-color:#f97316;box-shadow:0 4px 12px #f973164d}.time-button.disabled{color:#9ca3af;cursor:not-allowed;background:#fee2e2;border-color:#fecaca}.overlap-indicator{color:#ef4444;background:#fff;border-radius:4px;padding:0 .5rem;font-size:.65rem;position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%)}.duration-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem;display:grid}.duration-button{color:#374151;cursor:pointer;background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;padding:1rem;font-size:.95rem;font-weight:600;transition:all .2s}.duration-button:hover{background:#fff7ed;border-color:#f97316}.duration-button.selected{color:#fff;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border-color:#f97316;box-shadow:0 4px 12px #f973164d}.time-summary{border-top:1px solid #e5e7eb;justify-content:center;margin-top:1rem;padding-top:1rem;display:flex}.time-range{color:#fff;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border-radius:20px;padding:.75rem 1.5rem;font-size:1.25rem;font-weight:700;box-shadow:0 4px 12px #f973164d}.action-section{justify-content:center;padding:1.5rem 0;display:flex}.primary-button.large{background:linear-gradient(135deg,#fbdb47 0%,#f97316 50%,#f2565d 100%);padding:1rem 2.5rem;font-size:1.1rem;box-shadow:0 4px 15px #f9731666}.primary-button.large:hover{background:linear-gradient(135deg,#f97316 0%,#f2565d 100%);transform:translateY(-2px);box-shadow:0 6px 20px #f9731680}.reservations-list{flex-direction:column;gap:1rem;display:flex}.reservation-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000000d}.reservation-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.reservation-time{color:#1f2937;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;display:flex}.reservation-time svg{color:#f97316;width:24px;height:24px}.reservation-members{color:#6b7280;background:#f3f4f6;border-radius:20px;padding:.25rem .75rem;font-size:.85rem}.reservation-creator{color:#6b7280;margin-bottom:.75rem;font-size:.95rem}.reservation-members-list{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.member-chip{color:#c2410c;background:linear-gradient(135deg,#f973161a 0%,#ea580c1a 100%);border-radius:20px;padding:.25rem .75rem;font-size:.85rem;font-weight:500}.reservation-actions{justify-content:flex-end;display:flex}.join-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #f973164d}.join-button:hover{background:linear-gradient(135deg,#f97316 0%,#f2565d 100%);transform:translateY(-2px);box-shadow:0 6px 16px #f9731666}.join-button svg{width:20px;height:20px}.already-member{color:#10b981;align-items:center;gap:.5rem;font-weight:600;display:flex}.already-member:before{content:"";background:#10b981;border-radius:50%;width:8px;height:8px;display:inline-block}.group-full{color:#6b7280;font-style:italic}.error-banner{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:12px;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.5rem;display:flex}.error-banner svg{flex-shrink:0;width:24px;height:24px}.info-box{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;align-items:flex-start;gap:.75rem;margin-top:1rem;padding:1rem;display:flex}.info-box svg{flex-shrink:0;width:20px;height:20px;margin-top:.1rem}.info-box p{margin:0;font-size:.9rem}.success-modal .success-icon{justify-content:center;margin-bottom:1rem;display:flex}.success-modal .success-icon svg{width:64px;height:64px}.success-message{text-align:center;color:#065f46;font-size:1.1rem}.room-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.room-card{cursor:pointer;background:#fff;border-radius:16px;transition:all .3s;overflow:hidden;box-shadow:0 2px 8px #0000000d}.room-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #f9731626}.room-card.group-room{border:2px solid #f973164d}.room-image-wrapper{aspect-ratio:4/3;background:#f3f4f6;position:relative;overflow:hidden}.room-image-skeleton{background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 50%,#f3f4f6 75%) 0 0/200% 100%;animation:1.5s infinite shimmer;position:absolute;inset:0}.room-image-skeleton.hidden{display:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.room-image{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .3s}.room-image.loaded{opacity:1}.room-capacity-badge{color:#fff;background:#000000b3;border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:.85rem;font-weight:600;display:flex;position:absolute;top:12px;right:12px}.group-room-badge{color:#fff;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:600;position:absolute;top:12px;left:12px;box-shadow:0 2px 8px #f973164d}.room-content{padding:1rem 1.25rem 1.25rem}.room-title{color:#1f2937;margin:0 0 .75rem;font-size:1.1rem;font-weight:700}.room-features{flex-wrap:wrap;gap:.5rem;display:flex}.feature-tag{color:#6b7280;background:#f3f4f6;border-radius:20px;padding:.25rem .75rem;font-size:.8rem;font-weight:500}.feature-tag.warning{color:#92400e;background:#fef3c7}.breadcrumb{background:#fff;border-radius:12px;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;display:flex;box-shadow:0 1px 3px #0000001a}.breadcrumb .back-button{cursor:pointer;background:#f3f4f6;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.breadcrumb .back-button:before{content:"";border-bottom:2px solid #6b7280;border-left:2px solid #6b7280;width:8px;height:8px;display:inline-block;transform:rotate(45deg)}.breadcrumb-text{color:#374151;font-weight:600}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:20px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{padding:1.5rem 1.5rem 0}.modal-header h2{color:#1f2937;margin:0;font-size:1.5rem}.modal-body{padding:1.5rem}.modal-actions{gap:1rem;padding:0 1.5rem 1.5rem;display:flex}.modal-actions .primary-button,.modal-actions .secondary-button{cursor:pointer;border-radius:12px;flex:1;padding:.875rem 1.5rem;font-weight:600;transition:all .2s}.primary-button{color:#fff;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border:none;box-shadow:0 4px 12px #f973164d}.primary-button:hover{background:linear-gradient(135deg,#f97316 0%,#f2565d 100%);transform:translateY(-1px);box-shadow:0 6px 16px #f9731666}.primary-button:disabled{cursor:not-allowed;background:#d1d5db}.secondary-button{color:#374151;background:#fff;border:2px solid #e5e7eb}.secondary-button:hover{background:#f9fafb;border-color:#d1d5db}.confirmation-details{background:#f9fafb;border-radius:12px;padding:1rem}.detail-row{border-bottom:1px solid #e5e7eb;justify-content:space-between;padding:.75rem 0;display:flex}.detail-row:last-child{border-bottom:none}.detail-label{color:#6b7280}.detail-value{color:#1f2937;font-weight:600}.loading-text{text-align:center;color:#6b7280;padding:2rem}.page-content{max-width:800px;margin:0 auto;padding:1.5rem}.page-header{color:#fff;margin-bottom:-2rem;padding:1.5rem 1.5rem 4rem;position:relative}.page-header.group-header:after{content:"";background:linear-gradient(#fffbeb 0%,#fef3c7 100%);border-radius:30px 30px 0 0;height:60px;position:absolute;bottom:0;left:0;right:0}.header-content{z-index:10;max-width:800px;margin:0 auto;position:relative}.header-top{margin-bottom:1rem}.header-top .back-button{cursor:pointer;background:#fff3;border:none;border-radius:10px;justify-content:center;align-items:center;padding:.5rem;display:flex}.header-top .back-button:hover{background:#ffffff4d}.header-title h1{margin:0;font-size:1.75rem;font-weight:700}.header-title p{opacity:.9;margin:.5rem 0 0;font-size:.95rem}.user-reservations-info{border-radius:12px;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.user-reservations-info.has-reservations{background:linear-gradient(135deg,#10b9811a 0%,#0596691a 100%);border:1px solid #10b9814d}.user-reservations-info.no-reservations{background:linear-gradient(135deg,#f59e0b1a 0%,#d977061a 100%);border:1px solid #f59e0b4d}.user-reservations-info .info-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.user-reservations-info .info-icon.success{background:#10b98133}.user-reservations-info .info-icon.warning{background:#f59e0b33}.user-reservations-info .info-icon svg{width:24px;height:24px}.user-reservations-info .info-icon.success svg{color:#059669}.user-reservations-info .info-icon.warning svg{color:#d97706}.user-reservations-info .info-content{flex:1}.user-reservations-info .info-content strong{margin-bottom:.25rem;display:block}.user-reservations-info.has-reservations .info-content strong{color:#065f46}.user-reservations-info.no-reservations .info-content strong{color:#92400e}.user-reservations-info .info-content p{margin:0;font-size:.9rem}.user-reservations-info.has-reservations .info-content p{color:#047857}.user-reservations-info.no-reservations .info-content p{color:#b45309}.link-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border:none;border-radius:8px;margin-top:.75rem;padding:.5rem 1rem;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-block}.link-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f973164d}.group-name-input-container{flex-direction:column;display:flex}.group-name-input{color:#1f2937;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;width:100%;padding:1rem 1.25rem;font-size:1rem;transition:all .2s}.group-name-input:focus{background:#fff;border-color:#f97316;outline:none;box-shadow:0 0 0 4px #f973161a}.group-name-input::placeholder{color:#9ca3af}.input-hint{color:#6b7280;margin:.75rem 0 0;font-size:.85rem}.reservation-group-name{color:#c2410c;border-bottom:2px solid #fed7aa;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;font-size:1.3rem;font-weight:700;display:flex}.reservation-group-name svg{color:#f97316;width:28px;height:28px}.detail-row.highlight{background:linear-gradient(135deg,#f973161a 0%,#ea580c1a 100%);border-bottom:2px solid #f97316;border-radius:8px 8px 0 0;margin:-.75rem -1rem .75rem;padding:1rem}.detail-row.highlight .detail-label{color:#9a3412}.detail-row.highlight .detail-value{color:#c2410c;font-size:1.1rem}.room-specific-rules{background:linear-gradient(135deg,#f9731614 0%,#ea580c14 100%);border:1px solid #f9731633;border-radius:12px;margin-bottom:1.5rem;padding:1rem 1.25rem}.room-specific-rules ul{flex-wrap:wrap;gap:.75rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.room-specific-rules li{color:#9a3412;padding-left:1rem;font-size:.9rem;position:relative}.room-specific-rules li:before{content:"";background:#f97316;border-radius:50%;width:6px;height:6px;position:absolute;top:.5em;left:0}.slots-grid{flex-direction:column;gap:1rem;display:flex}.slot-card-wrapper{flex-direction:column;gap:.5rem;display:flex}.slot-card{cursor:pointer;text-align:left;background:#fff;border:2px solid #e5e7eb;border-radius:14px;flex-direction:column;align-items:stretch;padding:1rem 1.25rem;transition:all .2s;display:flex}.slot-card:hover:not(.taken):not(.member){background:#fff7ed;border-color:#f97316;transform:translateY(-2px);box-shadow:0 4px 12px #f9731626}.slot-card.selected{background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);border-color:#f97316;box-shadow:0 6px 16px #f973164d}.slot-card.selected .slot-time{color:#fff}.slot-card.taken{cursor:not-allowed;opacity:.7;background:#f9fafb;border-color:#d1d5db}.slot-card.member{cursor:default;background:linear-gradient(135deg,#10b9811a 0%,#0596691a 100%);border-color:#10b981}.slot-time{color:#1f2937;margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.slot-group-info{border-top:1px dashed #e5e7eb;justify-content:space-between;align-items:center;margin-top:.25rem;padding:.5rem 0;display:flex}.slot-group-info .group-name{color:#c2410c;font-size:.95rem;font-weight:600}.slot-group-info .group-members{color:#6b7280;background:#f3f4f6;border-radius:20px;padding:.25rem .75rem;font-size:.8rem;font-weight:500}.slot-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:20px;align-self:flex-start;margin-top:.5rem;padding:.35rem .85rem;font-size:.8rem;font-weight:600;display:inline-block}.slot-badge.member{color:#059669;background:#10b98133}.slot-badge.join{color:#fff;cursor:pointer;background:linear-gradient(135deg,#fbdb47 0%,#f97316 100%);animation:2s infinite pulse-glow}@keyframes pulse-glow{0%,to{box-shadow:0 0 #f9731666}50%{box-shadow:0 0 0 8px #f9731600}}.slot-badge.full{color:#9ca3af;background:#f3f4f6}.slot-warning{color:#92400e;background:linear-gradient(135deg,#fbbf2426 0%,#f59e0b26 100%);border:1px solid #f59e0b4d;border-radius:10px;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.slot-warning svg{color:#f59e0b;flex-shrink:0;width:18px;height:18px}.slot-warning span{flex:1;line-height:1.4}.warning-box{color:#92400e;background:linear-gradient(135deg,#fbbf2426 0%,#f59e0b26 100%);border:1px solid #f59e0b66;border-radius:12px;align-items:flex-start;gap:.75rem;margin-top:1rem;padding:1rem;display:flex}.warning-box svg{color:#f59e0b;flex-shrink:0;width:24px;height:24px}.warning-box p{margin:0;font-size:.9rem;line-height:1.5}@media (max-width:640px){.time-grid{grid-template-columns:repeat(4,1fr)}.duration-grid{grid-template-columns:repeat(2,1fr)}.room-grid{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.user-reservations-info{text-align:center;flex-direction:column;align-items:stretch}.user-reservations-info .info-icon{margin:0 auto}.room-specific-rules ul{flex-direction:column;gap:.5rem}.slot-card{padding:1rem}.slot-time{font-size:1.1rem}}
