:root{--bg:#070707;--panel:#111;--border:rgba(255,255,255,.11);--text:#f5f5f5;--muted:#aaa;--red:#e10600;--red2:#960000;--green:#21c45d;--yellow:#f5bd2e;--shadow:0 22px 60px rgba(0,0,0,.35)}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:radial-gradient(circle at top right,rgba(225,6,0,.18),transparent 30%),var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.side{background:rgba(10,10,10,.95);border-right:1px solid var(--border);padding:22px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:grid;gap:10px;margin-bottom:24px;font-weight:900}.brand img{max-width:210px}.nav{display:grid;gap:8px}.nav a{padding:13px 14px;border-radius:14px;color:var(--muted);border:1px solid transparent}.nav a:hover,.nav a.active{color:#fff;background:rgba(225,6,0,.13);border-color:rgba(225,6,0,.32)}.sidefoot{margin-top:auto;color:var(--muted);display:grid;gap:10px}.main{padding:32px;min-width:0}.top{display:flex;justify-content:space-between;gap:18px;margin-bottom:28px;align-items:center}.eyebrow{color:var(--red);font-weight:900;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;margin:0 0 8px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.05em;margin:0}.actions,.top-actions{display:flex;gap:10px;flex-wrap:wrap}.btn,button.btn{border:0;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;border-radius:999px;font-weight:800;cursor:pointer}.primary{background:linear-gradient(135deg,var(--red),var(--red2));color:#fff}.ghost{background:rgba(255,255,255,.07);border:1px solid var(--border);color:#fff}.grid{display:grid;gap:18px}.cards{grid-template-columns:repeat(4,1fr)}.card,.panel{background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.035));border:1px solid var(--border);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.card small{color:var(--muted);display:block;margin-bottom:8px}.card strong{font-size:2rem}.panel-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:16px;align-items:center}.table{overflow:auto;border-radius:18px;border:1px solid var(--border)}table{width:100%;border-collapse:collapse;min-width:780px}th,td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--border)}th{background:rgba(255,255,255,.06);font-size:.84rem;text-transform:uppercase;letter-spacing:.08em}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.full{grid-column:1/-1}label{display:grid;gap:7px;color:var(--muted);font-weight:800}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:14px;padding:12px 13px;background:rgba(0,0,0,.28);color:#fff;font:inherit}textarea{min-height:110px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.78rem;font-weight:900;background:rgba(255,255,255,.08)}.badge-pagada,.badge-aprobada,.badge-activo{background:rgba(33,196,93,.16);color:#a9ffc1}.badge-pendiente,.badge-enviada,.badge-prospecto,.badge-draft{background:rgba(245,189,46,.16);color:#ffe19a}.badge-vencida,.badge-rechazada,.badge-inactivo{background:rgba(225,6,0,.16);color:#ffc6c6}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);background:rgba(17,17,17,.94);border:1px solid var(--border);border-radius:28px;padding:30px;box-shadow:var(--shadow)}.login-card img{max-width:250px;display:block;margin:0 auto 18px}.error{padding:13px 15px;border-radius:14px;background:rgba(225,6,0,.12);border:1px solid rgba(225,6,0,.28);color:#ffd1d1;margin-bottom:16px}.item-row{display:grid;grid-template-columns:1.5fr .7fr .7fr 42px;gap:10px;margin-bottom:10px}.remove{border-radius:12px;border:1px solid var(--border);background:rgba(225,6,0,.12);color:#fff}.doc{background:#fff;color:#111;border-radius:20px;padding:38px;max-width:900px;margin:0 auto}.doc .head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid #111;padding-bottom:18px;margin-bottom:28px}.doc img{max-width:220px}.doc table{min-width:auto;color:#111;border:1px solid #ddd}.doc th{background:#111;color:#fff}.doc td{color:#111;border-bottom:1px solid #ddd}.total{text-align:right;font-size:1.3rem;font-weight:900;margin-top:18px}@media print{.side,.top,.no-print{display:none!important}.app{display:block}.main{padding:0}body{background:#fff}.doc{box-shadow:none;border-radius:0;max-width:none}}@media(max-width:980px){.app{grid-template-columns:1fr}.side{position:relative;height:auto}.cards{grid-template-columns:repeat(2,1fr)}.top{align-items:flex-start;flex-direction:column}}@media(max-width:640px){.main{padding:18px}.cards,.form{grid-template-columns:1fr}.item-row{grid-template-columns:1fr}}
/* Login claro para que el logo negro y rojo tenga contraste */
body.login-page {
    background: #d9d9d9 !important;
}

.login-card {
    background: #ffffff !important;
    background-image: none !important;
    color: #111111 !important;
    border: 1px solid #b5b5b5 !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.30) !important;
}

.login-card h1 {
    color: #111111 !important;
}

.login-card p {
    color: #444444 !important;
}

.login-card label {
    color: #222222 !important;
}

.login-card input {
    background: #f2f2f2 !important;
    color: #111111 !important;
    border: 1px solid #999999 !important;
}

.login-card input::placeholder {
    color: #666666 !important;
}