/* =========================================================
   ALQANZA ERP · Diseño 6.0 — Moderno / SaaS profesional
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --agcp-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --bg: #eef1f7;
  --surface: #ffffff;
  --surface-2: #f7f9fc;
  --border: #e3e8f0;
  --text: #101a2c;
  --muted: #667085;

  --primary: #0d9488;
  --primary-dark: #0b4d73;
  --primary-light: #14b8a6;
  --indigo: #4f46e5;

  --success: #16a34a;
  --success-bg: #dcfce7;
  --warning: #d97706;
  --warning-bg: #fef3c7;
  --danger: #dc2626;
  --danger-bg: #fee2e2;
  --info: #2563eb;
  --info-bg: #dbeafe;

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;

  --shadow-sm: 0 1px 2px rgba(16,24,40,.06);
  --shadow-md: 0 8px 24px rgba(16,24,40,.08);
  --shadow-lg: 0 24px 60px rgba(16,24,40,.16);

  --agcp: var(--text);
  --line: var(--border);
  --accent: var(--primary);
  --white: var(--surface);

  color-scheme: light;
}

.agcp-wrap.agcp-dark{
  --bg: #0a1120;
  --surface: #101a2e;
  --surface-2: #16233c;
  --border: #26344f;
  --text: #eaf1fb;
  --muted: #93a4c3;
  --success-bg: #0f2c1e;
  --warning-bg: #34240a;
  --danger-bg: #34131a;
  --info-bg: #0e2340;
  color-scheme: dark;
}

body:has(.agcp-wrap),body:has(.agcp-login-shell){background:var(--bg);}

*{box-sizing:border-box;}

/* ---------- Layout general (sidebar + contenido) ---------- */
.agcp-wrap{
  font-family: var(--agcp-font);
  color: var(--text);
  max-width: 1680px;
  margin: 20px auto;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  background: var(--surface);
  display: grid;
  grid-template-columns: 250px 1fr;
  grid-template-rows: auto 1fr;
  grid-template-areas: "header header" "nav content";
  transition: background .25s ease, color .25s ease;
}

.agcp-header{
  grid-area: header;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 20px 28px;
  background: linear-gradient(120deg, var(--primary-dark), #0f2942 70%, var(--indigo));
  color: #fff;
  position: relative;
  overflow: hidden;
}
.agcp-header::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(600px 200px at 85% -40%, rgba(20,184,166,.35), transparent 70%);
  pointer-events:none;
}
.agcp-header > div:first-child{display:flex;align-items:center;gap:12px;position:relative;z-index:1;}
.agcp-header .agcp-mark{
  width:40px;height:40px;border-radius:11px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--primary-light),var(--indigo));
  font-weight:800;font-size:18px;box-shadow:0 6px 16px rgba(0,0,0,.25);flex:0 0 auto;
}
.agcp-header h1{margin:0;font-size:19px;font-weight:700;letter-spacing:.2px;}
.agcp-header p{margin:2px 0 0;opacity:.75;font-size:12.5px;}
.agcp-header-actions{display:flex;align-items:center;gap:10px;position:relative;z-index:1;}

/* botones de utilidad inyectados por JS (tema / menú) */
.agcp-icon-btn{
  width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08);color:#fff;display:grid;place-items:center;
  cursor:pointer;font-size:16px;transition:background .15s ease, transform .15s ease;
}
.agcp-icon-btn:hover{background:rgba(255,255,255,.18);transform:translateY(-1px);}

.agcp-nav{
  grid-area: nav;
  display:flex; flex-direction:column; gap:2px;
  padding:16px 12px; background:var(--surface-2);
  border-right:1px solid var(--border);
  overflow-y:auto;
}
.agcp-nav a{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px; border-radius:10px;
  text-decoration:none; color:var(--muted); font-size:14px; font-weight:500;
  white-space:nowrap; transition:background .15s ease, color .15s ease, transform .1s ease;
}
.agcp-nav a .nav-icon{font-size:15px; width:20px; text-align:center; opacity:.9;}
.agcp-nav a:hover{background:var(--surface); color:var(--text);}
.agcp-nav a.active{
  background:linear-gradient(120deg, var(--primary), var(--primary-dark));
  color:#fff; box-shadow:0 4px 14px rgba(13,148,136,.35);
}

