:root{--bark:#1E1209;--umber:#3A2010;--clay:#7A4A20;--wheat:#C8986A;--straw:#E8D0A8;--parch:#F6EFE2;--gold:#B87830;--moss:#2E3A22;--ok:#4A8C4A;--warn:#C47A20;--err:#8C3030;--bg:#0F0805;--card:#1A1008;--border:rgba(200,152,106,.12);--text:rgba(246,239,226,.85);--muted:rgba(200,152,106,.5);}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;font-weight:300;background:var(--bg);color:var(--text);min-height:100vh;}
#screen-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 30% 40%,#3A2010 0%,#0F0805 60%);}
.login-box{width:100%;max-width:380px;padding:2.5rem;background:rgba(26,16,8,.95);border:1px solid var(--border);}
.login-logo{text-align:center;margin-bottom:2rem;}
.login-logo img{width:56px;height:56px;border-radius:50%;border:1px solid rgba(200,152,106,.3);margin-bottom:.8rem;}
.login-logo h1{font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--straw);}
.login-logo p{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.2rem;}
.login-error{background:rgba(140,48,48,.15);border:1px solid rgba(140,48,48,.3);color:#E07070;padding:.6rem .9rem;font-size:.78rem;margin-bottom:1rem;display:none;}
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem;}
.field label{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.field input,.field select,.field textarea{background:rgba(200,152,106,.06);border:1px solid var(--border);padding:.65rem .9rem;font-family:'Jost',sans-serif;font-size:.88rem;color:var(--parch);outline:none;transition:border-color .2s;width:100%;}
.field input:focus,.field select:focus{border-color:var(--wheat);}
.field select option{background:#2a1808;}
.field textarea{resize:vertical;min-height:75px;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.2rem;font-family:'Jost',sans-serif;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:1px;transition:all .2s;border:none;width:100%;}
.btn-primary{background:var(--clay);color:var(--parch);}
.btn-primary:hover{background:var(--umber);}
.btn-ghost{background:transparent;color:var(--wheat);border:1px solid var(--border);}
.btn-ghost:hover{border-color:var(--wheat);}
.btn-sm{padding:.38rem .85rem;font-size:.65rem;width:auto;}
.btn-ok{background:rgba(74,140,74,.2);color:#7BC47B;border:1px solid rgba(74,140,74,.3);}
.btn-ok:hover{background:rgba(74,140,74,.35);}
.btn-danger{background:rgba(140,48,48,.2);color:#E07070;border:1px solid rgba(140,48,48,.3);}
.login-alt{text-align:center;margin-top:1rem;font-size:.75rem;color:var(--muted);}
.login-alt a{color:var(--wheat);cursor:pointer;text-decoration:underline;}
.required{color:var(--gold);}
#screen-app{display:none;min-height:100vh;}
#sidebar{width:210px;flex-shrink:0;background:var(--bark);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .3s;}
.sb-logo{padding:1.3rem 1.2rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.7rem;}
.sb-logo img{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid rgba(200,152,106,.3);}
.sb-logo span{font-family:'Playfair Display',serif;font-size:.85rem;font-weight:700;color:var(--straw);}
.sb-nav{flex:1;padding:.6rem 0;overflow-y:auto;}
.sb-section{font-size:.52rem;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);padding:.7rem 1.2rem .2rem;}
.sb-item{display:flex;align-items:center;gap:.7rem;padding:.6rem 1.2rem;cursor:pointer;font-size:.78rem;color:rgba(200,152,106,.55);transition:all .2s;border-left:2px solid transparent;text-decoration:none;}
.sb-item:hover{background:rgba(200,152,106,.06);color:var(--wheat);}
.sb-item.active{background:rgba(200,152,106,.1);color:var(--straw);border-left-color:var(--gold);}
.sb-item .ico{font-size:.95rem;width:18px;text-align:center;}
.sb-bottom{padding:1rem 1.2rem;border-top:1px solid var(--border);}
.sb-user{display:flex;align-items:center;gap:.6rem;}
.sb-avatar{width:28px;height:28px;border-radius:50%;background:var(--clay);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--parch);flex-shrink:0;}
.sb-user-name{font-size:.75rem;color:var(--wheat);}
.sb-user-role{font-size:.6rem;color:var(--muted);}
.sb-logout{font-size:.62rem;color:var(--muted);cursor:pointer;text-decoration:underline;margin-top:.3rem;}
.sb-logout:hover{color:var(--wheat);}
#main{margin-left:210px;display:flex;flex-direction:column;min-height:100vh;}
.topbar{background:rgba(15,8,5,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:.75rem 1.8rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50;}
.topbar-title{font-family:'Playfair Display',serif;font-size:1rem;color:var(--straw);}
.topbar-sub{font-size:.68rem;color:var(--muted);}
#content{flex:1;padding:1.6rem 1.8rem;overflow-y:auto;}
.panel{display:none;}
.panel.active{display:block;}
.card{background:var(--card);border:1px solid var(--border);margin-bottom:1.2rem;}
.card-head{padding:.9rem 1.3rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;}
.card-title{font-size:.82rem;font-weight:500;color:var(--straw);letter-spacing:.04em;}
.card-body{padding:1.2rem 1.3rem;}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-bottom:1.2rem;}
.stat-card{background:var(--card);border:1px solid var(--border);padding:1rem 1.2rem;position:relative;overflow:hidden;}
.stat-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold);}
.stat-n{font-family:'Playfair Display',serif;font-size:2rem;font-weight:700;color:var(--wheat);}
.stat-l{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.15rem;}
.tbl{width:100%;border-collapse:collapse;font-size:.8rem;}
.tbl th{padding:.55rem .9rem;text-align:left;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);font-weight:400;}
.tbl td{padding:.7rem .9rem;border-bottom:1px solid rgba(200,152,106,.06);vertical-align:middle;word-break:break-word;}
.tbl tr:last-child td{border-bottom:none;}
.tbl tr:hover td{background:rgba(200,152,106,.03);}
.tbl-name{font-weight:500;color:var(--straw);white-space:normal!important;word-break:break-word;}
.tbl-sub{font-size:.68rem;color:var(--muted);}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.badge{display:inline-block;padding:.18rem .6rem;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;border-radius:1px;}
.badge-ok{background:rgba(74,140,74,.15);color:#7BC47B;border:1px solid rgba(74,140,74,.2);}
.badge-warn{background:rgba(196,122,32,.15);color:#E09840;border:1px solid rgba(196,122,32,.2);}
.badge-err{background:rgba(140,48,48,.15);color:#E07070;border:1px solid rgba(140,48,48,.2);}
.badge-info{background:rgba(74,100,160,.15);color:#8AAAE0;border:1px solid rgba(74,100,160,.2);}
.badge-clay{background:rgba(122,74,32,.2);color:var(--wheat);border:1px solid rgba(122,74,32,.3);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.form-full{grid-column:1/-1;}
.field-note{font-size:.67rem;color:var(--muted);margin-top:.2rem;}
#modal-overlay{position:fixed;inset:0;background:rgba(5,3,2,.88);z-index:900;display:none;align-items:center;justify-content:center;padding:1rem;}
#modal-overlay.open{display:flex;}
.modal{background:var(--umber);border:1px solid var(--border);width:100%;max-width:640px;max-height:92vh;overflow-y:auto;}
.modal-head{padding:1.1rem 1.4rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--umber);z-index:1;}
.modal-title{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--straw);}
.modal-close{background:transparent;border:none;color:var(--muted);font-size:1.2rem;cursor:pointer;padding:.2rem .5rem;transition:color .2s;}
.modal-close:hover{color:var(--wheat);}
.modal-body{padding:1.4rem;}
.modal-footer{padding:.9rem 1.4rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.6rem;}
.alert{padding:.65rem .9rem;font-size:.78rem;margin-bottom:.8rem;}
.alert-ok{background:rgba(74,140,74,.1);border:1px solid rgba(74,140,74,.2);color:#7BC47B;}
.alert-warn{background:rgba(196,122,32,.1);border:1px solid rgba(196,122,32,.2);color:#E09840;}
.alert-info{background:rgba(74,100,160,.1);border:1px solid rgba(74,100,160,.2);color:#8AAAE0;}
.pasos{display:flex;gap:0;margin-bottom:2rem;}
.paso{display:flex;align-items:center;gap:.4rem;flex:1;}
.paso-num{width:26px;height:26px;border-radius:50%;background:rgba(200,152,106,.1);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--muted);flex-shrink:0;transition:all .3s;}
.paso.active .paso-num{background:var(--clay);color:var(--parch);}
.paso.done .paso-num{background:var(--ok);color:white;}
.paso-label{font-size:.65rem;color:var(--muted);transition:color .3s;}
.paso.active .paso-label{color:var(--wheat);}
.paso-line{flex:1;height:1px;background:var(--border);margin:0 .3rem;}
.paso.done .paso-line{background:var(--ok);}
.horario-grid-wrap{overflow-x:auto;}
.horario-grid{display:grid;gap:4px;min-width:540px;}
.hg-header-hora{display:flex;align-items:center;justify-content:flex-end;padding-right:.4rem;font-size:.65rem;color:rgba(200,152,106,.3);font-weight:500;padding-top:4px;}
.hg-celda-libre{background:rgba(16,46,16,.8);border:1px solid rgba(74,140,74,.45);border-radius:3px;padding:.35rem .45rem;min-height:58px;display:flex;flex-direction:column;gap:.12rem;cursor:pointer;transition:border-color .2s;}
.hg-celda-libre:hover{border-color:#7BC47B;}
.hg-celda-mia{background:rgba(74,96,53,.4);border:1px solid rgba(74,140,74,.4);border-radius:3px;padding:.35rem .45rem;min-height:58px;display:flex;flex-direction:column;gap:.12rem;}
.hg-celda-vacia{min-height:58px;border:1px dashed rgba(200,152,106,.08);border-radius:3px;display:flex;align-items:center;justify-content:center;transition:border-color .15s;}
.cliente-welcome{background:linear-gradient(135deg,rgba(58,32,16,.8),rgba(46,58,34,.4));border:1px solid var(--border);padding:1.5rem;margin-bottom:1.2rem;display:flex;align-items:center;gap:1.2rem;}
.cliente-avatar{width:50px;height:50px;border-radius:50%;background:var(--clay);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--parch);flex-shrink:0;}
.cliente-info h2{font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--straw);}
.cliente-info p{font-size:.78rem;color:var(--muted);margin-top:.2rem;}
.loading{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--muted);font-size:.82rem;gap:.8rem;}
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--wheat);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.tag{display:inline-block;padding:.15rem .5rem;font-size:.6rem;background:rgba(200,152,106,.1);color:var(--wheat);border:1px solid rgba(200,152,106,.15);margin:.1rem;}
#toast{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;padding:.7rem 1.2rem;font-size:.8rem;border-radius:1px;transform:translateY(60px);opacity:0;transition:all .35s;pointer-events:none;background:var(--moss);border:1px solid rgba(74,140,74,.3);color:#7BC47B;}
#toast.err{background:rgba(140,48,48,.3);border-color:rgba(140,48,48,.4);color:#E07070;}
#toast.show{transform:translateY(0);opacity:1;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}

/* ── PAGO CARD CLIENTE ── */
.pago-metodos-card{background:linear-gradient(135deg,rgba(30,18,8,.98),rgba(46,28,10,.95));border:1px solid rgba(184,120,48,.3);padding:1.2rem;margin-bottom:.8rem;position:relative;overflow:hidden;}
.pago-metodos-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--gold),var(--clay));}
.pago-metodos-title{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;padding-left:.2rem;}
.pago-btn-bizum{display:flex;align-items:center;gap:.8rem;background:rgba(37,211,102,.08);border:1px solid rgba(37,211,102,.25);padding:.85rem 1rem;cursor:pointer;transition:all .2s;text-decoration:none;width:100%;margin-bottom:.6rem;}
.pago-btn-bizum:hover{background:rgba(37,211,102,.15);border-color:rgba(37,211,102,.45);}
.pago-btn-bizum .ico{font-size:1.4rem;flex-shrink:0;}
.pago-btn-bizum .info{flex:1;}
.pago-btn-bizum .lbl{font-size:.82rem;font-weight:600;color:#25D366;font-family:'Jost',sans-serif;}
.pago-btn-bizum .sub{font-size:.7rem;color:rgba(37,211,102,.6);font-family:'Jost',sans-serif;}
.pago-btn-whatsapp{display:flex;align-items:center;gap:.8rem;background:rgba(37,211,102,.05);border:1px solid rgba(37,211,102,.15);padding:.75rem 1rem;cursor:pointer;transition:all .2s;text-decoration:none;width:100%;}
.pago-btn-whatsapp:hover{background:rgba(37,211,102,.12);border-color:rgba(37,211,102,.35);}
.pago-btn-whatsapp .ico{font-size:1.3rem;flex-shrink:0;}
.pago-btn-whatsapp .lbl{font-size:.78rem;color:#7BC47B;font-family:'Jost',sans-serif;}
.pago-importe-badge{display:inline-block;background:rgba(196,122,32,.2);border:1px solid rgba(196,122,32,.35);color:#E09840;padding:.3rem .8rem;font-size:.88rem;font-weight:700;margin-bottom:.9rem;}

@media(max-width:768px){
  #sidebar{transform:translateX(-100%);z-index:200;}
  #sidebar.open{transform:translateX(0);}
  #main{margin-left:0;}
  .stats-row{grid-template-columns:1fr 1fr;}
  .two-col,.form-grid{grid-template-columns:1fr;}
  #menu-btn{display:flex!important;}
  #sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:199;}
  #sidebar-overlay.open{display:block;}
}
#menu-btn{display:none;background:transparent;border:none;color:var(--wheat);font-size:1.3rem;cursor:pointer;padding:.3rem .5rem;margin-right:.5rem;}
.hs-dia-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.2rem;}
@media(max-width:500px){.hs-dia-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:768px){
  html{font-size:16px;}body{background:#0F0805;}
  .card{background:#1E1208;border-color:rgba(200,152,106,.25);}
  .card-head{padding:.9rem 1.1rem;border-color:rgba(200,152,106,.2);}
  .card-body{padding:.9rem 1.1rem;}
  body,.panel,p,span,div{color:inherit;}
  .tbl td,.card-body{color:#F6EFE2!important;}
  .card-title{color:#EED8B0!important;font-size:.88rem!important;}
  .topbar-title{color:#EED8B0!important;font-size:1.05rem;}
  .tbl-sub,.tbl-sub *{color:#C8986A!important;}
  #sidebar{background:#140C04;}
  .sb-item{padding:.85rem 1.4rem;font-size:.86rem;color:#C8986A!important;}
  .sb-item.active{color:#EED8B0!important;}
  .sb-section{color:#A07040!important;font-size:.6rem;}
  .sb-logo span{color:#EED8B0!important;}
  .sb-user-name{color:#D4A870!important;}
  .topbar-sub{color:#A07040!important;}
  .field label{font-size:.72rem!important;color:#C8986A!important;letter-spacing:.1em;}
  .field input,.field select,.field textarea{font-size:.95rem;padding:.75rem 1rem;color:#F6EFE2!important;background:rgba(200,152,106,.08)!important;border-color:rgba(200,152,106,.3)!important;}
  .field input::placeholder{color:rgba(200,152,106,.4)!important;}
  .btn{padding:.65rem 1.4rem;font-size:.82rem;min-height:44px;}
  .btn-sm{padding:.5rem 1rem;font-size:.75rem;min-height:40px;}
  .btn-ghost{color:#D4A870!important;border-color:rgba(200,152,106,.35)!important;}
  .tbl th{color:#A07040!important;font-size:.7rem;background:rgba(200,152,106,.06);}
  .tbl td{font-size:.8rem;padding:.6rem .65rem;color:#F6EFE2!important;word-break:break-word;}
  .tbl{table-layout:fixed;width:100%;}
  .tbl tr:nth-child(even){background:rgba(200,152,106,.04);}
  .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .badge{font-size:.65rem!important;}
  .hg-celda-libre,.hg-celda-mia{min-height:64px!important;}
  .login-box{background:#1A1008!important;border-color:rgba(200,152,106,.2)!important;padding:2rem 1.4rem;}
  .login-logo h1{font-size:1.6rem;color:#EED8B0!important;}
  .login-logo p{color:#A07040!important;}
  .login-alt{color:#A07040!important;}
  .login-alt a{color:#D4A870!important;}
  #toast{font-size:.85rem;padding:.75rem 1.2rem;background:#2A1A08!important;color:#EED8B0!important;border-color:rgba(200,152,106,.3)!important;}
  #modal-overlay.open{align-items:flex-end;}
  .modal{border-radius:14px 14px 0 0!important;position:fixed!important;bottom:0!important;left:0!important;right:0!important;max-height:92vh!important;overflow-y:auto!important;max-width:100%!important;background:#1E1208!important;}
  .modal-head{color:#EED8B0!important;border-color:rgba(200,152,106,.2)!important;}
  .modal-body{padding:1rem 1.1rem;color:#F6EFE2!important;}
  .modal-footer{padding:.8rem 1.1rem;gap:.6rem;border-color:rgba(200,152,106,.15)!important;}
  .alert-info{color:#B8D4F0!important;background:rgba(74,100,160,.15)!important;}
  .alert-warn{color:#E0B870!important;background:rgba(196,122,32,.12)!important;}
  .tbl-sub{color:#A07040!important;}
  .pago-metodos-card{margin-left:-1.1rem;margin-right:-1.1rem;border-left:none;border-right:none;}
#dash-clases-hoy .tbl th:nth-child(3),
#dash-clases-hoy .tbl td:nth-child(3){display:none;}
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(184,120,48,.4)}50%{box-shadow:0 0 0 12px rgba(184,120,48,0)}}
@keyframes slideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
