.raster{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg)}.raster-name{flex:0 1 220px;min-width:120px;padding:5px 9px;border:1px solid var(--rail-line);border-radius:var(--radius);background:#0b0d10;color:var(--ink);font-family:var(--font-display);font-size:13px;letter-spacing:.04em}.raster-name:focus-visible{outline:2px solid var(--sig-cv);outline-offset:1px}.raster-btn,.raster-link{padding:6px 12px;border:1px solid var(--rail-line);border-radius:var(--radius);background:linear-gradient(180deg,#22262d,#14171b);color:var(--ink-dim);font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.09em;text-decoration:none;cursor:pointer}.raster-btn:hover,.raster-link:hover{color:var(--ink);border-color:#2c323b}.raster-run.on{color:#08090b;background:linear-gradient(180deg,#b6f27a,var(--sig-gate));border-color:#6f9c3f}.raster-link{margin-left:auto}.raster-stat{padding:5px 10px;border-radius:var(--radius);background:#0b0d10;color:var(--ink-dim);font-family:var(--font-mono);font-size:12px;white-space:nowrap}.raster-tabs{display:flex;gap:2px;padding:8px 18px 0;border-bottom:1px solid var(--rail-line);background:#0b0d10}.raster-tab{padding:7px 16px;border:1px solid transparent;border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;background:none;color:var(--ink-faint);font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.1em;cursor:pointer}.raster-tab:hover{color:var(--ink-dim)}.raster-tab.on{color:var(--ink);border-color:var(--rail-line);background:var(--bg);margin-bottom:-1px}.raster-grid{display:flex;flex:1;flex-direction:column;min-height:0;padding:14px 18px 0;font-family:var(--font-mono);font-size:14px;font-variant-numeric:tabular-nums}.raster-head,.raster-row{display:flex;gap:10px;align-items:center;white-space:pre}.raster-head{padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--rail-line);color:var(--ink-faint);font-family:var(--font-label);font-size:11px;letter-spacing:.14em}.raster-body{flex:1;min-height:0;overflow-y:auto;padding-bottom:12px;scroll-behavior:auto}.raster-addr{flex:none;width:3.4ch;color:var(--ink-faint);text-align:right;font-size:12px}.raster-col,.raster-cell{flex:none;width:calc(var(--w, 2) * 1ch);color:var(--tone, var(--ink))}.raster-col{color:var(--tone, var(--ink-faint))}.raster-row{height:20px;border-radius:3px}.raster-row:nth-child(4n+1){background:#0d0f13}.raster-cell{padding:0 1px}.raster-cell.faint{color:var(--ink-faint)}.raster-cell.cursor{color:#08090b;background:var(--tone, var(--ink));border-radius:2px}.raster-row.playing{background:#1a2430;box-shadow:inset 2px 0 0 var(--sig-gate)}.raster-foot{padding:9px 18px;border-top:1px solid var(--rail-line);background:#0b0d10}.raster-help{margin:0;color:var(--ink-faint);font-family:var(--font-label);font-size:12px;letter-spacing:.03em}@media(max-width:720px){.raster-grid{padding:10px 10px 0;font-size:13px}.raster-link{margin-left:0}}.picker-row{display:flex;align-items:center;gap:2px}.picker-row .picker-item{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.picker-del{flex:none;width:24px;padding:6px 0;border:0;border-radius:3px;background:none;color:var(--ink-faint);font-family:var(--font-mono);font-size:14px;line-height:1;cursor:pointer}.picker-del:hover,.picker-del:focus-visible{color:var(--hot);background:#1b212a;outline:none}.raster-help.flash{color:var(--sig-gate)}.raster-num{display:flex;align-items:center;gap:5px;padding:3px 8px 3px 4px;border-radius:var(--radius);background:#0b0d10}.raster-num input{width:4.5ch;padding:2px 0 2px 4px;border:0;background:none;color:var(--ink);font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield}.raster-num input::-webkit-outer-spin-button,.raster-num input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}.raster-num input:focus-visible{outline:none;color:var(--sig-cv)}.raster-num-label{color:var(--ink-faint);font-family:var(--font-label);font-size:10px;letter-spacing:.14em}.raster .field{grid-auto-flow:column;align-items:center;gap:7px}.raster .field>span{white-space:nowrap}
