:root{--bg:#E8EBE9;--panel:#F6F7F5;--ink:#1A2A30;--muted:#5B6B70;--line:#C9D0CD;--soft:#DCE1DE;--cob:#2D7A57;--cob-soft:#9CC8B2;--ero:#33689E;--ero-soft:#A5BFDA;--neg:#B4432E;--pos:#2D7A57;--mark:#F2B705;box-sizing:border-box;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141C1F;--panel:#1C262A;--ink:#E4EAE7;--muted:#97A7A6;--line:#33434A;--soft:#26333A;--cob:#5DBB8D;--cob-soft:#2F5C47;--ero:#6FA3D8;--ero-soft:#2C4865;--neg:#E2735C;--pos:#5DBB8D;--mark:#F2B705;color-scheme:dark}}:root[data-theme=dark]{--bg:#141C1F;--panel:#1C262A;--ink:#E4EAE7;--muted:#97A7A6;--line:#33434A;--soft:#26333A;--cob:#5DBB8D;--cob-soft:#2F5C47;--ero:#6FA3D8;--ero-soft:#2C4865;--neg:#E2735C;--pos:#5DBB8D;--mark:#F2B705;color-scheme:dark}html{scroll-padding-top:env(safe-area-inset-top,0)}*,:after,:before{box-sizing:inherit}body{margin:0;background:var(--bg);color:var(--ink);font-family:Archivo,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:15px;line-height:1.45;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button,input,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--mark);outline-offset:2px}.wrap{max-width:1320px;margin:0 auto;padding:22px clamp(14px,3vw,32px) 48px}header.top{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end;justify-content:space-between;padding-bottom:18px;border-bottom:2px solid var(--ink)}h1{font-stretch:72%;font-weight:800;font-size:clamp(30px,4.6vw,52px);line-height:.95;margin:0;letter-spacing:-.01em}.sub{color:var(--muted);margin:8px 0 0;font-size:15px}.sub strong{color:var(--ink);font-weight:600}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.btn{border:1.5px solid var(--ink);background:transparent;padding:9px 14px;border-radius:3px;cursor:pointer;font-weight:600;font-size:14px}.btn.primary{background:var(--ink);color:var(--bg)}.btn:hover{background:var(--soft)}.btn.primary:hover{opacity:.88;background:var(--ink)}select.btn{padding-right:28px}.totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:0;gap:0;margin:22px 0 8px;border-bottom:1px solid var(--line)}.tot{padding:6px 18px 16px 0}.tot+.tot{padding-left:18px;border-left:1px solid var(--line)}.tot .k{color:var(--muted);font-size:13.5px}.tot .v{font-stretch:80%;font-weight:700;font-size:clamp(22px,2.8vw,34px);line-height:1.1;margin-top:2px}.tot .d{font-size:13px;color:var(--muted)}.up{color:var(--pos)}.down{color:var(--neg)}.layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-gap:28px;gap:28px;margin-top:22px;align-items:start}.board h2,.detail h2,.tablebox h2{font-stretch:80%;font-weight:700;font-size:22px;margin:0}.boardhead{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px}.boardhead,.legend{display:flex;flex-wrap:wrap}.legend{gap:14px;font-size:13px;color:var(--muted)}.sw{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-1px;margin-right:5px}.sortbar{display:flex;flex-wrap:wrap;gap:4px;font-size:13px}.sortbar button{background:none;border:none;padding:4px 8px;border-radius:3px;cursor:pointer;color:var(--muted)}.sortbar button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.rows{list-style:none;margin:8px 0 0;padding:0}.row{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) 112px;grid-gap:12px;gap:12px;align-items:center;padding:9px 8px 9px 10px;border-top:1px solid var(--line);cursor:pointer;position:relative}.row:hover{background:var(--soft)}.row[aria-selected=true]{background:var(--panel)}.row[aria-selected=true]:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:4px;background:var(--mark)}.row .nm{font-weight:600;font-size:14px;line-height:1.2}.row .wk{color:var(--muted);font-size:12.5px;font-weight:400}.bars{display:grid;grid-gap:3px;gap:3px}.bar{height:10px;border-radius:0 2px 2px 0;min-width:1px}.bar.c{background:var(--cob)}.bar.e{background:var(--ero)}.row .res{text-align:right;font-weight:700;font-size:14.5px;line-height:1.15}.row .res small{display:block;font-weight:400;font-size:12px;color:var(--muted)}.detail{background:var(--panel);border:1px solid var(--line);padding:20px 22px;position:-webkit-sticky;position:sticky;top:calc(12px + env(safe-area-inset-top,0px))}.dhead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.detail h2{font-size:28px;line-height:1.05}.tag{display:inline-block;font-size:12px;padding:2px 7px;border-radius:2px;background:var(--soft);color:var(--muted);margin:6px 6px 0 0}.tag.warn{background:color-mix(in srgb,var(--mark) 25%,transparent);color:var(--ink)}.res-big{white-space:nowrap;font-stretch:78%;font-weight:800;font-size:38px;line-height:1;text-align:right}.res-big small{display:block;font-stretch:100%;font-size:12.5px;font-weight:400;color:var(--muted);margin-top:4px}table{border-collapse:collapse;width:100%}.kt{margin:16px 0 6px;font-size:14px}.kt td,.kt th{padding:7px 6px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.kt td:first-child,.kt th:first-child{text-align:left}.kt thead th{font-weight:600;color:var(--muted);font-size:12.5px;border-bottom:1.5px solid var(--ink)}.meter{margin:14px 0 4px}.meter .lab{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.meter .track{height:8px;background:var(--soft);margin-top:4px;position:relative}.meter .fill{position:absolute;left:0;top:0;bottom:0}.chartbox{margin-top:16px}.chartbox svg{width:100%;height:auto;display:block;overflow:visible}.tip{font-size:12.5px;color:var(--muted);min-height:38px;margin-top:6px}.tip b{color:var(--ink);font-weight:600}.small{font-size:13px;color:var(--muted)}.tablebox{margin-top:36px}.scroll{overflow-x:auto;border:1px solid var(--line);background:var(--panel);margin-top:10px}.ft{font-size:13.5px;min-width:980px}.ft td,.ft th{padding:7px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.ft td:first-child,.ft th:first-child{text-align:left;position:-webkit-sticky;position:sticky;left:0;background:var(--panel)}.ft thead th{font-weight:600;font-size:12.5px;color:var(--muted);border-bottom:1.5px solid var(--ink);vertical-align:bottom}.ft tfoot td{font-weight:700;border-top:1.5px solid var(--ink)}.notes{margin-top:28px;font-size:13.5px;color:var(--muted);max-width:78ch}.notes li{margin:4px 0}dialog{border:1px solid var(--line);background:var(--panel);color:var(--ink);max-width:min(560px,92vw);padding:22px 24px;border-radius:4px}dialog::-webkit-backdrop{background:rgba(10,20,25,.45)}dialog::backdrop{background:rgba(10,20,25,.45)}dialog h3{margin:0 0 8px;font-stretch:80%;font-size:24px}.drop{border:2px dashed var(--line);padding:26px 16px;text-align:center;margin:14px 0;cursor:pointer}.drop.over{border-color:var(--mark);background:var(--soft)}.msg{font-size:14px;min-height:20px}.msg.err{color:var(--neg)}.msg.ok{color:var(--pos)}.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:3px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}@media (max-width:980px){.layout{grid-template-columns:minmax(0,1fr)}.detail{position:static}}@media (max-width:640px){.kt td,.kt th{white-space:normal}.kt{font-size:13px}.detail{padding:16px 14px}.actions{width:100%}#corteSel{flex:1 1}.totals{grid-template-columns:repeat(2,minmax(0,1fr))}.tot:nth-child(3){border-left:none;padding-left:0}.row{grid-template-columns:minmax(0,1fr) 100px}.row .bars{grid-column:1/-1;grid-row:2}.res-big{font-size:30px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.appbar{background:var(--ink);color:var(--bg);padding-top:env(safe-area-inset-top,0)}.appbar .in{max-width:1320px;margin:0 auto;padding:10px clamp(14px,3vw,32px);display:flex;align-items:center;gap:18px;flex-wrap:wrap}.brand{font-stretch:75%;font-weight:800;font-size:19px;letter-spacing:.01em;margin-right:8px;color:inherit;text-decoration:none}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav a{color:inherit;text-decoration:none;padding:6px 10px;border-radius:3px;opacity:.8;font-size:14px}.nav a:hover{opacity:1;background:rgba(255,255,255,.08)}.nav a[aria-current=page]{opacity:1;box-shadow:inset 0 -3px 0 var(--mark)}.who{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13.5px}.who .rol{opacity:.7}.who button{background:none;border:1px solid rgba(255,255,255,.35);color:inherit;padding:5px 10px;border-radius:3px;cursor:pointer;font-size:13px}:root{--root-pad:0;padding-top:0}.login{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px}.login .card{width:min(400px,100%);background:var(--panel);padding:28px 26px;border:1px solid var(--line);border-top:6px solid var(--mark)}.login h1{font-size:34px}.field{display:block;margin-top:16px}.field span{display:block;font-size:13.5px;color:var(--muted);margin-bottom:5px}.field input,.field select{width:100%;padding:10px 11px;border:1.5px solid var(--line);background:var(--bg);border-radius:3px;font-size:15px}.field input:focus,.field select:focus{border-color:var(--ink);outline:none}.full{width:100%;padding:11px}.full,.panel{margin-top:20px}.panel{background:var(--panel);border:1px solid var(--line);padding:20px 22px}.panel h2{font-stretch:80%;font-weight:700;font-size:22px;margin:0 0 6px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:0 16px;gap:0 16px}.lt{font-size:14px;margin-top:8px}.lt td,.lt th{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.lt thead th{font-size:12.5px;color:var(--muted);font-weight:600;border-bottom:1.5px solid var(--ink)}.lt td.num,.lt th.num{text-align:right}.linkbtn{background:none;border:none;padding:0;color:var(--ero);cursor:pointer;text-decoration:underline;font-size:13.5px}.linkbtn.danger{color:var(--neg)}.empty{padding:40px 0;text-align:center;color:var(--muted)}a{color:var(--ero)}.btn{text-decoration:none;display:inline-block}