:root{font-family:Inter,Segoe UI,system-ui,Arial,sans-serif;color:#f7f6f2;background:#080808;--sidebar-width: 250px;--bg-main: #080808;--bg-surface: rgba(14, 14, 14, .82);--bg-surface-soft: rgba(255, 255, 255, .03);--border-gold-soft: rgba(201, 162, 39, .32);--border-gold: rgba(201, 162, 39, .52);--text-primary: #f7f6f2;--text-secondary: #c8c8c8;--text-muted: #a6a6a6;--accent: #c9a227;--radius-md: 12px;--radius-lg: 16px;--shadow-soft: 0 10px 28px rgba(0, 0, 0, .26);--shadow-strong: 0 16px 34px rgba(0, 0, 0, .34)}*{box-sizing:border-box}body{margin:0;color:var(--text-primary);line-height:1.45;letter-spacing:.005em;background:linear-gradient(#08080870,#0808088a),url(/gym-bg.png) center/cover fixed no-repeat}h1,h2,h3,h4{letter-spacing:.01em}.layout{min-height:100vh;padding:0}.app-grid{min-height:100vh}.sidebar{position:fixed;left:0;top:0;height:100vh;width:var(--sidebar-width);border-right:1px solid rgba(184,150,63,.2);background:#080808ad;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:1.2rem .9rem;display:flex;flex-direction:column;transition:background .22s ease,border-color .22s ease;z-index:20}.sidebar-top{display:flex;justify-content:flex-start;margin-bottom:1.35rem;padding:.1rem .25rem 1.05rem;border-bottom:1px solid rgba(184,150,63,.18)}.sidebar-branding{display:flex;align-items:center;gap:.55rem}.logo-wrap{width:34px;height:34px;border-radius:50%;overflow:hidden;border:1px solid rgba(198,168,91,.55);background:#00000040;flex-shrink:0}.gym-logo{width:100%;height:100%;object-fit:cover;transform:scale(1.23);transform-origin:center}.sidebar-branding h2{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:.01em;color:#eaeaea}.sidebar-branding p{margin:.2rem 0 0;color:#999;font-size:.76rem;letter-spacing:.04em;text-transform:uppercase}.sidebar-links{display:grid;gap:.52rem;align-content:start}.nav-item{display:flex;align-items:center;justify-content:flex-start;gap:.75rem;width:100%;min-height:46px;padding:.56rem .68rem;border-radius:11px;transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.logout-btn{margin-top:auto;margin-bottom:.35rem}.nav-glyph{width:18px;height:18px;display:inline-grid;place-items:center;color:#c6a85bf2;flex-shrink:0}.nav-glyph svg{display:block}.nav-label{color:#a8a8a8;font-size:.91rem;font-weight:500;text-align:left}.nav-item:hover{background:#ffffff0d;border-color:#b8963f5c;transform:translate(2px)}.nav-item:hover .nav-label{color:#eaeaea}.nav-item.active{background:#b8963f2e;border-color:#b8963f9e;position:relative}.nav-item.active:before{content:"";position:absolute;left:-.9rem;top:8px;width:3px;height:calc(100% - 16px);border-radius:999px;background:#c6a85be6}.nav-item.active .nav-label{color:#eaeaea}.nav-item-logout .nav-label{color:#d0d0d0}.page-shell{border-left:1px solid rgba(184,150,63,.14);background:#0a0a0a7a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:0;padding:1.35rem;min-height:100vh;margin-left:var(--sidebar-width)}.navbar{display:flex;gap:.9rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:1.2rem;padding:.85rem;border-radius:16px;border:1px solid rgba(201,162,39,.35);background:#0e0e0ecc}.brand{display:flex;align-items:center;gap:.65rem}.brand h1{font-size:1.1rem;margin:0}.brand-dot{width:11px;height:11px;border-radius:50%;background:#c9a227;box-shadow:0 0 16px #c9a227e6}.nav-links{display:flex;gap:.5rem;flex-wrap:wrap}.card{background:linear-gradient(180deg,#181818eb,#0f0f0ff2);border:1px solid var(--border-gold-soft);border-radius:var(--radius-lg);padding:1.2rem;box-shadow:var(--shadow-soft);transition:box-shadow .22s ease,border-color .22s ease}.card:hover{border-color:#c9a2276b;box-shadow:var(--shadow-strong)}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.65rem;margin-bottom:1rem}.grid{display:grid;gap:1rem}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.two-cols{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}button,input,select,textarea{background:#0f0f0f;color:#fffdf6;border:1px solid var(--border-gold);border-radius:var(--radius-md);padding:.66rem .8rem;transition:all .2s ease;font-size:.94rem}button{cursor:pointer;background:linear-gradient(180deg,#d6b147,#b9901f);color:#121212;font-weight:700;box-shadow:0 6px 16px #00000040}button:hover{transform:translateY(-1px);filter:brightness(1.03)}button.active{background:#b8963f40;color:#f0e2bd}button:disabled{opacity:.65;cursor:not-allowed;transform:none}input::placeholder,textarea::placeholder{color:#8f8f8f}input:focus,select:focus,textarea:focus,button:focus-visible{outline:none;border-color:#e2bc50f2;box-shadow:0 0 0 3px #c9a22738}.ghost{background:#0000001f;color:#f7f6f2;border:1px solid rgba(184,150,63,.36);box-shadow:none}.danger{border-color:#ba3f3f!important}form{display:grid;gap:.6rem}.table-wrap{overflow-x:auto;border:1px solid rgba(201,162,39,.2);border-radius:12px;background:#0000001f}table{width:100%;border-collapse:collapse}.modern-table thead th{color:#d0d0d0;font-weight:600;font-size:.88rem;text-transform:uppercase;letter-spacing:.03em;background:#ffffff05}.modern-table tbody tr:hover{background:#c6a85b1a}.modern-table tbody tr{transition:background .2s ease}th,td{text-align:left;border-bottom:1px solid rgba(255,255,255,.08);padding:.68rem .62rem;vertical-align:middle}.center-screen{min-height:100vh;display:grid;place-items:center;padding:1.2rem}.login-card{width:100%}.login-layout{width:min(1140px,96vw);min-height:min(680px,calc(100vh - 2.4rem));border-radius:22px;overflow:hidden;border:1px solid rgba(201,162,39,.28);background:#070707b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 24px 60px #0000006b;display:grid;grid-template-columns:1.1fr .9fr;animation:loginShellIn .52s ease-out both}.login-media{position:relative;background:linear-gradient(120deg,#08080833,#080808c7),url(/gym-bg.png) center/cover no-repeat;min-height:100%}.login-media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 25%,rgba(201,162,39,.35),transparent 52%);pointer-events:none}.login-media:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#0000000f,#00000061),radial-gradient(circle at 82% 22%,rgba(201,162,39,.2),transparent 42%);pointer-events:none}.login-media-overlay{position:relative;z-index:1;height:100%;padding:clamp(1.4rem,3.6vw,2.8rem);display:grid;align-content:end;gap:.9rem}.login-media-overlay h2{margin:0;font-size:clamp(1.7rem,2.8vw,2.4rem);line-height:1.15}.login-media-overlay p{margin:0;color:#dedede;max-width:44ch}.login-panel{align-self:center;width:min(460px,calc(100% - 2rem));margin:0 auto;border-radius:18px;border-color:#c9a22766;background:linear-gradient(180deg,#121212f2,#0a0a0af5);box-shadow:0 22px 40px #00000061;padding:clamp(1.15rem,2.6vw,1.8rem);transform:translateY(8px);opacity:0;animation:loginPanelIn .56s .14s ease-out forwards}.login-panel h2{margin:0;font-size:clamp(1.45rem,2.2vw,2rem)}.login-brand{display:flex;align-items:center;gap:.72rem;margin-bottom:.1rem}.login-brand-logo{width:42px;height:42px;border-radius:50%;overflow:hidden;border:1px solid rgba(201,162,39,.62);box-shadow:0 0 0 3px #c9a2271f;background:#00000038;flex-shrink:0}.login-panel .inline-note{margin-top:-.1rem;margin-bottom:.25rem}.login-panel input{min-height:46px}.login-panel input:focus{transform:translateY(-1px)}.login-panel button{margin-top:.25rem;min-height:48px;font-size:1.02rem;position:relative;overflow:hidden}.login-panel button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.28) 50%,transparent 75%);transform:translate(-120%);transition:transform .42s ease}.login-panel button:hover:after{transform:translate(120%)}@keyframes loginShellIn{0%{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes loginPanelIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.login-layout,.login-panel{animation:none;opacity:1;transform:none}.login-panel button:after{display:none}}.eyebrow{color:#c9a227;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;margin:0}.metric-card h3{margin:0;color:#d6c17e;font-weight:600;font-size:1.02rem}.metric-value{margin:.78rem 0 0;font-size:clamp(2rem,2.1vw,2.35rem);font-weight:800;line-height:1.05;letter-spacing:.01em;font-variant-numeric:tabular-nums}.metric-currency{white-space:nowrap;font-size:clamp(1.9rem,1.95vw,2.2rem)}.dashboard-panels{gap:1.2rem}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.trend-card h3{margin-top:0}.trend-list{display:grid;gap:.55rem}.trend-row{display:grid;grid-template-columns:56px minmax(120px,1fr) 120px;align-items:center;gap:.55rem}.trend-label{color:#bababa;font-size:.84rem}.trend-value{color:#e8e8e8;font-size:.86rem;text-align:right}.trend-bar-wrap{width:100%;height:12px;border-radius:999px;background:#ffffff14;overflow:hidden}.trend-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#c9a227,#e4cd88)}.error{color:#ef4b4b;margin:.2rem 0;font-weight:600}.success{color:#58d68d;margin:.2rem 0;font-weight:600}.status-pill{display:inline-block;font-size:.75rem;border-radius:999px;padding:.2rem .55rem;border:1px solid transparent}.status-activa{color:#d9c079;border-color:#c9a2278c;background:#c6a85b21}.status-vencida{color:#d8d8d8;border-color:#8282828c;background:#7878781f}.actions-cell{display:flex;gap:.56rem;flex-wrap:wrap}.list-clean{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.list-clean li{border:1px solid rgba(201,162,39,.25);border-radius:10px;padding:.6rem .7rem;background:#ffffff05}.inline-note{color:#bdbdbd;font-size:.86rem}.check-row{display:flex;align-items:center;gap:.5rem;color:#dadada;font-size:.92rem}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:.8rem}.section-head h3{margin:0;font-size:1.06rem;font-weight:700}.detail-box{margin-top:.8rem;padding:.75rem;border-radius:10px;border:1px solid rgba(201,162,39,.35);background:#ffffff08}.action-view{display:grid;gap:.75rem}.action-view p{margin:0;padding:.68rem .76rem;border-radius:12px;border:1px solid rgba(201,162,39,.28);background:#ffffff0a;color:#e7e7e7}.checkin-page{max-width:760px}.checkin-form{display:grid;gap:.55rem;margin-bottom:.5rem}.checkin-form input{font-size:1.2rem;letter-spacing:.02em;padding:.8rem .9rem}.checkin-result{display:grid;gap:.55rem;border-radius:16px;border:1px solid rgba(255,255,255,.16);padding:1.1rem;box-shadow:var(--shadow-soft)}.checkin-result h2{margin:0;font-size:1.5rem}.checkin-result p{margin:0}.checkin-ok{border-color:#58d68dcc;background:#58d68d24;color:#b8ffd2}.checkin-bad{border-color:#ef4b4bbf;background:#ef4b4b1f;color:#ffd0d0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(#060606b3,#060606c7),url(/gym-bg.png) center/cover no-repeat;display:grid;place-items:center;z-index:50;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(520px,96%);max-height:calc(100vh - 2rem);overflow-y:auto;border-radius:16px;border:1px solid rgba(201,162,39,.45);background:linear-gradient(180deg,#0e0e0ef0,#090909f0);padding:1.1rem;display:grid;gap:.8rem}.modal-card .actions-cell{position:sticky;bottom:-1.1rem;margin:0 -1.1rem -1.1rem;padding:.85rem 1.1rem 1rem;background:linear-gradient(180deg,#0e0e0e26,#090909f7);border-top:1px solid rgba(201,162,39,.22)}.detail-modal h3{margin:0;color:#f2e2ba;font-size:1.15rem}.detail-modal p{margin:0;padding:.68rem .76rem;border-radius:10px;border:1px solid rgba(201,162,39,.28);background:#ffffff0a;color:#e7e7e7}.detail-modal p strong{color:#f0d58c}.pagination{margin-top:1rem;display:flex;align-items:center;justify-content:flex-end;gap:.6rem}.pagination span{color:#d4d4d4;font-size:.88rem}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:#ffffff0a}*::-webkit-scrollbar-thumb{background:#c9a22766;border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#c9a22794;background-clip:padding-box}@media (max-width: 768px){:root{--sidebar-width: 220px}.layout{padding:0}.sidebar{padding:.9rem .62rem}.page-shell{padding:.9rem}.modal-card{width:min(520px,100%)}.modal-overlay{top:0;right:0;bottom:0;left:0}.login-layout{grid-template-columns:1fr;min-height:auto}.login-media{min-height:220px}.login-media-overlay{align-content:end;gap:.6rem}.login-media-overlay p{font-size:.92rem}.login-panel{width:calc(100% - 1.2rem);margin:.6rem auto;animation-delay:40ms}}
