:root{--bg:#f6f4f1;--card:#fff;--ink:#222;--mut:#6b6b6b;--pri:#a8321c;--pri2:#7d2312;--line:#e4dfd9;--ok:#1c7c3a;--warn:#b26a00;--err:#b3261e;--blue:#1f5fa8}
*{box-sizing:border-box}body{margin:0;font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--pri)}h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.15rem;margin:1.2rem 0 .5rem}
.top{position:fixed;top:0;left:0;right:0;height:52px;background:var(--pri);color:#fff;display:flex;align-items:center;gap:12px;padding:0 14px;z-index:20}
.top a{color:#fff}.brand{font-weight:700;text-decoration:none;font-size:1.1rem}.who{margin-left:auto;font-size:.85rem}
.burger{display:none;background:none;border:0;color:#fff;font-size:1.5rem}
.side{position:fixed;top:52px;left:0;bottom:0;width:210px;background:#fff;border-right:1px solid var(--line);padding:10px 0;overflow:auto;z-index:10}
.side a{display:block;padding:10px 18px;color:var(--ink);text-decoration:none}.side a.on,.side a:hover{background:#f3e3df;color:var(--pri2);font-weight:600}
main{padding:70px 16px 40px}main.with-nav{margin-left:210px}main.center{max-width:420px;margin:0 auto;padding-top:60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}
.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px}.kpi b{display:block;font-size:1.4rem}.kpi span{color:var(--mut);font-size:.85rem}
label{display:block;font-weight:600;font-size:.9rem;margin:8px 0 3px}
input,select,textarea{width:100%;padding:9px 10px;border:1px solid #cfc8c0;border-radius:8px;font:inherit;background:#fff}
input[type=checkbox],input[type=radio]{width:auto}textarea{min-height:70px}
.btn,button.btn{display:inline-block;background:var(--pri);color:#fff;border:0;border-radius:8px;padding:9px 16px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--pri2)}.btn.sec{background:#fff;color:var(--pri);border:1px solid var(--pri)}.btn.red{background:var(--err)}.btn.sm{padding:5px 10px;font-size:.85rem}
button.link{background:none;border:0;color:#fff;text-decoration:underline;cursor:pointer;font:inherit}
table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#faf7f4;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--mut)}td.n,th.n{text-align:right;white-space:nowrap}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.78rem;font-weight:600;background:#eee}
.badge.green{background:#dff3e4;color:var(--ok)}.badge.red{background:#fbe0de;color:var(--err)}.badge.amber{background:#fdecc8;color:var(--warn)}.badge.blue{background:#dce9f8;color:var(--blue)}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px}.flash.error{background:#fbe0de;color:var(--err)}.flash.ok{background:#dff3e4;color:var(--ok)}.flash.warn{background:#fdecc8;color:var(--warn)}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.bar form{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.bar input,.bar select{width:auto}
.mut{color:var(--mut)}.right{text-align:right}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:150px}
.tag-int{border:2px dashed var(--err);color:var(--err);padding:6px 10px;font-weight:700;text-align:center;margin:8px 0}
.dup{background:#fff7e0;border:1px solid #e8c766;padding:10px;border-radius:8px;margin:8px 0}
@media(max-width:800px){.burger{display:block}.side{transform:translateX(-100%);transition:.2s}body.menu .side{transform:none}main.with-nav{margin-left:0}.who{font-size:.72rem}th,td{padding:6px}}
/* Impresión de comprobantes */
.doc{background:#fff;max-width:820px;margin:0 auto;padding:24px;border:1px solid var(--line)}.doc img.logo{max-height:70px}
@media print{.top,.side,.noprint,.flash{display:none!important}main,main.with-nav{margin:0;padding:0}body{background:#fff}.doc{border:0;max-width:none;padding:0}}

.brand{display:inline-flex;align-items:center;gap:8px}.brand-logo{border-radius:50%;background:#fff}.login-logo{display:block;margin:0 auto 8px;max-width:60%;height:auto}.card h1{text-align:center}
