:root{--dc-chassis: #0a0a0c;--dc-panel: #111318;--dc-panel-raised: #161820;--dc-rack-border: #1e2230;--dc-phosphor: #39ff14;--dc-amber: #ffb000;--dc-cyan: #00e5ff;--dc-red-warn: #ff3b30;--dc-a-accent: #00e5ff;--dc-b-accent: #ff6090;--dc-text: #c8ccd4;--dc-text-dim: #525870;--dc-text-bright: #e8ecf4;--dc-border: rgba(255,255,255,.06);--dc-border-strong: rgba(255,255,255,.14);--dc-font-display: "Share Tech Mono", "Courier New", monospace;--dc-font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--signal-panel-w: 300px;--filmstrip-h: 160px;--dc-panel-bg: var(--dc-panel);--dc-text-primary: var(--dc-text);--dc-text-secondary: var(--dc-text-dim);--dc-text-muted: var(--dc-text-dim);--dc-accent-green: var(--dc-phosphor);--dc-accent-cyan: var(--dc-cyan);--dc-accent-pink: var(--dc-b-accent);--dc-accent-amber: var(--dc-amber);--dc-radius: 3px;--dc-radius-lg: 5px;--dc-font-mono: var(--dc-font-display);--dc-font-serif: "Times New Roman", Times, serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--dc-chassis);color:var(--dc-text);font-family:var(--dc-font-ui);height:100%;overflow:hidden}canvas{display:block;max-width:calc(100vw - var(--signal-panel-w))!important;max-height:calc(100vh - var(--filmstrip-h))!important;width:auto!important;height:auto!important;margin:0 auto;padding-top:12px}.hidden{display:none!important}.dc-btn{padding:4px 10px;border-radius:var(--dc-radius);border:1px solid var(--dc-border-strong);font-family:var(--dc-font-ui);font-size:11px;letter-spacing:.3px;cursor:pointer;background:#ffffff0a;color:var(--dc-text);transition:background .1s,border-color .1s}.dc-btn:hover{background:#ffffff1a}.dc-btn--primary{background:#00e5ff26;border-color:var(--dc-cyan);color:var(--dc-cyan)}.dc-btn--primary:hover{background:#00e5ff40}.dc-btn--secondary{background:#ffffff0a;color:var(--dc-text)}.dc-btn--secondary:hover{background:#ffffff1a}.dc-btn--danger{background:#ff3b301f;border-color:#ff3b304d;color:#ff6b60}.dc-btn--danger:hover{background:#ff3b3038}.dc-btn--icon{background:none;border:none;color:var(--dc-text-dim);font-size:16px;cursor:pointer;padding:2px 5px}.dc-btn--icon:hover{color:var(--dc-text)}.led-display{font-family:var(--dc-font-display);color:var(--dc-amber);text-shadow:0 0 6px rgba(255,176,0,.5);letter-spacing:.05em}.rack-label{font-family:var(--dc-font-display);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--dc-text-dim)}#signal-panel{position:fixed;top:0;right:0;width:var(--signal-panel-w);height:100vh;background:var(--dc-panel);border-left:1px solid var(--dc-rack-border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;z-index:200}#signal-panel:before{content:"◈ DUO CHROME — SIGNAL PROCESSOR";display:block;padding:5px 12px;font-family:var(--dc-font-display);font-size:8px;letter-spacing:2px;color:var(--dc-text-dim);background:var(--dc-chassis);border-bottom:1px solid var(--dc-rack-border);flex-shrink:0}.rack-module{border-bottom:1px solid var(--dc-rack-border);flex-shrink:0}.rack-module__header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px 5px;background:var(--dc-chassis);border-bottom:1px solid var(--dc-rack-border);cursor:default;user-select:none}.rack-module__label{font-family:var(--dc-font-display);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--dc-text-dim)}.rack-module__collapse{background:none;border:none;color:var(--dc-text-dim);font-size:14px;line-height:1;cursor:pointer;padding:0 2px;transition:color .1s}.rack-module__collapse:hover{color:var(--dc-text)}.rack-module__body{padding:8px 10px}.rack-module.is-collapsed .rack-module__body{display:none}#status-overlay{position:static!important;transform:none!important;width:auto!important;box-shadow:none!important;border-radius:0!important;border:none!important;backdrop-filter:none!important;background:transparent!important}#status-overlay.fade-out{opacity:0}.status-images{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:6px}.status-image{padding:6px 7px;border:1px solid var(--dc-rack-border);border-top:3px solid transparent;transition:border-top-color .2s;min-width:0;overflow:hidden}.status-image:first-child{border-right:none}#status-image-a.active{border-top-color:var(--dc-a-accent)}#status-image-b.active{border-top-color:var(--dc-b-accent)}.status-image__color-row{display:flex;align-items:center;gap:5px;margin-bottom:3px}.status-image__id{font-family:var(--dc-font-display);font-size:11px;font-weight:700;color:var(--dc-text-dim);letter-spacing:1px}#status-image-a.active .status-image__id{color:var(--dc-a-accent)}#status-image-b.active .status-image__id{color:var(--dc-b-accent)}.status-image__swatch{width:12px;height:12px;border-radius:2px;border:1px solid var(--dc-border);flex-shrink:0;background:#333}.status-image__color-name{font-family:var(--dc-font-display);font-size:9px;color:var(--dc-text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.status-image__filename{display:block;font-family:var(--dc-font-display);font-size:10px;color:var(--dc-phosphor);text-shadow:0 0 4px rgba(57,255,20,.3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:help;margin-bottom:3px}.status-image__meta{display:flex;align-items:baseline;gap:4px;margin-top:2px}.status-meta-label{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:var(--dc-text-dim);flex-shrink:0}.status-meta-value{font-family:var(--dc-font-display);font-size:10px;color:var(--dc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.status-footer{padding:4px 0 0}.status-footer__row{display:flex;justify-content:space-between;align-items:baseline;padding:2px 0}.status-footer__label{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:var(--dc-text-dim)}.status-footer__value{font-family:var(--dc-font-display);font-size:11px;color:var(--dc-amber);text-shadow:0 0 4px rgba(255,176,0,.4)}.status-loop-section{margin-top:6px;border-top:1px solid var(--dc-rack-border);padding-top:4px}.status-loop-section__title{display:block;font-size:8px;text-transform:uppercase;letter-spacing:1px;color:var(--dc-text-dim);margin-bottom:3px}.status-loop-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px 4px}.status-loop-fallback{font-family:var(--dc-font-display);font-size:9px;color:var(--dc-amber);margin-top:3px}#loop-animation-panel.rack-module>.loop-animation-panel{position:static!important;bottom:auto!important;right:auto!important;z-index:auto!important;background:transparent;border:none;box-shadow:none;width:auto}.loop-toggle-btn{width:100%;padding:7px 10px;background:#39ff1414;border:1px solid rgba(57,255,20,.2);border-radius:var(--dc-radius);color:var(--dc-phosphor);font-family:var(--dc-font-display);font-size:11px;letter-spacing:1px;cursor:pointer;transition:background .15s,border-color .15s}.loop-toggle-btn:hover{background:#39ff1426;border-color:#39ff1466}.loop-toggle-btn.active{background:#39ff142e;border-color:var(--dc-phosphor);text-shadow:0 0 6px rgba(57,255,20,.6)}.jog-wheel-container{display:flex;flex-direction:column;align-items:center;padding:8px 0 4px}.jog-wheel{cursor:ns-resize;display:block;filter:drop-shadow(0 0 6px rgba(255,176,0,.25));transition:filter .15s;user-select:none;-webkit-user-select:none}.jog-wheel:hover{filter:drop-shadow(0 0 10px rgba(255,176,0,.55))}.jog-wheel:active,.jog-wheel.is-dragging{cursor:ns-resize;filter:drop-shadow(0 0 14px rgba(255,176,0,.8))}.jog-wheel.is-dragging .jog-outer{stroke:#ffb00066}.jog-wheel.is-dragging .jog-inner{stroke:#fc4}.jog-wheel-hint{font-family:var(--dc-font-display);font-size:8px;letter-spacing:1px;color:var(--dc-text-dim);text-align:center;margin-top:2px;opacity:0;transition:opacity .2s}.jog-wheel-container:hover .jog-wheel-hint{opacity:1}.jog-outer{fill:#161820;stroke:#2a2e3a;stroke-width:2}.jog-ring{fill:none;stroke:#2a2e3a;stroke-width:6}.jog-inner{fill:#0e1016;stroke:#ffb000;stroke-width:1.5}.jog-tick{stroke:#ffb000;stroke-width:2.5;stroke-linecap:round}.jog-tick-minor{stroke:#2a2e3a;stroke-width:1;stroke-linecap:round}.jog-frame-display{text-align:center;margin-top:4px}.jog-frame-num{font-family:var(--dc-font-display);font-size:20px;color:var(--dc-amber);text-shadow:0 0 8px rgba(255,176,0,.6);letter-spacing:3px;display:block}.jog-frame-label{font-size:8px;text-transform:uppercase;letter-spacing:1px;color:var(--dc-text-dim)}.loop-action-row{display:flex;gap:4px;margin:6px 0 4px}.loop-action-btn{flex:1;padding:4px 6px;font-family:var(--dc-font-display);font-size:9px;letter-spacing:.5px;text-align:center;background:#ffb00014;border:1px solid rgba(255,176,0,.25);border-radius:var(--dc-radius);color:var(--dc-amber);cursor:pointer;transition:background .1s,border-color .1s;white-space:nowrap}.loop-action-btn:hover{background:#ffb0002e;border-color:#ffb00080}.loop-action-btn:disabled,.loop-action-btn.disabled{opacity:.35;cursor:not-allowed}.loop-timeline{position:relative;height:8px;background:#ffffff0a;border-radius:2px;margin:4px 0;overflow:visible}.loop-timeline__track{position:absolute;top:2px;bottom:2px;background:#ffb00040;border-radius:1px}.loop-timeline__marker{position:absolute;width:2px;top:-2px;bottom:-2px;background:var(--dc-amber);border-radius:1px}.loop-timeline__head{position:absolute;width:3px;top:0;bottom:0;background:var(--dc-phosphor);border-radius:1px;transition:left .05s linear}.loop-fps-selector{display:flex;gap:0;margin:6px 0}.loop-fps-btn{flex:1;padding:4px 2px;font-family:var(--dc-font-display);font-size:10px;text-align:center;background:#ffffff08;border:1px solid var(--dc-rack-border);color:var(--dc-text-dim);cursor:pointer;transition:background .1s,color .1s}.loop-fps-btn:first-child{border-radius:3px 0 0 3px}.loop-fps-btn:last-child{border-radius:0 3px 3px 0}.loop-fps-btn+.loop-fps-btn{border-left:none}.loop-fps-btn.is-active{background:#ffb0002e;border:1px solid var(--dc-amber);color:var(--dc-amber);text-shadow:0 0 4px rgba(255,176,0,.5);position:relative;z-index:1}.loop-transport-row{display:flex;gap:3px;margin:4px 0}.loop-btn{flex:1;padding:5px 3px;font-size:13px;background:#ffffff0a;border:1px solid var(--dc-rack-border);border-radius:var(--dc-radius);color:var(--dc-text);cursor:pointer;text-align:center;transition:background .1s}.loop-btn:hover{background:#ffffff1a}.loop-btn:disabled{opacity:.35;cursor:not-allowed}.loop-btn.disabled{opacity:.35;cursor:not-allowed}.loop-btn[data-action=play-pause].playing{background:#39ff141f;border-color:#39ff144d;color:var(--dc-phosphor)}.loop-section-label{display:block;font-size:8px;text-transform:uppercase;letter-spacing:1px;color:var(--dc-text-dim);margin-bottom:4px;margin-top:6px}.loop-section-label:first-child{margin-top:0}.loop-length-row{display:flex;align-items:center;gap:6px}.loop-number-input{width:54px;padding:4px 6px;background:var(--dc-chassis);border:1px solid var(--dc-border-strong);border-radius:var(--dc-radius);color:var(--dc-amber);font-family:var(--dc-font-display);font-size:13px;text-align:center}.loop-number-input:focus{outline:none;border-color:var(--dc-amber)}.loop-length-max{font-size:9px;color:var(--dc-text-dim)}.loop-range{width:100%;margin:4px 0;accent-color:var(--dc-amber)}.loop-info-row{display:flex;justify-content:space-between;align-items:baseline;margin:2px 0}.loop-info-label{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:var(--dc-text-dim)}.loop-info-value{font-family:var(--dc-font-display);font-size:10px;color:var(--dc-amber)}.loop-fps-row{display:flex;align-items:center;gap:6px}.loop-fps-value{font-family:var(--dc-font-display);font-size:10px;color:var(--dc-amber);white-space:nowrap;min-width:44px}.loop-pair-item{display:flex;align-items:baseline;gap:4px;padding:3px 4px;font-family:var(--dc-font-display);font-size:9px;color:var(--dc-text);background:#ffffff05;border-radius:2px;margin:2px 0;cursor:help;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loop-pair-item strong{color:var(--dc-amber);font-weight:400;font-size:9px}.loop-loading{font-family:var(--dc-font-display);font-size:10px;color:var(--dc-amber);text-align:center;padding:6px;display:none}.loop-help{font-size:9px;color:var(--dc-text-dim);line-height:1.4;margin-top:4px}.loop-animation-panel{background:transparent}.loop-panel-section{margin-bottom:2px;transition:opacity .2s}.loop-gated{opacity:.4;pointer-events:none;transition:opacity .2s}.loop-animation-panel.enabled .loop-gated{opacity:1;pointer-events:auto}.loop-separator{display:flex;align-items:center;gap:6px;margin:8px 0 4px;padding-top:8px;border-top:1px solid rgba(255,176,0,.2)}.loop-separator-label{font-family:var(--dc-font-display);font-size:8px;letter-spacing:1px;color:var(--dc-amber);opacity:.6;white-space:nowrap}.loop-controls{display:flex;gap:3px;flex-wrap:wrap}.loop-panel__header{display:none}.loop-secondary-row{display:flex;gap:3px;margin-top:3px}#filmstrip-panel{position:fixed;bottom:0;left:0;right:var(--signal-panel-w);height:var(--filmstrip-h);background:var(--dc-panel);border-top:1px solid var(--dc-rack-border);display:flex;flex-direction:column;z-index:200;transition:height .2s ease}#filmstrip-panel.hidden{height:28px!important;overflow:hidden}#filmstrip-panel.hidden .filmstrip-container{display:none}.filmstrip-header{display:flex;align-items:center;gap:8px;padding:4px 10px;flex-shrink:0;border-bottom:1px solid var(--dc-rack-border);background:var(--dc-chassis)}.filmstrip-title{font-family:var(--dc-font-display);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--dc-text-dim)}.filmstrip-counter{font-family:var(--dc-font-display);font-size:10px;color:var(--dc-amber);margin-left:auto}.filmstrip-close-btn{background:none;border:none;color:var(--dc-text-dim);font-size:16px;line-height:1;cursor:pointer;padding:0 2px}.filmstrip-close-btn:hover{color:var(--dc-text)}.filmstrip-container{flex:1;overflow:hidden;padding:4px}.filmstrip-scroll{display:flex;gap:4px;height:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:thin;scrollbar-color:var(--dc-rack-border) transparent}.filmstrip-scroll::-webkit-scrollbar{height:4px}.filmstrip-scroll::-webkit-scrollbar-track{background:transparent}.filmstrip-scroll::-webkit-scrollbar-thumb{background:var(--dc-rack-border);border-radius:2px}.filmstrip-thumbnail,.filmstrip-item{flex-shrink:0;width:120px;height:100%;background:#1a1c24;border:1px solid var(--dc-rack-border);border-radius:2px;cursor:pointer;overflow:hidden;position:relative;transition:border-color .1s}.filmstrip-thumbnail:hover,.filmstrip-item:hover{border-color:var(--dc-text-dim)}.filmstrip-thumbnail.current,.filmstrip-item.active{border-color:var(--dc-amber)}.filmstrip-thumbnail.current:after,.filmstrip-item.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--dc-amber)}.filmstrip-thumbnail img,.filmstrip-thumbnail canvas,.filmstrip-item canvas,.filmstrip-item img{width:100%;height:100%;object-fit:cover;display:block}.filmstrip-thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--dc-font-display);font-size:8px;color:var(--dc-text-dim);letter-spacing:1px}.filmstrip-thumbnail-info{position:absolute;bottom:0;left:0;right:0;padding:2px 4px;background:#000000a6;font-family:var(--dc-font-display);font-size:7px;color:var(--dc-text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.filmstrip-branch-indicator{position:absolute;top:3px;right:3px;width:14px;height:14px;background:#ffb000cc;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;color:#000;cursor:pointer}.palette-module{padding:8px 10px}.palette-module__header-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:5px;gap:6px}.palette-module__name{font-family:var(--dc-font-display);font-size:11px;color:var(--dc-amber);text-shadow:0 0 5px rgba(255,176,0,.4);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.palette-module__count{font-size:9px;color:var(--dc-text-dim);letter-spacing:.5px;white-space:nowrap;flex-shrink:0}.palette-module__strip{display:flex;gap:2px;margin-bottom:7px;flex-wrap:nowrap;overflow:hidden}.palette-mini-swatch{flex:1;min-width:0;height:12px;border-radius:1px;border:1px solid rgba(0,0,0,.25)}.palette-module__controls{display:flex;gap:3px;align-items:center}.palette-nav-btn{flex-shrink:0;padding:4px 8px;background:#ffffff0a;border:1px solid var(--dc-rack-border);border-radius:var(--dc-radius);color:var(--dc-text-dim);font-size:12px;cursor:pointer;line-height:1;transition:background .1s,color .1s}.palette-nav-btn:hover{background:#ffffff1a;color:var(--dc-text)}.palette-module__pick{flex:1;text-align:center;font-family:var(--dc-font-display);font-size:9px;letter-spacing:1.5px}.palette-modal,#palette-modal{position:fixed;inset:0;background:#08090cf5;z-index:600;display:flex;flex-direction:column;backdrop-filter:blur(8px)}.palette-picker{display:flex;flex-direction:column;width:100%;height:100%}.palette-picker__header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--dc-chassis);border-bottom:1px solid var(--dc-rack-border);flex-shrink:0}.palette-picker__title{font-family:var(--dc-font-display);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--dc-text-dim)}.palette-picker__hint{font-size:10px;color:var(--dc-text-dim);flex:1;text-align:center}.palette-picker__close{padding:4px 10px;background:none;border:1px solid var(--dc-border);border-radius:var(--dc-radius);color:var(--dc-text-dim);font-size:16px;cursor:pointer;line-height:1;transition:color .1s,border-color .1s}.palette-picker__close:hover{color:var(--dc-text);border-color:var(--dc-border-strong)}.palette-picker__grid{flex:1;overflow-y:auto;padding:16px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;align-content:start;scrollbar-width:thin;scrollbar-color:var(--dc-rack-border) transparent}.palette-picker__grid::-webkit-scrollbar{width:6px}.palette-picker__grid::-webkit-scrollbar-track{background:transparent}.palette-picker__grid::-webkit-scrollbar-thumb{background:var(--dc-rack-border);border-radius:3px}.palette-card{background:var(--dc-panel);border:1px solid var(--dc-rack-border);border-radius:var(--dc-radius-lg);padding:10px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.palette-card:hover{border-color:var(--dc-border-strong);background:var(--dc-panel-raised);box-shadow:0 2px 12px #0006}.palette-card.is-active{border-color:var(--dc-phosphor);box-shadow:0 0 0 1px #39ff1433,0 2px 12px #0006}.palette-card__meta{display:flex;align-items:center;gap:6px;margin-bottom:8px}.palette-card__name{font-family:var(--dc-font-display);font-size:11px;color:var(--dc-text);letter-spacing:.05em;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-card.is-active .palette-card__name{color:var(--dc-phosphor);text-shadow:0 0 5px rgba(57,255,20,.4)}.palette-card__count{font-size:9px;color:var(--dc-text-dim);background:#ffffff0f;border-radius:2px;padding:1px 5px}.palette-card__check{font-size:10px;color:var(--dc-phosphor);text-shadow:0 0 4px rgba(57,255,20,.6);flex-shrink:0}.palette-card__swatches{display:flex;gap:2px;flex-wrap:wrap}.palette-card__swatch{width:14px;height:14px;border-radius:2px;border:1px solid rgba(0,0,0,.2);flex-shrink:0;transition:transform .1s}.palette-card:hover .palette-card__swatch{transform:scale(1.1)}.filter-modal,#filter-modal{position:fixed;inset:0;background:#08090cf5;z-index:600;display:flex;flex-direction:column;backdrop-filter:blur(8px)}.contact-sheet{display:flex;flex-direction:column;width:100%;height:100%}.contact-sheet__header{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--dc-chassis);border-bottom:1px solid var(--dc-rack-border);flex-shrink:0}.contact-sheet__title{font-family:var(--dc-font-display);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--dc-text-dim)}.contact-sheet__search{flex:1;display:flex;align-items:center;gap:6px}.contact-sheet__input{flex:1;padding:5px 10px;background:var(--dc-panel);border:1px solid var(--dc-border-strong);border-radius:var(--dc-radius);color:var(--dc-text);font-family:var(--dc-font-display);font-size:12px;outline:none}.contact-sheet__input:focus{border-color:var(--dc-cyan)}.contact-sheet__input::placeholder{color:var(--dc-text-dim)}.contact-sheet__clear{padding:5px 9px;background:none;border:1px solid var(--dc-border);border-radius:var(--dc-radius);color:var(--dc-text-dim);cursor:pointer;font-size:12px}.contact-sheet__clear:hover{color:var(--dc-text);border-color:var(--dc-border-strong)}.contact-sheet__close{padding:5px 9px;background:none;border:1px solid var(--dc-border);border-radius:var(--dc-radius);color:var(--dc-text-dim);cursor:pointer;font-size:16px;line-height:1}.contact-sheet__close:hover{color:var(--dc-text)}.contact-sheet__toolbar{display:flex;align-items:center;gap:10px;padding:7px 16px;background:var(--dc-panel);border-bottom:1px solid var(--dc-rack-border);flex-shrink:0;flex-wrap:wrap}.contact-sheet__stats{font-family:var(--dc-font-display);font-size:10px;color:var(--dc-text-dim);letter-spacing:.5px;flex:1}.contact-sheet__tabs{display:flex;gap:2px}.contact-sheet__tab{padding:4px 12px;font-size:10px;font-family:var(--dc-font-display);letter-spacing:1px;text-transform:uppercase;background:none;border:1px solid var(--dc-border);border-radius:var(--dc-radius);color:var(--dc-text-dim);cursor:pointer;transition:background .1s,color .1s}.contact-sheet__tab.is-active{background:#00e5ff1f;border-color:var(--dc-cyan);color:var(--dc-cyan)}.contact-sheet__content{flex:1;overflow:auto}.contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;padding:12px 16px}.contact-tile{position:relative;background:var(--dc-panel-raised);border:1px solid var(--dc-rack-border);border-radius:3px;cursor:pointer;overflow:hidden;transition:border-color .1s;aspect-ratio:1;display:flex;flex-direction:column}.contact-tile:hover{border-color:var(--dc-border-strong)}.contact-tile.is-selected{border-color:var(--dc-cyan);box-shadow:0 0 0 1px var(--dc-cyan) inset}.contact-tile.is-pinned{border-color:var(--dc-amber)}.contact-tile__img{flex:1;width:100%;object-fit:contain;display:block;background:#fff}.contact-tile__check{position:absolute;top:4px;right:4px;width:16px;height:16px;background:#000000b3;border:1px solid var(--dc-border-strong);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:10px;color:transparent}.contact-tile.is-selected .contact-tile__check{background:var(--dc-cyan);border-color:var(--dc-cyan);color:#000}.contact-tile.is-pinned .contact-tile__check{background:var(--dc-amber);border-color:var(--dc-amber);color:#000}.contact-tile__name{padding:3px 5px;font-family:var(--dc-font-display);font-size:8px;color:var(--dc-text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#00000080;flex-shrink:0}.contact-grid__pinned-label{grid-column:1 / -1;font-size:8px;text-transform:uppercase;letter-spacing:1px;color:var(--dc-amber);padding-bottom:4px;border-bottom:1px solid rgba(255,176,0,.2);margin-bottom:4px}.contact-empty{padding:40px;text-align:center;font-family:var(--dc-font-display);font-size:11px;color:var(--dc-text-dim);letter-spacing:1px}.theme-card{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--dc-rack-border);gap:10px}.theme-card__info{flex:1;min-width:0}.theme-card__name{font-family:var(--dc-font-display);font-size:11px;color:var(--dc-text);margin-bottom:2px}.theme-card__filter{font-size:9px;color:var(--dc-text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-card__actions{display:flex;gap:4px;flex-shrink:0}.theme-assign-btn{padding:3px 8px;font-family:var(--dc-font-display);font-size:10px;background:#ffffff0a;border:1px solid var(--dc-border-strong);border-radius:2px;color:var(--dc-text-dim);cursor:pointer;transition:background .1s,color .1s}.theme-assign-btn.is-active-a{background:#00e5ff26;border-color:var(--dc-cyan);color:var(--dc-cyan)}.theme-assign-btn.is-active-b{background:#ff609026;border-color:var(--dc-b-accent);color:var(--dc-b-accent)}.themes-empty{padding:24px 16px;font-family:var(--dc-font-display);font-size:10px;color:var(--dc-text-dim);text-align:center;letter-spacing:.5px;line-height:1.6}.filter-panel{width:100%;height:100%;display:flex;flex-direction:column}.filter-search{display:flex;align-items:center}.filter-search__input{flex:1}.filter-file-list{flex:1;overflow-y:auto}.filter-stats{font-size:10px;color:var(--dc-text-dim)}.filter-open-btn{position:fixed;bottom:calc(var(--filmstrip-h) + 8px);left:12px;padding:6px 12px;background:var(--dc-panel);border:1px solid var(--dc-border-strong);border-radius:var(--dc-radius);color:var(--dc-text);font-size:12px;cursor:pointer;z-index:100;transition:background .1s}.filter-open-btn:hover{background:var(--dc-panel-raised)}.help-overlay{position:fixed;inset:0;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1000;font-family:var(--dc-font-ui)}.help-content{background:#1a1d26;border:1px solid var(--dc-border-strong);padding:24px 24px 56px;border-radius:6px;width:640px;max-width:90vw;max-height:82vh;overflow-y:auto;color:var(--dc-text);box-shadow:0 16px 64px #0009;position:relative}.help-content h2{margin:0 0 4px;font-size:18px;text-align:center;color:var(--dc-text-bright);font-family:var(--dc-font-display);letter-spacing:3px;text-transform:uppercase}.help-content h3{margin:0 0 18px;font-size:12px;text-align:center;color:var(--dc-text-dim);font-weight:400;font-style:italic}.shortcuts-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin-bottom:12px}.shortcut-section h4{margin:0 0 6px;color:var(--dc-amber);font-family:var(--dc-font-display);font-size:10px;letter-spacing:2px;text-transform:uppercase;border-bottom:1px solid var(--dc-rack-border);padding-bottom:4px}.shortcut-section ul{list-style:none;padding:0;margin:0}.shortcut-section li{margin:3px 0;font-size:12px;line-height:1.4;color:var(--dc-text)}.shortcut-section.full-width{grid-column:1 / -1;text-align:center}.help-content kbd{display:inline-block;padding:1px 5px;background:var(--dc-chassis);border:1px solid var(--dc-border-strong);border-radius:3px;font-family:var(--dc-font-display);font-size:10px;color:var(--dc-amber)}.version-info{font-family:var(--dc-font-display);font-size:10px;color:var(--dc-text-dim);text-align:center;margin-top:8px}.close-button{position:absolute;bottom:12px;right:12px;padding:6px 14px;background:var(--dc-chassis);color:var(--dc-text);border:1px solid var(--dc-border-strong);border-radius:3px;font-size:11px;font-family:var(--dc-font-display);cursor:pointer;letter-spacing:1px}.close-button:hover{background:var(--dc-panel-raised)}@media (max-width: 700px){.help-content{width:90vw;padding:16px 16px 44px}.shortcuts-grid{grid-template-columns:1fr;gap:10px}}.confirmation-dialog{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:800}.confirmation-content{background:var(--dc-panel);border:1px solid var(--dc-border-strong);border-radius:5px;padding:24px;width:360px;max-width:90vw;text-align:center}.confirmation-content h3{margin:0 0 10px;font-family:var(--dc-font-display);font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--dc-text-bright)}.confirmation-content p{font-size:13px;color:var(--dc-text);margin:6px 0;line-height:1.5}.confirmation-warning{color:var(--dc-red-warn)!important;font-size:11px!important}.confirmation-buttons{display:flex;gap:8px;justify-content:center;margin-top:16px}.confirmation-btn{padding:7px 18px;border-radius:3px;border:1px solid var(--dc-border-strong);font-size:12px;font-family:var(--dc-font-display);letter-spacing:1px;cursor:pointer;transition:background .1s}.confirmation-btn-cancel{background:#ffffff0f;color:var(--dc-text)}.confirmation-btn-cancel:hover{background:#ffffff1f}.confirmation-btn-confirm{background:#ff3b3026;border-color:var(--dc-red-warn);color:var(--dc-red-warn)}.confirmation-btn-confirm:hover{background:#ff3b3047}:root{--version-text-color: #333;--version-bg-color: rgba(0, 0, 0, .08);--version-border-color: #ddd;--version-focus-color: #007acc;--version-font-family: monospace;--version-font-size: .8em;--version-font-weight: normal;--version-line-height: 1.2;--version-margin-top: 15px;--version-padding-top: 10px;--version-padding-inline: 4px 8px;--version-border-radius: 4px;--version-border-width: 1px}.version-info,.version-display{font-family:var(--version-font-family, monospace);font-size:var(--version-font-size, .8em);font-weight:var(--version-font-weight, normal);line-height:var(--version-line-height, 1.2);color:var(--version-text-color, #333);opacity:1;text-align:center}.version-info{margin-top:var(--version-margin-top, 15px);padding-top:var(--version-padding-top, 10px);border-top:var(--version-border-width, 1px) solid var(--version-border-color, #ddd)}.version-display{display:inline-block;padding:var(--version-padding-inline, 4px 8px);background-color:var(--version-bg-color, rgba(0, 0, 0, .08));border-radius:var(--version-border-radius, 4px);font-size:.9em;border:var(--version-border-width, 1px) solid var(--version-border-color, rgba(0, 0, 0, .1))}.about-dialog-version{margin-top:20px;padding-top:16px;border-top:var(--version-border-width, 1px) solid var(--version-border-color, #ddd);text-align:center}@media (max-width: 600px){.version-info,.version-display{font-size:.75em}.version-info{margin-top:12px;padding-top:8px}.version-display{padding:3px 6px;font-size:.8em}}@media (min-width: 601px) and (max-width: 1024px){.version-info,.version-display{font-size:.8em}}@media (min-width: 1025px){.version-info,.version-display{font-size:.85em}}@media (prefers-contrast: high){.version-info,.version-display{color:#000;--version-text-color: #000;opacity:1;font-weight:600}.version-display{background-color:#00000026;--version-bg-color: rgba(0, 0, 0, .15);border:2px solid #000;--version-border-color: #000}.version-info,.about-dialog-version{border-top:2px solid #000;--version-border-color: #000}@media (prefers-color-scheme: dark){.version-info,.version-display{color:#fff;--version-text-color: #fff}.version-display{background-color:#fff3;--version-bg-color: rgba(255, 255, 255, .2);border-color:#fff;--version-border-color: #fff}.version-info,.about-dialog-version{border-top-color:#fff;--version-border-color: #fff}}}.version-info:focus,.version-display:focus,.version-info:focus-visible,.version-display:focus-visible{outline:2px solid #007acc;outline-color:var(--version-focus-color, #007acc);outline-offset:2px;box-shadow:0 0 0 2px #007acc33}.version-info:focus:not(:focus-visible),.version-display:focus:not(:focus-visible){outline:none;box-shadow:none}.version-info,.version-display{min-height:1.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:text;-webkit-user-select:text;-moz-user-select:text}.version-theme-minimal{--version-bg-color: transparent;--version-border-color: transparent;--version-padding-inline: 0;--version-border-width: 0}.version-theme-prominent{--version-font-weight: bold;--version-font-size: .9em;--version-bg-color: rgba(0, 0, 0, .12);--version-border-width: 2px;--version-padding-inline: 8px 12px}.version-theme-subtle{--version-text-color: #666;--version-font-size: .75em;--version-bg-color: rgba(0, 0, 0, .04);--version-border-color: rgba(0, 0, 0, .08)}.version-size-small{--version-font-size: .7em;--version-padding-inline: 3px 6px;--version-margin-top: 10px;--version-padding-top: 8px}.version-size-large{--version-font-size: 1em;--version-padding-inline: 6px 12px;--version-margin-top: 20px;--version-padding-top: 15px}.version-color-primary{--version-text-color: #007acc;--version-border-color: #007acc;--version-bg-color: rgba(0, 122, 204, .1)}.version-color-success{--version-text-color: #28a745;--version-border-color: #28a745;--version-bg-color: rgba(40, 167, 69, .1)}.version-color-warning{--version-text-color: #ffc107;--version-border-color: #ffc107;--version-bg-color: rgba(255, 193, 7, .1)}.app-duo-chrome{--version-font-family: "Times New Roman", Times, serif}.app-crude-collage,.app-those-shapes,.app-computational-collage{--version-font-family: var(--version-font-family, monospace)}.version-context-help{--version-margin-top: 15px;--version-padding-top: 10px}.version-context-about{--version-margin-top: 20px;--version-padding-top: 16px;--version-font-size: .9em}.version-context-footer{--version-margin-top: 10px;--version-padding-top: 5px;--version-font-size: .75em}.dark-background .version-info,.dark-background .version-display,[data-theme=dark] .version-info,[data-theme=dark] .version-display{color:#e0e0e0;--version-text-color: #e0e0e0}.dark-background .version-display,[data-theme=dark] .version-display{background-color:#ffffff1f;--version-bg-color: rgba(255, 255, 255, .12);border-color:#fff3;--version-border-color: rgba(255, 255, 255, .2)}.dark-background .version-info,.dark-background .about-dialog-version,[data-theme=dark] .version-info,[data-theme=dark] .about-dialog-version{border-top-color:#555;--version-border-color: #555}@media (prefers-color-scheme: dark){.dark-background .version-info,.dark-background .version-display,[data-theme=dark] .version-info,[data-theme=dark] .version-display{color:#e0e0e0;--version-text-color: #e0e0e0}}@media (prefers-reduced-motion: reduce){.version-info,.version-display{transition:none}}.version-info,.version-display{will-change:auto;box-sizing:border-box;contain:layout style}@supports not (color: var(--version-text-color)){.version-info,.version-display{color:#333}.version-display{background-color:#00000014;border-color:#0000001a}.version-info,.about-dialog-version{border-top-color:#ddd}}@media print{.version-info,.version-display,.about-dialog-version{display:none!important}}
