:root{color:#f4f4f4;--gold:#d6a84b;--gold-bright:#f2c95f;--panel:#191919;--line:#2b2b2b;background:#101010;font-family:Inter,system-ui,Arial,sans-serif}*{box-sizing:border-box;min-width:0}html,body,#root{min-height:100%}body{background:#101010;margin:0}button,input,select,textarea{font:inherit;appearance:none;max-width:100%}.app-shell{min-height:100vh}.sidebar{border-right:1px solid var(--line);z-index:20;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#d6a84bb3 #141414cc;background:#090909;flex-direction:column;width:240px;height:100vh;max-height:100vh;padding:24px 14px 40px;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden scroll!important}.sidebar::-webkit-scrollbar{width:6px;display:block}.mobile-drawer::-webkit-scrollbar{width:6px;display:block}.sidebar::-webkit-scrollbar-track{background:#0f0f0fb3;border-radius:6px}.mobile-drawer::-webkit-scrollbar-track{background:#0f0f0fb3;border-radius:6px}.sidebar::-webkit-scrollbar-thumb{background:#d6a84b66;border:1px solid #d6a84b26;border-radius:6px}.mobile-drawer::-webkit-scrollbar-thumb{background:#d6a84b66;border:1px solid #d6a84b26;border-radius:6px}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--gold);box-shadow:0 0 10px #d6a84b99}.mobile-drawer::-webkit-scrollbar-thumb:hover{background:var(--gold);box-shadow:0 0 10px #d6a84b99}.brand{text-align:center;margin:6px 0 32px}.brand-m{color:var(--gold);text-shadow:0 0 24px #d6a84b38;font-size:48px;font-weight:900;line-height:1}.brand strong{letter-spacing:5px;display:block}.brand span{letter-spacing:4px;color:var(--gold);font-size:11px}.sidebar nav,.mobile-drawer nav{gap:7px;display:grid}.sidebar a,.bottom-nav a,.mobile-drawer a{color:#aaa;text-decoration:none}.sidebar a,.mobile-drawer a{border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.sidebar a.active,.mobile-drawer a.active{color:var(--gold);background:#211b11}.logout-button{color:#d06d65;cursor:pointer;background:#111;border:1px solid #2b2b2b;border-radius:12px;align-items:center;gap:12px;width:100%;margin-top:12px;padding:12px;display:flex}.content{max-width:1500px;margin-left:240px;padding:32px}.page-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-head h1{margin:0;font-size:30px}.page-head p,.muted{color:#999;margin:6px 0}.primary{background:var(--gold);color:#111;cursor:pointer;border:0;border-radius:10px;padding:12px 18px;font-weight:800}.primary:disabled{opacity:.65;cursor:wait}.small{padding:9px 12px}.cards{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.stat,.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px}.stat{padding:18px}.stat span{color:#aaa;font-size:13px;display:block}.stat strong{color:var(--gold);margin-top:8px;font-size:25px;display:block}.panel{margin-top:16px;padding:18px}.panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel h2{margin:0 0 12px}.table-responsive{width:100%;overflow-x:auto}.table{border-collapse:collapse;white-space:nowrap;width:100%;display:table}.schedule-row,.tr{display:table-row}.schedule-row>*,.tr>*{border-bottom:1px solid var(--line);vertical-align:middle;padding:16px 20px;display:table-cell}.schedule-row em{color:var(--gold);font-style:normal}.th>*{color:#888;text-transform:uppercase;border-bottom:2px solid var(--line);padding-bottom:12px;font-size:12px}.toolbar,.period{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar button,.period button,.panel button,.modal button{color:#ddd;background:#202020;border:1px solid #333;border-radius:9px;padding:9px 12px}.period .active{border-color:var(--gold);color:var(--gold)}.th{color:#888;text-transform:uppercase;font-size:12px}.search{color:#fff;background:#171717;border:1px solid #333;border-radius:12px;outline:none;width:100%;padding:14px 16px}.search:focus,input:focus,select:focus,textarea:focus{border-color:var(--gold)}.client button{padding:5px 8px}.pagination{justify-content:center;align-items:center;gap:14px;margin-top:18px;display:flex}.pagination button:disabled{opacity:.35}.bottom-nav{display:none}.modal-bg{z-index:50;background:#000b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:#171717;border:1px solid #333;border-radius:18px;width:min(520px,100%);padding:22px}.modal label,.login-card label{color:#bbb;gap:7px;width:100%;min-width:0;margin:12px 0;display:grid}.modal input,.modal select,.modal textarea,.login-card input,.login-card select,.login-card textarea{color:#fff;background:#0f0f0f;border:1px solid #333;border-radius:10px;width:100%;min-width:0;max-width:100%;padding:12px}.two{grid-template-columns:1fr 1fr;gap:12px;width:100%;min-width:0;display:grid}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.mobile-only{display:none}@media (width<=850px){.mobile-only{display:inline}}.login-page{background:linear-gradient(#05050594,#050505cc),url(/referencia-visual.jpeg) 50%/cover no-repeat;place-items:center;min-height:100dvh;padding:20px;display:grid;position:relative;overflow:hidden auto}.login-ambient{pointer-events:none;background:radial-gradient(circle at 48% 20%,#d6a84b29,#0000 30%),linear-gradient(100deg,#0000002e,#0000009e);position:absolute;inset:0}.login-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;background:#090909e0;border:1px solid #d6a84b5c;border-radius:22px;width:min(420px,100%);padding:30px;position:relative;box-shadow:0 24px 80px #000,0 0 45px #d6a84b14}.login-brand{margin-bottom:4px}.login-logo{background:linear-gradient(#fff1ae 0%,#e6b84e 45%,#9c6511 100%);color:#0000;text-shadow:0 0 26px #d6a84b2e;-webkit-background-clip:text;background-clip:text;font-size:72px;font-weight:950;line-height:.95}.login-card h1{letter-spacing:8px;margin:10px 0 0;font-size:29px}.gold{color:var(--gold);letter-spacing:6px;font-size:12px}.login-tagline{color:#c8c8c8;margin:12px 0 20px;font-size:13px}.login-card label{text-align:left}.login-card .primary{width:100%;margin-top:10px}.login-submit{background:linear-gradient(90deg,#bc8425,#f0c75f,#b97818);box-shadow:0 8px 26px #d6a84b2e}.link-btn{color:#aaa;cursor:pointer;background:0 0;border:0;margin-top:14px}.error{color:#ff8e8e;font-size:13px}.password-field{position:relative}.password-field input{padding-right:48px!important}.password-toggle{color:#e2b44f;cursor:pointer;z-index:2;background:0 0;border:0;border-radius:9px;place-items:center;width:38px;height:38px;padding:0;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-toggle:hover{color:#ffe39a;background:#d6a84b1c}.brand-transition{z-index:9999;background:#050505;place-items:center;animation:.22s both transitionFadeIn;display:grid;position:fixed;inset:0;overflow:hidden}.brand-transition-vignette{background:radial-gradient(circle,#b0700f24,#00000075 44%,#020202 82%);position:absolute;inset:0}.brand-transition-content{z-index:5;text-align:center;flex-direction:column;align-items:center;display:flex;position:relative;transform:translateY(-2vh)}.transition-logo-wrap{place-items:center;width:210px;height:180px;display:grid;position:relative}.transition-logo{z-index:3;background:linear-gradient(120deg,#875310 0%,#f0c45e 28%,#fff3ba 46%,#d18f21 67%,#6f4209 100%) 0 0/250% 100%;color:#0000;filter:drop-shadow(0 0 10px #f4c04b6b)drop-shadow(0 0 36px #d6a84b38);-webkit-background-clip:text;background-clip:text;font-size:132px;font-weight:950;line-height:1;animation:1.35s linear infinite logoGoldSweep,1.1s ease-in-out infinite alternate logoPulse;position:relative}.transition-name{letter-spacing:.32em;color:#fff;text-shadow:0 0 18px #ffe29a2e;margin-top:-2px;padding-left:.32em;font-size:clamp(28px,5vw,46px);font-weight:900}.transition-subtitle{letter-spacing:.5em;color:#e2aa3f;text-shadow:0 0 13px #d6a84b66;margin-top:7px;padding-left:.5em;font-size:clamp(12px,2vw,16px)}.transition-message{color:#e8e1d4;margin-top:46px;font-size:14px}.transition-progress{background:#ffffff0a;border:1px solid #d6a84b7a;border-radius:999px;width:min(360px,72vw);height:5px;margin-top:16px;overflow:hidden;box-shadow:0 0 16px #d6a84b1a}.transition-progress-fill{border-radius:inherit;background:linear-gradient(90deg,#a66312,#f7cf67,#fff1ae);width:0;height:100%;animation:3s cubic-bezier(.16,.75,.25,1) forwards loginProgress;box-shadow:0 0 18px #e5ad39}.transition-dots{gap:8px;margin-top:16px;display:flex}.transition-dots span{background:#d6a84b;border-radius:50%;width:6px;height:6px;animation:.9s ease-in-out infinite alternate dotGlow;box-shadow:0 0 10px #d6a84b}.transition-dots span:nth-child(2){animation-delay:.16s}.transition-dots span:nth-child(3){animation-delay:.32s}.brand-halo{border:1px solid #e3ab3a47;border-radius:50%;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 36px #d8a0291a,inset 0 0 28px #d8a0290f}.halo-one{width:min(520px,80vw);height:min(520px,80vw);animation:5s linear infinite haloSpin}.halo-two{opacity:.5;border-style:dashed;width:min(650px,96vw);height:min(650px,96vw);animation:8s linear infinite haloSpinReverse}.halo-three{opacity:.7;width:min(380px,63vw);height:min(380px,63vw);animation:1.2s ease-in-out infinite alternate haloBreathe}.logo-flare{z-index:6;background:#fff7d2;border-radius:50%;width:9px;height:9px;position:absolute;box-shadow:0 0 8px #fff,0 0 18px #f3c95c,0 0 34px #c97f12}.flare-a{animation:.7s ease-in-out infinite alternate flarePulse;top:26px;right:43px}.flare-b{animation:.8s ease-in-out .2s infinite alternate flarePulse;bottom:43px;left:47px}.brand-transition-particles{position:absolute;inset:0;overflow:hidden}.brand-transition-particles i{--x:calc((var(--i) * 47) % 100);left:calc(var(--x) * 1%);opacity:.2;width:3px;height:3px;animation:particleRise calc(1.8s + (var(--i) % 5) * .33s) linear infinite;animation-delay:calc((var(--i) % 7) * -.28s);background:#e5a936;border-radius:50%;position:absolute;bottom:-30px;box-shadow:0 0 10px #e5a936}@keyframes transitionFadeIn{0%{opacity:0}to{opacity:1}}@keyframes logoGoldSweep{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes logoPulse{0%{filter:drop-shadow(0 0 8px #f4c04b4d);transform:scale(.985)}to{filter:drop-shadow(0 0 15px #ffd35fa3)drop-shadow(0 0 42px #d6a84b4d);transform:scale(1.025)}}@keyframes loginProgress{0%{width:0}35%{width:42%}68%{width:76%}to{width:100%}}@keyframes dotGlow{0%{opacity:.25;transform:scale(.78)}to{opacity:1;transform:scale(1.25)}}@keyframes haloSpin{to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes haloSpinReverse{to{transform:translate(-50%,-50%)rotate(-360deg)}}@keyframes haloBreathe{0%{opacity:.3;transform:translate(-50%,-50%)scale(.96)}to{opacity:.78;transform:translate(-50%,-50%)scale(1.04)}}@keyframes flarePulse{0%{opacity:.35;transform:scale(.55)}to{opacity:1;transform:scale(1.45)}}@keyframes particleRise{0%{opacity:0;transform:translateY(0)scale(.8)}15%{opacity:.6}to{opacity:0;transform:translateY(-110vh)scale(1.2)}}.mobile-menu-trigger,.mobile-drawer,.mobile-drawer-backdrop{display:none}.mobile-drawer{z-index:80;scrollbar-width:thin;scrollbar-color:#d6a84b73 #14141480;background:linear-gradient(#111,#080808);border-left:1px solid #2d2d2d;width:min(330px,88vw);padding:20px 16px 40px;transition:transform .28s;position:fixed;top:0;bottom:0;right:0;transform:translate(104%);box-shadow:-20px 0 60px #000;overflow:hidden auto!important}.mobile-drawer.open{transform:translate(0)}.mobile-drawer-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:70;opacity:0;pointer-events:none;background:#000000b3;transition:opacity .25s;position:fixed;inset:0}.mobile-drawer-backdrop.open{opacity:1;pointer-events:auto}.mobile-drawer-head{border-bottom:1px solid #242424;justify-content:space-between;align-items:center;margin-bottom:14px;padding:5px 2px 20px;display:flex}.mobile-drawer-brand{align-items:center;gap:12px;display:flex}.mobile-drawer-avatar{color:#111;background:linear-gradient(145deg,#6e480f,#d6a84b);border-radius:50%;place-items:center;width:44px;height:44px;font-weight:900;display:grid;box-shadow:0 0 20px #d6a84b29}.mobile-drawer-brand strong,.mobile-drawer-brand span{display:block}.mobile-drawer-brand span{color:#8d8d8d;margin-top:2px;font-size:12px}.mobile-drawer-close{color:#ddd;cursor:pointer;background:#171717;border:0;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}@media (width<=850px){.sidebar{display:none}.content{margin:0;padding:72px 16px 96px}.mobile-menu-trigger{width:44px;height:44px;color:var(--gold);z-index:45;background:#0d0d0deb;border:1px solid #d6a84b5c;border-radius:12px;place-items:center;display:grid;position:fixed;top:14px;right:16px;box-shadow:0 8px 25px #00000059}.mobile-drawer,.mobile-drawer-backdrop{display:block}.bottom-nav{z-index:40;padding:8px 4px max(8px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a0a0af2;border-top:1px solid #2b2b2b;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{flex-direction:column;align-items:center;gap:4px;padding:6px;font-size:11px;display:flex}.bottom-nav a.active{color:var(--gold)}.cards{grid-template-columns:1fr 1fr}.page-head{align-items:flex-start}.panel{padding:12px}.table{overflow-x:auto}.two{grid-template-columns:1fr}.login-page{background-position:62%}.login-card{width:min(390px,100%);padding:25px}.transition-logo-wrap{width:180px;height:155px}.transition-logo{font-size:112px}.transition-message{margin-top:38px}}@media (width<=480px){.cards{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:14px}.stat strong{font-size:19px}.page-head h1{font-size:25px}.page-head{flex-direction:column}.page-head .primary{width:100%}.panel-head{flex-direction:column;align-items:flex-start}.login-card{padding:22px}.login-logo{font-size:62px}.login-card h1{letter-spacing:6px;font-size:24px}.transition-name{font-size:26px}.transition-subtitle{font-size:11px}.brand-halo{top:44%}}@media (prefers-reduced-motion:reduce){.transition-logo,.brand-halo,.brand-transition-particles i,.transition-progress-fill,.transition-dots span,.logo-flare{animation-duration:.001ms!important;animation-iteration-count:1!important}}.login-logo-img{object-fit:contain;width:140px;height:auto;margin:0 auto;display:block}.sidebar-logo-img{object-fit:contain;width:120px;height:auto;margin:0 auto;display:block}.mobile-logo-img{object-fit:contain;width:100px;height:auto}.transition-logo-img{object-fit:contain;z-index:2;width:180px;height:auto;margin-bottom:2rem;position:relative}
