
:root{
  --bg:#09090f;--panel:#111119;--panel2:#171721;--border:#2b2b39;
  --text:#f8f8fc;--muted:#9c9cad;--accent:#9c5cff;--accent2:#6e36d9;
  --ok:#47d88b;--danger:#ff647c;--warning:#ffbd4a;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at top left,rgba(122,63,255,.15),transparent 28%),var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}
a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}
.container{width:min(1180px,calc(100% - 32px));margin:auto}
.topbar{position:sticky;top:0;z-index:30;background:rgba(9,9,15,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.05)}
.topbar-in{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#7938ef,#b25dff);font-size:22px;box-shadow:0 12px 30px rgba(133,69,255,.22)}
.brand strong{display:block;letter-spacing:.08em;font-size:14px}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.btn{border:0;border-radius:12px;min-height:43px;padding:0 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s ease}
.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff}.btn-soft{background:#1b1b27;color:#fff;border:1px solid var(--border)}.btn-danger{background:#2a161c;color:#ff9dad;border:1px solid #5f2936}
.card{background:linear-gradient(180deg,#15151f,#111119);border:1px solid var(--border);border-radius:20px}
.muted{color:var(--muted)}.hidden{display:none!important}
.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.badge-ok{background:#12331f;color:#82e9ae}.badge-off{background:#2a1a1d;color:#ff9cac}.badge-stock{background:#232334;color:#cfcfe5}
input,select,textarea{width:100%;background:#111119;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:#7250b8}
.notice{padding:14px 16px;border:1px solid #5b4520;background:#2a2112;color:#ffd98a;border-radius:14px;font-size:13px;line-height:1.5;margin:18px 0}
.error-box{padding:14px 16px;border:1px solid #612b38;background:#28151a;color:#ffadba;border-radius:14px;font-size:13px;line-height:1.5;margin:18px 0}
.loading{padding:45px;text-align:center;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,25px);opacity:0;pointer-events:none;background:#f6f6fa;color:#111;padding:11px 15px;border-radius:12px;font-size:12px;font-weight:800;z-index:90;transition:.2s}
.toast.show{opacity:1;transform:translate(-50%,0)}


.product-terms{margin:10px 0 2px;border-top:1px solid #272733;padding-top:9px}
.product-terms summary{cursor:pointer;font-size:11px;font-weight:800;color:#caaaff;list-style:none}
.product-terms summary::-webkit-details-marker{display:none}
.product-terms summary::before{content:"📌 ";font-size:11px}
.product-terms .terms-text{white-space:pre-wrap;font-size:11px;line-height:1.45;color:var(--muted);margin-top:7px}
.product-duration{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);margin-top:5px}


/* =========================================================
   V1.15.0 · PROVEEDORES / COSTOS
   ========================================================= */
.supplier-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.supplier-kpi{padding:16px;border:1px solid #223149;border-radius:15px;background:#0b111d;min-height:108px}
.supplier-kpi span{display:block;color:#71829d;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.supplier-kpi b{display:block;margin-top:8px;font-size:24px}.supplier-kpi small{display:block;margin-top:7px;color:#60708a;font-size:9px}
.supplier-kpi.danger{border-color:#4d2833}.supplier-kpi.warn{border-color:#4a3a1e}.supplier-kpi.info{border-color:#263c56}
.supplier-grid-top,.supplier-grid-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.supplier-panel{padding:16px}.supplier-panel h3{margin:0}.supplier-panel p{margin:4px 0 0;color:#65758f;font-size:10px}
.supplier-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.supplier-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.supplier-span2{grid-column:1/-1}.supplier-list{display:grid;gap:7px;margin-top:14px;max-height:280px;overflow:auto}.supplier-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid #1c2940;border-radius:11px;background:#0a101b}.supplier-list-item b{display:block;font-size:10px}.supplier-list-item span{display:block;margin-top:3px;color:#60708a;font-size:8px}.supplier-list-actions{display:flex;gap:5px}.supplier-list-actions button{border:1px solid #263650;background:#11192a;color:#9aabc5;border-radius:8px;padding:7px 9px;cursor:pointer;font-size:9px}
.supplier-verify-summary{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.supplier-verify-pill{padding:6px 8px;border:1px solid #263650;border-radius:999px;background:#0b1421;color:#91a1ba;font-size:9px;font-weight:800}.supplier-verify-pill.ok{border-color:#21483c;color:#77d8b4}.supplier-verify-pill.warn{border-color:#60491d;color:#f2c068}.supplier-verify-pill.danger{border-color:#5a2834;color:#ff9caf}.supplier-verify-results{display:grid;gap:5px;margin-top:10px;max-height:320px;overflow:auto}.supplier-verify-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:9px 10px;border:1px solid #1b2940;border-radius:10px;background:#09101b}.supplier-verify-row b{font-size:9px;word-break:break-all}.supplier-verify-row span{font-size:8px;color:#667690;margin-top:3px;display:block}.supplier-verify-status{align-self:center;font-size:8px;font-weight:900;padding:5px 7px;border-radius:8px;background:#121b2c;color:#8ca0bd}.supplier-verify-status.ok{color:#74d6b1;background:#0d221d}.supplier-verify-status.missing{color:#ff92a5;background:#271219}.supplier-verify-status.other_supplier,.supplier-verify-status.unassigned{color:#f2c068;background:#281f10}
.supplier-accounts-panel{margin-bottom:16px}.supplier-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 220px 220px;gap:9px;margin-bottom:12px}.supplier-table{min-width:1180px}.supplier-table td{vertical-align:middle}.supplier-account-main b{display:block;font-size:10px}.supplier-account-main span{display:block;margin-top:3px;font-size:8px;color:#60708a}.supplier-due.overdue{color:#ff8499}.supplier-due.soon{color:#f3bd64}.supplier-due.ok{color:#7bd9b7}.supplier-usage{min-width:88px}.supplier-usage-bar{height:5px;background:#172238;border-radius:999px;overflow:hidden;margin-top:5px}.supplier-usage-bar i{display:block;height:100%;background:#6c62ff}.supplier-priority-list{display:grid;gap:7px;max-height:380px;overflow:auto}.supplier-priority-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:11px;border:1px solid #1b2940;border-radius:11px;background:#09101b}.supplier-priority-item b{display:block;font-size:10px}.supplier-priority-item span{display:block;margin-top:4px;color:#667690;font-size:8px}.supplier-priority-item strong{font-size:9px;color:#f0c06a;align-self:center}.supplier-head-actions{display:flex;gap:7px}.supplier-action-group{display:flex;gap:5px;flex-wrap:wrap}.supplier-action-group button{border:1px solid #263650;background:#101827;color:#9cafc8;border-radius:7px;padding:6px 7px;font-size:8px;cursor:pointer}.supplier-action-group button.primary{color:#dfe6ff;border-color:#3d4f9a;background:#20295a}.supplier-action-group button.danger{color:#ff9caf;border-color:#5a2834;background:#251118}
@media(max-width:1050px){.supplier-kpis{grid-template-columns:repeat(2,1fr)}.supplier-grid-top,.supplier-grid-bottom{grid-template-columns:1fr}.supplier-toolbar{grid-template-columns:1fr 1fr}.supplier-toolbar input{grid-column:1/-1}}
@media(max-width:650px){.supplier-kpis{grid-template-columns:1fr}.supplier-form-grid,.supplier-toolbar{grid-template-columns:1fr}.supplier-span2,.supplier-toolbar input{grid-column:auto}.supplier-panel{padding:12px}}
