:root{--ink:#071416;--ink2:#0c2427;--aqua:#60c5c2;--aqua2:#2aa7a3;--paper:#f6f8f7;--card:#fff;--text:#142326;--muted:#6d7d7e;--line:#dce6e5;--ok:#16865d;--warn:#d28a1b;--bad:#c74646;--purple:#7a5bc8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--paper)}*{box-sizing:border-box}body{margin:0;background:var(--paper)}a{color:var(--aqua2);text-decoration:none}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--ink);color:white;padding:20px 14px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;flex-direction:column;gap:5px;padding:8px 10px 20px;color:white;font-weight:800}.brand img{max-width:175px;height:40px;object-fit:contain;object-position:left center}.brand span{color:var(--aqua);font-size:14px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{color:#dbe9e8;padding:10px 12px;border-radius:9px;font-size:14px}.sidebar nav a:hover,.sidebar nav a.on{background:#10383b;color:white}.navtitle{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#749395;margin:16px 12px 5px}.main{min-width:0}.topbar{height:64px;background:var(--ink);color:white;display:flex;justify-content:flex-end;align-items:center;padding:0 24px;gap:16px;position:sticky;top:0;z-index:3}.companyselect select{background:#0e292c;color:white;border:1px solid #315154;margin:0;min-width:220px}.userbox{display:flex;gap:12px;align-items:center}.userbox a{color:var(--aqua)}.content{padding:24px;max-width:1500px;margin:0 auto}.card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:20px;margin:0 0 18px;box-shadow:0 5px 22px rgba(9,27,30,.04)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.statcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.statcard strong{display:block;font-size:30px;margin:6px 0}.statcard small{color:var(--muted)}h1{font-size:26px;margin:0 0 18px}h2{font-size:18px;margin:0 0 14px}h3{font-size:15px}.muted{color:var(--muted)}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{padding:11px 10px;border-bottom:1px solid #e8efee;text-align:left;font-size:13px;vertical-align:top}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#647576}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#e8f5f4;color:#166865;font-size:11px;font-weight:700}.badge.ok{background:#e7f6ee;color:var(--ok)}.badge.warn{background:#fff5de;color:#a66a0d}.badge.bad{background:#fdeaea;color:var(--bad)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:9px;background:var(--aqua2);color:white;border:0;cursor:pointer;font-weight:700;gap:6px}.btn:hover{filter:brightness(.95)}.btn.green{background:var(--ok)}.btn.red{background:var(--bad)}.btn.gray{background:#647576}.btn.light{background:#edf4f3;color:#174b4d}.btn.warn{background:#d39326}.actions{display:flex;gap:9px;flex-wrap:wrap}label{font-size:13px;font-weight:700;display:block;margin-top:8px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cfdcdb;border-radius:9px;background:white;margin:6px 0 12px;font:inherit}textarea{min-height:90px}.pdf{width:100%;height:70vh;border:1px solid var(--line);border-radius:12px;background:#eee}.invoicegrid{display:grid;grid-template-columns:280px minmax(0,1fr) 300px;gap:16px}.notice{padding:12px 14px;border-radius:10px;background:#edf8f7;border:1px solid #cde9e7;margin:12px 0}.notice.bad{background:#fff0f0;border-color:#f2cccc}.loginpage{min-height:100vh;background:var(--ink);display:grid;place-items:center;padding:24px}.loginbox{width:min(940px,100%);display:grid;grid-template-columns:1fr 1fr;background:white;border-radius:22px;overflow:hidden;box-shadow:0 25px 70px rgba(0,0,0,.25)}.loginbrand{background:linear-gradient(150deg,#071416,#0c282b);padding:50px;color:white;display:flex;flex-direction:column;justify-content:center}.loginbrand img{width:100%;max-width:330px}.loginbrand h2{color:var(--aqua);font-size:24px}.loginform{padding:50px}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;align-items:end}.kicker{color:var(--aqua2);font-weight:800;font-size:12px;text-transform:uppercase}.mobile-install{display:none}.statusdot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#aaa;margin-right:6px}.statusdot.ok{background:#25a36f}.statusdot.warn{background:#d89a30}.statusdot.bad{background:#d44b4b}@media(max-width:1000px){.app{grid-template-columns:82px 1fr}.sidebar{padding:12px 8px}.brand img{max-width:54px}.brand span,.navtitle{display:none}.sidebar nav a{font-size:0;padding:12px 8px}.sidebar nav a:after{content:'•';font-size:20px}.invoicegrid{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.app{display:block}.sidebar{height:auto;position:fixed;bottom:0;top:auto;left:0;right:0;z-index:10;padding:5px;display:flex}.brand,.navtitle,.sidebar nav a:nth-of-type(n+6){display:none}.sidebar nav{display:flex;flex-direction:row;width:100%;justify-content:space-around}.sidebar nav a{display:block;font-size:11px!important;padding:8px 6px}.sidebar nav a:after{display:none}.topbar{height:auto;padding:10px 12px;justify-content:space-between}.companyselect select{min-width:0}.content{padding:14px 12px 80px}.grid,.grid2,.filters{grid-template-columns:1fr}.loginbox{grid-template-columns:1fr}.loginbrand{padding:28px}.loginform{padding:28px}.table{min-width:650px}.pdf{height:55vh}.mobile-install{display:block}}

/* v4.2: contraste de marca en fondos oscuros */
.sidebar .brand img{filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));opacity:1}
