.insert-view{width:100%;height:100%;min-height:inherit;position:relative}.insert-labels{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.insert-label-anchor{will-change:transform;position:absolute;top:0;left:0}.insert-label{font-variant-numeric:tabular-nums;white-space:nowrap;width:max-content;color:var(--text,#142033);background:color-mix(in srgb, var(--surface,#fff) 92%, transparent);border:1px solid var(--border,#dfe4eb);opacity:0;border-radius:8px;padding:3px 8px;font-size:12px;font-weight:650;line-height:1.3;transition:opacity .28s ease-out;position:absolute;top:0;left:0;box-shadow:0 1px 2px #1018281a,0 4px 12px #10182814}.insert-label-anchor.is-on .insert-label{opacity:1}.insert-label.right{transform:translate(10px,-50%)}.insert-label.left{transform:translate(calc(-100% - 10px),-50%)}.insert-label.top{transform:translate(-50%,calc(-100% - 10px))}.insert-label.pass{color:var(--pass,#157a3c);background:color-mix(in srgb, var(--pass-soft,#e5f5ea) 94%, transparent);border-color:color-mix(in srgb, var(--pass,#157a3c) 45%, transparent)}.insert-label.warn{color:var(--warn,#93600a);background:color-mix(in srgb, var(--warn-soft,#fdf4e1) 94%, transparent);border-color:color-mix(in srgb, var(--warn,#93600a) 50%, transparent)}.insert-label.fail{color:var(--fail,#b42318);background:color-mix(in srgb, var(--fail-soft,#fdeceb) 94%, transparent);border-color:color-mix(in srgb, var(--fail,#b42318) 50%, transparent)}.insert-callout{white-space:normal;max-width:240px;padding:6px 10px}.insert-callout strong{font-weight:700;display:block}.insert-callout ul{color:var(--text,#142033);margin:4px 0 0;padding-left:14px;font-weight:550}.insert-callout li+li{margin-top:1px}@media (prefers-color-scheme:dark){.insert-label{box-shadow:0 2px 10px #00000059}}@media (prefers-reduced-motion:reduce){.insert-label{transition:none}}:root{--bg:#eef1f5;--surface:#fff;--surface-2:#f6f8fa;--border:#dfe4eb;--text:#142033;--muted:#5d6c81;--accent:#0e7c74;--accent-ink:#fff;--accent-soft:#dff1ee;--pass:#157a3c;--pass-soft:#e5f5ea;--fail:#b42318;--fail-soft:#fdeceb;--warn:#93600a;--warn-soft:#fdf4e1;--stage:radial-gradient(120% 90% at 50% 20%, #fff 0%, #e4e9f0 100%);--radius:14px;--shadow:0 1px 2px #1018280f, 0 6px 16px #1018280d;--accent-strong:color-mix(in srgb, var(--accent) 86%, #000);--thumb-shadow:0 1px 2px #1018281f, 0 1px 1px #1018280a;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--control-h:34px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--bg:#0c1218;--surface:#141c25;--surface-2:#1a2430;--border:#273342;--text:#e6edf5;--muted:#93a2b6;--accent:#2bb3a6;--accent-ink:#062a27;--accent-soft:#123532;--pass:#4cc47a;--pass-soft:#12301f;--fail:#f2766b;--fail-soft:#3a1714;--warn:#e6b34d;--warn-soft:#34280f;--stage:radial-gradient(120% 90% at 50% 20%, #253140 0%, #121a23 100%);--shadow:none;--accent-strong:color-mix(in srgb, var(--accent) 84%, #fff);--thumb-shadow:0 0 0 1px var(--border), 0 1px 2px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button,input{font:inherit;color:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:10px 20px;display:flex}.brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-weight:650;display:flex}.logo{background:var(--accent);width:28px;height:28px;color:var(--accent-ink);border-radius:8px;place-items:center;display:grid}.modules{gap:4px;display:flex;overflow-x:auto}.module{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:6px 12px}.module.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.module:disabled{cursor:not-allowed;opacity:.55}.context{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px}.workspace{flex:1;grid-template-columns:272px minmax(0,1fr) 384px;gap:16px;padding:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.params,.results{flex-direction:column;align-self:start;gap:12px;padding:16px;display:flex}h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:4px 0 0;font-size:12px;font-weight:650}h2+*{margin-top:-2px}.hint{color:var(--muted);margin:0;font-size:12px}.muted{color:var(--muted);font-weight:400}.sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.dims{gap:8px;display:grid}.field{gap:6px;display:grid}.field-label{font-size:12px;font-weight:550}.input-unit{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;align-items:center;padding:0 10px;display:flex}.input-unit:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input-unit input{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;flex:1;min-width:0;padding:8px 0}.input-unit span{color:var(--muted);font-size:12px}.segmented{isolation:isolate;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:3px;display:grid;position:relative}.segmented button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:7px;padding:6px 8px}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--thumb-shadow);font-weight:600}.segmented[data-thumb]:before{content:"";z-index:-1;width:var(--thumb-w);height:var(--thumb-h);transform:translate(var(--thumb-x), var(--thumb-y));background:var(--surface);box-shadow:var(--thumb-shadow);pointer-events:none;border-radius:7px;position:absolute;top:0;left:0}.segmented[data-thumb] button.on{box-shadow:none;background:0 0}@media (forced-colors:active){.segmented[data-thumb]:before{outline-offset:-2px;outline:2px solid highlight}}.stepper{align-items:center;gap:8px;display:flex}.stepper button{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:10px;width:34px;height:34px;font-size:16px}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-weight:650}button:focus-visible,input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stage{background:var(--stage);flex-direction:column;align-self:start;height:min(760px,100vh - 92px);min-height:560px;display:flex;position:sticky;top:16px;overflow:hidden}.canvas-wrap{touch-action:none;flex:1;min-height:420px;position:relative}.stage .canvas-wrap>*{position:absolute;inset:0}.stage-toolbar{background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;align-items:center;gap:12px;margin:12px;padding:8px 10px;display:flex}.stage-toolbar input[type=range]{accent-color:var(--accent);flex:1}.pct{text-align:right;font-variant-numeric:tabular-nums;width:4ch;color:var(--muted)}.stage-toolbar.playback{flex-wrap:wrap;gap:8px 10px;container:playback/inline-size}.stage-toolbar.playback :is(.ghost,.primary){height:var(--control-h);white-space:nowrap;flex:none;justify-content:center;align-items:center;padding-block:0;display:inline-flex}.stage-toolbar.playback input[type=range]{min-width:120px;height:var(--control-h);flex:140px;margin:0}.stage-toolbar.playback .ghost[aria-pressed=true]{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--accent)}.icon-button{width:var(--control-h);height:var(--control-h);place-items:center;padding:0;display:inline-grid}.stage-toolbar.playback .icon-button{width:var(--control-h);padding:0;display:inline-grid}.glyph-play,.glyph-pause{width:12px;height:12px;display:block}.glyph-play{clip-path:polygon(0 0,100% 50%,0 100%);background:currentColor;margin-left:2px}.glyph-pause{border-left:4px solid;border-right:4px solid;width:11px}.stage-label{text-overflow:ellipsis;white-space:nowrap;background:var(--accent-soft);min-width:9ch;max-width:20ch;color:var(--accent);text-align:center;border-radius:999px;flex:none;padding:2px 9px;font-size:12px;font-weight:600;line-height:20px;overflow:hidden}.stage-toolbar.playback .pct{flex:none;font-size:12.5px}@container playback (width<=760px){.stage-toolbar.playback:has(>:nth-child(8))>input[type=range]{flex:calc(100% - 4ch - 12px);order:-2}.stage-toolbar.playback:has(>:nth-child(8))>.pct{order:-1}}@container playback (width<=520px){.stage-toolbar.playback>input[type=range]{flex:calc(100% - 4ch - 12px);order:-2;min-width:0}.stage-toolbar.playback>.pct{order:-1}.stage-toolbar.playback>.stage-label{flex:0 auto;order:-3;max-width:100%}}.speed{font-variant-numeric:tabular-nums;min-width:46px;padding-inline:8px}.primary,.ghost{cursor:pointer;border-radius:9px;padding:7px 14px;font-weight:600}.primary{background:var(--accent);color:var(--accent-ink);border:1px solid #0000}.ghost{border:1px solid var(--border);background:var(--surface)}.verdict{letter-spacing:.02em;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:14px 16px;font-size:22px;font-weight:750;display:grid}.verdict small{letter-spacing:0;opacity:.85;grid-column:1/-1;font-size:12px;font-weight:500}.verdict.pass{background:var(--pass-soft);color:var(--pass)}.verdict.fail{background:var(--fail-soft);color:var(--fail)}.kpis{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.kpis div{background:var(--surface-2);border-radius:10px;padding:8px 10px}.kpis div:last-child{grid-column:1/-1}.kpis dt{color:var(--muted);font-size:11px}.kpis dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-weight:650}.axes{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.axes th,.axes td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 4px}.axes th:first-child{text-align:left}.axes thead th{color:var(--muted);font-size:11px;font-weight:550}.axes tbody th{font-weight:600}.axes tr.ok td:last-child{color:var(--pass)}.axes tr.bad td:last-child,.axes tr.bad strong{color:var(--fail)}.notes{border-radius:10px;gap:4px;margin:0;padding:10px 12px 10px 28px;font-size:12.5px;display:grid}.notes.fail{background:var(--fail-soft);color:var(--fail)}.notes.warn{background:var(--warn-soft);color:var(--warn)}.stack summary{cursor:pointer;border-radius:6px;font-size:13px;font-weight:600;list-style:none}.stack summary::-webkit-details-marker{display:none}.stack summary:before{content:"";vertical-align:middle;opacity:.7;border-bottom:1.75px solid;border-right:1.75px solid;width:6px;height:6px;margin:0 9px 2px 3px;display:inline-block;transform:rotate(-45deg)}.stack[open]>summary:before{transform:translate(1px,-2px)rotate(45deg)}.stack summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stack h3{text-transform:capitalize;margin:10px 0 4px;font-size:12px}.stack ul{margin:0;padding:0;font-size:12px;list-style:none}.stack li{border-bottom:1px dashed var(--border);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding:3px 0;display:flex}@media (width<=1180px){.workspace{grid-template-columns:1fr}.stage{height:auto;min-height:460px;position:static}.canvas-wrap{min-height:360px}}@media (width<=640px){.topbar{flex-wrap:wrap;gap:8px 16px;padding:10px 16px}.context{display:none}.workspace{padding:12px 16px}.dims{grid-template-columns:1fr}}.row-buttons{flex-wrap:wrap;gap:8px;display:flex}.file-button{align-items:center;display:inline-flex;position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.file-button:focus-within{outline:2px solid var(--accent);outline-offset:2px}.select{border:1px solid var(--border);background:var(--surface-2);width:100%;font:inherit;color:inherit;border-radius:10px;padding:8px 10px}.field-error{color:var(--fail);font-size:12px}.verdict.warn{background:var(--warn-soft);color:var(--warn)}.empty{text-align:center;height:100%;color:var(--muted);place-items:center;margin:0;padding:24px;display:grid}.stage-caption{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 12px}.stage-caption span{color:var(--muted)}.pick-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pick{text-align:left;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:10px;gap:2px;width:100%;padding:9px 11px;display:grid}.pick:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.pick.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.pick-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.pick-title{font-variant-numeric:tabular-nums;font-weight:600}.pick-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.pick-warn{color:var(--warn);font-size:12px}.badge{white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:600}.badge.ok{background:var(--pass-soft);color:var(--pass)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--fail-soft);color:var(--fail)}.scroll{max-height:320px;margin-top:8px;overflow:auto}.axes.compact th,.axes.compact td{padding:5px 4px;font-size:12px}.axes.compact tbody th{white-space:normal;font-weight:500}.axes .muted-row{opacity:.55}.case-view{width:100%;height:100%;position:relative}.axis-legend{color:var(--muted);background:color-mix(in srgb, var(--surface) 80%, transparent);border:1px solid var(--border);pointer-events:none;border-radius:8px;margin:0;padding:3px 8px;font-size:11px;position:absolute;top:10px;left:12px}.stage-tabs{padding:10px 12px 0}.stage-tabs .field-label{display:none}.dieline-wrap{background:var(--surface);flex:1;min-height:420px;overflow:auto}.dieline-figure{flex-direction:column;gap:8px;height:100%;margin:0;padding:12px 14px;display:flex}.dieline{flex:1;width:100%;min-height:320px}.dieline .cut{fill:color-mix(in srgb, var(--surface-2) 70%, transparent);stroke:#d0263a}.dieline .cut.highlight{fill:color-mix(in srgb, var(--accent) 22%, transparent)}.dieline .crease{stroke:#1f9d55}.dieline-label{fill:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.entry-note{color:var(--muted);margin:0 12px 4px;font-size:12.5px}[hidden]{display:none!important}.dieline-pair{gap:8px;display:grid}.dieline-pair .dieline-figure{height:auto}.dieline-pair .dieline{min-height:0;max-height:520px}@media (hover:hover){.primary:hover:not(:disabled){background:var(--accent-strong)}.ghost:hover:not(:disabled){background:var(--surface-2);border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.stage-toolbar.playback .ghost[aria-pressed=true]:hover{background:color-mix(in srgb, var(--accent) 16%, var(--surface))}.module:not(.active,:disabled):hover{background:var(--surface-2);color:var(--text)}.stepper button:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));color:var(--accent)}.segmented button:not(.on):hover{color:var(--text)}.input-unit:not(:focus-within):hover,.select:not(:focus):hover{border-color:color-mix(in srgb, var(--accent) 28%, var(--border))}.stack summary:hover{color:var(--accent)}}.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}@media (prefers-reduced-motion:no-preference){.primary,.ghost,.module,.stepper button,.pick,.segmented button{transition:background-color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), transform var(--dur-1) var(--ease-out)}:is(.primary,.ghost,.module,.stepper button):active:not(:disabled){transform:scale(.97)}.pick:active{transform:scale(.992)}.segmented[data-thumb]:before{transition:transform var(--dur-3) var(--ease-out), width var(--dur-3) var(--ease-out), height var(--dur-3) var(--ease-out)}.input-unit,.select{transition:border-color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out)}.badge{transition:background-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out)}.verdict{transition:background-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out);animation-duration:var(--dur-3);animation-timing-function:var(--ease-out)}.verdict.pass{animation-name:verdict-settle-pass}.verdict.fail{animation-name:verdict-settle-fail}.verdict.warn{animation-name:verdict-settle-warn}.notes,.field-error{animation:fade-rise var(--dur-3) var(--ease-out)}.stack summary{transition:color var(--dur-2) var(--ease-out)}.stack summary:before{transition:transform var(--dur-2) var(--ease-out)}.stack[open]>summary~*{animation:fade-rise var(--dur-3) var(--ease-out)}.canvas-wrap>*,.dieline-wrap>*{animation:fade-in var(--dur-3) var(--ease-out) backwards}.dieline .cut{animation:dieline-cut .72s var(--ease-in-out) backwards;animation-delay:calc(var(--i,0) * 40ms);transition:fill var(--dur-2) var(--ease-out)}.dieline .dieline-reveal{animation:dieline-stroke .52s var(--ease-out) backwards;animation-delay:calc(.28s + var(--i,0) * 45ms)}.dieline .dieline-label{animation:fade-in .38s var(--ease-out) backwards;animation-delay:calc(.56s + var(--i,0) * 25ms)}}@supports (interpolate-size:allow-keywords){@media (prefers-reduced-motion:no-preference){.stack{interpolate-size:allow-keywords}.stack::details-content{overflow-clip-margin:6px;height:0;transition:height var(--dur-3) var(--ease-out), content-visibility var(--dur-3) allow-discrete;overflow:clip}.stack[open]::details-content{height:auto}}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-rise{0%{opacity:0;transform:translateY(-4px)}}@keyframes verdict-settle-pass{0%{transform:scale(.985)}}@keyframes verdict-settle-fail{0%{transform:scale(.985)}}@keyframes verdict-settle-warn{0%{transform:scale(.985)}}@keyframes dieline-cut{0%{stroke-dasharray:1;stroke-dashoffset:1px;fill-opacity:0}55%{fill-opacity:0}to{stroke-dasharray:1;stroke-dashoffset:0;fill-opacity:1}}@keyframes dieline-stroke{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}@media (width<=640px){.stage-toolbar.playback{gap:8px;margin:8px;padding:8px}.stage-toolbar.playback :is(.ghost,.primary):not(.icon-button){padding-inline:12px}.axes th,.axes td{padding-inline:2px}.axes{font-size:13px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}@media print{*,:before,:after{transition:none!important;animation:none!important}}
