:root{--bg: #0b0d10;--bg-raised: #101317;--surface: #15191f;--surface-2: #1b2027;--surface-3: #232a33;--border: #252c36;--border-strong: #333d4a;--border-subtle: #1c2230;--text: #e8ebf0;--text-2: #a8b1bf;--text-3: #6c7686;--accent: #4f8ff7;--accent-hi: #74a8ff;--accent-soft: rgba(79, 143, 247, .13);--green: #34c98e;--green-soft: rgba(52, 201, 142, .12);--amber: #e8b454;--amber-soft: rgba(232, 180, 84, .12);--red: #ef6a6a;--red-soft: rgba(239, 106, 106, .12);--radius: 10px;--radius-sm: 7px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 8px 24px rgba(0, 0, 0, .35);--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 -apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#4f8ff759}button{font:inherit}:is(button,select,input):focus-visible{outline:2px solid var(--accent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.app{display:grid;grid-template-columns:224px 1fr;height:100vh}.sidebar{display:flex;flex-direction:column;background:var(--bg-raised);border-right:1px solid var(--border);padding:16px 12px 14px;gap:18px}.brand{display:flex;align-items:center;gap:10px;padding:2px 6px}.brand-glyph{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(145deg,var(--surface-3),var(--surface));border:1px solid var(--border-strong);color:var(--accent-hi);flex:none}.brand-name{display:flex;flex-direction:column;line-height:1.15}.brand-name b{font-size:13.5px;font-weight:650;letter-spacing:-.01em}.brand-sub{font-size:10.5px;color:var(--text-3);letter-spacing:.02em}.nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:background .12s ease,color .12s ease}.nav button svg{flex:none;opacity:.85}.nav button:hover{background:var(--surface-2);color:var(--text)}.nav button.active{background:var(--accent-soft);color:var(--accent-hi)}.sidebar-foot{display:flex;flex-direction:column;gap:8px;padding:12px 8px 0;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-3)}.api-status{display:flex;align-items:center;gap:7px}.api-dot{width:7px;height:7px;border-radius:50%;background:var(--text-3);flex:none}.api-dot.ok{background:var(--green);box-shadow:0 0 6px #34c98e99}.api-dot.down{background:var(--red)}.sidebar-foot .ver{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:3px 4px 3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.sidebar-foot .ver-num{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.02em;color:var(--text-2)}.sidebar-foot .ver-tag{font-size:8.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-hi);background:var(--accent-soft);padding:2px 6px;border-radius:999px}.sidebar-foot .copyright{font-size:10.5px;color:var(--text-3)}.main{overflow-y:auto;padding:22px 28px 40px}.page-head{margin-bottom:16px}.page-head h2{margin:0 0 3px;font-size:17px;font-weight:650;letter-spacing:-.01em}.page-head p{margin:0;font-size:12.5px;color:var(--text-3)}.toolbar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 20px;padding:13px 16px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);margin-bottom:18px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.grow{flex:1 1 240px}.field-label{font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}.field-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.readout{font-family:var(--font-mono);font-size:11.5px;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.readout-edit{display:inline-flex;align-items:baseline;gap:5px;font-family:var(--font-mono);font-size:11.5px;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.readout-edit input.value-input{width:72px;padding:2px 6px;font-family:var(--font-mono);font-size:11.5px;font-variant-numeric:tabular-nums;text-align:right;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:5px;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield;transition:border-color .12s ease}.readout-edit input.value-input:hover{border-color:var(--text-3)}.readout-edit input.value-input:focus-visible{border-color:var(--accent);outline:none}.readout-edit input.value-input::-webkit-inner-spin-button,.readout-edit input.value-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.readout-edits{display:inline-flex;align-items:baseline;gap:10px;flex-wrap:wrap;justify-content:flex-end}.readout-edits .readout-edit input.value-input{width:58px}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8b1bf' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:6px 28px 6px 10px;font-size:13px;cursor:pointer;transition:border-color .12s ease;max-width:260px}select:hover{border-color:var(--text-3)}input[type=number],input[type=text]{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;font-variant-numeric:tabular-nums;width:96px;transition:border-color .12s ease}input[type=number]:hover,input[type=text]:hover{border-color:var(--text-3)}input::placeholder{color:var(--text-3)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--accent) var(--p, 50%),var(--surface-3) var(--p, 50%));cursor:pointer;margin:6px 0}input[type=range]:disabled{opacity:.35;cursor:default}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:none;box-shadow:0 1px 4px #00000080;transition:transform .1s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:none;box-shadow:0 1px 4px #00000080}input[type=range]::-moz-range-track{background:transparent}.range-dual{position:relative;height:16px;margin:6px 0}.range-dual .range-track,.range-dual .range-fill{position:absolute;top:50%;transform:translateY(-50%);height:4px;border-radius:2px;pointer-events:none}.range-dual .range-track{left:0;right:0;background:var(--surface-3)}.range-dual .range-fill{left:var(--lo, 0%);right:calc(100% - var(--hi, 100%));background:var(--accent)}.range-dual input[type=range]{position:absolute;top:0;left:0;width:100%;height:16px;margin:0;background:none;pointer-events:none}.range-dual input[type=range]:nth-of-type(1){z-index:3}.range-dual input[type=range]:nth-of-type(2){z-index:2}.range-dual input[type=range]::-webkit-slider-thumb{pointer-events:auto}.range-dual input[type=range]::-moz-range-thumb{pointer-events:auto}.segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:2px;gap:2px}.segmented button{border:none;background:transparent;color:var(--text-2);border-radius:5px;padding:4px 12px;font-size:12.5px;font-weight:550;cursor:pointer;transition:background .12s ease,color .12s ease}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--accent);color:#fff}.switch{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding-bottom:4px}.switch.disabled{cursor:not-allowed;opacity:.55}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{width:32px;height:18px;border-radius:9px;background:var(--surface-3);border:1px solid var(--border-strong);position:relative;flex:none;transition:background .14s ease,border-color .14s ease}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text-2);transition:transform .14s ease,background .14s ease}.switch input:checked+.switch-track{background:var(--accent);border-color:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(14px);background:#fff}.switch-label{font-size:12.5px;color:var(--text-2)}.cmap-bar{display:block;width:100%;max-width:260px;height:6px;border-radius:3px;border:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--radius-sm);padding:7px 16px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn:disabled{cursor:default;opacity:.45}.btn-primary{background:var(--accent);color:#fff}.btn-primary:not(:disabled):hover{background:var(--accent-hi)}.btn-ghost{background:transparent;color:var(--text-2);border-color:var(--border-strong)}.btn-ghost:not(:disabled):hover{color:var(--text);border-color:var(--text-3)}.panel-grid{display:flex;flex-wrap:wrap;gap:16px}.panel-col{display:flex;flex-direction:column;gap:10px;width:fit-content}.panel-col>.field{padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1);transition:border-color .14s ease}.panel-card:hover{border-color:var(--border-strong)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border)}.panel-title{font-size:12.5px;font-weight:600;letter-spacing:.01em}.panel-body{position:relative;line-height:0;background:var(--surface-2)}.panel-foot{padding:7px 12px;font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);border-top:1px solid var(--border)}.panel-err{display:grid;place-items:center;padding:16px;font-size:12px;color:var(--red);line-height:1.4;text-align:center}.slice-canvas{display:block;image-rendering:pixelated;background:var(--surface-2)}.skeleton{background:linear-gradient(100deg,var(--surface-2) 40%,var(--surface-3) 50%,var(--surface-2) 60%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{to{background-position:-200% 0}}.spin{width:12px;height:12px;border:2px solid var(--border-strong);border-top-color:var(--accent-hi);border-radius:50%;animation:rotate .7s linear infinite;flex:none}.slice-loading:after,.qr-img:has(>.qr-img-spin):after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.1) 50%,transparent 65%);background-size:220% 100%;animation:shimmer 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.slice-loading:after,.qr-img:has(>.qr-img-spin):after{animation:none}}@keyframes rotate{to{transform:rotate(360deg)}}.multi-grid{display:grid;gap:10px;align-items:center;max-width:860px}.multi-grid .col-head{text-align:center;font-family:var(--font-mono);font-size:11px;color:var(--text-3);padding-bottom:2px}.multi-grid .row-head{display:flex;justify-content:flex-start}.temp-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border-strong);font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.multi-grid .row-head.selected .temp-badge{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface-2));color:var(--accent-hi)}.multi-grid .cell{display:grid;place-items:center;aspect-ratio:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .14s ease}.multi-grid .cell:hover{border-color:var(--border-strong)}.multi-grid .cell-inner{position:relative;width:100%;line-height:0}.multi-grid .cell-inner svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.cell-skeleton{width:72%;height:72%;border-radius:var(--radius-sm)}H #f1a73a,b*/K #74a8ff,c*/L #34c98e. --------------------------------------------------------------------------- */ .bragg-page{display:flex;min-width:0}.bragg-card{flex:1;min-width:0;background:#0b0d10;border:1px solid #252c36;border-radius:14px;padding:22px 22px 20px;box-shadow:0 6px 24px #0006;display:flex;flex-direction:column;gap:14px}.bragg-title-row{display:flex;align-items:center;justify-content:flex-end;gap:9px}.bragg-chips{display:flex;align-items:center;gap:10px;flex:none}.bragg-toggle{display:inline-flex;align-items:center;font-size:12px}.bragg-chip{display:inline-flex;align-items:center;gap:7px;background:#11161d;border:1px solid #2a323d;border-radius:7px;padding:6px 11px}.bragg-chip-key{font:600 9px/1 system-ui;letter-spacing:.07em;text-transform:uppercase;color:#6c7686}.bragg-chip-select select{background:transparent;border:none;color:#e8ebf0;font:600 12px ui-monospace,monospace;cursor:pointer;outline:none}.bragg-chip-fit{color:#5a8f72;border-color:#20402f;font:600 12px system-ui}.bragg-chip-fit i{width:7px;height:7px;border-radius:50%;background:#34c98e}.bragg-stats{display:grid;grid-template-columns:repeat(5,1fr);background:#15191f;border:1px solid #252c36;border-radius:11px;overflow:hidden}.bragg-stat{padding:14px 17px;display:flex;flex-direction:column;gap:6px}.bragg-stat+.bragg-stat{border-left:1px solid #232a33}.bragg-stat-eyebrow{font:600 9px/1 system-ui;letter-spacing:.07em;text-transform:uppercase;color:#6c7686;white-space:nowrap}.bragg-stat-row{height:24px;display:flex;align-items:flex-end;gap:8px}.bragg-stat-v{font:700 21px/1 ui-monospace,monospace;color:#e8ebf0;letter-spacing:-.01em;white-space:nowrap}.bragg-stat-row{min-width:0}.bragg-stat-fit{font-size:19px}.bragg-stat-desc{font:500 10px/1 ui-monospace,monospace;color:#7e8a9c;padding-bottom:2px}.bragg-stat-medrow{gap:15px}.bragg-stat-med{font:700 15px/1 ui-monospace,monospace;color:#e8ebf0}.bragg-stat-med span{font:700 9px/1 system-ui;margin-right:3px}.bragg-grid{display:grid;grid-template-columns:1.62fr 1fr;gap:12px;align-items:stretch}@media(max-width:1100px){.bragg-grid{grid-template-columns:1fr}}.bragg-panel{background:#15191f;border:1px solid #252c36;border-radius:11px;padding:14px 15px;display:flex;flex-direction:column;gap:12px;min-width:0}.bragg-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.bragg-eyebrow{font:600 10px/1 system-ui;letter-spacing:.06em;text-transform:uppercase;color:#a8b1bf}.bragg-legend{display:flex;align-items:center;gap:11px}.bragg-leg{display:inline-flex;align-items:center;gap:5px;font:500 10px system-ui;color:#8b94a3}.bragg-leg>i{width:8px;height:8px;border-radius:50%;flex:none}.bragg-leg-ring{background:transparent!important;border:1.5px solid #e8b454}.bragg-tick-solid{width:2px!important;height:10px!important;border-radius:0!important;background:#e8ebf0}.bragg-tick-dash{width:2px!important;height:10px!important;border-radius:0!important;background:repeating-linear-gradient(#8b94a3 0 2px,transparent 2px 4px)}.bragg-scatter{background:#0d1014}.bragg-plot{position:relative;flex:1;min-height:272px;margin:4px 0 18px 36px;border-left:1px solid #2a323d;border-bottom:1px solid #2a323d}.bragg-plot-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(#1a212b 0 1px,transparent 1px 25%),repeating-linear-gradient(90deg,#1a212b 0 1px,transparent 1px 16.666%);opacity:.6}.bragg-ytick{position:absolute;left:-8px;transform:translate(-100%,-50%);font:500 9px ui-monospace,monospace;color:#56627a;white-space:nowrap}.bragg-xtick{position:absolute;bottom:-15px;transform:translate(-50%);font:500 9px ui-monospace,monospace;color:#56627a}.bragg-padline{position:absolute;left:0;right:0;border-top:1.5px dashed #56627a}.bragg-padline span{position:absolute;right:2px;top:-13px;font:500 9px ui-monospace,monospace;color:#7e8a9c}.bragg-dot{position:absolute;width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);border:none;padding:0;cursor:pointer}.bragg-dot.sel{outline:2px solid #fff;outline-offset:1px;z-index:2}.bragg-hist{gap:11px}.bragg-hist-row{display:flex;flex-direction:column;gap:5px}.bragg-hist-label{display:flex;align-items:baseline;justify-content:space-between}.bragg-hist-label>span:first-child{font:700 11px system-ui}.bragg-hist-med{font:500 10px ui-monospace,monospace;color:#7e8a9c}.bragg-bars{position:relative;height:54px;display:flex;align-items:flex-end;gap:1.5px;border-bottom:1px solid #2a323d}.bragg-bar{flex:1;min-height:1px;border-radius:1px 1px 0 0}.bragg-bar-fit{position:absolute;top:0;bottom:0;width:1.5px;background:#e8ebf08c;transform:translate(-50%)}.bragg-bar-meas{position:absolute;top:0;bottom:0;width:0;border-left:1.5px dashed #8b94a3;transform:translate(-50%)}.bragg-hist-curve{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.bragg-leg-curve{width:12px!important;height:0!important;border-radius:0!important;border-top:1.4px solid #a8b1bf}.bragg-table{padding:0;gap:0;overflow:hidden}.bragg-table>.bragg-panel-head{padding:14px 15px}.bragg-sort{display:inline-flex;gap:4px}.bragg-sort button{font:600 10px ui-monospace,monospace;padding:4px 10px;border-radius:6px;cursor:pointer;background:#11161d;border:1px solid #252c36;color:#8b94a3}.bragg-sort button.on{background:#1f2937;border-color:#3a4658;color:#cfe0ff}.bragg-thead,.bragg-trow{display:grid;grid-template-columns:84px 58px 64px 1fr 1fr 1fr 56px;align-items:center;gap:6px;padding:0 15px}.bragg-thead{background:#101317;border-top:1px solid #252c36;border-bottom:1px solid #252c36;height:30px;font:600 9px system-ui;letter-spacing:.04em;text-transform:uppercase;color:#6c7686}.bragg-thead>span{white-space:nowrap}.bragg-tbody{max-height:296px;overflow-y:auto}.bragg-trow{width:100%;text-align:left;border:none;border-bottom:1px solid #1a2029;background:transparent;cursor:pointer;height:30px;font:500 11px ui-monospace,monospace;color:#cdd4df}.bragg-trow:hover{background:#11161d}.bragg-trow.sel{background:#16202e;box-shadow:inset 2px 0 #4f8ff7}.bragg-trow.sel .bragg-hkl{color:#cfe0ff}.bragg-hkl{display:inline-flex;align-items:center;gap:5px;overflow:hidden;text-overflow:ellipsis}.bragg-flag-dot{width:5px;height:5px;border-radius:50%;background:#e8b454;flex:none}.bragg-fit{color:#7e8a9c}.bragg-trow-more{padding:9px 15px;font:500 10px system-ui;color:#56627a;text-align:center}.bragg-detail{gap:11px}.bragg-sel-hkl{font:600 12px ui-monospace,monospace;color:#cfe0ff}.bragg-sel-meta{font:500 11px ui-monospace,monospace;color:#8b94a3;margin-top:-6px}.bragg-sliders{display:flex;gap:16px;align-items:flex-end}.bragg-sliders>*{flex:1;min-width:0}.bragg-cmap{display:flex;align-items:center;gap:10px}.bragg-ctl-label{font:600 9px system-ui;letter-spacing:.07em;text-transform:uppercase;color:#6c7686;flex:none}.bragg-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bragg-tile{display:flex;flex-direction:column;gap:5px}.bragg-tile-canvas{position:relative;aspect-ratio:1;border:1px solid #252c36;border-radius:7px;overflow:hidden;background:#000004}.bragg-tile-canvas canvas{width:100%;height:100%;display:block;image-rendering:auto}.bragg-tile-canvas svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.bragg-tile-empty{display:flex;align-items:center;justify-content:center;color:#56627a;font:500 10px system-ui}.bragg-tile-label{font:600 10px system-ui;text-align:center}.bragg-cross{stroke:#ffffff40;stroke-width:1}.bragg-ell-fit{fill:none;stroke:#7fd4ff;stroke-width:2.2}.bragg-ell-meas{fill:none;stroke:#ffffffd9;stroke-width:1.6;stroke-dasharray:5 4}.bragg-ell-floor{fill:none;stroke:#cdd4df8c;stroke-width:1.4;stroke-dasharray:4 4}.bragg-leg-row{display:flex;gap:12px}.bragg-ell-leg-fit{width:11px!important;height:0!important;border-radius:0!important;border-top:2.2px solid #7fd4ff}.bragg-ell-leg-meas{width:11px!important;height:0!important;border-radius:0!important;border-top:1.6px dashed #fff}.bragg-ell-leg-floor{width:11px!important;height:0!important;border-radius:0!important;border-top:1.4px dashed #cdd4df}.bragg-cmap select{background:#1b2027;border:1px solid #333d4a;border-radius:7px;color:#e8ebf0;font:500 11px system-ui;padding:5px 9px;cursor:pointer}.bragg-cmap .cmap-bar{flex:1;height:14px;border-radius:4px;display:block}.bragg-readout{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:6px 12px;align-items:center;padding-top:8px;border-top:1px solid #232a33}.bragg-readout>span{font:600 11px ui-monospace,monospace;color:#cdd4df;text-align:right}.bragg-readout>span:nth-child(4n+1){text-align:left}.bragg-readout-key{color:#8b94a3!important;font:500 9px system-ui!important;letter-spacing:.06em;text-transform:uppercase}.bragg-meta{display:flex;flex-wrap:wrap;gap:8px 20px;background:#101317;border:1px solid #252c36;border-radius:10px;padding:11px 15px}.bragg-meta-item{display:flex;gap:7px;align-items:baseline}.bragg-meta-key{font:600 9px system-ui;letter-spacing:.06em;text-transform:uppercase;color:#6c7686}.bragg-meta-val{font:500 11px ui-monospace,monospace;color:#cdd4df}.pipeline-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}@media(max-width:820px){.pipeline-layout{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.card-head h3{margin:0;font-size:13px;font-weight:650}.card-body{padding:16px}.config-section{display:flex;flex-direction:column;gap:12px}.config-section+.config-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.config-section-title{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.config-step-no{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text-2);font-size:9.5px;font-weight:700;letter-spacing:0}.card-title-row{display:flex;align-items:center;gap:12px}.card-title-row h3{margin:0;flex:none;font-size:15px;font-weight:700;color:var(--text);letter-spacing:0}.card-title-rule{flex:1 1 0;height:1px;background:var(--border-subtle)}.stage-card>.card-title-row{padding:14px 16px 0}.punch-group-no{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:2px 7px;border-radius:5px;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--accent-hi);font-family:var(--font-mono);font-size:10px;font-weight:700;flex:none}.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.config-section select,.config-section input[type=number]{width:100%;max-width:none}.config-section select:disabled,.config-section input:disabled{opacity:.45;cursor:not-allowed}.ring-viz{display:block;width:128px;height:128px;margin:0 auto}.ring-viz-pie .even{fill:var(--surface-2)}.ring-viz-pie .odd{fill:var(--surface-3)}.ring-viz-pie path{stroke:var(--bg);stroke-width:.6}.ring-viz-hub{fill:var(--surface);stroke:var(--border-strong);stroke-width:1}.ring-viz-count{fill:var(--text);font-family:var(--font-mono);font-size:15px;font-weight:700}.pring-underlay{stroke:var(--surface-3);opacity:.5}.rprof{display:block;width:100%;max-width:190px;margin:0 auto}.rprof-line{stroke:var(--accent);stroke-width:1.6}.rprof-fill{fill:var(--accent);opacity:.16}.rprof-win{fill:var(--amber);opacity:.18}.rprof-axis{stroke:var(--border-strong);stroke-width:1}.rprof-tick{stroke:var(--text-3);stroke-width:1}.rprof-lbl{fill:var(--text-3);font-family:var(--font-mono);font-size:8px}.ring-viz-cap{margin-top:6px;text-align:center;font-size:10.5px;line-height:1.4;color:var(--text-3)}.ring-viz-cap b{color:var(--text-2);font-weight:650}.config-sub-title{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);opacity:.85}.config-note{margin:2px 0 0;font-size:11px;line-height:1.4;color:var(--text-3)}.config-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.config-sub-row,.switch-row{display:flex;align-items:center;gap:6px}.field-label sub{font-size:.8em;text-transform:none}.helptip{position:relative;display:inline-flex;vertical-align:middle;outline:none}.helptip-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;border:1px solid var(--border-strong);color:var(--text-3);font-size:9px;font-weight:700;line-height:1;cursor:help;transition:color .12s ease,border-color .12s ease}.helptip:hover .helptip-icon,.helptip:focus .helptip-icon{color:var(--accent);border-color:var(--accent)}.helptip-bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:232px;max-width:232px;padding:8px 10px;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-2);font-size:11px;font-weight:400;line-height:1.45;letter-spacing:normal;text-transform:none;white-space:normal;z-index:30;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 8px 24px #0006;transition:opacity .12s ease}.helptip-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--border-strong)}.helptip:hover .helptip-bubble,.helptip:focus .helptip-bubble{opacity:1;visibility:visible}.config-page .helptip-bubble{left:auto;right:0;transform:none}.config-page .helptip-bubble:after{left:auto;right:7px;transform:none}:root{--punch-slice-size: 320px}.punch-viz{margin-top:6px;width:100%}.punch-tabs{display:flex;gap:4px;margin-bottom:6px}.punch-tabs button{flex:1;padding:4px 0;font-size:11px;font-family:var(--font-mono);color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.punch-tabs button:hover{color:var(--text-2);border-color:var(--border-strong)}.punch-tabs button.on{color:var(--accent-hi);background:var(--accent-soft);border-color:var(--accent)}.punch-viz .punch-schematic{display:block;width:100%;max-width:220px;margin:0 auto}.punch-preview{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.punch-preview-frame{position:relative;width:100%;aspect-ratio:1 / 1;line-height:0;border:1px solid var(--border);background:var(--surface-2);overflow:hidden}.punch-preview-frame>div{width:100%!important;height:100%!important}.punch-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.punch-preview-meta,.punch-preview-empty{max-width:100%;color:var(--text-3);font-size:11px;line-height:1.35;text-align:center}.punch-preview-empty{width:100%;aspect-ratio:1 / 1;min-height:34px;display:grid;place-items:center;margin:6px auto 0;padding:8px 12px;border:1px solid var(--border);background:var(--surface-2)}.punch-workspace{display:flex;flex-direction:column;gap:16px;min-width:0}.punch-controls{display:flex;flex-direction:column;gap:18px;min-width:0}.cfg-stage{display:flex;flex-direction:column;gap:10px;min-width:0}.cfg-stage--off .cfg-box{opacity:.45}.cfg-stage-head{display:flex;align-items:center;gap:8px}.cfg-stage-head .helptip,.cfg-stage-toggle{margin-left:auto}.cfg-stage-head .helptip~.cfg-stage-toggle{margin-left:0}.cfg-stage-toggle .switch{flex-direction:row-reverse;gap:8px;padding-bottom:0}.cfg-stage-toggle .switch-label{font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.cfg-stage-grid,.cfg-stage-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}.cfg-box{display:flex;flex-direction:column;gap:12px;min-width:0;padding:14px 15px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.cfg-box .config-grid,.cfg-box .config-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.cfg-box .config-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cfg-box--plot{align-items:center;justify-content:center;min-height:130px;border-style:dashed;background:repeating-linear-gradient(135deg,#12161c,#12161c 6px,#0e1217 6px,#0e1217 12px)}.cfg-box-head{display:flex;align-items:center;gap:8px}.cfg-box-head .helptip{margin-left:auto}.cfg-box-eyebrow{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.cfg-box-eyebrow--sub{color:var(--accent-hi)}.ring-removal-controls{display:flex;flex-direction:column;gap:12px}.ring-removal-spacer-hint{color:var(--text-3);opacity:.65;font-size:11px;letter-spacing:.04em;text-align:center;padding:0 10px}.ring-removal-figure{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.ring-removal-viz{width:168px}.ring-eqn{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:100%;overflow-x:auto;font-family:"Cambria Math","STIX Two Math",Palatino Linotype,Georgia,serif}.ring-eqn .eq{font-size:15px;color:var(--text);white-space:nowrap;text-align:center}.ring-eqn .eq.sub{font-size:13px;color:var(--text-2)}.ring-eqn i{font-style:italic}.ring-eqn .op{font-style:normal}.ring-eqn sub,.ring-eqn sup{font-style:normal;font-family:var(--font-mono);font-size:.66em}.punch-group-head{display:flex;align-items:center;gap:8px}.punch-group-title{font-size:10.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--text-2)}.punch-group-title--sub{color:var(--accent-hi)}.punch-group-unit{padding:1px 6px;border-radius:999px;background:var(--surface-3);color:var(--text-3);font-family:var(--font-mono);font-size:9.5px;line-height:1.55}.punch-group-head .helptip{margin-left:auto}.punch-group .switch-row{margin-top:1px;padding-top:11px;border-top:1px solid var(--border)}.punch-preview-controls{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.punch-preview-pane{width:100%}.punch-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%}.punch-preview-panel{min-width:0;width:100%}.punch-preview-panel-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px;color:var(--text-2);font-size:11px;font-weight:650}.punch-preview-panel-head span:last-child{color:var(--text-3);font-family:var(--font-mono);font-weight:500}.punch-preview-panel .field{margin-bottom:8px}.punch-preview-panel .field-row{gap:6px}.punch-preview-panel .field-label,.punch-preview-panel .readout{font-size:9.5px}.punch-preview-panel .punch-legend{gap:7px;margin-top:5px;font-size:9.5px}.punch-grid{stroke:var(--border);stroke-width:.7}.punch-fp{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1}.punch-fp-tilted{stroke-width:1.25}.punch-margin{fill:none;stroke:var(--accent);stroke-width:.8;stroke-dasharray:2 2;opacity:.5}.punch-tail{fill:var(--accent);opacity:.12}.punch-ib{fill:var(--amber-soft);stroke:var(--amber);stroke-width:1.1}.punch-sat{fill:var(--green-soft);stroke:var(--green);stroke-width:1;stroke-dasharray:3 2}.punch-qband{fill:none;stroke:var(--text);stroke-width:1.2;stroke-dasharray:4 3;opacity:.9;paint-order:stroke}.punch-axis{fill:var(--text-3);font-family:var(--font-mono);font-size:11px;font-style:italic}.punch-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px;font-size:10.5px;color:var(--text-3)}.punch-legend span{display:inline-flex;align-items:center;gap:5px}.punch-legend .sw{width:13px;height:9px;border-radius:5px;display:inline-block}.punch-legend .sw.fp{background:var(--accent-soft);border:1px solid var(--accent)}.punch-legend .sw.ib{background:var(--amber-soft);border:1px solid var(--amber)}.punch-legend .sw.sat{background:var(--green-soft);border:1px solid var(--green)}.punch-legend .sw.qband{background:transparent;border:1px dashed var(--text)}.punch-legend .punch-legend-unit{margin-left:auto;font-family:var(--font-mono);color:var(--text-2)}.config-actions{display:flex;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.config-actions .btn-primary{flex:1}.exec-col{display:flex;flex-direction:column;gap:18px;min-width:0}.config-page{display:flex;flex-direction:column;gap:16px}.data-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px}.data-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.data-actions{display:flex;align-items:center;justify-content:flex-end;flex:none;flex-wrap:wrap;gap:10px}.data-card-grid{display:grid;grid-template-columns:minmax(360px,1.35fr) minmax(280px,.9fr);gap:14px;align-items:start}.data-source-panel,.dataset-panel{display:flex;flex-direction:column;min-width:0;gap:6px;padding:10px 12px;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-sm)}.data-source-panel .field,.dataset-panel .field{flex:none;min-width:0}.dataset-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-3);font-size:11px;line-height:1.35}.dataset-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-stage-board{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 auto;min-width:220px}.dataset-stage-item{display:inline-flex;align-items:center;gap:6px;min-width:0;min-height:26px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2)}.dataset-stage-item.ok{border-color:color-mix(in srgb,var(--green) 52%,var(--border));background:var(--green-soft)}.dataset-stage-item.missing{border-color:color-mix(in srgb,var(--amber) 42%,var(--border));background:var(--amber-soft)}.dataset-stage-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--text-3)}.dataset-stage-item.ok .dataset-stage-dot{background:var(--green)}.dataset-stage-item.missing .dataset-stage-dot{background:var(--amber)}.dataset-stage-label,.dataset-stage-state{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-stage-label{color:var(--text);font-size:11px;font-weight:700}.dataset-stage-state{color:var(--text-3);font-size:10.5px}.dataset-stage-item.ok .dataset-stage-state{color:var(--green)}.dataset-stage-item.missing .dataset-stage-state{color:var(--amber)}.data-root-row{display:flex;align-items:center;gap:8px;min-width:0}.data-root-row input[type=text]{min-width:260px;flex:1 1 360px}.data-root-status{min-height:14px;font-size:11px;color:var(--text-3)}.data-root-status.error{color:var(--red)}.boot-panel{display:flex;align-items:flex-start;gap:8px;padding:7px 9px;border-radius:var(--radius-sm);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);min-height:32px}.boot-panel--ready{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 25%,transparent)}.boot-panel--ready .boot-panel-icon{color:var(--green)}.boot-panel--error{background:var(--red-soft);border-color:color-mix(in srgb,var(--red) 25%,transparent)}.boot-panel--error .boot-panel-icon{color:var(--red)}.boot-panel-icon{flex:none;display:flex;align-items:center;margin-top:1px;color:var(--accent)}.boot-panel-body{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.boot-panel-label{font-size:11.5px;color:var(--text-2);line-height:1.35}.boot-panel-error{font-size:11px;color:var(--red)}.boot-panel-bar{height:3px;border-radius:2px;background:var(--border-strong);overflow:hidden}.boot-panel-fill{height:100%;border-radius:2px;background:var(--accent);transition:width .4s ease}@media(max-width:1180px){.data-card-grid{grid-template-columns:1fr}}@media(max-width:1000px){.data-card-head{flex-direction:column;align-items:stretch}.dataset-stage-board{width:100%}.dataset-stage-item{flex:1 1 150px}.data-actions{justify-content:flex-start;width:100%}.data-actions .btn{width:auto;flex:1 1 150px}}@media(max-width:720px){.data-root-row{flex-wrap:wrap}.data-root-row input[type=text]{flex-basis:100%}.data-root-row .btn{flex:1 1 120px}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.toolbar-actions{display:flex;align-items:center;gap:14px;margin-left:auto}.config-cards{display:flex;flex-direction:column;gap:12px}.stage-card{min-width:0}.stage-card .card-head h3{display:flex;align-items:center;gap:7px}.stage-card .card-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,280px);gap:12px 16px;align-items:start}.stage-card .card-body>.config-grid,.stage-card .card-body>.config-grid-3,.stage-card .card-body>.config-sub-row,.stage-card .card-body>.switch-row,.stage-card .card-body>.field{grid-column:1}.stage-card .card-body>.punch-workspace{grid-column:1 / -1}.stage-card .card-body>.stage-visual{grid-column:2;grid-row:1 / span 10;align-self:center}.stage-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0}.stage-card-compact .card-body{display:flex;flex-direction:column;gap:12px}.punch-stage-card .card-body{display:flex;flex-direction:column;align-items:stretch;gap:12px}.punch-stage-card .card-body>.config-grid,.punch-stage-card .card-body>.config-grid-3,.punch-stage-card .card-body>.config-sub-row{width:100%}.punch-stage-card .card-body>.config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pdf-preview-controls{display:flex}@media(max-width:920px){.stage-card .card-body{grid-template-columns:1fr}.stage-card .card-body>.config-grid,.stage-card .card-body>.config-grid-3,.stage-card .card-body>.config-sub-row,.stage-card .card-body>.switch-row,.stage-card .card-body>.field,.stage-card .card-body>.punch-workspace,.stage-card .card-body>.stage-visual{grid-column:1;grid-row:auto}.punch-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.punch-preview-controls{grid-template-columns:1fr;display:flex}}@media(max-width:640px){.punch-controls{grid-template-columns:1fr}}.exec-page{display:flex;flex-direction:column;gap:16px;min-width:0}.exec-head{background:#0b0d10;border:1px solid #252c36;border-radius:12px;box-shadow:0 6px 24px #0006;padding:18px 20px;display:flex;flex-direction:column;gap:15px}.exec-head-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.exec-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 11px;border-radius:999px;font:700 12.5px/1 system-ui}.exec-pill-ico{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;font:700 11px/1 system-ui}.exec-pill.running{background:#4f8ff71f;border:1px solid rgba(79,143,247,.4);color:#4f8ff7}.exec-pill.done{background:#34c98e1f;border:1px solid rgba(52,201,142,.4);color:#34c98e}.exec-pill.error{background:#e8645c1f;border:1px solid rgba(232,100,92,.4);color:#e8645a}.exec-pill.cancelled{background:#8b94a31a;border:1px solid rgba(139,148,163,.35);color:#8b94a3}.exec-pill.idle{background:#14181e;border:1px solid #2a323d;color:#6c7686}.exec-spin{width:13px;height:13px;border-radius:50%;border:2px solid rgba(79,143,247,.3);border-top-color:#4f8ff7;box-sizing:border-box;animation:exec-spin .8s linear infinite;display:inline-block;flex:none}.exec-meta{display:flex;align-items:baseline;gap:8px;min-width:0}.exec-meta-ds{font:600 13px/1 system-ui;color:#e8ebf0}.exec-meta-id{font:400 11px ui-monospace,monospace;color:#56627a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exec-right{display:flex;align-items:center;gap:16px;margin-left:auto;flex:none}.exec-timing{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.exec-timing-v{font:600 16px/1 ui-monospace,monospace;color:#e8ebf0}.exec-timing-v.done{color:#34c98e}.exec-timing-v.error{color:#e8645a}.exec-timing-v.cancelled{color:#a8b1bf}.exec-timing-v.idle{color:#56627a}.exec-timing-l{font:500 10px/1 system-ui;color:#6c7686}.exec-vrule{width:1px;height:30px;background:#2a323d}.exec-actions{display:flex;align-items:center;gap:9px}.exec-btn{border-radius:7px;padding:9px 16px;font:600 12.5px system-ui;cursor:pointer;display:inline-flex;align-items:center;gap:7px;border:none;transition:background .15s ease,border-color .15s ease,color .15s ease,filter .15s ease}.exec-btn:disabled{opacity:.5;cursor:default}.exec-btn-ghost{background:transparent;border:1px solid #333d4a;color:#a8b1bf}.exec-btn-ghost:not(:disabled):hover{border-color:#46525f;color:#cdd4df}.exec-btn-primary{background:#4f8ff7;color:#fff;padding:9px 18px}.exec-btn-primary:not(:disabled):hover{filter:brightness(1.1)}.exec-btn-cancel{background:transparent;border:1px solid rgba(232,100,92,.45);color:#e8645a}.exec-btn-cancel:not(:disabled):hover{background:#e8645c1a;border-color:#e8645cb3}.exec-btn-cancel-sq{width:8px;height:8px;border-radius:2px;background:#e8645a;flex:none}.exec-overall{display:flex;flex-direction:column;gap:8px}.exec-overall-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.exec-overall-lbl{font:600 9.5px/1 system-ui;letter-spacing:.07em;text-transform:uppercase}.exec-overall-lbl.running{color:#74a8ff}.exec-overall-lbl.done{color:#5a8f72}.exec-overall-lbl.error{color:#e8645a}.exec-overall-lbl.cancelled{color:#8b94a3}.exec-overall-pct{font:700 12px ui-monospace,monospace}.exec-track{position:relative;height:8px;border-radius:4px;background:#15191f;border:1px solid #232a33;overflow:hidden}.exec-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;transition:width .3s ease}.exec-shimmer{position:absolute;top:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);background-size:200% 100%;animation:exec-shimmer 1.6s linear infinite}.exec-idle-track-row{display:flex;align-items:center;gap:9px;padding:2px 0}.exec-idle-track{flex:1;height:8px;border-radius:4px;background:repeating-linear-gradient(90deg,#15191f 0,#15191f 7px,#0b0d10 7px,#0b0d10 14px);border:1px solid #1c2230}.exec-idle-track-lbl{font:500 11px system-ui;color:#56627a;flex:none}.exec-banner{display:flex;align-items:flex-start;gap:11px;border-radius:10px;padding:13px 16px}.exec-banner.error{background:#e8645c14;border:1px solid rgba(232,100,92,.35)}.exec-banner.cancelled{background:#14181e;border:1px solid #2a323d}.exec-banner-ico{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;flex:none;font:700 11px system-ui}.exec-banner.error .exec-banner-ico{background:#e8645c29;color:#e8645a}.exec-banner.cancelled .exec-banner-ico{background:#1b2027;color:#8b94a3}.exec-banner-txt{display:flex;flex-direction:column;gap:3px;min-width:0}.exec-banner-title{font:700 12.5px/1.2 system-ui}.exec-banner.error .exec-banner-title{color:#e8645a}.exec-banner.cancelled .exec-banner-title{color:#cdd4df}.exec-banner-body{font:400 12px/1.5 system-ui;color:#a8b1bf}.exec-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:16px;align-items:stretch}@media(max-width:900px){.exec-body{grid-template-columns:1fr}}.exec-panel{background:#0b0d10;border:1px solid #252c36;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px;box-shadow:0 6px 24px #0006}.exec-panel-head{display:flex;align-items:center;gap:10px}.exec-panel-title{font:700 15px/1 system-ui;color:#e8ebf0;letter-spacing:-.01em}.exec-panel-rule{flex:1;height:1px;background:#1c2230}.exec-panel-count{font:600 10px ui-monospace,monospace;color:#56627a}.exec-stage{display:flex;gap:13px}.exec-stage-rail{display:flex;flex-direction:column;align-items:center;flex:none;width:18px}.exec-node{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box}.exec-node.done{background:#34c98e24;border:1px solid rgba(52,201,142,.4);color:#34c98e;font:700 10px system-ui}.exec-node.active{border:2px solid rgba(79,143,247,.25);border-top-color:#4f8ff7;animation:exec-spin .8s linear infinite}.exec-node.failed{background:#e8645c29;border:1px solid rgba(232,100,92,.5);color:#e8645a;font:700 10px system-ui}.exec-node.cancelled{background:#1b2027;border:1px solid #3a424e;color:#8b94a3;font:700 13px/1 system-ui}.exec-node.pending{background:#11151b;border:1px solid #333d4a;color:#56627a;font:700 9px ui-monospace,monospace}.exec-connector{width:2px;flex:1;min-height:30px;border-radius:1px;margin:4px 0 2px;background:#232a33}.exec-connector.done{background:#34c98e59}.exec-stage-main{flex:1;min-width:0;padding-bottom:18px}.exec-stage-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.exec-stage-name{font:600 13px/1.2 system-ui;color:#e8ebf0}.exec-stage-name.dim{color:#8b94a3}.exec-stage-name.cancelled{color:#cdd4df}.exec-stage-no{font:700 10px ui-monospace,monospace;color:#56627a;margin-right:7px}.exec-stage-status{font:600 11px ui-monospace,monospace;white-space:nowrap}.exec-stage-status.done{color:#5a8f72}.exec-stage-status.active{color:#74a8ff}.exec-stage-status.failed{color:#e8645a}.exec-stage-status.cancelled{color:#8b94a3}.exec-stage-status.pending{color:#56627a}.exec-stage-meta{margin-top:5px;font:400 11.5px/1.4 system-ui;color:#6c7686}.exec-stage-meta.dim{color:#56627a}.exec-stage-bar{margin-top:9px;position:relative;height:5px;border-radius:3px;background:#15191f;border:1px solid #232a33;overflow:hidden}.exec-stage-bar>i{position:absolute;left:0;top:0;bottom:0;background:#4f8ff7;border-radius:3px}.exec-stage-bar>.exec-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);background-size:200% 100%}.exec-stream{display:inline-flex;align-items:center;gap:6px;padding:2px 9px 2px 7px;background:#34c98e1a;border:1px solid rgba(52,201,142,.3);border-radius:999px}.exec-stream-dot{width:6px;height:6px;border-radius:50%;background:#34c98e;animation:exec-pulse 1.3s ease-in-out infinite}.exec-stream-lbl{font:600 9.5px/1 system-ui;letter-spacing:.05em;text-transform:uppercase;color:#5a8f72}.exec-log{background:#070a0e;border:1px solid #1c2230;border-radius:10px;padding:13px 15px;flex:1;min-height:340px;max-height:430px;overflow-y:auto;display:flex;flex-direction:column;gap:5px}.exec-log-line{display:flex;gap:13px;align-items:baseline}.exec-log-t{font:400 11px/1.55 ui-monospace,monospace;color:#3f4856;flex:none}.exec-log-m{font:400 11.5px/1.55 ui-monospace,monospace;white-space:pre-wrap;word-break:break-word}.exec-log-m.blue{color:#74a8ff}.exec-log-m.info{color:#8b94a3}.exec-log-m.success{color:#5a8f72}.exec-log-m.warn{color:#e8b454}.exec-log-m.error{color:#e8645a}.exec-log-m.dim{color:#6c7686}.exec-log-cursor{display:inline-block;width:7px;height:12px;background:#74a8ff;margin-left:4px;vertical-align:-1px;animation:exec-blink 1s step-end infinite}.exec-log-empty{font:400 12px/1.6 system-ui;color:#56627a}.exec-log::-webkit-scrollbar{width:9px}.exec-log::-webkit-scrollbar-thumb{background:#252c36;border-radius:6px;border:2px solid #0b0d10}.exec-idle{background:#0b0d10;border:1px solid #252c36;border-radius:12px;padding:64px 20px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 6px 24px #0006}.exec-idle-glyph{width:56px;height:56px;border-radius:50%;background:#11151b;border:1px solid #2a323d;display:flex;align-items:center;justify-content:center;color:#56627a;font-size:20px;padding-left:4px}.exec-idle-txt{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;max-width:440px}.exec-idle-title{font:700 16px/1.2 system-ui;color:#cdd4df}.exec-idle-sub{font:400 12.5px/1.6 system-ui;color:#8b94a3}.exec-idle-sub b{color:#a8b1bf;font-weight:600}@keyframes exec-spin{to{transform:rotate(360deg)}}@keyframes exec-blink{50%{opacity:0}}@keyframes exec-shimmer{to{background-position:-200% 0}}@keyframes exec-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.exec-spin,.exec-node.active,.exec-shimmer,.exec-stream-dot,.exec-log-cursor{animation:none}}.card-head-actions{display:flex;align-items:center;gap:10px}.btn-sm{padding:4px 11px;font-size:12px}.nav-dot{width:7px;height:7px;margin-left:auto;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent-soft);animation:nav-pulse 1.6s ease-out infinite}@keyframes nav-pulse{0%{box-shadow:0 0 #4f8ff780}70%{box-shadow:0 0 0 6px #4f8ff700}to{box-shadow:0 0 #4f8ff700}}.banner{display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:550;margin-bottom:14px;border:1px solid}.banner.ok{background:var(--green-soft);border-color:#34c98e59;color:var(--green)}.banner.warn{background:var(--amber-soft);border-color:#e8b45459;color:var(--amber)}.banner.err{background:var(--red-soft);border-color:#ef6a6a59;color:var(--red)}.banner.muted{background:var(--surface-2);border-color:var(--border);color:var(--text-2);font-weight:500}.log{background:#0a0c0f;border-radius:0 0 var(--radius) var(--radius);padding:10px 14px;height:300px;overflow-y:auto;font:11.5px/1.6 var(--font-mono)}.log-empty{color:var(--text-3);font-family:inherit}.log-line{display:flex;align-items:baseline;gap:9px;padding:2.5px 0}.log-line+.log-line{border-top:1px solid rgba(255,255,255,.035)}.log-glyph{flex:none;width:6px;height:6px;margin-top:1px;border-radius:50%;background:var(--text-3);align-self:center}.log-line.start .log-glyph,.log-line.progress .log-glyph{background:var(--accent-hi);box-shadow:0 0 5px var(--accent)}.log-line.done .log-glyph{background:var(--green)}.log-line.error .log-glyph{background:var(--red)}.log-line .log-stage{flex:0 0 92px;color:var(--accent-hi)}.log-line.done .log-stage{color:var(--green)}.log-line.skip .log-stage{color:var(--text-3)}.log-line.error,.log-line.error .log-stage{color:var(--red)}.log-line .log-msg{color:var(--text-2);white-space:pre-wrap;word-break:break-word}.log-count{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 24px;text-align:center}.empty-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-3)}.empty.error .empty-icon{background:var(--red-soft);border-color:#ef6a6a59;color:var(--red)}.empty-title{font-size:13.5px;font-weight:600;color:var(--text-2)}.empty.error .empty-title{color:var(--red)}.empty-hint{font-size:12px;color:var(--text-3);max-width:420px;line-height:1.5}.meta-strip{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:18px;padding:10px 2px 0;border-top:1px solid var(--border)}.meta-item{display:flex;flex-direction:column;gap:1px;min-width:0}.meta-key{font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}.meta-val{font-family:var(--font-mono);font-size:11.5px;color:var(--text-2);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:460px}.qr-page{display:flex;flex-direction:column;gap:16px}.qr-header{display:flex;align-items:center;gap:16px;padding:8px 18px;background:linear-gradient(180deg,var(--surface),var(--bg-raised));border:1px solid var(--border);border-radius:var(--radius)}.qr-header-dataset{display:flex;align-items:center;gap:9px}.qr-eyebrow{font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.qr-divider{width:1px;height:24px;background:var(--border);flex:none}.qr-roundtrip{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:15px;font-weight:600}.qr-rt-arrow{font-size:13px;font-weight:300;color:#56627a}.qr-rt--q{color:#f1a73a}.qr-rt--r{color:var(--accent-hi)}.qr-rt--qp{color:var(--green)}.qr-rt-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:5px;border:1px solid transparent;font-family:var(--font-mono);font-size:10px;font-weight:700;flex:none}.qr-rt-badge.qr-rt--q{background:#f59e0b24;border-color:#f59e0b6b}.qr-rt-badge.qr-rt--r{background:#4f8ff729;border-color:#4f8ff76b}.qr-rt-badge.qr-rt--qp{background:#34c98e26;border-color:#34c98e6b}.qr-desc{font-size:11.5px;line-height:1.4;color:#7a8494}.qr-header-actions{display:flex;gap:8px;margin-left:auto}.qr-clusters{display:flex;gap:14px}.qr-cluster{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px}.qr-cluster-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.qr-cluster-title{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.qr-cluster-toggle .switch{flex-direction:row-reverse;padding-bottom:0}.qr-cluster-toggle .switch-label{font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.qr-cluster-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 22px;margin-bottom:13px}.qr-cluster-slider{width:140px}.qr-cluster-cmap{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.qr-cluster-cmap select{padding:5px 26px 5px 10px;font-size:12.5px}.qr-cluster-cmap .cmap-bar{flex:1 1 0;min-width:0;max-width:none;height:8px}.qr-flow-row{display:flex;align-items:stretch;gap:14px}.qr-panel{flex:1 1 0;min-width:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.qr-panel--hi{border-color:var(--border-strong);box-shadow:0 0 0 1px #4f8ff726}.qr-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:6px 11px;background:var(--surface);border-bottom:1px solid var(--border)}.qr-panel-titlegroup{display:flex;align-items:center;gap:7px;min-width:0}.qr-panel-title{font-size:11px;font-weight:650;color:var(--text)}.qr-panel-tag{font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.qr-panel-head-actions{display:flex;align-items:center;gap:8px}.qr-save-btn{padding:5px 11px;font-size:11px;border-radius:6px}.qr-saved{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:9.5px;color:var(--green);white-space:nowrap}.qr-saved--err{color:var(--red)}.qr-dot{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 6px #34c98e99}.qr-img{position:relative;aspect-ratio:1 / 1;display:grid;place-items:center;background:var(--surface-2);overflow:hidden}.qr-img>div[style]{max-width:100%;max-height:100%}.qr-img--free{aspect-ratio:auto;overflow:visible}.qr-img--free>div[style]{max-height:none}.qr-img .panel-err{padding:12px}.qr-img-spin{position:absolute;top:8px;right:8px}.qr-foot{display:flex;flex-direction:column;gap:6px;padding:10px 11px;margin-top:auto;background:var(--bg-raised);border-top:1px solid var(--border)}.qr-foot .field-label{font-size:10px}.qr-foot-band{padding-top:7px;border-top:1px solid var(--border-subtle)}.qr-foot-band .field-label{color:var(--accent-hi)}.qr-foot--metrics{gap:7px}.qr-metric-row{display:flex;align-items:center;gap:7px}.qr-verdict{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:var(--green-soft);border:1px solid rgba(52,201,142,.4);color:var(--green);font-size:8.5px;font-weight:700;letter-spacing:.03em;white-space:nowrap}.qr-metric-r{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text);white-space:nowrap}.qr-metric-rms{margin-left:auto;font-family:var(--font-mono);font-size:9px;color:var(--text-3);white-space:nowrap}.qr-foot-caption{padding-top:6px;border-top:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:9.5px;line-height:1.4;color:var(--text-3)}.qr-panel-head .segmented button{padding:3px 10px;font-size:10px}.dpdf-cut--x{--accent: #f1a73a}.dpdf-cut--y{--accent: #74a8ff}.dpdf-cut--z{--accent: #34c98e}.dpdf-cut .field-label{color:var(--accent)}.qr-stage-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:5px;border:1px solid var(--border-strong);background:var(--surface-2);font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--text-2);flex:none}.qr-stage-output{font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--green)}.qr-cluster-cut{flex:1 1 220px;min-width:180px}@media(max-width:980px){.qr-clusters,.qr-flow-row{flex-wrap:wrap}}
