@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--gg-primary: #dc2626;--gg-primary-hover: #b91c1c;--gg-primary-soft: #fef2f2;--gg-primary-foreground: #ffffff;--gg-background: #f4f6fa;--gg-card: #ffffff;--gg-sidebar: #0f172a;--gg-sidebar-foreground: #cbd5e1;--gg-sidebar-active: #ffffff;--gg-sidebar-hover: rgba(255,255,255,.06);--gg-foreground: #0f172a;--gg-muted-foreground: #64748b;--gg-border: #e2e8f0;--gg-input: #cbd5e1;--gg-ring: rgba(220,38,38,.25);--gg-success: #059669;--gg-success-soft: #ecfdf5;--gg-warning: #d97706;--gg-warning-soft: #fffbeb;--gg-danger: #dc2626;--gg-danger-soft: #fef2f2;--gg-info: #2563eb;--gg-info-soft: #eff6ff;--gg-radius-sm: 6px;--gg-radius: 10px;--gg-radius-lg: 14px;--gg-shadow-sm: 0 1px 2px rgba(15,23,42,.06);--gg-shadow: 0 4px 12px rgba(15,23,42,.08);--gg-shadow-lg: 0 12px 32px rgba(15,23,42,.14);--gg-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--gg-space-1: 4px;--gg-space-2: 8px;--gg-space-3: 12px;--gg-space-4: 16px;--gg-space-5: 20px;--gg-space-6: 24px;--gg-space-8: 32px;--gg-sidebar-width: 248px;--gg-header-height: 60px}html{font-family:var(--gg-font);-webkit-font-smoothing:antialiased}body{margin:0;color:var(--gg-foreground)}*,*:before,*:after{box-sizing:border-box}button,input,select,textarea{font:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.gg-spinner{display:inline-block;width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:gg-spin .7s linear infinite;vertical-align:middle}@keyframes gg-spin{to{transform:rotate(360deg)}}.gg-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gg-space-2);border:1px solid transparent;border-radius:var(--gg-radius-sm);font-weight:600;font-size:14px;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease}.gg-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--gg-ring)}.gg-btn:disabled{opacity:.6;cursor:not-allowed}.gg-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--gg-shadow)}.gg-btn--sm{height:36px;padding:0 14px;font-size:13px}.gg-btn--md{height:40px;padding:0 18px}.gg-btn--lg{height:46px;padding:0 22px;font-size:15px}.gg-btn--block{width:100%}.gg-btn--primary{background:var(--gg-primary);color:var(--gg-primary-foreground)}.gg-btn--primary:hover:not(:disabled){background:var(--gg-primary-hover)}.gg-btn--secondary{background:var(--gg-card);color:var(--gg-foreground);border-color:var(--gg-border)}.gg-btn--secondary:hover:not(:disabled){background:var(--gg-background)}.gg-btn--ghost{background:transparent;color:var(--gg-foreground)}.gg-btn--ghost:hover:not(:disabled){background:var(--gg-background);box-shadow:none}.gg-btn--danger{background:var(--gg-danger);color:#fff}.gg-btn--danger:hover:not(:disabled){background:var(--gg-primary-hover)}.gg-btn--success{background:var(--gg-success);color:#fff}.gg-btn--success:hover:not(:disabled){background:#047857}@media(max-width:640px){.gg-btn{min-height:44px}}.gg-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius);box-shadow:var(--gg-shadow-sm)}.gg-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gg-space-4);padding:var(--gg-space-5) var(--gg-space-5) 0}.gg-card__title{font-size:16px;font-weight:600;margin:0}.gg-card__subtitle{font-size:13px;color:var(--gg-muted-foreground);margin:4px 0 0}.gg-card__actions{display:flex;align-items:center;gap:var(--gg-space-2)}.gg-card__body{padding:var(--gg-space-5)}@media(max-width:640px){.gg-card__header{padding:var(--gg-space-4) var(--gg-space-4) 0}.gg-card__body{padding:var(--gg-space-4)}}.gg-stat{display:flex;align-items:center;gap:var(--gg-space-4);background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius);box-shadow:var(--gg-shadow-sm);padding:var(--gg-space-5)}.gg-stat__icon{width:48px;height:48px;border-radius:var(--gg-radius);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.gg-stat__icon--primary{background:var(--gg-primary-soft);color:var(--gg-primary)}.gg-stat__icon--success{background:var(--gg-success-soft);color:var(--gg-success)}.gg-stat__icon--warning{background:var(--gg-warning-soft);color:var(--gg-warning)}.gg-stat__icon--info{background:var(--gg-info-soft);color:var(--gg-info)}.gg-stat__icon--neutral{background:var(--gg-background);color:var(--gg-muted-foreground)}.gg-stat__value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.gg-stat__label{font-size:13px;color:var(--gg-muted-foreground);margin-top:2px}.gg-stat__hint{font-size:12px;color:var(--gg-muted-foreground);margin-top:4px}.gg-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.5}.gg-badge--primary{background:var(--gg-primary-soft);color:var(--gg-primary)}.gg-badge--success{background:var(--gg-success-soft);color:var(--gg-success)}.gg-badge--warning{background:var(--gg-warning-soft);color:var(--gg-warning)}.gg-badge--danger{background:var(--gg-danger-soft);color:var(--gg-danger)}.gg-badge--info{background:var(--gg-info-soft);color:var(--gg-info)}.gg-badge--neutral{background:var(--gg-background);color:var(--gg-muted-foreground)}.gg-field{display:flex;flex-direction:column;gap:6px}.gg-field__label{font-size:13px;font-weight:600}.gg-field__required{color:var(--gg-danger)}.gg-field__hint{font-size:12px;color:var(--gg-muted-foreground)}.gg-field__error{font-size:12px;color:var(--gg-danger);font-weight:500}.gg-input,.gg-select,.gg-textarea{width:100%;height:40px;padding:0 var(--gg-space-3);background:var(--gg-card);border:1px solid var(--gg-input);border-radius:var(--gg-radius-sm);font-size:14px;color:var(--gg-foreground);transition:border-color .15s ease,box-shadow .15s ease}.gg-textarea{height:auto;min-height:80px;padding:var(--gg-space-3);resize:vertical}.gg-input:focus,.gg-select:focus,.gg-textarea:focus{outline:none;border-color:var(--gg-primary);box-shadow:0 0 0 3px var(--gg-ring)}.gg-input::placeholder,.gg-textarea::placeholder{color:var(--gg-muted-foreground)}.gg-input[aria-invalid=true],.gg-select[aria-invalid=true],.gg-textarea[aria-invalid=true]{border-color:var(--gg-danger)}@media(max-width:640px){.gg-input,.gg-select,.gg-textarea{font-size:16px}}.gg-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--gg-space-4);z-index:1000;animation:gg-fade-in .18s ease-out}.gg-modal{background:var(--gg-card);border-radius:var(--gg-radius-lg);box-shadow:var(--gg-shadow-lg);width:100%;max-height:90vh;display:flex;flex-direction:column;animation:gg-fade-up .22s ease-out}.gg-modal--sm{max-width:400px}.gg-modal--md{max-width:560px}.gg-modal--lg{max-width:800px}.gg-modal--xl{max-width:1100px}.gg-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--gg-space-5) var(--gg-space-5) var(--gg-space-3)}.gg-modal__title{font-size:17px;font-weight:700;margin:0}.gg-modal__close{background:none;border:none;cursor:pointer;color:var(--gg-muted-foreground);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--gg-radius-sm);font-size:18px}.gg-modal__close:hover{background:var(--gg-background);color:var(--gg-foreground)}.gg-modal__body{padding:0 var(--gg-space-5) var(--gg-space-5);overflow-y:auto}.gg-modal__footer{display:flex;justify-content:flex-end;gap:var(--gg-space-2);padding:var(--gg-space-3) var(--gg-space-5) var(--gg-space-5);border-top:1px solid var(--gg-border)}@keyframes gg-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.gg-modal-overlay{align-items:flex-end;padding:0}.gg-modal{max-width:100%;max-height:92vh;border-radius:var(--gg-radius-lg) var(--gg-radius-lg) 0 0;animation:gg-slide-up .24s ease-out}@keyframes gg-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.gg-toast-container{position:fixed;top:var(--gg-space-4);right:var(--gg-space-4);z-index:1200;display:flex;flex-direction:column;gap:var(--gg-space-2);width:360px;max-width:calc(100vw - 32px)}.gg-toast{position:relative;display:flex;align-items:flex-start;gap:var(--gg-space-3);background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius);box-shadow:var(--gg-shadow-lg);padding:var(--gg-space-3) var(--gg-space-4);overflow:hidden;animation:gg-toast-in .25s ease-out}.gg-toast--leaving{animation:gg-toast-out .2s ease-in forwards}.gg-toast__icon{font-size:20px;margin-top:1px;flex-shrink:0}.gg-toast--success .gg-toast__icon{color:var(--gg-success)}.gg-toast--error .gg-toast__icon{color:var(--gg-danger)}.gg-toast--warning .gg-toast__icon{color:var(--gg-warning)}.gg-toast--info .gg-toast__icon{color:var(--gg-info)}.gg-toast__title{font-size:14px;font-weight:600}.gg-toast__msg{font-size:13px;color:var(--gg-muted-foreground);margin-top:2px}.gg-toast__close{background:none;border:none;cursor:pointer;color:var(--gg-muted-foreground);padding:2px;font-size:16px;flex-shrink:0}.gg-toast__close:hover{color:var(--gg-foreground)}.gg-toast__bar{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;animation:gg-toast-bar linear forwards}.gg-toast--success .gg-toast__bar{background:var(--gg-success)}.gg-toast--error .gg-toast__bar{background:var(--gg-danger)}.gg-toast--warning .gg-toast__bar{background:var(--gg-warning)}.gg-toast--info .gg-toast__bar{background:var(--gg-info)}@keyframes gg-toast-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes gg-toast-out{to{opacity:0;transform:translate(24px)}}@keyframes gg-toast-bar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(max-width:640px){.gg-toast-container{left:var(--gg-space-4);right:var(--gg-space-4);width:auto}}.gg-table-wrap{overflow-x:auto;border:1px solid var(--gg-border);border-radius:var(--gg-radius);background:var(--gg-card)}.gg-table{width:100%;border-collapse:collapse;font-size:14px}.gg-table th{position:sticky;top:0;background:var(--gg-card);text-align:left;font-size:12px;font-weight:600;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.4px;padding:var(--gg-space-3) var(--gg-space-4);border-bottom:1px solid var(--gg-border);white-space:nowrap}.gg-table td{padding:var(--gg-space-3) var(--gg-space-4);border-bottom:1px solid var(--gg-border)}.gg-table tbody tr:nth-child(2n){background:#0f172a04}.gg-table tbody tr:hover{background:var(--gg-background)}.gg-table tbody tr.gg-table__row--clickable{cursor:pointer}.gg-table tbody tr:last-child td{border-bottom:none}.gg-table__skeleton{height:14px;border-radius:4px;background:linear-gradient(90deg,var(--gg-border) 25%,var(--gg-background) 50%,var(--gg-border) 75%);background-size:200% 100%;animation:gg-shimmer 1.2s infinite}@keyframes gg-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:768px){.gg-table,.gg-table thead,.gg-table tbody,.gg-table tr,.gg-table td{display:block}.gg-table thead{display:none}.gg-table tr{border:1px solid var(--gg-border);border-radius:var(--gg-radius);margin:var(--gg-space-3);box-shadow:var(--gg-shadow-sm);background:var(--gg-card)!important}.gg-table td{display:flex;justify-content:space-between;align-items:center;gap:var(--gg-space-3);border-bottom:1px solid var(--gg-border);text-align:right}.gg-table td:last-child{border-bottom:none}.gg-table td:before{content:attr(data-label);font-size:12px;font-weight:600;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.4px;text-align:left}}.gg-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--gg-space-8) var(--gg-space-5);gap:var(--gg-space-2)}.gg-empty__icon{width:56px;height:56px;border-radius:50%;background:var(--gg-primary-soft);color:var(--gg-primary);display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:var(--gg-space-2)}.gg-empty__title{font-size:16px;font-weight:600;margin:0}.gg-empty__desc{font-size:13px;color:var(--gg-muted-foreground);margin:0;max-width:320px}.gg-empty__action{margin-top:var(--gg-space-3)}.gg-iconbtn{position:relative;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius-sm);color:var(--gg-foreground);cursor:pointer;font-size:18px}.gg-iconbtn__badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--gg-danger);color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center}.gg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--gg-space-4);margin-bottom:var(--gg-space-5)}.gg-grid--3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}@media(max-width:768px){.gg-grid--2{grid-template-columns:1fr}}.gg-actions{display:flex;flex-wrap:wrap;gap:var(--gg-space-3);margin-bottom:var(--gg-space-5)}.gg-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:var(--gg-space-6);color:var(--gg-muted-foreground)}.gg-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--gg-space-3);margin-bottom:var(--gg-space-4)}.gg-toolbar__title{font-size:20px;font-weight:700;margin:0}.gg-toolbar__actions{display:flex;align-items:center;gap:var(--gg-space-3);flex-wrap:wrap}@media(max-width:640px){.gg-toolbar{flex-direction:column;align-items:stretch}.gg-toolbar__search{width:100%}}.gg-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--gg-space-4)}@media(max-width:1024px){.gg-form-row--4{grid-template-columns:1fr 1fr}}.gg-form-section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--gg-muted-foreground);margin:var(--gg-space-4) 0 var(--gg-space-3)}.gg-check{display:flex;align-items:center;gap:var(--gg-space-2);font-size:14px;cursor:pointer}.gg-pagination{display:flex;align-items:center;justify-content:center;gap:var(--gg-space-2);margin-top:var(--gg-space-4);color:var(--gg-muted-foreground);font-size:13px}.gg-tabs{display:flex;gap:var(--gg-space-1);border-bottom:1px solid var(--gg-border);overflow-x:auto;scrollbar-width:none}.gg-tabs::-webkit-scrollbar{display:none}.gg-tab{position:relative;display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:var(--gg-space-3) var(--gg-space-4);font-size:14px;font-weight:500;color:var(--gg-muted-foreground);white-space:nowrap}.gg-tab:hover{color:var(--gg-foreground)}.gg-tab--active{color:var(--gg-foreground);font-weight:600}.gg-tab--active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gg-primary);border-radius:2px 2px 0 0}.gg-tab__badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--gg-primary);color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.gg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px}.gg-grid--2{grid-template-columns:repeat(2,1fr)}.gg-grid--3{grid-template-columns:repeat(3,1fr)}.gg-grid--4{grid-template-columns:repeat(4,1fr)}.gg-span-2{grid-column:1 / -1}@media(max-width:900px){.gg-grid--3,.gg-grid--4{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.gg-grid,.gg-grid--2,.gg-grid--3,.gg-grid--4{grid-template-columns:1fr}}.gg-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.gg-row-actions{display:flex;flex-wrap:wrap;gap:6px}.gg-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.gg-toolbar__title{margin:0;font-size:20px;font-weight:700}.gg-toolbar__actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.gg-toolbar__search{width:260px}.gg-toolbar__label{font-size:13px;font-weight:500;color:var(--gg-muted-foreground);white-space:nowrap}.gg-toolbar__count{font-size:13px;font-weight:500;color:var(--gg-muted-foreground);margin-left:8px}.gg-menu-wrap{position:relative;display:inline-flex}.gg-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius);box-shadow:var(--gg-shadow);padding:4px;z-index:50}.gg-menu__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:var(--gg-radius-sm);font:inherit;font-size:13px;color:var(--gg-foreground);cursor:pointer;text-align:left}.gg-menu__item:hover{background:var(--gg-background)}.gg-menu__item--danger{color:var(--gg-danger)}.gg-menu__item:disabled{opacity:.5;cursor:default}@media(max-width:640px){.gg-toolbar,.gg-toolbar__actions{flex-direction:column;align-items:stretch}.gg-toolbar__search{width:100%}}.gg-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.gg-form-row--4{grid-template-columns:repeat(4,1fr)}@media(max-width:900px){.gg-form-row--4{grid-template-columns:1fr 1fr}}@media(max-width:640px){.gg-form-row,.gg-form-row--4{grid-template-columns:1fr}}.gg-form-section-title{margin:20px 0 12px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--gg-muted-foreground)}.gg-check{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;cursor:pointer}.gg-check input[type=checkbox]{width:18px;height:18px;cursor:pointer}.gg-note{background:var(--gg-info-soft);border:1px solid var(--gg-info);border-radius:var(--gg-radius-sm);padding:15px;margin-bottom:15px}.gg-note--neutral{background:var(--gg-background);border-color:var(--gg-border)}.gg-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--gg-muted-foreground)}.gg-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px}.gg-pagination__info{font-size:13px;color:var(--gg-muted-foreground)}.gg-iconbtn{position:relative;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius-sm);color:var(--gg-foreground);cursor:pointer;transition:background .15s ease}.gg-iconbtn:hover{background:var(--gg-background)}.gg-iconbtn__badge{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:999px;background:var(--gg-danger);color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.gg-sensitive{position:relative;border-radius:inherit}.gg-sensitive__blurred{filter:blur(8px);pointer-events:none;-webkit-user-select:none;user-select:none}.gg-sensitive__cover{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#f4f6fa8c;border-radius:inherit;z-index:2;color:var(--gg-muted-foreground)}.gg-sensitive__label{font-size:13px;font-weight:600}.gg-sensitive--inline .gg-sensitive__cover{gap:6px}.gg-sensitive__lockbtn{position:absolute;top:8px;right:8px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius-sm);color:var(--gg-muted-foreground);cursor:pointer;z-index:2}.gg-sensitive__lockbtn:hover{background:var(--gg-background)}.gg-install-entry{margin-top:var(--gg-space-4)}.gg-install-sidebar-entry{padding:var(--gg-space-2) var(--gg-space-3);border-top:1px solid rgba(255,255,255,.08);flex-shrink:0}.gg-install-sidebar{width:100%}.gg-install-sidebar:disabled{opacity:.6;cursor:not-allowed}.gg-install-sidebar:focus-visible{outline:2px solid var(--gg-ring);outline-offset:2px}.gg-install-help p{margin:0 0 var(--gg-space-3);font-size:14px;color:var(--gg-muted-foreground)}.gg-install-help strong{color:var(--gg-foreground)}.gg-install-help ol{margin:0 0 var(--gg-space-3);padding-left:var(--gg-space-5, 20px);font-size:14px;color:var(--gg-foreground);display:flex;flex-direction:column;gap:var(--gg-space-2)}.login-container{display:flex;min-height:100vh;background:var(--gg-background)}.login-branding{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:var(--gg-space-2);padding:var(--gg-space-8);padding-bottom:calc(var(--gg-space-8) + 8px);background:#0f172a;color:#fff;text-align:center;position:relative;clip-path:url(#login-wave-v);padding-right:calc(var(--gg-space-8) + 56px)}.login-form-section{margin-left:-48px}.login-branding:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/login-bg.jpg) center / cover no-repeat;filter:saturate(.85);pointer-events:none}.login-branding:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0f172a4d,#0f172a26 45%,#0f172acc 80%,#0f172aeb);pointer-events:none}.login-branding>*{position:relative;z-index:1}.gym-logo{position:absolute;top:var(--gg-space-6);right:calc(var(--gg-space-8) + 40px);left:auto;width:300px;height:300px;object-fit:contain;background:none;border-radius:0;padding:0;filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 6px 18px rgba(0,0,0,.6));z-index:2}.brand-title,.brand-subtitle{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.7)}.brand-title{font-size:44px;font-weight:800;letter-spacing:-1px;margin:0;text-transform:uppercase}.brand-subtitle{font-size:17px;font-weight:400;opacity:.9;margin:0}.login-form-section{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--gg-space-8)}.login-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius-lg);box-shadow:var(--gg-shadow-lg);padding:var(--gg-space-8);width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:var(--gg-space-6)}.login-header h2{font-size:26px;font-weight:700;margin:0 0 6px;letter-spacing:-.5px}.login-header p{color:var(--gg-muted-foreground);font-size:14px;margin:0}.login-form{display:flex;flex-direction:column;gap:var(--gg-space-4)}.login-fieldset{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:var(--gg-space-4)}.login-check-hint{display:block;margin-top:var(--gg-space-1);margin-left:26px}.login-error{background:var(--gg-danger-soft);color:var(--gg-danger);border-left:3px solid var(--gg-danger);border-radius:var(--gg-radius-sm);padding:var(--gg-space-3) var(--gg-space-4);font-size:13px;font-weight:500}.login-footer{text-align:center;margin-top:var(--gg-space-6);padding-top:var(--gg-space-5);border-top:1px solid var(--gg-border)}.login-footer p{color:var(--gg-muted-foreground);font-size:13px;margin:0}.register-link{color:var(--gg-primary);font-weight:600}.register-link:hover{text-decoration:underline}@media(max-width:768px){.login-container{flex-direction:column}.login-branding{padding:var(--gg-space-8) var(--gg-space-5) calc(var(--gg-space-6) + 48px);clip-path:url(#login-wave-h)}.login-form-section{margin-left:0;margin-top:-40px}.gym-logo{width:160px;height:160px;top:var(--gg-space-4);right:var(--gg-space-4);left:auto}.login-branding{min-height:360px;padding-bottom:calc(var(--gg-space-6) + 56px)}.brand-title{font-size:30px}.brand-subtitle{font-size:15px}.login-form-section{padding:var(--gg-space-6) var(--gg-space-5);align-items:flex-start}.login-card{padding:var(--gg-space-6) var(--gg-space-5);box-shadow:var(--gg-shadow)}}.login-branding{animation:loginSlideIn .7s cubic-bezier(.22,.61,.36,1) both}.login-branding:before{animation:loginKenBurns 1.6s cubic-bezier(.22,.61,.36,1) both}.gym-logo{animation:loginLogoIn .9s cubic-bezier(.22,.61,.36,1) .25s both}.brand-title{animation:loginRiseIn .7s cubic-bezier(.22,.61,.36,1) .45s both}.brand-subtitle{animation:loginRiseIn .7s cubic-bezier(.22,.61,.36,1) .6s both}.login-card{animation:loginCardIn .7s cubic-bezier(.22,.61,.36,1) .35s both}.login-form .gg-field,.login-form .gg-btn,.login-footer{animation:loginRiseIn .6s cubic-bezier(.22,.61,.36,1) both}.login-form .gg-field:nth-child(1){animation-delay:.55s}.login-form .gg-field:nth-child(2){animation-delay:.65s}.login-form .gg-btn{animation-delay:.75s}.login-footer{animation-delay:.85s}.login-card{transition:box-shadow .3s ease,transform .3s ease}.login-card:focus-within{box-shadow:0 20px 48px #0f172a2e;transform:translateY(-2px)}@keyframes loginSlideIn{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes loginKenBurns{0%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes loginLogoIn{0%{opacity:0;transform:scale(.8) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes loginRiseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes loginCardIn{0%{opacity:0;transform:translate(32px) translateY(8px)}to{opacity:1;transform:translate(0) translateY(0)}}@media(max-width:768px){@keyframes loginSlideIn{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}@keyframes loginCardIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}}:root{--primary-color: #FF0000;--secondary-color: #CC0000;--accent-color: #000000;--success-color: #00C851;--text-dark: #000000;--text-light: #666666;--background-light: #f5f5f5;--white: #ffffff;--shadow-light: rgba(255, 0, 0, .1);--shadow-medium: rgba(255, 0, 0, .15);--shadow-strong: rgba(255, 0, 0, .25);--gradient-primary: linear-gradient(135deg, #FF0000 0%, #CC0000 50%, #000000 100%);--gradient-secondary: linear-gradient(135deg, #FF0000 0%, #CC0000 100%)}.dashboard-container{min-height:100vh;background:linear-gradient(135deg,var(--background-light) 0%,#e8e8e8 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.dashboard-header{background:var(--white);padding:20px 40px;box-shadow:0 4px 20px var(--shadow-light);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5e7eb}.header-brand{display:flex;align-items:center;gap:15px}.header-logo{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 4px 8px var(--shadow-light))}.brand-info{display:flex;flex-direction:column}.brand-name{font-size:28px;font-weight:800;color:var(--primary-color);margin:0;letter-spacing:-.5px}.brand-tagline{font-size:14px;color:var(--text-light);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.user-section{display:flex;align-items:center;gap:30px}.header-left{display:flex;align-items:center;gap:15px}.header-left h1{margin:0;color:var(--text-dark);font-size:24px}.role-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase}.role-administrador{background:var(--gradient-secondary);color:var(--white)}.role-entrenador{background:var(--gradient-primary);color:var(--white)}.role-vendedor{background:linear-gradient(135deg,#4facfe,#00f2fe);color:var(--white)}.header-right{display:flex;align-items:center;gap:20px}.welcome-text{color:var(--text-light);font-weight:500}.logout-btn{background:linear-gradient(135deg,#ff6b6b,#ee5a52);color:var(--white);border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.logout-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #ff6b6b4d}.dashboard-main{padding:30px;max-width:1200px;margin:0 auto}.dashboard-admin h2,.dashboard-entrenador h2,.dashboard-vendedor h2{color:var(--text-dark);margin-bottom:30px;font-size:28px;text-align:center}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:40px}.stat-card{background:var(--white);padding:30px;border-radius:15px;box-shadow:0 5px 20px var(--shadow-light);text-align:center;transition:transform .3s ease}.stat-card:hover{transform:translateY(-5px)}.stat-card h3{color:var(--text-light);font-size:16px;margin:0 0 15px;font-weight:500}.stat-number{font-size:48px;font-weight:700;margin:0;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.admin-actions,.entrenador-actions,.vendedor-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-top:30px}.action-btn{padding:15px 25px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.action-btn.primary{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:var(--white)}.action-btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px var(--shadow-medium)}.action-btn.secondary{background:var(--white);color:var(--primary-color);border:2px solid var(--primary-color)}.action-btn.secondary:hover{background:var(--primary-color);color:var(--white);transform:translateY(-2px);box-shadow:0 8px 25px var(--shadow-medium)}.dashboard-admin .stat-card{border-left:4px solid var(--primary-color)}.dashboard-entrenador .stat-card{border-left:4px solid #f5576c}.dashboard-entrenador .action-btn.primary{background:linear-gradient(135deg,#f093fb,#f5576c)}.dashboard-entrenador .action-btn.secondary{color:#f5576c;border-color:#f5576c}.dashboard-entrenador .action-btn.secondary:hover{background:#f5576c}.dashboard-vendedor .stat-card{border-left:4px solid #4facfe}.dashboard-vendedor .action-btn.primary{background:linear-gradient(135deg,#4facfe,#00f2fe)}.dashboard-vendedor .action-btn.secondary{color:#4facfe;border-color:#4facfe}.dashboard-vendedor .action-btn.secondary:hover{background:#4facfe}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:18px;color:var(--text-light)}.quick-actions{margin-top:48px;background:var(--white);border-radius:16px;padding:32px;box-shadow:0 4px 20px var(--shadow-light);border:1px solid #f1f5f9}.quick-actions h4{font-size:20px;font-weight:700;color:var(--text-dark);margin:0 0 24px;display:flex;align-items:center;gap:12px}.quick-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.quick-action-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;border-radius:12px;padding:24px;text-align:center;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:12px}.quick-action-card:hover{transform:translateY(-2px);border-color:var(--primary-color);box-shadow:0 8px 25px var(--shadow-light);background:linear-gradient(135deg,var(--primary-color) 0%,var(--accent-color) 100%);color:var(--white)}.quick-action-icon{font-size:28px;margin-bottom:8px}.quick-action-card span:last-child{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dashboard-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;background:var(--background-light)}.loading-spinner{width:50px;height:50px;border:4px solid #e2e8f0;border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.dashboard-loading p{font-size:16px;color:var(--text-light);font-weight:500}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:20px;padding:20px}.header-brand{justify-content:center}.brand-name{font-size:24px}.user-section{flex-direction:column;gap:20px;width:100%}.user-info{justify-content:center}.dashboard-content{padding:20px}.stats-container{grid-template-columns:1fr;gap:16px}.action-buttons{grid-template-columns:1fr;gap:12px}.quick-actions-grid{grid-template-columns:repeat(2,1fr);gap:12px}.quick-action-card{padding:16px}}@media(max-width:480px){.header-logo{width:40px;height:40px}.brand-name{font-size:20px}.user-avatar{width:50px;height:50px;font-size:20px}.user-details h2{font-size:18px}.dashboard-content{padding:16px}.stat-card{padding:24px}.stat-number{font-size:28px}.quick-actions-grid{grid-template-columns:1fr}.quick-actions{padding:24px}}.ap-panel{min-width:0}.ap-panel .gg-btn,.ap-form .gg-input,.ap-form .gg-select,.ap-filters .gg-input,.ap-filters .gg-select{min-height:44px}.ap-panel .gg-card__header{flex-direction:column;align-items:stretch}.ap-panel .gg-card__header .gg-card__actions{width:100%}.ap-fieldset{border:none;margin:0;padding:0;min-inline-size:0}.ap-stack{display:flex;flex-direction:column;gap:var(--gg-space-4);min-width:0}.ap-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gg-space-3);min-width:0}.ap-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gg-space-2);margin-bottom:var(--gg-space-3)}.ap-filters .gg-input,.ap-filters .gg-select{min-height:44px}.ap-form{display:flex;flex-direction:column;gap:var(--gg-space-3)}.ap-form-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gg-space-3)}.ap-check{display:flex;align-items:center;gap:var(--gg-space-2);font-size:14px;font-weight:500;color:var(--gg-foreground);cursor:pointer;min-height:44px}.ap-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--gg-primary)}.ap-loading{display:flex;align-items:center;gap:var(--gg-space-2);justify-content:center;padding:var(--gg-space-8) var(--gg-space-4);color:var(--gg-muted-foreground);min-height:120px}.ap-note{font-size:13px;color:var(--gg-muted-foreground)}.ap-error{display:flex;flex-direction:column;align-items:flex-start;gap:var(--gg-space-3);padding:var(--gg-space-4);background:var(--gg-danger-soft);border:1px solid var(--gg-danger);border-radius:var(--gg-radius);color:var(--gg-foreground)}.ap-error p{margin:0}.ap-form-error{margin:0;font-size:13px;color:var(--gg-danger)}.ap-modal-text{margin:0;font-size:14px;line-height:1.5}.ap-item-nombre{font-weight:600}.ap-item-sub{font-size:12px;color:var(--gg-muted-foreground)}.ap-usuario{display:flex;align-items:center;gap:var(--gg-space-2)}.ap-usuario__avatar{width:32px;height:32px;border-radius:50%;background:var(--gg-primary-soft);color:var(--gg-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.ap-usuario__nombre{font-weight:600}.ap-usuario__self{font-size:11px;color:var(--gg-muted-foreground)}.ap-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--gg-space-2);flex-wrap:wrap;margin-top:var(--gg-space-3)}.ap-pagination__info{font-size:12px;color:var(--gg-muted-foreground)}.ap-pagination__controls{display:flex;align-items:center;gap:var(--gg-space-2)}.ap-pagination__controls .gg-btn{min-height:44px}.ap-pagination__page{font-size:13px;color:var(--gg-muted-foreground)}.ap-actions{display:flex;justify-content:flex-end}.ap-push{display:flex;flex-direction:column;gap:var(--gg-space-3)}.ap-push__estado{display:flex;align-items:center;justify-content:space-between;gap:var(--gg-space-2);flex-wrap:wrap}.ap-server-stats{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gg-space-3);margin-bottom:var(--gg-space-3)}.ap-server-stat{display:flex;flex-direction:column;gap:var(--gg-space-1)}.ap-server-stat__label{font-size:12px;color:var(--gg-muted-foreground)}.ap-server-stat__value{font-size:18px;font-weight:700}.ap-server-stat__bar{height:6px;border-radius:3px;background:var(--gg-border);overflow:hidden}.ap-server-stat__fill{height:100%;background:var(--gg-primary);border-radius:3px}.ap-server-meta{display:flex;align-items:center;gap:var(--gg-space-4);flex-wrap:wrap;font-size:13px;color:var(--gg-muted-foreground);margin:var(--gg-space-2) 0}.ap-danger-card{border-color:var(--gg-danger)}.ap-danger{display:flex;flex-direction:column;gap:var(--gg-space-3)}.ap-danger__title{margin:0 0 var(--gg-space-1);color:var(--gg-danger);font-size:15px}.ap-danger__desc{margin:0;font-size:13px;color:var(--gg-muted-foreground);line-height:1.5}@media(min-width:768px){.ap-panel .gg-card__header{flex-direction:row;align-items:center}.ap-panel .gg-card__header .gg-card__actions{width:auto}.ap-grid--stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gg-space-4)}.ap-filters{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}.ap-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ap-server-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.ap-danger{flex-direction:row;align-items:center;justify-content:space-between}}@media(min-width:1100px){.ap-grid--stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:768px){.ap-grid--2col{grid-template-columns:repeat(2,minmax(0,1fr))}}.header-clock{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;margin-right:20px}.clock-time{font-size:18px;font-weight:700;color:red;font-variant-numeric:tabular-nums;letter-spacing:.5px;line-height:1}.clock-date{font-size:12px;font-weight:500;color:#6b7280;text-transform:capitalize;line-height:1}@media(max-width:768px){.header-clock{margin-right:12px}.clock-time{font-size:16px}.clock-date{font-size:11px}}@media(max-width:480px){.header-clock{display:none}}.gg-shell{min-height:100vh;background:var(--gg-background)}.gg-shell__sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--gg-sidebar-current, var(--gg-sidebar-width));background:var(--gg-sidebar);display:flex;flex-direction:column;z-index:900;transition:width .2s ease}.gg-shell--resizing .gg-shell__sidebar{transition:none}.gg-shell__brand{display:flex;align-items:center;gap:var(--gg-space-3);padding:var(--gg-space-4) var(--gg-space-5)}.gg-shell__logo{width:34px;height:34px;border-radius:50%;object-fit:contain;background:#fff;flex-shrink:0}.gg-shell__brand-name{color:#fff;font-weight:800;font-size:16px;letter-spacing:.5px;flex:1;white-space:nowrap;overflow:hidden}.gg-shell__collapse-btn{width:28px;height:28px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid rgba(255,255,255,.12);border-radius:var(--gg-radius-sm);color:var(--gg-sidebar-foreground);cursor:pointer;transition:background .15s ease,color .15s ease}.gg-shell__collapse-btn:hover{background:var(--gg-sidebar-hover);color:#fff}.gg-shell__drawer-close{display:none;background:none;border:none;cursor:pointer;color:var(--gg-sidebar-foreground);padding:4px}.gg-shell__nav{flex:1;overflow-y:auto;padding:var(--gg-space-2) var(--gg-space-3);display:flex;flex-direction:column;gap:2px}.gg-shell__nav-item{position:relative;display:flex;align-items:center;gap:var(--gg-space-3);width:100%;background:none;border:none;cursor:pointer;border-left:3px solid transparent;border-radius:0 var(--gg-radius-sm) var(--gg-radius-sm) 0;padding:10px var(--gg-space-3);font-size:14px;font-weight:500;color:var(--gg-sidebar-foreground);text-align:left;transition:background .15s ease,transform .15s ease,color .15s ease}.gg-shell__nav-item:hover{background:var(--gg-sidebar-hover);transform:translate(2px)}.gg-shell__nav-item--active{border-left-color:var(--gg-primary);background:var(--gg-sidebar-hover);color:var(--gg-sidebar-active)}.gg-shell__nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--gg-primary);color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.gg-shell__user{display:flex;align-items:center;gap:var(--gg-space-3);padding:var(--gg-space-4) var(--gg-space-5);border-top:1px solid rgba(255,255,255,.08)}.gg-shell__avatar{width:36px;height:36px;border-radius:var(--gg-radius-sm);background:var(--gg-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.gg-shell__user-info{flex:1;min-width:0;display:flex;flex-direction:column}.gg-shell__user-name{color:#fff;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gg-shell__user-role{color:var(--gg-sidebar-foreground);font-size:11px;text-transform:capitalize}.gg-shell__logout{background:none;border:none;cursor:pointer;color:var(--gg-sidebar-foreground);padding:6px;border-radius:var(--gg-radius-sm)}.gg-shell__logout:hover{color:#fff;background:var(--gg-sidebar-hover)}.gg-shell__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;z-index:850;animation:gg-fade-in .18s ease-out}@keyframes gg-fade-in{0%{opacity:0}to{opacity:1}}.gg-shell__resizer{position:absolute;top:0;right:-3px;bottom:0;width:6px;cursor:col-resize;z-index:10}.gg-shell__resizer:hover,.gg-shell--resizing .gg-shell__resizer{background:#dc262699}@media(min-width:1024px){.gg-shell--collapsed .gg-shell__brand{flex-direction:column;padding:var(--gg-space-4) 0;gap:var(--gg-space-2)}.gg-shell--collapsed .gg-shell__brand-name,.gg-shell--collapsed .gg-shell__nav-label,.gg-shell--collapsed .gg-shell__user-info{display:none}.gg-shell--collapsed .gg-shell__nav-item{justify-content:center;padding:0;width:44px;height:44px;margin:0 auto;border-left:none;border-radius:var(--gg-radius-sm)}.gg-shell--collapsed .gg-shell__nav-item:hover{transform:none}.gg-shell--collapsed .gg-shell__nav-item--active{background:var(--gg-sidebar-hover);color:var(--gg-primary)}.gg-shell--collapsed .gg-shell__nav-badge{position:absolute;top:4px;right:4px;margin-left:0;min-width:16px;height:16px;font-size:10px}.gg-shell--collapsed .gg-shell__user{flex-direction:column;gap:var(--gg-space-2);padding:var(--gg-space-3) 0}}.gg-shell__main{margin-left:var(--gg-sidebar-current, var(--gg-sidebar-width));transition:margin-left .2s ease}.gg-shell--resizing .gg-shell__main{transition:none}.gg-shell__header{position:sticky;top:0;height:var(--gg-header-height);display:flex;align-items:center;gap:var(--gg-space-3);padding:0 var(--gg-space-6);background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--gg-border);z-index:800}.gg-shell__menu-btn{display:none;background:none;border:none;cursor:pointer;color:var(--gg-foreground);padding:6px;border-radius:var(--gg-radius-sm);font-size:22px}.gg-shell__header-logo{display:none;width:30px;height:30px;border-radius:50%;object-fit:contain}.gg-shell__header-titles{flex:1;min-width:0}.gg-shell__title{font-size:18px;font-weight:700;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gg-shell__subtitle{font-size:13px;color:var(--gg-muted-foreground);margin:0}.gg-shell__header-right{display:flex;align-items:center;gap:var(--gg-space-4)}.gg-shell__header-user{font-size:13px;font-weight:600;color:var(--gg-muted-foreground)}.gg-shell__content{padding:var(--gg-space-6);max-width:1400px}.gg-page{animation:ggFadeUp .3s ease-out}@keyframes ggFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1023px){.gg-shell__sidebar{width:280px!important;transform:translate(-100%);transition:transform .25s ease}.gg-shell__sidebar--open{transform:translate(0);box-shadow:var(--gg-shadow-lg)}.gg-shell--collapsed .gg-shell__brand{flex-direction:row;padding:var(--gg-space-4) var(--gg-space-5);gap:var(--gg-space-3)}.gg-shell--collapsed .gg-shell__brand-name,.gg-shell--collapsed .gg-shell__nav-label,.gg-shell--collapsed .gg-shell__user-info{display:block}.gg-shell--collapsed .gg-shell__nav-item{justify-content:flex-start;width:100%;height:auto;margin:0;padding:10px var(--gg-space-3);border-radius:0 var(--gg-radius-sm) var(--gg-radius-sm) 0;border-left:3px solid transparent}.gg-shell--collapsed .gg-shell__nav-item--active{color:var(--gg-sidebar-active);border-left-color:var(--gg-primary)}.gg-shell--collapsed .gg-shell__nav-badge{position:static;margin-left:auto;min-width:18px;height:18px;font-size:11px}.gg-shell--collapsed .gg-shell__user{flex-direction:row;padding:var(--gg-space-4) var(--gg-space-5);gap:var(--gg-space-3)}.gg-shell__collapse-btn,.gg-shell__resizer{display:none}.gg-shell__drawer-close{display:block}.gg-shell__main{margin-left:0}.gg-shell__menu-btn{display:inline-flex}.gg-shell__header-logo{display:block}.gg-shell__header{padding:0 var(--gg-space-4)}.gg-shell__header-user{display:none}.gg-shell__content{padding:var(--gg-space-4)}}.qr-scanner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;display:flex;justify-content:center;align-items:center;z-index:2000;padding:0}.qr-scanner-modal{background:linear-gradient(135deg,red,#c00);border-radius:0;width:100vw;height:100vh;overflow:hidden;box-shadow:none;display:flex;flex-direction:column}.scanner-header{display:flex;justify-content:space-between;align-items:center;padding:25px 40px;border-bottom:2px solid rgba(255,255,255,.2);background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-content h3{margin:0 0 8px;font-size:28px;font-weight:800;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.header-subtitle{font-size:16px;font-weight:500;margin:0;opacity:.9;font-style:italic}.header-actions{display:flex;align-items:center;gap:15px}.btn-logout{background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3);padding:10px 20px;border-radius:25px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-logout:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 15px #0003}.close-scanner{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .3s ease}.close-scanner:hover{background:#fff3}.scanner-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px;position:relative}.camera-view{background:#000;border-radius:30px;width:80vw;height:60vh;max-width:800px;max-height:600px;display:flex;align-items:center;justify-content:center;margin-bottom:30px;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000080}.camera-container{position:relative;width:100%;height:100%}.camera-container video{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:30px;position:absolute!important;top:0!important;left:0!important}.camera-container>div{width:100%!important;height:100%!important;position:relative!important}.camera-container>div>div{width:100%!important;height:100%!important;position:relative!important}.camera-container canvas{display:none!important}.camera-container *{max-width:100%!important;max-height:100%!important}.camera-container [style*=width]{width:100%!important}.camera-container [style*=height]{height:100%!important}.camera-error{text-align:center;color:#fff;padding:20px}.error-icon{font-size:48px;margin-bottom:15px}.btn-retry-camera{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:600;margin-top:15px;transition:all .3s ease}.btn-retry-camera:hover{transform:translateY(-2px);box-shadow:0 4px 8px #f59e0b66}.viewfinder-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:250px;height:250px;pointer-events:none;z-index:100}.viewfinder-overlay:before{content:"";position:absolute;top:-30px;left:-30px;right:-30px;bottom:-30px;background:#0000004d;border-radius:15px;z-index:-1}.scan-instruction{position:absolute;bottom:30px;left:50%;transform:translate(-50%);color:#fff;background:#000c;padding:12px 24px;border-radius:25px;font-size:16px;font-weight:600;z-index:100;box-shadow:0 4px 15px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.qr-corners{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;height:200px;pointer-events:none;z-index:150;transition:all .8s cubic-bezier(.25,.46,.45,.94)}.qr-corners.scanned{width:80px;height:80px;transform:translate(-50%,-50%) scale(.8)}.corner{position:absolute;width:25px;height:25px;border:4px solid #FF0000;box-shadow:0 0 20px #f00c;animation:cornerPulse 2s ease-in-out infinite;transition:all .8s cubic-bezier(.25,.46,.45,.94)}.qr-corners.scanned .corner{border-color:#10b981;box-shadow:0 0 30px #10b981;animation:scanSuccess .8s ease-out}.corner-top-left{top:0;left:0;border-right:none;border-bottom:none;border-top-left-radius:8px}.corner-top-right{top:0;right:0;border-left:none;border-bottom:none;border-top-right-radius:8px}.corner-bottom-left{bottom:0;left:0;border-right:none;border-top:none;border-bottom-left-radius:8px}.corner-bottom-right{bottom:0;right:0;border-left:none;border-top:none;border-bottom-right-radius:8px}.viewfinder{width:200px;height:200px;position:relative;margin:0 auto 15px}.btn-simulate-scan{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:600;margin-top:15px;transition:all .3s ease}.btn-simulate-scan:hover{transform:translateY(-2px);box-shadow:0 4px 8px #10b98166}.scanning-animation{text-align:center;color:#fff;position:relative;width:200px;height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center}.scan-line{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#FF0000,transparent);animation:scan 2s linear infinite}@keyframes scan{0%{top:0}to{top:197px}}@keyframes cornerPulse{0%{box-shadow:0 0 20px #3b82f6cc;border-color:#3b82f6;transform:scale(1)}50%{box-shadow:0 0 30px #3b82f6;border-color:#60a5fa;transform:scale(1.05)}to{box-shadow:0 0 20px #3b82f6cc;border-color:#3b82f6;transform:scale(1)}}@keyframes scanSuccess{0%{border-color:#3b82f6;box-shadow:0 0 20px #3b82f6cc;transform:scale(1)}25%{border-color:#10b981;box-shadow:0 0 40px #10b981;transform:scale(1.2)}50%{border-color:#10b981;box-shadow:0 0 50px #10b981;transform:scale(1.1)}to{border-color:#10b981;box-shadow:0 0 30px #10b981;transform:scale(1)}}.manual-entry{background:#fffffff2;border-radius:20px;padding:30px;margin-bottom:30px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px #0003;max-width:600px;width:100%}.manual-entry h4{margin:0 0 20px;color:#1f2937;font-size:20px;font-weight:700;text-align:center}.manual-entry form{display:flex;gap:15px;align-items:center;justify-content:center}.manual-input{flex:1;min-width:300px;padding:15px 20px;border:3px solid #d1d5db;border-radius:15px;font-size:18px;font-weight:500;transition:all .3s ease;text-align:center}.manual-input:focus{outline:none;border-color:red;box-shadow:0 0 0 3px #ff00001a}.btn-manual-submit{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:15px 30px;border-radius:15px;cursor:pointer;font-weight:700;font-size:16px;transition:all .3s ease;white-space:nowrap;box-shadow:0 4px 15px #10b9814d}.btn-manual-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #3b82f666}.btn-manual-submit:disabled{background:#d1d5db;cursor:not-allowed;transform:none}.scanner-instructions{background:#fef3c7;border:1px solid #f59e0b;border-radius:12px;padding:15px}.scanner-instructions h4{margin:0 0 10px;color:#92400e;font-size:14px}.scanner-instructions ul{margin:0;padding-left:20px;color:#92400e}.scanner-instructions li{margin-bottom:5px;font-size:13px}@media(max-width:600px){.qr-scanner-overlay{padding:10px}.camera-view{height:200px}.viewfinder{width:150px;height:150px}.manual-entry form{flex-direction:column}.manual-input{min-width:auto}}.ep-panel .miembro-info h4,.ep-modal .miembro-info h4{margin:0 0 8px;color:var(--gg-foreground);font-weight:600;font-size:16px}.ep-panel .miembro-info p,.ep-modal .miembro-info p{margin:4px 0;color:var(--gg-muted-foreground);font-size:14px}.ep-panel .plan-badge,.ep-modal .plan-badge{background:var(--gg-success);color:var(--gg-card);padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;margin-top:8px;display:inline-block;text-transform:uppercase;letter-spacing:.5px}.ep-panel .estado,.ep-modal .estado{padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.ep-panel .estado.programado,.ep-modal .estado.programado{background:linear-gradient(135deg,var(--gg-primary) 0%,var(--gg-primary-hover) 100%);color:var(--gg-card)}.ep-panel .estado.completado,.ep-modal .estado.completado{background:var(--gg-success);color:var(--gg-card)}.ep-panel .modal-body,.ep-modal .modal-body{padding:0}.ep-panel .progreso-update-info,.ep-modal .progreso-update-info{display:flex;flex-direction:column;gap:20px}.ep-panel .miembro-info h4,.ep-modal .miembro-info h4{margin:0 0 8px;color:var(--gg-foreground);font-size:18px}.ep-panel .miembro-info p,.ep-modal .miembro-info p{margin:0;color:var(--gg-muted-foreground);font-size:14px}.ep-panel .progreso-actual,.ep-modal .progreso-actual,.ep-panel .progreso-nuevo,.ep-modal .progreso-nuevo,.ep-panel .progreso-preview,.ep-modal .progreso-preview{display:flex;flex-direction:column;gap:8px}.ep-panel .progreso-actual label,.ep-modal .progreso-actual label,.ep-panel .progreso-nuevo label,.ep-modal .progreso-nuevo label,.ep-panel .progreso-preview label,.ep-modal .progreso-preview label{font-weight:600;color:var(--gg-foreground);font-size:14px}.ep-panel .progreso-display,.ep-modal .progreso-display{display:flex;align-items:center;gap:12px}.ep-panel .progreso-bar-small,.ep-modal .progreso-bar-small{flex:1;height:12px;background:var(--gg-border);border-radius:6px;overflow:hidden}.ep-panel .progreso-fill-small,.ep-modal .progreso-fill-small{height:100%;background:var(--gg-success);transition:width .3s ease;border-radius:6px}.ep-panel .progreso-fill-small.preview,.ep-modal .progreso-fill-small.preview{background:linear-gradient(135deg,var(--gg-primary) 0%,var(--gg-primary-hover) 100%)}.ep-panel .progreso-percentage,.ep-modal .progreso-percentage{font-weight:600;color:var(--gg-foreground);font-size:14px;min-width:40px;text-align:right}.ep-panel .input-group,.ep-modal .input-group{display:flex;align-items:center;position:relative}.ep-panel .progreso-input,.ep-modal .progreso-input{flex:1;padding-right:40px}.ep-panel .input-suffix,.ep-modal .input-suffix{position:absolute;right:16px;color:var(--gg-muted-foreground);font-weight:600;pointer-events:none}.ep-panel .progreso-preview,.ep-modal .progreso-preview{padding:16px;background:var(--gg-background);border-radius:8px;border:1px solid var(--gg-border)}.ep-panel .progreso-preview label,.ep-modal .progreso-preview label{color:var(--gg-muted-foreground);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.ep-panel .form-grid,.ep-modal .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:480px){.ep-panel .progreso-display,.ep-modal .progreso-display{flex-direction:column;align-items:stretch;gap:8px}.ep-panel .progreso-percentage,.ep-modal .progreso-percentage{text-align:center;min-width:auto}.ep-panel .form-grid,.ep-modal .form-grid{grid-template-columns:1fr}}.ep-panel .reporte-comparativo,.ep-modal .reporte-comparativo{background:var(--gg-background);border-radius:18px;padding:24px;border:1px solid var(--gg-border);box-shadow:0 10px 30px #0f172a0a}.ep-panel .reporte-comparativo h5,.ep-modal .reporte-comparativo h5{margin:0 0 20px;font-size:18px;font-weight:700;color:var(--gg-foreground)}.ep-panel .comparativo-grid,.ep-modal .comparativo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:20px}.ep-panel .barra-comparativa,.ep-modal .barra-comparativa{position:relative;padding:18px 18px 32px;background:var(--gg-card);border-radius:16px;border:1px solid var(--gg-border);overflow:hidden}.ep-panel .barra-label,.ep-modal .barra-label{display:block;font-size:13px;font-weight:600;text-transform:uppercase;color:var(--gg-muted-foreground);margin-bottom:12px}.ep-panel .barra-tramos,.ep-modal .barra-tramos{display:grid;grid-template-columns:repeat(3,1fr);border-radius:12px;overflow:hidden;border:1px solid var(--gg-border)}.ep-panel .barra-tramos .tramo,.ep-modal .barra-tramos .tramo{text-align:center;font-size:12px;font-weight:600;padding:12px 0;color:var(--gg-foreground)}.ep-panel .barra-tramos .bajo,.ep-modal .barra-tramos .bajo{background:var(--gg-success-soft)}.ep-panel .barra-tramos .estandar,.ep-modal .barra-tramos .estandar{background:var(--gg-info-soft)}.ep-panel .barra-tramos .alto,.ep-modal .barra-tramos .alto{background:var(--gg-danger-soft)}.ep-panel .barra-comparativa .indicador,.ep-modal .barra-comparativa .indicador{position:absolute;bottom:10px;width:12px;height:12px;background:var(--gg-primary);border-radius:50%;box-shadow:var(--gg-shadow);transform:translate(-50%)}.ep-panel .silueta-container,.ep-modal .silueta-container{display:flex;gap:24px;align-items:center}.ep-panel .silueta-gallery,.ep-modal .silueta-gallery{display:flex;flex-direction:column;gap:16px}.ep-panel .silueta-wrapper.secundario,.ep-modal .silueta-wrapper.secundario{width:200px;background:var(--gg-card);position:relative;display:flex;justify-content:center;align-items:center;padding:12px}.ep-panel .silueta-img.secundario,.ep-modal .silueta-img.secundario{border-radius:12px;box-shadow:0 8px 24px #0f172a1f}.ep-panel .silueta-caption,.ep-modal .silueta-caption{position:absolute;bottom:10px;left:50%;transform:translate(-50%);background:#0f172acc;color:var(--gg-card);padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.5px}.ep-panel .silueta-wrapper,.ep-modal .silueta-wrapper{position:relative;width:220px;max-width:100%;border-radius:18px;overflow:hidden;box-shadow:0 12px 30px #0f172a1f}.ep-panel .silueta-img,.ep-modal .silueta-img{width:100%;height:auto;display:block;filter:saturate(1.05) contrast(1.05)}.ep-panel .silueta-hotspot,.ep-modal .silueta-hotspot{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 10px;background:#0f172abf;border-radius:12px;color:var(--gg-card);font-size:11px;font-weight:600;transform:translate(-50%,-50%);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:0 8px 20px #0f172a40}.ep-panel .hotspot-label,.ep-modal .hotspot-label{text-transform:uppercase;letter-spacing:.5px}.ep-panel .hotspot-value,.ep-modal .hotspot-value{font-size:14px;font-weight:700}.ep-panel .silueta-hotspot:after,.ep-modal .silueta-hotspot:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:10px;height:10px;background:#0f172abf;clip-path:polygon(50% 100%,0 0,100% 0)}.ep-panel .silueta-info,.ep-modal .silueta-info{display:flex;flex-direction:column;gap:12px}.ep-panel .silueta-item,.ep-modal .silueta-item{background:var(--gg-card);border-radius:14px;border:1px solid var(--gg-border);padding:12px 16px;box-shadow:0 6px 18px #0f172a0d;display:flex;justify-content:space-between;align-items:center;min-width:200px}.ep-panel .silueta-tag,.ep-modal .silueta-tag{font-size:13px;font-weight:600;color:var(--gg-muted-foreground)}.ep-panel .silueta-value,.ep-modal .silueta-value{font-size:18px;font-weight:700;color:var(--gg-foreground)}.ep-panel .analisis-form,.ep-modal .analisis-form{display:flex;flex-direction:column;gap:24px}.ep-panel .analisis-form .form-section>h4,.ep-modal .analisis-form .form-section>h4{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--gg-foreground)}.ep-panel .analisis-form .form-grid,.ep-modal .analisis-form .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}.ep-panel .analisis-form label,.ep-modal .analisis-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--gg-muted-foreground);font-weight:500}.ep-panel .analisis-form textarea,.ep-modal .analisis-form textarea{resize:vertical;min-height:100px}.ep-panel .segmentos-form,.ep-modal .segmentos-form,.ep-panel .impedancia-form,.ep-modal .impedancia-form{display:flex;flex-direction:column;gap:12px}.ep-panel .segmento-form-row,.ep-modal .segmento-form-row,.ep-panel .impedancia-form-row,.ep-modal .impedancia-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;padding:12px;border:1px dashed var(--gg-border);border-radius:10px;background:var(--gg-info-soft)}.ep-panel .impedancia-form-row,.ep-modal .impedancia-form-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.ep-modal .gg-form-row>:only-child{grid-column:1 / -1}@media(max-width:768px){.ep-modal .segmento-form-row,.ep-modal .impedancia-form-row{grid-template-columns:1fr}}.ep-panel .form-message,.ep-modal .form-message{padding:12px 16px;border-radius:8px;font-weight:600;font-size:14px}.ep-panel .form-message.success,.ep-modal .form-message.success{background:var(--gg-success-soft);color:var(--gg-success)}.ep-panel .form-message.error,.ep-modal .form-message.error{background:var(--gg-danger-soft);color:var(--gg-primary-hover)}.ep-modal .modal-footer,.ep-modal .modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--gg-space-3);margin-top:var(--gg-space-5);padding-top:var(--gg-space-4);border-top:1px solid var(--gg-border)}.ep-panel .form-grid,.ep-modal .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:20px}@media(max-width:768px){.ep-panel .form-grid,.ep-modal .form-grid{grid-template-columns:1fr}}.ep-panel .ejercicios-section,.ep-modal .ejercicios-section{margin:24px 20px 0;border:1px solid var(--gg-border);border-radius:12px;padding:20px;background:var(--gg-info-soft)}.ep-panel .ejercicios-header,.ep-modal .ejercicios-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ep-panel .ejercicios-header h4,.ep-modal .ejercicios-header h4{margin:0;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .ejercicios-disponibles select,.ep-modal .ejercicios-disponibles select{min-width:200px}.ep-panel .ejercicios-lista,.ep-modal .ejercicios-lista{display:flex;flex-direction:column;gap:12px}.ep-panel .ejercicio-item,.ep-modal .ejercicio-item{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:8px;padding:16px;transition:all .3s ease}.ep-panel .ejercicio-item:hover,.ep-modal .ejercicio-item:hover{border-color:var(--gg-primary);box-shadow:var(--gg-shadow)}.ep-panel .ejercicio-info,.ep-modal .ejercicio-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ep-panel .ejercicio-info strong,.ep-modal .ejercicio-info strong{font-size:14px;color:var(--gg-foreground)}.ep-panel .ejercicio-categoria,.ep-modal .ejercicio-categoria{font-size:12px;color:var(--gg-muted-foreground);background:var(--gg-info-soft);padding:2px 8px;border-radius:12px}.ep-panel .ejercicio-params,.ep-modal .ejercicio-params{display:flex;gap:12px;align-items:end}.ep-panel .param-group,.ep-modal .param-group{display:flex;flex-direction:column;gap:4px;flex:1}.ep-panel .param-group label,.ep-modal .param-group label{font-size:12px;font-weight:600;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.5px}.ep-panel .param-group input,.ep-modal .param-group input{text-align:center}.ep-panel .ejercicios-empty,.ep-modal .ejercicios-empty{text-align:center;padding:40px 20px;color:var(--gg-muted-foreground);font-style:italic}.ep-panel .progreso-info,.ep-modal .progreso-info{background:var(--gg-info-soft);border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid var(--gg-info)}.ep-panel .progreso-header,.ep-modal .progreso-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.ep-panel .progreso-header h4,.ep-modal .progreso-header h4{margin:0;font-size:20px;font-weight:600;color:var(--gg-foreground)}.ep-panel .progreso-badge,.ep-modal .progreso-badge{padding:6px 12px;border-radius:20px;background:var(--gg-card);border:1px solid var(--gg-border)}.ep-panel .progreso-detalles,.ep-modal .progreso-detalles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.ep-panel .detalle-item,.ep-modal .detalle-item{font-size:14px;color:var(--gg-muted-foreground)}.ep-panel .detalle-item strong,.ep-modal .detalle-item strong{color:var(--gg-foreground);display:block;margin-bottom:4px}.ep-panel .progreso-visual,.ep-modal .progreso-visual{display:flex;align-items:center;gap:24px}.ep-panel .progreso-circle,.ep-modal .progreso-circle{width:80px;height:80px;border-radius:50%;background:conic-gradient(var(--gg-primary) 0deg,var(--gg-primary) calc(var(--progreso, 25) * 3.6deg),var(--gg-border) calc(var(--progreso, 25) * 3.6deg));display:flex;align-items:center;justify-content:center;position:relative}.ep-panel .progreso-circle:before,.ep-modal .progreso-circle:before{content:"";width:60px;height:60px;border-radius:50%;background:var(--gg-card);position:absolute}.ep-panel .progreso-number,.ep-modal .progreso-number{font-size:16px;font-weight:700;color:var(--gg-foreground);z-index:1}.ep-panel .progreso-bar-large,.ep-modal .progreso-bar-large{flex:1;height:12px;background:var(--gg-border);border-radius:6px;overflow:hidden}.ep-panel .progreso-fill-large,.ep-modal .progreso-fill-large{height:100%;background:linear-gradient(90deg,var(--gg-primary),var(--gg-success));border-radius:6px;transition:width .5s ease}.ep-panel .ejercicios-progreso,.ep-modal .ejercicios-progreso{margin-top:24px}.ep-panel .ejercicios-progreso h5,.ep-modal .ejercicios-progreso h5{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .ejercicios-grid,.ep-modal .ejercicios-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.ep-panel .ejercicio-progreso-card,.ep-modal .ejercicio-progreso-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:8px;padding:16px;text-align:center;transition:all .3s ease}.ep-panel .ejercicio-progreso-card:hover,.ep-modal .ejercicio-progreso-card:hover{border-color:var(--gg-primary);transform:translateY(-2px);box-shadow:var(--gg-shadow)}.ep-panel .ejercicio-nombre,.ep-modal .ejercicio-nombre{font-size:14px;font-weight:600;color:var(--gg-foreground);margin-bottom:8px}.ep-panel .ejercicio-specs,.ep-modal .ejercicio-specs{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.ep-panel .ejercicio-specs span,.ep-modal .ejercicio-specs span{font-size:12px;color:var(--gg-muted-foreground);background:var(--gg-info-soft);padding:2px 6px;border-radius:8px}.ep-panel .notas-progreso,.ep-modal .notas-progreso{margin-top:24px;padding:20px;background:var(--gg-success-soft);border-radius:12px;border:1px solid var(--gg-success-soft)}.ep-panel .notas-progreso h5,.ep-modal .notas-progreso h5{margin:0 0 12px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .notas-progreso p,.ep-modal .notas-progreso p{margin:0;font-size:14px;color:var(--gg-muted-foreground);line-height:1.5}.ep-panel .estado.activo,.ep-modal .estado.activo{background:var(--gg-success-soft);color:var(--gg-success)}.ep-panel .estado.completado,.ep-modal .estado.completado{background:var(--gg-info-soft);color:var(--gg-primary)}.ep-panel .estado.cancelado,.ep-modal .estado.cancelado{background:var(--gg-danger-soft);color:var(--gg-danger)}@media(max-width:768px){.ep-panel .ejercicio-params,.ep-modal .ejercicio-params{flex-direction:column;gap:8px}.ep-panel .progreso-visual,.ep-modal .progreso-visual{flex-direction:column;gap:16px}.ep-panel .ejercicios-grid,.ep-modal .ejercicios-grid{grid-template-columns:1fr}}.ep-panel .estado-badge,.ep-modal .estado-badge{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.ep-panel .estado-badge.activo,.ep-modal .estado-badge.activo{background:var(--gg-success-soft);color:var(--gg-success);border:1px solid var(--gg-success-soft)}.ep-panel .estado-badge.inactivo,.ep-modal .estado-badge.inactivo{background:#6b72801a;color:var(--gg-muted-foreground);border:1px solid rgba(107,114,128,.3)}.ep-panel .miembro-info p,.ep-modal .miembro-info p{margin:8px 0;font-size:14px;color:var(--gg-muted-foreground);display:flex;align-items:center;gap:8px}.ep-panel .stat-label,.ep-modal .stat-label{font-size:12px;font-weight:600;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.5px}.ep-panel .plan-badge,.ep-modal .plan-badge{padding:4px 8px;border-radius:8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.ep-panel .perfil-header,.ep-modal .perfil-header{display:flex;gap:20px;align-items:center;margin-bottom:24px;padding:20px;background:var(--gg-info-soft);border-radius:12px;border:1px solid var(--gg-info)}.ep-panel .perfil-avatar,.ep-modal .perfil-avatar{flex-shrink:0}.ep-panel .avatar-circle,.ep-modal .avatar-circle{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--gg-primary),var(--gg-success));display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:var(--gg-primary-foreground);text-transform:uppercase}.ep-panel .perfil-datos h4,.ep-modal .perfil-datos h4{margin:0 0 8px;font-size:24px;font-weight:600;color:var(--gg-foreground)}.ep-panel .perfil-email,.ep-modal .perfil-email,.ep-panel .perfil-telefono,.ep-modal .perfil-telefono{margin:4px 0;font-size:14px;color:var(--gg-muted-foreground)}.ep-panel .detalle-grid,.ep-modal .detalle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.ep-panel .detalle-item,.ep-modal .detalle-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--gg-info-soft);border-radius:8px;border:1px solid var(--gg-info)}.ep-panel .detalle-item strong,.ep-modal .detalle-item strong{font-size:12px;font-weight:600;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.5px}.ep-panel .objetivo-section,.ep-modal .objetivo-section{margin-top:20px;padding:16px;background:var(--gg-success-soft);border-radius:12px;border:1px solid var(--gg-success-soft)}.ep-panel .objetivo-section h5,.ep-modal .objetivo-section h5{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .objetivo-section p,.ep-modal .objetivo-section p{margin:0;font-size:14px;color:var(--gg-muted-foreground);line-height:1.5}.ep-panel .historial-section,.ep-modal .historial-section{margin-top:24px;padding:20px;background:var(--gg-info-soft);border-radius:12px;border:1px solid var(--gg-info)}.ep-panel .historial-section h5,.ep-modal .historial-section h5{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .historial-lista,.ep-modal .historial-lista{display:flex;flex-direction:column;gap:8px}.ep-panel .historial-item,.ep-modal .historial-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:8px;transition:all .3s ease}.ep-panel .historial-item:hover,.ep-modal .historial-item:hover{border-color:var(--gg-primary);box-shadow:var(--gg-shadow)}.ep-panel .historial-fecha,.ep-modal .historial-fecha{font-size:12px;font-weight:600;color:var(--gg-muted-foreground);min-width:80px}.ep-panel .historial-info,.ep-modal .historial-info{display:flex;flex-direction:column;gap:2px;flex:1;margin-left:16px}.ep-panel .historial-tipo,.ep-modal .historial-tipo{font-size:14px;font-weight:600;color:var(--gg-foreground)}.ep-panel .historial-duracion,.ep-modal .historial-duracion{font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .historial-estado,.ep-modal .historial-estado{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.ep-panel .historial-estado.completado,.ep-modal .historial-estado.completado{background:var(--gg-success-soft);color:var(--gg-success);border:2px solid var(--gg-success-soft)}.ep-panel .notas-section,.ep-modal .notas-section{margin-top:24px;padding:20px;background:var(--gg-success-soft);border-radius:12px;border:1px solid var(--gg-success-soft)}.ep-panel .notas-section h5,.ep-modal .notas-section h5{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .notas-lista,.ep-modal .notas-lista{display:flex;flex-direction:column;gap:12px}.ep-panel .nota-item,.ep-modal .nota-item{padding:16px;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:8px;border-left:4px solid var(--gg-primary)}.ep-panel .nota-fecha,.ep-modal .nota-fecha{font-size:12px;font-weight:600;color:var(--gg-muted-foreground);margin-bottom:8px}.ep-panel .nota-contenido,.ep-modal .nota-contenido{font-size:14px;color:var(--gg-muted-foreground);line-height:1.5}.ep-panel .notas-form textarea,.ep-modal .notas-form textarea{width:100%;resize:vertical;min-height:120px}@media(max-width:768px){.ep-panel .perfil-header,.ep-modal .perfil-header{flex-direction:column;text-align:center;gap:16px}.ep-panel .detalle-grid,.ep-modal .detalle-grid{grid-template-columns:1fr}.ep-panel .historial-item,.ep-modal .historial-item{flex-direction:column;align-items:flex-start;gap:8px}.ep-panel .historial-info,.ep-modal .historial-info{margin-left:0}}.ep-panel .stat-card,.ep-modal .stat-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.ep-panel .stat-card:hover,.ep-modal .stat-card:hover{border-color:var(--gg-primary);box-shadow:var(--gg-shadow);transform:translateY(-2px)}.ep-panel .stat-icon,.ep-modal .stat-icon{font-size:28px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--gg-info-soft);border-radius:12px;flex-shrink:0}.ep-panel .form-nueva-cita,.ep-modal .form-nueva-cita{display:flex;flex-direction:column;gap:20px}.ep-panel .duracion-selector,.ep-modal .duracion-selector{display:flex;gap:8px}.ep-panel .duracion-opcion,.ep-modal .duracion-opcion{flex:1;padding:12px;border:1px solid var(--gg-border);border-radius:8px;background:var(--gg-card);text-align:center;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.ep-panel .disponibilidad-form,.ep-modal .disponibilidad-form{display:flex;flex-direction:column;gap:24px}.ep-panel .dias-semana,.ep-modal .dias-semana{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}.ep-panel .dia-disponibilidad,.ep-modal .dia-disponibilidad{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--gg-border);border-radius:8px;background:var(--gg-card)}.ep-panel .dia-disponibilidad.activo,.ep-modal .dia-disponibilidad.activo{border-color:var(--gg-primary);background:var(--gg-info-soft)}.ep-panel .dia-header-disp,.ep-modal .dia-header-disp{display:flex;align-items:center;gap:8px}.ep-panel .dia-nombre,.ep-modal .dia-nombre{font-size:14px;font-weight:600;color:var(--gg-foreground)}.ep-panel .horarios-dia,.ep-modal .horarios-dia{display:flex;flex-direction:column;gap:8px}.ep-panel .horario-input,.ep-modal .horario-input{display:flex;align-items:center;gap:8px}.ep-panel .horario-input input,.ep-modal .horario-input input{flex:1}@media(max-width:768px){.ep-panel .duracion-selector,.ep-modal .duracion-selector{flex-direction:column}.ep-panel .dias-semana,.ep-modal .dias-semana{grid-template-columns:1fr}}.ep-panel .ejercicio-nombre,.ep-modal .ejercicio-nombre{font-weight:500;color:var(--gg-foreground)}.ep-panel .ejercicio-detalles,.ep-modal .ejercicio-detalles{color:var(--gg-muted-foreground);font-size:12px}.ep-panel .form-nueva-rutina,.ep-modal .form-nueva-rutina{display:flex;flex-direction:column;gap:24px}.ep-panel .rutina-form-section,.ep-modal .rutina-form-section{padding:20px;border:1px solid var(--gg-border);border-radius:12px;background:var(--gg-background)}.ep-panel .rutina-form-section h4,.ep-modal .rutina-form-section h4{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .categorias-selector,.ep-modal .categorias-selector{display:flex;flex-wrap:wrap;gap:8px}.ep-panel .categoria-opcion,.ep-modal .categoria-opcion{padding:8px 16px;border:1px solid var(--gg-border);border-radius:20px;background:var(--gg-card);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.ep-panel .ejercicios-rutina,.ep-modal .ejercicios-rutina{display:flex;flex-direction:column;gap:16px}.ep-panel .calculadora-grid,.ep-modal .calculadora-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;align-items:end}.ep-panel .calculadora-actions,.ep-modal .calculadora-actions{display:flex;gap:10px;align-items:center}.ep-panel .section-note,.ep-modal .section-note{font-size:13px;color:var(--gg-muted-foreground);font-weight:500}.ep-panel .calculadora-resultado,.ep-modal .calculadora-resultado{margin-top:14px;padding:12px 16px;border-radius:12px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:8px}.ep-panel .calculadora-resultado.success,.ep-modal .calculadora-resultado.success{background:var(--gg-success-soft);color:var(--gg-success);border:1px solid var(--gg-success-soft)}.ep-panel .calculadora-resultado.error,.ep-modal .calculadora-resultado.error{background:var(--gg-danger-soft);color:var(--gg-primary-hover);border:1px solid var(--gg-danger-soft)}.ep-panel .ejercicio-rutina-item,.ep-modal .ejercicio-rutina-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:8px}.ep-panel .ejercicio-rutina-info,.ep-modal .ejercicio-rutina-info{flex:1}.ep-panel .ejercicio-rutina-info h5,.ep-modal .ejercicio-rutina-info h5{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--gg-foreground)}.ep-panel .ejercicio-rutina-info p,.ep-modal .ejercicio-rutina-info p{margin:0;font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .ejercicio-parametros,.ep-modal .ejercicio-parametros{display:flex;gap:12px;align-items:center}.ep-panel .parametro-input,.ep-modal .parametro-input{display:flex;flex-direction:column;gap:4px;align-items:center}.ep-panel .parametro-input label,.ep-modal .parametro-input label{font-size:11px;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.5px}.ep-panel .parametro-input input,.ep-modal .parametro-input input{width:60px;text-align:center}.ep-panel .biblioteca-header,.ep-modal .biblioteca-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--gg-border)}.ep-panel .biblioteca-filtros,.ep-modal .biblioteca-filtros{display:flex;gap:12px;flex-wrap:wrap}.ep-panel .ejercicios-grid,.ep-modal .ejercicios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.ep-panel .ejercicio-card,.ep-modal .ejercicio-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:12px;padding:20px;transition:all .3s ease;cursor:pointer}.ep-panel .ejercicio-card:hover,.ep-modal .ejercicio-card:hover{border-color:var(--gg-primary);box-shadow:var(--gg-shadow);transform:translateY(-1px)}.ep-panel .ejercicio-card.seleccionado,.ep-modal .ejercicio-card.seleccionado{border-color:var(--gg-primary);background:var(--gg-info-soft)}.ep-panel .ejercicio-header,.ep-modal .ejercicio-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.ep-panel .ejercicio-acciones,.ep-modal .ejercicio-acciones{display:flex;gap:6px;opacity:0;transition:opacity .2s ease}.ep-panel .ejercicio-card:hover .ejercicio-acciones,.ep-modal .ejercicio-card:hover .ejercicio-acciones{opacity:1}.ep-panel .ejercicio-content,.ep-modal .ejercicio-content{cursor:pointer}.ep-panel .ejercicio-content h5,.ep-modal .ejercicio-content h5{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .ejercicio-content p,.ep-modal .ejercicio-content p{margin:0 0 12px;font-size:14px;color:var(--gg-muted-foreground);line-height:1.4}.ep-panel .ejercicio-detalles,.ep-modal .ejercicio-detalles{display:flex;flex-direction:column;gap:4px;margin-top:8px}.ep-panel .ejercicio-detalles span,.ep-modal .ejercicio-detalles span{font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .ejercicio-categoria,.ep-modal .ejercicio-categoria{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.ep-panel .ejercicio-categoria.fuerza,.ep-modal .ejercicio-categoria.fuerza{background:var(--gg-danger-soft);color:var(--gg-danger)}.ep-panel .ejercicio-categoria.cardio,.ep-modal .ejercicio-categoria.cardio{background:#f59e0b1a;color:var(--gg-warning)}.ep-panel .ejercicio-categoria.flexibilidad,.ep-modal .ejercicio-categoria.flexibilidad{background:#9333ea1a;color:var(--gg-info)}.ep-panel .ejercicio-categoria.resistencia,.ep-modal .ejercicio-categoria.resistencia{background:var(--gg-success-soft);color:var(--gg-success)}.ep-panel .ejercicio-musculos,.ep-modal .ejercicio-musculos{font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .miembros-asignar,.ep-modal .miembros-asignar{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding:16px;border:1px solid var(--gg-border);border-radius:8px;background:var(--gg-background)}.ep-panel .miembro-asignar-item,.ep-modal .miembro-asignar-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:8px;cursor:pointer;transition:all .3s ease}.ep-panel .miembro-asignar-item:hover,.ep-modal .miembro-asignar-item:hover,.ep-panel .miembro-asignar-item.seleccionado,.ep-modal .miembro-asignar-item.seleccionado{border-color:var(--gg-primary);background:var(--gg-info-soft)}.ep-panel .miembro-asignar-info h5,.ep-modal .miembro-asignar-info h5{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--gg-foreground)}.ep-panel .miembro-asignar-info p,.ep-modal .miembro-asignar-info p{margin:0;font-size:12px;color:var(--gg-muted-foreground)}@media(max-width:768px){.ep-panel .biblioteca-header,.ep-modal .biblioteca-header{flex-direction:column;gap:16px;align-items:stretch}.ep-panel .biblioteca-filtros,.ep-modal .biblioteca-filtros{justify-content:center}.ep-panel .ejercicios-grid,.ep-modal .ejercicios-grid{grid-template-columns:1fr}.ep-panel .ejercicio-parametros,.ep-modal .ejercicio-parametros{flex-wrap:wrap;gap:8px}.ep-panel .ejercicio-rutina-item,.ep-modal .ejercicio-rutina-item{flex-direction:column;align-items:flex-start;gap:12px}.ep-panel .ejercicio-parametros,.ep-modal .ejercicio-parametros{align-self:stretch;justify-content:space-between}.ep-panel .ejercicio-acciones,.ep-modal .ejercicio-acciones{opacity:1}}.ep-panel .no-miembros-message,.ep-modal .no-miembros-message{padding:20px;background:var(--gg-warning-soft);border:1px solid var(--gg-warning);border-radius:8px;text-align:center}.ep-panel .no-miembros-message p,.ep-modal .no-miembros-message p{margin:0 0 8px;color:var(--gg-warning);font-weight:500}.ep-panel .no-miembros-note,.ep-modal .no-miembros-note{font-size:14px;color:var(--gg-warning);font-weight:400!important}.ep-panel .asistencias-stats,.ep-modal .asistencias-stats{display:flex;gap:20px;margin-bottom:25px;justify-content:center}.ep-panel .stat-card,.ep-modal .stat-card{background:linear-gradient(135deg,var(--gg-background),var(--gg-border));border-radius:12px;padding:20px;text-align:center;min-width:120px;box-shadow:0 2px 4px #0000001a}.ep-panel .stat-number,.ep-modal .stat-number{font-size:32px;font-weight:800;color:var(--gg-info);margin-bottom:5px}.ep-panel .stat-label,.ep-modal .stat-label{font-size:14px;color:var(--gg-muted-foreground);font-weight:500}.ep-panel .asistencias-detalle h4,.ep-modal .asistencias-detalle h4{margin:0 0 15px;color:var(--gg-foreground);font-size:18px}.ep-panel .miembro-info,.ep-modal .miembro-info{display:flex;flex-direction:column}.ep-panel .miembro-info strong,.ep-modal .miembro-info strong{color:var(--gg-foreground);font-size:14px;margin-bottom:2px}.ep-panel .miembro-info small,.ep-modal .miembro-info small{color:var(--gg-muted-foreground);font-size:12px}@media(max-width:768px){.ep-panel .asistencias-stats,.ep-modal .asistencias-stats{flex-direction:column;gap:15px}.ep-panel .miembro-info strong,.ep-modal .miembro-info strong{font-size:13px}.ep-panel .miembro-info small,.ep-modal .miembro-info small{font-size:11px}}.ep-panel .miembro-info,.ep-modal .miembro-info{display:flex;flex-direction:column;gap:6px;flex:1}.ep-panel .pautas-list,.ep-modal .pautas-list{display:flex;flex-direction:column;gap:16px;max-height:500px;overflow-y:auto}.ep-panel .pauta-card,.ep-modal .pauta-card{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--gg-background);border:1px solid var(--gg-border);border-radius:8px;transition:all .2s}.ep-panel .pauta-card:hover,.ep-modal .pauta-card:hover{border-color:var(--gg-primary);box-shadow:var(--gg-shadow)}.ep-panel .pauta-info,.ep-modal .pauta-info{flex:1}.ep-panel .pauta-info h4,.ep-modal .pauta-info h4{margin:0 0 8px;font-size:16px;color:var(--gg-foreground)}.ep-panel .pauta-info p,.ep-modal .pauta-info p{margin:4px 0;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .badge-estado,.ep-modal .badge-estado{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;margin-top:8px}.ep-panel .pauta-actions,.ep-modal .pauta-actions{display:flex;gap:8px}.ep-panel .alimento-macros,.ep-modal .alimento-macros{display:flex;flex-direction:column;gap:8px;margin:12px 0;padding:14px;background:var(--gg-background);border-radius:8px}.ep-panel .macro-label,.ep-modal .macro-label{color:var(--gg-muted-foreground);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.ep-panel .macro-value,.ep-modal .macro-value{color:var(--gg-foreground);font-weight:700;font-size:14px;text-align:right;white-space:nowrap}.ep-panel .calculadora-form,.ep-modal .calculadora-form,.ep-panel .alimento-form,.ep-modal .alimento-form,.ep-panel .datos-fisicos-form,.ep-modal .datos-fisicos-form{display:flex;flex-direction:column;gap:20px}.ep-panel .form-section,.ep-modal .form-section{background:var(--gg-background);padding:16px;border-radius:8px;border:1px solid var(--gg-border)}.ep-panel .form-section h4,.ep-modal .form-section h4{margin:0 0 16px;color:var(--gg-foreground);font-size:16px;font-weight:600}.ep-panel .resultado-calculadora,.ep-modal .resultado-calculadora{background:var(--gg-info-soft);border:1px solid var(--gg-info);border-radius:8px;padding:20px;margin-top:20px}.ep-panel .resultado-calculadora h4,.ep-modal .resultado-calculadora h4{margin:0 0 16px;color:var(--gg-info);font-size:18px;font-weight:600}.ep-panel .resultado-grid,.ep-modal .resultado-grid{display:grid;gap:12px;margin-bottom:20px}.ep-panel .resultado-item,.ep-modal .resultado-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--gg-card);border-radius:6px;border:1px solid var(--gg-info)}.ep-panel .resultado-label,.ep-modal .resultado-label{font-weight:500;color:var(--gg-foreground)}.ep-panel .resultado-value,.ep-modal .resultado-value{font-weight:700;color:var(--gg-info);font-size:16px}.ep-panel .macronutrientes,.ep-modal .macronutrientes{margin-top:20px}.ep-panel .macronutrientes h5,.ep-modal .macronutrientes h5{margin:0 0 16px;color:var(--gg-info);font-size:16px;font-weight:600}.ep-panel .macros-grid,.ep-modal .macros-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ep-panel .macro-card,.ep-modal .macro-card{background:var(--gg-card);border-radius:8px;padding:16px;text-align:center;border:2px solid}.ep-panel .macro-card.proteinas,.ep-modal .macro-card.proteinas{border-color:var(--gg-danger);background:var(--gg-danger-soft)}.ep-panel .macro-card.carbohidratos,.ep-modal .macro-card.carbohidratos{border-color:var(--gg-warning);background:var(--gg-warning-soft)}.ep-panel .macro-card.grasas,.ep-modal .macro-card.grasas{border-color:var(--gg-success);background:var(--gg-success-soft)}.ep-panel .macro-card h6,.ep-modal .macro-card h6{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--gg-foreground)}.ep-panel .macro-values,.ep-modal .macro-values{display:flex;flex-direction:column;gap:4px}.ep-panel .macro-values span,.ep-modal .macro-values span{font-size:12px;font-weight:500;color:var(--gg-foreground)}.ep-panel .macro-values span:first-child,.ep-modal .macro-values span:first-child{font-size:16px;font-weight:700}@media(max-width:1024px){.ep-panel .macros-grid,.ep-modal .macros-grid{grid-template-columns:1fr;gap:8px}}@media(max-width:768px){.ep-panel .alimento-macros,.ep-modal .alimento-macros{grid-template-columns:1fr;gap:6px}}.ep-panel .perfil-avatar,.ep-modal .perfil-avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;border:3px solid var(--gg-card);box-shadow:0 2px 8px var(--gg-shadow-sm)}.ep-panel .perfil-avatar img,.ep-modal .perfil-avatar img{width:100%;height:100%;object-fit:cover}.ep-panel .perfil-info h4,.ep-modal .perfil-info h4{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--gg-foreground)}.ep-panel .perfil-email,.ep-modal .perfil-email{font-size:13px;color:var(--gg-muted-foreground);margin-bottom:8px;display:block}.ep-panel .estado-badge,.ep-modal .estado-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-transform:capitalize}.ep-panel .estado-badge.activo,.ep-modal .estado-badge.activo{background:var(--gg-success-soft);color:var(--gg-success)}.ep-panel .estado-badge.inactivo,.ep-modal .estado-badge.inactivo{background:var(--gg-danger-soft);color:var(--gg-danger)}.ep-panel .estado-badge.suspendido,.ep-modal .estado-badge.suspendido{background:var(--gg-warning-soft);color:var(--gg-warning)}.ep-panel .stat-icon,.ep-modal .stat-icon{font-size:20px}.ep-panel .stat-label,.ep-modal .stat-label{font-size:11px;color:var(--gg-muted-foreground);text-transform:uppercase;font-weight:500}.ep-panel .stat-value,.ep-modal .stat-value{font-size:14px;font-weight:600;color:var(--gg-foreground)}.ep-panel .section-header,.ep-modal .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ep-panel .info-item,.ep-modal .info-item{display:flex;flex-direction:column;gap:4px}.ep-panel .info-label,.ep-modal .info-label{font-size:12px;color:var(--gg-muted-foreground);font-weight:500;text-transform:uppercase}.ep-panel .info-value,.ep-modal .info-value{font-size:14px;color:var(--gg-foreground);font-weight:500}.ep-panel .stat-card,.ep-modal .stat-card{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,var(--gg-background) 0%,var(--gg-border) 100%);border-radius:12px;border:1px solid var(--gg-border)}.ep-panel .stat-card .stat-icon,.ep-modal .stat-card .stat-icon{font-size:32px}.ep-panel .stat-content,.ep-modal .stat-content{display:flex;flex-direction:column;gap:4px}.ep-panel .stat-content .stat-label,.ep-modal .stat-content .stat-label{font-size:11px}.ep-panel .stat-content .stat-value,.ep-modal .stat-content .stat-value{font-size:18px}.ep-panel .documentos-list,.ep-modal .documentos-list{display:flex;flex-direction:column;gap:12px}.ep-panel .documento-item,.ep-modal .documento-item{display:flex;align-items:center;gap:12px;padding:16px;background:var(--gg-background);border-radius:8px;border:1px solid var(--gg-border);transition:all .2s}.ep-panel .documento-item:hover,.ep-modal .documento-item:hover{background:var(--gg-card);box-shadow:0 2px 8px var(--gg-shadow-sm)}.ep-panel .documento-icon,.ep-modal .documento-icon{font-size:32px;color:var(--gg-primary)}.ep-panel .documento-info,.ep-modal .documento-info{flex:1;display:flex;flex-direction:column;gap:4px}.ep-panel .documento-nombre,.ep-modal .documento-nombre{font-size:14px;font-weight:600;color:var(--gg-foreground)}.ep-panel .documento-tipo,.ep-modal .documento-tipo{font-size:12px;color:var(--gg-muted-foreground);text-transform:capitalize}.ep-panel .documento-fecha,.ep-modal .documento-fecha{font-size:11px;color:var(--gg-muted-foreground)}.ep-panel .documento-descripcion,.ep-modal .documento-descripcion{font-size:12px;color:var(--gg-muted-foreground);font-style:italic;margin-top:4px}.ep-panel .documento-actions,.ep-modal .documento-actions{display:flex;gap:8px}.ep-panel .btn-icon,.ep-modal .btn-icon{padding:8px 12px;background:transparent;border:1px solid var(--gg-border);border-radius:6px;cursor:pointer;transition:all .2s;font-size:16px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.ep-panel .btn-icon:hover,.ep-modal .btn-icon:hover{background:var(--gg-background);border-color:var(--gg-primary)}.ep-panel .fotos-grid,.ep-modal .fotos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.ep-panel .foto-item,.ep-modal .foto-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px var(--gg-shadow-sm);transition:all .3s}.ep-panel .foto-item:hover,.ep-modal .foto-item:hover{transform:scale(1.05);box-shadow:0 8px 16px var(--gg-shadow)}.ep-panel .foto-item img,.ep-modal .foto-item img{width:100%;height:100%;object-fit:cover}.ep-panel .foto-overlay,.ep-modal .foto-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:16px;display:flex;flex-direction:column;gap:4px;opacity:0;transition:opacity .3s}.ep-panel .foto-item:hover .foto-overlay,.ep-modal .foto-item:hover .foto-overlay{opacity:1}.ep-panel .foto-fecha,.ep-modal .foto-fecha{font-size:11px;color:var(--gg-primary-foreground);font-weight:500}.ep-panel .foto-descripcion,.ep-modal .foto-descripcion{font-size:12px;color:#ffffffe6}.ep-panel .preview-container,.ep-modal .preview-container{margin-top:16px;border-radius:8px;overflow:hidden;border:2px solid var(--gg-border)}.ep-panel .image-preview,.ep-modal .image-preview{width:100%;max-height:300px;object-fit:contain;background:var(--gg-background)}.ep-panel .empty-state,.ep-modal .empty-state{text-align:center;padding:48px 24px;color:var(--gg-muted-foreground)}.ep-panel .empty-message,.ep-modal .empty-message{text-align:center;padding:24px;color:var(--gg-muted-foreground);font-style:italic}.ep-panel .modal-foto-ampliada,.ep-modal .modal-foto-ampliada{background:#000000f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ep-panel .foto-ampliada-body,.ep-modal .foto-ampliada-body{display:flex;flex-direction:column;gap:20px;padding:0;max-height:calc(95vh - 180px);overflow:hidden}.ep-panel .foto-ampliada,.ep-modal .foto-ampliada{width:100%;max-height:calc(95vh - 280px);object-fit:contain;background:var(--gg-foreground);border-radius:8px}.ep-panel .foto-ampliada-info,.ep-modal .foto-ampliada-info{padding:20px;background:var(--gg-background);border-radius:8px;display:flex;flex-direction:column;gap:12px}.ep-panel .info-row,.ep-modal .info-row{display:flex;gap:12px;align-items:center}.ep-panel .info-row .info-label,.ep-modal .info-row .info-label{font-size:13px;color:var(--gg-muted-foreground);font-weight:600;min-width:120px}.ep-panel .info-row .info-value,.ep-modal .info-row .info-value{font-size:14px;color:var(--gg-foreground);font-weight:500}.ep-panel .foto-item,.ep-modal .foto-item{cursor:pointer}.ep-panel .foto-item:hover,.ep-modal .foto-item:hover{cursor:zoom-in}.ep-panel .info-box,.ep-modal .info-box{padding:16px;background:var(--gg-info-soft);border-left:4px solid var(--gg-primary);border-radius:8px;margin-top:16px;font-size:14px;color:var(--gg-foreground)}.ep-panel .info-box strong,.ep-modal .info-box strong{color:var(--gg-primary)}.ep-panel .rutinas-asignadas-list,.ep-modal .rutinas-asignadas-list{display:flex;flex-direction:column;gap:12px}.ep-panel .rutina-asignada-item,.ep-modal .rutina-asignada-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--gg-background);border-radius:8px;border:1px solid var(--gg-border);transition:all .2s}.ep-panel .rutina-asignada-item:hover,.ep-modal .rutina-asignada-item:hover{background:var(--gg-card);box-shadow:0 2px 8px var(--gg-shadow-sm)}.ep-panel .rutina-asignada-info,.ep-modal .rutina-asignada-info{flex:1}.ep-panel .rutina-asignada-info h5,.ep-modal .rutina-asignada-info h5{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .rutina-asignada-info p,.ep-modal .rutina-asignada-info p{margin:0 0 8px;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .rutina-asignada-meta,.ep-modal .rutina-asignada-meta{display:flex;gap:16px;font-size:12px;color:var(--gg-muted-foreground)}@media(max-width:768px){.ep-panel .fotos-grid,.ep-modal .fotos-grid{grid-template-columns:repeat(2,1fr)}.ep-panel .info-row,.ep-modal .info-row{flex-direction:column;align-items:flex-start;gap:4px}}.ep-panel .pauta-seccion,.ep-modal .pauta-seccion{margin-bottom:24px;padding:20px;background:var(--gg-background);border-radius:8px}.ep-panel .pauta-seccion h4,.ep-modal .pauta-seccion h4{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--gg-foreground)}.ep-panel .comida-card,.ep-modal .comida-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:8px;padding:16px;margin-bottom:16px}.ep-panel .comida-header,.ep-modal .comida-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid var(--gg-border)}.ep-panel .comida-title-edit,.ep-modal .comida-title-edit{display:flex;gap:12px;align-items:center;flex:1}.ep-panel .input-nombre-comida,.ep-modal .input-nombre-comida{flex:1}.ep-panel .input-horario-comida,.ep-modal .input-horario-comida{width:120px}.ep-panel .comida-header h5,.ep-modal .comida-header h5{margin:0;font-size:15px;font-weight:600;color:var(--gg-primary)}.ep-panel .comida-totales small,.ep-modal .comida-totales small{font-size:12px;color:var(--gg-muted-foreground);font-weight:500}.ep-panel .alimentos-comida-list,.ep-modal .alimentos-comida-list{margin-bottom:12px}.ep-panel .alimento-comida-item,.ep-modal .alimento-comida-item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:var(--gg-background);border-radius:6px;margin-bottom:8px}.ep-panel .alimento-info,.ep-modal .alimento-info{display:flex;gap:12px;align-items:center}.ep-panel .alimento-info strong,.ep-modal .alimento-info strong{font-size:14px;color:var(--gg-foreground)}.ep-panel .alimento-info span,.ep-modal .alimento-info span{font-size:13px;color:var(--gg-muted-foreground);font-weight:500}.ep-panel .alimento-macros,.ep-modal .alimento-macros{display:flex;gap:12px;font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .agregar-alimento-comida,.ep-modal .agregar-alimento-comida{margin-top:12px}.ep-panel .select-alimento,.ep-modal .select-alimento{width:100%}.ep-panel .pauta-resumen,.ep-modal .pauta-resumen{background:var(--gg-success-soft);border:2px solid var(--gg-success)}.ep-panel .resumen-macros,.ep-modal .resumen-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.ep-panel .macro-total,.ep-modal .macro-total{text-align:center;padding:16px;background:var(--gg-card);border-radius:8px;box-shadow:0 2px 4px #0000000d}.ep-panel .macro-label,.ep-modal .macro-label{display:block;font-size:12px;color:var(--gg-muted-foreground);margin-bottom:8px;font-weight:500}.ep-panel .macro-value,.ep-modal .macro-value{display:block;font-size:20px;font-weight:700;color:var(--gg-primary)}.ep-panel .section-header-flex,.ep-modal .section-header-flex{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ep-panel .suplementos-list,.ep-modal .suplementos-list{display:flex;flex-direction:column;gap:12px}.ep-panel .suplemento-item,.ep-modal .suplemento-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--gg-card);border:1px solid var(--gg-border);border-radius:8px;transition:all .2s}.ep-panel .suplemento-item:hover,.ep-modal .suplemento-item:hover{border-color:var(--gg-info);box-shadow:0 2px 8px #8b5cf61a}.ep-panel .suplemento-info,.ep-modal .suplemento-info{display:flex;flex-direction:column;gap:4px;flex:1}.ep-panel .suplemento-info strong,.ep-modal .suplemento-info strong{font-size:15px;color:var(--gg-foreground)}.ep-panel .suplemento-info span,.ep-modal .suplemento-info span{font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .suplemento-notas,.ep-modal .suplemento-notas{font-style:italic;color:var(--gg-muted-foreground)!important}.ep-panel .empty-message,.ep-modal .empty-message{text-align:center;color:var(--gg-muted-foreground);font-style:italic;padding:20px}@media(max-width:768px){.ep-panel .resumen-macros,.ep-modal .resumen-macros{grid-template-columns:repeat(2,1fr)}.ep-panel .alimento-comida-item,.ep-modal .alimento-comida-item{flex-direction:column;align-items:flex-start;gap:8px}.ep-panel .alimento-macros,.ep-modal .alimento-macros{width:100%;justify-content:space-between}.ep-panel .comida-title-edit,.ep-modal .comida-title-edit{flex-direction:column;align-items:stretch;gap:8px}.ep-panel .comida-header,.ep-modal .comida-header{flex-direction:column;align-items:stretch;gap:12px}}.ep-panel{min-width:0}.ep-panel .ep-tab-content,.ep-panel .ep-seguimiento-content,.ep-panel .ep-asistencia-content,.ep-panel .ep-rutinas-content{display:flex;flex-direction:column;gap:24px;min-width:0}.ep-panel .ep-toolbar-actions,.ep-panel .ep-asistencia-actions,.ep-panel .ep-composicion-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ep-panel .ep-subtitle{color:var(--gg-muted-foreground);margin:4px 0 0;font-size:14px}.ep-panel .ep-error-message{background:var(--gg-danger-soft);color:var(--gg-danger);border:1px solid var(--gg-danger);border-radius:var(--gg-radius);padding:10px 14px;font-size:14px}.ep-panel .ep-aviso-warn{background:var(--gg-warning-soft);color:var(--gg-warning);border:1px solid var(--gg-warning);border-radius:var(--gg-radius);padding:10px 14px;font-size:14px}.ep-panel .ep-empty-state,.ep-panel .ep-no-data,.ep-panel .ep-no-miembros{text-align:center;color:var(--gg-muted-foreground);padding:32px 16px;display:flex;flex-direction:column;align-items:center;gap:12px}.ep-panel .ep-asistencia-header{justify-content:space-between}.ep-panel .ep-fecha-selector{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ep-panel .ep-fecha-actual{font-weight:600;font-size:14px;color:var(--gg-foreground);min-width:160px;text-align:center}.ep-panel .ep-asistencia-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.ep-panel .ep-calendario-section,.ep-panel .ep-reporte-miembros-section,.ep-panel .ep-ranking-section,.ep-panel .ep-composicion-section,.ep-panel .ep-selector-panel,.ep-panel .ep-metricas-panel,.ep-panel .ep-segmentos-panel,.ep-panel .ep-impedancia-panel,.ep-panel .ep-historial-analisis,.ep-panel .ep-control-panel{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius-lg);padding:24px;box-shadow:var(--gg-shadow-sm)}.ep-panel .ep-calendario-section h4,.ep-panel .ep-reporte-miembros-section h4,.ep-panel .ep-ranking-section h4{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:16px;color:var(--gg-foreground)}.ep-panel .ep-calendario-header{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.ep-panel .ep-dia-header{text-align:center;font-size:12px;font-weight:600;color:var(--gg-muted-foreground);padding:6px 0;text-transform:uppercase}.ep-panel .ep-calendario-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.ep-panel .ep-dia-calendario{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--gg-radius-sm);border:1px solid var(--gg-border);background:var(--gg-card);font-size:13px;transition:all .15s ease}.ep-panel .ep-dia-calendario:not(.ep-vacio):hover{border-color:var(--gg-primary);box-shadow:var(--gg-shadow-sm)}.ep-panel .ep-dia-calendario.ep-vacio{background:transparent;border:none}.ep-panel .ep-dia-calendario.ep-hoy{background:var(--gg-primary);color:var(--gg-primary-foreground);border-color:var(--gg-primary);font-weight:700}.ep-panel .ep-dia-calendario.ep-futuro{color:var(--gg-muted-foreground);background:var(--gg-background)}.ep-panel .ep-numero-dia{font-weight:500}.ep-panel .ep-indicador-asistencia{position:absolute;bottom:6px;width:8px;height:8px;border-radius:50%}.ep-panel .ep-indicador-asistencia.alta{background:var(--gg-success)}.ep-panel .ep-indicador-asistencia.media{background:var(--gg-warning)}.ep-panel .ep-indicador-asistencia.baja{background:var(--gg-danger)}.ep-panel .ep-calendario-leyenda{display:flex;gap:20px;flex-wrap:wrap;margin-top:16px;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .ep-leyenda-item{display:flex;align-items:center;gap:6px}.ep-panel .ep-indicador-leyenda{width:10px;height:10px;border-radius:50%}.ep-panel .ep-indicador-leyenda.alta{background:var(--gg-success)}.ep-panel .ep-indicador-leyenda.media{background:var(--gg-warning)}.ep-panel .ep-indicador-leyenda.baja{background:var(--gg-danger)}.ep-panel .ep-progreso-texto{position:relative;font-size:11px;font-weight:700;color:var(--gg-foreground)}.ep-panel .ep-miembros-asistencia-lista{display:flex;flex-direction:column;gap:10px}.ep-panel .ep-miembro-asistencia-item{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--gg-border);border-radius:var(--gg-radius);background:var(--gg-card);flex-wrap:wrap}.ep-panel .ep-miembro-avatar .ep-avatar-circle,.ep-panel .ep-avatar-circle{width:40px;height:40px;border-radius:50%;background:var(--gg-primary);color:var(--gg-primary-foreground);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.ep-panel .ep-miembro-asistencia-info{flex:1;min-width:0}.ep-panel .ep-miembro-asistencia-info h5{margin:0 0 2px;font-size:15px}.ep-panel .ep-miembro-asistencia-info p{margin:0;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .ep-asistencia-stats-miembro{display:flex;align-items:center;gap:16px}.ep-panel .ep-stat-miembro,.ep-panel .ep-stat-item{display:flex;flex-direction:column;gap:2px}.ep-panel .ep-stat-label{font-size:11px;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.4px}.ep-panel .ep-stat-valor,.ep-panel .ep-stat-value{font-size:15px;font-weight:700;color:var(--gg-foreground)}.ep-panel .ep-racha-asistencia{text-align:center;background:var(--gg-primary-soft);border-radius:var(--gg-radius);padding:6px 12px}.ep-panel .ep-racha-numero{font-weight:800;color:var(--gg-primary);font-size:16px}.ep-panel .ep-racha-texto{font-size:10px;color:var(--gg-muted-foreground);text-transform:uppercase}.ep-panel .ep-estado-miembro.ep-activo{color:var(--gg-success);font-weight:600;font-size:13px}.ep-panel .ep-rutinas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.ep-panel .ep-rutina-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius-lg);padding:20px;box-shadow:var(--gg-shadow-sm);display:flex;flex-direction:column;gap:12px}.ep-panel .ep-rutina-header-card{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.ep-panel .ep-rutina-info h4{margin:0 0 4px;font-size:16px;color:var(--gg-foreground)}.ep-panel .ep-rutina-info p{margin:0;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .ep-rutina-stats{display:flex;gap:16px;flex-wrap:wrap}.ep-panel .ep-rutina-stat{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .ep-rutina-tags{display:flex;gap:8px;flex-wrap:wrap}.ep-panel .ep-rutina-ejercicios{border-top:1px solid var(--gg-border);padding-top:12px}.ep-panel .ep-ejercicios-preview{display:flex;flex-direction:column;gap:6px}.ep-panel .ep-ejercicio-preview{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--gg-foreground)}.ep-panel .ep-ejercicio-detalles{color:var(--gg-muted-foreground);white-space:nowrap}.ep-panel .ep-rutina-acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.ep-panel .ep-nutricion-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.ep-panel .ep-nutricion-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius-lg);padding:20px;box-shadow:var(--gg-shadow-sm);min-width:0}.ep-panel .ep-miembros-nutricion-list,.ep-panel .ep-alimentos-grid{display:flex;flex-direction:column;gap:10px;max-height:520px;overflow-y:auto}.ep-panel .ep-miembro-nutricion-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--gg-border);border-radius:var(--gg-radius);background:var(--gg-background);flex-wrap:wrap}.ep-panel .ep-miembro-info{min-width:0;flex:1}.ep-panel .ep-miembro-nombre{display:block;font-weight:600;font-size:14px;color:var(--gg-foreground)}.ep-panel .ep-miembro-email{display:block;font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .ep-miembro-datos-resumen{font-size:12px;color:var(--gg-muted-foreground);margin-top:4px;display:flex;gap:10px;flex-wrap:wrap}.ep-panel .ep-miembro-actions{display:flex;gap:6px;flex-wrap:wrap}.ep-panel .ep-alimento-card{border:1px solid var(--gg-border);border-radius:var(--gg-radius);padding:14px;background:var(--gg-card);display:flex;flex-direction:column;gap:8px}.ep-panel .ep-alimento-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.ep-panel .ep-alimento-categoria{font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .ep-alimento-macros{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.ep-panel .ep-macro-item{display:flex;justify-content:space-between;font-size:12px;background:var(--gg-background);padding:6px 8px;border-radius:var(--gg-radius-sm)}.ep-panel .ep-macro-label{color:var(--gg-muted-foreground)}.ep-panel .ep-macro-value{font-weight:600;color:var(--gg-foreground)}.ep-panel .ep-alimento-descripcion{margin:0;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .ep-alimento-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.ep-panel .ep-alimento-autor{font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .ep-alimento-actions{display:flex;gap:6px}.ep-panel .ep-btn-icon{border:1px solid var(--gg-border);background:var(--gg-card);border-radius:var(--gg-radius-sm);padding:4px 8px;cursor:pointer;font-size:13px;color:var(--gg-foreground)}.ep-panel .ep-btn-icon:hover{border-color:var(--gg-primary);color:var(--gg-primary)}.ep-panel .ep-btn-icon.ep-danger:hover{border-color:var(--gg-danger);color:var(--gg-danger)}.ep-panel .ep-perfiles-controles{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ep-panel .ep-busqueda-wrap{position:relative;flex:1;min-width:220px}.ep-panel .ep-busqueda-input{width:100%;padding:10px 14px 10px 38px;border:1px solid var(--gg-border);border-radius:var(--gg-radius);font-size:14px;background:var(--gg-card);color:var(--gg-foreground);box-sizing:border-box}.ep-panel .ep-busqueda-input:focus{outline:none;border-color:var(--gg-primary);box-shadow:0 0 0 3px var(--gg-ring)}.ep-panel .ep-perfiles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.ep-panel .ep-perfil-card{background:var(--gg-card);border:1px solid var(--gg-border);border-radius:var(--gg-radius-lg);padding:20px;box-shadow:var(--gg-shadow-sm);display:flex;flex-direction:column;gap:14px}.ep-panel .ep-perfil-card-header{display:flex;gap:14px;align-items:center}.ep-panel .ep-perfil-avatar,.ep-panel .ep-avatar-placeholder{width:52px;height:52px;border-radius:50%;background:var(--gg-primary);color:var(--gg-primary-foreground);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0;overflow:hidden}.ep-panel .ep-perfil-avatar img{width:100%;height:100%;object-fit:cover}.ep-panel .ep-perfil-info{min-width:0}.ep-panel .ep-perfil-info h4{margin:0 0 2px;font-size:15px}.ep-panel .ep-perfil-email{margin:0;font-size:12px;color:var(--gg-muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-panel .ep-perfil-badges{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.ep-panel .ep-perfil-stats{display:flex;gap:16px;flex-wrap:wrap}.ep-panel .ep-stat-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 36px;background:var(--gg-primary-soft);border-radius:var(--gg-radius-sm);color:var(--gg-primary)}.ep-panel .ep-stat-item{flex-direction:row;align-items:center;gap:8px}.ep-panel .ep-stat-info{display:flex;flex-direction:column}.ep-panel .ep-perfil-documentos-resumen{display:flex;gap:12px;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .ep-doc-count{display:flex;align-items:center;gap:6px}.ep-panel .ep-perfil-card-footer{margin-top:auto;display:flex;justify-content:flex-end}.ep-panel .ep-periodo-selector{display:flex;gap:8px;flex-wrap:wrap}.ep-panel .ep-composicion-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:20px}.ep-panel .ep-composicion-header h4{margin:0;font-size:17px;color:var(--gg-foreground)}.ep-panel .ep-selector-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.ep-panel .ep-selector-label{font-size:13px;font-weight:600;color:var(--gg-foreground)}.ep-panel .ep-selector-value{font-size:14px;color:var(--gg-muted-foreground)}.ep-panel .ep-metricas-cards,.ep-panel .ep-control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.ep-panel .ep-metrica-card,.ep-panel .ep-control-card{background:var(--gg-background);border:1px solid var(--gg-border);border-radius:var(--gg-radius);padding:14px;display:flex;flex-direction:column;gap:4px}.ep-panel .ep-metrica-label{font-size:12px;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.4px}.ep-panel .ep-metrica-valor,.ep-panel .ep-control-valor{font-size:18px;font-weight:700;color:var(--gg-foreground)}.ep-panel .ep-metrica-valor-stack{display:flex;flex-direction:column;gap:2px}.ep-panel .ep-control-detalle{font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .ep-progreso-container{display:flex;flex-direction:column;gap:6px;margin:8px 0}.ep-panel .ep-progreso-bar{height:10px;background:var(--gg-border);border-radius:999px;overflow:hidden}.ep-panel .ep-progreso-fill{height:100%;background:var(--gg-primary);border-radius:999px;transition:width .3s ease}.ep-panel .ep-progreso-text{font-size:12px;color:var(--gg-muted-foreground)}.ep-panel .ep-segmentos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.ep-panel .ep-segmento-card{border:1px solid var(--gg-border);border-radius:var(--gg-radius);padding:12px;background:var(--gg-card)}.ep-panel .ep-segmento-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}.ep-panel .ep-segmento-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--gg-primary-soft);color:var(--gg-primary);font-weight:600}.ep-panel .ep-segmento-values{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .ep-segmentos-wrapper{display:grid;grid-template-columns:1fr;gap:20px}.ep-panel .ep-segmentos-lienzo{width:100%;overflow-x:auto}.ep-panel .ep-impedancia-table,.ep-panel .ep-historial-table{width:100%;border-collapse:collapse;font-size:13px}.ep-panel .ep-impedancia-table th,.ep-panel .ep-impedancia-table td,.ep-panel .ep-historial-table th,.ep-panel .ep-historial-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--gg-border)}.ep-panel .ep-impedancia-table th,.ep-panel .ep-historial-table th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--gg-muted-foreground)}.ep-panel .ep-historial-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.ep-panel .ep-historial-detalle{margin-top:12px}.ep-panel .ep-analisis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.ep-panel .ep-table-actions{display:flex;gap:8px;flex-wrap:wrap}.ep-panel .ep-ranking-lista{display:flex;flex-direction:column;gap:10px}.ep-panel .ep-ranking-item{display:flex;align-items:center;gap:14px;padding:10px 14px;border:1px solid var(--gg-border);border-radius:var(--gg-radius);background:var(--gg-card)}.ep-panel .ep-ranking-posicion{font-weight:800;color:var(--gg-primary);min-width:32px}.ep-panel .ep-ranking-info{flex:1;min-width:0}.ep-panel .ep-ranking-nombre{font-weight:600;font-size:14px}.ep-panel .ep-ranking-progreso{font-size:13px;color:var(--gg-muted-foreground)}.ep-panel .ep-modal-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.ep-panel .ep-confirm-message,.ep-modal .ep-confirm-message{margin:0 0 14px;font-size:14px;color:var(--gg-foreground);white-space:pre-line}.ep-modal .ep-modal-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}@media(max-width:768px){.ep-panel .ep-rutinas-grid,.ep-panel .ep-perfiles-grid,.ep-panel .ep-nutricion-grid,.ep-panel .ep-metricas-cards,.ep-panel .ep-control-grid,.ep-panel .ep-analisis-grid,.ep-panel .ep-segmentos-grid{grid-template-columns:1fr}.ep-panel .ep-miembro-asistencia-item,.ep-panel .ep-miembro-nutricion-item,.ep-panel .ep-ranking-item{flex-direction:column;align-items:stretch}.ep-panel .ep-toolbar-actions,.ep-panel .ep-asistencia-actions,.ep-panel .ep-composicion-actions,.ep-panel .ep-rutina-acciones,.ep-panel .ep-miembro-actions{width:100%}}.ep-panel .ep-foto-delete,.ep-modal .ep-foto-delete{position:absolute;top:6px;right:6px}.ep-panel .ep-impedancia-panel{overflow-x:auto}.ep-panel .ep-busqueda-wrap>.gg-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--gg-muted-foreground);pointer-events:none}@media(max-width:768px){.ep-panel .ep-fecha-actual{flex:1;min-width:0;text-align:center}}.ep-panel .ep-calendario-container{min-width:0}.ep-panel .ep-ejercicio-nombre{font-weight:600;font-size:13px;color:var(--gg-foreground)}.ep-panel .ep-perfil-card-body{display:flex;flex-direction:column;gap:10px}.ep-detail{display:flex;flex-direction:column;gap:16px;width:100%;min-width:0}.ep-detail .gg-card__header{flex-wrap:wrap;gap:var(--gg-space-3)}.ep-detail .gg-card__title{display:inline-flex;align-items:center;gap:8px}.ep-detail .gg-card__actions{display:flex;flex-wrap:wrap;gap:8px}.ep-detail__info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;min-width:0}.ep-detail__field{min-width:0}.ep-detail__field dt{margin:0;font-size:12px;font-weight:600;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.5px}.ep-detail__field dd{margin:4px 0 0;font-size:14px;color:var(--gg-foreground);overflow-wrap:anywhere;text-align:left}.ep-detail__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px}.ep-detail__metrics .gg-stat{align-items:flex-start;min-width:0}.ep-detail__metrics .gg-stat>div{min-width:0}.ep-detail__metrics .gg-stat__value{font-size:18px;line-height:1.3;overflow-wrap:anywhere;min-width:0}.ep-detail__resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;width:100%}.ep-detail__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.ep-detail__row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;border:1px solid var(--gg-border);border-radius:var(--gg-radius)}.ep-detail__row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.ep-detail__row-text strong{overflow-wrap:anywhere}.ep-detail__row-text span{font-size:13px;color:var(--gg-muted-foreground);overflow-wrap:anywhere}.ep-detail__row-actions{display:flex;gap:8px;flex-shrink:0}.ep-detail__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ep-detail__meta-item{display:inline-flex;align-items:center;gap:4px}.ep-detail__photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:16px}.ep-detail__photo{position:relative;margin:0}.ep-detail__photo-view{display:block;width:100%;padding:0;border:1px solid var(--gg-border);border-radius:var(--gg-radius);overflow:hidden;background:var(--gg-background);cursor:pointer}.ep-detail__photo-view:focus-visible{outline:2px solid var(--gg-primary);outline-offset:3px}.ep-detail__photo-view img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.ep-detail__photo-meta{display:flex;flex-direction:column;gap:2px;padding:8px 2px 0;font-size:12px;color:var(--gg-muted-foreground);overflow-wrap:anywhere}.ep-detail__photo-delete{position:absolute;top:8px;right:8px}.ep-detail .gg-empty{padding:24px 16px}@media(max-width:768px){.ep-detail__resources,.ep-detail__info{grid-template-columns:1fr}.ep-detail .gg-card__actions{width:100%}}.ep-detail__subtitle{margin:var(--gg-space-4, 16px) 0 var(--gg-space-2, 8px);font-size:13px;font-weight:600;color:var(--gg-muted-foreground);text-transform:uppercase;letter-spacing:.04em}.ep-solicitudes__head{display:flex;justify-content:flex-end;margin-bottom:var(--gg-space-3, 12px)}.ep-solicitudes__form{display:flex;flex-direction:column;gap:var(--gg-space-3, 12px);margin-bottom:var(--gg-space-4, 16px)}.ep-solicitudes__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--gg-space-2, 8px)}.ep-solicitudes__row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gg-space-3, 12px);padding:var(--gg-space-3, 12px);border:1px solid var(--gg-border);border-radius:var(--gg-radius, 10px)}.ep-solicitudes__note{margin:0 0 var(--gg-space-3, 12px);font-size:13px;color:var(--gg-muted-foreground)}.ep-solicitudes__actions{display:flex;align-items:center;gap:var(--gg-space-2, 8px);flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}.ep-solicitudes__error{display:flex;flex-direction:column;align-items:center;gap:var(--gg-space-3, 12px);padding:var(--gg-space-4, 16px);color:var(--gg-muted-foreground)}.progress-bar{width:100%;height:8px;background:var(--gg-border);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:var(--gg-success);transition:width .3s ease}.vp-meta{display:flex;flex-direction:column;gap:var(--gg-space-3)}.vp-meta__cifras{display:flex;align-items:baseline;gap:var(--gg-space-2);flex-wrap:wrap}.vp-meta__actual{font-size:32px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.vp-meta__objetivo{font-size:14px;color:var(--gg-muted-foreground)}.vp-meta__bar{height:10px;border-radius:999px;background:var(--gg-background);overflow:hidden}.vp-meta__bar span{display:block;height:100%;background:var(--gg-primary);border-radius:999px;transition:width .4s ease}.vp-meta__bar.is-complete span{background:var(--gg-success)}.vp-meta__pie{display:flex;justify-content:space-between;font-size:13px;color:var(--gg-muted-foreground)}.vp-meta__detalle{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gg-space-3);margin:var(--gg-space-2) 0 0;padding-top:var(--gg-space-3);border-top:1px solid var(--gg-border)}.vp-meta__detalle dt{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--gg-muted-foreground)}.vp-meta__detalle dd{margin:2px 0 0;font-weight:600}.vp-alertas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.vp-alertas__item{display:flex;align-items:center;gap:var(--gg-space-3);padding:var(--gg-space-2) 0;border-bottom:1px solid var(--gg-border)}.vp-alertas__item:last-child{border-bottom:0}.vp-alertas__avatar{width:32px;height:32px;border-radius:50%;background:var(--gg-warning-soft);color:var(--gg-warning);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.vp-alertas__info{flex:1;min-width:0;display:flex;flex-direction:column}.vp-alertas__nombre{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.miembros-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--gg-space-4)}.vp-member{--vp-member-accent: var(--gg-muted-foreground);background:var(--gg-card);border:1px solid var(--gg-border);border-left:3px solid var(--vp-member-accent);border-radius:var(--gg-radius);padding:var(--gg-space-4);display:flex;flex-direction:column;gap:var(--gg-space-3);transition:box-shadow .2s ease}.vp-member--activo{--vp-member-accent: var(--gg-success)}.vp-member--por_vencer{--vp-member-accent: var(--gg-warning)}.vp-member--vencido,.vp-member--suspendido{--vp-member-accent: var(--gg-danger)}.vp-member:hover{box-shadow:var(--gg-shadow)}.vp-member__head{display:flex;align-items:flex-start;gap:var(--gg-space-3)}.vp-member__avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.vp-member__avatar{width:40px;height:40px;border-radius:50%;background:var(--gg-primary-soft);color:var(--gg-primary);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.vp-member__id{flex:1;min-width:0}.vp-member__name{margin:0;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp-member__plan{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--gg-muted-foreground)}.vp-member__meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--gg-space-2) var(--gg-space-4);font-size:13px;color:var(--gg-muted-foreground)}.vp-member__meta li{display:inline-flex;align-items:center;gap:6px}.vp-member__meta svg{width:14px;height:14px;flex-shrink:0}.vp-member__bar{height:4px;background:var(--gg-background);border-radius:999px;overflow:hidden}.vp-member__bar span{display:block;height:100%;background:var(--vp-member-accent)}.vp-member__actions{display:flex;align-items:center;gap:var(--gg-space-2)}.vp-member__actions .gg-btn{flex:1}.vp-member__actions .vp-member__iconbtn{margin-left:auto}.vp-chips{display:flex;flex-wrap:wrap;gap:var(--gg-space-2);margin-bottom:var(--gg-space-4)}.vp-chip{padding:6px 12px;border:1px solid var(--gg-border);border-radius:999px;background:var(--gg-card);color:var(--gg-muted-foreground);font:inherit;font-size:13px;cursor:pointer;transition:all .15s ease}.vp-chip:hover{border-color:var(--gg-primary);color:var(--gg-primary)}.vp-chip.is-active{background:var(--gg-primary-soft);border-color:var(--gg-primary);color:var(--gg-primary);font-weight:600}.miembro-search-container{display:flex;flex-direction:column;gap:.5rem}.vp-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gg-space-2);margin-bottom:var(--gg-space-3)}.vp-filtros .gg-select,.vp-filtros .gg-input{width:auto;min-width:150px}.vp-filtros__activos{display:flex;gap:var(--gg-space-2);flex-wrap:wrap;margin:calc(-1 * var(--gg-space-1)) 0 var(--gg-space-3)}.vp-sub{font-size:12px;color:var(--gg-muted-foreground)}@media(max-width:640px){.vp-filtros .gg-select,.vp-filtros .gg-input,.vp-filtros .gg-btn{flex:1 1 100%}}.vp-chart{display:flex;align-items:stretch;gap:var(--gg-space-2);height:220px;padding:var(--gg-space-2) var(--gg-space-1) 0}.vp-chart__group{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;border-radius:var(--gg-radius-sm)}.vp-chart__group.is-selected{outline:2px solid var(--gg-primary);outline-offset:-2px;background:var(--gg-primary-soft)}.vp-chart__bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}.vp-chart__bar{flex:1;max-width:26px;border-radius:var(--gg-radius-sm) var(--gg-radius-sm) 0 0;transition:height .3s ease}.vp-chart__bar--actual{background:var(--gg-primary)}.vp-chart__bar--anterior{background:var(--gg-border)}.vp-chart__label{margin-top:var(--gg-space-2);font-size:.7rem;color:var(--gg-muted-foreground);white-space:nowrap}.vp-chart__legend{display:flex;justify-content:flex-end;gap:var(--gg-space-4);margin-bottom:var(--gg-space-2);font-size:.75rem;color:var(--gg-muted-foreground)}.vp-chart__legend-item{display:inline-flex;align-items:center;gap:var(--gg-space-1)}.vp-chart__dot{display:inline-block;width:10px;height:10px;border-radius:50%}.vp-chart__dot--actual{background:var(--gg-primary)}.vp-chart__dot--anterior{background:var(--gg-border)}.membership-stats{display:flex;flex-direction:column;gap:1.25rem}.membership-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--gg-background);border-radius:var(--gg-radius-sm);transition:background .3s ease}.membership-item:hover{background:var(--gg-border)}.membership-item span:first-child{min-width:80px;font-weight:600}.membership-item span:last-child{min-width:80px;text-align:right;font-weight:600;color:var(--gg-info)}.progress-bar.small{flex:1;height:8px;background:var(--gg-border);border-radius:4px;overflow:hidden}.progress-bar.small .progress-fill{background:var(--gg-info);height:100%;border-radius:4px;transition:width .5s ease}.conversion-stats{display:flex;flex-direction:column;gap:1rem}.conversion-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--gg-background);border-radius:var(--gg-radius);border-left:4px solid var(--gg-info);transition:all .3s ease}.conversion-item:hover{background:var(--gg-border);transform:translate(4px)}.conversion-item span:first-child{font-weight:500;color:var(--gg-muted-foreground)}.conversion-number{font-weight:700;font-size:1.1rem;color:var(--gg-info)}.conversion-percentage{font-weight:700;font-size:1.1rem;color:var(--gg-success)}.mejores-dias-list{display:flex;flex-direction:column;gap:1rem}.mejor-dia-item{display:grid;grid-template-columns:50px 1fr auto auto;gap:1rem;align-items:center;padding:1rem;background:var(--gg-background);border-radius:var(--gg-radius);transition:all .3s ease}.mejor-dia-item:hover{background:var(--gg-border);transform:translate(4px)}.mejor-dia-item .ranking{width:40px;height:40px;border-radius:50%;background:var(--gg-info);color:var(--gg-card);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem}.mejor-dia-item .fecha{font-weight:600;text-transform:capitalize}.mejor-dia-item .cantidad{padding:.5rem 1rem;background:var(--gg-card);border-radius:var(--gg-radius-sm);font-weight:600;color:var(--gg-info);font-size:.9rem}.mejor-dia-item .total{padding:.5rem 1rem;background:var(--gg-success);color:var(--gg-card);border-radius:var(--gg-radius-sm);font-weight:700;font-size:1.1rem;min-width:120px;text-align:center}.vp-asist__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--gg-space-3);margin-bottom:var(--gg-space-3)}.vp-asist__segment{display:flex;gap:var(--gg-space-1)}.vp-asist__mes{display:flex;align-items:center;gap:var(--gg-space-2);font-weight:600;text-transform:capitalize}.vp-asist__resumen{font-size:13px;color:var(--gg-muted-foreground);margin-bottom:var(--gg-space-2)}@media print{.gg-shell__sidebar,.gg-shell__header{display:none!important}.reportes-content{padding:0}}.credencial-modal{max-width:420px;width:95%}.credencial-container{padding:20px;display:flex;justify-content:center}.vp-cred{position:relative;width:340px;height:540px;border-radius:20px;overflow:hidden;background:#fff;box-shadow:var(--gg-shadow);font-family:inherit;color:#0f172a;display:flex;flex-direction:column}.vp-cred__hero{position:relative;flex:0 0 200px;height:200px;background:url(/login-bg.jpg) center/cover no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:22px;gap:10px}.vp-cred__hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0f172a40,#0f172aa6)}.vp-cred__hero>*{position:relative;z-index:1}.vp-cred__logo{width:88px;height:88px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}.vp-cred__brand{display:flex;flex-direction:column;align-items:center;color:#fff;text-align:center}.vp-cred__brand-title{font-size:20px;font-weight:800;letter-spacing:1px}.vp-cred__brand-sub{font-size:10px;letter-spacing:2px;opacity:.85;margin-top:2px}.vp-cred__body{position:relative;flex:1 1 auto;min-height:0;background:#fff;margin-top:-24px;border-radius:50% 50% 0 0/24px 24px 0 0;padding:84px 22px 12px;display:flex;flex-direction:column;align-items:center;text-align:center}.vp-cred__photo{position:absolute;top:200px;left:50%;transform:translate(-50%,-50%);width:96px;height:96px;border-radius:50%;border:4px solid #fff;background:var(--gg-primary-soft);color:var(--gg-primary);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 6px 18px #0000002e;z-index:2}.vp-cred__photo img{width:100%;height:100%;object-fit:cover}.vp-cred__initials{font-size:30px;font-weight:800}.vp-cred__name{margin:0;font-size:20px;font-weight:800;line-height:1.15}.vp-cred__id{margin:4px 0 10px;font-size:12px;color:#64748b}.vp-cred__data{display:flex;gap:18px;margin:0 0 12px}.vp-cred__data div{display:flex;flex-direction:column;align-items:center}.vp-cred__data dt{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#64748b}.vp-cred__data dd{margin:0;font-size:14px;font-weight:700;color:var(--gg-primary)}.vp-cred__qr{background:#fff;padding:8px;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:6px;width:128px}.vp-cred__code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700;letter-spacing:2px}.vp-cred__footer{margin-top:auto;font-size:10px;letter-spacing:2px;color:#94a3b8}.vp-cred__photo-actions{display:flex;align-items:center;justify-content:center;gap:var(--gg-space-2);flex-wrap:wrap;padding:0 20px 8px}.vp-cred--standard .vp-cred__body{background:#fff;overflow:hidden;padding-bottom:16px}.vp-cred--standard .vp-cred__body:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-70px;bottom:-70px;background:radial-gradient(circle,#dc262624,#dc26260f 55%,#dc262600 72%);pointer-events:none}.vp-cred--standard .vp-cred__body:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;left:-50px;bottom:90px;background:radial-gradient(circle,#dc26261a,#dc262600 70%);pointer-events:none}.vp-cred--standard .vp-cred__orb{position:absolute;top:18px;right:22px;width:56px;height:56px;border-radius:50%;border:6px solid rgba(220,38,38,.1)}.vp-cred--standard .vp-cred__name,.vp-cred--standard .vp-cred__id,.vp-cred--standard .vp-cred__data,.vp-cred--standard .vp-cred__qr,.vp-cred--standard .vp-cred__footer{position:relative;z-index:1}.vp-cred--standard .vp-cred__qr{border-color:#dc262640}.vp-cred--standard .vp-cred__footer{color:#dc2626;opacity:.7}.vp-cred--standard:after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#dc2626,#b91c1c)}.vp-cred--premium{background:#0b0f17;color:#f8fafc;box-shadow:var(--gg-shadow),inset 0 0 0 1px #d4af3759}.vp-cred--premium .vp-cred__body{background:linear-gradient(180deg,#161b26,#0b0f17);color:#f8fafc;overflow:hidden;padding-bottom:16px}.vp-cred--premium .vp-cred__body:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-70px;bottom:-70px;background:radial-gradient(circle,#d4af3738,#d4af3714 55%,#d4af3700 72%);pointer-events:none}.vp-cred--premium .vp-cred__body:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;left:-50px;bottom:90px;background:radial-gradient(circle,#d4af3724,#d4af3700 70%);pointer-events:none}.vp-cred--premium .vp-cred__orb{position:absolute;top:18px;right:22px;width:56px;height:56px;border-radius:50%;border:6px solid rgba(255,255,255,.08)}.vp-cred--premium .vp-cred__name,.vp-cred--premium .vp-cred__id,.vp-cred--premium .vp-cred__data,.vp-cred--premium .vp-cred__qr,.vp-cred--premium .vp-cred__footer{position:relative;z-index:1}.vp-cred--premium .vp-cred__photo{border-color:#d4af37;background:#1f2633;color:#d4af37}.vp-cred--premium .vp-cred__name{color:#fff}.vp-cred--premium .vp-cred__id{color:#cbd5e1}.vp-cred--premium .vp-cred__data dt{color:#94a3b8}.vp-cred--premium .vp-cred__data dd{color:#d4af37}.vp-cred--premium .vp-cred__qr{background:#fff;border-color:#d4af3780}.vp-cred--premium .vp-cred__code{color:#0b0f17}.vp-cred--premium .vp-cred__brand-sub{color:#f1d27a;opacity:1}.vp-cred--premium .vp-cred__footer{color:#d4af37;letter-spacing:3px}.vp-cred--premium .vp-cred__hero:after{background:linear-gradient(180deg,#05080e59,#05080ecc)}.vp-cred--premium:after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#d4af37,#f1d27a,#d4af37)}.vp-cred__tag{display:inline-block;margin:6px 0 2px;padding:3px 10px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;position:relative;z-index:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vp-cred--student .vp-cred__tag{background:#dbeafe;color:#1d4ed8}.vp-cred--convenio .vp-cred__tag{background:#d1fae5;color:#047857}.vp-cred__dd-ellipsis{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vp-cred--student .vp-cred__body{background:#f8fbff;overflow:hidden;padding-bottom:16px;padding-top:76px}.vp-cred--student .vp-cred__body:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-70px;bottom:-70px;background:radial-gradient(circle,#2563eb24,#2563eb0f 55%,#2563eb00 72%);pointer-events:none}.vp-cred--student .vp-cred__body:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;left:-50px;bottom:90px;background:radial-gradient(circle,#2563eb1a,#2563eb00 70%);pointer-events:none}.vp-cred--student .vp-cred__orb{position:absolute;top:18px;right:22px;width:56px;height:56px;border-radius:50%;border:6px solid rgba(37,99,235,.1)}.vp-cred--student .vp-cred__name,.vp-cred--student .vp-cred__id,.vp-cred--student .vp-cred__data,.vp-cred--student .vp-cred__qr,.vp-cred--student .vp-cred__footer{position:relative;z-index:1}.vp-cred--student .vp-cred__photo{border-color:#2563eb}.vp-cred--student .vp-cred__data dd{color:#1d4ed8}.vp-cred--student .vp-cred__qr{border-color:#2563eb40}.vp-cred--student .vp-cred__brand-sub{color:#bfdbfe;opacity:1}.vp-cred--student .vp-cred__footer{color:#2563eb;opacity:.7}.vp-cred--student:after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#2563eb,#1d4ed8)}.vp-cred--convenio .vp-cred__body{background:#f6fdf9;overflow:hidden;padding-bottom:16px;padding-top:76px}.vp-cred--convenio .vp-cred__body:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-70px;bottom:-70px;background:radial-gradient(circle,#05966924,#0596690f 55%,#05966900 72%);pointer-events:none}.vp-cred--convenio .vp-cred__body:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;left:-50px;bottom:90px;background:radial-gradient(circle,#0596691a,#05966900 70%);pointer-events:none}.vp-cred--convenio .vp-cred__orb{position:absolute;top:18px;right:22px;width:56px;height:56px;border-radius:50%;border:6px solid rgba(5,150,105,.1)}.vp-cred--convenio .vp-cred__name,.vp-cred--convenio .vp-cred__id,.vp-cred--convenio .vp-cred__data,.vp-cred--convenio .vp-cred__qr,.vp-cred--convenio .vp-cred__footer{position:relative;z-index:1}.vp-cred--convenio .vp-cred__photo{border-color:#059669}.vp-cred--convenio .vp-cred__data dd{color:#047857}.vp-cred--convenio .vp-cred__qr{border-color:#05966940}.vp-cred--convenio .vp-cred__brand-sub{color:#a7f3d0;opacity:1}.vp-cred--convenio .vp-cred__footer{color:#059669;opacity:.7}.vp-cred--convenio:after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#059669,#047857)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background:var(--gg-card);border-radius:var(--gg-radius-lg);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--gg-shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--gg-space-6) var(--gg-space-6) var(--gg-space-4);border-bottom:1px solid var(--gg-border)}.modal-header h3{margin:0;font-size:20px;font-weight:700}.modal-footer{display:flex;justify-content:flex-end;gap:var(--gg-space-2);flex-wrap:wrap;padding:0 20px 20px}.form-nuevo-miembro,.form-renovacion,.form-pago{padding:var(--gg-space-6)}.vp-notifs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.vp-notifs__item{display:flex;gap:var(--gg-space-3);padding:var(--gg-space-2) 0;border-bottom:1px solid var(--gg-border)}.vp-notifs__item:last-child{border-bottom:0}.vp-notifs__icon{width:32px;height:32px;border-radius:50%;background:var(--gg-warning-soft);color:var(--gg-warning);display:flex;align-items:center;justify-content:center;flex-shrink:0}.vp-notifs__msg{margin:0;font-size:14px}.vp-stack{margin-bottom:var(--gg-space-5)}.vp-check-hint{display:block;margin-left:28px}.vp-note__intro{margin:0 0 var(--gg-space-4);font-size:15px;font-weight:500}.vp-flush-top{margin-top:0}.vp-modal-intro{margin:0 0 var(--gg-space-4);color:var(--gg-muted-foreground)}.vp-flush{margin:0}@media(max-width:768px){.miembros-grid{grid-template-columns:1fr}.modal-content{width:95%;margin:20px}}@media(max-width:480px){.modal-header,.form-nuevo-miembro,.form-renovacion,.form-pago{padding:var(--gg-space-4)}}.detalle-sections{display:flex;flex-direction:column;gap:var(--gg-space-5)}.detalle-section:last-child{border-bottom:none}.vp-detalle__titulo{margin:0 0 var(--gg-space-3);font-size:14px;font-weight:600;color:var(--gg-foreground);display:flex;align-items:center;gap:var(--gg-space-2)}.vp-detalle__titulo svg{width:16px;height:16px;color:var(--gg-primary);flex-shrink:0}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--gg-space-3)}.info-item{display:flex;flex-direction:column;gap:2px;min-width:0}.info-item__label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--gg-muted-foreground)}.info-item__value{font-size:14px;font-weight:500;word-break:break-word}.observaciones-content{background:var(--gg-background);border:1px solid var(--gg-border);border-radius:var(--gg-radius);padding:var(--gg-space-4);font-size:14px;line-height:1.6}:root{--primary-color: #FF0000;--secondary-color: #CC0000;--accent-color: #000000;--success-color: #00C851;--warning-color: #f59e0b;--error-color: #ef4444;--white: #ffffff;--background-light: #f8fafc;--text-dark: #1f2937;--text-light: #6b7280;--text-muted: #9ca3af;--shadow-light: rgba(0, 0, 0, .1);--shadow-medium: rgba(0, 0, 0, .15);--shadow-strong: rgba(0, 0, 0, .25)}.kinesiologo-panel{min-height:100vh;background:linear-gradient(135deg,var(--background-light) 0%,#e2e8f0 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.user-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white)}.btn-logout{display:flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:var(--white);border:none;border-radius:8px;font-size:11px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-transform:uppercase;letter-spacing:.5px}.btn-logout:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.nav-tab:hover{color:var(--primary-color);background:#2563eb0d}.nav-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:#2563eb1a}.stat-card-main{background:var(--white);border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:0 2px 8px #00000014;border:1px solid #e2e8f0;transition:transform .3s ease,box-shadow .3s ease}.stat-card-main:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.stat-icon{font-size:2rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);border-radius:12px;color:var(--white)}.stat-info{display:flex;flex-direction:column;gap:.25rem}.stat-info .stat-value{font-size:1.75rem;font-weight:700;color:var(--text-dark)}.stat-info .stat-label{font-size:.875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;margin-bottom:2rem}.dashboard-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;transition:transform .3s ease,box-shadow .3s ease}.dashboard-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #0000001f}.dashboard-card.full-width{grid-column:1 / -1}.dashboard-card h3{margin:0 0 1.5rem;font-size:1.3rem;font-weight:600;color:#1e293b}.agenda-list{display:flex;flex-direction:column;gap:1rem}.agenda-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8fafc;border-radius:12px;border-left:4px solid var(--primary-color)}.agenda-time{font-weight:700;color:var(--primary-color);font-size:1.1rem;min-width:60px}.agenda-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.agenda-paciente{font-weight:600;color:var(--text-dark)}.agenda-tipo{font-size:.9rem;color:var(--text-muted);text-transform:capitalize}.agenda-estado{font-size:1.2rem}.priority-list{display:flex;flex-direction:column;gap:1rem}.priority-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fef2f2;border-radius:12px;border-left:4px solid var(--error-color)}.priority-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.priority-name{font-weight:600;color:var(--text-dark)}.priority-diagnosis{font-size:.9rem;color:var(--text-muted)}.priority-progress{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;min-width:80px}.progress-bar{width:100%;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.progress-bar.small{width:80px;height:6px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--accent-color));transition:width .3s ease}.progress-text{font-size:.8rem;color:var(--text-muted);font-weight:600}.terapias-recientes{display:flex;flex-direction:column;gap:1rem}.terapia-item{display:grid;grid-template-columns:1fr 1fr 2fr 1fr;gap:1rem;padding:1rem;background:#f8fafc;border-radius:12px;border-left:4px solid var(--success-color);align-items:center}.terapia-info{display:flex;flex-direction:column;gap:.25rem}.terapia-paciente{font-weight:600;color:var(--text-dark)}.terapia-tipo{font-size:.9rem;color:var(--text-muted)}.terapia-details{display:flex;flex-direction:column;gap:.25rem}.terapia-fecha,.terapia-duracion{font-size:.9rem;color:var(--text-muted)}.terapia-progreso p{margin:0;font-size:.9rem;color:var(--text-dark)}.terapia-proxima{text-align:right}.terapia-proxima span{font-size:.9rem;color:var(--primary-color);font-weight:600}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.content-header h2{margin:0;font-size:2rem;font-weight:700;color:#1e293b}.header-actions{display:flex;gap:1rem;align-items:center}.search-input,.filter-select{padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:border-color .3s ease}.search-input:focus,.filter-select:focus{outline:none;border-color:var(--primary-color)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color));color:#fff;border:none;padding:.75rem 1.5rem;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #2563eb4d}.pacientes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.paciente-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;transition:all .3s ease}.paciente-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #0000001f}.paciente-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.paciente-header h4{margin:0;font-size:1.2rem;font-weight:600;color:#1e293b}.estado-badge{padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.estado-badge.en_tratamiento{background:#dcfce7;color:#166534}.estado-badge.evaluacion{background:#fef3c7;color:#92400e}.estado-badge.alta{background:#dbeafe;color:#1e40af}.paciente-info{margin-bottom:1rem}.paciente-info p{margin:.5rem 0;font-size:.95rem;color:#64748b}.paciente-progreso{margin-bottom:1rem}.paciente-progreso span{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem;display:block}.paciente-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-evaluar,.btn-terapia,.btn-historial{padding:.5rem 1rem;border:none;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-evaluar{background:#fef3c7;color:#92400e}.btn-terapia{background:#dcfce7;color:#166534}.btn-historial{background:#ff00001a;color:var(--primary-color)}.btn-evaluar:hover,.btn-terapia:hover,.btn-historial:hover{transform:translateY(-2px);box-shadow:0 4px 15px #0000001a}.coming-soon{display:flex;justify-content:center;align-items:center;min-height:300px;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014}.coming-soon p{font-size:1.2rem;color:var(--text-muted);text-align:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:20px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2rem 1rem;border-bottom:1px solid #e2e8f0}.modal-header h3{margin:0;font-size:1.5rem;font-weight:700;color:#1e293b}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#64748b;padding:.5rem;border-radius:8px;transition:all .3s ease}.modal-close:hover{background:#f1f5f9;color:#374151}.form-paciente{padding:2rem}.form-section{margin-bottom:2rem}.form-section h4{margin:0 0 1rem;font-size:1.2rem;font-weight:600;color:#1e293b;display:flex;align-items:center;gap:.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#374151;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:border-color .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color)}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1rem 2rem 2rem;border-top:1px solid #e2e8f0}.btn-cancelar,.btn-guardar{padding:.75rem 1.5rem;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-cancelar{background:#f1f5f9;color:#64748b}.btn-cancelar:hover{background:#e2e8f0}.btn-guardar{background:linear-gradient(135deg,var(--primary-color),var(--accent-color));color:#fff}.btn-guardar:hover{transform:translateY(-2px);box-shadow:0 8px 25px #2563eb4d}@media(max-width:768px){.panel-header{flex-direction:column;gap:1rem;text-align:center;padding:12px 16px}.header-brand{justify-content:center}.header-logo{width:48px;height:48px}.brand-title{font-size:18px}.user-section{justify-content:center}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stat-card-main{padding:1rem}.stat-icon{width:50px;height:50px;font-size:1.5rem}.stat-info .stat-value{font-size:1.5rem}.panel-nav{padding:0 1rem}.panel-content{padding:1rem}.content-header{flex-direction:column;gap:1rem;align-items:stretch}.header-actions{flex-direction:column}.dashboard-grid,.pacientes-grid{grid-template-columns:1fr}.terapia-item{grid-template-columns:1fr;gap:.5rem}.form-row{grid-template-columns:1fr}.modal-content{margin:1rem;max-height:calc(100vh - 2rem)}.modal-actions{padding:1rem;flex-direction:column}}@media(max-width:480px){.brand-title{font-size:16px}.stat-card-main{flex-direction:column;text-align:center;gap:.5rem}.nav-tab{padding:.75rem 1rem;font-size:.9rem}.dashboard-card,.paciente-card,.modal-header,.form-paciente{padding:1rem}}.evaluaciones-content{padding:0 32px}.evaluaciones-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:24px;margin-top:24px}.evaluacion-card{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 4px 12px var(--shadow-light);border:1px solid #e2e8f0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.evaluacion-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px var(--shadow-medium);border-color:var(--primary-color)}.evaluacion-card.inicial{border-left:4px solid var(--success-color)}.evaluacion-card.seguimiento{border-left:4px solid var(--warning-color)}.evaluacion-card.final{border-left:4px solid var(--primary-color)}.evaluacion-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.evaluacion-info h4{font-size:18px;font-weight:600;color:var(--text-dark);margin:0 0 4px}.evaluacion-fecha{font-size:14px;color:var(--text-muted);font-weight:500}.evaluacion-badges{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.tipo-badge{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--white)}.tipo-badge.inicial{background:linear-gradient(135deg,var(--success-color) 0%,#059669 100%)}.tipo-badge.seguimiento{background:linear-gradient(135deg,var(--warning-color) 0%,#d97706 100%)}.tipo-badge.final{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%)}.estado-badge{padding:3px 10px;border-radius:16px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.estado-badge.completada{background:#dcfce7;color:#166534}.estado-badge.pendiente{background:#fef3c7;color:#92400e}.evaluacion-body{margin-bottom:20px}.evaluacion-section{margin-bottom:16px}.evaluacion-section h5{font-size:14px;font-weight:600;color:var(--text-dark);margin:0 0 8px;display:flex;align-items:center;gap:6px}.evaluacion-section p{font-size:13px;color:var(--text-light);line-height:1.5;margin:0;background:#f8fafc;padding:12px;border-radius:8px;border-left:3px solid var(--primary-color)}.evaluacion-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #f1f5f9}.evaluacion-kinesiologo{font-size:13px;color:var(--text-muted);font-weight:500}.evaluacion-actions{display:flex;gap:8px}.btn-ver,.btn-editar,.btn-imprimir{padding:6px 12px;border:none;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.btn-ver{background:linear-gradient(135deg,#6366f1,#4f46e5);color:var(--white)}.btn-ver:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-editar{background:linear-gradient(135deg,var(--warning-color) 0%,#d97706 100%);color:var(--white)}.btn-editar:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.btn-imprimir{background:linear-gradient(135deg,#6b7280,#4b5563);color:var(--white)}.btn-imprimir:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6b72804d}.empty-state-evaluaciones{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;background:var(--white);border-radius:16px;border:2px dashed #e2e8f0;margin-top:24px}.empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-state-evaluaciones h3{font-size:20px;font-weight:600;color:var(--text-dark);margin:0 0 8px}.empty-state-evaluaciones p{font-size:16px;color:var(--text-muted);margin:0 0 24px;max-width:400px}.modal-large{max-width:800px;max-height:90vh;overflow-y:auto}.form-evaluacion{padding:24px}.form-evaluacion .form-section{margin-bottom:32px;padding:20px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.form-evaluacion .form-section h4{font-size:16px;font-weight:600;color:var(--text-dark);margin:0 0 16px;display:flex;align-items:center;gap:8px}.form-evaluacion .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-evaluacion .form-group{display:flex;flex-direction:column;gap:6px}.form-evaluacion label{font-size:14px;font-weight:600;color:var(--text-dark)}.form-evaluacion input,.form-evaluacion select,.form-evaluacion textarea{padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .2s ease;background:var(--white)}.form-evaluacion input:focus,.form-evaluacion select:focus,.form-evaluacion textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-evaluacion textarea{resize:vertical;min-height:80px;font-family:inherit}@media(max-width:768px){.evaluaciones-content{padding:0 16px}.evaluaciones-grid{grid-template-columns:1fr;gap:16px}.evaluacion-card{padding:16px}.evaluacion-header{flex-direction:column;align-items:flex-start;gap:12px}.evaluacion-badges{flex-direction:row;align-items:center}.evaluacion-footer{flex-direction:column;align-items:flex-start;gap:12px}.evaluacion-actions{width:100%;justify-content:space-between}.modal-large{max-width:95vw;margin:20px}.form-evaluacion .form-row{grid-template-columns:1fr}}.planes-content{padding:0 32px}.planes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:24px;margin-top:24px}.plan-card{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 4px 12px var(--shadow-light);border:1px solid #e2e8f0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.plan-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px var(--shadow-medium);border-color:var(--primary-color)}.plan-card.activo{border-left:4px solid var(--success-color)}.plan-card.completado{border-left:4px solid var(--primary-color)}.plan-card.suspendido{border-left:4px solid var(--error-color)}.plan-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.plan-info h4{font-size:18px;font-weight:600;color:var(--text-dark);margin:0 0 4px}.plan-fechas{font-size:13px;color:var(--text-muted);font-weight:500}.plan-badges{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.estado-badge-plan{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--white)}.estado-badge-plan.activo{background:linear-gradient(135deg,var(--success-color) 0%,#059669 100%)}.estado-badge-plan.completado{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%)}.estado-badge-plan.suspendido{background:linear-gradient(135deg,var(--error-color) 0%,#dc2626 100%)}.duracion-badge{padding:3px 10px;border-radius:16px;font-size:10px;font-weight:600;background:#f3f4f6;color:var(--text-dark);text-transform:uppercase;letter-spacing:.5px}.plan-body{margin-bottom:20px}.plan-section{margin-bottom:16px}.plan-section h5{font-size:14px;font-weight:600;color:var(--text-dark);margin:0 0 8px;display:flex;align-items:center;gap:6px}.plan-section p{font-size:13px;color:var(--text-light);line-height:1.5;margin:0;background:#f8fafc;padding:12px;border-radius:8px;border-left:3px solid var(--primary-color)}.ejercicios-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.ejercicio-tag{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0369a1;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;border:1px solid #7dd3fc}.progreso-container{display:flex;align-items:center;gap:12px;margin-top:8px}.progreso-bar{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.progreso-fill{height:100%;background:linear-gradient(135deg,var(--success-color) 0%,#059669 100%);border-radius:4px;transition:width .3s ease}.progreso-text{font-size:12px;font-weight:600;color:var(--success-color);min-width:35px}.plan-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #f1f5f9}.plan-kinesiologo{font-size:13px;color:var(--text-muted);font-weight:500}.plan-actions{display:flex;gap:8px}.btn-ver-plan,.btn-editar-plan,.btn-imprimir-plan{padding:6px 12px;border:none;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.btn-ver-plan{background:linear-gradient(135deg,#6366f1,#4f46e5);color:var(--white)}.btn-ver-plan:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-editar-plan{background:linear-gradient(135deg,var(--warning-color) 0%,#d97706 100%);color:var(--white)}.btn-editar-plan:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.btn-imprimir-plan{background:linear-gradient(135deg,#6b7280,#4b5563);color:var(--white)}.btn-imprimir-plan:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6b72804d}.empty-state-planes{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;background:var(--white);border-radius:16px;border:2px dashed #e2e8f0;margin-top:24px}.empty-state-planes h3{font-size:20px;font-weight:600;color:var(--text-dark);margin:0 0 8px}.empty-state-planes p{font-size:16px;color:var(--text-muted);margin:0 0 24px;max-width:400px}.form-plan{padding:24px}.form-plan .form-section{margin-bottom:32px;padding:20px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.form-plan .form-section h4{font-size:16px;font-weight:600;color:var(--text-dark);margin:0 0 16px;display:flex;align-items:center;gap:8px}.form-plan .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-plan .form-group{display:flex;flex-direction:column;gap:6px}.form-plan label{font-size:14px;font-weight:600;color:var(--text-dark)}.form-plan input,.form-plan select,.form-plan textarea{padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .2s ease;background:var(--white)}.form-plan input:focus,.form-plan select:focus,.form-plan textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-plan textarea{resize:vertical;min-height:80px;font-family:inherit}.ejercicios-input-container{position:relative}.form-help{font-size:12px;color:var(--text-muted);font-style:italic;margin-top:4px}@media(max-width:768px){.planes-content{padding:0 16px}.planes-grid{grid-template-columns:1fr;gap:16px}.plan-card{padding:16px}.plan-header{flex-direction:column;align-items:flex-start;gap:12px}.plan-badges{flex-direction:row;align-items:center}.plan-footer{flex-direction:column;align-items:flex-start;gap:12px}.plan-actions{width:100%;justify-content:space-between}.ejercicios-list{flex-direction:column}.ejercicio-tag{text-align:center}.form-plan .form-row{grid-template-columns:1fr}}.terapias-content{padding:0 32px}.terapias-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:24px;margin-top:24px}.terapia-card{background:var(--white);border-radius:16px;padding:24px;box-shadow:0 4px 12px var(--shadow-light);border:1px solid #e2e8f0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.terapia-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px var(--shadow-medium);border-color:var(--primary-color)}.terapia-card.completada{border-left:4px solid var(--success-color)}.terapia-card.programada{border-left:4px solid var(--warning-color)}.terapia-card.cancelada{border-left:4px solid var(--error-color)}.terapia-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.terapia-info h4{font-size:18px;font-weight:600;color:var(--text-dark);margin:0 0 4px}.terapia-fecha-hora{font-size:13px;color:var(--text-muted);font-weight:500}.terapia-badges{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.estado-badge-terapia{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--white)}.estado-badge-terapia.completada{background:linear-gradient(135deg,var(--success-color) 0%,#059669 100%)}.estado-badge-terapia.programada{background:linear-gradient(135deg,var(--warning-color) 0%,#d97706 100%)}.estado-badge-terapia.cancelada{background:linear-gradient(135deg,var(--error-color) 0%,#dc2626 100%)}.tipo-badge-terapia{padding:3px 10px;border-radius:16px;font-size:10px;font-weight:600;background:#e0f2fe;color:#0369a1;text-transform:uppercase;letter-spacing:.5px;border:1px solid #7dd3fc}.duracion-badge-terapia{padding:3px 10px;border-radius:16px;font-size:10px;font-weight:600;background:#f3f4f6;color:var(--text-dark);text-transform:uppercase;letter-spacing:.5px}.terapia-body{margin-bottom:20px}.terapia-section{margin-bottom:16px}.terapia-section h5{font-size:14px;font-weight:600;color:var(--text-dark);margin:0 0 8px;display:flex;align-items:center;gap:6px}.terapia-section p{font-size:13px;color:var(--text-light);line-height:1.5;margin:0;background:#f8fafc;padding:12px;border-radius:8px;border-left:3px solid var(--primary-color)}.terapia-programada{background:linear-gradient(135deg,#fef3c7,#fde68a);padding:16px;border-radius:12px;border:1px solid #f59e0b}.terapia-programada .terapia-section p{background:#fffc;border-left:3px solid var(--warning-color)}.terapia-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #f1f5f9}.terapia-kinesiologo{font-size:13px;color:var(--text-muted);font-weight:500}.terapia-actions{display:flex;gap:6px;flex-wrap:wrap}.btn-ver-terapia,.btn-editar-terapia,.btn-imprimir-terapia,.btn-iniciar-terapia,.btn-reprogramar-terapia,.btn-cancelar-terapia{padding:6px 10px;border:none;border-radius:6px;font-size:10px;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.btn-ver-terapia{background:linear-gradient(135deg,#6366f1,#4f46e5);color:var(--white)}.btn-ver-terapia:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-editar-terapia{background:linear-gradient(135deg,var(--warning-color) 0%,#d97706 100%);color:var(--white)}.btn-editar-terapia:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.btn-imprimir-terapia{background:linear-gradient(135deg,#6b7280,#4b5563);color:var(--white)}.btn-imprimir-terapia:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6b72804d}.btn-iniciar-terapia{background:linear-gradient(135deg,var(--success-color) 0%,#059669 100%);color:var(--white)}.btn-iniciar-terapia:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.btn-reprogramar-terapia{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:var(--white)}.btn-reprogramar-terapia:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-cancelar-terapia{background:linear-gradient(135deg,var(--error-color) 0%,#dc2626 100%);color:var(--white)}.btn-cancelar-terapia:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.empty-state-terapias{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;background:var(--white);border-radius:16px;border:2px dashed #e2e8f0;margin-top:24px}.empty-state-terapias h3{font-size:20px;font-weight:600;color:var(--text-dark);margin:0 0 8px}.empty-state-terapias p{font-size:16px;color:var(--text-muted);margin:0 0 24px;max-width:400px}.form-terapia{padding:24px}.form-terapia .form-section{margin-bottom:32px;padding:20px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.form-terapia .form-section h4{font-size:16px;font-weight:600;color:var(--text-dark);margin:0 0 16px;display:flex;align-items:center;gap:8px}.form-terapia .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-terapia .form-group{display:flex;flex-direction:column;gap:6px}.form-terapia label{font-size:14px;font-weight:600;color:var(--text-dark)}.form-terapia input,.form-terapia select,.form-terapia textarea{padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .2s ease;background:var(--white)}.form-terapia input:focus,.form-terapia select:focus,.form-terapia textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-terapia textarea{resize:vertical;min-height:80px;font-family:inherit}@media(max-width:768px){.terapias-content{padding:0 16px}.terapias-grid{grid-template-columns:1fr;gap:16px}.terapia-card{padding:16px}.terapia-header{flex-direction:column;align-items:flex-start;gap:12px}.terapia-badges{flex-direction:row;align-items:center;flex-wrap:wrap}.terapia-footer{flex-direction:column;align-items:flex-start;gap:12px}.terapia-actions{width:100%;justify-content:space-between}.form-terapia .form-row{grid-template-columns:1fr}}.agenda-content{padding:0 32px}.date-filter{padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:var(--white);color:var(--text-dark)}.agenda-timeline{margin-top:24px}.agenda-day{margin-bottom:32px;background:var(--white);border-radius:16px;border:1px solid #e2e8f0;overflow:hidden;box-shadow:0 2px 8px var(--shadow-light)}.day-header{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:var(--white);padding:16px 24px;display:flex;justify-content:space-between;align-items:center}.day-header h3{font-size:18px;font-weight:600;margin:0;text-transform:capitalize}.citas-count{background:#fff3;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.citas-timeline{padding:0}.cita-card{display:flex;border-bottom:1px solid #f1f5f9;transition:all .2s ease;position:relative}.cita-card:last-child{border-bottom:none}.cita-card:hover{background:#f8fafc}.cita-card.confirmada{border-left:4px solid var(--success-color)}.cita-card.pendiente{border-left:4px solid var(--warning-color)}.cita-card.cancelada{border-left:4px solid var(--error-color);background:#fef2f2}.cita-card.reprogramada{border-left:4px solid var(--primary-color);background:#ff00000d}.cita-time{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:100px;padding:20px 16px;background:#f8fafc;border-right:1px solid #e2e8f0}.cita-time .hora{font-size:18px;font-weight:700;color:var(--text-dark);margin-bottom:4px}.cita-time .duracion{font-size:11px;font-weight:600;color:var(--text-muted);background:#e2e8f0;padding:2px 8px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px}.cita-content{flex:1;padding:20px 24px}.cita-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.cita-header h4{font-size:18px;font-weight:600;color:var(--text-dark);margin:0}.cita-badges{display:flex;gap:8px;flex-wrap:wrap}.estado-badge-cita{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--white)}.estado-badge-cita.confirmada{background:linear-gradient(135deg,var(--success-color) 0%,#059669 100%)}.estado-badge-cita.pendiente{background:linear-gradient(135deg,var(--warning-color) 0%,#d97706 100%)}.estado-badge-cita.cancelada{background:linear-gradient(135deg,var(--error-color) 0%,#dc2626 100%)}.estado-badge-cita.reprogramada{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%)}.tipo-badge-cita{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;background:#e0f2fe;color:#0369a1;border:1px solid #7dd3fc;text-transform:uppercase;letter-spacing:.5px}.cita-details{margin-bottom:16px}.cita-info p{margin:0 0 8px;font-size:14px;color:var(--text-light)}.cita-info strong{color:var(--text-dark);font-weight:600}.cancelacion-motivo{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px;margin-top:8px}.reprogramacion-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:12px;margin-top:8px}.cita-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-confirmar-cita,.btn-reprogramar-cita,.btn-cancelar-cita,.btn-iniciar-cita,.btn-ver-cita,.btn-eliminar-cita{padding:6px 12px;border:none;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.btn-confirmar-cita{background:linear-gradient(135deg,var(--success-color) 0%,#059669 100%);color:var(--white)}.btn-confirmar-cita:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.btn-reprogramar-cita{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:var(--white)}.btn-reprogramar-cita:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-cancelar-cita{background:linear-gradient(135deg,var(--error-color) 0%,#dc2626 100%);color:var(--white)}.btn-cancelar-cita:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.btn-iniciar-cita{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:var(--white)}.btn-iniciar-cita:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.btn-ver-cita{background:linear-gradient(135deg,#6366f1,#4f46e5);color:var(--white)}.btn-ver-cita:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-eliminar-cita{background:linear-gradient(135deg,#6b7280,#4b5563);color:var(--white)}.btn-eliminar-cita:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6b72804d}.empty-state-agenda{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;background:var(--white);border-radius:16px;border:2px dashed #e2e8f0;margin-top:24px}.empty-state-agenda h3{font-size:20px;font-weight:600;color:var(--text-dark);margin:0 0 8px}.empty-state-agenda p{font-size:16px;color:var(--text-muted);margin:0 0 24px;max-width:400px}.form-cita{padding:24px}.form-cita .form-section{margin-bottom:32px;padding:20px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.form-cita .form-section h4{font-size:16px;font-weight:600;color:var(--text-dark);margin:0 0 16px;display:flex;align-items:center;gap:8px}.form-cita .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-cita .form-group{display:flex;flex-direction:column;gap:6px}.form-cita label{font-size:14px;font-weight:600;color:var(--text-dark)}.form-cita input,.form-cita select,.form-cita textarea{padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .2s ease;background:var(--white)}.form-cita input:focus,.form-cita select:focus,.form-cita textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-cita textarea{resize:vertical;min-height:80px;font-family:inherit}@media(max-width:768px){.agenda-content{padding:0 16px}.cita-card{flex-direction:column}.cita-time{flex-direction:row;justify-content:space-between;min-width:auto;border-right:none;border-bottom:1px solid #e2e8f0}.cita-header{flex-direction:column;align-items:flex-start;gap:12px}.cita-badges{width:100%}.cita-actions{justify-content:space-between}.day-header{flex-direction:column;align-items:flex-start;gap:8px}.form-cita .form-row{grid-template-columns:1fr}}.tk{min-height:100vh;background:#0f172a;color:#fff;font-family:var(--gg-font-family, "Inter", system-ui, sans-serif);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,1fr);gap:24px;padding:24px;box-sizing:border-box}.tk-loading{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#ffffffb3}.tk-scan{background:#111b31;border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.tk-scan__video{position:relative;flex:1;min-height:0;aspect-ratio:4 / 3;background:#060b16}.tk-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.tk-camera-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;color:#fffc}.tk-camera-error button{padding:10px 18px;border:1px solid rgba(255,255,255,.25);border-radius:var(--gg-radius-sm, 8px);background:#ffffff14;color:#fff;font:inherit;cursor:pointer}.tk-scan__frame{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.tk-scan__corner{position:absolute;width:34px;height:34px;border:4px solid var(--gg-primary, #dc2626)}.tk-scan__corner--tl{top:20%;left:20%;border-right:none;border-bottom:none;border-radius:6px 0 0}.tk-scan__corner--tr{top:20%;right:20%;border-left:none;border-bottom:none;border-radius:0 6px 0 0}.tk-scan__corner--bl{bottom:20%;left:20%;border-right:none;border-top:none;border-radius:0 0 0 6px}.tk-scan__corner--br{bottom:20%;right:20%;border-left:none;border-top:none;border-radius:0 0 6px}.tk-scan__sweep{position:absolute;left:calc(20% + 8px);right:calc(20% + 8px);height:3px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gg-primary, #dc2626),transparent);box-shadow:0 0 14px #dc2626cc;animation:tkSweep 2.2s ease-in-out infinite}@keyframes tkSweep{0%{top:calc(20% + 6px)}50%{top:calc(80% - 9px)}to{top:calc(20% + 6px)}}.tk-scan__prompt{padding:22px 24px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.tk-scan__title{margin:0;font-size:24px;font-weight:700}.tk-scan__status{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#ffffffb3}.tk-scan__dot{width:10px;height:10px;border-radius:50%;background:var(--gg-success, #22c55e);box-shadow:0 0 10px #22c55ecc;animation:tkPulse 1.6s ease-in-out infinite}.tk-scan__status.is-busy .tk-scan__dot{background:var(--gg-warning, #f59e0b);box-shadow:0 0 10px #f59e0bcc}@keyframes tkPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.6}}.tk-side{display:flex;flex-direction:column;gap:16px;min-height:0}.tk-side__brand{display:flex;align-items:center;gap:14px}.tk-side__logo{width:56px;height:56px;object-fit:contain}.tk-side__name{font-size:22px;font-weight:800;letter-spacing:.02em}.tk-side__role{font-size:14px;color:#ffffff8c}.tk-clock{background:#111b31;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px 20px}.tk-clock__time{font-size:64px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.tk-clock__secs{font-size:24px;font-weight:600;color:#ffffff80;margin-left:8px}.tk-clock__date{margin-top:6px;font-size:16px;color:#ffffffa6;text-transform:capitalize}.tk-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tk-stat{background:#111b31;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px}.tk-stat__value{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums}.tk-stat__label{margin-top:2px;font-size:13px;color:#ffffff8c}.tk-visits{background:#111b31;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;flex:1;min-height:0;overflow:auto}.tk-visits__title{margin:0 0 12px;font-size:15px;font-weight:700}.tk-visits__list{display:flex;flex-direction:column;gap:10px}.tk-visit{display:flex;align-items:center;gap:10px}.tk-visit__avatar{width:34px;height:34px;border-radius:50%;background:#dc26262e;color:#fca5a5;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.tk-visit__info{flex:1;min-width:0;display:flex;flex-direction:column}.tk-visit__name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tk-visit__time{font-size:12px;color:#ffffff80;font-variant-numeric:tabular-nums}.tk-visits__empty{margin:8px 0;color:#ffffff73;font-size:14px}.tk-students{background:#111b31;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;max-height:220px;overflow:auto}.tk-student{display:flex;flex-direction:column;gap:6px}.tk-student__time{font-size:13px;font-weight:700;color:#ffffffb3;font-variant-numeric:tabular-nums}.tk-student__time.is-done{color:#f87171}.tk-students .tk-progress{width:100%;max-width:none;height:6px;background:#ffffff1f}.tk-students .tk-progress__fill{background:#38bdf8}.tk-students .tk-progress__fill.is-done{background:#f87171}.tk-side__footer{font-size:12px;color:#fff6;text-align:right;font-variant-numeric:tabular-nums}.tk-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#7f1d1df2;border:1px solid rgba(220,38,38,.5);color:#fecaca;border-radius:12px;padding:12px 20px;font-size:15px;z-index:3000;animation:tkFadeUp .25s ease}@keyframes tkFadeUp{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tk-result{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2500;display:flex;align-items:center;justify-content:center;animation:tkResultIn .35s ease}.tk-result--entrada{background:linear-gradient(135deg,#064e3b,#059669)}.tk-result--salida{background:linear-gradient(135deg,#1e3a8a,#2563eb)}.tk-result--dias_agotados,.tk-result--sesiones_agotadas{background:linear-gradient(135deg,#78350f,#d97706)}.tk-result--denegado{background:linear-gradient(135deg,#7f1d1d,#dc2626)}.tk-result--tiempo{background:linear-gradient(135deg,#7c2d12,#ea580c)}@keyframes tkResultIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.tk-result__content{text-align:center;padding:32px;max-width:900px}.tk-result__icon{width:120px;height:120px;margin:0 auto 20px;border-radius:50%;background:#ffffff2e;border:3px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center}.tk-result__title{margin:0;font-size:56px;font-weight:800;letter-spacing:.02em}.tk-result__name{margin-top:10px;font-size:40px;font-weight:700}.tk-result__msg{margin:16px auto 0;font-size:24px;line-height:1.4;max-width:820px;color:#ffffffeb}.tk-result__extra{margin-top:26px;display:flex;flex-direction:column;align-items:center;gap:12px}.tk-dots{display:flex;gap:12px}.tk-dot{width:20px;height:20px;border-radius:50%;background:#ffffff40;border:2px solid rgba(255,255,255,.6)}.tk-dot.is-used{background:#fff}.tk-progress{width:280px;max-width:70vw;height:12px;border-radius:999px;background:#ffffff40;overflow:hidden}.tk-progress__fill{height:100%;border-radius:999px;background:#fff;transition:width .4s ease}.tk-result__hint{font-size:20px;font-weight:600}.tk-result__comeback{margin-top:28px;font-size:32px;font-weight:800;background:#ffffff29;border-radius:16px;padding:14px 28px;display:inline-block}.tk-result__countdown{position:absolute;left:0;bottom:0;height:6px;width:100%;background:#ffffffb3;transform-origin:left;animation-name:tkCountdown;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes tkCountdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(max-width:1023px){.tk{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:16px;padding:16px;overflow:auto}.tk-scan__video{height:55vh;aspect-ratio:auto}.tk-side{overflow:visible}.tk-clock__time{font-size:44px}.tk-result__title{font-size:36px}.tk-result__name{font-size:28px}.tk-result__msg{font-size:18px}}@media(max-width:1023px){.tk-visits__list .tk-visit:nth-child(n+5){display:none}}@media(max-width:1023px)and (orientation:portrait){.tk-scan__title{font-size:28px}.tk-clock__time{font-size:56px}}@media(prefers-reduced-motion:reduce){.tk-scan__sweep,.tk-scan__dot,.tk-result,.tk-toast{animation:none!important}}:root{--primary-color: #FF0000;--secondary-color: #CC0000;--accent-color: #000000;--success-color: #00C851;--warning-color: #f59e0b;--error-color: #ef4444;--finanzas-primary: #FF0000;--finanzas-secondary: #CC0000;--finanzas-accent: #FF4757;--white: #ffffff;--background-light: #f5f5f5;--text-dark: #000000;--text-light: #666666;--text-muted: #999999;--shadow-light: rgba(255, 0, 0, .1);--shadow-medium: rgba(255, 0, 0, .15);--shadow-strong: rgba(255, 0, 0, .25);--gradient-primary: linear-gradient(135deg, #FF0000 0%, #CC0000 50%, #000000 100%);--gradient-secondary: linear-gradient(135deg, #FF0000 0%, #CC0000 100%)}.finanzas-panel{min-height:100vh;background:linear-gradient(135deg,var(--background-light) 0%,#e8e8e8 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.finanzas-panel.no-header{min-height:auto;background:transparent}.finanzas-panel.no-header .panel-nav{margin-bottom:0}.loading-message{display:flex;justify-content:center;align-items:center;min-height:50vh;color:#64748b;font-size:1.1rem}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:var(--white);border-bottom:1px solid #e2e8f0;margin-bottom:20px}.header-brand{display:flex;align-items:center;gap:12px}.header-logo{width:64px;height:64px;object-fit:contain}.brand-info{display:flex;flex-direction:column;gap:2px}.brand-title{font-size:20px;font-weight:700;color:var(--text-dark);margin:0;letter-spacing:-.5px}.brand-subtitle{font-size:11px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.user-section{display:flex;align-items:center;gap:12px}.user-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--finanzas-primary) 0%,var(--finanzas-secondary) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white)}.user-info{display:flex;flex-direction:column;gap:1px;text-align:right}.user-name{font-size:13px;font-weight:600;color:var(--text-dark)}.user-role{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.btn-logout{display:flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(135deg,var(--finanzas-primary) 0%,var(--finanzas-secondary) 100%);color:var(--white);border:none;border-radius:8px;font-size:11px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-transform:uppercase;letter-spacing:.5px}.btn-logout:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0596694d}.panel-nav{background:#fff;padding:0 2rem;border-bottom:1px solid #e2e8f0;display:flex;gap:.5rem;overflow-x:auto}.nav-tab{background:none;border:none;padding:1rem 1.5rem;font-size:1rem;font-weight:500;color:#64748b;cursor:pointer;border-bottom:3px solid transparent;transition:all .3s ease;white-space:nowrap}.nav-tab:hover{color:var(--finanzas-primary);background:#0596690d}.nav-tab.active{color:var(--finanzas-primary);border-bottom-color:var(--finanzas-primary);background:#0596691a}.panel-content{padding:2rem}.dashboard-finanzas{display:flex;flex-direction:column;gap:2rem}.stats-grid-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card-dashboard{background:var(--white);border-radius:16px;padding:1.75rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;transition:all .3s ease;display:flex;align-items:center;gap:1.25rem;position:relative;overflow:hidden}.stat-card-dashboard:hover{transform:translateY(-3px);box-shadow:0 8px 30px #00000026}.stat-card-dashboard.ingresos-card{border-left:4px solid var(--finanzas-secondary)}.stat-card-dashboard.gastos-card{border-left:4px solid var(--error-color)}.stat-card-dashboard.utilidad-card.positive{border-left:4px solid var(--finanzas-primary)}.stat-card-dashboard.utilidad-card.negative{border-left:4px solid var(--error-color)}.stat-icon{width:64px;height:64px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ingresos-card .stat-icon{background:linear-gradient(135deg,#ff00001a,#cc000026)}.ingresos-card .stat-icon svg{stroke:var(--finanzas-secondary)}.gastos-card .stat-icon{background:linear-gradient(135deg,#ef44441a,#dc262626)}.gastos-card .stat-icon svg{stroke:var(--error-color)}.utilidad-card.positive .stat-icon{background:linear-gradient(135deg,#ff00001a,#cc000026)}.utilidad-card.positive .stat-icon svg{stroke:var(--finanzas-primary)}.utilidad-card.negative .stat-icon{background:linear-gradient(135deg,#ef44441a,#dc262626)}.utilidad-card.negative .stat-icon svg{stroke:var(--error-color)}.stat-content{display:flex;flex-direction:column;gap:.5rem;flex:1}.stat-label{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.stat-value{font-size:1.75rem;font-weight:800;color:var(--text-dark);line-height:1}.ingresos-card .stat-value{color:var(--finanzas-secondary)}.gastos-card .stat-value{color:var(--error-color)}.utilidad-card.positive .stat-value{color:var(--finanzas-primary)}.utilidad-card.negative .stat-value{color:var(--error-color)}.recent-transactions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.transactions-card{background:var(--white);border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;overflow:hidden}.transactions-header{padding:1.5rem;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc,#fff)}.transactions-header h4{margin:0;font-size:1.1rem;font-weight:700;color:var(--text-dark);display:flex;align-items:center}.transactions-list{padding:1rem;display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f8fafc;border-radius:10px;border-left:3px solid transparent;transition:all .2s ease}.transaction-item:hover{background:#f1f5f9;transform:translate(3px)}.transaction-item.ingreso-item{border-left-color:var(--finanzas-secondary)}.transaction-item.gasto-item{border-left-color:var(--error-color)}.transaction-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.transaction-concept{font-size:.95rem;font-weight:600;color:var(--text-dark)}.transaction-date{font-size:.8rem;color:var(--text-muted)}.transaction-amount{font-size:1.1rem;font-weight:700;white-space:nowrap}.transaction-amount.positive{color:var(--finanzas-secondary)}.transaction-amount.negative{color:var(--error-color)}.empty-state{text-align:center;padding:2rem;color:var(--text-muted);font-size:.95rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;transition:all .3s ease;position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #0000001f}.stat-card.ingresos{border-left:4px solid var(--finanzas-secondary)}.stat-card.gastos{border-left:4px solid var(--error-color)}.stat-card.utilidad.positive{border-left:4px solid var(--finanzas-primary)}.stat-card.utilidad.negative{border-left:4px solid var(--error-color)}.stat-card h3{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.stat-card .amount{font-size:2.2rem;font-weight:700;margin:0;color:var(--text-dark)}.stat-card.ingresos .amount{color:var(--finanzas-secondary)}.stat-card.gastos .amount{color:var(--error-color)}.stat-card.utilidad.positive .amount{color:var(--finanzas-primary)}.stat-card.utilidad.negative .amount{color:var(--error-color)}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.chart-container{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.chart-container h4{margin:0 0 1.5rem;font-size:1.3rem;font-weight:600;color:var(--text-dark)}.recent-list{display:flex;flex-direction:column;gap:1rem}.recent-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f8fafc;border-radius:12px;border-left:4px solid var(--finanzas-primary)}.recent-item .amount{font-weight:600;color:var(--finanzas-primary)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.section-header h3{margin:0;font-size:1.8rem;font-weight:700;color:var(--text-dark)}.btn-primary{background:linear-gradient(135deg,var(--finanzas-primary),var(--finanzas-secondary));color:var(--white);border:none;padding:.75rem 1.5rem;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:1rem}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0596694d}.form-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.finance-form{background:var(--white);border-radius:20px;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.finance-form h4{margin:0 0 1.5rem;font-size:1.5rem;font-weight:700;color:var(--text-dark);text-align:center}.finance-form input,.finance-form select,.finance-form textarea{width:100%;padding:.75rem;margin-bottom:1rem;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:border-color .3s ease;box-sizing:border-box}.finance-form input:focus,.finance-form select:focus,.finance-form textarea:focus{outline:none;border-color:var(--finanzas-primary)}.finance-form textarea{resize:vertical;min-height:80px}.form-buttons{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.form-buttons button{padding:.75rem 1.5rem;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease}.form-buttons button[type=submit]{background:linear-gradient(135deg,var(--finanzas-primary),var(--finanzas-secondary));color:var(--white)}.form-buttons button[type=submit]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #0596694d}.form-buttons button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.form-buttons button[type=button]{background:#f1f5f9;color:#64748b}.form-buttons button[type=button]:hover{background:#e2e8f0}.data-table{background:var(--white);border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.data-table table{width:100%;border-collapse:collapse}.data-table th{background:linear-gradient(135deg,var(--finanzas-primary),var(--finanzas-secondary));color:var(--white);padding:1rem;text-align:left;font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:.9rem}.data-table td{padding:1rem;border-bottom:1px solid #e2e8f0;color:var(--text-dark)}.data-table tr:hover{background:#f8fafc}.data-table tr:last-child td{border-bottom:none}.data-table .positive{color:var(--finanzas-primary);font-weight:600}.data-table .negative{color:var(--error-color);font-weight:600}.status{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status.pendiente{background:#fef3c7;color:#92400e}.status.pagado{background:#dcfce7;color:#166534}.status.vencido{background:#fef2f2;color:#dc2626}@media(max-width:768px){.panel-header{flex-direction:column;gap:1rem;text-align:center;padding:12px 16px}.header-brand{justify-content:center}.header-logo{width:48px;height:48px}.brand-title{font-size:18px}.user-section{justify-content:center}.panel-nav{padding:0 1rem}.panel-content{padding:1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.charts-section{grid-template-columns:1fr}.section-header{flex-direction:column;gap:1rem;align-items:stretch}.finance-form{margin:1rem;padding:1.5rem}.form-buttons{flex-direction:column}.data-table{overflow-x:auto}}@media(max-width:480px){.brand-title{font-size:16px}.nav-tab{padding:.75rem 1rem;font-size:.9rem}.stat-card{padding:1.5rem}.stat-card .amount{font-size:1.8rem}.chart-container{padding:1.5rem}}.loading{display:flex;justify-content:center;align-items:center;min-height:300px;font-size:1.2rem;color:var(--text-muted)}.error{display:flex;justify-content:center;align-items:center;min-height:300px;font-size:1.2rem;color:var(--error-color);text-align:center;padding:2rem}.coming-soon{display:flex;justify-content:center;align-items:center;min-height:300px;background:var(--white);border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;font-size:1.2rem;color:var(--text-muted);text-align:center}.presupuestos-section{display:flex;flex-direction:column;gap:2rem}.presupuestos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:2rem}.presupuesto-card{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;transition:all .3s ease}.presupuesto-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001f}.presupuesto-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.presupuesto-header h4{margin:0;font-size:1.3rem;font-weight:700;color:var(--text-dark)}.presupuesto-info{margin-bottom:1.5rem}.presupuesto-info p{margin:.5rem 0;font-size:.9rem;color:var(--text-light)}.presupuesto-resumen{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1rem;background:#f8fafc;border-radius:12px}.resumen-item{display:flex;justify-content:space-between;align-items:center;font-weight:600}.resumen-item.ingresos{color:var(--finanzas-secondary)}.resumen-item.gastos{color:var(--error-color)}.resumen-item.utilidad.positive{color:var(--finanzas-primary);border-top:1px solid #e2e8f0;padding-top:.75rem;font-size:1.1rem}.resumen-item.utilidad.negative{color:var(--error-color);border-top:1px solid #e2e8f0;padding-top:.75rem;font-size:1.1rem}.presupuesto-categorias h5{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-dark)}.categoria-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;margin-bottom:.5rem;background:var(--white);border-radius:8px;border-left:4px solid var(--finanzas-primary)}.categoria-nombre{font-weight:500;color:var(--text-dark)}.categoria-montos{display:flex;gap:1rem;font-size:.85rem}.categoria-montos .presupuestado{color:var(--text-light)}.categoria-montos .real{color:var(--text-dark);font-weight:600}.categoria-montos .variacion{font-weight:600;padding:.2rem .5rem;border-radius:12px;font-size:.8rem}.categoria-montos .variacion.positive{background:#dcfce7;color:#166534}.categoria-montos .variacion.negative{background:#fef2f2;color:#dc2626}.presupuesto-form{max-width:600px;max-height:90vh;overflow-y:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.categorias-section{margin:1.5rem 0;padding:1rem;background:#f8fafc;border-radius:12px}.categorias-section h5{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:var(--text-dark)}.categoria-input{display:flex;justify-content:space-between;align-items:center;padding:.75rem;margin-bottom:.75rem;background:var(--white);border-radius:8px;border:1px solid #e2e8f0}.categoria-tipo{font-weight:500;flex:1}.categoria-tipo.ingreso{color:var(--finanzas-secondary)}.categoria-tipo.gasto{color:var(--error-color)}.categoria-input input{width:150px;margin:0;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem}.error-message{background:#fef2f2;color:#dc2626;padding:.75rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;border:1px solid #fecaca}.no-data{text-align:center;padding:3rem;color:var(--text-muted);background:var(--white);border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.no-data p:first-child{font-size:1.2rem;font-weight:600;margin-bottom:.5rem}.no-data p:last-child{font-size:1rem;margin:0}.rentabilidad-section{display:flex;flex-direction:column;gap:2rem}.periodo-selector{display:flex;align-items:center;gap:1rem}.periodo-select{padding:.5rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--text-dark);background:var(--white);cursor:pointer;transition:border-color .3s ease}.periodo-select:focus{outline:none;border-color:var(--finanzas-primary)}.metricas-principales{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.metrica-card{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;transition:all .3s ease;position:relative;overflow:hidden}.metrica-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px #0000001f}.metrica-card.ingresos{border-left:4px solid var(--finanzas-secondary)}.metrica-card.gastos{border-left:4px solid var(--error-color)}.metrica-card.utilidad{border-left:4px solid var(--finanzas-primary)}.metrica-card.margen{border-left:4px solid var(--primary-color)}.metrica-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.metrica-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--text-light)}.metrica-valor{font-size:2rem;font-weight:700;color:var(--text-dark)}.metrica-valor.positive{color:var(--finanzas-primary)}.metrica-valor.negative{color:var(--error-color)}.metrica-detalle{margin-top:.5rem}.metrica-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.analisis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:2rem}.analisis-card{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.analisis-card h4{margin:0 0 1.5rem;font-size:1.3rem;font-weight:700;color:var(--text-dark)}.comparativo-table{overflow-x:auto}.comparativo-table table{width:100%;border-collapse:collapse}.comparativo-table th{background:#f8fafc;color:var(--text-dark);padding:1rem;text-align:left;font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e2e8f0}.comparativo-table td{padding:1rem;border-bottom:1px solid #e2e8f0;color:var(--text-dark)}.comparativo-table tr:hover{background:#f8fafc}.categorias-rentabilidad{display:flex;flex-direction:column;gap:1rem}.categoria-rentabilidad{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:#f8fafc;border-radius:12px;border-left:4px solid var(--finanzas-primary)}.categoria-info{flex:1}.categoria-nombre{font-weight:600;color:var(--text-dark);font-size:1.1rem;margin-bottom:.5rem;display:block}.categoria-metricas{display:flex;gap:1rem;font-size:.9rem}.categoria-metricas .ingreso{color:var(--finanzas-secondary);font-weight:500}.categoria-metricas .gasto{color:var(--error-color);font-weight:500}.categoria-metricas .utilidad{font-weight:600}.categoria-margen{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;min-width:120px}.margen-badge{font-weight:700;font-size:1.1rem;padding:.25rem .75rem;border-radius:20px}.margen-badge.positive{background:#dcfce7;color:#166534}.margen-badge.negative{background:#fef2f2;color:#dc2626}.margen-bar{width:100px;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.margen-fill{height:100%;border-radius:4px;transition:width .3s ease}.margen-fill.positive{background:linear-gradient(90deg,var(--finanzas-primary),var(--finanzas-secondary))}.margen-fill.negative{background:linear-gradient(90deg,var(--error-color),#f87171)}.tendencias-section{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.tendencias-section h4{margin:0 0 2rem;font-size:1.3rem;font-weight:700;color:var(--text-dark)}.tendencias-chart{height:300px;display:flex;align-items:flex-end;justify-content:center}.chart-container{width:100%;height:100%;display:flex;align-items:flex-end;padding:1rem 0}.chart-bars{display:flex;align-items:flex-end;justify-content:space-around;width:100%;height:100%;gap:1rem}.chart-bar-group{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1}.chart-bar{width:40px;height:200px;background:#f1f5f9;border-radius:4px;display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;border-radius:4px;transition:height .5s ease}.bar-fill.utilidad{background:linear-gradient(180deg,var(--finanzas-primary),var(--finanzas-secondary))}.bar-label{font-size:.9rem;font-weight:600;color:var(--text-dark)}.bar-value{font-size:.8rem;color:var(--text-muted)}.indicadores-section{background:var(--white);border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.indicadores-section h4{margin:0 0 1.5rem;font-size:1.3rem;font-weight:700;color:var(--text-dark)}.indicadores-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.indicador-item{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:#f8fafc;border-radius:12px;border-left:4px solid var(--finanzas-primary)}.indicador-label{font-weight:500;color:var(--text-light);font-size:.95rem}.indicador-valor{font-weight:700;font-size:1.2rem;color:var(--text-dark)}.indicador-valor.positive{color:var(--finanzas-primary)}.App{text-align:center}.App-header{background-color:#282c34;padding:20px;color:#fff;min-height:100vh}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #444}.App-header h1{margin:0;color:red;font-size:28px}.user-info{display:flex;align-items:center;gap:15px}.user-info span{color:#fff;font-weight:500}.logout-button{background:linear-gradient(135deg,#ff6b6b,#ee5a52);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.logout-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff6b6b4d}.usuarios-section{max-width:800px;margin:0 auto}.usuarios-section h2{margin-bottom:20px;color:#fff}.usuarios-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;padding:20px 0}.usuario-card{background-color:#3a3f47;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;transition:transform .2s}.usuario-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}.usuario-card h3{margin:0 0 10px;color:red}.usuario-card p{margin:5px 0;color:#ccc}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;background:linear-gradient(135deg,red,#c00,#000);color:#fff}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container p{font-size:18px;font-weight:500;margin:0}@media(max-width:768px){.header-top{flex-direction:column;gap:15px;text-align:center}.user-info{flex-direction:column;gap:10px}}.gg-totem{min-height:100vh;background:#0f172a}.gg-totem__bar{position:fixed;top:12px;right:12px;display:flex;gap:8px;z-index:2000;transition:opacity .4s}.gg-totem__bar--dim{opacity:.25}.gg-totem__bar-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:#0f172ab3;color:#fff;border:none;border-radius:var(--gg-radius-sm);cursor:pointer}.gg-totem__bar-btn:hover{background:#0f172ae6}.gg-totem__fs-hint{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#0f172ad9;color:#fff;padding:16px 28px;border-radius:var(--gg-radius);font-size:18px;font-weight:600;z-index:2100;pointer-events:none}.gg-totem-locked{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0f172a;padding:24px}.gg-totem-locked__card{text-align:center;max-width:380px}.gg-totem-locked__logo{width:96px;height:96px;border-radius:50%;object-fit:contain;margin-bottom:20px}.gg-totem-locked__title{color:#fff;font-size:26px;font-weight:800;margin:0 0 12px}.gg-totem-locked__msg{color:var(--gg-sidebar-foreground);font-size:15px;margin:0 0 24px;line-height:1.5}
