:root{--ps-bg:#f3f5f3;--ps-surface:#fff;--ps-surface-2:#eaeeea;--ps-ink:#152420;--ps-ink-soft:#3e4c47;--ps-muted:#69766f;--ps-line:#d6ded8;--ps-primary:#0b4f4a;--ps-primary-dark:#083a36;--ps-primary-ink:#f3f5f3;--ps-accent:#c1481e;--ps-accent-bg-soft:#f7e6dc;--ps-good:#1f6e4a;--ps-good-bg:#e4f1e8;--ps-warn:#8a5a00;--ps-warn-bg:#fbf0d9;--ps-crit:#9a3b2e;--ps-crit-bg:#f7e4e0}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ps-bg);color:var(--ps-ink);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}a{color:inherit}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--ps-primary);width:240px;color:var(--ps-primary-ink);flex-direction:column;flex-shrink:0;padding:20px 0;display:flex}.sidebar__brand{border-bottom:1px solid #ffffff26;margin-bottom:12px;padding:0 20px 20px;font-size:18px;font-weight:700}.sidebar__nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar__link{color:#f3f5f3d9;border-left:3px solid #0000;padding:11px 20px;font-size:14px;text-decoration:none}.sidebar__link:hover{background:#ffffff0f}.sidebar__link--active{border-left-color:var(--ps-accent);color:#fff;background:#ffffff1a;font-weight:600}.sidebar__footer{border-top:1px solid #ffffff26;padding:12px 20px 0;font-size:12.5px}.sidebar__logout{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:6px;width:100%;margin-top:8px;padding:7px 10px;font-size:12.5px}.sidebar__logout:hover{background:#ffffff1a}.main{flex:1;max-width:1100px;padding:28px 32px}.page-title{color:var(--ps-ink);margin:0 0 4px;font-size:22px;font-weight:700}.page-subtitle{color:var(--ps-muted);margin:0 0 22px;font-size:13.5px}.card{background:var(--ps-surface);border:1px solid var(--ps-line);border-radius:12px;margin-bottom:16px;padding:18px 20px}.card h3{color:var(--ps-primary);margin:0 0 12px;font-size:15px}.field{margin-bottom:14px}.field label{color:var(--ps-ink-soft);margin-bottom:5px;font-size:12.5px;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--ps-line);background:var(--ps-surface-2);width:100%;color:var(--ps-ink);border-radius:8px;padding:9px 11px}.row{gap:12px;display:flex}.row>.field{flex:1}.btn{cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:13.5px;font-weight:600;display:inline-block}.btn-primary{background:var(--ps-primary);color:#fff}.btn-primary:hover{background:var(--ps-primary-dark)}.btn-outline{border:1px solid var(--ps-primary);color:var(--ps-primary);background:0 0}.btn-text{color:var(--ps-primary);background:0 0;padding:6px 4px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 10px;font-size:12.5px}table{border-collapse:collapse;width:100%;font-size:13.5px}th,td{text-align:left;border-bottom:1px solid var(--ps-line);padding:9px 10px}th{color:var(--ps-muted);text-transform:uppercase;letter-spacing:.02em;font-size:12px;font-weight:600}.pill{text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.pill-neutral{background:var(--ps-surface-2);color:var(--ps-ink-soft)}.pill-good{background:var(--ps-good-bg);color:var(--ps-good)}.pill-warn{background:var(--ps-warn-bg);color:var(--ps-warn)}.pill-crit{background:var(--ps-crit-bg);color:var(--ps-crit)}.pill-accent{background:var(--ps-accent-bg-soft);color:var(--ps-accent)}.error-box{background:var(--ps-crit-bg);color:var(--ps-crit);border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:13px}.info-box{background:var(--ps-accent-bg-soft);color:var(--ps-accent);border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:13px}.muted{color:var(--ps-muted);font-size:13px}.login-shell{background:var(--ps-primary);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--ps-surface);border-radius:14px;width:340px;padding:36px 34px}.login-card h1{color:var(--ps-primary);margin:0 0 4px;font-size:19px}.login-card p{color:var(--ps-muted);margin:0 0 20px;font-size:13px}.monospace{font-family:Consolas,monospace}.factura{color:#152420;border:1px solid var(--ps-line);background:#fff;border-radius:12px;max-width:820px;margin:0 auto;padding:32px}.factura__encabezado{text-align:center;border-bottom:2px solid #0b4f4a;margin-bottom:16px;padding-bottom:12px;position:relative}.factura__encabezado h1{color:#0b4f4a;margin:0;font-size:26px}.factura__encabezado p{letter-spacing:.5px;margin:2px 0 0;font-size:14px}.factura__meta{justify-content:space-between;gap:16px;margin-bottom:16px;font-size:13.5px;display:flex}.factura__tabla,.factura__totales{border-collapse:collapse;width:100%;font-size:13px}.factura__tabla th,.factura__tabla td{text-align:left;border-bottom:1px solid #d9e0dc;padding:6px 8px}.factura__tabla th{background:#eaeeea}.factura__totales{width:60%;margin:16px 0 0 auto}.factura__totales td{padding:5px 8px}.factura__totales td:last-child{text-align:right}.factura__total td{border-top:2px solid #0b4f4a;font-size:15px;font-weight:700}.factura__pago{background:#f3f5f3;border-radius:8px;margin-top:24px;padding:12px 14px;font-size:13px}.factura__pago p{margin:6px 0 0}.factura__logo{object-fit:contain;width:72px;height:72px;position:absolute;top:-8px;right:0}.factura__gracias{color:#0b4f4a;text-align:center;margin-top:18px;font-size:13px;font-style:italic}.factura__nota{color:#5b6b65;text-align:center;margin-top:14px;font-size:11px}@media print{.sidebar,.no-print{display:none!important}.app-shell{display:block!important}main,.main{margin:0!important;padding:0!important}.factura{border:none;max-width:none;padding:0}}
