:root{--green: #9CCB3B;--green-dark: #7aaa20;--green-pale: #f0f8e2;--dark: #4A4A4A;--dark-sec: #333333;--muted: #7A7A7A;--white: #FFFFFF;--bg: #FAFAFA;--surface: #F5F5F5;--border: rgba(0, 0, 0, .08);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .13);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--transition: .2s cubic-bezier(.16, 1, .3, 1);--font-display: Playfair Display, Georgia, serif;--font-body: Inter, Segoe UI, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:Inter,Segoe UI,sans-serif;font-size:1rem;color:#4a4a4a;background:#fafafa;line-height:1.65;min-height:100dvh}img,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;border:none;background:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-family:Playfair Display,Georgia,serif;line-height:1.2;color:#333}input,select,textarea{font-family:Inter,Segoe UI,sans-serif;font-size:.95rem}:focus-visible{outline:2px solid #9CCB3B;outline-offset:3px;border-radius:6px}::selection{background:#9ccb3b33}.container{max-width:1200px;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}.container--narrow{max-width:760px;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.5rem;border-radius:9999px;font-family:Inter,Segoe UI,sans-serif;font-size:.9rem;font-weight:600;letter-spacing:.02em;transition:all .2s cubic-bezier(.16,1,.3,1);white-space:nowrap;cursor:pointer}.btn--primary{background:#9ccb3b;color:#fff;box-shadow:0 2px 8px #9ccb3b59}.btn--primary:hover{background:#7aaa20;box-shadow:0 4px 16px #9ccb3b73;transform:translateY(-1px)}.btn--primary:active{transform:translateY(0)}.btn--outline{border:2px solid #9CCB3B;color:#7aaa20;background:transparent}.btn--outline:hover{background:#f0f8e2}.btn--ghost{color:#4a4a4a;background:transparent}.btn--ghost:hover{background:#f5f5f5}.btn--danger{background:#e53935;color:#fff}.btn--danger:hover{background:#c62828}.btn--sm{padding:.4rem 1rem;font-size:.82rem}.btn--lg{padding:.85rem 2rem;font-size:1rem}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.85rem;font-weight:600;color:#333;letter-spacing:.01em}.form-group input,.form-group select,.form-group textarea{padding:.65rem .9rem;border:1.5px solid rgba(0,0,0,.08);border-radius:10px;background:#fff;color:#4a4a4a;transition:border-color .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1);width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#9ccb3b;box-shadow:0 0 0 3px #9ccb3b26}.form-group input.ng-invalid.ng-touched,.form-group select.ng-invalid.ng-touched,.form-group textarea.ng-invalid.ng-touched{border-color:#e53935;box-shadow:0 0 0 3px #e539351f}.form-group textarea{resize:vertical;min-height:100px}.form-group .error-msg{font-size:.78rem;color:#e53935;display:flex;align-items:center;gap:.3rem}.card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #00000014;border:1px solid rgba(0,0,0,.08);overflow:hidden;transition:box-shadow .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1)}.card:hover{box-shadow:0 4px 16px #0000001a}.card__img{width:100%;aspect-ratio:4/3;object-fit:cover}.card__body{padding:1.25rem}.card__title{font-family:Playfair Display,Georgia,serif;font-size:1.1rem;font-weight:600;color:#333;margin-bottom:.4rem}.card__text{font-size:.9rem;color:#7a7a7a;line-height:1.6}.card__price{font-size:1.15rem;font-weight:700;color:#7aaa20;margin-top:.75rem}.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.03em}.badge--green,.badge--en_proceso{background:#f0f8e2;color:#5e8a16}.badge--yellow,.badge--pendiente{background:#fff8e1;color:#f57f17}.badge--blue,.badge--confirmada{background:#e3f2fd;color:#1565c0}.badge--red,.badge--cancelada{background:#ffebee;color:#c62828}.badge--gray,.badge--no_asistio{background:#f5f5f5;color:#7a7a7a}.badge--completada{background:#e8f5e9;color:#2e7d32}.table-wrapper{overflow-x:auto;border-radius:16px;border:1px solid rgba(0,0,0,.08);background:#fff}table.spa-table{width:100%;border-collapse:collapse;font-size:.88rem}table.spa-table thead tr{background:#f5f5f5;border-bottom:2px solid rgba(0,0,0,.08)}table.spa-table th{padding:.8rem 1rem;text-align:left;font-size:.78rem;font-weight:700;color:#7a7a7a;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}table.spa-table td{padding:.85rem 1rem;border-bottom:1px solid rgba(0,0,0,.08);color:#4a4a4a;vertical-align:middle}table.spa-table tbody tr{transition:background .2s cubic-bezier(.16,1,.3,1)}table.spa-table tbody tr:hover{background:#f0f8e2}table.spa-table tbody tr:last-child td{border-bottom:none}.pagination{display:flex;align-items:center;gap:.4rem;justify-content:center;padding:1rem 0}.pagination button{width:36px;height:36px;border-radius:9999px;border:1.5px solid rgba(0,0,0,.08);background:#fff;color:#4a4a4a;font-size:.85rem;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center}.pagination button:hover:not(:disabled){border-color:#9ccb3b;color:#7aaa20}.pagination button.active{background:#9ccb3b;color:#fff;border-color:#9ccb3b}.pagination button:disabled{opacity:.4;cursor:not-allowed}.spinner{width:40px;height:40px;border:3px solid #f0f8e2;border-top-color:#9ccb3b;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-loader{display:flex;justify-content:center;align-items:center;min-height:300px}.alert{padding:.9rem 1.2rem;border-radius:10px;font-size:.9rem;display:flex;align-items:flex-start;gap:.6rem;margin-bottom:1rem}.alert--success{background:#e8f5e9;color:#2e7d32;border-left:3px solid #4caf50}.alert--error{background:#ffebee;color:#c62828;border-left:3px solid #ef5350}.alert--info{background:#e3f2fd;color:#1565c0;border-left:3px solid #42a5f5}.alert--warning{background:#fff8e1;color:#e65100;border-left:3px solid #ffa726}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;animation:fadeIn .15s ease}.modal-overlay .modal-box{background:#fff;border-radius:24px;padding:2rem;width:100%;max-width:520px;max-height:90dvh;overflow-y:auto;box-shadow:0 8px 32px #00000021;animation:slideUp .2s ease}.modal-overlay .modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.modal-overlay .modal-header h3{font-family:Playfair Display,Georgia,serif;font-size:1.3rem;color:#333}.modal-overlay .modal-header .close-btn{width:32px;height:32px;border-radius:9999px;display:flex;align-items:center;justify-content:center;color:#7a7a7a;transition:all .2s cubic-bezier(.16,1,.3,1)}.modal-overlay .modal-header .close-btn:hover{background:#f5f5f5;color:#4a4a4a}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.section-title{text-align:center;margin-bottom:3rem}.section-title h2{font-family:Playfair Display,Georgia,serif;font-size:clamp(1.6rem,3vw,2.5rem);color:#333;margin-bottom:.5rem}.section-title p{color:#7a7a7a;font-size:1rem;max-width:520px;margin-inline:auto}.section-title .underline{display:block;width:56px;height:3px;background:#9ccb3b;border-radius:9999px;margin:.75rem auto 0}.admin-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.admin-page-header h1{font-family:Playfair Display,Georgia,serif;font-size:1.5rem;color:#333}@media(max-width:768px){.hide-mobile{display:none!important}}@media(min-width:769px){.hide-desktop{display:none!important}}.admin-content{color:#41483e}.admin-content .admin-page-header{align-items:flex-end;margin-bottom:1.25rem}.admin-content .admin-page-header h1{color:#293027;font-size:clamp(1.65rem,3vw,2.15rem);letter-spacing:-.03em}.admin-content .admin-page-header p{color:#7d8478;font-size:.8rem;margin-top:.25rem}.admin-content .admin-page-heading{display:grid;gap:.15rem}.admin-content .admin-page-kicker{color:#6d9624;font-size:.66rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.admin-content .admin-section-card,.admin-content .admin-surface{background:#fff;border:1px solid rgba(40,56,36,.08);border-radius:21px;box-shadow:0 8px 28px #2531210d}.admin-content .table-wrapper{border-color:#28382414;border-radius:18px;box-shadow:0 8px 28px #2531210a}.admin-content table.spa-table{font-size:.8rem;min-width:760px}.admin-content table.spa-table thead tr{background:#f6f8f3;border-bottom:1px solid #e4e9df}.admin-content table.spa-table th{color:#7c8377;font-size:.66rem;padding:.82rem 1rem}.admin-content table.spa-table td{border-bottom-color:#edf0ea;color:#50564d;padding:.82rem 1rem}.admin-content table.spa-table tbody tr:hover{background:#f8fbf4}.admin-content .btn{border-radius:12px;font-size:.78rem;justify-content:center;min-height:42px;padding:.62rem 1rem}.admin-content .btn--primary{background:linear-gradient(135deg,#a4d53e,#87b927);box-shadow:0 8px 18px #7eab2433}.admin-content .btn--outline{background:#fff;border:1px solid #99c735;color:#638b20}.admin-content .btn--ghost{background:#f3f5f0;color:#596055}.admin-content .btn--danger{background:#fff0ee;color:#c5483f;box-shadow:none}.admin-content .btn--sm{min-height:34px;padding:.42rem .7rem}.admin-content .icon-button{align-items:center;border:1px solid #e3e8de;border-radius:10px;color:#687064;display:inline-flex;height:36px;justify-content:center;transition:.2s ease;width:36px}.admin-content .icon-button:hover{background:#edf5e2;border-color:#cfe3af;color:#658e20;transform:translateY(-1px)}.admin-content .icon-button--danger:hover{background:#fff0ee;border-color:#f2c9c5;color:#c5483f}.admin-content .form-group{gap:.48rem}.admin-content .form-group label{color:#3e453b;font-size:.77rem}.admin-content .form-group input,.admin-content .form-group select,.admin-content .form-group textarea{background:#f8f9f6;border:1px solid #dfe5da;border-radius:12px;color:#30362d;font-size:.82rem;min-height:46px;padding:.7rem .8rem}.admin-content .form-group input:focus,.admin-content .form-group select:focus,.admin-content .form-group textarea:focus{background:#fff;border-color:#95c532;box-shadow:0 0 0 4px #95c5321c}.admin-content .form-group textarea{min-height:100px}.admin-content .form-group small{color:#8a9086;font-size:.68rem;line-height:1.45}.admin-content .badge{align-items:center;font-size:.66rem;gap:.3rem;min-height:25px;padding:.25rem .6rem;text-transform:capitalize}.admin-content .pagination{background:#ffffffb3;border-radius:14px;margin-top:1rem;padding:.6rem}.admin-content .pagination button{border-radius:10px;height:34px;width:34px}.admin-content .modal-overlay{backdrop-filter:blur(7px);background:#121b1294}.admin-content .modal-overlay .modal-box{border:1px solid rgba(36,52,32,.1);border-radius:24px;box-shadow:0 32px 85px #0a140b4d;padding:0}.admin-content .modal-overlay .modal-header{background:linear-gradient(120deg,#f7faf2,#fff);border-bottom:1px solid #e9ede5;margin:0;padding:1.25rem 1.4rem;position:sticky;top:0;z-index:2}.admin-content .modal-overlay .modal-header h3{color:#293027;font-size:1.25rem}.admin-content .modal-overlay form,.admin-content .modal-overlay .modal-body{padding:1.35rem}.admin-content .admin-empty-state{align-items:center;display:flex;flex-direction:column;min-height:230px;padding:2rem;text-align:center}.admin-content .admin-empty-state>span{align-items:center;background:#eef6e3;border-radius:16px;color:#6f9b24;display:flex;font-size:1.1rem;height:52px;justify-content:center;margin-bottom:1rem;width:52px}.admin-content .admin-empty-state h3{color:#343a31;font-size:1.05rem}.admin-content .admin-empty-state p{color:#858b81;font-size:.75rem;margin-top:.35rem}.admin-content .admin-loading-card,.admin-content .page-loader{background:#fff;border:1px solid #e6eae2;border-radius:19px}@media(max-width:640px){.admin-content .admin-page-header{align-items:stretch;flex-direction:column}.admin-content .admin-page-header>.btn{width:100%}.admin-content .modal-overlay{align-items:flex-end;padding:0}.admin-content .modal-overlay .modal-box{border-radius:24px 24px 0 0;max-height:94dvh}}
