.sp-root{--ink-c:#0ea5e0;--ink-c-dim:#0b7fae;--ink-m:#e11d6b;--ink-y:#f5b301;--ink-k:#0b0d10;--bg:#15171b;--surface:#1c1f25;--surface-2:#23272e;--surface-3:#2b3038;--line:#2f343d;--line-strong:#3d434e;--text:#e9ecf1;--text-2:#aab2be;--text-3:#767e8a;--accent:var(--ink-c);--accent-contrast:#04222e;--font-ui:system-ui,-apple-system,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Menlo,Consolas,"Liberation Mono",monospace;--radius-control:5px;--radius-panel:8px;--radius-large:12px;--control-h:32px;--focus-width:2px;--focus-offset:2px;--density:1;--titlebar-h:40px;color-scheme:dark;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media (prefers-color-scheme:light){.sp-root{--bg:#eceef1;--surface:#f7f8fa;--surface-2:#ffffff;--surface-3:#eef0f4;--line:#d8dce3;--line-strong:#c2c8d2;--text:#191c21;--text-2:#565e6b;--text-3:#7d858f;--ink-c-dim:#0a6f97;--accent-contrast:#ffffff;color-scheme:light}}.sp-root[data-platform=win32]{--font-ui:"Segoe UI Variable Text","Segoe UI",system-ui,sans-serif;--radius-control:4px;--radius-panel:7px;--radius-large:8px;--control-h:32px;--focus-width:2px;--focus-offset:1px;--density:0.92;--titlebar-h:40px}.sp-root[data-platform=darwin]{--font-ui:-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;--font-mono:"SF Mono",ui-monospace,Menlo,monospace;--radius-control:6px;--radius-panel:10px;--radius-large:14px;--control-h:30px;--focus-width:3px;--focus-offset:2px;--density:1.06;--titlebar-h:52px}.sp-root *,.sp-root :after,.sp-root :before{box-sizing:border-box}.sp-root h1,.sp-root h2,.sp-root h3{margin:0;font-weight:600;letter-spacing:-.015em;color:var(--text)}.sp-root h1{font-size:26px;line-height:1.15;letter-spacing:-.025em}.sp-root h2{font-size:18px;line-height:1.25}.sp-root h3{font-size:14px;letter-spacing:-.005em}.sp-root p{margin:0 0 10px;max-width:68ch;color:var(--text-2)}.sp-mono{font-family:var(--font-mono);font-size:.9em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"ss01" 1,"tnum";letter-spacing:-.01em}.sp-eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px}.sp-shell{display:flex;min-height:100vh}.sp-titlebar{position:fixed;top:0;left:0;right:0;height:var(--titlebar-h);-webkit-app-region:drag;z-index:50;pointer-events:none}.sp-side{width:calc(248px * var(--density));flex:0 0 calc(248px * var(--density));background:var(--surface);border-right:1px solid var(--line);padding:calc(var(--titlebar-h) + 8px) 0 20px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.sp-root[data-platform=darwin] .sp-side{background:transparent;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.sp-brand{display:flex;align-items:center;gap:10px;padding:0 18px 18px;text-decoration:none;color:inherit;-webkit-app-region:no-drag}.sp-brand svg{flex:0 0 auto}.sp-brand strong{font-size:14px;font-weight:600;letter-spacing:-.01em;display:block}.sp-brand span{display:block;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-top:1px}.sp-nav{flex-direction:column;gap:1px}.sp-nav,.sp-nav a{display:flex;padding:0 10px}.sp-nav a{align-items:center;gap:10px;height:calc(34px * var(--density));border-radius:var(--radius-control);font-size:13px;font-weight:500;text-decoration:none;color:var(--text-2);transition:background 90ms ease,color 90ms ease}.sp-nav a svg{flex:0 0 auto;opacity:.75}.sp-nav a:hover{background:var(--surface-2);color:var(--text)}.sp-nav a[aria-current=page]{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-weight:600}.sp-nav a[aria-current=page] svg{opacity:1}.sp-nav a:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:var(--focus-offset)}.sp-side-foot{margin-top:auto;padding:16px 18px 0}.sp-main{flex:1 1;min-width:0;padding:calc(var(--titlebar-h) + 12px) calc(32px * var(--density)) 72px;max-width:1360px}.sp-main>header{margin-bottom:24px}.sp-trim{position:relative;padding:22px;border-radius:var(--radius-large);background:linear-gradient(var(--line-strong),var(--line-strong)) 12px 12px /1px 14px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) 12px 12px /14px 1px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) calc(100% - 12px) 12px /1px 14px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) calc(100% - 12px) 12px /14px 1px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) 12px calc(100% - 12px) /1px 14px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) 12px calc(100% - 12px) /14px 1px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) calc(100% - 12px) calc(100% - 12px) /1px 14px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) calc(100% - 12px) calc(100% - 12px) /14px 1px no-repeat,var(--surface);background-position:12px 12px,12px 12px,calc(100% - 12px) 12px,calc(100% - 26px) 12px,12px calc(100% - 26px),12px calc(100% - 12px),calc(100% - 12px) calc(100% - 26px),calc(100% - 26px) calc(100% - 12px)}.sp-trim-dim{position:absolute;font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:var(--text-3);text-transform:uppercase}.sp-trim-dim.top{top:6px;left:50%;transform:translateX(-50%)}.sp-trim-dim.side{top:50%;right:-2px;transform:translateY(-50%) rotate(90deg)}.sp-strip{display:flex;gap:3px;margin-top:12px}.sp-patch{flex:1 1;height:5px;border-radius:3px;background:var(--line);transition:background .16s ease}.sp-patch[data-on=c]{background:var(--ink-c)}.sp-patch[data-on=m]{background:var(--ink-m)}.sp-patch[data-on=y]{background:var(--ink-y)}.sp-patch[data-on=k]{background:var(--text-2)}.sp-patch-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;color:var(--text-3);text-transform:uppercase}.sp-preview-frame{position:relative;border-radius:var(--radius-panel);background:#0b0d10;display:flex;align-items:center;justify-content:center;min-height:240px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.sp-preview-frame img{max-width:100%;max-height:60vh;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.sp-preview-note{font-family:var(--font-mono);font-size:11px;color:var(--text-3);margin-top:8px}.sp-panel{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);padding:calc(18px * var(--density)) calc(20px * var(--density))}.sp-panel+.sp-panel{margin-top:16px}.sp-panel>h3{margin-bottom:12px}.sp-grid{display:grid;grid-gap:16px;gap:16px}.sp-grid[data-cols="2"]{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.sp-grid[data-cols="3"]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}@media (max-width:1080px){.sp-grid[data-cols="2"]{grid-template-columns:1fr}.sp-side{display:none}.sp-main{padding-left:20px;padding-right:20px}}.sp-rule{height:1px;background:var(--line);border:0;margin:24px 0}.sp-dl{display:grid;grid-template-columns:minmax(110px,auto) 1fr;grid-gap:8px 18px;gap:8px 18px;margin:0}.sp-dl dt{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding-top:2px}.sp-dl dd{margin:0;min-width:0;overflow-wrap:anywhere;color:var(--text)}.sp-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:3px 9px;border-radius:999px;white-space:nowrap;background:color-mix(in srgb,currentColor 14%,transparent)}.sp-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 6px}.sp-status[data-tone=ok]{color:var(--ink-c)}.sp-status[data-tone=warn]{color:var(--ink-y)}.sp-status[data-tone=bad]{color:var(--ink-m)}.sp-status[data-tone=neutral]{color:var(--text-3)}.sp-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--control-h);padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface-2);color:var(--text);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;-webkit-app-region:no-drag;transition:background 90ms ease,border-color 90ms ease,transform 60ms ease}.sp-btn:hover:not(:disabled){background:var(--surface-3)}.sp-btn:active:not(:disabled){transform:translateY(.5px)}.sp-btn:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:var(--focus-offset)}.sp-btn:disabled{opacity:.45;cursor:not-allowed}.sp-btn[data-variant=primary]{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.sp-btn[data-variant=primary]:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,#fff)}.sp-btn[data-variant=danger]{color:var(--ink-m);border-color:color-mix(in srgb,var(--ink-m) 45%,transparent);background:color-mix(in srgb,var(--ink-m) 10%,transparent)}.sp-btn[data-variant=danger]:hover:not(:disabled){background:color-mix(in srgb,var(--ink-m) 18%,transparent)}.sp-btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sp-field{display:block;margin-bottom:14px}.sp-field>span{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px}.sp-input,.sp-select,.sp-textarea{width:100%;min-height:var(--control-h);padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--bg);color:var(--text);font:inherit;font-size:13px;transition:border-color 90ms ease,box-shadow 90ms ease}.sp-input:focus,.sp-select:focus,.sp-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 var(--focus-width) color-mix(in srgb,var(--accent) 30%,transparent)}.sp-input::placeholder{color:var(--text-3)}.sp-range{width:100%;accent-color:var(--accent);height:20px}.sp-range:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:var(--focus-offset);border-radius:var(--radius-control)}.sp-table{width:100%;border-collapse:collapse;font-size:13px}.sp-table th{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);text-align:left;padding:0 12px 8px 0;white-space:nowrap}.sp-table td,.sp-table th{border-bottom:1px solid var(--line)}.sp-table td{padding:10px 12px 10px 0;vertical-align:top;color:var(--text)}.sp-table tr:last-child td{border-bottom:0}.sp-table a{color:var(--accent);text-decoration:none;font-weight:500}.sp-table a:hover{text-decoration:underline}.sp-notice{border:1px solid var(--line);border-left:3px solid var(--text-3);border-radius:var(--radius-control);padding:12px 14px;background:var(--surface-2);margin-bottom:14px;font-size:13px;color:var(--text-2)}.sp-notice[data-tone=info]{border-left-color:var(--ink-c);background:color-mix(in srgb,var(--ink-c) 8%,var(--surface-2))}.sp-notice[data-tone=warn]{border-left-color:var(--ink-y);background:color-mix(in srgb,var(--ink-y) 8%,var(--surface-2))}.sp-notice[data-tone=bad]{border-left-color:var(--ink-m);background:color-mix(in srgb,var(--ink-m) 8%,var(--surface-2))}.sp-notice strong{display:block;color:var(--text);font-weight:600;margin-bottom:3px}.sp-notice ul{margin:8px 0 0;padding-left:18px}.sp-notice li{margin-bottom:3px}.sp-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-panel);padding:44px 24px;text-align:center;color:var(--text-3)}.sp-empty h3{color:var(--text);margin-bottom:6px}.sp-meter{height:5px;border-radius:3px;background:var(--line);overflow:hidden}.sp-meter>span{display:block;height:100%;background:var(--accent);border-radius:3px}.sp-stack{flex-direction:column}.sp-row,.sp-stack{display:flex;gap:12px}.sp-row{align-items:center;flex-wrap:wrap}.sp-spread{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.sp-root ::-webkit-scrollbar{width:10px;height:10px}.sp-root ::-webkit-scrollbar-track{background:transparent}.sp-root ::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}.sp-root ::-webkit-scrollbar-thumb:hover{background-clip:content-box;background-color:var(--text-3)}@media (prefers-reduced-motion:reduce){.sp-root *,.sp-root :after,.sp-root :before{transition-duration:.01ms!important;animation-duration:.01ms!important}}