.agcp-content{grid-area:content; padding:26px 28px; background:var(--bg); min-height:70vh;}

/* ---------- Tarjetas / paneles ---------- */
.agcp-grid{display:grid; gap:18px;}
.agcp-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));}
.agcp-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));}
.agcp-grid.cards{grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:22px;}
.agcp-grid.cards.mini{grid-template-columns:repeat(2,minmax(130px,1fr));}

.card,.panel{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:20px; box-shadow:var(--shadow-sm);
  animation: agcp-fade-in .35s ease both;
}
.card{position:relative; overflow:hidden; padding-left:22px;}
.card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg,var(--primary),var(--indigo));
}
.agcp-grid.cards .card:nth-child(2)::before{background:linear-gradient(180deg,var(--warning),#f59e0b);}
.agcp-grid.cards .card:nth-child(3)::before{background:linear-gradient(180deg,var(--danger),#ef4444);}
.agcp-grid.cards .card:nth-child(4)::before{background:linear-gradient(180deg,var(--info),#3b82f6);}
.agcp-grid.cards .card:nth-child(5)::before{background:linear-gradient(180deg,#111827,#475569);}
.card span{display:block; color:var(--muted); font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.4px;}
.card strong{display:block; font-size:24px; margin-top:9px; font-weight:800; letter-spacing:-.2px;}

.panel h2{margin-top:0; font-size:17px; font-weight:700;}
.panel-head{display:flex; justify-content:space-between; gap:15px; align-items:center; margin-bottom:18px; flex-wrap:wrap;}
.agcp-content .panel + .panel{margin-top:18px;}
.agcp-content hr{border:0;border-top:1px solid var(--border);margin:24px 0;}
.agcp-content h3{margin:0 0 14px;}

@keyframes agcp-fade-in{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}
.agcp-grid.cards .card:nth-child(1){animation-delay:.02s;}
.agcp-grid.cards .card:nth-child(2){animation-delay:.07s;}
.agcp-grid.cards .card:nth-child(3){animation-delay:.12s;}
.agcp-grid.cards .card:nth-child(4){animation-delay:.17s;}
.agcp-grid.cards .card:nth-child(5){animation-delay:.22s;}

/* ---------- Botones ---------- */
.agcp-btn{
  display:inline-flex; align-items:center; gap:6px; border:0; border-radius:10px;
  background:linear-gradient(120deg,var(--primary),var(--primary-dark)); color:#fff!important;
  padding:11px 18px; text-decoration:none; cursor:pointer; font-weight:700; font-size:13.5px;
  box-shadow:0 6px 16px rgba(13,148,136,.28); transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}
.agcp-btn:hover{transform:translateY(-1px); box-shadow:0 10px 22px rgba(13,148,136,.36);}
.agcp-btn:active{transform:translateY(0);}
.agcp-btn.secondary{background:var(--surface-2); color:var(--text)!important; box-shadow:none; border:1px solid var(--border);}
.agcp-btn.secondary:hover{background:var(--border);}
.agcp-btn:disabled{opacity:.55; cursor:not-allowed; transform:none;}
.button-row{display:flex; gap:8px; flex-wrap:wrap;}

/* ---------- Formularios ---------- */
.agcp-ajax-form label{display:block; font-size:12.5px; font-weight:700; color:var(--muted); margin:0 0 14px;}
.agcp-ajax-form input,.agcp-ajax-form select,.agcp-ajax-form textarea{
  box-sizing:border-box; width:100%; margin-top:6px; border:1px solid var(--border); border-radius:9px;
  padding:10px 12px; background:var(--surface); color:var(--text); font-family:var(--agcp-font); font-size:14px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.agcp-ajax-form input:focus,.agcp-ajax-form select:focus,.agcp-ajax-form textarea:focus{
  outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(13,148,136,.15);
}
.agcp-ajax-form textarea{min-height:80px;}
.check{display:flex!important; align-items:center; gap:7px;}
.check input{width:auto!important; margin:0!important;}

/* ---------- Tablas ---------- */
.table-scroll{overflow:auto; border-radius:10px;}
table{width:100%; border-collapse:collapse;}
th,td{text-align:left; padding:12px 10px; border-bottom:1px solid var(--border); font-size:13.5px;}
th{color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.4px; position:sticky; top:0; background:var(--surface); z-index:1;}
tbody tr{transition:background .12s ease;}
tbody tr:hover{background:var(--surface-2);}
td small{display:block; color:var(--muted); margin-top:3px;}

.status{display:inline-block; padding:4px 10px; border-radius:99px; background:var(--info-bg); color:var(--info); font-size:11.5px; font-weight:700;}
.status.paid,.status.approved{background:var(--success-bg); color:var(--success);}
.status.cancelled,.status.rejected{background:var(--danger-bg); color:var(--danger);}
.warning-row{background:var(--warning-bg)!important;}

/* buscador inyectado por JS sobre tablas grandes */
.agcp-table-search{
  width:100%; max-width:320px; margin-bottom:12px; padding:9px 12px; border:1px solid var(--border);
  border-radius:9px; background:var(--surface); color:var(--text); font-family:var(--agcp-font); font-size:13.5px;
}
.agcp-table-search:focus{outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(13,148,136,.15);}

/* ---------- Líneas de documento ---------- */
.line-row{display:grid; grid-template-columns:1fr 100px 140px 100px 40px; gap:8px; align-items:center; margin-bottom:8px;}
.remove-line{border:0; background:var(--danger-bg); color:var(--danger); border-radius:8px; height:38px; font-size:20px; cursor:pointer;}
.notice{padding:13px 14px; background:var(--warning-bg); border-left:4px solid var(--warning); border-radius:0 8px 8px 0; font-size:13.5px;}
.notice.error{background:var(--danger-bg); border-left-color:var(--danger); color:var(--danger);}
.agcp-lines .line-row{grid-template-columns:180px 1fr 80px 120px 90px 90px 40px;}
.agcp-lines select,.agcp-lines input{width:100%; box-sizing:border-box; padding:9px; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:var(--text);}
.agcp-lines .check{font-size:12px;}
.agcp-line-head{display:grid; gap:8px; padding:7px 4px; font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; grid-template-columns:1.15fr 2fr .55fr .8fr .65fr .65fr 36px;}
.agcp-live-total{display:flex; justify-content:flex-end; gap:24px; flex-wrap:wrap; margin:14px 0; padding:14px; background:var(--surface-2); border-radius:10px;}
.agcp-live-total span:last-child{font-size:19px; font-weight:800; color:var(--primary);}

/* ---------- Documento / factura (vista propia) ---------- */
.agcp-document{background:var(--surface); padding:30px; border:1px solid var(--border); border-radius:var(--radius-md); margin-top:20px; box-shadow:var(--shadow-sm);}
.doc-head{display:flex; justify-content:space-between; gap:30px;}
.doc-head h1,.doc-head p{margin:0 0 5px;}
.doc-title{text-align:right;}
.client-box{margin:25px 0; padding:16px; background:var(--surface-2); border-radius:10px;}
.doc-lines th,.doc-lines td{padding:12px;}
.doc-totals{margin-left:auto; width:320px; margin-top:20px;}
.doc-totals p{display:flex; justify-content:space-between; border-bottom:1px solid var(--border); padding:8px 0; margin:0;}
.doc-totals .grand{font-size:20px; font-weight:800; color:var(--primary);}
.proforma-warning{text-align:center; background:var(--warning-bg); border:1px solid #fdba74; padding:10px; margin:18px 0; font-weight:700; border-radius:8px;}
.doc-notes{margin-top:20px;}
.agcp-status-actions{margin-top:20px; display:flex; gap:8px; flex-wrap:wrap; align-items:center;}

/* ---------- Plantilla original de documento (impresión/fiscal) ---------- */
.agcp-document.alqanza-original{max-width:900px; margin:20px auto; background:#fff; color:#111; padding:30px; border:1px solid #d5d5d5; font-family:Arial,sans-serif;}
.alq-doc-top{display:grid; grid-template-columns:170px 1fr 220px; gap:18px; align-items:start; margin-bottom:18px;}
.alq-brand img{max-width:160px; max-height:110px; object-fit:contain;}
.alq-brand{display:flex; flex-direction:column; align-items:center;}
.alq-brand-mark{width:78px; height:78px; background:linear-gradient(135deg,#0db2b4,#173b75); clip-path:polygon(50% 0,100% 100%,0 100%); display:grid; place-items:center; color:#fff; font-size:30px; font-weight:800;}
.alq-brand small{font-size:8px;}
.alq-client{font-size:13px; line-height:1.35;}
.alq-company{text-align:center; font-size:14px;}
.alq-company h2{font-size:24px; margin:8px 0 2px;}
.alq-lines{width:100%; border-collapse:collapse;}
.alq-lines th{background:#08a8db; color:#071017; text-align:center; font-weight:800;}
.alq-lines th,.alq-lines td{border:2px solid #111; padding:8px;}
.alq-lines th:nth-child(1){width:14%;}
.alq-lines th:nth-child(2){width:50%;}
.alq-lines th:nth-child(3){width:17%;}
.alq-lines th:nth-child(4){width:19%;}
.alq-lines tr.empty td{height:25px;}
.alq-bottom{display:grid; grid-template-columns:1fr 310px;}
.alq-conditions{border:2px solid #111; border-top:0; min-height:130px; padding:12px;}
.alq-totals{border-collapse:collapse; width:100%;}
.alq-totals th,.alq-totals td{border:2px solid #111; padding:5px; text-align:right;}
.alq-totals th{background:#d7e9c6;}
.alq-totals .discount th{background:#ffff00;}
.alq-totals .grand th,.alq-totals .grand td{background:#08a8db; color:#fff; font-size:16px;}
.alq-doc-footer{text-align:center; margin-top:28px; font-size:13px;}

/* ---------- Acceso / login ---------- */
.agcp-login{max-width:600px; margin:60px auto; padding:25px; border:1px solid var(--border); border-radius:12px; background:var(--surface);}
.agcp-login-shell{min-height:80vh; display:grid; place-items:center; padding:32px 16px; position:relative; overflow:hidden;}
.agcp-login-shell::before{
  content:""; position:absolute; inset:-20%;
  background:radial-gradient(600px 300px at 15% 10%, rgba(13,148,136,.16), transparent 60%),
             radial-gradient(500px 300px at 85% 90%, rgba(79,70,229,.14), transparent 60%);
  pointer-events:none;
}
.agcp-login-card{width:min(430px,100%); background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:36px; box-shadow:var(--shadow-lg); position:relative; z-index:1; animation:agcp-fade-in .4s ease both;}
.agcp-login-brand{text-align:center; margin-bottom:24px;}
.agcp-logo-mark{width:64px; height:64px; border-radius:18px; display:grid; place-items:center; margin:0 auto 12px; background:linear-gradient(135deg,#0f766e,#0b4d73); color:#fff; font-size:34px; font-weight:800; box-shadow:0 10px 24px rgba(13,148,136,.35);}
.agcp-login-brand h1{margin:0; font-size:26px;}
.agcp-login-brand p{margin:5px 0 0; color:var(--muted);}
.agcp-login-form label{display:block; margin:14px 0; font-weight:600; color:var(--text); font-size:13.5px;}
.agcp-login-form input[type=text],.agcp-login-form input[type=password]{width:100%; box-sizing:border-box; margin-top:7px; padding:13px 14px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); font-size:14px;}
.agcp-login-form input:focus{outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(13,148,136,.15);}
.agcp-login-button{width:100%; padding:13px; margin-top:8px;}
.agcp-forgot{display:block; text-align:center; margin-top:18px; color:var(--muted); text-decoration:none; font-size:13.5px;}
.agcp-forgot:hover{color:var(--primary);}
.agcp-alert{padding:12px 14px; border-radius:9px; margin:12px 0; font-size:13.5px;}
.agcp-alert.error{background:var(--danger-bg); color:var(--danger);}
.agcp-smart-login-button{display:inline-flex; align-items:center; gap:7px; background:linear-gradient(120deg,#14b8a6,#0d9488); color:#fff!important; padding:10px 18px; border-radius:999px; text-decoration:none!important; font-weight:700; line-height:1; box-shadow:0 8px 18px rgba(13,148,136,.3); transition:transform .15s ease, box-shadow .15s ease;}
.agcp-smart-login-button:hover{transform:translateY(-1px); box-shadow:0 10px 24px rgba(13,148,136,.4);}

/* ---------- CRM pipeline ---------- */
.crm-toolbar{display:flex; justify-content:space-between; align-items:center; gap:20px;}
.crm-toolbar h2{margin-bottom:4px;}
.crm-main{align-items:start;}
.crm-board{display:grid; grid-template-columns:repeat(8,minmax(260px,1fr)); gap:14px; overflow-x:auto; padding:4px 0 18px;}
.crm-column{background:var(--surface-2); border:1px solid var(--border); border-radius:14px; padding:10px; min-height:260px;}
.crm-column-head{display:flex; justify-content:space-between; align-items:center; padding:5px 4px 12px; color:var(--text); font-weight:700; font-size:13px;}
.crm-column-head span{background:var(--surface); border-radius:20px; padding:2px 9px; font-weight:700; box-shadow:var(--shadow-sm);}
.crm-card{background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:13px; margin-bottom:10px; box-shadow:var(--shadow-sm); transition:transform .12s ease, box-shadow .12s ease;}
.crm-card:hover{transform:translateY(-2px); box-shadow:var(--shadow-md);}
.crm-card-top{display:flex; justify-content:space-between; gap:8px;}
.crm-card p{font-size:13px; color:var(--muted); margin:8px 0;}
.crm-value{font-size:18px; font-weight:800; color:var(--primary); margin:8px 0;}
.crm-card small{display:block; color:var(--muted);}
.crm-card .followup{margin-top:9px; padding:7px; background:var(--info-bg); border-radius:8px; font-size:12px;}
.crm-card .button-row{justify-content:space-between; margin-top:10px; font-size:12px;}
.timeline{border-left:3px solid var(--primary); margin:18px 0 0 8px; padding-left:18px;}
.timeline-item{position:relative; padding:0 0 18px;}
.timeline-item:before{content:""; position:absolute; left:-25px; top:3px; width:11px; height:11px; border-radius:50%; background:var(--primary); border:3px solid var(--surface); box-shadow:0 0 0 1px var(--primary);}
.timeline-item span{display:block; color:var(--muted); font-size:12px; margin:2px 0 5px;}
.positive{color:var(--success); font-weight:700;}
.negative{color:var(--danger); font-weight:700;}

/* ---------- Toasts ---------- */
.agcp-toast-wrap{position:fixed; right:20px; bottom:20px; z-index:99999; display:flex; flex-direction:column; gap:10px; max-width:360px;}
.agcp-toast{
  background:var(--surface, #111827); color:var(--text,#fff); border:1px solid var(--border,#1f2937);
  border-left:4px solid var(--primary); border-radius:10px; padding:13px 16px; box-shadow:var(--shadow-lg,0 20px 40px rgba(0,0,0,.3));
  font-family:var(--agcp-font); font-size:13.5px; animation:agcp-toast-in .25s ease both;
}
.agcp-toast.success{border-left-color:var(--success,#16a34a);}
.agcp-toast.error{border-left-color:var(--danger,#dc2626);}
.agcp-toast.fade-out{animation:agcp-toast-out .2s ease both;}
@keyframes agcp-toast-in{from{opacity:0; transform:translateY(12px) scale(.98);} to{opacity:1; transform:translateY(0) scale(1);}}
@keyframes agcp-toast-out{to{opacity:0; transform:translateY(8px) scale(.97);}}

/* ---------- Modal de confirmación ---------- */
.agcp-modal-overlay{position:fixed; inset:0; background:rgba(8,12,20,.55); backdrop-filter:blur(2px); display:grid; place-items:center; z-index:99998; animation:agcp-fade-in .15s ease both;}
.agcp-modal{background:var(--surface,#fff); color:var(--text,#111); border-radius:14px; padding:24px; width:min(380px,90vw); box-shadow:var(--shadow-lg,0 20px 50px rgba(0,0,0,.3)); font-family:var(--agcp-font);}
.agcp-modal p{margin:0 0 20px; font-size:14.5px; line-height:1.5;}
.agcp-modal .button-row{justify-content:flex-end;}

/* ---------- Scrollbar ---------- */
.agcp-nav::-webkit-scrollbar,.table-scroll::-webkit-scrollbar,.crm-board::-webkit-scrollbar{height:8px; width:8px;}
.agcp-nav::-webkit-scrollbar-thumb,.table-scroll::-webkit-scrollbar-thumb,.crm-board::-webkit-scrollbar-thumb{background:var(--border); border-radius:8px;}

/* ---------- Responsive ---------- */
@media(max-width:1100px){
  .agcp-lines .line-row{grid-template-columns:1fr 1fr 80px 110px;}
  .agcp-lines .line-row>*:nth-child(n+5){grid-column:auto;}
}
@media(max-width:900px){
  .agcp-wrap{grid-template-columns:1fr; grid-template-areas:"header" "nav" "content";}
  .agcp-nav{flex-direction:row; overflow-x:auto; border-right:0; border-bottom:1px solid var(--border);}
  .agcp-grid.two,.agcp-grid.three,.agcp-grid.cards{grid-template-columns:1fr;}
  .line-row{grid-template-columns:1fr 80px 110px;}
  .line-row .check{grid-column:auto;}
  .panel-head,.doc-head{align-items:flex-start; flex-direction:column;}
  .doc-title{text-align:left;}
  .doc-totals{width:100%;}
  .alq-doc-top{grid-template-columns:1fr; text-align:center;}
  .alq-bottom{grid-template-columns:1fr;}
  .agcp-line-head{display:none;}
  .agcp-document.alqanza-original{padding:10px; overflow:auto;}
  .crm-toolbar{display:block;}
  .crm-toolbar .button-row{margin-top:12px;}
  .crm-board{grid-template-columns:repeat(8,250px);}
}

/* ---------- Impresión ---------- */
@media print{
  body{background:#fff!important;}
  .agcp-wrap,.panel{box-shadow:none;}
  .agcp-header,.agcp-nav,.agcp-status-actions,.panel-head,.agcp-btn,.agcp-toast-wrap,.agcp-table-search{display:none!important;}
  .agcp-content,.panel,.agcp-document{padding:0; border:0;}
  .agcp-document{margin:0;}
  .agcp-print{padding:20px;}
  .agcp-print .agcp-document{border:0;}
  body.agcp-print{background:#fff;}
  .agcp-document.alqanza-original{border:0; box-shadow:none; margin:0; max-width:none; padding:10mm;}
}
