@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@400;500;600&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--h:210;--s:14%;--surface:hsl(var(--h), 40%, 98%);--surface-dim:hsl(var(--h), 20%, 92%);--surface-low:hsl(var(--h), 25%, 96%);--surface-high:#fff;--surface-highest:#fff;--surface-lowest:#fff;--primary:#085f87;--primary-dim:#0da2e7;--primary-fixed:#ccefff;--on-primary:#fff;--secondary:#006b47;--secondary-container:#6df8bc;--outline:#6e7981;--outline-variant:#cad1d8;--text-main:#181d20;--text-muted:#3e4951;--panel-bg:#ffffffd9;--panel-bg-solid:#fff;--panel-border:hsla(var(--h), 20%, 30%, .08);--panel-shadow:0 4px 6px -1px #00000005, 0 20px 40px -10px hsla(var(--h), 40%, 20%, .05);--glow-primary:#0da2e726;--glow-secondary:#6df8bc26;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", monospace;--font-display:"Inter", sans-serif;font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}.dark-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--h:226;--s:45%;--surface:hsl(var(--h), 45%, 4%);--surface-dim:hsl(var(--h), 45%, 2%);--surface-low:hsl(var(--h), 45%, 7%);--surface-high:hsl(var(--h), 35%, 12%);--surface-highest:hsl(var(--h), 30%, 20%);--surface-lowest:hsl(var(--h), 60%, 1%);--primary:#4ca6ff;--primary-dim:#80bfff;--primary-fixed:#cce6ff;--on-primary:#fff;--secondary:#25f4c0;--secondary-container:#033a2c;--outline:hsl(var(--h), 20%, 40%);--outline-variant:hsl(var(--h), 25%, 20%);--text-main:hsl(var(--h), 20%, 96%);--text-muted:hsl(var(--h), 15%, 70%);--panel-bg:hsla(var(--h), 45%, 6%, .65);--panel-bg-solid:hsl(var(--h), 45%, 6%);--panel-border:hsla(var(--h), 60%, 80%, .1);--panel-shadow:0 10px 40px -10px #000000b3, 0 30px 100px -20px hsla(var(--h), 100%, 2%, .9);--glow-primary:#4ca6ff33;--glow-secondary:#25f4c033}@media (prefers-color-scheme:dark){:root:not(.light-mode){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--h:226;--s:45%;--surface:hsl(var(--h), 45%, 4%);--surface-dim:hsl(var(--h), 45%, 2%);--surface-low:hsl(var(--h), 45%, 7%);--surface-high:hsl(var(--h), 35%, 12%);--surface-highest:hsl(var(--h), 30%, 20%);--surface-lowest:hsl(var(--h), 60%, 1%);--primary:#4ca6ff;--primary-dim:#80bfff;--primary-fixed:#cce6ff;--on-primary:#fff;--secondary:#25f4c0;--secondary-container:#033a2c;--outline:hsl(var(--h), 20%, 40%);--outline-variant:hsl(var(--h), 25%, 20%);--text-main:hsl(var(--h), 20%, 96%);--text-muted:hsl(var(--h), 15%, 70%);--panel-bg:hsla(var(--h), 45%, 6%, .65);--panel-bg-solid:hsl(var(--h), 45%, 6%);--panel-border:hsla(var(--h), 60%, 80%, .1);--panel-shadow:0 10px 40px -10px #000000b3, 0 30px 100px -20px hsla(var(--h), 100%, 2%, .9)}}body:before{content:"";z-index:-1;opacity:0;pointer-events:none;background:radial-gradient(circle at 0 0,#4ca6ff0d,#0000 40%),radial-gradient(circle at 100% 100%,#25f4c00d,#0000 40%);transition:opacity 1s;position:fixed;inset:0}.dark-mode body:before,:root:not(.light-mode) body:before{opacity:1}@keyframes drift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}body{min-width:320px;color:var(--text-main);background-color:var(--surface);margin:0;transition:background-color .3s,color .3s}button,input,select,textarea{font:inherit;color:inherit}select,input:not([type=checkbox]):not([type=radio]){background:var(--surface-low);color:var(--text-main);border:1px solid var(--outline-variant);border-radius:8px;padding:4px 8px}.dark-mode select,.dark-mode input:not([type=checkbox]):not([type=radio]){background:var(--surface-high)}button{cursor:pointer}code{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,SFMono-Regular,monospace}#root{min-height:100vh}.app-shell{width:min(1440px,100vw - 32px);margin:0 auto;padding:32px 0 64px}.hero,.panel{border:1px solid var(--panel-border);background:var(--panel-bg);-webkit-backdrop-filter:blur(24px)saturate(200%);box-shadow:var(--panel-shadow);border-radius:32px;transition:all .4s cubic-bezier(.23,1,.32,1);position:relative;overflow:hidden}.hero:after,.panel:after{content:"";background:linear-gradient(90deg, transparent, var(--primary-dim), var(--secondary), transparent);opacity:.4;z-index:10;height:1px;position:absolute;top:0;left:0;right:0}.hero:hover,.panel:hover{box-shadow:0 40px 80px -20px #00000080, 0 0 0 1px hsla(var(--h), 60%, 80%, .15);transform:translateY(-2px)}.hero:hover:after,.panel:hover:after{opacity:.8;filter:brightness(1.2)}.hero{text-align:center;flex-direction:column;align-items:center;gap:24px;margin-bottom:24px;padding:48px;display:flex;position:relative;overflow:hidden}.hero-content{z-index:1;text-align:center;flex-direction:column;align-items:center;max-width:840px;display:flex;position:relative}.hero-brand{justify-content:center;align-items:center;gap:16px;margin-bottom:24px;display:flex}.hero-logo{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary-container) 100%);border-radius:6px;width:56px;height:56px;position:relative;box-shadow:0 0 20px #00f0ff33}.hero-logo-ring{border:1px solid #ffffff4d;border-radius:4px;position:absolute;inset:6px}.hero-logo-core{color:var(--surface);letter-spacing:.08em;place-items:center;font-family:Space Grotesk,sans-serif;font-size:1.1rem;font-weight:700;display:grid;position:absolute;inset:0}.hero-wordmark{gap:4px;display:grid}.hero-wordmark span{color:var(--text-muted);letter-spacing:.05em;font-size:.85rem}.eyebrow{color:var(--primary);letter-spacing:.15em;text-transform:uppercase;margin:0;font-family:Space Grotesk,sans-serif;font-size:.75rem;font-weight:700}.hero h1{letter-spacing:-.04em;text-wrap:balance;text-shadow:0 2px 10px #00f0ff1a;max-width:25ch;margin:0;font-size:clamp(2rem,4vw,3.2rem);line-height:1.05}.hero-copy{max-width:680px;color:var(--text-muted);letter-spacing:.02em;margin:16px 0 0;font-size:1.05rem}.hero-metrics{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.hero-metric{background:var(--surface-low);border:1px solid #84949526;border-radius:6px;min-width:140px;padding:16px 20px;box-shadow:inset 0 1px #ffffff05}.wizard-stepper{background:var(--panel-bg);-webkit-backdrop-filter:blur(24px);border:1px solid var(--panel-border);border-top:4px solid var(--primary-dim);box-shadow:var(--panel-shadow);border-radius:32px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:24px 32px;display:flex}.step-indicator{cursor:default;opacity:.75;z-index:2;text-align:center;flex-direction:column;align-items:center;gap:10px;transition:opacity .3s;display:flex;position:relative}.step-indicator.active,.step-indicator.completed{opacity:1}.step-indicator.clickable{cursor:pointer}.step-circle{background:var(--surface-highest);width:28px;height:28px;color:var(--text-muted);border:1px solid var(--outline-variant);border-radius:4px;justify-content:center;align-items:center;font-family:IBM Plex Mono,monospace;font-size:.8rem;font-weight:500;transition:all .3s;display:flex}.step-indicator.active .step-circle{background:var(--primary);color:var(--on-primary);border-color:var(--primary);box-shadow:0 0 12px #00f0ff4d}.step-indicator.completed .step-circle{color:var(--primary);border-color:var(--primary);background:0 0}.step-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap;font-family:Space Grotesk,sans-serif;font-size:.75rem;font-weight:700}.step-indicator.active .step-label{color:var(--primary)}.step-connector{background:var(--outline-variant);flex:1;height:1px;margin:0 16px;position:relative;top:-12px}.wizard-step-container{animation:.3s fadeIn}.wizard-actions{border-top:1px solid var(--outline-variant);justify-content:flex-end;gap:12px;margin-top:32px;padding-top:24px;display:flex}.wizard-actions .secondary-button{color:var(--text-main);text-transform:uppercase;letter-spacing:.05em;background:#ffffff0a;border:1px solid #8494954d;border-radius:6px;padding:10px 20px;font-family:Space Grotesk,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s}.wizard-actions .secondary-button:hover{background:#ffffff14}.wizard-actions .primary-button{background:var(--primary);color:var(--on-primary);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border:none;border-radius:6px;padding:12px 24px;font-family:Space Grotesk,sans-serif;font-size:.85rem;font-weight:700;transition:all .2s}.wizard-actions .primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 16px #00f0ff4d}.wizard-actions .primary-button:disabled{background:var(--surface-high);color:var(--text-muted);cursor:not-allowed;box-shadow:none}.hero-metric strong{color:var(--text-main);margin-top:8px;font-family:IBM Plex Mono,monospace;font-size:1.1rem;display:block}.hero-metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-family:Space Grotesk,sans-serif;font-size:.7rem;font-weight:700;display:block}.hero-actions{z-index:1;flex-direction:column;align-items:center;gap:16px;width:100%;display:flex;position:relative}.upload-stack{flex-flow:wrap;justify-content:center;align-items:center;gap:12px;display:flex}@keyframes pulse-glow{0%{border-color:var(--primary);box-shadow:0 0 #00f0ff66}70%{border-color:var(--primary-dim);box-shadow:0 0 0 12px #00f0ff00}to{border-color:var(--outline-variant);box-shadow:0 0 #00f0ff00}}@media (prefers-color-scheme:light){@keyframes pulse-glow{0%{border-color:var(--primary);box-shadow:0 0 #2563eb66}70%{border-color:var(--primary-dim);box-shadow:0 0 0 12px #2563eb00}to{border-color:var(--outline-variant);box-shadow:0 0 #2563eb00}}}.attention-pulse{border:2px solid var(--primary);border-radius:8px;animation:2s ease-out infinite pulse-glow}.attention-pulse.step-indicator{border:none}.attention-pulse.step-indicator .step-circle{border-width:2px;animation:2s ease-out infinite pulse-glow}.donor-upload{color:var(--text-main);border:1px solid var(--outline-variant);background:#ffffff0d}.donor-upload:hover{background:#ffffff1a}.upload-button,.primary-button,.secondary-button{text-align:center;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;border:none;border-radius:999px;padding:12px 28px;font-family:Space Grotesk,sans-serif;font-size:.82rem;font-weight:700;transition:all .3s cubic-bezier(.23,1,.32,1);position:relative;overflow:hidden}.upload-button,.primary-button{background:var(--primary);color:var(--on-primary);box-shadow:0 4px 12px var(--glow-primary);border:1px solid #ffffff1a}.upload-button:hover,.primary-button:hover{background:var(--primary-dim);box-shadow:0 8px 24px var(--glow-primary), 0 0 0 1px #80bfff66;transform:translateY(-1px)}.upload-button:active,.primary-button:active{transform:translateY(0)}.secondary-button{background:var(--surface-high);color:var(--text-main);border:1px solid var(--outline-variant)}.secondary-button:hover{background:var(--surface-highest);border-color:var(--outline);transform:translateY(-1px)}.status{background:var(--surface-lowest);min-height:48px;color:var(--primary);border:1px solid var(--outline-variant);border-radius:6px;padding:12px 16px;font-family:IBM Plex Mono,monospace;font-size:.8rem;box-shadow:inset 0 2px 8px #0006}@media (width<=920px){.app-shell{width:min(100vw - 24px,1440px);padding-top:12px}.hero{flex-direction:column;padding:24px}.hero h1{max-width:none}.hero-brand{align-items:flex-start}.hero-actions{width:100%;min-width:0}}.workflow-stack,.primer-grid{gap:20px;display:grid}.rule-panel{gap:14px;display:grid}.rule-footer{justify-content:flex-end;display:flex}.task-banner{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.task-chip{background:var(--surface-highest);color:var(--text-main);border:1px solid var(--outline-variant);border-radius:999px;padding:10px 14px}.viewer-shell{gap:14px;display:grid}.pv-shell{gap:16px;display:grid}.export-cluster{align-items:center;gap:12px;display:flex}.ghost-action-link{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;opacity:.7;background:0 0;border:none;padding:8px 12px;font-family:Space Grotesk,sans-serif;font-size:.82rem;font-weight:600;transition:all .2s}.pv-toolbar{background:var(--surface-low);border:1px solid #94a3b838;border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.pv-toolbar-left,.pv-toolbar-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pv-segmented{border:1px solid var(--outline-variant);background:var(--surface-dim);border-radius:999px;padding:3px;display:inline-flex}.pv-segmented button{color:var(--text-muted);background:0 0;border:none;border-radius:999px;padding:8px 12px;font-weight:700;transition:all .2s}.pv-segmented button.active{background:var(--primary);color:var(--on-primary)}.pv-context{gap:2px;display:grid}.pv-context strong{color:var(--text-main);font-size:.95rem}.pv-context span{color:#64748b;font-size:.8rem}.pv-inline-control,.pv-check,.pv-inline-range{color:var(--text-muted);align-items:center;gap:8px;font-size:.88rem;display:inline-flex}.pv-inline-control.compact,.pv-check.compact,.pv-inline-range.compact{background:var(--surface-high);border:1px solid var(--outline-variant);border-radius:999px;padding:8px 10px;box-shadow:0 4px 12px #0000000d}.pv-inline-control select{border:1px solid var(--outline-variant);background:var(--surface-low);color:var(--text-main);border-radius:8px;padding:7px 11px;transition:all .2s}.dark-mode .pv-inline-control select{background:var(--surface-high)}.pv-inline-control select:focus{box-shadow:0 0 0 2px var(--primary-fixed);border-color:#0000;outline:none}.pv-inline-control input{background:var(--surface-low);border:1px solid #0000;border-radius:8px;width:88px;padding:7px 11px;transition:all .2s}.pv-inline-control input:focus{box-shadow:0 0 0 2px var(--primary-fixed);border-color:#0000;outline:none}.pv-check input{margin:0}.pv-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);align-items:stretch;gap:16px;display:grid}.pv-layout.full-width{grid-template-columns:minmax(0,1fr)}.pv-layout.full-width .pv-map-panel{padding-inline:clamp(28px,5vw,72px)}.pv-layout.full-width .pv-map-frame{padding-block:28px;padding-inline:clamp(90px,14vw,220px)}.pv-map-panel,.pv-legend-panel{background:var(--panel-bg-solid);border:1px solid #94a3b838;border-radius:22px;height:760px;min-height:0}.pv-map-panel.compact,.pv-legend-panel.compact{height:500px}.pv-map-panel{grid-template-rows:minmax(0,1fr) auto;padding:12px;display:grid}.pv-map-frame{background:linear-gradient(180deg, var(--surface-low) 0%, var(--surface-high) 100%);border-radius:18px;min-height:680px;padding:20px;position:relative;overflow:visible}.pv-map-panel.compact .pv-map-frame{min-height:420px}.pv-map-actions{z-index:100;background:var(--panel-bg);-webkit-backdrop-filter:blur(20px);box-shadow:var(--panel-shadow);border:1px solid var(--panel-border);border-radius:16px;gap:12px;padding:10px 16px;display:flex;position:absolute;top:1.25rem;right:1.25rem}.pv-selection-info-overlay{z-index:100;background:var(--panel-bg);-webkit-backdrop-filter:blur(20px);box-shadow:var(--panel-shadow);border:1px solid var(--panel-border);pointer-events:none;border-radius:14px;flex-direction:column;gap:4px;width:fit-content;padding:10px 14px;display:flex;position:absolute;top:1.25rem;left:1.25rem}.pv-selection-info-label{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);opacity:.85;white-space:nowrap;font-size:.58rem;font-weight:800;line-height:1}.pv-selection-info-boundary{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-main);white-space:nowrap;font-size:.88rem;font-weight:900;line-height:1.2;display:block}.pv-selection-info-arrow{color:var(--text-muted);margin:0 2px;font-weight:400}.pv-selection-info-bp{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:.68rem;font-weight:700;line-height:1;display:block}.pv-selection-info-mode{color:var(--text-muted);font-weight:400}.pv-map-svg{width:100%;height:100%;display:block;overflow:visible}.pv-ring-base{fill:none;stroke:#0000;stroke-width:0}.pv-ring-core{fill:var(--surface-high);stroke:var(--panel-border);stroke-width:2px}.pv-center-label{fill:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:500}.pv-center-meta{fill:var(--text-main);letter-spacing:-.01em;font-family:Space Grotesk,sans-serif;font-size:22px;font-weight:800}.pv-center-submeta{fill:var(--text-main);text-transform:uppercase;letter-spacing:.05em;font-size:16px;font-weight:700}.pv-center-submeta.backbone{fill:#0d9488}.pv-center-minor{fill:var(--text-muted);letter-spacing:.01em;font-size:12px;font-weight:500}.pv-map-overlay-top-right{pointer-events:none}.overlay-boundary{fill:var(--text-main);text-transform:uppercase;letter-spacing:.06em;font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:800}.overlay-bp{fill:var(--primary);font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:700}.pv-feature-hit{cursor:pointer}.pv-label-group{cursor:pointer;transition:opacity .25s}.pv-label-group.hovered,.pv-label-group.selected{opacity:1}.pv-label-leader{fill:none;stroke:#94a3b8;stroke-width:1.1px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.pv-label-title{fill:#475569;letter-spacing:-.01em;font-family:Inter,Space Grotesk,sans-serif;font-size:11.5px;font-weight:500}.pv-label-title tspan{dominant-baseline:hanging}.pv-tooltip{z-index:10;pointer-events:none;color:#e2e8f0;background:#0f172af0;border-radius:14px;width:208px;padding:12px 14px;position:absolute;box-shadow:0 16px 30px #0f172a3d}.pv-tooltip strong{color:#f8fafc;margin-bottom:8px;display:block}.pv-tooltip dl{gap:6px;margin:0;display:grid}.pv-tooltip dl div{grid-template-columns:68px 1fr;gap:8px;display:grid}.pv-tooltip dt{color:#94a3b8}.pv-tooltip dd{margin:0}.pv-map-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 4px 4px;display:flex}.pv-footer-controls{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.pv-status-block{gap:3px;display:grid}.pv-kicker{color:#64748b;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.pv-status-block strong{color:var(--text-main)}.pv-status-block p{color:var(--text-muted);max-width:500px;margin:0;font-size:.9rem}.pv-inline-range input{width:132px}.pv-legend-panel{grid-template-rows:auto minmax(0,1fr);padding:14px;display:grid;overflow:hidden}.pv-legend-header{border-bottom:1px solid #94a3b829;justify-content:space-between;align-items:start;gap:12px;padding-bottom:12px;display:flex}.pv-legend-header h3{margin:0;font-size:1rem}.pv-legend-header p{color:#64748b;margin:3px 0 0;font-size:.84rem}.pv-legend-actions{gap:8px;display:flex}.pv-ghost-button{background:var(--surface-high);color:#334155;border:1px solid #94a3b847;border-radius:999px;padding:8px 12px;font-weight:600}.pv-legend-table{gap:8px;min-height:0;padding-top:12px;display:grid;overflow:hidden auto}.pv-legend-row{background:var(--surface-high);border:1px solid #94a3b82e;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px;display:grid}.pv-legend-row.hovered{border-color:#0e749057}.pv-legend-row.selected{border-color:var(--primary);box-shadow:inset 0 0 0 1px rgba(var(--primary-rgb), .1);background:var(--surface-low)}.pv-legend-row.hidden{opacity:.56}.pv-legend-select{text-align:left;color:#0f172a;background:0 0;border:none;grid-template-columns:12px minmax(0,1.15fr) minmax(92px,.72fr) minmax(116px,.9fr) auto;align-items:center;gap:10px;width:100%;padding:6px 8px;display:grid}.pv-legend-swatch{border-radius:999px;width:12px;height:12px;box-shadow:inset 0 0 0 1px #0f172a29}.pv-legend-name{font-weight:600}.pv-legend-type,.pv-legend-range,.pv-legend-length{color:var(--text-muted);font-size:.82rem}.pv-visibility-toggle{color:#475569;background:#e2e8f0;border:none;border-radius:999px;padding:8px 10px;font-size:.78rem;font-weight:700}.pv-visibility-toggle.on{background:var(--primary-fixed);color:var(--primary)}.viewer-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.stacked-inline{color:var(--text-muted);gap:6px;display:inline-grid}.stacked-inline select{background:var(--surface-high);border:1px solid #94a3b847;border-radius:999px;padding:8px 12px}.checkbox-row,.zoom-row{color:var(--text-muted);align-items:center;gap:8px;display:inline-flex}.panel{border-radius:24px;padding:22px}.panel-header{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:14px;display:flex}.panel-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:inline-flex}.panel-header h2,.panel-header h3,.assembly-card h3,.primer-card h3{margin:0}.primer-card,.sequence-editor textarea,.stacked-field input,.stacked-field select{background:var(--surface-high);border:1px solid #94a3b847}.map-shell{background:var(--panel-bg);border-radius:22px;place-items:center;padding:12px;display:grid;overflow:auto}.clean-shell{min-height:460px}.clean-map,.clean-linear-map{width:100%;height:auto}.backbone-halo{fill:none;stroke:#2563eb14;stroke-width:52px}.backbone-track{fill:none;stroke:var(--surface-highest);stroke-width:24px}.dark-mode .backbone-track{stroke:#ffffff0d}.highlight-arc{fill:none;stroke:#f973162e;stroke-linecap:round}.backbone-arc{fill:none;stroke:#0e749038;stroke-linecap:round}.feature-track{fill:none;stroke-linecap:round;transition:opacity .18s,stroke-width .18s,fill .18s,stroke .18s}.feature-track.muted{opacity:.4}.map-title{fill:#0f172a;letter-spacing:.01em;font-size:13px;font-weight:600}.map-meta{fill:#64748b;font-size:10px}.inline-feature-label{fill:#0f172ac7;pointer-events:none;font-size:8.5px;font-weight:600}.inline-feature-label.active{fill:#0f172a}.hover-chip{background:var(--surface-highest);border:1px solid var(--panel-border);color:var(--text-muted);box-shadow:var(--panel-shadow);border-radius:999px;justify-self:start;align-items:center;gap:10px;padding:8px 12px;display:inline-flex}.hover-chip strong{color:var(--text-main)}.linear-track{stroke:#e6edf7;stroke-width:18px;stroke-linecap:round}.selection-summary{color:var(--text-muted);background:#e2e8f099;border-radius:18px;margin-top:14px;padding:14px}.feature-chip-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.feature-chip{background:var(--surface-high);color:var(--text-muted);border:1px solid #94a3b852;border-radius:999px;padding:8px 12px}.feature-chip.active{background:var(--primary-fixed);color:var(--text-main);border-color:#0f766e}.feature-filter{background:#f1f5f9e6;border-radius:18px;margin-bottom:14px;padding:12px 14px}.feature-filter summary{cursor:pointer;color:var(--text-main);font-weight:700}.feature-filter-actions{gap:8px;margin:12px 0;display:flex}.feature-check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.feature-check{background:var(--surface-high);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.feature-check em{color:var(--text-muted);font-style:normal}.feature-leader{stroke:#64748b80;stroke-width:1.5px}.linear-highlight{fill:#f9731638;stroke:#f97316e6;stroke-width:2px}.linear-backbone-highlight{fill:#0e74902e;stroke:#0e7490bf;stroke-width:1.5px;rx:18}.toggle-row{gap:10px;margin-bottom:14px;display:flex}.toggle-button{background:var(--surface-high);color:var(--text-muted);border:1px solid #94a3b852;border-radius:999px;padding:10px 14px;font-weight:700}.toggle-button.active{background:var(--primary-fixed);border-color:var(--primary);color:var(--primary)}.stacked-field,.sequence-editor{gap:12px;display:grid}.stacked-field{color:var(--text-muted);margin-bottom:14px;font-size:.96rem}.meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.rule-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.map-legend-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.donor-browser{gap:10px;margin-bottom:8px;display:grid}.donor-scroll{grid-auto-columns:minmax(220px,260px);grid-auto-flow:column;gap:12px;padding-bottom:4px;display:grid;overflow-x:auto}.donor-card{text-align:left;background:var(--surface-high);color:var(--text-muted);border:1px solid #94a3b83d;border-radius:18px;gap:4px;padding:14px;display:grid}.donor-card.active{border-color:var(--primary);background:#dbeafe73;box-shadow:inset 0 0 0 1px #0369a140}.legend-panel{background:var(--panel-bg);border:1px solid #94a3b83d;border-radius:22px;max-height:760px;padding:14px;overflow:auto}.legend-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.legend-actions{gap:8px;display:flex}.legend-list{gap:8px;display:grid}.legend-item{background:var(--surface-high);border:1px solid #94a3b833;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;display:grid}.legend-item.active{border-color:var(--primary);background:#dbeafe73;box-shadow:inset 0 0 0 1px #0369a140}.legend-select{text-align:left;color:var(--text-main);background:0 0;border:none;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:10px;padding:0;display:grid}.legend-select em{color:var(--text-muted);font-style:normal}.legend-swatch{border-radius:999px;width:14px;height:14px;box-shadow:inset 0 0 0 1px #0f172a1f}.legend-toggle{color:#475569;align-items:center;gap:6px;display:inline-flex}.stacked-field input,.stacked-field select,.sequence-editor textarea{border-radius:14px;width:100%;padding:10px 12px}.sequence-editor textarea{resize:vertical;min-height:180px}.assembly-controls{align-items:center;gap:10px;display:flex}.assembly-controls select{background:var(--surface-high);border:1px solid #94a3b866;border-radius:999px;padding:8px 12px}.output-panel{margin-top:20px}.validation-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.assembly-preview-layout{flex-direction:column;align-items:stretch;gap:32px;display:flex}.assembly-map-col{width:100%}.assembly-primers-col{flex-direction:column;gap:24px;width:100%;display:flex}.assembly-primers-col .validation-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=900px){.assembly-primers-col .validation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.metric-card{background:var(--surface-high);border:1px solid var(--panel-border);border-radius:18px;gap:6px;padding:14px;display:grid;box-shadow:0 4px 12px #0000000d}.metric-card strong{color:var(--primary);font-family:var(--font-mono);font-size:1.1rem}.primer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.primer-card{border-radius:18px;padding:16px}.primer-card p{color:#475569;margin:4px 0 0}.primer-issue-list{border-top:1px solid #94a3b833;gap:8px;margin-top:14px;padding-top:14px;display:grid}.primer-issue{gap:4px;display:grid}.primer-issue strong{color:#0f172a;font-size:.86rem}.primer-issue span{color:#475569;font-size:.84rem;line-height:1.4}.primer-row{grid-template-columns:88px 1fr;align-items:start;gap:10px;margin-top:10px;display:grid}.primer-row code{word-break:break-all}.primer-row.muted{color:#475569}.check-badge-row{flex-wrap:wrap;gap:6px;display:flex}.check-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:.76rem;font-weight:700;display:inline-flex}.check-badge.pass{color:#166534;background:#dcfce7;border-color:#86efac}.check-badge.warn{color:#92400e;background:#fef3c7;border-color:#fcd34d}.check-badge.fail{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.batch-row code{white-space:pre-wrap;word-break:break-all;font-size:.82rem}.batch-reasons{color:#475569;font-size:.78rem;line-height:1.35}.batch-donor-cell{justify-items:start;gap:8px;display:grid}.batch-link-button{color:#0369a1;text-align:left;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.diagnostic-summary{gap:6px;min-width:0;display:grid}.modal-backdrop{z-index:1000;background:#0f172a7a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-shell{background:var(--panel-bg-solid);border:1px solid var(--panel-border);width:min(1100px,100%);max-height:calc(100vh - 48px);box-shadow:var(--panel-shadow);border-radius:24px;padding:20px;overflow:auto}.modal-shell.large{width:min(1320px,100%)}.modal-shell.diagnostics{width:min(1120px,100%)}.empty-state,.empty-map{color:#475569;background:#e2e8f0ad;border-radius:18px;padding:18px}.sequence-pane{background:var(--surface-low);border:1px solid var(--panel-border);border-radius:20px;overflow:hidden}.sequence-header{color:#334155;border-bottom:1px solid #94a3b82e;justify-content:space-between;gap:12px;padding:14px 16px;display:flex}.sequence-pane pre{background:var(--surface-low);border-radius:0 0 12px 12px;max-height:420px;margin:0;padding:16px;overflow:auto}.sequence-pane.annotated{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.sequence-lines{background:var(--surface-highest);max-height:520px;padding:14px 16px 18px;font-family:IBM Plex Mono,SFMono-Regular,monospace;overflow:auto}.sequence-line{grid-template-columns:72px minmax(0,1fr);align-items:start;gap:14px;padding-block:8px;display:grid}.sequence-line-number{color:#64748b;text-align:right;-webkit-user-select:none;user-select:none;font-size:.8rem}.sequence-line-strands{flex-direction:column;gap:2px;display:flex}.sequence-line-bases{word-break:break-all;letter-spacing:.03em;line-height:1.25}.sequence-segment{color:var(--text-muted);border-radius:1px;transition:background-color .12s,text-decoration-color .12s}.sequence-segment.annotated{text-underline-offset:3px;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px;transition:background-color .1s,text-decoration-color .15s}.sequence-segment.annotated:hover{-webkit-text-decoration-color:var(--ann-color,currentColor);text-decoration-color:var(--ann-color,currentColor);text-decoration-thickness:2px}.sequence-segment.hovered{-webkit-text-decoration-color:var(--ann-color,currentColor)!important;text-decoration-color:var(--ann-color,currentColor)!important;text-decoration-thickness:2px!important}.sequence-segment.muted{opacity:.28}.sequence-segment.selected{border-radius:2px;font-weight:700;-webkit-text-decoration-color:var(--ann-color,currentColor)!important;text-decoration-color:var(--ann-color,currentColor)!important;text-decoration-thickness:2.5px!important}.sequence-segment.primer-highlight{text-decoration-style:dashed;-webkit-text-decoration-color:var(--ann-color,currentColor)!important;text-decoration-color:var(--ann-color,currentColor)!important;text-decoration-thickness:2px!important}.side-nav-container{pointer-events:none;z-index:1000;justify-content:space-between;padding:0 2rem;display:flex;position:fixed;top:50%;left:0;right:0;transform:translateY(-50%)}.side-nav-arrow{pointer-events:auto;background:var(--panel-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--panel-border);width:56px;height:56px;color:var(--text-main);box-shadow:var(--panel-shadow);cursor:pointer;border-radius:28px;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex}.side-nav-arrow:hover{background:var(--surface-highest);border-color:var(--accent-primary);transform:scale(1.1);box-shadow:0 12px 24px #00000026}.side-nav-arrow:active{transform:scale(.95)}.side-nav-arrow.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.side-nav-arrow svg{width:24px;height:24px}.side-nav-label{white-space:nowrap;text-transform:uppercase;color:var(--text-muted);opacity:0;margin-top:8px;font-size:11px;font-weight:700;transition:opacity .2s;position:absolute;top:100%;left:50%;transform:translate(-50%)}.side-nav-arrow:hover .side-nav-label{opacity:1}.wizard-actions{display:none!important}.batch-row{background:#f8fafcf2;border-radius:14px;grid-template-columns:180px 130px 120px 120px 100px 110px 100px 100px 260px 80px 90px 260px 80px 90px 220px 260px 80px 90px 260px 80px 90px 220px 140px 140px;align-items:center;gap:10px;min-width:3100px;padding:10px 12px;display:grid}.batch-head{background:#dbeafee6;width:max-content;font-weight:700}.batch-diagnostics-button{width:100%;min-width:0;padding-inline:12px}@media (width<=1180px){.primer-grid,.validation-grid,.meta-grid,.feature-check-grid,.rule-grid,.batch-config-grid,.map-legend-layout,.pv-layout{grid-template-columns:1fr}.pv-map-frame{min-height:560px}}@media (width<=760px){.app-shell{padding:14px}.hero{flex-direction:column;padding:20px}.hero-actions{min-width:unset;width:100%}.panel{padding:18px}.pv-toolbar,.pv-toolbar-left,.pv-toolbar-right,.pv-map-footer,.pv-legend-header,.pv-legend-actions{align-items:stretch}.pv-legend-select{grid-template-columns:12px minmax(0,1fr)}.pv-legend-type,.pv-legend-range,.pv-legend-length{display:none}.pv-map-frame{min-height:440px}}.tabs-nav{background:var(--surface-low);border:1px solid var(--panel-border);border-radius:24px;gap:12px;width:fit-content;margin-bottom:24px;padding:8px;display:flex}.upload-button{color:#fff;cursor:pointer;white-space:nowrap;background:#2563eb;border-radius:8px;justify-content:center;align-items:center;padding:10px 20px;font-weight:500;transition:all .2s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #2563eb33}.upload-button:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 6px -1px #2563eb40}.upload-button.donor-upload{background:#0f172a;box-shadow:0 1px 2px #0f172a33}.upload-button.donor-upload:hover:not(:disabled){background:#1e293b;box-shadow:0 4px 6px -1px #0f172a40}.tab-button{color:#64748b;background:0 0;border:1px solid #0000;border-radius:16px;align-items:center;gap:8px;padding:12px 20px;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.tab-button:hover:not(.active){color:#0f172a;background:#fff9}.tab-button.active{background:var(--surface-high);color:#0f766e;border-color:#0f766e26;box-shadow:0 4px 12px #0f766e14}.tab-number{width:22px;height:22px;color:inherit;background:#94a3b833;border-radius:6px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.tab-button.active .tab-number{background:#0f766e1a}.tab-content{animation:.3s ease-out tabFadeIn}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.feature-label{font-size:14px;font-family:var(--font-primary,sans-serif);fill:var(--text-main,#333);font-weight:500}.feature-label.selected{fill:var(--primary,#2563eb);font-weight:700}.pv-map-overlay-top-left{transform:translate(20px,20px)}.pv-map-overlay-top-left .overlay-boundary{fill:#0f172a;font-size:14px;font-weight:700}.pv-map-overlay-top-left .overlay-bp{fill:#64748b;font-size:12px;font-weight:500}.backbone-primers-section{margin-top:1.5rem;margin-bottom:1.5rem;animation:.4s ease-out fadeIn}.primer-section-header{align-items:baseline;gap:12px;margin-bottom:1.25rem;display:flex}.primer-section-header h3{color:var(--text-main);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:1rem;font-weight:800}.rule-panel h2{color:var(--text-main);text-align:center;width:100%;margin:0 0 1.5rem;font-size:1.5rem;font-weight:700}.primer-section-hint{color:var(--text-muted);font-size:.85rem;font-weight:500}.primer-card-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.primer-card{background:var(--panel-bg);-webkit-backdrop-filter:blur(14px);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);border-radius:20px;flex-direction:column;padding:1.25rem;transition:all .3s cubic-bezier(.23,1,.32,1);display:flex;position:relative}.primer-card:hover{border-color:#0d948840;transform:translateY(-4px)scale(1.01);box-shadow:0 16px 48px #0d948814}.primer-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.primer-label{text-transform:uppercase;letter-spacing:.12em;color:#0d9488;background:#0d948814;border-radius:6px;padding:4px 10px;font-size:.7rem;font-weight:800}.copy-badge{letter-spacing:.04em;text-transform:uppercase;cursor:pointer;color:#fff;background:#059669;border:1px solid #fff3;border-radius:12px;outline:none;align-items:center;gap:8px;padding:10px 24px;font-size:.88rem;font-weight:850;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 20px #05966966}.copy-badge:hover{color:#fff;background:#10b981;border-color:#fff6;transform:translateY(-2px)scale(1.04);box-shadow:0 8px 32px #10b9818c}.copy-badge.copied{background:#10b981;border-color:#059669;animation:.4s ease-out success-pulse;transform:scale(1.05);box-shadow:0 0 20px #10b98166}@keyframes success-pulse{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1.05)}}.copy-badge:active{transform:scale(.95)}.primer-sequence{font-family:var(--font-mono);color:var(--text-main);background:var(--surface-low);word-break:break-all;border:1px solid var(--outline-variant);letter-spacing:.02em;border-radius:14px;margin-bottom:1.25rem;padding:1.25rem;font-size:1.05rem;line-height:1.7;display:block;box-shadow:inset 0 2px 8px #0000001a}.primer-meta{color:var(--text-muted);gap:1.5rem;font-family:Space Grotesk,sans-serif;font-size:.85rem;font-weight:600;display:flex}.primer-meta span strong{color:var(--text-main);margin-left:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.primer-card.premium-detail{background:linear-gradient(145deg,#ffffffd9,#f8fafcb3);max-width:900px;margin:0 auto 2rem;padding:1.5rem}.primer-detail-sub-card{background:#ffffff73;border:1px solid #94a3b81a;border-radius:16px;padding:1.25rem;box-shadow:inset 0 1px 3px #00000005}.primer-mini-checks{gap:6px;margin-left:auto;display:flex}.check-dot{border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 2px #fffc}.check-dot.pass{background:#10b981}.check-dot.warn{background:#f59e0b}.check-dot.fail{background:#ef4444}.primer-issue-text{color:#ef4444;margin-top:.75rem;font-size:.8rem;font-weight:500;line-height:1.4}.primer-pair-summary{border-top:1px dashed #94a3b84d;align-items:center;gap:1.5rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.pair-meta{color:var(--text-main);align-items:center;gap:12px;font-size:.85rem;font-weight:600;display:flex}.view-mode-toggle{background:var(--surface-low);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--panel-border);width:fit-content;box-shadow:var(--panel-shadow);border-radius:14px;margin:1rem auto;padding:4px;display:flex}.toggle-button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 18px;font-size:.85rem;font-weight:700;transition:all .2s}.toggle-button.active{background:var(--surface-highest);color:var(--primary);box-shadow:0 2px 8px #0000001a}.pcr-designer-container{animation:.5s ease-out fadeIn}.pcr-vertical-layout{flex-direction:column;gap:1.5rem;max-width:1100px;margin:-1rem auto 0;padding:0 1rem;display:flex}.pcr-modern-header{background:var(--surface-low);border-bottom:1px solid var(--panel-border);border-radius:28px 28px 0 0;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1.25rem 2rem;display:flex}.pcr-header-main{align-items:center;gap:1.25rem;display:flex}.pcr-header-icon{background:var(--secondary-container);width:48px;height:48px;color:var(--secondary);border-radius:14px;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 12px #10b98126}.pcr-header-stats{gap:1.5rem;display:flex}.stat-pill{flex-direction:column;align-items:flex-end;display:flex}.stat-pill .label{color:var(--text-main);opacity:.65;letter-spacing:.1em;font-size:.65rem;font-weight:800}.stat-pill strong{color:var(--text-main);letter-spacing:-.02em;font-size:1.25rem;font-weight:900}.pcr-layer{animation:.4s ease-out backwards slideUp}.pcr-input-cluster{background:var(--panel-bg-solid);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);border-radius:28px;flex-direction:column;gap:1.5rem;padding:2rem;display:flex}.pcr-textarea.mini{min-height:180px}.pcr-mode-selector.horizontal{gap:8px;margin-bottom:1rem;display:flex}.pcr-mode-card.compact{text-align:center;min-width:80px;padding:8px 12px;font-size:.85rem}.pcr-results-strip{flex-direction:column;gap:1rem;display:flex}.pcr-pair-strip-card{background:var(--surface-low);border:1px solid var(--panel-border);border-radius:20px;align-items:center;padding:1rem 1.5rem;transition:all .2s;display:flex;position:relative}.pcr-pair-strip-card:hover{background:var(--surface-high);border-color:var(--primary-dim);transform:scale(1.01)}.strip-rank{background:var(--secondary);color:var(--on-primary);border-radius:6px;margin-right:1.5rem;padding:4px 8px;font-size:.65rem;font-weight:900}.strip-content{flex-direction:column;gap:16px;padding:20px;display:flex}.strip-primer{flex-direction:column;gap:8px;display:flex}.strip-sequence-wrapper{background:var(--surface-highest);border:1px solid var(--panel-border);border-radius:8px;align-items:center;gap:12px;padding:10px 14px;display:flex}.strip-sequence{font-family:var(--font-mono);letter-spacing:.05em;color:var(--primary);word-break:break-all;flex:1;font-size:.95rem}.strip-primer-meta{flex-direction:column;display:flex}.strip-primer-meta strong{text-transform:uppercase;color:var(--text-muted);font-size:.75rem}.strip-primer-meta span{color:var(--text-main);font-size:.9rem;font-weight:700}.strip-sequence{font-family:var(--font-mono);color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;background:#0000000d;border-radius:8px;flex:1;padding:6px 10px;font-size:.82rem;overflow:hidden}.dark-mode .strip-sequence{background:#ffffff0d}.strip-divider{background:var(--panel-border);width:1px;height:24px}.copy-icon-btn{background:var(--surface-high);border:1px solid var(--panel-border);color:var(--primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.copy-icon-btn:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}.pcr-empty-visualizer{background:var(--surface-dim);border:2px dashed var(--panel-border);text-align:center;color:var(--text-muted);border-radius:28px;padding:4rem}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pcr-examples-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.pcr-examples-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.72rem;font-weight:700}.pcr-example-chips{flex-wrap:wrap;gap:6px;display:flex}.pcr-example-chip{color:var(--text-main);background:var(--surface-low);border:1px solid var(--outline-variant);cursor:pointer;white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s,transform .12s}.pcr-example-chip:hover{background:var(--surface-dim);transform:translateY(-1px)}.pcr-example-chip.active{color:#0f172a;font-weight:700}.pcr-textarea{background:var(--surface-low);border:1px solid var(--panel-border);resize:vertical;width:100%;min-height:300px;color:var(--text-main);border-radius:16px;padding:1.25rem;font-family:IBM Plex Mono,monospace;font-size:.9rem;line-height:1.5;transition:all .2s}.pcr-textarea:focus{border-color:var(--primary);background:var(--surface-high);outline:none}.tool-settings-row{align-items:flex-end;gap:1rem;margin-top:1.5rem;display:flex}.design-btn{flex:1}.pcr-results-list{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem;padding-bottom:2rem;display:grid}.pcr-pair-card{background:var(--panel-bg-solid);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);border-radius:20px;flex-direction:column;gap:12px;padding:1.25rem;transition:all .3s cubic-bezier(.23,1,.32,1);display:flex;position:relative}.pcr-pair-card:hover{border-color:var(--primary-dim);box-shadow:var(--panel-shadow);transform:translateY(-4px)}.pair-rank{background:var(--secondary);width:28px;height:28px;color:var(--on-primary);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:800;display:flex;position:absolute;top:-10px;left:-10px;box-shadow:0 4px 8px #0000001a}.pair-primer-row{background:var(--surface-low);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px;display:flex}.primer-info{flex-direction:column;gap:4px;display:flex;overflow:hidden}.pcr-pair-card .primer-sequence{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;margin:0;padding:0;font-size:.8rem;overflow:hidden}.pair-footer{border-top:1px dashed #94a3b833;justify-content:space-between;align-items:center;margin-top:4px;padding-top:12px;display:flex}.tm-delta{color:var(--text-muted);font-size:.8rem;font-weight:700}.pair-status-tag{border-radius:4px;padding:2px 8px;font-size:.65rem;font-weight:800}.pair-status-tag.pass{background:var(--secondary-container);color:var(--secondary);border:1px solid #10b98133}.pair-status-tag.warn{color:#f59e0b;background:#f59e0b26;border:1px solid #f59e0b33}.pair-status-tag.fail{color:#ef4444;background:#ef444426;border:1px solid #ef444433}@media (width<=1024px){.pcr-content-grid{grid-template-columns:1fr}}.entry-journey{flex-direction:column;justify-content:center;align-items:center;max-width:1200px;min-height:80vh;margin:0 auto;padding:2rem;display:flex}.entry-stage{text-align:center;width:100%;max-width:900px;animation:.6s cubic-bezier(.23,1,.32,1) fadeIn;position:relative}.landing-actions{z-index:10;justify-content:flex-end;display:flex;position:absolute;top:-40px;right:0}.theme-btn-landing{background:var(--surface-low);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);transition:all .3s;transform:translateY(0)}.theme-btn-landing:hover{background:var(--surface-high);transform:translateY(-2px)}.journey-title{background:linear-gradient(135deg, var(--text-main) 0%, var(--primary) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.05em;-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;font-size:3.5rem;font-weight:800}.journey-subtitle{color:var(--text-muted);max-width:600px;margin:0 auto 3rem;font-size:1.25rem}.prompt-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:2rem;margin-top:2rem;display:grid}.prompt-card.glass{background:var(--panel-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--panel-border);text-align:center;cursor:pointer;box-shadow:var(--panel-shadow);border-radius:28px;padding:3rem 2rem;transition:all .4s cubic-bezier(.23,1,.32,1)}.prompt-card.glass:hover{background:var(--surface-high);box-shadow:0 30px 60px var(--glow-primary);border-color:var(--primary);transform:translateY(-8px)scale(1.02)}.prompt-card.secondary{background:var(--surface-low)}.prompt-icon{margin-bottom:2rem;font-size:3.5rem;transition:transform .4s;display:inline-block}.prompt-card:hover .prompt-icon{transform:scale(1.1)rotate(5deg)}.back-link{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border:none;border-radius:99px;margin-top:3rem;padding:8px 16px;font-size:.9rem;font-weight:600;transition:color .2s;display:inline-block}.back-link:hover{color:var(--primary);background:#2563eb0d}.ready-pulse{animation:2s infinite pulsePrimary;box-shadow:0 0 20px #2563eb33}@keyframes pulsePrimary{0%{box-shadow:0 0 #2563eb66}70%{box-shadow:0 0 0 15px #2563eb00}to{box-shadow:0 0 #2563eb00}}.loading-grid{grid-template-columns:2fr 1.5fr}.upload-trigger{position:relative}.upload-trigger input{opacity:0;cursor:pointer;position:absolute;inset:0}.mb-12{margin-bottom:3rem}.mt-12{margin-top:3rem}.tracking-tighter{letter-spacing:-.05em}.uppercase{text-transform:uppercase}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.font-bold{font-weight:700}.opacity-80{opacity:.8}.opacity-70{opacity:.7}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.pv-label-group{transition:opacity .25s}.pv-label-group.muted{opacity:.22}.pv-label-group:hover,.pv-label-group.hovered,.pv-label-group.selected{opacity:1!important}.pv-label-title{font-family:var(--font-main);letter-spacing:-.01em;pointer-events:auto;cursor:pointer}.pv-label-leader{pointer-events:none;transition:stroke .2s,stroke-opacity .2s}.pv-feature-hit path{transition:all .28s cubic-bezier(.4,0,.2,1)}.pv-feature-hit:hover path[stroke^=rgba]{animation:2s ease-in-out infinite pvPulse}@keyframes pvPulse{0%{stroke-opacity:.35}50%{stroke-opacity:.85}to{stroke-opacity:.35}}.pv-ring-base{stroke:#0000;stroke-width:0}.pv-center-meta-total{fill:var(--text-main);font-family:Space Grotesk,sans-serif}.pv-center-meta-selected{fill:var(--primary);font-family:Space Grotesk,sans-serif}.app-header{z-index:1000;background:var(--panel-bg);-webkit-backdrop-filter:blur(24px)saturate(200%);border-bottom:1px solid var(--panel-border);grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 24px;display:grid;position:sticky;top:0;box-shadow:0 4px 6px -1px #0000000d}.app-header-left{align-items:center;gap:12px;display:flex}.app-header-center{background:var(--surface-low);border:1px solid var(--panel-border);border-radius:99px;align-items:center;gap:8px;padding:6px 12px;display:flex}.app-header-right{justify-content:flex-end;align-items:center;gap:12px;display:flex}.app-header-logo{color:var(--primary);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:flex}.app-header-logo span{color:var(--text-main);font-weight:700}.app-header-logo svg{color:var(--primary);filter:drop-shadow(0 0 8px var(--glow-primary))}.toolbox-trigger{color:var(--text-main);cursor:pointer;background:0 0;border:none;border-radius:99px;align-items:center;gap:8px;padding:6px 14px;font-size:.85rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.toolbox-trigger:hover{background:var(--surface-high);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.toolbox-trigger svg{color:var(--primary)}.app-header-btn{color:var(--text-muted);background:var(--surface-high);border:1px solid var(--panel-border);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:6px 14px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.app-header-btn:hover{background:var(--surface-dim);color:var(--text-main);border-color:var(--outline)}.app-header-home{color:#fff;background:var(--primary);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:6px;padding:6px 16px;font-size:.8rem;font-weight:700;transition:all .2s;display:flex}.app-header-home:hover{background:var(--primary-dim);box-shadow:0 4px 15px var(--glow-primary);transform:scale(1.02)}.header-divider{background:var(--panel-border);width:1px;height:20px;margin:0 4px}.header-theme-toggle{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.header-theme-toggle:hover{background:var(--surface-high);color:var(--primary);transform:rotate(15deg)}.workspace-toast{color:#10b981;background:#10b98114;border-radius:6px;padding:4px 10px;font-size:.75rem;font-weight:600;animation:.2s fadeIn}.toolbox-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.toolbox-modal{background:var(--surface);border:1px solid var(--panel-border);width:100%;max-width:680px;box-shadow:var(--panel-shadow);border-radius:24px;animation:.3s cubic-bezier(.34,1.56,.64,1) modalEnter;overflow:hidden}@keyframes modalEnter{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.toolbox-header{background:var(--surface-low);border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.toolbox-title{color:var(--text-main);align-items:center;gap:12px;font-size:1.1rem;font-weight:700;display:flex}.toolbox-title svg{color:var(--primary)}.toolbox-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:12px;padding:8px;transition:all .2s}.toolbox-close:hover{background:var(--surface-dim);color:var(--text-main);transform:rotate(90deg)}.toolbox-content{grid-template-columns:200px 1fr;min-height:480px;display:grid}.toolbox-tabs{background:var(--surface-dim);border-right:1px solid var(--panel-border);flex-direction:column;gap:8px;padding:16px;display:flex}.toolbox-tab{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.toolbox-tab:hover{background:var(--surface-low);color:var(--text-main)}.toolbox-tab.active{background:var(--surface-high);color:var(--primary);box-shadow:0 4px 12px #0000000d}.toolbox-pane{background:var(--surface-high);flex-direction:column;gap:16px;padding:24px;display:flex}.toolbox-field{flex-direction:column;gap:8px;display:flex}.toolbox-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700}.toolbox-input{background:var(--surface-low);border:1.5px solid var(--panel-border);width:100%;color:var(--text-main);font-family:var(--font-mono);resize:none;border-radius:12px;padding:12px;font-size:.9rem;transition:all .2s}.toolbox-input:focus{border-color:var(--primary);background:var(--surface-high);box-shadow:0 0 0 4px var(--glow-primary);outline:none}.toolbox-output-container{background:var(--surface-dim);border:1px solid var(--panel-border);border-radius:16px;flex-direction:column;flex:1;gap:12px;min-height:120px;padding:16px;display:flex;position:relative}.toolbox-output-header{justify-content:space-between;align-items:center;display:flex}.toolbox-output-label{color:var(--primary);text-transform:uppercase;font-size:.75rem;font-weight:700}.toolbox-result{font-family:var(--font-mono);word-break:break-all;color:var(--text-main);font-size:1rem;line-height:1.6}.toolbox-copy-btn{background:var(--surface-high);border:1px solid var(--panel-border);color:var(--text-muted);cursor:pointer;border-radius:8px;padding:4px 10px;font-size:.7rem;font-weight:700;transition:all .2s}.toolbox-copy-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.toolbox-grid-stats{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.toolbox-stat-card{background:var(--surface-low);border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.toolbox-stat-card span{color:var(--text-muted);text-transform:uppercase;font-size:.7rem;font-weight:700}.toolbox-stat-card strong{color:var(--primary);font-size:1.2rem;font-weight:700}.primer-card.premium-detail{overflow:hidden;max-width:none!important;margin:0!important;padding:0!important}.primer-card-accent-bar{width:100%;height:4px}.primer-card-inner{padding:1.1rem 1.4rem 1.4rem}.primer-grid{grid-template-columns:1fr 1fr;gap:18px;margin:1.5rem 0;display:grid}.primer-sequence-row{align-items:center;gap:8px;min-width:0;margin:7px 0 4px;display:flex}.primer-sequence-inline{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-main);background:var(--surface-low);border:1px solid var(--outline-variant);white-space:pre-wrap;word-break:break-all;min-width:0;text-overflow:unset;border-radius:8px;flex:1;margin-bottom:0;padding:6px 10px;font-size:.76rem;line-height:1.5;display:block;overflow:visible}.dark-mode .primer-sequence-inline{color:#f1f5f9;background:#0003;border-color:#ffffff1a}.copy-badge-inline{color:#fff;cursor:pointer;white-space:nowrap;background:#059669;border:1px solid #fff3;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:800;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 2px 10px #0596694d}.copy-badge-inline:hover{color:#fff;background:#10b981;border-color:#ffffff59;transform:translateY(-1px);box-shadow:0 4px 15px #10b98173}.copy-badge-inline.copied{color:#fff;background:#34d399;border-color:#ffffff73;box-shadow:0 0 12px #34d39966}.dark-mode .copy-badge-inline{color:#34d399;box-shadow:none;background:#10b98133;border-color:#10b9814d}.dark-mode .copy-badge-inline:hover{color:#6ee7b7;background:#10b9814d;border-color:#10b98180}.dark-mode .copy-badge-inline.copied{color:#6ee7b7;background:#34d3994d;border-color:#34d39980}.primer-row-header{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.primer-direction-chip{letter-spacing:.1em;border-radius:4px;padding:2px 7px;font-size:.63rem;font-weight:800}.primer-direction-f{color:#0369a1;background:#0ea5e91a}.primer-direction-r{color:#065f46;background:#10b9811a}.primer-tm-badge{color:#0f172a;letter-spacing:-.01em;background:#f1f5f9;border-radius:5px;padding:2px 6px;font-size:.7rem;font-weight:700}.dark-mode .primer-direction-f{color:#38bdf8;background:#0ea5e926}.dark-mode .primer-direction-r{color:#34d399;background:#10b98126}.dark-mode .primer-tm-badge{color:#e2e8f0;background:#ffffff14;border:1px solid #ffffff1a}.qc-dot-interactive{cursor:help;border-radius:50%;width:10px;height:10px;display:inline-block}.qc-tooltip{z-index:2000;background:var(--surface-high);-webkit-backdrop-filter:blur(20px);border:1px solid var(--panel-border);pointer-events:none;border-radius:12px;flex-direction:column;gap:6px;min-width:220px;max-width:280px;padding:12px 14px;animation:.2s cubic-bezier(.16,1,.3,1) forwards tooltipEntrance;display:flex;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%)translateY(10px);box-shadow:0 8px 32px #0000001f}@keyframes tooltipEntrance{to{opacity:1;transform:translate(-50%)translateY(0)}}.qc-tooltip:after{content:"";border:6px solid #0000;border-top-color:var(--panel-border);position:absolute;top:100%;left:50%;transform:translate(-50%)}.qc-tooltip-label{text-transform:uppercase;letter-spacing:.08em;color:#0f172a;font-size:.68rem;font-weight:800}.qc-tooltip-status{border-radius:4px;width:fit-content;padding:1px 6px;font-size:.68rem;font-weight:700}.qc-status-pass{color:#15803d;background:#ecfdf5}.qc-status-warn{color:#b45309;background:#fffbeb}.qc-status-fail{color:#b91c1c;background:#fef2f2}.qc-tooltip-text{color:#475569;margin-top:1px;font-size:.71rem;line-height:1.45}.qc-tooltip-detail{color:#94a3b8;font-size:.68rem;font-family:var(--font-mono)}.primer-mini-checks{align-items:center;gap:5px;display:flex}.entry-journey{background:var(--surface);justify-content:center;align-items:center;min-height:100vh;padding:48px 24px;display:flex}.entry-stage{text-align:center;flex-direction:column;align-items:center;gap:0;width:100%;max-width:860px;display:flex}.entry-wordmark{letter-spacing:.01em;color:var(--text-muted);align-items:center;gap:10px;margin-bottom:32px;font-size:.85rem;font-weight:700;display:flex}.entry-heading{letter-spacing:-.04em;color:var(--text-main);margin:0 0 16px;font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1.05}.entry-sub{color:var(--text-muted);max-width:600px;margin:0 0 48px;font-size:1.25rem;line-height:1.55}.entry-card-row{justify-content:center;gap:14px;width:100%;display:flex}.entry-card{background:var(--panel-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--panel-border);text-align:left;cursor:pointer;min-width:0;box-shadow:var(--panel-shadow);border-radius:32px;flex:1;align-items:center;gap:16px;padding:24px 28px;transition:all .4s cubic-bezier(.23,1,.32,1);display:flex}.entry-card:hover{box-shadow:0 20px 60px var(--glow-primary);border-color:var(--primary);background:var(--surface-high);transform:translateY(-6px)scale(1.01)}.entry-card--cloning:hover{border-color:var(--primary)}.entry-card--pcr:hover{border-color:var(--secondary)}.entry-card-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.entry-card-icon--blue{background:var(--secondary-container);color:var(--primary)}.entry-card-icon--green{background:var(--secondary-container);color:var(--secondary);opacity:.9}.entry-card-icon--slate{background:var(--surface-highest);color:var(--text-muted)}.entry-card-body{flex:1;min-width:0}.entry-card-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:3px;font-size:.65rem;font-weight:700;display:block}.entry-card-title{color:var(--text-main);letter-spacing:-.01em;margin:0 0 4px;font-size:1.15rem;font-weight:700}.entry-card-desc{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.45}.entry-card-arrow{color:var(--outline);flex-shrink:0;font-size:1.1rem;transition:color .15s,transform .15s}.entry-card:hover .entry-card-arrow{color:#94a3b8;transform:translate(3px)}.entry-init-grid{grid-template-columns:repeat(3,minmax(260px,1fr));gap:24px;width:100%;max-width:1000px;margin:0 auto 48px;display:grid}@media (width<=900px){.entry-init-grid{grid-template-columns:1fr}}.entry-init-card{background:var(--panel-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--panel-border);text-align:center;cursor:pointer;border-radius:32px;flex-direction:column;align-items:center;gap:20px;padding:40px 24px;transition:all .4s cubic-bezier(.23,1,.32,1);display:flex;position:relative;overflow:hidden}.entry-init-card--upload input[type=file]{display:none}.entry-init-card:hover,.entry-init-card--example:hover{border-color:var(--primary);background:var(--surface-high);box-shadow:0 20px 60px var(--glow-primary);border-style:solid;transform:translateY(-8px)scale(1.02)}.entry-init-card--example{border-style:dashed}.entry-init-icon{border-radius:16px;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:8px;transition:transform .3s;display:flex}.entry-init-card:hover .entry-init-icon{transform:scale(1.1)}.entry-init-icon--blue{color:#0ea5e9;background:#0ea5e91a}.entry-init-icon--green{color:#10b981;background:#10b9811a}.entry-init-icon--slate{color:var(--text-muted);background:#64748b1a}.entry-init-icon--amber{color:#f59e0b;background:#f59e0b1a}.dark-mode .entry-init-icon--blue{color:#38bdf8}.dark-mode .entry-init-icon--green{color:#34d399}.dark-mode .entry-init-icon--amber{color:#fbbf24}.entry-init-body{flex:1;min-width:0}.entry-init-body h3{color:var(--text-main);letter-spacing:-.01em;margin:0 0 8px;font-size:1.1rem;font-weight:700}.entry-init-body p{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.5}.entry-init-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:4px 10px;font-size:.65rem;font-weight:800;position:absolute;top:16px;right:16px}.entry-init-badge--loaded{color:#10b981;background:#10b98126}.entry-init-badge--example{color:#f59e0b;background:#f59e0b26}.entry-cta{background:var(--primary);color:var(--on-primary);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;margin-top:4px;margin-bottom:16px;padding:12px 24px;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.entry-cta:hover{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dim) 100%);transform:translateY(-2px)scale(1.02);box-shadow:0 0 30px #3b82f666}.entry-back{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;margin-top:8px;padding:6px 2px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.entry-back:hover{color:var(--text-main);transform:translate(-2px)}.fade-in{animation:.28s both fadeIn}.pv-map-overlay-group{pointer-events:none}.overlay-label{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;fill:var(--text-muted);opacity:.8;font-size:10px;font-weight:800}.overlay-boundary{font-family:var(--font-display);letter-spacing:-.02em;fill:var(--text-main);font-size:17px;font-weight:900}.overlay-bp{font-family:var(--font-sans);font-size:11.5px;font-weight:700}.dark-mode .overlay-label{fill:var(--text-muted);opacity:.9}.dark-mode .overlay-boundary{fill:var(--text-main)}.pv-map-svg{background:0 0}.dark-mode .pv-map-svg circle:nth-of-type(2){fill:var(--surface)}.rule-panel-body{flex-direction:column;gap:24px;display:flex}.rule-panel-aside{min-width:0}.rule-panel.compact{padding:16px 20px}.rule-panel.compact .panel-header{border-bottom:1px solid var(--panel-border);margin-bottom:12px;padding-bottom:12px}.rule-panel.compact .rule-panel-main{box-shadow:none;background:0 0;border:none;flex-flow:wrap;align-items:flex-end;gap:20px;padding:0}.rule-panel.compact .selection-sidebar-section{flex:none;min-width:220px}.rule-panel.compact .logic-card{flex:1;min-width:400px;margin-top:0}.rule-panel.compact .logic-card-body{flex-direction:row;gap:16px;padding:12px 16px;display:flex}.rule-panel.compact .logic-field{flex:1}.rule-panel.compact .sidebar-meta-options{border-top:none;flex-direction:row;align-self:center;gap:12px;margin-top:0;padding-top:0;display:flex}.selection-sidebar-section{flex-direction:column;gap:8px;display:flex}.sidebar-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:.65rem;font-weight:800;display:flex}.sidebar-label svg{opacity:.6}.sidebar-control select{border:1px solid var(--panel-border);background:var(--surface-low);width:100%;color:var(--text-main);border-radius:12px;padding:10px 14px;font-size:.9rem;font-weight:500;transition:all .2s}.dark-mode .sidebar-control select{background:var(--surface-high)}.sidebar-control select:hover{border-color:var(--primary-dim)}.logic-card{background:var(--surface-low);border:1px solid var(--panel-border);border-radius:16px;margin-top:8px;overflow:hidden}.dark-mode .logic-card{background:var(--surface-high)}.logic-card-header{background:var(--surface-dim);border-bottom:1px solid var(--panel-border);color:var(--primary);letter-spacing:.1em;align-items:center;gap:8px;padding:10px 16px;font-size:.6rem;font-weight:800;display:flex}.logic-card-body{flex-direction:column;gap:16px;padding:16px;display:flex}.logic-field{flex-direction:column;gap:6px;display:flex}.logic-field label{color:#3b82f6;letter-spacing:.04em;font-size:.6rem;font-weight:700}.logic-field select{background:var(--surface-high);border:1px solid var(--outline-variant);color:var(--text-main);border-radius:8px;padding:8px 12px;font-size:.85rem;font-weight:600}.dark-mode .logic-field select{background:var(--surface-low);border-color:var(--panel-border)}.sidebar-meta-options{border-top:1px dashed var(--panel-border);flex-direction:column;gap:8px;margin-top:8px;padding-top:16px;display:flex}.ghost-action-link{color:var(--primary);text-align:left;cursor:pointer;opacity:.8;background:0 0;border:none;padding:4px 0;font-size:.8rem;font-weight:600;transition:opacity .2s}.ghost-action-link:hover{opacity:1;text-decoration:underline}.donor-browser{flex-direction:column;height:100%;display:flex}.header-actions span{color:var(--text-muted);font-size:.8rem;font-family:var(--font-mono)}.donor-empty-state{background:var(--surface-high);border:2px dashed var(--outline-variant);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:48px;display:flex}.donor-empty-state .empty-icon{opacity:.3;margin-bottom:16px}.donor-empty-state .empty-icon svg{width:48px;height:48px}.donor-empty-state p{color:var(--text-muted);margin-bottom:24px;font-size:.95rem}.pv-ghost-button{border:1px solid var(--outline);font-family:var(--font-sans);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .2s;display:inline-flex}.pv-ghost-button:hover{background:var(--surface-high);color:var(--text-main);border-color:var(--text-main)}.pv-ghost-button.primary{color:var(--primary);border-color:var(--primary-dim)}.pv-ghost-button.primary:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.pv-ghost-button svg{width:14px;height:14px}@media (width<=1100px){.rule-panel-body{grid-template-columns:1fr}}.annotation-editor-overlay{z-index:10000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172a66;justify-content:center;align-items:center;padding:40px;animation:.3s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.annotation-editor-container{background:var(--surface-low);border:1px solid var(--panel-border);border-radius:24px;flex-direction:column;width:100%;max-width:1400px;height:90vh;display:flex;overflow:hidden;box-shadow:0 32px 64px #00000040}.annotation-header{background:var(--surface-high);border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:24px 32px;display:flex}.header-main{align-items:center;gap:20px;display:flex}.plasmid-name-input{background:var(--surface-dim);border:1px solid var(--panel-border);color:var(--text-main);border-radius:8px;width:300px;padding:8px 16px;font-weight:600}.header-actions{align-items:center;gap:12px;display:flex}.annotation-layout{flex:1;grid-template-columns:380px 1fr;display:grid;overflow:hidden}.annotation-sidebar{background:var(--surface-high);border-right:1px solid var(--panel-border);flex-direction:column;gap:24px;padding:24px;display:flex;overflow-y:auto}.guide-box{background:#2563eb0d;border:1px solid #2563eb1a;border-radius:12px;padding:16px;position:relative}.guide-tag{background:var(--primary);color:#fff;letter-spacing:.05em;border-radius:4px;padding:2px 8px;font-size:.65rem;font-weight:800;position:absolute;top:-10px;left:12px}.guide-box p{color:#1e40af;margin:0;font-size:.88rem;font-weight:500;line-height:1.5}.sidebar-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:12px;font-size:.75rem}.range-preview{background:var(--surface-dim);border:1px dashed var(--panel-border);border-radius:8px;margin-bottom:24px;padding:12px;font-size:.85rem}.feature-fields{flex-direction:column;gap:12px;display:flex}.field-row{gap:8px;display:flex}.feature-fields input,.feature-fields select{border:1px solid var(--panel-border);background:var(--surface-high);width:100%;color:var(--text-main);border-radius:8px;padding:10px 14px;font-size:.9rem}.strand-toggle{background:var(--surface-dim);border-radius:8px;flex-shrink:0;padding:3px;display:flex}.strand-toggle button{height:32px;color:var(--text-muted);background:0 0;border:none;border-radius:6px;padding:0 16px;font-size:.75rem;font-weight:700}.strand-toggle button.active{background:var(--surface-high);color:var(--primary);box-shadow:0 2px 4px #0000000d}.add-feature-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-weight:700}.add-feature-btn:disabled{opacity:.4;cursor:not-allowed}.feature-list-container{flex-direction:column;flex:1;display:flex}.feature-scroll{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.feature-item{background:var(--surface-dim);border:1px solid var(--panel-border);border-radius:8px;align-items:center;gap:12px;padding:10px;display:flex}.feature-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.feature-info{flex-direction:column;flex:1;gap:2px;display:flex}.f-name{font-size:.85rem;font-weight:700}.f-meta{color:var(--text-muted);font-size:.75rem}.del-f{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:1.2rem}.del-f:hover{color:#ef4444}.empty-features{text-align:center;color:var(--text-muted);padding:20px;font-size:.85rem;font-style:italic}.sequence-workspace{background:var(--surface);padding:40px;overflow-y:auto}.sequence-canvas{width:100%;margin:0 auto}.sequence-grid-decorator{font-family:var(--font-mono);letter-spacing:.15em;-webkit-user-select:none;user-select:none;flex-wrap:wrap;gap:2px;font-size:1.1rem;display:flex}.base-item{cursor:crosshair;width:24px;height:36px;color:var(--text-main);background:0 0;border-radius:4px;justify-content:center;align-items:center;transition:all .1s;display:flex;position:relative}.base-item:hover{background:#2563eb1a}.base-item.selected{color:var(--primary);font-weight:700;background:#2563eb40!important}.base-coord{color:var(--text-muted);opacity:.6;font-size:.5rem;font-weight:500;position:absolute;top:-4px;right:-2px}.close-button{background:var(--surface-low);width:32px;height:32px;color:var(--text-main);border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:12px;font-size:1.2rem;display:flex}.pcr-split-layout{box-sizing:border-box;grid-template-columns:360px 1fr;align-items:start;gap:1.25rem;height:calc(100vh - 160px);max-height:820px;padding:.25rem 1.25rem 1.25rem;display:grid}.pcr-left-panel{flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.pcr-panel-card{background:var(--panel-bg-solid);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);box-sizing:border-box;border-radius:20px;flex-direction:column;gap:.8rem;min-width:0;padding:1.1rem 1.25rem;display:flex;overflow-y:auto}.pcr-left-panel>.pcr-panel-card{height:100%}.pcr-right-panel{flex-direction:column;gap:1rem;height:100%;display:flex;overflow:hidden}.pcr-results-compact{flex:none;overflow:visible}.pcr-viz-card{flex-direction:column;flex:1 1 0;min-height:260px;display:flex;overflow:hidden}.pcr-viz-card .sequence-binding-visualizer{flex-direction:column;flex:1;min-height:0;display:flex}.pcr-textarea.split-textarea{resize:none;box-sizing:border-box;width:100%;min-height:155px;max-height:210px}.pcr-section-divider{background:var(--panel-border);height:1px;margin:.25rem 0}.pcr-field-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:6px;font-size:.72rem;font-weight:700;display:block}.pcr-params-group{flex-direction:column;gap:6px;display:flex}.pcr-mode-selector{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pcr-mode-selector.horizontal{gap:6px;display:flex}.pcr-mode-option{cursor:pointer;flex:1}.pcr-mode-option input{display:none}.pcr-mode-card{background:var(--surface-highest);border:1.5px solid var(--panel-border);text-align:center;border-radius:10px;justify-content:center;align-items:center;padding:8px 10px;transition:all .2s;display:flex}.pcr-mode-card strong{color:var(--text-main);font-size:.82rem;font-weight:700}.pcr-mode-option input:checked+.pcr-mode-card{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 3px #3b82f640}.pcr-mode-option input:checked+.pcr-mode-card strong{color:#fff}.dark-mode .pcr-mode-card strong{color:var(--text-main)}.dark-mode .pcr-mode-card{background:#ffffff0f;border-color:#ffffff1f}.dark-mode .pcr-mode-option input:checked+.pcr-mode-card{background:var(--primary);border-color:var(--primary)}.pcr-mode-card.compact{padding:7px 10px}.pcr-tm-probe-row{align-items:flex-end;gap:12px;margin:12px 0;display:flex}.pcr-tm-probe-row .tm-field{flex:1}.pcr-tm-probe-row .probe-check{flex:1.5;margin-bottom:8px}.pcr-examples-row-compact{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.pcr-example-chip-mini{color:var(--text-muted);cursor:pointer;text-transform:uppercase;letter-spacing:.02em;background:#ffffff08;border:1px solid #ffffff1a;border-radius:4px;padding:3px 8px;font-size:.65rem;font-weight:700;transition:all .2s}.pcr-example-chip-mini:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-1px)}.pcr-example-chip-mini.blue:hover{color:#60a5fa;border-color:#60a5fa44}.pcr-example-chip-mini.green:hover{color:#4ade80;border-color:#4ade8044}.pcr-example-chip-mini.purple:hover{color:#c084fc;border-color:#c084fc44}.pcr-example-chip-mini.amber:hover{color:#fbbf24;border-color:#fbbf2444}.pcr-actions-row{justify-content:flex-end;margin-top:14px;display:flex}.pcr-reset-btn{color:var(--text-muted);border:1px solid var(--panel-border);cursor:pointer;opacity:.8;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:.72rem;font-weight:650;transition:all .2s;display:flex}.pcr-reset-btn:hover:not(:disabled){opacity:1;color:var(--text-primary);background:#ffffff0a;border-color:#fff3}.pcr-reset-btn:disabled{opacity:.25;cursor:not-allowed}.pcr-reset-btn svg{width:10px;height:10px}.design-validation-area{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.design-error-banner{color:#b91c1c;background:#dc262614;border:1px solid #dc262633;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 14px;font-size:.78rem;font-weight:600;line-height:1.4;display:flex}.dark-mode .design-error-banner{color:#f87171;background:#f871711a;border-color:#f8717133}.design-warning-banner{color:#b45309;background:#f59e0b14;border:1px solid #f59e0b33;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 14px;font-size:.78rem;font-weight:600;line-height:1.4;display:flex}.dark-mode .design-warning-banner{color:#fbbf24;background:#fbbf241a;border-color:#fbbf2433}.design-error-banner svg,.design-warning-banner svg{flex-shrink:0;margin-top:1px}.design-error-banner .error-content{flex-direction:column;gap:2px;display:flex}.pcr-calculating-badge{letter-spacing:.06em;color:var(--primary);opacity:.8;font-size:.68rem;font-weight:700;animation:1s ease-in-out infinite pulse-opacity}@keyframes pulse-opacity{0%,to{opacity:.5}50%{opacity:1}}.pcr-results-compact{flex:none}.pcr-results-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.pcr-results-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.7rem;font-weight:800}.pcr-primers-stack{flex-direction:row;gap:.6rem;min-width:0;display:flex}.pcr-primer-row{background:var(--surface-low);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;flex:1;gap:5px;min-width:0;padding:.55rem .7rem;display:flex;position:relative}.pcr-primer-row-header{align-items:center;gap:6px;display:flex}.primer-type-badge{letter-spacing:.1em;text-transform:uppercase;border-radius:5px;padding:2px 8px;font-size:.62rem;font-weight:900}.primer-type-badge.forward{color:#0284c7;background:#0ea5e926;border:1px solid #0ea5e94d}.dark-mode .primer-type-badge.forward{color:#38bdf8;background:#0ea5e933;border-color:#0ea5e959}.primer-type-badge.reverse{color:#059669;background:#10b98126;border:1px solid #10b9814d}.dark-mode .primer-type-badge.reverse{color:#34d399;background:#10b98133;border-color:#10b98159}.primer-type-badge.probe{color:#9333ea;background:#a855f726;border:1px solid #a855f74d}.dark-mode .primer-type-badge.probe{color:#c084fc;background:#a855f733;border-color:#a855f759}.primer-tm-badge{color:var(--text-muted);font-size:.75rem;font-weight:700}.primer-bind-pos{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-muted);opacity:.75;font-size:.68rem;font-weight:600}.pcr-primer-seq{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;line-height:1.5;display:block;overflow:hidden}.dark-mode .pcr-primer-seq{color:#e2e8f0}.ml-auto{margin-left:auto}.pcr-viz-card{flex-direction:column;min-height:0;max-height:500px;display:flex}.sequence-binding-visualizer-svg{flex-direction:column;height:100%;min-height:0;display:flex}.visualizer-title-stack{flex-direction:column;display:flex}.visualizer-title-stack strong{color:var(--text-main);font-size:.9rem;font-weight:700}.visualizer-title-stack span{color:var(--text-muted);font-size:.72rem}.pcr-viz-actions{align-items:center;gap:8px;display:flex}.pcr-viz-updating{color:var(--primary);opacity:.8;font-size:.65rem;font-weight:700;animation:1.5s infinite pulse-opacity}.svg-scroll-container{background:var(--surface-dim);border:1px solid var(--panel-border);border-radius:8px;flex:1;padding:10px;overflow:auto}.pcr-binding-svg{shape-rendering:geometricprecision;-webkit-user-select:none;user-select:none}.pcr-binding-svg text{dominant-baseline:alphabetic}.pcr-binding-svg .dimmed{opacity:.35}.visualizer-legend{border-top:1px solid var(--panel-border);flex-wrap:wrap;gap:16px;margin-top:12px;padding-top:12px;display:flex}.legend-item .swatch{border-radius:3px;width:10px;height:10px}.legend-item .swatch.f{background:#0ea5e999}.legend-item .swatch.r{background:#10b98199}.legend-item .swatch.p{background:#a855f799}.legend-item .swatch.a{background:#eab30833}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--outline-variant,#94a3b84d);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted,#94a3b899)}*{scrollbar-width:thin;scrollbar-color:#94a3b84d transparent}.dark-mode ::-webkit-scrollbar-thumb{background:#ffffff1f}.dark-mode ::-webkit-scrollbar-thumb:hover{background:#ffffff40}.pcr-right-empty{height:100%;color:var(--text-muted);background:var(--surface-dim);border:2px dashed var(--panel-border);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.pcr-empty-icon{opacity:.5}.pcr-mode-settings{background:#0ea5e90d;border-radius:12px;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;padding:16px;display:grid}.pcr-visualization-container{margin:0 0 24px}.sequence-binding-visualizer{background:var(--surface-dim);border:1px solid var(--panel-border);border-radius:20px;flex-direction:column;flex:1;min-height:0;padding:20px;display:flex}.visualizer-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.visualizer-header strong{color:var(--text-main)}.visualizer-header span{color:var(--text-muted);font-size:.75rem}.sequence-render-area{font-family:var(--font-mono);letter-spacing:.1em;word-break:break-all;background:var(--surface-lowest);max-height:300px;color:var(--text-main);border-radius:12px;padding:20px;font-size:.9rem;line-height:1.8;overflow-y:auto}.pcr-viz-card .sequence-render-area{max-height:unset;flex:1;overflow-y:auto}.sequence-render-area .base{border-radius:2px;padding:1px 2px;transition:all .2s}.base.f-bind{background:#0ea5e959;font-weight:700;box-shadow:0 0 0 1px #0e12e9}.base.r-bind{background:#10b98159;font-weight:700;box-shadow:0 0 0 1px #10b981}.base.amplicon{border-bottom:2px solid var(--primary-dim)}.base.dimmed{opacity:.3}.visualizer-legend{border-top:1px solid var(--outline-variant);gap:20px;margin-top:16px;padding-top:16px;display:flex}.legend-item{color:var(--text-muted);align-items:center;gap:8px;font-size:.75rem;font-weight:600;display:flex}.swatch{border-radius:3px;width:12px;height:12px}.swatch.f{background:#0ea5e9}.swatch.r{background:#10b981}.swatch.a{border-bottom:2px solid var(--primary-dim);border-radius:0;height:6px;margin-top:4px}.primer-label-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.primer-label{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:.65rem;font-weight:800}.primer-label.forward{color:#0284c7;background:#0ea5e926}.primer-label.reverse{color:#059669;background:#10b98126}.diagnostic-warn{color:#fff;background:#f59e0b;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;font-size:.65rem;font-weight:900;display:flex}.pair-metrics{align-items:center;gap:12px;display:flex}.panel-header .header-action{margin-left:auto}.base.p-bind{background:#a855f759;font-weight:700;box-shadow:0 0 0 1px #a855f7}.swatch.p{background:#a855f7}.primer-label.probe{color:#9333ea;background:#a855f726}.checkbox-field-modern{cursor:pointer;background:var(--surface-low);border:1px solid var(--panel-border);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;transition:all .2s;display:flex}.checkbox-field-modern:hover{background:var(--surface-medium);border-color:var(--primary-dim)}.checkbox-field-modern input{cursor:pointer;border-radius:6px;width:18px;height:18px}.checkbox-field-modern span{color:var(--text-main);font-size:.85rem;font-weight:600}.probe-row{border-top:1px dashed var(--panel-border);margin-top:12px;padding-top:12px}.pcr-example-chip.blue.active{color:#0ea5e9;background:#0ea5e926;border-color:#0ea5e9}.pcr-example-chip.green.active{color:#10b981;background:#10b98126;border-color:#10b981}.pcr-example-chip.purple.active{color:#a855f7;background:#a855f726;border-color:#a855f7}.pcr-example-chip.amber.active{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b}.dark-mode .pcr-example-chip.blue.active{color:#7dd3fc;background:#0ea5e940}.dark-mode .pcr-example-chip.green.active{color:#6ee7b7;background:#10b98140}.dark-mode .pcr-example-chip.purple.active{color:#d8b4fe;background:#a855f740}.dark-mode .pcr-example-chip.amber.active{color:#fcd34d;background:#f59e0b40}.common-labels{flex-wrap:wrap;gap:6px;margin-top:-4px;margin-bottom:8px;display:flex}.label-chip{background:var(--surface-low);border:1px solid var(--panel-border);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:.7rem;font-weight:600;transition:all .2s}.label-chip:hover:not(:disabled){background:var(--primary-fixed);border-color:var(--primary-dim);color:var(--primary)}.label-chip:disabled{opacity:.5;cursor:not-allowed}.sidebar-header-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.text-button.clear-all{color:#ef4444;cursor:pointer;background:0 0;border:none;padding:4px;font-size:.7rem;font-weight:600}.text-button.clear-all:hover{text-decoration:underline}.annotation-editor-container .base-item{-webkit-user-select:none;user-select:none;transition:background .1s}.annotation-editor-container .base-item.selected{color:var(--primary);background:#3b82f633;font-weight:700}.chat-overlay-container{background:var(--panel-bg);-webkit-backdrop-filter:blur(32px)saturate(210%);border:1px solid var(--panel-border);width:360px;max-width:calc(100vw - 48px);height:460px;max-height:calc(100vh - 120px);box-shadow:var(--panel-shadow);z-index:9999;transform-origin:100% 100%;border-radius:24px;flex-direction:column;transition:all .5s cubic-bezier(.19,1,.22,1);display:flex;position:fixed;bottom:24px;right:24px;overflow:hidden}.chat-overlay-container:after{content:"";background:linear-gradient(90deg, transparent, var(--primary), var(--secondary), transparent);opacity:.5;height:1px;position:absolute;top:0;left:0;right:0}.chat-minimized-toggle{background:var(--primary);color:#fff;cursor:pointer;z-index:9999;border:none;border-radius:999px;align-items:center;gap:10px;padding:12px 24px;font-weight:700;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 24px -6px #0ea5e966}.chat-minimized-toggle:hover{transform:scale(1.08)translateY(-4px);box-shadow:0 16px 32px -8px #0ea5e980}.chat-header{background:#ffffff14;border-bottom:1px solid #94a3b81f;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.chat-header-info h3{letter-spacing:-.01em;color:var(--text-main);margin:0;font-size:1.05rem;font-weight:700}.premium-label{text-transform:uppercase;letter-spacing:.15em;color:var(--primary);font-size:.65rem;font-weight:800;display:block}.chat-status-dot{background:#94a3b8;border-radius:50%;width:8px;height:8px;margin-right:12px}.chat-status-dot.active{background:#10b981;animation:2s infinite chat-pulse;box-shadow:0 0 12px #10b98199}@keyframes chat-pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.chat-header-actions{gap:8px;display:flex}.chat-min-btn{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.4rem;transition:background .2s;display:flex}.chat-min-btn:hover{color:var(--primary);background:#94a3b81a}.chat-messages{scrollbar-width:thin;flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.chat-bubble{border-radius:20px;max-width:88%;padding:12px 18px;font-size:.94rem;line-height:1.5;transition:all .2s}.chat-bubble.user{color:#fff;background:linear-gradient(135deg,#0369a1,#0c4a6e);border:1px solid #ffffff1a;border-bottom-right-radius:4px;align-self:flex-end;box-shadow:0 8px 16px #0003}.chat-bubble.assistant{background:var(--surface-low);-webkit-backdrop-filter:blur(8px);color:var(--text-main);border:1px solid var(--panel-border);border-bottom-left-radius:4px;align-self:flex-start;box-shadow:0 4px 20px #0000001f}.dark-mode .chat-bubble.assistant{background:#0f172a66;border-color:#ffffff14}.chat-bubble.action{font-family:var(--font-mono);background:var(--secondary-container);border:1px dashed var(--secondary);color:var(--secondary);opacity:.9;border-radius:12px;padding:10px 16px;font-size:.8rem}.chat-bubble p{margin:0}.chat-bubble p+p{margin-top:8px}.chat-input-area{background:var(--surface-low);border-top:1px solid var(--panel-border);align-items:flex-end;gap:10px;padding:16px 20px;display:flex}.chat-input-area textarea{background:var(--surface-highest);border:1px solid var(--outline-variant);resize:none;height:48px;max-height:140px;color:var(--text-main);border-radius:16px;flex:1;padding:12px 16px;font-size:.94rem;transition:all .3s}.chat-input-area textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--glow-primary);background:var(--surface-high);outline:none}.chat-send-btn,.chat-voice-btn{cursor:pointer;border:none;border-radius:14px;place-items:center;width:48px;height:48px;transition:all .25s cubic-bezier(.4,0,.2,1);display:grid}.chat-send-btn{background:var(--primary);color:#fff;box-shadow:0 4px 12px #0ea5e940}.chat-send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0ea5e959}.chat-send-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.5;background:#cbd5e1}.chat-voice-btn{background:var(--surface-high);color:#64748b;border:1px solid #94a3b833}.chat-voice-btn.recording{color:#fff;background:#ef4444;animation:1.5s linear infinite recording-pulse}@keyframes recording-pulse{0%{transform:scale(1);box-shadow:0 0 #ef444499}70%{transform:scale(1.08);box-shadow:0 0 0 12px #ef444400}to{transform:scale(1);box-shadow:0 0 #ef444400}}.typing-indicator{gap:5px;padding:4px 0;display:flex}.typing-indicator span{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite both typing-dots}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing-dots{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-content-heading{font-family:var(--font-display);color:var(--primary);letter-spacing:-.02em;margin:18px 0 8px;font-size:1.1rem;font-weight:800}.chat-bubble.user .chat-content-heading{color:#fff}.chat-content-list-item{color:var(--text-main);margin-bottom:8px;margin-left:24px;list-style-type:none;position:relative}.chat-content-list-item:before{content:"→";color:var(--primary);font-weight:800;position:absolute;left:-20px}.chat-bubble.user .chat-content-list-item:before{color:#fff}.chat-content-p{margin-bottom:12px;line-height:1.7}.chat-content-p strong{color:var(--primary);background:var(--glow-primary);border-radius:4px;padding:0 4px;font-weight:800}.chat-bubble.user .chat-content-p strong{color:#fff;background:#ffffff26;text-decoration:none}.pv-map-overlay-group text,.pv-center-metadata-group text{font-family:var(--font-display);pointer-events:none;-webkit-user-select:none;user-select:none}.primer-highlight{transition:all .2s}.primer-highlight:hover{filter:brightness(1.2);box-shadow:0 0 8px var(--glow-primary)}.sequence-segment.annotated.selected{outline:2px solid var(--ann-color,var(--primary));outline-offset:-1px;z-index:10}.header-divider{background:var(--outline-variant);opacity:.5;width:1px;height:20px;margin:0 8px}.header-theme-toggle{background:var(--surface-low);border:1px solid var(--outline-variant);width:36px;height:36px;color:var(--text-main);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;transition:all .25s cubic-bezier(.23,1,.32,1);display:flex}.header-theme-toggle:hover{background:var(--surface-high);border-color:var(--primary);color:var(--primary);box-shadow:0 4px 12px var(--glow-primary);transform:translateY(-1px)}.header-theme-toggle svg{width:18px;height:18px}.workflow-nav-cluster{align-items:center;gap:16px;display:flex}.workflow-btn{letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:999px;align-items:center;gap:12px;padding:12px 32px;font-size:.95rem;font-weight:700;transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative;overflow:hidden}.workflow-btn-next{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);box-shadow:0 4px 15px #6366f14d}.theme-dark .workflow-btn-next{box-shadow:0 0 25px #0ea5e966}.workflow-btn-next:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-3px)scale(1.03);box-shadow:0 8px 25px #6366f180}.workflow-btn-next:active:not(:disabled){transform:translateY(-1px)scale(.98)}.workflow-btn-back{-webkit-backdrop-filter:blur(8px);color:#475569;background:#94a3b814;border:1px solid #94a3b833}.theme-dark .workflow-btn-back{color:#cbd5e1;background:#ffffff08;border-color:#ffffff1a}.workflow-btn-back:hover:not(:disabled){color:#1e293b;background:#94a3b826;border-color:#94a3b84d}.theme-dark .workflow-btn-back:hover:not(:disabled){color:#f8fafc;background:#ffffff14;border-color:#fff3}.workflow-btn-next.ready-attention{animation:2.5s infinite premiumWorkflowPulse}.workflow-btn-next.ready-attention:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:50%;height:100%;animation:3s infinite buttonShimmer;position:absolute;top:0;left:-100%;transform:skew(-25deg)}@keyframes premiumWorkflowPulse{0%{transform:scale(1);box-shadow:0 0 #0ea5e999}50%{transform:scale(1.05);box-shadow:0 0 0 15px #0ea5e900}to{transform:scale(1);box-shadow:0 0 #0ea5e900}}@keyframes buttonShimmer{0%{left:-100%}30%{left:150%}to{left:150%}}.workflow-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.8);box-shadow:none}.workflow-btn svg{stroke-width:3px;width:18px;height:18px}.selection-summary{font-weight:700;font-family:var(--font-display);box-shadow:none!important;color:var(--primary)!important;background:0 0!important;border:none!important;padding:0!important}.selection-summary strong{color:var(--text-main)}.chat-suggestions{flex-wrap:wrap;gap:8px;margin-top:12px;animation:.4s .2s both fadeIn;display:flex}.chat-suggestion-chip{background:var(--surface-low);border:1px solid var(--panel-border);color:var(--primary);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:.8rem;font-weight:600;transition:all .2s cubic-bezier(.23,1,.32,1);display:flex}.chat-suggestion-chip:hover{background:var(--primary);color:var(--on-primary);border-color:var(--primary);box-shadow:0 4px 12px var(--glow-primary);transform:translateY(-2px)}.chat-suggestion-chip svg{opacity:.8;width:14px;height:14px}.chat-message.assistant .chat-suggestions{justify-content:flex-start}.batch-table-scroll{background:var(--surface-low);border:1px solid var(--panel-border);border-radius:12px;width:100%;padding:4px;overflow-x:auto}.batch-table{flex-direction:column;gap:0;min-width:2400px;display:flex}
