*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;background-color:#f9fafb;color:#1f2937}.input,input,select,textarea{width:100%;padding:.5rem .75rem;border:1px solid #e5e7eb;border-radius:.375rem;font-size:.875rem;margin-top:.25rem;margin-bottom:.75rem}.input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}*{transition:all .2s ease}.landing{min-height:100vh;overflow-x:hidden}.landing__nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;box-shadow:0 2px 10px #0000000d}.landing__nav--scrolled{background:#fffffffa;box-shadow:0 4px 20px #0000001a}.landing__nav-container{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.landing__nav-brand{font-size:1.5rem;font-weight:700;color:var(--black);cursor:pointer;transition:all .3s ease;-webkit-user-select:none;user-select:none}.landing__nav-brand:hover{transform:scale(1.05);opacity:.8}.landing__nav-brand-accent{color:var(--red);transition:color .3s ease}.landing__nav-brand:hover .landing__nav-brand-accent{color:var(--red)}.landing__nav-links{display:flex;align-items:center;gap:2rem}.landing__nav-link{background:none;border:none;color:var(--gray-700);font-size:.95rem;font-weight:500;cursor:pointer;text-decoration:none;transition:color .3s ease;padding:.5rem 0}.landing__nav-link:hover{color:var(--red)}.landing__nav-link--cta{background:var(--black);color:var(--white);padding:.6rem 1.5rem;border-radius:var(--border-radius);transition:all .3s ease}.landing__nav-link--cta:hover{background:var(--red);color:var(--white);transform:translateY(-2px);box-shadow:0 4px 12px #dc26264d}.landing__hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--black) 0%,var(--gray-800) 50%,var(--black) 100%);background-size:200% 200%;animation:gradientShift 15s ease infinite;overflow:hidden}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.landing__hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(220,38,38,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(220,38,38,.1) 0%,transparent 50%);animation:pulse 8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.landing__hero-overlay{position:absolute;inset:0;background:#0006}.landing__hero-content{position:relative;z-index:2;text-align:center;color:var(--white);padding:2rem;max-width:800px;margin:0 auto}.landing__hero-title{font-size:clamp(2.5rem,8vw,5rem);font-weight:800;margin-bottom:1rem;line-height:1.1;letter-spacing:-.02em}.landing__hero-title-accent{color:var(--red);display:inline-block;animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{text-shadow:0 0 10px rgba(220,38,38,.5)}to{text-shadow:0 0 20px rgba(220,38,38,.8),0 0 30px rgba(220,38,38,.5)}}.landing__hero-subtitle{font-size:clamp(1.25rem,3vw,2rem);font-weight:600;margin-bottom:1.5rem;color:var(--gray-200)}.landing__hero-description{font-size:clamp(1rem,2vw,1.25rem);line-height:1.8;margin-bottom:2.5rem;color:var(--gray-300);max-width:600px;margin-left:auto;margin-right:auto}.landing__hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.landing__hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--white);font-size:.875rem;animation:bounce 2s infinite;z-index:2}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-10px)}}.landing__hero-scroll-arrow{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--white);animation:scrollBounce 2s ease-in-out infinite}.landing__hero-scroll-arrow svg{width:100%;height:100%}@keyframes scrollBounce{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(10px);opacity:.7}}.landing__btn{padding:1rem 2.5rem;font-size:1rem;font-weight:600;border:none;border-radius:var(--border-radius);cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-block}.landing__btn--primary{background:var(--red);color:var(--white);box-shadow:0 4px 15px #dc26264d}.landing__btn--primary:hover{background:#b91c1c;transform:translateY(-2px);box-shadow:0 6px 20px #dc262666}.landing__btn--outline{background:transparent;color:var(--white);border:2px solid var(--white)}.landing__btn--outline:hover{background:var(--white);color:var(--black)}.landing__btn--full{width:100%}.landing__section{padding:6rem 0;position:relative}.landing__section--about{background:var(--white)}.landing__section--services{background:var(--gray-50)}.landing__section--gallery{background:var(--white)}.landing__section--testimonials{background:var(--gray-50)}.landing__container{max-width:1200px;margin:0 auto;padding:0 2rem}.landing__section-header{text-align:center;margin-bottom:4rem}.landing__section-title{font-size:clamp(2rem,5vw,3rem);font-weight:700;color:var(--black);margin-bottom:1rem}.landing__section-title-accent{color:var(--red)}.landing__section-subtitle{font-size:1.25rem;color:var(--gray-600);max-width:600px;margin:0 auto}.landing__fade-in{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.landing__fade-in.landing__visible{opacity:1;transform:translateY(0)}.landing__about-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.landing__about-text{font-size:1.125rem;line-height:1.8;color:var(--gray-700)}.landing__about-text p{margin-bottom:1.5rem}.landing__about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.landing__stat{text-align:center;padding:2rem;background:var(--gray-50);border-radius:var(--border-radius-lg);border:2px solid var(--gray-200);transition:all .3s ease}.landing__stat:hover{border-color:var(--red);transform:translateY(-5px);box-shadow:var(--shadow-lg)}.landing__stat-number{font-size:3rem;font-weight:800;color:var(--red);margin-bottom:.5rem}.landing__stat-label{font-size:1rem;color:var(--gray-600);font-weight:500}.landing__services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.landing__service-card{background:var(--white);padding:2.5rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow);text-align:center;transition:all .3s ease;border:2px solid transparent}.landing__service-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-xl);border-color:var(--red)}.landing__service-icon{width:80px;height:80px;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;color:var(--red);transition:all .4s ease;position:relative}.landing__service-icon svg{width:100%;height:100%;transition:all .4s ease}.landing__service-card:hover .landing__service-icon{transform:translateY(-10px) scale(1.1);color:var(--red)}.landing__service-card:hover .landing__service-icon svg{animation:iconPulse 1.5s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.landing__service-card:nth-child(1):hover .landing__service-icon svg{animation:iconRotate 2s ease-in-out infinite}.landing__service-card:nth-child(2):hover .landing__service-icon svg{animation:iconGlow 2s ease-in-out infinite}.landing__service-card:nth-child(3):hover .landing__service-icon svg{animation:iconBounce 1s ease-in-out infinite}.landing__service-card:nth-child(4):hover .landing__service-icon svg{animation:iconShake .5s ease-in-out infinite}.landing__service-card:nth-child(5):hover .landing__service-icon svg{animation:iconPulse 1.5s ease-in-out infinite}.landing__service-card:nth-child(6):hover .landing__service-icon svg{animation:iconFloat 2s ease-in-out infinite}@keyframes iconRotate{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@keyframes iconGlow{0%,to{filter:drop-shadow(0 0 5px rgba(220,38,38,.5))}50%{filter:drop-shadow(0 0 15px rgba(220,38,38,.8))}}@keyframes iconBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes iconShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes iconFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(5deg)}}.landing__service-title{font-size:1.5rem;font-weight:700;color:var(--black);margin-bottom:1rem}.landing__service-description{color:var(--gray-600);line-height:1.7}.landing__gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.landing__gallery-item{position:relative;aspect-ratio:16/9;border-radius:var(--border-radius-lg);overflow:hidden;cursor:pointer;transition:transform .3s ease}.landing__gallery-item:hover{transform:scale(1.05)}.landing__gallery-image{width:100%;height:100%;position:relative}.landing__gallery-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--gray-800) 0%,var(--black) 100%);display:flex;align-items:center;justify-content:center;color:var(--white);font-size:1.5rem;font-weight:600}.landing__gallery-img{width:100%;height:100%;object-fit:cover;display:block}.landing__gallery-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.9),transparent);padding:2rem;color:var(--white);transform:translateY(100%);transition:transform .3s ease}.landing__gallery-item:hover .landing__gallery-overlay{transform:translateY(0)}.landing__gallery-title{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.landing__gallery-description{font-size:.875rem;color:var(--gray-300)}.landing__testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.landing__testimonial-card{background:var(--white);padding:2.5rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow);border-left:4px solid var(--red);transition:all .3s ease}.landing__testimonial-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-xl)}.landing__testimonial-stars{color:#fbbf24;font-size:1.5rem;margin-bottom:1rem;letter-spacing:.2rem}.landing__testimonial-text{font-size:1.125rem;line-height:1.8;color:var(--gray-700);margin-bottom:1.5rem;font-style:italic}.landing__testimonial-author{display:flex;flex-direction:column;gap:.25rem}.landing__testimonial-author strong{color:var(--black);font-size:1.125rem}.landing__testimonial-author span{color:var(--gray-500);font-size:.875rem}.landing__footer{background:var(--black);color:var(--white);padding:4rem 0 2rem}.landing__footer-content{display:grid;grid-template-columns:2fr 1fr 1fr;gap:4rem;margin-bottom:3rem}.landing__footer-title{font-size:1.5rem;font-weight:700;margin-bottom:1rem}.landing__footer-title-accent{color:var(--red)}.landing__footer-description{color:var(--gray-400);line-height:1.7;margin:0}.landing__footer-links-title{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:var(--white)}.landing__footer-link{display:block;color:var(--gray-400);text-decoration:none;margin-bottom:.75rem;transition:color .3s ease;background:none;border:none;text-align:left;font-size:1rem;cursor:pointer;font-family:inherit;padding:0}.landing__footer-link:hover{color:var(--red)}.landing__social-links{display:flex;gap:1rem;margin-top:1rem}.landing__social-link{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:50%;color:var(--white);transition:all .3s ease;text-decoration:none}.landing__social-link:hover{background:var(--red);transform:translateY(-3px)}.landing__footer-bottom{text-align:center;padding-top:2rem;border-top:1px solid rgba(255,255,255,.1);color:var(--gray-400)}.landing__footer-bottom p{margin:0}@media(max-width:768px){.landing__nav-container{padding:1rem;flex-direction:column;gap:1rem}.landing__nav-links{flex-wrap:wrap;gap:1rem;justify-content:center}.landing__hero-content{padding:1rem}.landing__hero-actions{flex-direction:column;width:100%}.landing__btn{width:100%}.landing__about-content{grid-template-columns:1fr;gap:2rem}.landing__about-stats,.landing__services-grid,.landing__gallery-grid,.landing__testimonials-grid{grid-template-columns:1fr}.landing__footer-content{grid-template-columns:1fr;gap:2rem}.landing__section{padding:4rem 0}}.landing__whatsapp-btn{position:fixed;bottom:2rem;left:2rem;width:60px;height:60px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);box-shadow:0 4px 20px #dc262666;z-index:1000;transition:all .3s ease;text-decoration:none;animation:whatsappPulse 2s ease-in-out infinite}.landing__whatsapp-btn:hover{transform:scale(1.1);box-shadow:0 6px 25px #dc262699;background:#b91c1c}.landing__whatsapp-btn svg{width:32px;height:32px}@keyframes whatsappPulse{0%,to{box-shadow:0 4px 20px #dc262666}50%{box-shadow:0 4px 25px #dc262699,0 0 0 10px #dc26261a}}.landing__scroll-top-btn{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;background:var(--red);border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);box-shadow:0 4px 20px #dc262666;z-index:1000;cursor:pointer;transition:opacity .5s cubic-bezier(.4,0,.2,1),transform .5s cubic-bezier(.4,0,.2,1),all .3s ease;opacity:0;transform:translateY(20px) scale(.8);pointer-events:none}.landing__scroll-top-btn--visible{opacity:1;transform:translateY(0) scale(1);pointer-events:all}.landing__scroll-top-btn:hover{transform:translateY(-5px);box-shadow:0 6px 25px #dc262699;background:#b91c1c}.landing__scroll-top-btn svg{width:24px;height:24px}html{scroll-behavior:smooth}@media(max-width:768px){.landing__whatsapp-btn{width:56px;height:56px;bottom:1.5rem;left:1.5rem}.landing__whatsapp-btn svg{width:28px;height:28px}.landing__scroll-top-btn{width:46px;height:46px;bottom:1.5rem;right:1.5rem}.landing__scroll-top-btn svg{width:20px;height:20px}}.landing__modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.landing__modal-content{position:relative;max-width:90%;max-height:90%;display:flex;align-items:center;justify-content:center}.landing__modal-img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 10px 40px #00000080}.landing__modal-close{position:absolute;top:-50px;right:0;background:transparent;border:none;color:var(--white);font-size:2rem;cursor:pointer;padding:.5rem;transition:transform .2s ease,color .2s ease;z-index:10001}.landing__modal-close:hover{transform:scale(1.1);color:var(--accent)}.landing__modal-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;color:var(--white);font-size:1.5rem;cursor:pointer;transition:all .3s ease;z-index:10001}.landing__modal-nav:hover{background:#fff3;border-color:var(--accent);color:var(--accent);transform:translateY(-50%) scale(1.1)}.landing__modal-nav--prev{left:-70px}.landing__modal-nav--next{right:-70px}.landing__modal-counter{position:absolute;bottom:-50px;left:50%;transform:translate(-50%);color:var(--white);font-size:1rem;font-weight:500;background:#00000080;padding:.5rem 1rem;border-radius:20px}@media(max-width:768px){.landing__modal-content{max-width:95%;max-height:95%}.landing__modal-nav{width:40px;height:40px;font-size:1.2rem}.landing__modal-nav--prev{left:10px}.landing__modal-nav--next{right:10px}.landing__modal-close{top:10px;right:10px;font-size:1.5rem}.landing__modal-counter{bottom:10px}}:root{--black: #1a1a1a;--white: #ffffff;--red: #dc2626;--red-light: #fef2f2;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--primary: #2563eb;--primary-hover: #1d4ed8;--success: #059669;--warning: #d97706;--danger: #dc2626;--info: #0891b2;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--border-radius: .375rem;--border-radius-lg: .5rem;--border-radius-xl: .75rem;--border-width: 1px;--border-color: var(--gray-200);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;color:var(--gray-800);background-color:var(--gray-50)}.app-container,.app{min-height:100vh;background-color:var(--gray-50)}.header{background:var(--white);border-bottom:var(--border-width) solid var(--border-color);padding:var(--spacing-4) var(--spacing-6);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.header__content{display:flex;justify-content:space-between;align-items:center}.header__title{font-size:1.5rem;font-weight:600;color:var(--black);margin:0}.header__title-accent{color:var(--red)}.admin-header{background:var(--white);border-bottom:var(--border-width) solid var(--border-color);padding:var(--spacing-4) var(--spacing-6);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.admin-header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.admin-title{font-size:1.5rem;font-weight:600;color:var(--black)}.page,.page-container{max-width:1200px;margin:0 auto;padding:var(--spacing-6)}.page__header{margin-bottom:var(--spacing-6)}.page__title{font-size:1.875rem;font-weight:700;color:var(--black);margin-bottom:var(--spacing-2)}.page__subtitle{color:var(--gray-600);font-size:1.125rem}.card{background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow);margin-bottom:var(--spacing-6)}.card__header,.card-header{border-bottom:var(--border-width) solid var(--border-color);padding-bottom:var(--spacing-4);margin-bottom:var(--spacing-4)}.card__title,.card-title{font-size:1.25rem;font-weight:600;color:var(--black)}.table,.data-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow)}.table__head,.data-table thead{background:var(--gray-100);border-bottom:2px solid var(--border-color)}.table__header,.data-table th{padding:var(--spacing-2) var(--spacing-3);text-align:left;font-weight:600;color:var(--gray-700);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;border-right:1px solid var(--border-color)}.table__header:last-child,.data-table th:last-child{border-right:none}.table__row:hover,.data-table tbody tr:hover{background:var(--gray-50)}.table__row:last-child .table__cell,.data-table tbody tr:last-child td{border-bottom:none}.table__cell,.data-table td{padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);font-size:.8rem}.table__cell:last-child,.data-table td:last-child{border-right:none}.table-wrapper,.table-responsive{overflow-x:auto}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-2) var(--spacing-4);border:var(--border-width) solid transparent;border-radius:var(--border-radius);font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;gap:var(--spacing-2);background:transparent}.btn:focus{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary,.btn-primary{background:var(--black);color:var(--white);border-color:var(--black)}.btn--primary:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--gray-800);border-color:var(--gray-800)}.btn--danger,.btn-danger{background:var(--red);color:var(--white);border-color:var(--red)}.btn--danger:hover:not(:disabled),.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn--success,.btn-success{background:var(--success);color:var(--white);border-color:var(--success)}.btn--success:hover:not(:disabled),.btn-success:hover:not(:disabled){background:#047857;border-color:#047857}.btn--outline,.btn-outline{background:transparent;color:var(--gray-700);border-color:var(--border-color)}.btn--outline:hover:not(:disabled),.btn-outline:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-300)}.btn--small,.btn-sm{padding:var(--spacing-1) var(--spacing-3);font-size:.75rem}.btn--large,.btn-lg{padding:var(--spacing-3) var(--spacing-6);font-size:1rem}.btn-main{background:var(--black);color:var(--white);border:var(--border-width) solid var(--black);border-radius:var(--border-radius);padding:var(--spacing-2) var(--spacing-4);font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-block}.btn-main:hover{background:var(--gray-800);border-color:var(--gray-800)}.btn-main.danger{background:var(--danger);border-color:var(--danger)}.btn-main.danger:hover{background:#b91c1c;border-color:#b91c1c}.form__group,.form-group{margin-bottom:var(--spacing-4)}.form__label,.form-label{display:block;font-weight:500;color:var(--gray-700);margin-bottom:var(--spacing-2);font-size:.875rem}.form__input,.form-input,input.form-input,select.form-input,textarea.form-input{width:100%;padding:var(--spacing-2) var(--spacing-3);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);font-size:.875rem;transition:border-color .2s ease;background:var(--white)}.form__input:focus,.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form__input::placeholder,.form-input::placeholder{color:var(--gray-400)}.form__select,select.form-input{cursor:pointer}.form__textarea{resize:vertical;min-height:100px}.form__checkbox,.form__radio{margin-right:var(--spacing-2);cursor:pointer}.grid{display:grid;gap:var(--spacing-6)}.grid--cols-1,.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid--cols-2,.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--cols-3,.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--cols-4,.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.modal,.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-4)}.modal__card,.modal-card{background:var(--white);border-radius:var(--border-radius-lg);padding:var(--spacing-6);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.modal__header,.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-3);border-bottom:var(--border-width) solid var(--border-color)}.modal__body,.modal-body{padding:var(--spacing-4) 0}.modal__title,.modal-title{font-size:1.25rem;font-weight:600;color:var(--black)}.modal__close,.btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--gray-500);padding:var(--spacing-1)}.modal__close:hover,.btn-close:hover{color:var(--gray-700)}.layout{display:flex}.layout__main-content{width:100%;transition:margin-left .3s}.layout__header{background:var(--white);border-bottom:var(--border-width) solid var(--border-color);padding:var(--spacing-3) var(--spacing-5);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.layout__header-content{display:flex;justify-content:space-between;align-items:center}.layout__header-title{font-size:1.3rem;font-weight:600;color:var(--black);margin:0}.layout__header-title-accent{color:var(--red)}.layout__mobile-overlay{position:fixed;inset:0;background:#0006;z-index:1000}.layout__mobile-sidebar{position:absolute;background:var(--white);width:240px;height:100%;box-shadow:2px 0 6px #0000001a;padding-top:4rem}.layout__content{padding:1.5rem}.sidebar{background:var(--white);border-right:var(--border-width) solid var(--border-color);box-shadow:var(--shadow);min-height:100vh;position:fixed;left:0;top:0;padding-top:0;overflow:hidden;z-index:100;transition:width .3s}.sidebar--open{width:240px}.sidebar--closed{width:70px}.sidebar__navigation{display:flex;flex-direction:column;gap:.25rem;padding:.75rem}.sidebar__top{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border-color)}.sidebar__toggle{font-size:1.5rem;background:none;border:none;cursor:pointer;color:var(--gray-700);padding:.25rem .5rem;border-radius:var(--border-radius);transition:background .2s}.sidebar__toggle:hover{background:var(--gray-100)}.sidebar__brand{font-size:.875rem;font-weight:600;color:var(--gray-700)}.sidebar__navigation-link{display:flex;align-items:center;padding:.65rem .75rem;color:var(--gray-700);text-decoration:none;transition:all .2s ease;border-radius:var(--border-radius);font-weight:500;background:none;border:none;cursor:pointer;text-align:left}.sidebar__navigation-link:hover{background:var(--gray-50);color:var(--black)}.sidebar__navigation-link-icon{display:inline-block}.sidebar__navigation-link-label{margin-left:.5rem}.sidebar-link{display:flex;align-items:center;padding:var(--spacing-3) var(--spacing-4);color:var(--gray-700);text-decoration:none;transition:all .2s ease;border-radius:var(--border-radius);margin-bottom:var(--spacing-1);font-weight:500}.nav,.nav-links{display:flex;flex-direction:column;gap:var(--spacing-3);margin-bottom:var(--spacing-6)}.nav__link,.nav-links a{display:inline-block;padding:var(--spacing-3) var(--spacing-4);background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);color:var(--gray-700);text-decoration:none;transition:all .2s ease;font-weight:500}.nav__link:hover,.nav-links a:hover{background:var(--gray-50);border-color:var(--gray-300);color:var(--black)}.shift-card{display:flex;justify-content:space-between;align-items:center}.shift-card__content{flex:1}.shift-card__content-title{margin-bottom:.5rem;color:var(--gray-800)}.shift-card__content-datetime{margin-bottom:.25rem}.shift-card__actions-button{transition:all .2s ease}.shift-card__actions-button--reserved{background-color:#f0fdf4!important;border-color:#86efac!important;color:#166534!important}.shift-card__actions-button--reserved:hover{background-color:#dcfce7!important;border-color:#4ade80!important}.shift-card__modal{display:grid;gap:1rem}.shift-card__modal-message{margin-bottom:1rem}.shift-card__modal-actions{display:flex;gap:.5rem;justify-content:flex-end}.shift-form__title{margin-bottom:1rem}.shift-form__group{display:grid;gap:.5rem}.shift-form__capacity-group{gap:.75rem}.shift-form__capacity-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.shift-form__capacity-item{display:grid;gap:.6rem;padding:1rem;border-radius:.75rem;border:1px solid #e5e7eb;background:#fff;box-shadow:0 1px 2px #0f172a0a}.shift-form__capacity-label{font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.15rem}.shift-form__rate-group{display:grid;gap:.35rem}.shift-form__rate-label{font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--gray-500)}.shift-form__visibility-restricted{display:grid;gap:.75rem;margin-top:.75rem}.shift-form__visibility-classes-label{font-size:.875rem}.shift-form__visibility-classes-hint{font-size:.75rem;display:block;margin-top:.5rem}.shift-form__priority-label{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;cursor:pointer}.shift-form__submit-button{width:100%}.shift-table__empty-message{padding:2rem}.shift-table__row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);border-bottom:var(--border-width) solid var(--border-color)}.shift-table__row:last-child{border-bottom:none}.shift-table__row-content{flex:1}.shift-table__row-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.shift-table__row-datetime{margin-bottom:.25rem}.shift-table__row-contact{margin-top:.25rem}.shift-table__row-actions{display:flex;gap:var(--spacing-2)}.shift-table__detail{display:grid;gap:1.5rem}.shift-table__detail-section-title{margin-bottom:.75rem;font-size:1rem}.shift-table__detail-section-content{display:grid;gap:.5rem}.shift-table__detail-item{display:flex;justify-content:space-between;padding:.5rem;background:var(--gray-50);border-radius:var(--border-radius)}.shift-table__detail-capacity{display:grid;gap:.5rem}.shift-table__detail-capacity-item{padding:.5rem;background:var(--gray-50);border-radius:var(--border-radius)}.shift-table__detail-capacity-header{display:flex;justify-content:space-between}.shift-table__detail-capacity-details{font-size:.75rem;margin-top:.25rem}.shift-table__detail-reservations-empty{padding:1rem;text-align:center;background:var(--gray-50);border-radius:var(--border-radius)}.shift-table__detail-reservations{display:grid;gap:.5rem;max-height:300px;overflow-y:auto}.shift-table__detail-reservation{padding:.75rem;background:var(--gray-50);border-radius:var(--border-radius);border:1px solid var(--border-color)}.shift-table__detail-reservation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.shift-table__detail-reservation-role{font-size:.75rem;padding:.25rem .5rem;background:var(--primary);color:#fff;border-radius:var(--border-radius);font-weight:500}.shift-table__detail-reservation-info{font-size:.875rem}.shift-table__detail-reservation-attendance{margin-top:.25rem;font-size:.875rem}.shift-table__detail-reservation-attendance-status{font-weight:500}.shift-table__detail-reservation-attendance-status--present{color:var(--success)}.shift-table__detail-reservation-attendance-status--absent{color:var(--danger)}.ban-modal{display:grid;gap:1rem}.ban-modal__alert{padding:1rem;background:var(--red-light);border-radius:var(--border-radius);border:1px solid var(--danger)}.ban-modal__alert-title{color:var(--danger);font-weight:600;margin-bottom:.5rem;font-size:1rem;margin:0 0 .5rem}.ban-modal__alert-message{color:var(--gray-700);font-size:.875rem;margin:0 0 .5rem}.ban-modal__alert-reason{margin-top:.75rem;padding:.75rem;background:var(--white);border-radius:var(--border-radius);border:1px solid var(--gray-200)}.ban-modal__alert-reason-label{color:var(--gray-600);font-size:.875rem;font-weight:600;margin-bottom:.25rem;margin:0 0 .25rem}.ban-modal__alert-reason-text{color:var(--gray-800);font-size:.875rem;margin:.25rem 0 0}.ban-modal__timer{padding:.75rem;background:var(--gray-50);border-radius:var(--border-radius)}.ban-modal__timer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.ban-modal__timer-label{color:var(--gray-600);font-size:.875rem}.ban-modal__timer-value{color:var(--danger);font-size:1rem}.ban-modal__timer-hint{color:var(--gray-600);font-size:.75rem;margin:0;font-style:italic}.ban-modal__actions{display:flex;justify-content:flex-end;margin-top:.5rem}.user-shifts__header{text-align:center}.user-shifts__header-title{font-size:1.5rem;font-weight:600;color:var(--black);margin-bottom:.5rem;margin:0 0 .5rem}.user-shifts__header-title-accent{color:var(--red)}.user-shifts__header-subtitle{margin:0}.user-shifts__list{margin-top:1.5rem;display:grid;gap:1rem}.coordinator-shifts__header{text-align:center}.coordinator-shifts__header-title{font-size:1.5rem;font-weight:600;color:var(--black);margin-bottom:.5rem;margin:0 0 .5rem}.coordinator-shifts__header-title-accent{color:var(--red)}.coordinator-shifts__header-subtitle{margin:0}.coordinator-shifts__list{margin-top:1.5rem;display:grid;gap:1rem}.payments-page__header{text-align:center}.payments-page__header-title{margin:0 0 .5rem}.payments-page__header-title-accent{color:var(--red)}.payments-page__header-subtitle{margin:0}.payments-page__empty{padding:2rem;text-align:center}.payments-page__summary{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--gray-50);border-radius:var(--border-radius);border:1px solid var(--border-color);margin-bottom:1.5rem}.payments-page__summary-item{display:flex;flex-direction:column;gap:.25rem}.payments-page__summary-item--right{text-align:right}.payments-page__summary-label{font-size:.875rem}.payments-page__summary-value{font-size:1.5rem;font-weight:700}.payments-page__summary-value--count{color:var(--primary)}.payments-page__summary-value--total{color:var(--success)}.payments-page__table-reason{font-size:.875rem}.shift-personnel-manager{display:flex;flex-direction:column;gap:1.5rem}.shift-personnel-manager__header-title{margin:0 0 .5rem}.shift-personnel-manager__header-meta{margin:0}.shift-personnel-manager__alert{margin-top:1rem;padding:1rem;border-radius:var(--border-radius);border:1px solid}.shift-personnel-manager__alert--pending{background-color:#fef3c7;border-color:#fbbf24;color:#92400e}.shift-personnel-manager__alert--closed{background-color:#fee2e2;border-color:#f87171;color:#991b1b}.shift-personnel-manager__alert-title{font-weight:600}.shift-personnel-manager__alert-message{margin:.5rem 0 0;font-size:.875rem}.shift-personnel-manager__empty{padding:2rem}.shift-personnel-manager__table-cell{vertical-align:top}.shift-personnel-manager__table-cell--area{text-transform:capitalize}.shift-personnel-manager__attendance{font-weight:500}.shift-personnel-manager__attendance--arrived{color:var(--success)}.shift-personnel-manager__attendance--missed{color:var(--danger)}.shift-personnel-manager__payments{font-size:.875rem;display:grid;gap:.25rem}.shift-personnel-manager__payments-empty{font-size:.875rem}.shift-personnel-manager__rating{display:grid;gap:.25rem}.shift-personnel-manager__rating-stars{display:flex;gap:.1rem}.shift-personnel-manager__rating-star{font-size:1rem;color:#d1d5db}.shift-personnel-manager__rating-star--active{color:#fbbf24}.shift-personnel-manager__rating-comment{font-size:.75rem}.shift-personnel-manager__rating-empty{font-size:.875rem}.shift-personnel-manager__action-button{transition:opacity .2s ease,cursor .2s ease}.shift-personnel-manager__action-button--disabled{opacity:.5;cursor:not-allowed}.shift-personnel-manager__whatsapp-link{color:#25d366!important;text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;transition:opacity .2s}.shift-personnel-manager__whatsapp-link:hover{opacity:.8;text-decoration:underline}.personnel-modal{display:grid;gap:1.5rem}.personnel-modal__section{display:grid;gap:.75rem}.personnel-modal__grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.personnel-modal__field{display:grid;gap:.5rem}.personnel-modal__info{padding:.75rem;background-color:#f3f4f6;border-radius:var(--border-radius);color:#6b7280;font-size:.875rem}.personnel-modal__info-status{font-weight:500}.personnel-modal__info-status--arrived{color:var(--success)}.personnel-modal__info-status--missed{color:var(--danger)}.personnel-modal__info-hint{margin:.5rem 0 0}.personnel-modal__info-list{display:grid;gap:.25rem}.personnel-modal__payments{display:grid;gap:.75rem}.personnel-modal__payment-field{display:grid;gap:.5rem}.personnel-modal__checkbox{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.personnel-modal__payment-extra{display:grid;gap:.5rem}.personnel-modal__payment-extra-label{font-size:.875rem}.personnel-modal__payment-extra-reason{margin-top:.5rem}.personnel-modal__attendance-buttons{display:flex;gap:.5rem}.personnel-modal__attendance-button{flex:1}.personnel-modal__attendance-button--active-success{background-color:var(--success);color:var(--white);border-color:var(--success)}.personnel-modal__attendance-button--active-danger{background-color:var(--danger);color:var(--white);border-color:var(--danger)}.personnel-modal__rating-editor{display:grid;gap:.5rem}.personnel-modal__rating-comment{margin-top:.5rem}.personnel-modal__actions{display:flex;gap:.5rem;justify-content:flex-end}.invoice-page__header{text-align:center}.invoice-page__header-title{margin:0 0 .5rem}.invoice-page__header-title-accent{color:var(--red)}.invoice-page__header-subtitle{margin:0}.invoice-page__filters{margin-bottom:1.5rem;display:grid;gap:.5rem}.invoice-page__filters-label{font-weight:500}.invoice-page__filters-select{max-width:220px}.invoice-page__empty{padding:2rem;text-align:center}.invoice-page__summary{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--gray-50);border-radius:var(--border-radius);border:1px solid var(--border-color);margin-bottom:1.5rem}.invoice-page__summary-item{display:flex;flex-direction:column;gap:.25rem}.invoice-page__summary-item--right{text-align:right}.invoice-page__summary-label{font-size:.875rem}.invoice-page__summary-value{font-size:1.5rem;font-weight:700}.invoice-page__summary-value--count{color:var(--primary)}.invoice-page__summary-value--total{color:var(--success)}.invoice-page__table-reason{font-size:.75rem;margin-top:.25rem}.invoice-page__generate-button{width:100%;margin-top:1.5rem}.user-form{display:grid;gap:1rem}.user-form__group{display:grid;gap:.5rem}.user-form__hint{font-size:.875rem;margin-top:.25rem;display:block}.user-form__actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.user-avatar{position:relative}.user-avatar__button{display:flex;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;padding:.5rem;border-radius:var(--border-radius-lg);transition:background .2s}.user-avatar__button:hover{background:var(--gray-100)}.user-avatar__initials{width:40px;height:40px;border-radius:50%;background:var(--badge-color);background-image:linear-gradient(135deg,#ffffff26,#00000026);display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:700;font-size:.875rem;box-shadow:var(--shadow)}.user-avatar__info{display:flex;flex-direction:column;align-items:flex-start}.user-avatar__name{font-size:.875rem;font-weight:500;color:var(--gray-800)}.user-avatar__role{font-size:.75rem;color:var(--badge-color);font-weight:500}.user-avatar__chevron{font-size:.75rem;color:var(--gray-500)}.user-avatar__menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:var(--white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);min-width:250px;z-index:1000;overflow:hidden}.user-avatar__menu-header{padding:1rem;border-bottom:1px solid var(--border-color);background:var(--gray-50)}.user-avatar__menu-name{font-weight:500;color:var(--gray-800);margin-bottom:.25rem}.user-avatar__menu-id{font-size:.875rem;color:var(--gray-500)}.user-avatar__menu-role{font-size:.75rem;color:var(--badge-color);font-weight:500;margin-top:.25rem}.user-avatar__menu-body{padding:.5rem;display:grid;gap:.5rem}.user-avatar__menu-item{width:100%;padding:.75rem 1rem;text-align:left;background:none;border:none;cursor:pointer;border-radius:var(--border-radius);color:var(--gray-700);font-size:.875rem;display:flex;align-items:center;gap:.5rem;transition:background .2s}.user-avatar__menu-item:hover{background:var(--gray-50)}.user-avatar__menu-item--logout{color:var(--danger)}.user-avatar__menu-item--logout:hover{background:var(--red-light)}.user-avatar__menu-divider{height:1px;background:var(--border-color);margin:.5rem 0}.navbar-mobile{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--white);border-bottom:1px solid var(--border-color)}.navbar-mobile__toggle{font-size:1.5rem;background:none;border:none;cursor:pointer;color:var(--gray-700);padding:.5rem;border-radius:var(--border-radius);transition:background .2s}.navbar-mobile__toggle:hover{background:var(--gray-100)}.navbar-mobile__title{margin:0;font-size:1.25rem;font-weight:600;color:var(--gray-800)}.navbar-mobile__title-accent{color:var(--red)}.star-rating{display:flex;align-items:center;gap:.1rem}.star-rating__star{font-size:var(--star-size, 1rem);color:#d1d5db}.star-rating__star--filled,.star-rating__star--half{color:#fbbf24}.star-rating__value{margin-left:.25rem;font-size:.875rem}.star-input{display:flex;gap:.25rem;cursor:pointer}.star-input__star{display:inline-block;font-size:var(--star-size, 1.5rem);color:#d1d5db;transition:color .2s}.star-input__star--active{color:#fbbf24}.star-input__star--half{background:linear-gradient(90deg,#fbbf24 50%,#d1d5db 50%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:#fbbf24}.edit-user-modal__rating-override{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.edit-user-modal__rating-override-value{font-weight:500;color:var(--gray-700)}.edit-user-modal__rating-override-clear{padding:.3rem .65rem}.edit-user-modal__rating-override-number{width:6rem;min-width:6rem;padding:.35rem .5rem}.people-page__table-row--editing{background:#f9fafb}.form__input--inline{width:100%;padding:.35rem .5rem;font-size:.9rem;min-height:auto}.form__input--inline.form__select{padding-right:1.75rem}.profile-page{max-width:720px;margin:0 auto}.profile-page__header{text-align:center}.profile-page__avatar{width:100px;height:100px;border-radius:50%;background:var(--profile-badge-color);background-image:linear-gradient(135deg,#ffffff26,#00000026);display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:700;font-size:2rem;margin:0 auto 1rem;box-shadow:var(--shadow-lg)}.profile-page__name{margin:0 0 .5rem;font-size:1.5rem;font-weight:600;color:var(--gray-900)}.profile-page__role{font-size:1rem;font-weight:500;color:var(--profile-badge-color);margin:0}.profile-page__content{display:grid;gap:1.5rem}.profile-page__section{display:grid;gap:1rem}.profile-page__section-title{margin:0;font-size:1rem;font-weight:600;color:var(--gray-900)}.profile-page__details{display:grid;gap:.75rem}.profile-page__detail{display:flex;justify-content:space-between;padding:.75rem;background:var(--gray-50);border-radius:var(--border-radius)}.profile-page__detail-label{font-size:.875rem}.profile-page__detail-value{font-weight:600}.profile-page__status--approved{color:var(--success)}.profile-page__status--pending{color:var(--warning)}.profile-page__rating-card{text-align:center;padding:2rem;background:var(--gray-50);border-radius:var(--border-radius)}.profile-page__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.profile-page__stat{padding:1rem;background:var(--gray-50);border-radius:var(--border-radius);text-align:center;display:grid;gap:.25rem}.profile-page__stat-value{font-size:2rem;font-weight:700}.profile-page__stat-value--primary{color:var(--primary)}.profile-page__stat-value--success{color:var(--success)}.profile-page__stat-value--danger{color:var(--danger)}.profile-page__stat-label{font-size:.875rem}.profile-page__subsection{display:grid;gap:1rem}.penalties-page{display:grid;gap:1.5rem}.penalties-page__header{text-align:center}.penalties-page__title{margin:0;font-size:1.5rem;font-weight:600}.penalties-page__title-accent{color:var(--red)}.penalties-page__subtitle{margin:0}.penalties-page__notice{margin-top:.5rem;padding:.5rem;background:var(--gray-50);border-radius:var(--border-radius);font-size:.875rem;color:var(--gray-600)}.penalties-page__section{margin-top:0}.penalties-page__empty{padding:2rem}.penalties-page__time-remaining{color:var(--danger);font-weight:500}.penalties-page__user-id{font-size:.75rem}.penalties-page__status{font-weight:500;font-size:.875rem}.penalties-page__status--active{color:var(--danger)}.penalties-page__status--expired{color:var(--gray-500)}.admin-dashboard{max-width:680px;margin:0 auto}.admin-dashboard__card{padding-bottom:1.5rem}.admin-dashboard__header{text-align:center}.admin-dashboard__title{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.admin-dashboard__title-accent{color:var(--red)}.admin-dashboard__subtitle{margin:0}.admin-dashboard__links{display:grid;gap:1rem;margin-top:1.5rem}.admin-dashboard__link{display:block;padding:1rem;background:var(--gray-50);border-radius:var(--border-radius);border:1px solid var(--border-color);text-decoration:none;color:var(--gray-800);font-weight:500;transition:background .2s,border-color .2s,color .2s}.admin-dashboard__link:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-900)}.user-dashboard{max-width:520px;margin:0 auto}.user-dashboard__card{padding-bottom:1.5rem}.user-dashboard__header{text-align:center}.user-dashboard__title{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.user-dashboard__title-accent{color:var(--red)}.user-dashboard__subtitle{margin:0}.user-dashboard__link{width:100%;display:block;text-align:center;margin-top:1.5rem}.coordinator-dashboard{max-width:620px;margin:0 auto}.coordinator-dashboard__card{padding-bottom:1.5rem}.coordinator-dashboard__header{text-align:center}.coordinator-dashboard__title{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.coordinator-dashboard__title-accent{color:var(--red)}.coordinator-dashboard__subtitle{margin:0}.coordinator-dashboard__links{display:grid;gap:1rem;margin-top:1.5rem}.coordinator-dashboard__link{display:block;padding:1rem;background:var(--gray-50);border-radius:var(--border-radius);border:1px solid var(--border-color);text-decoration:none;color:var(--gray-800);font-weight:500;transition:background .2s,border-color .2s,color .2s}.coordinator-dashboard__link:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-900)}.login-page{max-width:400px;margin:4rem auto 0}.login-page__header{text-align:center}.login-page__title{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.login-page__title-accent{color:var(--red)}.login-page__subtitle{margin:0}.login-page__group{display:grid;gap:.5rem}.login-page__submit{width:100%;margin-top:1.5rem;margin-bottom:1rem}.login-page__footer{text-align:center}.login-page__footer-text{font-size:.875rem}.login-page__link{color:var(--red);text-decoration:none;font-weight:500}.login-page__link:hover{text-decoration:underline}.register-page{max-width:400px;margin:4rem auto 0}.register-page__header{text-align:center}.register-page__title{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.register-page__title-accent{color:var(--red)}.register-page__subtitle{margin:0}.register-page__group{display:grid;gap:.5rem}.register-page__submit{width:100%;margin-top:1.5rem;margin-bottom:1rem}.register-page__footer{text-align:center}.register-page__footer-text{font-size:.875rem}.register-page__link{color:var(--red);text-decoration:none;font-weight:500}.register-page__link:hover{text-decoration:underline}.shifts-page{display:grid;gap:1.5rem}.shifts-page__card{padding-bottom:1.5rem}.shifts-page__header{text-align:center}.shifts-page__title{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.shifts-page__title-accent{color:var(--red)}.shifts-page__subtitle{margin:0}.shifts-page__toggle-button{width:100%;margin-top:1.5rem;margin-bottom:1rem}.shifts-page__form{margin-bottom:1.5rem}.shift,.shift-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);border-bottom:var(--border-width) solid var(--border-color)}.shift:last-child,.shift-row:last-child{border-bottom:none}.shift__actions,.shift-actions{display:flex;gap:var(--spacing-2)}.user-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);margin-bottom:var(--spacing-4)}.user-row__info{display:grid;gap:.25rem}.user-row__name{display:block;margin-bottom:.25rem}.user-row__contact,.user-row__meta{font-size:.875rem}.user-row__status{margin-left:.5rem;font-weight:500}.user-row__status--approved{color:var(--success)}.user-row__status--pending{color:var(--warning)}.user-row__actions{display:flex;gap:var(--spacing-2)}.checkbox-group{display:flex;flex-wrap:wrap;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--gray-50);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);margin-bottom:var(--spacing-4)}.checkbox-group__item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease}.checkbox-group__item:hover{border-color:var(--black);background:var(--gray-100);color:var(--black)}.checkbox-group__item--checked{background:var(--black);color:var(--white);border-color:var(--black)}.checkbox-group__item--checked .checkbox-group__label{color:var(--white)}.checkbox-group__item--checked .checkbox-group__input[type=checkbox]{accent-color:var(--black)}.checkbox-group__input{margin:0;cursor:pointer}.checkbox-group__label{cursor:pointer;font-size:.875rem;font-weight:500;margin:0}.radio-group{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-4)}.radio-group__item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);background:var(--white);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease}.radio-group__item:hover{border-color:var(--black);color:var(--black);background:var(--gray-100)}.radio-group__item--checked{background:var(--black);color:var(--white);border-color:var(--black)}.radio-group__item--checked .radio-group__label{color:var(--white)}.radio-group__item--checked .radio-group__input[type=radio]{accent-color:var(--black)}.radio-group__input{margin:0;cursor:pointer}.radio-group__label{cursor:pointer;font-size:.875rem;font-weight:500;margin:0;flex:1}.radio-group__input[type=radio]:checked+.radio-group__label{color:inherit}.radio-group__input[type=radio]:checked~.radio-group__label{color:inherit}.text--center,.text-center{text-align:center}.text--right,.text-right{text-align:right}.text--left,.text-left{text-align:left}.text--muted,.text-muted,.muted{color:var(--gray-500);font-size:.875rem}.text--success,.text-success{color:var(--success)}.text--danger,.text-danger{color:var(--danger)}.text--warning,.text-warning{color:var(--warning)}.text--info,.text-info{color:var(--info)}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}@media(max-width:768px){.page,.page-container{padding:var(--spacing-4)}.grid--cols-2,.grid--cols-3,.grid--cols-4,.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.header__content,.admin-header-content{flex-direction:column;gap:var(--spacing-3);text-align:center}.checkbox-group{flex-direction:column}.radio-group__item{width:100%}}.table-container{display:flex;flex-direction:column;gap:var(--spacing-4)}.cap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4);margin-bottom:var(--spacing-4)}.people-page__message{position:fixed;top:1rem;right:1rem;padding:1rem 1.5rem;border-radius:var(--border-radius);box-shadow:var(--shadow-lg);z-index:2000;animation:fadeIn .3s ease-out;color:#fff}.people-page__message--success{background:var(--success)}.people-page__header-section{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.people-page__header-section-title{font-size:1.5rem;font-weight:600;color:var(--black);margin-bottom:.5rem;margin:0}.people-page__header-section-title-accent{color:var(--red)}.people-page__header-section-subtitle{color:var(--gray-600);margin:0}.people-page__table-header-section{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.people-page__table-header-section-title{margin:0}.people-page__table-header-section-filters{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.people-page__table-header-section-filters-search{min-width:260px}.people-page__table-header-section-filters-group{display:flex;align-items:center;gap:.5rem}.people-page__table-header-section-filters-group-label{margin:0;font-size:.875rem}.people-page__table-header-section-filters-group-select{width:auto;padding:.5rem}.people-page__table-row-status{font-weight:500}.people-page__table-row-status--approved{color:var(--success)}.people-page__table-row-status--pending{color:var(--warning)}.people-page__table-row-actions{display:flex;gap:.5rem}.people-page__table-empty-message{padding:2rem}.ban-user-modal{display:grid;gap:1rem}.ban-user-modal__description{color:var(--gray-600);font-size:.875rem}.ban-user-modal__duration{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.ban-user-modal__checkbox-label{display:flex;align-items:center;gap:.5rem}.ban-user-modal__duration-input{width:90px}.ban-user-modal__duration-select{width:140px}.ban-user-modal__hint{font-size:.75rem;display:block;margin-top:.25rem}.ban-user-modal__actions{display:flex;gap:.5rem;justify-content:flex-end}.approve-user-modal{display:grid;gap:1rem}.approve-user-modal__description{color:var(--gray-600);font-size:.875rem}.approve-user-modal__actions{display:flex;gap:.5rem;justify-content:flex-end}.edit-user-modal,.assign-personnel-modal{display:grid;gap:1rem}.assign-personnel-modal__header{margin-bottom:.5rem}.assign-personnel-modal__shift-info{display:grid;gap:.25rem}.assign-personnel-modal__shift-title{font-weight:600;font-size:1rem}.assign-personnel-modal__shift-datetime{font-size:.875rem}.assign-personnel-modal__empty{padding:1rem;text-align:center;background:#f3f4f6;border-radius:var(--border-radius)}.assign-personnel-modal__users-list{display:grid;gap:.5rem;max-height:300px;overflow-y:auto;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);padding:.5rem}.assign-personnel-modal__user-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--border-radius);cursor:pointer;transition:background-color .2s ease;border:1px solid transparent}.assign-personnel-modal__user-item:hover:not(.assign-personnel-modal__user-item--disabled){background-color:#f9fafb}.assign-personnel-modal__user-item--selected{background-color:#dbeafe;border-color:var(--primary)}.assign-personnel-modal__user-item--disabled{opacity:.5;cursor:not-allowed}.assign-personnel-modal__checkbox{width:1.25rem;height:1.25rem;cursor:pointer;flex-shrink:0}.assign-personnel-modal__user-info{flex:1;display:grid;gap:.25rem}.assign-personnel-modal__user-name{font-weight:500;font-size:.875rem}.assign-personnel-modal__user-details{font-size:.75rem}.assign-personnel-modal__error{padding:.75rem;background:#fee2e2;color:#dc2626;border-radius:var(--border-radius);font-size:.875rem}.assign-personnel-modal__actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.assign-personnel-modal__search{width:100%}.assign-personnel-modal__user-item--assigned{opacity:.6;background-color:#f3f4f6}.assign-personnel-modal__user-badge{display:inline-block;margin-left:.5rem;padding:.125rem .5rem;border-radius:var(--border-radius);font-size:.75rem;font-weight:500}.assign-personnel-modal__user-badge--assigned{background-color:#dbeafe;color:#1e40af}.assign-personnel-modal__user-badge--conflict{background-color:#fee2e2;color:#dc2626}.assign-personnel-modal__user-badge--occupied{background-color:#fef3c7;color:#92400e}.assign-personnel-modal__user-item--conflict{border-color:#fca5a5;background-color:#fef2f2}.assign-personnel-modal__user-item--conflict:hover{background-color:#fee2e2}.assign-personnel-modal__user-item--occupied{border-color:#fbbf24;background-color:#fffbeb;opacity:.7;cursor:not-allowed;position:relative}.billing-preview-modal{max-width:90vw;width:900px}.billing-preview-modal .modal__body{padding:1.5rem}.assign-personnel-modal__user-item--occupied:hover{background-color:#fef3c7}.assign-personnel-modal__user-item--occupied:before{content:"🚫";position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:1.25rem;opacity:.5}.assign-personnel-modal__user-role{font-weight:500;color:var(--primary)}.edit-user-modal__grid{gap:1rem}.profile-page__rating-section{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem}.profile-page__rating-count{margin:0;font-size:.875rem}.shift-form__company-selector{display:flex;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.shift-form__company-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem}.shift-form__company-option input[type=radio]{cursor:pointer}.shift-form__custom-company{display:grid;gap:.5rem}.alert-modal{display:grid;gap:1.5rem}.alert-modal__content{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.alert-modal__icon{font-size:3rem;line-height:1}.alert-modal__message{margin:0;font-size:1rem;color:var(--gray-700);line-height:1.5}.alert-modal__actions,.edit-user-modal__actions{display:flex;gap:.5rem;justify-content:flex-end}
