@import"https://fonts.googleapis.com/css2?family=Archivo:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap";:root{--nafix-navy: #0f2439;--nafix-navy-2: #16324c;--nafix-ink: #0b1b2b;--nafix-muted: #5b6b7c;--nafix-line: #d7dee8;--nafix-bg: #f3f6fa;--nafix-bg-ice: #e8eef6;--nafix-white: #ffffff;--nafix-orange: #ea640d;--nafix-orange-2: #ff7a1a;--nafix-ok: #1f9d55;--nafix-warn: #c47f17;--nafix-danger: #c0392b;--nafix-info: #2e8fff;--nafix-panel-shadow: 6px 6px 0 0 var(--nafix-navy);--nafix-card-shadow: 3px 3px 0 0 rgba(23, 74, 143, .55);--nafix-font: "Inter", system-ui, sans-serif;--nafix-font-display: "Archivo", "Inter", system-ui, sans-serif;--nafix-radius: 0;--nafix-radius-pill: 999px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--nafix-font);color:var(--nafix-ink);background:var(--nafix-bg);font-size:14px;line-height:1.4}button,input,select{font:inherit}button{cursor:pointer;border:2px solid var(--nafix-navy);background:var(--nafix-white);color:var(--nafix-ink);padding:.4rem .75rem;border-radius:0}button:hover{background:var(--nafix-bg-ice)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--nafix-orange);border-color:var(--nafix-navy);color:#fff;border-radius:var(--nafix-radius-pill);font-weight:600}button.primary:hover{background:var(--nafix-orange-2)}button.ghost{background:transparent;border-color:transparent;color:inherit}button.ghost:hover{background:#ffffff1f}button.active{background:var(--nafix-navy);color:#fff;border-color:var(--nafix-navy)}.kicker{font-family:var(--nafix-font-display);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--nafix-orange);margin:0 0 .35rem}.kicker:before{content:"— "}.app{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}.topbar{display:flex;gap:.75rem;align-items:center;padding:.55rem 1rem;background:var(--nafix-navy);color:#fff;border-bottom:2px solid var(--nafix-navy);font-family:var(--nafix-font-display)}.topbar strong{font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.85rem}.topbar span{font-family:var(--nafix-font);font-size:.8rem;opacity:.9}.topbar .muted{color:#b9c7d4;opacity:1;margin-left:auto}.topbar>span:nth-of-type(1){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar button,.topbar a.button{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.35);text-decoration:none;display:inline-flex;align-items:center;padding:.3rem .65rem;font-size:.8rem}.topbar button:hover,.topbar a.button:hover{background:#ffffff1a;border-color:#fff}.topbar button.primary{background:var(--nafix-orange);border-color:var(--nafix-orange);border-radius:var(--nafix-radius-pill)}.workspace{display:grid;grid-template-columns:1fr min(360px,34vw);min-height:0;height:100%}.stage-col{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--nafix-bg)}.tool-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:stretch;padding:.45rem .6rem;background:var(--nafix-white);border-bottom:2px solid var(--nafix-navy)}.tool-group,.layer-bar,.tool-strip{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.tool-group{padding-right:.5rem;border-right:2px solid var(--nafix-line)}.layer-bar{flex:1;min-width:0}.tool-strip{width:100%;padding-top:.35rem;border-top:1px solid var(--nafix-line);justify-content:space-between}.tool-strip-tools{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;min-height:2rem}.strip-help{font-size:.8rem;color:var(--nafix-muted)}.strip-label{font-family:var(--nafix-font-display);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--nafix-orange);margin-right:.25rem}.tool-strip-meta{display:flex;gap:.5rem;align-items:center;font-size:.8rem;color:var(--nafix-muted)}.tb-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .45rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-family:var(--nafix-font-display);background:var(--nafix-white);border:2px solid var(--nafix-navy);color:var(--nafix-ink)}.tb-btn:hover{background:var(--nafix-bg-ice)}.tb-btn.active{background:var(--nafix-navy);color:#fff}.tb-btn.layer-off{opacity:.55}.tb-btn .qty{font-family:var(--nafix-font);font-weight:500;text-transform:none;letter-spacing:0;font-size:.72rem}.tb-btn .eye{display:inline-flex;padding:.1rem;border:none;background:transparent;color:inherit}.tb-btn .eye:hover{color:var(--nafix-orange)}.tb-btn .swatch{width:10px;height:10px;display:inline-block;border:1px solid var(--nafix-navy)}.editor{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--nafix-bg-ice);border-right:2px solid var(--nafix-navy)}.editor canvas{display:block}.hint{position:absolute;left:50%;bottom:.6rem;transform:translate(-50%);background:#0f2439e0;color:#fff;padding:.3rem .75rem;font-size:.75rem;white-space:nowrap;max-width:calc(100% - 1.5rem);overflow:hidden;text-overflow:ellipsis;pointer-events:none}.toast{position:absolute;right:.75rem;bottom:.75rem;background:var(--nafix-white);color:var(--nafix-ink);border:2px solid var(--nafix-navy);box-shadow:var(--nafix-panel-shadow);padding:.55rem .75rem;font-size:.85rem;max-width:280px;z-index:5}.toast.warn{border-color:var(--nafix-warn)}.toast.err{border-color:var(--nafix-danger)}.panel{display:flex;flex-direction:column;min-height:0;background:var(--nafix-white);border-left:2px solid var(--nafix-navy);box-shadow:var(--nafix-panel-shadow)}.panel-tabs{display:flex;border-bottom:2px solid var(--nafix-navy)}.panel-tabs button{flex:1;border:none;border-right:2px solid var(--nafix-navy);border-radius:0;background:var(--nafix-bg-ice);padding:.55rem .4rem;font-family:var(--nafix-font-display);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.panel-tabs button:last-child{border-right:none}.panel-tabs button.active{background:var(--nafix-white);color:var(--nafix-orange)}.panel-body{flex:1;overflow:auto;padding:.75rem;min-height:0}.measures h3,.sheets-panel h3{font-family:var(--nafix-font-display);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;margin:.9rem 0 .4rem;color:var(--nafix-navy)}.measures h3:first-child,.sheets-panel h3:first-child{margin-top:0}.measures table{width:100%;border-collapse:collapse;font-size:.82rem}.measures td,.measures th{padding:.28rem .35rem;border-bottom:1px solid var(--nafix-line);text-align:left}.measures td.num,.measures th.num{text-align:right;font-variant-numeric:tabular-nums}.measures tr{box-shadow:var(--nafix-card-shadow);background:var(--nafix-white)}.measures tr+tr{margin-top:2px}.measures tr.sel{outline:2px solid var(--nafix-orange)}.measures .selbar{display:inline-block;width:3px;height:.9em;background:transparent;vertical-align:middle;margin-right:.25rem}.measures tr.sel .selbar{background:var(--nafix-orange)}.layer-block{margin-bottom:.75rem}.layer-block summary{cursor:pointer;font-family:var(--nafix-font-display);font-weight:700;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--nafix-navy);list-style:none;display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:2px solid var(--nafix-navy)}.layer-block summary::-webkit-details-marker{display:none}.badge{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.04em;padding:.1rem .35rem;border:1px solid var(--nafix-navy);background:var(--nafix-bg-ice);text-transform:uppercase}.badge.auto{background:var(--nafix-info);color:#fff;border-color:var(--nafix-navy)}.var-row{padding:.45rem .55rem;border:1px solid var(--nafix-navy);box-shadow:var(--nafix-card-shadow);background:var(--nafix-white);margin-bottom:.5rem;cursor:pointer}.var-row:hover{background:var(--nafix-bg-ice)}.var-row.editing{outline:2px solid var(--nafix-orange);outline-offset:-1px}.var-main{display:flex;align-items:baseline;gap:.5rem}.var-name{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.74rem;overflow-wrap:anywhere;color:var(--nafix-navy)}.var-val{font-variant-numeric:tabular-nums;font-weight:700;font-size:.9rem;white-space:nowrap}.var-val small{font-weight:500;color:var(--nafix-muted)}.var-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.3rem;font-size:.72rem;color:var(--nafix-muted)}.var-meta .warn{color:var(--nafix-warn);font-weight:600}.var-actions{margin-left:auto;display:inline-flex;gap:.25rem}.var-edit{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--nafix-line);font-size:.78rem}.var-edit p{margin:0 0 .4rem}.row-btns{display:flex;flex-wrap:wrap;gap:.3rem}.row-btns button{font-size:.75rem;padding:.25rem .55rem}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:1.8rem;height:1.8rem;padding:0 .35rem;border:1px solid var(--nafix-navy);background:var(--nafix-white);font-weight:700}.icon-btn.on{background:var(--nafix-orange);color:#fff}.name-input{flex:1;min-width:0;padding:.25rem .4rem;border:2px solid var(--nafix-orange);font-size:.8rem}.sheet-toolbar{display:flex;gap:.35rem;margin-bottom:.75rem;align-items:center}.sheet-toolbar select{flex:1;min-width:0;height:1.8rem;border:1px solid var(--nafix-navy);background:var(--nafix-white);padding:0 .4rem;font-weight:600}.new-var{width:100%;margin-top:.25rem}.help{font-size:.75rem;margin-top:.75rem}.badge.auto{text-transform:uppercase}.welcome{padding:.75rem;border:2px solid var(--nafix-navy);box-shadow:var(--nafix-panel-shadow);background:var(--nafix-bg-ice);margin-bottom:.75rem}.welcome ol{margin:.4rem 0 0;padding-left:1.2rem}.welcome li{margin:.25rem 0}.upload,.login,.commercial{max-width:560px;margin:3rem auto;padding:1.5rem;background:var(--nafix-white);border:2px solid var(--nafix-navy);box-shadow:var(--nafix-panel-shadow)}.upload h1,.login h1,.commercial h1{font-family:var(--nafix-font-display);text-transform:uppercase;letter-spacing:.04em;font-size:1.35rem;margin:0 0 .5rem;color:var(--nafix-navy)}.upload .drop{border:2px dashed var(--nafix-navy);padding:2rem 1rem;text-align:center;margin:1rem 0;background:var(--nafix-bg-ice)}.upload .drop.over{background:#ffe8d6;border-style:solid}.upload .drop{display:block;cursor:pointer;color:var(--nafix-ink)}.upload .drop input{display:none}.error{color:var(--nafix-danger);border:2px solid var(--nafix-danger);padding:.5rem .65rem;margin:.5rem 0;background:#fff5f4}.muted{color:var(--nafix-muted)}.page-picker{max-width:720px;margin:2rem auto;padding:1.25rem;background:var(--nafix-white);border:2px solid var(--nafix-navy);box-shadow:var(--nafix-panel-shadow)}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;margin:1rem 0}.page-grid button{aspect-ratio:1 / 1.3;display:flex;align-items:center;justify-content:center;font-family:var(--nafix-font-display);font-weight:700}.page-grid button.current{outline:2px solid var(--nafix-orange)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f243973;display:flex;align-items:center;justify-content:center;z-index:20}.dialog{background:var(--nafix-white);border:2px solid var(--nafix-navy);box-shadow:var(--nafix-panel-shadow);padding:1rem 1.25rem;min-width:320px;max-width:90vw}.dialog h2{font-family:var(--nafix-font-display);font-size:1rem;text-transform:uppercase;margin:0 0 .75rem}.dialog label{display:block;margin:.5rem 0}.dialog input[type=number]{display:block;width:100%;margin-top:.25rem;padding:.35rem .5rem;border:2px solid var(--nafix-navy)}.dialog .presets{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0}.dialog-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.menu-dots{position:relative}.menu-dots .menu{position:absolute;right:0;top:100%;z-index:10;background:var(--nafix-white);border:2px solid var(--nafix-navy);box-shadow:var(--nafix-card-shadow);min-width:140px}.menu-dots .menu button{display:block;width:100%;text-align:left;border:none;border-bottom:1px solid var(--nafix-line);border-radius:0;padding:.4rem .6rem;font-size:.8rem}.menu-dots .menu button:last-child{border-bottom:none}.pagenav{display:inline-flex;align-items:center;gap:.25rem}.pagenav input{width:3.2rem;padding:.25rem;text-align:center;border:2px solid rgba(255,255,255,.35);background:transparent;color:#fff}.upload{max-width:none;margin:0;padding:0;border:none;box-shadow:none;background:transparent;min-height:100%;display:flex;align-items:center;justify-content:center}.upload .card{width:min(560px,calc(100% - 2rem));padding:1.5rem;background:var(--nafix-white);border:2px solid var(--nafix-navy);box-shadow:var(--nafix-panel-shadow)}.library{margin-top:1rem;max-height:40vh;overflow:auto}.library h3{font-family:var(--nafix-font-display);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;color:var(--nafix-navy);margin:0 0 .4rem}.library button{display:block;width:100%;text-align:left;margin-bottom:.3rem;font-size:.85rem;border-width:1px}.library button:hover{box-shadow:var(--nafix-card-shadow)}button.demo{display:block;margin:.75rem auto 0}.picker{min-height:100%;padding:1rem 1.5rem}.picker-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.picker-head h2{margin:0;font-family:var(--nafix-font-display);text-transform:uppercase;letter-spacing:.04em;font-size:1.1rem;color:var(--nafix-navy)}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.thumb{display:flex;flex-direction:column;gap:.4rem;padding:.5rem;text-align:left;border:1px solid var(--nafix-navy);background:var(--nafix-white)}.thumb img{width:100%;aspect-ratio:1.414;object-fit:contain;background:#fafbfc;border:1px solid var(--nafix-line)}.thumb:hover:not(:disabled){box-shadow:var(--nafix-panel-shadow);transform:translate(-2px,-2px)}.thumb.current{outline:2px solid var(--nafix-navy)}.thumb.busy{outline:3px solid var(--nafix-orange)}.thumb:disabled{cursor:wait}.find-dialog{width:min(440px,92vw)}.find-dialog input:not([type]),.find-dialog input[type=text]{display:block;width:100%;margin-top:.25rem;padding:.35rem .5rem;border:2px solid var(--nafix-navy)}.kind-choice{display:flex;gap:.3rem;margin:.6rem 0 .2rem}.kind-choice button{flex:1;font-size:.8rem;padding:.35rem .4rem}.dialog label.check{display:flex;gap:.4rem;align-items:flex-start;font-size:.82rem}.dialog label.check input{margin-top:.15rem}.layer-text{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.1}.layer-text .qty{font-size:.68rem;opacity:.85}
