:root{--yellow:#f6c900;--ink:#171713;--paper:#f3f1e9;--white:#fff;--muted:#77766f;--line:#dedbd0;--green:#17895a;--red:#c84736}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.brand-panel{background:var(--yellow);padding:9vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.brand-panel:after{content:'B';font:42vw/1 'Archivo Black';position:absolute;right:-8vw;bottom:-16vw;color:#000;opacity:.055}.eyebrow,header small,.panel>small,.panel-head small{font-weight:800;letter-spacing:.16em;font-size:.7rem}.brand-panel h1{font:clamp(4rem,11vw,9rem)/.77 'Archivo Black';letter-spacing:-.07em;margin:1rem 0;z-index:1}.brand-panel h1 i{font-style:normal;color:white;-webkit-text-stroke:2px var(--ink)}.brand-panel p{font-size:1.2rem;font-weight:700}.auth-card{background:white;align-self:center;justify-self:center;width:min(420px,85%);padding:3rem;border:1px solid var(--line);box-shadow:12px 12px 0 var(--ink)}.mini-logo{display:grid;place-items:center;width:54px;height:54px;background:var(--ink);color:var(--yellow);font:1.3rem 'Archivo Black';transform:rotate(-3deg)}.auth-card h2{font:2rem 'Archivo Black';margin:1.5rem 0 .4rem}.auth-card p{color:var(--muted);margin:0 0 1.8rem}label{display:grid;gap:.45rem;font-size:.82rem;font-weight:700;margin:1rem 0}input,select{width:100%;padding:.9rem;border:1px solid var(--line);background:white;border-radius:4px;outline:none}input:focus,select:focus{border-color:var(--ink);box-shadow:0 0 0 2px #f6c90055}.primary{border:0;background:var(--yellow);color:var(--ink);padding:1rem 1.4rem;font-weight:800;border-radius:4px;box-shadow:4px 4px 0 var(--ink)}.auth-card .primary{width:100%;margin-top:1rem}#app{min-height:100vh;display:grid;grid-template-columns:230px 1fr}aside{background:var(--ink);color:white;padding:2rem 1.2rem;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:230px}.side-brand{font:1.7rem/.85 'Archivo Black';padding:.5rem .6rem 2.5rem}.side-brand span{display:block;color:var(--yellow)}nav{display:grid;gap:.4rem}.nav{border:0;background:transparent;color:#a9a99f;text-align:left;padding:.9rem;border-radius:5px;font-weight:600}.nav span{margin-left:.5rem}.nav.active,.nav:hover{background:#2b2b26;color:white}.profile{margin-top:auto;border-top:1px solid #3a3a34;padding-top:1rem;display:grid;grid-template-columns:38px 1fr 30px;align-items:center;gap:.6rem}.profile .avatar{height:38px;background:var(--yellow);color:var(--ink);display:grid;place-items:center;font-weight:900;border-radius:50%}.profile strong,.profile small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile small{color:#999;font-size:.7rem;margin-top:.2rem}.profile button{background:none;border:0;color:#aaa;font-size:1.2rem}main{grid-column:2;padding:2.2rem 3vw 5rem;min-width:0}header{display:flex;justify-content:space-between;align-items:end;margin-bottom:2rem}header h2{font:2.2rem 'Archivo Black';margin:.3rem 0}header select{width:auto;min-width:190px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.kpi{background:white;padding:1.35rem;border:1px solid var(--line);border-top:4px solid var(--ink)}.kpi.accent{border-top-color:var(--yellow)}.kpi.dark{background:var(--ink);color:white;border-color:var(--ink)}.kpi small{font-size:.67rem;letter-spacing:.12em;font-weight:800;color:var(--muted)}.kpi strong{display:block;font:1.65rem 'Archivo Black';margin:.7rem 0}.kpi span{font-size:.75rem;color:var(--muted)}.kpi.dark span{color:var(--yellow)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}.panel{background:white;border:1px solid var(--line);padding:1.5rem;min-width:0}.panel.wide{grid-column:span 2}.panel h3{margin:.35rem 0 1.2rem;font-size:1.08rem}.panel canvas{max-height:280px}.panel-head{display:flex;justify-content:space-between}.legend{display:grid;gap:.6rem;margin-top:1rem}.legend-row{display:grid;grid-template-columns:10px 1fr auto;gap:.5rem;font-size:.75rem;align-items:center}.dot{width:8px;height:8px;border-radius:50%}.operation{display:grid;gap:1.3rem}.operation div{border-bottom:1px solid var(--line);padding-bottom:1rem}.operation span{font:1.6rem 'Archivo Black';display:block}.operation small{color:var(--muted)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.82rem}th,td{text-align:left;padding:.75rem;border-bottom:1px solid var(--line)}th{font-size:.67rem;letter-spacing:.08em;color:var(--muted)}td:nth-child(3),td:nth-child(4),th:nth-child(3),th:nth-child(4){text-align:right}.empty{text-align:center;background:white;padding:5rem;border:1px dashed #bbb}.empty div{font-size:3rem}.form-panel{max-width:760px}.form-panel>p{color:var(--muted)}.drop{border:2px dashed #bbb;padding:2.5rem;text-align:center;background:#faf9f5}.drop span{display:block;color:var(--muted);font-weight:400;margin-top:.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}#importPreview{margin:1rem 0;color:var(--green);font-size:.85rem}#userForm{max-width:420px}.user-row{display:grid;grid-template-columns:1fr auto;gap:1rem;border-bottom:1px solid var(--line);padding:1rem 0}.user-row small{display:block;color:var(--muted);margin-top:.3rem}.badge{font-size:.67rem;background:#eee;padding:.35rem .5rem;height:max-content;border-radius:2px;font-weight:800}#toast{position:fixed;right:1rem;top:1rem;background:var(--ink);color:white;padding:1rem 1.2rem;z-index:10;transform:translateY(-150%);transition:.25s;box-shadow:4px 4px 0 var(--yellow)}#toast.show{transform:none}#toast.error{box-shadow:4px 4px 0 var(--red)}@media(max-width:1000px){.kpis{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr 1fr}.panel.wide{grid-column:span 2}}@media(max-width:700px){.auth-shell{grid-template-columns:1fr}.brand-panel{display:none}#app{display:block!important}aside{position:sticky;top:0;width:100%;height:auto;z-index:5;padding:.7rem;flex-direction:row;align-items:center}.side-brand{font-size:1rem;padding:0 1rem 0 0}.side-brand span{display:inline;margin-left:.25rem}nav{display:flex}.nav{padding:.7rem}.nav span{display:none}.profile{margin:0 0 0 auto;border:0;padding:0}.profile>div:nth-child(2){display:none}main{padding:1.5rem 1rem}.kpis,.grid,.form-grid{grid-template-columns:1fr}.panel.wide{grid-column:auto}header{align-items:start}header h2{font-size:1.6rem}header select{min-width:140px;width:140px}.auth-card{margin:2rem auto}}
