:root{--bg:#041116;--panel:#071a20;--panel2:#0a2229;--line:#12323a;--text:#e8f7f3;--muted:#88a8a2;--accent:#00e69a;--accent2:#00b877;--danger:#ef4444;--warning:#f59e0b}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at top right,#0d3a34 0,#041116 28%,#02080b 100%);color:var(--text)}a{text-decoration:none;color:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{width:250px;background:rgba(2,14,18,.96);border-right:1px solid var(--line);padding:22px 16px;position:fixed;inset:0 auto 0 0;z-index:20;display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;font-size:11px;letter-spacing:.12em;color:#b8cdc8}.brand span{font-size:24px;font-weight:800;color:var(--accent)}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#043d2c,#00e69a);font-weight:900;color:#022318;box-shadow:0 0 24px #00e69a33}.brand-mark.small{width:36px;height:36px;border-radius:12px}.nav{display:flex;flex-direction:column;gap:8px}.nav-link{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:12px;color:#9bb1ad;font-weight:600;font-size:14px}.nav-link:hover,.nav-link.active{background:#073529;color:#dffcf2;box-shadow:inset 0 0 0 1px #00e69a66}.sidebar-card{margin-top:auto;border:1px solid var(--line);background:linear-gradient(180deg,#082128,#06171c);padding:16px;border-radius:16px}.sidebar-card p{margin:10px 0 3px;font-weight:700}.sidebar-card small{color:var(--muted)}.main{margin-left:250px;width:calc(100% - 250px);padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.topbar h1{margin:0;font-size:24px}.muted{margin:4px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;align-items:center;gap:12px}.search,.filters input,.filters select{background:#071b21;border:1px solid var(--line);color:var(--text);border-radius:12px;padding:11px 13px;outline:none}.search{width:240px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#0d3c36;border:1px solid #1d5b50;font-weight:700}.menu-btn{display:none;background:#08252c;border:1px solid var(--line);color:white;border-radius:10px;padding:9px 11px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.card{background:linear-gradient(180deg,rgba(9,31,37,.97),rgba(5,22,27,.97));border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 40px #0005}.stat{padding:18px}.stat span{color:#a5b9b5;font-size:13px}.stat strong{display:block;font-size:26px;margin:8px 0;color:#f3fffb}.stat small{color:var(--accent)}.content-grid{display:grid;gap:16px;margin-bottom:16px}.two-thirds{grid-template-columns:2fr 1fr}.hero-card{padding:28px;min-height:245px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative}.hero-card:after{content:"";position:absolute;width:280px;height:280px;background:#00e69a17;border-radius:50%;right:-80px;top:-65px;filter:blur(8px)}.eyebrow{color:var(--accent);font-weight:800;letter-spacing:.08em}.hero-card h2{max-width:650px;font-size:30px;margin:10px 0}.hero-card p{color:var(--muted);max-width:620px}.hero-logo{font-size:52px;font-weight:900;color:var(--accent);transform:skew(-8deg);z-index:2;text-shadow:0 0 28px #00e69a66}.btn{display:inline-block;background:linear-gradient(135deg,var(--accent),#00c783);color:#032016;border:none;border-radius:11px;padding:11px 16px;font-weight:800;cursor:pointer}.chart-card,.action-card,.table-card{padding:18px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card-title h3{margin:0;font-size:16px}.card-title a{color:var(--accent);font-size:13px}.pill{font-size:11px;background:#0b3a30;color:var(--accent);padding:5px 8px;border-radius:999px}.bars{height:170px;display:flex;align-items:end;gap:12px;padding:18px 8px 0}.bars i{flex:1;background:linear-gradient(180deg,var(--accent),#0d8a63);border-radius:8px 8px 2px 2px;min-width:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}th,td{text-align:left;padding:13px;border-bottom:1px solid #12323a;font-size:13px}th{color:#9bb1ad;font-weight:600}.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:700}.status.ok{background:#0a3b2e;color:#54f0b4}.status.warn{background:#4a3310;color:#f9bf55}.quick{display:block;padding:13px;border:1px solid var(--line);border-radius:12px;margin-top:10px;background:#082128}.quick:hover{border-color:#00e69a77}.filters{display:flex;gap:10px;margin-bottom:12px}.filters input{flex:1}.icon-btn{border:1px solid var(--line);background:#0a252b;color:#bdeee0;border-radius:8px;padding:7px 9px}.icon-btn.danger{color:#ff8d8d}.danger{border-color:#5b2020}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.two-thirds{grid-template-columns:1fr}.hero-card{min-height:220px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%;padding:16px}.menu-btn{display:inline-block}.topbar{align-items:flex-start}.top-actions{margin-left:auto}.search{display:none}.stats-grid{grid-template-columns:1fr 1fr}.hero-card{padding:20px}.hero-card h2{font-size:23px}.hero-logo{font-size:34px}.filters{flex-direction:column}.card{border-radius:14px}}
@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.topbar h1{font-size:20px}.avatar{width:34px;height:34px}.hero-logo{display:none}.hero-card h2{font-size:21px}.main{padding:12px}}
.logout-link{display:block;margin-top:12px;color:#ff9b9b;font-size:12px;font-weight:700}.auth-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top right,#0d3a34 0,#041116 35%,#02080b 100%)}.auth-card{width:min(460px,100%);background:linear-gradient(180deg,rgba(9,31,37,.98),rgba(5,22,27,.98));border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 30px 80px #0008}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:26px}.auth-brand strong{display:block;font-size:22px;color:var(--accent)}.auth-brand span{display:block;color:var(--muted);font-size:12px}.auth-card h1{margin:0 0 8px}.auth-form{display:grid;gap:14px;margin-top:20px}.auth-form label{display:grid;gap:7px;color:#b7cbc7;font-size:13px;font-weight:700}.auth-form input{width:100%;background:#071b21;border:1px solid var(--line);color:var(--text);border-radius:12px;padding:12px 13px;outline:none}.auth-form input:focus{border-color:#00e69a88;box-shadow:0 0 0 3px #00e69a12}.auth-btn{width:100%;text-align:center;margin-top:6px}.alert{padding:11px 13px;border-radius:11px;margin:16px 0;font-size:13px}.alert.error{background:#411a1a;border:1px solid #7a2d2d;color:#ffb5b5}.alert.success{background:#0b3b2e;border:1px solid #176d52;color:#82f5c9}
.product-layout{grid-template-columns:minmax(0,2.2fr) minmax(300px,.8fr);align-items:start}.form-card{padding:18px;position:sticky;top:16px}.admin-form{display:grid;gap:13px}.admin-form label{display:grid;gap:7px;color:#b7cbc7;font-size:12px;font-weight:700}.admin-form input,.admin-form select,.admin-form textarea{width:100%;background:#071b21;border:1px solid var(--line);color:var(--text);border-radius:11px;padding:11px 12px;outline:none;font:inherit}.admin-form textarea{resize:vertical}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{border-color:#00e69a88;box-shadow:0 0 0 3px #00e69a12}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-submit{width:100%;margin-top:3px}.secondary-btn{background:#0a252b;color:#bdeee0;border:1px solid var(--line)}.status.off{background:#2a3134;color:#aab7b8}.actions-cell{white-space:nowrap}.inline-form{display:inline}.empty-state{text-align:center;color:var(--muted);padding:28px!important}.table-card small.muted{font-size:11px}.filters .btn{white-space:nowrap}
@media(max-width:1180px){.product-layout{grid-template-columns:1fr}.form-card{position:static}}
@media(max-width:560px){.form-grid-2{grid-template-columns:1fr}.filters .btn{width:100%}}

.contact-link{color:#c9f8e9}.contact-link:hover{color:var(--accent)}
.order-item{display:grid;grid-template-columns:minmax(0,1fr) 90px 38px;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:12px;background:#06191e}.order-item+.order-item{margin-top:8px}.order-item .icon-btn{height:40px}.order-total{display:flex;align-items:center;justify-content:space-between;padding:13px;border-radius:12px;background:#082128;border:1px solid var(--line)}.order-total span{color:var(--muted);font-size:12px}.order-total strong{color:var(--accent);font-size:20px}.mini-select{background:#071b21;border:1px solid var(--line);color:var(--text);border-radius:9px;padding:7px 8px}.form-submit:disabled{opacity:.5;cursor:not-allowed}@media(max-width:560px){.order-item{grid-template-columns:1fr 80px 38px}}
.purchase-item{grid-template-columns:minmax(0,1.3fr) 80px 110px 38px}.purchase-item label{min-width:0}@media(max-width:650px){.purchase-item{grid-template-columns:1fr 1fr}.purchase-item label:first-child{grid-column:1/-1}.purchase-item .remove-purchase{justify-self:end}}

.finance-filter{margin-bottom:16px}.finance-filter .filters{margin:0}.finance-bars{height:205px;display:flex;align-items:end;gap:12px;overflow-x:auto;padding:12px 4px 0}.finance-bar{min-width:58px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%}.finance-bar i{display:block;width:70%;max-width:42px;background:linear-gradient(180deg,var(--accent),#0d8a63);border-radius:8px 8px 3px 3px;min-height:8px}.finance-bar small{color:var(--muted);font-size:10px}.bar-value{font-size:9px;color:#bdeee0;white-space:nowrap}.money-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.money-row span{color:var(--muted)}.money-row.total{font-size:15px;border-bottom:0;padding-top:15px}.money-row.total strong{color:var(--accent)}.movement-list{display:grid;gap:8px}.movement-item{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#071b21}.movement-item div{display:grid;gap:3px}.movement-item small{color:var(--muted);font-size:10px}.movement-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:900}.movement-icon.in{background:#0a3b2e;color:#54f0b4}.movement-icon.out{background:#40241b;color:#ffb27c}.movement-item b{font-size:13px;color:#dffcf2}@media(max-width:760px){.finance-filter .filters input,.finance-filter .filters select{width:100%}}
.status.danger-status{background:#4a1717;color:#ff9f9f}.renew-btn{color:#70f5c0}.subscription-list{display:grid;gap:9px}.subscription-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:12px;background:#071b21}.subscription-row strong{display:block}.subscription-row small{color:var(--muted)}
.client-hero{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.client-hero h2{margin:8px 0 0;font-size:26px}.client-actions{display:flex;gap:10px;flex-wrap:wrap}.back-link{color:var(--accent);font-size:12px;font-weight:700}.renewal-focus{display:grid;gap:6px;padding:14px;margin-top:12px;border:1px solid var(--line);border-radius:14px;background:#071b21}.renewal-focus span,.renewal-focus small{color:var(--muted);font-size:11px}.renewal-focus strong{font-size:16px}.renewal-focus b{color:var(--accent);font-size:18px}.client-note{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px}.client-note p{margin:6px 0 0;color:var(--muted);font-size:12px}.whatsapp-quick{border-color:#0a6b4d}.subscription-row{grid-template-columns:1fr auto}.subscription-main{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;color:inherit}.wa-mini{align-self:center}.actions-cell .icon-btn{display:inline-flex;align-items:center;justify-content:center}
@media(max-width:650px){.client-hero{align-items:flex-start;flex-direction:column}.client-actions{width:100%}.client-actions .btn{flex:1;text-align:center}.subscription-main{grid-template-columns:1fr}.subscription-row{grid-template-columns:1fr auto}}

/* =========================================================
   ZAMB v29.15 - Acabado final PC
   Solo escritorio/tablet grande. No altera la capa móvil.
   ========================================================= */
@media (min-width:761px){

  /* Área principal más equilibrada en monitores grandes */
  .main{
    min-width:0;
  }

  /* Evita barras horizontales innecesarias cuando la tabla cabe */
  .table-card,
  .table-wrap{
    min-width:0;
    max-width:100%;
  }
  .table-wrap{
    overflow-x:auto;
    overflow-y:hidden;
  }

  /* Tarjetas y títulos con separación uniforme */
  .card-title{
    min-width:0;
  }
  .card-title > div{
    min-width:0;
  }

  /* Formularios/configuración: más aire y mejor lectura en PC */
  .product-layout{
    gap:20px;
  }
  .form-card{
    min-width:0;
  }
  .admin-form input,
  .admin-form select,
  .admin-form textarea{
    min-width:0;
  }

  /* Botones: evita cortes y mantiene alineación */
  .btn,
  .icon-btn{
    max-width:100%;
  }

  /* Filas financieras y de movimientos */
  .money-row > *,
  .movement-item > *{
    min-width:0;
  }

  /* Textos largos sin forzar ancho de tarjetas */
  td,
  .subscription-row,
  .renewal-focus,
  .client-note{
    overflow-wrap:anywhere;
  }
}

/* Monitores de escritorio medianos */
@media (min-width:761px) and (max-width:1180px){
  .main{
    padding:20px;
  }
  .content-grid{
    gap:14px;
  }
}

/* Pantallas grandes: aprovecha mejor el espacio sin estirar demasiado */
@media (min-width:1400px){
  .main{
    padding:26px 30px;
  }
  .stats-grid,
  .content-grid{
    gap:18px;
  }
}

/* =========================================================
   ZAMB v29.15.1 - Configuración PC
   Corrige el botón Guardar para que no flote sobre Vista previa.
   ========================================================= */
@media (min-width:761px){
  .settings-save{
    position:static!important;
    bottom:auto!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    z-index:auto!important;
    width:100%!important;
    margin:0!important;
  }

  .settings-save .btn{
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}

/* ZAMB v30.8.2 · Corrección global de texto en botones verdes */
.btn:not(.secondary-btn):not(.danger){
  color:#03251c !important;
  font-weight:800 !important;
  text-shadow:none !important;
}

.btn:not(.secondary-btn):not(.danger):hover{
  color:#021b15 !important;
}

/* Botones deshabilitados */
.btn:disabled,
.btn[disabled]{
  color:#315c52 !important;
  opacity:.65;
}
