:root{--paper:oklch(.962 .014 84);--paper-deep:oklch(.93 .02 80);--paper-card:oklch(.985 .008 88);--ink:oklch(.32 .024 62);--ink-soft:oklch(.49 .028 58);--ink-faint:oklch(.32 .024 62 / .13);--bdr:oklch(.56 .034 56);--line:oklch(.32 .024 62 / .2);--line-soft:oklch(.32 .024 62 / .09);--rust:oklch(.555 .155 42);--rust-deep:oklch(.47 .15 40);--ochre:oklch(.7 .12 76);--pencil:oklch(.56 .17 33);--display:"Archivo","Arial Narrow",sans-serif;--serif:"Spectral",Georgia,serif;--mono:"IBM Plex Mono","Courier New",monospace;--hand:"Caveat","Comic Sans MS",cursive;--grid:22px;--frame:clamp(10px,2vw,24px);--rail:clamp(0px,3.5vw,42px);--maxw:1180px;--ease:cubic-bezier(.22,.61,.36,1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--serif);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}::selection{background:var(--rust);color:var(--paper)}canvas{display:block}.frame{position:fixed;inset:0;z-index:40;pointer-events:none}.frame .edge{position:absolute;background:var(--bdr)}.frame .edge.t{top:var(--frame);left:var(--frame);right:calc(var(--frame) + var(--rail));height:1.5px}.frame .edge.b{bottom:var(--frame);left:var(--frame);right:calc(var(--frame) + var(--rail));height:1.5px}.frame .edge.l{left:var(--frame);top:var(--frame);bottom:var(--frame);width:1.5px}.frame .edge.r{right:calc(var(--frame) + var(--rail));top:var(--frame);bottom:var(--frame);width:1.5px}.crop{position:absolute;width:10px;height:10px}.crop:before,.crop:after{content:"";position:absolute;background:var(--bdr)}.crop:before{width:10px;height:1.5px;top:0}.crop:after{height:10px;width:1.5px;left:0}.crop.tl{top:calc(var(--frame) - 10px);left:calc(var(--frame) - 10px)}.crop.tr{top:calc(var(--frame) - 10px);right:calc(var(--frame) + var(--rail));transform:scaleX(-1)}.crop.bl{bottom:var(--frame);left:calc(var(--frame) - 10px);transform:scaleY(-1)}.crop.br{bottom:var(--frame);right:calc(var(--frame) + var(--rail));transform:scale(-1)}.reg{position:absolute;top:calc(var(--frame) - 8px);left:50%;transform:translate(-50%);width:16px;height:16px;border:1.5px solid var(--bdr);border-radius:50%;background:var(--paper)}.reg:before,.reg:after{content:"";position:absolute;background:var(--bdr)}.reg:before{left:50%;top:-4px;bottom:-4px;width:1.5px;transform:translate(-50%)}.reg:after{top:50%;left:-4px;right:-4px;height:1.5px;transform:translateY(-50%)}.ruler{position:fixed;top:0;right:0;bottom:0;width:var(--rail);z-index:41;border-left:1.5px solid var(--bdr);background:var(--paper-deep);pointer-events:none;overflow:hidden}.ruler .ticks{position:absolute;inset:0;background-image:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 10px)}.ruler .fill{position:absolute;top:0;left:0;right:0;height:0%;background:var(--rust);mix-blend-mode:multiply;opacity:.3}.ruler .pct{position:absolute;left:50%;top:0;transform:rotate(90deg);transform-origin:left center;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--rust-deep);white-space:nowrap;padding-left:6px}@media (max-width:760px){.ruler{display:none}:root{--rail:0px}}#login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.login-box{position:relative;border:1.5px solid var(--bdr);background:var(--paper-card);padding:2.4rem 2rem;width:100%;max-width:360px;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:var(--grid) var(--grid)}.login-box .tk{position:absolute;width:10px;height:10px}.login-box .tk:before{content:"";position:absolute;width:10px;height:1.5px;background:var(--rust)}.login-box .tk:after{content:"";position:absolute;height:10px;width:1.5px;background:var(--rust)}.login-box .tk.tl{top:-1px;left:-1px}.login-box .tk.tr{top:-1px;right:-1px}.login-box .tk.tr:before{right:0}.login-box .tk.tr:after{right:0}.login-box .tk.bl{bottom:-1px;left:-1px}.login-box .tk.bl:before{bottom:0}.login-box .tk.bl:after{bottom:0}.login-box .tk.br{bottom:-1px;right:-1px}.login-box .tk.br:before{right:0;bottom:0}.login-box .tk.br:after{right:0;bottom:0}.login-fig{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--rust-deep)}.login-title{font-family:var(--display);font-weight:800;font-stretch:82%;text-transform:uppercase;font-size:2.4rem;line-height:.9;margin:.5rem 0 .2rem;color:var(--ink)}.login-sub{font-family:var(--serif);font-style:italic;color:var(--ink-soft);font-size:.95rem;margin-bottom:1.4rem}.login-box input{width:100%;padding:.7rem .9rem;background:var(--paper);border:1.5px solid var(--bdr);color:var(--ink);font-size:.95rem;font-family:var(--mono);outline:none}.login-box input:focus{border-color:var(--rust)}.login-btn{width:100%;margin-top:.8rem;padding:.8rem;background:var(--ink);color:var(--paper);border:1.5px solid var(--bdr);font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:.2s var(--ease)}.login-btn:hover{background:var(--rust);border-color:var(--rust);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}.login-error{font-family:var(--mono);font-size:11px;color:var(--rust);min-height:1em;margin-top:.7rem}.login-hand{font-family:var(--hand);color:var(--pencil);font-size:20px;margin-top:1rem;transform:rotate(-2deg)}#dashboard{display:none;position:relative;z-index:1}.masthead{position:sticky;top:0;z-index:30;height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;margin:var(--frame) var(--rail) 0 var(--frame);background:var(--paper);border-bottom:1.5px solid var(--bdr);background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:var(--grid) var(--grid);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.mh-l,.mh-r{display:flex;align-items:center;gap:14px;color:var(--ink-soft)}.mh-brand{color:var(--ink);font-weight:600;letter-spacing:.18em}.mh-dot{width:7px;height:7px;border-radius:50%;background:var(--rust);animation:blink 2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.mh-back{color:var(--rust-deep);text-decoration:none}.mh-back:hover{opacity:.6}@media (max-width:640px){.mh-hide{display:none}.masthead{font-size:9px;letter-spacing:.08em}}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(10px,3vw,32px)}.controls{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;padding:16px 14px;margin:14px var(--rail) 0 0;border:1.5px solid var(--bdr);background:var(--paper-card);background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:var(--grid) var(--grid)}.ctl-group{display:flex;align-items:center;gap:10px}.ctl-label{font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.seg{display:flex;border:1.5px solid var(--bdr)}.seg button{font-family:var(--mono);font-size:10px;letter-spacing:.05em;padding:6px 13px;background:var(--paper-card);color:var(--ink-soft);border:none;border-right:1.5px solid var(--bdr);cursor:pointer;transition:.15s}.seg button:last-child{border-right:none}.seg button:hover{color:var(--ink)}.seg button.active{background:var(--ink);color:var(--paper)}.seg.rust button.active{background:var(--rust);border-color:var(--rust)}.sheet{padding:30px 0;margin-right:var(--rail)}.sheet-head{display:flex;align-items:baseline;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1.5px solid var(--bdr);padding-bottom:7px;margin-bottom:22px}.sheet-head .fig{color:var(--paper);background:var(--ink);padding:3px 8px;letter-spacing:.14em;white-space:nowrap}.sheet-head .ttl{color:var(--ink)}.sheet-head .leader{flex:1;border-bottom:1.5px dotted var(--line);transform:translateY(-3px)}.hand{font-family:var(--hand);color:var(--pencil);line-height:1.05}.panel{position:relative;border:1.5px solid var(--bdr);background:var(--paper-card)}.tk{position:absolute;width:9px;height:9px;pointer-events:none;z-index:2}.tk:before{content:"";position:absolute;width:9px;height:1.5px;background:var(--rust)}.tk:after{content:"";position:absolute;height:9px;width:1.5px;background:var(--rust)}.tk.tl{top:-1px;left:-1px}.tk.tr{top:-1px;right:-1px}.tk.tr:before{right:0}.tk.tr:after{right:0}.tk.bl{bottom:-1px;left:-1px}.tk.bl:before{bottom:0}.tk.bl:after{bottom:0}.tk.br{bottom:-1px;right:-1px}.tk.br:before{right:0;bottom:0}.tk.br:after{right:0;bottom:0}.kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1.5px solid var(--bdr)}.kpi{padding:18px;border-right:1.5px solid var(--bdr);background:var(--paper-card)}.kpi:last-child{border-right:none}.kpi .lab{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}.kpi .val{font-family:var(--display);font-weight:800;font-stretch:80%;font-size:clamp(28px,4vw,46px);line-height:.9;color:var(--ink);letter-spacing:-.02em}.kpi .val.rust{color:var(--rust)}.kpi .val.ochre{color:var(--rust-deep)}.kpi .sub{font-family:var(--mono);font-size:8px;letter-spacing:.06em;color:var(--ink-soft);margin-top:6px}@media (max-width:640px){.kpis{grid-template-columns:1fr 1fr}.kpi:nth-child(2){border-right:none}.kpi:nth-child(1),.kpi:nth-child(2){border-bottom:1.5px solid var(--bdr)}}.cardpad{padding:18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.split-3{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}@media (max-width:820px){.split,.split-3{grid-template-columns:1fr}}.ctitle{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:12px}.canvas-wrap{width:100%;overflow-x:auto}.legend{display:flex;gap:18px;margin-top:12px;font-family:var(--mono);font-size:10px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em}.legend i{display:inline-block;width:11px;height:11px;margin-right:6px;vertical-align:-1px;border:1.5px solid var(--bdr)}.lrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:.84rem}.lrow:last-child{border-bottom:none}.lname{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lright{display:flex;align-items:center;gap:8px;flex-shrink:0}.lbar{height:8px;background:var(--rust);opacity:.85;border:1px solid var(--rust-deep)}.lcount{font-family:var(--mono);font-size:11px;color:var(--ink-soft);min-width:26px;text-align:right}.lflag{font-size:14px}.ltag{font-family:var(--mono);font-size:7px;text-transform:uppercase;border:1px solid var(--line);padding:1px 4px;color:var(--ink-soft)}.lempty{font-family:var(--mono);font-size:11px;color:var(--ink-soft);padding:6px 0}.llink{color:var(--rust-deep);text-decoration:none}.llink:hover{text-decoration:underline}.bd{display:grid;grid-template-columns:repeat(3,1fr);border:1.5px solid var(--bdr)}.bd-cell{padding:14px 16px;border-right:1.5px solid var(--bdr);background:var(--paper-card)}.bd-cell:last-child{border-right:none}.bd-name{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);display:flex;justify-content:space-between;align-items:baseline}.bd-tot{font-family:var(--display);font-weight:800;font-stretch:80%;font-size:1.5rem;color:var(--ink);margin:6px 0 4px;letter-spacing:-.02em}.bd-item{display:flex;justify-content:space-between;font-size:.78rem;color:var(--ink-soft);padding:3px 0}.bd-item .n{font-family:var(--mono);font-size:.74rem}.bd-item .n.human{color:var(--rust-deep)}.bd-item .n.ai{color:var(--rust)}@media (max-width:640px){.bd{grid-template-columns:1fr}.bd-cell{border-right:none;border-bottom:1.5px solid var(--bdr)}.bd-cell:last-child{border-bottom:none}}.heat{display:grid;grid-template-columns:34px repeat(24,1fr);gap:2px;align-items:center}.heat .hh{font-family:var(--mono);font-size:7.5px;color:var(--ink-soft);text-align:center}.heat .hd{font-family:var(--mono);font-size:8.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.heat .cell{aspect-ratio:1/1;border:1px solid var(--line-soft);background:var(--paper)}.heat-key{display:flex;align-items:center;gap:8px;margin-top:12px;font-family:var(--mono);font-size:9px;color:var(--ink-soft);text-transform:uppercase}.heat-key .scale{display:flex;gap:2px}.heat-key .scale i{width:13px;height:13px;border:1px solid var(--line)}.funnel{display:flex;flex-direction:column;gap:10px}.fn-step{display:flex;align-items:center;gap:14px}.fn-bar{height:38px;border:1.5px solid var(--bdr);display:flex;align-items:center;padding:0 14px;background:var(--paper-card);min-width:60px;font-family:var(--display);font-weight:700;font-stretch:84%;color:var(--ink);transition:width .6s var(--ease)}.fn-bar.b{background:var(--rust);border-color:var(--rust);color:var(--paper)}.fn-meta{font-family:var(--mono);font-size:11px;color:var(--ink-soft);letter-spacing:.04em}.fn-meta b{color:var(--ink)}.fn-conv{font-family:var(--hand);color:var(--pencil);font-size:22px;margin-top:6px}.status{height:30px;display:flex;align-items:center;gap:10px;padding:0 16px;margin:6px var(--rail) var(--frame) var(--frame);border-top:1.5px solid var(--bdr)}.status span{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.status .r{margin-left:auto}.mt12{margin-top:12px}#chart-tip{position:fixed;z-index:60;display:none;pointer-events:none;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:10px;line-height:1.5;letter-spacing:.04em;padding:7px 9px;border:1.5px solid var(--rust);box-shadow:3px 3px #4a423240;white-space:nowrap;max-width:220px}#chart-tip .tt-d{font-weight:600;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid rgba(246,241,230,.25);padding-bottom:3px;margin-bottom:4px}#chart-tip .tt-r{display:flex;justify-content:space-between;gap:16px}#chart-tip .tt-r .v{color:var(--ochre)}#chart-tip .tt-r.tot{border-top:1px solid rgba(246,241,230,.25);margin-top:3px;padding-top:3px}#chart-tip .tt-r.tot .v{color:var(--paper);font-weight:600}canvas.tappable{cursor:crosshair;touch-action:pan-y}
