:root{--ink: #f6f7f9;--panel2: #ebeef3;--line: #d9dee5;--tx: #1b2233;--mut: #4e5666;--navy: #1f2c4e;--navy2: #16213b;--rojo: #d7222a;--rad: 12px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--ink);color:var(--tx);font:14.5px/1.5 Inter,system-ui,sans-serif}.app-shell{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:24px;padding:10px 24px;background:var(--navy2);color:#f2f4f8}.brand{font:800 22px/1 Inter,sans-serif}.brand b{color:var(--rojo)}.vtag{font-size:10px;opacity:.6;margin-left:8px}.toptabs{display:flex;gap:20px}.tab{color:#9aa6c0;text-decoration:none;font-weight:700;font-size:13px;letter-spacing:.04em;padding-bottom:4px;border-bottom:2px solid transparent}.tab.on{color:#fff;border-color:var(--rojo)}.upgrade-link{color:#ffd76a;text-decoration:none;font-weight:700;font-size:13px;letter-spacing:.03em;border:1.5px solid rgba(255,215,106,.5);border-radius:999px;padding:6px 14px;white-space:nowrap}.upgrade-link:hover,.upgrade-link.on{background:#ffd76a;color:var(--navy2);border-color:#ffd76a}.app-main{flex:1;padding:24px}.app-footer{display:flex;flex-direction:column;align-items:center;gap:6px;border-top:1px solid var(--line);background:var(--panel2);padding:16px 24px;text-align:center}.app-footer-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;font-size:12.5px}.app-footer-links a{color:var(--mut);text-decoration:none;font-weight:600}.app-footer-links a:hover{color:var(--tx);text-decoration:underline}.app-footer-dot{color:var(--line)}.app-footer-copy{color:var(--mut);font-size:11.5px}.view{display:flex;flex-direction:column;gap:16px}.sheet{width:100%;border-collapse:collapse}.sheet th{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);border-bottom:1.5px solid var(--line);padding:8px 6px;text-align:left;vertical-align:middle}.sheet th.c,.sheet td.c{text-align:center}.sheet td{padding:3px 6px;border-bottom:1px solid var(--line);vertical-align:middle}.sheet td .rownum{color:var(--mut);font-size:12.5px;font-variant-numeric:tabular-nums;width:26px;display:inline-block}.sheet input{width:100%;border:1px solid transparent;background:transparent;padding:8px;border-radius:6px;font:inherit;text-transform:uppercase}.sheet input:hover{background:var(--panel2)}.sheet input:focus{background:var(--panel2);outline:1.5px solid var(--navy)}.sheet input.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:15.5px;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.sheet input.num::-webkit-outer-spin-button,.sheet input.num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sheet .w-name{min-width:170px}.sheet .w-num{width:105px}.sheet .w-cant{width:64px}.sheet .w-mat{min-width:230px}.sheet .w-mat input{font-size:12.5px}.sheet .w-obs{min-width:110px}.sheet .w-veta{width:80px}.sheet .w-canto{width:210px}.sheet .w-act{width:74px}.sheet tr.ghost input{opacity:.85}.rowbtn{color:var(--mut);background:transparent;padding:5px 7px;border-radius:6px;font-size:14px}.rowbtn:hover{color:#fff;background:var(--rojo)}.rowbtn.dup:hover{background:var(--panel2);color:var(--tx);border:1px solid var(--line)}.rowbtn .ic{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}.vchip{width:56px;padding:3px 3px 2px;border-radius:8px;border:1.5px solid var(--line);background:transparent;display:inline-flex;flex-direction:column;align-items:center;gap:1px}.vchip svg{width:48px;height:22px;display:block}.vchip .vb{fill:none;stroke:currentColor;stroke-width:1.4;opacity:.55}.vchip .vl{fill:none;stroke:currentColor;stroke-width:1.1;opacity:.55}.vchip .vr path{stroke:currentColor;stroke-width:1.6}.vchip .vrh{fill:currentColor;stroke:none!important}.vchip .vcap{font:800 7.5px Inter,sans-serif;letter-spacing:.09em;line-height:1}.vchip.fix{color:var(--navy);border-color:var(--navy)}.vchip.rot{color:var(--mut)}.vchip:hover{border-color:var(--rojo);color:var(--rojo)}.eq{display:inline-flex;align-items:center;gap:3px}.eq .eqb,.eq .eqb-all{background:transparent;border:1px solid var(--line);border-radius:6px;padding:3px 5px;display:inline-flex;align-items:center;gap:2px;color:var(--mut);font-size:9px}.eq .eqb u{text-decoration:none;font-weight:800;letter-spacing:.04em}.eq .eqb i{width:8px;height:8px;border-radius:2px;background:var(--line)}.eq .eqb.on{border-color:var(--rojo);color:var(--tx)}.eq .eqb.on i{background:var(--rojo)}.eq .eqb-all svg{width:15px;height:15px}.eq .eqb-all .eqb-box{fill:none;stroke:currentColor;stroke-width:2}.eq .eqb-all .eqb-check{fill:none;stroke:currentColor;stroke-width:2;opacity:.25}.eq .eqb-all.on{border-color:var(--rojo);color:var(--rojo)}.eq .eqb-all.on .eqb-check{opacity:1}.eq .eqb:hover,.eq .eqb-all:hover{border-color:var(--mut)}.sheetwrap{overflow:auto}.cardhead{display:flex;align-items:center;gap:14px;padding-bottom:10px;flex-wrap:wrap}.cardhead>b{font:800 15px Big Shoulders Display,Inter,sans-serif;letter-spacing:.05em}.cardhead .ctxinfo{color:var(--mut);font-size:12.5px}.cardhead .ctxinfo .dot{opacity:.4;margin:0 2px}.sp{flex:1}.sheetfoot{display:flex;align-items:center;gap:10px;padding-top:10px}.sheetfoot .info{color:var(--mut);font-size:13px}.qhelp{width:22px;height:22px;border-radius:99px;border:1.5px solid var(--line);color:var(--mut);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;cursor:help}.btn{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13px}.btn .ic{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}.btn-ghost{background:transparent;border:1.5px solid var(--line);color:var(--tx)}.btn-ghost:hover{border-color:var(--mut)}.btn-ghost.onred{border-color:var(--rojo);color:var(--rojo)}.btn-red{background:var(--rojo);color:#fff}.ctxbox{display:flex;gap:24px;flex-wrap:wrap}.pf{display:flex;align-items:center;gap:8px}.pf label{font-size:11.5px;font-weight:600;color:var(--mut);letter-spacing:.08em;text-transform:uppercase}.pf input{width:220px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font:inherit;text-transform:uppercase}dialog.pastedlg{margin:auto;background:#fff;color:var(--tx);border:1.5px solid var(--line);border-radius:12px;padding:20px 22px;width:min(560px,94vw)}dialog.pastedlg::backdrop{background:#0000009e}dialog.pastedlg h3{font:800 20px Big Shoulders Display,Inter,sans-serif;letter-spacing:.05em;margin-bottom:6px}dialog.pastedlg p{color:var(--mut);font-size:13px;margin-bottom:12px}dialog.pastedlg textarea{width:100%;height:180px;resize:vertical;font:13px/1.5 ui-monospace,monospace;text-transform:uppercase;border:1px solid var(--line);border-radius:8px;padding:8px}dialog.pastedlg .row{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}button{font:inherit;cursor:pointer;border:none;border-radius:8px;background:var(--panel2);padding:6px 12px}.capfoot{display:flex;align-items:center;gap:14px}.calc{background:var(--rojo);color:#fff;font-weight:800;letter-spacing:.04em;padding:12px 22px;display:inline-flex;align-items:center;gap:8px}.calc .ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}.calc:disabled{opacity:.6;cursor:default}.flash{color:#1d7a3c;font-weight:600}.card{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:16px}.error{color:var(--rojo);font-weight:600}.mut{color:var(--mut)}.small{font-size:12.5px}.emptyplan{text-align:center;color:var(--mut);padding:40px 20px}.mtabs{display:flex;flex-wrap:wrap;gap:6px}.mtab{background:#fff;border:1.5px solid var(--line);border-radius:8px;padding:7px 14px;font-weight:700;font-size:13px;color:var(--mut)}.mtab small{font-weight:600;opacity:.7}.mtab.on{border-color:var(--rojo);color:var(--navy)}.plano-grid{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:start}@media (max-width: 820px){.plano-grid{grid-template-columns:1fr}}.boardrail{display:flex;flex-direction:column;gap:10px;max-height:80vh;overflow:auto;padding-right:4px}.railhead{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}.patcard{background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:3px;text-align:left}.patcard.on{border-color:var(--rojo);box-shadow:0 0 0 3px color-mix(in srgb,var(--rojo) 12%,transparent)}.patcard .pc-h{display:flex;align-items:center;gap:6px;font-size:12.5px}.patcard .pcx{color:var(--rojo);font-weight:800;font-style:normal;font-size:12px}.patcard .pc-svg{display:block;background:#faf9f6;border-radius:6px;padding:4px}.patcard .pc-svg svg{width:100%;height:auto;display:block}.patcard small{color:var(--mut);font-size:11.5px}.stage{display:flex;flex-direction:column;gap:12px;min-width:0}.boardhead{display:flex;flex-direction:column;gap:6px;padding:12px 16px}.bh-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.bh-title>b{font:800 16px Big Shoulders Display,Inter,sans-serif;letter-spacing:.04em}.bh-mat{font-weight:700;color:var(--navy)}.bh-stk{color:var(--mut);font-size:13px}.bh-metrics{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--mut)}.bh-metrics b{color:var(--tx)}.bh-consumo{color:var(--rojo);font-weight:600}.planotoolbar{display:flex;align-items:center;gap:8px}.planotoolbar .btn{padding:7px 12px;border-radius:8px}.zoombox{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:8px;padding:2px 6px;background:#fff}.zoombox button{background:transparent;padding:2px 8px;font-weight:800;font-size:16px;color:var(--navy)}.zoombox span{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--mut);min-width:40px;text-align:center}.svgbox{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:14px;overflow:auto;display:flex;justify-content:center;align-items:flex-start;max-height:78vh}.svgbox svg{max-width:100%;height:auto}.legend{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.legend .lg{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}.legend .lg b{font-weight:800}.legend .lg small{color:var(--mut)}.legend .sw{width:16px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.12);display:inline-block}.legend .cutsw{border:none;border-top:2px dashed var(--rojo);border-radius:0;height:0;width:20px}.legend .hatchsw{background:repeating-linear-gradient(45deg,#fff,#fff 3px,#cbcfd6 3px,#cbcfd6 4px)}.legend .ordersw{width:17px;height:17px;border-radius:99px;background:var(--rojo);color:#fff;font:800 10px Inter,sans-serif;display:inline-flex;align-items:center;justify-content:center}.planosvg svg{display:block}.planosvg .board-bg{fill:#f5f3ee}.planosvg .pz{stroke:#6f8b93;stroke-width:.8}.planosvg .blockbg{fill:#e9f0e4;stroke:#7d9270}.planosvg .leftover{stroke:#c9c4b8;stroke-dasharray:4 3}.planosvg .cutline{stroke:var(--rojo);stroke-width:1.1;stroke-dasharray:6 5;opacity:.85}.planosvg .cutn circle{fill:var(--rojo)}.planosvg .cutn text{fill:#fff;font:800 9px Inter,sans-serif}.planosvg .lbl{font:600 14px Inter,sans-serif;fill:#1e2329}.planosvg .dim{font:500 12px Inter,sans-serif;fill:#565b63}.planosvg .dimS{font:500 11px Inter,sans-serif;fill:#8a8478}.planosvg .frame{fill:none;stroke:#a9afb8;stroke-width:1.5}.planosvg .dimg line{stroke:#8a8478;stroke-width:1}.planosvg .dimg path{fill:#8a8478}.planosvg .dimg text{font:600 11px Inter,sans-serif;fill:#565b63}.planosvg .grainmk line{stroke:#3a4a52;stroke-width:1.3}.planosvg .grainmk path{fill:#3a4a52}.planosvg .edgemk{stroke-width:2.4}.planosvg .hatch{fill:#efebe1;opacity:.9}table.lib{width:100%;border-collapse:collapse;font-size:13.5px}table.lib th{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);border-bottom:1.5px solid var(--line);padding:8px;text-align:left}table.lib td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}table.lib th.r,table.lib td.r{text-align:right;font-variant-numeric:tabular-nums}table.lib th.c,table.lib td.c{text-align:center;font-variant-numeric:tabular-nums}table.lib tfoot td{border-top:2px solid var(--line);border-bottom:none;padding-top:12px}table.lib .mut{color:var(--mut);font-size:11.5px}.upgrade-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:18px;max-width:720px}@media (max-width: 620px){.upgrade-grid{grid-template-columns:1fr}}.plan-box{border:1.5px solid var(--line);border-radius:var(--rad);padding:18px;display:flex;flex-direction:column;gap:10px}.plan-box--highlight{border-color:var(--rojo);box-shadow:0 0 0 3px color-mix(in srgb,var(--rojo) 10%,transparent)}.plan-name{font:800 15px Big Shoulders Display,Inter,sans-serif;letter-spacing:.04em;color:var(--navy)}.plan-price{font:800 28px Big Shoulders Display,Inter,sans-serif}.plan-price-period{font-size:12px;font-weight:600;color:var(--mut);margin-left:6px}.plan-features{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--tx)}.plan-features li:before{content:"✓ ";color:var(--rojo);font-weight:800}.upgrade-email-label{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.05em;margin-top:6px}.upgrade-email-input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit}.upgrade-cta{justify-content:center;text-decoration:none;margin-top:4px;border-radius:8px}.upgrade-pending-notice{background:var(--panel2);border-radius:8px;padding:12px;font-size:12.5px;color:var(--mut);line-height:1.5}.upgrade-pending-notice code{font-size:11.5px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1px 4px}.print-area{display:none}@media print{.topbar,.mtabs,.boardrail,.planotoolbar,.legend,.boardhead,.svgbox{display:none!important}.app-main{padding:0}.print-area{display:block}.print-area .psheet{page-break-after:always;padding:10mm}.print-area .psheet:last-child{page-break-after:auto}.print-area .phead{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#333;margin-bottom:6mm;border-bottom:1px solid #ccc;padding-bottom:3mm}.print-area .phead b{color:#000}.print-area svg{width:100%;height:auto}@page{size:A4 landscape;margin:8mm}}
