:root{--bg:#0b0b0c;--bg-sidebar:#101012;--bg-card:#131316;--bg-card-alt:#1c1c21;--bg-input:#0e0e10;--accent:#bcff5e;--accent-hover:#d4ff8f;--on-accent:#0b0b0c;--text:#f4f4f5;--text-2:#c7c7cf;--muted:#8e8e96;--muted-2:#6a6a72;--danger:#ff6b6b;--border:hsla(0,0%,100%,.08);--border-soft:hsla(0,0%,100%,.06);--border-strong:hsla(0,0%,100%,.1)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg)}body{font-family:Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased;color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,select,textarea{font-family:Manrope,system-ui,sans-serif}input::placeholder{color:var(--muted-2)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)!important}::selection{background:rgba(188,255,94,.3)}.mono{font-family:JetBrains Mono,monospace}@keyframes kubiPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}@keyframes kubiRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes kubiToast{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes kubiSpin{to{transform:rotate(1turn)}}.field-label{display:block;font-size:12.5px;font-weight:600;color:#b9b9c0;margin-bottom:7px}.input{padding:12px 14px;border:1px solid var(--border-strong);border-radius:11px}.input,.input-sm{width:100%;font-size:14px;color:var(--text);background:var(--bg-input)}.input-sm{padding:11px 13px;border:1px solid var(--border-strong);border-radius:10px}.btn-accent{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 24px;font-size:14.5px;font-weight:800;color:var(--on-accent);background:var(--accent);border:none;border-radius:12px;cursor:pointer;transition:filter .15s;letter-spacing:.2px}.btn-accent:hover{filter:brightness(1.08)}.btn-accent:disabled{opacity:.55;cursor:not-allowed;filter:none}.btn-ghost{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;font-size:13px;font-weight:700;color:var(--text);background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.12);border-radius:10px;cursor:pointer;transition:background .12s}.btn-ghost:hover{background:hsla(0,0%,100%,.06)}.btn-danger{flex-shrink:0;padding:10px 20px;font-size:13.5px;font-weight:700;color:var(--danger);background:hsla(0,100%,71%,.08);border:1px solid hsla(0,100%,71%,.3);border-radius:10px;cursor:pointer;transition:background .12s}.btn-danger:hover{background:hsla(0,100%,71%,.16)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:26px}.micro-label{letter-spacing:1px;text-transform:uppercase;color:var(--muted-2)}.badge,.micro-label{font-size:12px;font-weight:700}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px}.badge,.chip{border-radius:999px}.chip{padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;border:1px solid var(--border-strong);color:var(--text-2);background:transparent}.chip.active{border-color:var(--accent);color:var(--on-accent);background:var(--accent)}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 13px;font-size:14px;font-weight:600;text-align:left;border:none;border-radius:10px;cursor:pointer;transition:background .12s;color:var(--text-2);background:transparent;width:100%}.nav-item:hover{background:hsla(0,0%,100%,.04)}.nav-item.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}@media (max-width:760px){.admin-shell{display:block!important;min-width:0}.admin-sidebar{width:100%!important;height:auto!important;position:-webkit-sticky!important;position:sticky!important;top:0;z-index:20;border-right:0!important;border-bottom:1px solid var(--border-soft)}.admin-sidebar-brand{padding:12px 16px 8px!important;border-bottom:0!important;display:flex;align-items:center;justify-content:space-between}.admin-sidebar-brand>div{margin-top:0!important}.admin-nav{flex:none!important;padding:6px 10px 10px!important;flex-direction:row!important;gap:6px!important;overflow-x:auto;scrollbar-width:none}.admin-nav::-webkit-scrollbar{display:none}.admin-nav .nav-item{width:auto;flex:1 0 auto;min-height:42px;justify-content:center;padding:9px 12px;font-size:13px}.admin-nav-divider,.admin-profile{display:none!important}.admin-main{width:100%;min-width:0}.admin-header{height:auto!important;min-height:64px;padding:11px 16px!important;position:static!important}.admin-header h2{font-size:19px!important}.admin-header-date{display:none!important}.admin-content{width:100%;max-width:none!important;padding:20px 16px 32px!important}.client-list-heading,.mobile-stack-row{align-items:stretch!important;flex-direction:column!important;gap:12px!important}.client-list-heading .btn-accent,.mobile-stack-row>.btn-accent,.mobile-stack-row>.btn-danger{width:100%;min-height:44px}.client-grid{grid-template-columns:minmax(0,1fr)!important}.client-card{width:100%;min-width:0;padding:18px!important}.responsive-form-grid,.token-result-grid,.token-stats-grid{grid-template-columns:minmax(0,1fr)!important}.generated-token-code{max-width:100%;font-size:clamp(28px,10vw,42px)!important;letter-spacing:4px!important;overflow-wrap:anywhere}.token-history-tools{align-items:stretch!important;flex-direction:column}.token-history-tools>div:first-child{width:100%;overflow-x:auto;padding-bottom:2px}.token-search{width:100%!important}.token-history-header{display:none!important}.token-history-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:14px 12px!important;padding:18px 16px!important}.token-history-row>div:first-child{grid-column:1/-1}.token-history-row>div:before{display:block;margin-bottom:4px;color:var(--muted-2);font-family:Manrope,system-ui,sans-serif;font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase}.token-history-row>div:first-child:before{content:"Token"}.token-history-row>div:nth-child(2):before{content:"Validez"}.token-history-row>div:nth-child(3):before{content:"Generado"}.token-history-row>div:nth-child(4):before{content:"Expira"}.token-history-row>div:nth-child(5):before{content:"Estado"}.token-history-row>div:last-child{text-align:left!important}.card{padding:20px 16px}.admin-content input,.admin-content select,.admin-content textarea{font-size:16px}}.spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.25);border-top:2px solid var(--on-accent);border-radius:50%;animation:kubiSpin .7s linear infinite}