:root{--ink:#15231f;--muted:#66736f;--line:#dfe5e2;--surface:#fff;--wash:#f4f7f5;--green:#0e7a58;--green-dark:#075e43;--mint:#e8f5ef;--orange:#e17835;--shadow:0 12px 35px rgba(23,51,42,.08)}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--wash);font-size:14px}
.app-header{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--green);color:white;font-weight:800;letter-spacing:-1px}
.brand h1{font-size:19px;margin:0;letter-spacing:-.4px}
.brand h1 b{color:var(--green)}
.brand p{margin:2px 0 0;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.9px}
.header-actions{display:flex;align-items:center;gap:10px}
.status{font-size:12px;color:var(--muted);margin-right:8px}
.status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#25a574;margin-right:6px}
.status.error i{background:#d64f4f}
.status.busy i{background:#e8a234}
.button{border:0;border-radius:8px;padding:10px 15px;font-weight:650;cursor:pointer}
.button.primary{background:var(--green);color:white;box-shadow:0 4px 10px rgba(14,122,88,.18)}
.button.primary:hover{background:var(--green-dark)}
.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}
.workspace{height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(480px,42%) 1fr;overflow:hidden}
.control-panel{background:#fff;border-right:1px solid var(--line);overflow-y:auto;position:relative;padding-bottom:72px}
.project-row{display:grid;grid-template-columns:1fr 90px;gap:12px;padding:18px 22px 14px}
.ploidy-field input{text-align:center}
.tabs{display:flex;overflow-x:auto;padding:0 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:4}
.tabs:after{content:'›';position:sticky;right:-1px;flex:0 0 25px;align-self:stretch;display:grid;place-items:center;background:linear-gradient(90deg,transparent,var(--surface) 38%);color:var(--green);font-size:22px;font-weight:800;pointer-events:none}
.tab{white-space:nowrap;border:0;background:none;padding:12px 10px;color:var(--muted);font-size:12px;font-weight:650;border-bottom:2px solid transparent;cursor:pointer}
.tab.active{color:var(--green);border-bottom-color:var(--green)}
.tab-panel{display:none;padding:20px 22px}
.tab-panel.active{display:block}
.section-head,.code-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}
.section-head h2{font-size:18px;margin:0 0 4px}
.section-head p{font-size:12px;color:var(--muted);margin:0}
.text-button{border:0;background:none;color:var(--green);font-weight:650;cursor:pointer;padding:4px}
.notice{background:var(--mint);border:1px solid #cae8da;border-radius:9px;padding:12px;margin-bottom:15px;display:flex;flex-direction:column;gap:3px;font-size:12px}
.notice span{color:#4a665c}
.file-card{border:1px solid var(--line);border-radius:11px;padding:14px;margin-bottom:12px}
.file-card h3{font-size:13px;margin:0 0 11px}
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.upload{position:relative;border:1px dashed #b7c6c0;background:#fafcfb;border-radius:8px;padding:12px;cursor:pointer;min-width:0}
.upload:hover{border-color:var(--green)}
.upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.upload strong,.upload small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload strong{font-size:12px}
.upload small{font-size:10px;color:var(--muted);margin-top:3px}
.upload.loaded{border-style:solid;border-color:#8ccdb5;background:var(--mint)}
label{display:block;font-size:11px;color:#53625d;font-weight:650;letter-spacing:.15px}
input,select,textarea{width:100%;border:1px solid #ccd6d2;border-radius:7px;background:#fff;color:var(--ink);font:inherit;padding:9px 10px;margin-top:6px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(14,122,88,.1)}
input[type=color]{padding:3px;height:37px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 12px;margin-bottom:14px}
.field-grid.three{grid-template-columns:repeat(3,1fr)}
.divider{height:1px;background:var(--line);margin:20px 0}
h3{font-size:13px;margin:0 0 12px}
.switch-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.switch{display:flex;align-items:center;gap:8px;font-size:11px;background:#f7f9f8;border-radius:7px;padding:9px}
.switch input{display:none}
.switch span{width:29px;height:17px;border-radius:20px;background:#bac5c1;position:relative;flex:none}
.switch span:after{content:"";position:absolute;width:13px;height:13px;left:2px;top:2px;background:white;border-radius:50%;transition:.15s}
.switch input:checked+span{background:var(--green)}
.switch input:checked+span:after{transform:translateX(12px)}
.segmented{display:grid;grid-template-columns:1fr 1fr;background:#eef2f0;border-radius:8px;padding:3px;margin-bottom:16px}
.segmented input{display:none}
.segmented span{display:block;text-align:center;padding:8px;border-radius:6px;font-size:11px}
.segmented input:checked+span{background:white;color:var(--green);box-shadow:0 1px 5px rgba(0,0,0,.08)}
.hint{font-weight:400;color:#88938f}
.track-badge{display:inline-flex;padding:4px 8px;background:var(--mint);color:var(--green);border-radius:20px;font-size:10px;margin-bottom:12px}
.color-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.preview-panel{overflow:auto;padding:28px;background:#edf2ef}
.preview-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px}
.preview-head #previewTitle{margin:4px 0 0;font-size:21px;font-weight:700;line-height:1.3}
.eyebrow{font-size:10px;font-weight:750;color:var(--green);letter-spacing:1.5px}
.zoom-note{font-size:11px;color:var(--muted)}
.plot-area{background:#fff;border-radius:12px;min-height:300px;box-shadow:var(--shadow);overflow:auto}
.empty-state{height:calc(100% - 60px);min-height:420px;background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:var(--shadow)}
.empty-state.hidden{display:none}
.empty-state h3{font-size:17px;margin:18px 0 6px}
.empty-state p{max-width:390px;color:var(--muted);line-height:1.55;margin:0 0 18px}
.empty-glyph{display:flex;align-items:center;gap:5px}
.empty-glyph span{display:block;width:16px;height:58px;background:#d3e9df;border-radius:10px}
.empty-glyph span:nth-child(2){height:82px;background:#91cdb5}
.empty-glyph span:nth-child(3){height:68px;background:#f0bd91}
.empty-glyph span:nth-child(4){height:46px;background:#b9d9cc}
#codePreview{background:#13221d;color:#d9ede5;border-radius:9px;max-height:300px;overflow:auto;padding:14px;font-size:11px;line-height:1.55;white-space:pre-wrap}
.code-head{align-items:center;margin-top:20px}
.code-head h3{margin:0}
#toast{position:fixed;right:22px;bottom:22px;background:#17241f;color:white;padding:11px 15px;border-radius:8px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;z-index:50;font-size:12px}
#toast.show{opacity:1;transform:none}
@media(max-width:900px){.workspace{display:block;height:auto;overflow:visible}
.control-panel{border:0;overflow:visible}
.preview-panel{min-height:600px}
.app-header{padding:0 14px}
.status,.header-actions .secondary{display:none}
}
@media(max-width:560px){.workspace{grid-template-columns:1fr}
.project-row,.tab-panel{padding-left:14px;padding-right:14px}
.field-grid.three{grid-template-columns:1fr 1fr}
.upload-grid{grid-template-columns:1fr}
.brand p{display:none}
}

:root{color-scheme:light;--surface-2:#f7f9f8}
[data-theme="dark"]{color-scheme:dark;--ink:#e8f2ee;--muted:#96aaa2;--line:#30423b;--surface:#17231f;--surface-2:#1c2a25;--wash:#101915;--green:#42c292;--green-dark:#35ae81;--mint:#203d33;--shadow:0 12px 35px rgba(0,0,0,.25)}
.app-header,.control-panel,.tabs{background:var(--surface)}
.project-row{display:block}
.button.secondary,input,select,textarea,.segmented input:checked+span{background:var(--surface);color:var(--ink)}
.switch,.upload{background:var(--surface-2)}
.plot-area,.empty-state{background:var(--surface)}
.icon-button{width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:18px;cursor:pointer}
.data-ploidy{max-width:180px;margin-bottom:15px}
.html-upload{display:block;border:1px dashed #8fb2a4;border-radius:10px;background:var(--surface-2);padding:16px;position:relative;cursor:pointer}
.html-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.html-upload span,.html-upload strong,.html-upload small{display:block}
.html-upload small{color:var(--muted);font-weight:400;margin-top:4px}
.html-preview{display:none;width:100%;min-height:620px;border:0;border-radius:12px;background:#fff;box-shadow:var(--shadow)}
.html-preview.visible{display:block}
[data-theme="dark"] .notice{color:var(--ink)}
[data-theme="dark"] #codePreview{background:#09120f}

.option-section,.config-section{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px;margin-bottom:14px}
.collapsible-option{padding:0;overflow:hidden}.collapsible-option summary{display:flex;align-items:center;gap:10px;padding:16px;cursor:pointer;list-style:none;user-select:none}.collapsible-option summary::-webkit-details-marker{display:none}.collapsible-option summary>span{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:7px;background:var(--mint);color:var(--green);font-size:10px;font-weight:800}.collapsible-option summary h3{margin:0;flex:1}.collapsible-option summary i{width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .18s ease}.collapsible-option[open] summary{border-bottom:1px solid var(--line)}.collapsible-option[open] summary i{transform:rotate(225deg)}.collapsible-option .option-content{padding:15px 16px 16px}.option-description{margin:0 0 14px;color:var(--muted);font-size:11px;line-height:1.45}.collapsible-option summary:hover{background:var(--surface-2)}
.subhead,.config-title{display:flex;align-items:flex-start;gap:10px;margin-bottom:15px}
.subhead>span{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:7px;background:var(--mint);color:var(--green);font-size:10px;font-weight:800}
.subhead h3,.config-title h3{margin:0 0 3px;font-size:13px}.subhead p,.config-title p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
.or-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:1px;margin:17px 0}.or-divider:before,.or-divider:after{content:"";height:1px;background:var(--line);flex:1}
.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.summary-card{display:flex;min-width:0;flex-direction:column;gap:4px;padding:10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);font-size:10px;color:var(--muted);overflow:hidden}.summary-card b{font-size:11px;color:var(--ink);margin-bottom:2px}.summary-number{display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;padding:1px 5px;border-radius:999px;background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green);font-weight:800}.summary-categories{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0;overflow-wrap:anywhere;word-break:break-word}.summary-categories em{max-width:100%;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--orange) 14%,transparent);color:var(--ink);font-style:normal;overflow-wrap:anywhere;word-break:break-word}#heatMapSection.hidden{display:none}
.three-way{grid-template-columns:repeat(3,1fr)}.three-way span{padding-left:4px;padding-right:4px}
.config-section{margin-top:14px}.config-title{border-bottom:1px solid var(--line);padding-bottom:11px}.config-title h3{font-size:14px}.config-title{display:block}
.info-tip{display:inline-grid;place-items:center;width:15px;height:15px;border:1px solid #9eb0a9;border-radius:50%;background:transparent;color:var(--muted);font-size:9px;line-height:1;cursor:help;margin-left:3px;padding:0;vertical-align:1px}
.color-list{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:7px 0 12px}.color-item{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:7px;padding:4px;background:var(--surface-2)}.color-item input{width:27px;height:27px;margin:0;padding:1px;border:0}.color-item code{font-size:9px;color:var(--muted)}.color-item button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:15px}.add-color{border:1px dashed #93b7a8;background:var(--surface);color:var(--green);border-radius:7px;padding:8px 10px;font-size:10px;font-weight:700;cursor:pointer}
.filter-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr .8fr;gap:9px}.array-preview{display:block;background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:9px;color:var(--green);font-size:10px;margin-top:10px}
.tag-filter-grid{grid-template-columns:1.5fr 1fr 1fr}.legend-domain-source{margin:2px 0 14px;padding:11px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.legend-domain-source .segmented{margin:6px 0 11px}.legend-or{display:block;color:var(--muted);font-size:11px;font-weight:700}.legend-source-help{display:block;margin-top:6px;line-height:1.4}
.mini-upload{display:inline-block;margin-top:9px;border:1px dashed #91b4a6;border-radius:7px;padding:9px 11px;color:var(--green);cursor:pointer}.mini-upload input{display:none}
@media(max-width:600px){.filter-grid{grid-template-columns:1fr 1fr}.summary-grid{grid-template-columns:1fr}.three-way{grid-template-columns:1fr}.three-way label span{padding:8px}}

.project-manager{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:9px}.project-actions{display:flex;gap:6px}.project-actions .button{padding:9px 11px}
.field-caption{display:inline-flex;align-items:center;gap:3px;vertical-align:middle}.field-caption+.hint{vertical-align:middle}.field-caption~input,.field-caption~select,.field-caption~textarea{display:block}
.edit-data{width:100%;margin-top:5px;border:0;background:transparent;color:var(--green);font-size:10px;font-weight:700;cursor:pointer;text-align:left;padding:3px}
.editor-modal{display:none;position:fixed;inset:0;background:rgba(7,16,12,.72);z-index:100;padding:28px}.editor-modal.open{display:block}.editor-dialog{height:100%;background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:0 25px 80px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden}.editor-header,.editor-toolbar,.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.editor-header h2{margin:3px 0;font-size:20px}.editor-header p{margin:0;color:var(--muted);font-size:11px}.editor-toolbar{padding:10px 20px;background:var(--surface-2)}.editor-toolbar>div{display:flex;gap:6px}.editor-toolbar span,.editor-footer span{color:var(--muted);font-size:11px}.editor-footer{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.editor-footer span{margin-right:auto}.editor-table-wrap{flex:1;overflow:auto}.editor-table{border-collapse:collapse}.editor-table-wrap table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:11px}.editor-table-wrap th{position:sticky;top:0;background:var(--surface-2);z-index:2;text-align:left;padding:9px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.editor-table-wrap td{padding:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.editor-table-wrap td:first-child{padding:8px;color:var(--muted);background:var(--surface-2)}.editor-table-wrap td input,.editor-table-wrap td select{min-width:150px;margin:0;border:0;border-radius:0;padding:9px;background:transparent;color:var(--ink)}.editor-table-wrap td button{border:0;background:transparent;color:#d35e5e;font-size:17px;cursor:pointer;padding:7px 12px}
@media(max-width:760px){.project-manager{grid-template-columns:1fr}.editor-modal{padding:8px}.editor-header,.editor-toolbar,.editor-footer{padding:10px}.editor-footer span{display:none}}

.workspace{height:calc(100vh - 134px)}
.brand-mark{position:relative;width:52px;height:44px;border-radius:52% 48% 55% 45%/46% 55% 45% 54%;background:transparent;border:2px solid rgba(14,122,88,.58);box-shadow:inset 0 0 0 3px rgba(66,194,146,.12),inset 0 0 14px rgba(66,194,146,.22),0 0 0 3px rgba(14,122,88,.12),0 5px 15px rgba(7,94,67,.22);overflow:hidden}.brand-mark:after{content:"";position:absolute;inset:4px;border:1px solid rgba(14,122,88,.35);border-radius:45% 55% 48% 52%/55% 44% 56% 45%;pointer-events:none}.brand-mark svg{width:43px;height:36px;overflow:visible}.brand-mark svg path{fill:none;stroke:url(#brandChromosomeGradient),#16a37a;stroke-width:6;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:chromosome-float 3.4s ease-in-out infinite}.brand-mark svg path:nth-of-type(2){animation-delay:-.8s}.brand-mark svg path:nth-of-type(3){animation-delay:-1.6s}.brand-mark svg path:nth-of-type(4){animation-delay:-2.4s}@keyframes chromosome-float{0%,100%{transform:translateY(-2px) rotate(-1deg)}50%{transform:translateY(3px) rotate(1.5deg)}}
.app-statusbar{height:28px;display:flex;align-items:center;padding:0 22px;background:var(--surface-2);border-top:1px solid var(--line);font-size:11px}.app-statusbar .status{display:inline;margin:0}.app-footer{height:34px;display:flex;align-items:center;justify-content:center;background:var(--surface);border-top:1px solid var(--line);color:var(--muted);font-size:10px;letter-spacing:.2px}
.data-actions{display:flex}.data-actions .edit-data{text-align:center;border:1px solid var(--line);border-top:0;border-radius:0 0 7px 7px;padding:6px;margin:0}.export-actions{display:flex;gap:8px;margin-top:12px}
.brand-mark .placeholder-icon path{stroke:#16a37a!important}
.brand-mark{display:flex;align-items:center;justify-content:center;padding:3px}.brand-mark .rainbow-chromosomes{display:block;width:40px;height:34px;overflow:visible}.brand-mark .rainbow-chromosomes path{fill:url(#headerRainbow);stroke:url(#headerRainbow);stroke-width:1.8;animation:chromosome-float 3.4s ease-in-out infinite}.rainbow-chromosomes path:nth-of-type(2){animation-delay:-.8s}.rainbow-chromosomes path:nth-of-type(3){animation-delay:-1.6s}
.canvas-chromosomes{width:190px;height:138px;overflow:visible;filter:drop-shadow(0 12px 18px rgba(14,122,88,.2));margin-bottom:10px}.canvas-chromosomes path{fill:url(#canvasRainbow);stroke:url(#canvasRainbow);stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:chromosome-float 3.8s ease-in-out infinite}
.preview-panel{height:100%;display:flex;flex-direction:column;overflow:auto}.preview-head{flex:none}.empty-state{flex:1;height:auto;min-height:0}.plot-area{flex:1;min-height:calc(100vh - 220px)}
.empty-state:not(.hidden)+.plot-area{display:none}.empty-state.hidden+.plot-area{display:block}
.upload-grid>div{min-width:0;overflow:hidden}.upload strong,.upload small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-card{min-width:0;overflow:hidden}
@media(max-width:900px){.workspace{height:auto}.app-statusbar .status{display:inline}.app-footer{height:auto;min-height:34px;padding:8px}}

.brand-mark .header-exact-icon{display:block;width:42px;height:30px;margin:auto;overflow:visible}.brand-mark .header-exact-icon path{fill:url(#lg1_header_app);stroke:url(#lg1_header_app);stroke-width:1.4;transform-box:fill-box;transform-origin:center}.header-exact-icon path:nth-of-type(1){animation:header-chr-a 4.1s ease-in-out infinite}.header-exact-icon path:nth-of-type(2){animation:header-chr-b 5.3s ease-in-out infinite reverse}.header-exact-icon path:nth-of-type(3){animation:header-chr-c 3.7s ease-in-out infinite alternate}
.canvas-cell{width:310px;height:220px;display:flex;align-items:center;justify-content:center;position:relative;border:3px solid rgba(14,122,88,.48);box-shadow:inset 0 0 0 7px rgba(66,194,146,.1),inset 0 0 35px rgba(66,194,146,.2),0 18px 36px rgba(7,94,67,.18);border-radius:52% 48% 55% 45%/46% 55% 45% 54%;margin-bottom:20px}.canvas-cell:after{content:"";position:absolute;inset:10px;border:2px solid rgba(14,122,88,.25);border-radius:46% 54% 48% 52%/55% 44% 56% 45%;pointer-events:none}.canvas-exact-icon{width:250px;height:135px;overflow:visible}.canvas-exact-icon path{fill:url(#lg1_canvas_app);stroke:url(#lg1_canvas_app);stroke-width:1.8;transform-box:fill-box;transform-origin:center}.canvas-exact-icon path:nth-of-type(1){animation:canvas-chr-a 6.2s ease-in-out infinite}.canvas-exact-icon path:nth-of-type(2){animation:canvas-chr-b 4.7s ease-in-out infinite reverse}.canvas-exact-icon path:nth-of-type(3){animation:canvas-chr-c 7.1s ease-in-out infinite alternate}
@keyframes header-chr-a{0%,100%{transform:translate(-3px,-2px) rotate(-5deg)}35%{transform:translate(2px,2px) rotate(4deg)}70%{transform:translate(-1px,3px) rotate(-2deg)}}@keyframes header-chr-b{0%,100%{transform:translate(2px,2px) rotate(4deg)}45%{transform:translate(-3px,-1px) rotate(-6deg)}75%{transform:translate(1px,-3px) rotate(2deg)}}@keyframes header-chr-c{0%{transform:translate(-2px,1px) rotate(3deg)}100%{transform:translate(3px,-2px) rotate(-4deg)}}
@keyframes canvas-chr-a{0%,100%{transform:translate(-9px,-5px) rotate(-8deg)}28%{transform:translate(5px,7px) rotate(6deg)}66%{transform:translate(-3px,10px) rotate(-3deg)}}@keyframes canvas-chr-b{0%,100%{transform:translate(8px,6px) rotate(7deg)}38%{transform:translate(-8px,-4px) rotate(-9deg)}72%{transform:translate(4px,-9px) rotate(3deg)}}@keyframes canvas-chr-c{0%{transform:translate(-6px,4px) rotate(5deg)}50%{transform:translate(9px,-7px) rotate(-6deg)}100%{transform:translate(-2px,9px) rotate(2deg)}}

.app-header{overflow:visible}.brand{position:relative;z-index:22}.brand-mark{width:90px;height:68px;flex:none;position:relative;transform:translateY(13px);overflow:hidden;background:var(--surface);border-radius:55% 45% 52% 48%/48% 54% 46% 52%;box-shadow:inset 0 0 0 4px rgba(66,194,146,.13),inset 0 0 22px rgba(66,194,146,.31),0 0 0 4px rgba(14,122,88,.13),0 13px 25px rgba(7,94,67,.35)}.brand-mark:before{display:none}.brand-mark:after{inset:5px;z-index:3;border-radius:54% 46% 50% 50%/47% 55% 45% 53%}.brand-mark .header-exact-icon{position:relative;z-index:2;width:55px;height:45px}

.workflow-guide{padding:20px 22px 16px;background:linear-gradient(135deg,var(--surface),var(--surface-2));border-bottom:1px solid var(--line)}.workflow-heading{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.workflow-heading h2{font-size:15px;margin:0}.workflow-steps{display:grid;grid-template-columns:minmax(0,.8fr) 22px minmax(0,1.65fr) 22px minmax(0,.9fr);align-items:stretch}.workflow-steps article{position:relative;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:14px 13px 13px 42px;box-shadow:0 5px 16px rgba(7,94,67,.06)}.workflow-steps h3{margin:0 0 5px;font-size:12px}.workflow-steps p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.workflow-steps .button{margin-top:10px;padding:8px 10px;font-size:10px}.workflow-number{position:absolute;left:12px;top:12px;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:var(--green);color:#fff;font-size:10px;font-weight:800}.workflow-arrow{display:grid;place-items:center;color:var(--green);font-style:normal;font-size:18px}.helper-box{border-left:3px solid var(--green);background:var(--mint);border-radius:8px;padding:12px 14px;margin-bottom:14px}.helper-box strong{font-size:12px}.helper-box p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.subtabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:4px;margin-bottom:15px}.subtab{border:0;border-radius:7px;background:transparent;color:var(--muted);padding:9px;font-weight:700;cursor:pointer}.subtab.active{background:var(--surface);color:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.07)}.property-panel{display:none}.property-panel.active{display:block}.choice-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.choice-buttons label{min-width:0}.choice-buttons input{display:none}.choice-buttons span{display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:10px;text-align:center;cursor:pointer}.choice-buttons input:checked+span{border-color:var(--green);background:var(--mint);color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.empty-choice{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
@media(max-width:700px){.workflow-steps{grid-template-columns:1fr;gap:8px}.workflow-arrow{transform:rotate(90deg);height:16px}.choice-buttons{grid-template-columns:1fr}.brand-mark{width:82px}}

.assistant-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid color-mix(in srgb,var(--green) 35%,var(--line));background:var(--mint);color:var(--green);white-space:nowrap;line-height:1.2}.assistant-button:hover{background:color-mix(in srgb,var(--mint) 72%,var(--green));color:var(--green-dark)}
.assistant-sparkle{display:inline-block;flex:none;margin:0;color:#f2b705;font-size:23px;line-height:1;text-shadow:0 0 5px rgba(242,183,5,.38);transform-origin:center;animation:assistant-sparkle-shine 3.8s ease-in-out infinite}.assistant-head h2{display:flex;align-items:center;justify-content:center;gap:8px}.assistant-head .assistant-sparkle{margin:0;color:#ffd54a;font-size:24px;text-shadow:0 0 7px rgba(255,213,74,.48)}@keyframes assistant-sparkle-shine{0%,72%,100%{transform:scale(1) rotate(0);filter:brightness(1);text-shadow:0 0 5px rgba(242,183,5,.32)}82%{transform:scale(1.16) rotate(12deg);filter:brightness(1.35);text-shadow:0 0 11px rgba(255,208,50,.75)}}.custom-legend-list,.custom-text-list{display:grid;gap:10px;margin-top:12px}.custom-legend-item,.custom-text-item{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.custom-legend-colors{margin-top:5px}
.rainbow-story{position:absolute;z-index:12;left:50%;bottom:calc(100% + 20px);width:min(390px,calc(100vw - 48px));padding:17px 18px 15px 22px;border:4px solid #17211e;border-radius:8px 18px 18px 18px;background:#fffdf8;color:#17211e;text-align:left;box-shadow:8px 9px 0 rgba(23,33,30,.22);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,10px) scale(.97);transform-origin:50% 100%;transition:opacity .18s ease,transform .18s ease,visibility .18s}.rainbow-story:before{content:'“';position:absolute;left:8px;top:-17px;padding:0 7px;background:#fffdf8;color:#0e7a58;font-family:Georgia,serif;font-size:47px;font-weight:900;line-height:1}.rainbow-story:after{content:'';position:absolute;left:50%;top:100%;width:18px;height:18px;background:#fffdf8;border-right:4px solid #17211e;border-bottom:4px solid #17211e;transform:translate(-50%,-7px) rotate(45deg)}.rainbow-story strong{display:block;margin:0 0 7px;font-family:Georgia,'Times New Roman',serif;font-size:17px}.rainbow-story p{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:13px;line-height:1.55}.rainbow-story a{position:relative;z-index:1;color:#087353;font-weight:700;pointer-events:auto}.canvas-cell:hover .rainbow-story,.canvas-cell:focus-visible .rainbow-story,.canvas-cell:focus-within .rainbow-story{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1)}.canvas-cell:focus-visible{outline:3px solid var(--orange);outline-offset:7px}[data-theme="dark"] .rainbow-story{border-color:#dbe7e2;background:#14231e;color:#f1f6f4;box-shadow:8px 9px 0 rgba(0,0,0,.42)}[data-theme="dark"] .rainbow-story:before{background:#14231e;color:#62d5aa}[data-theme="dark"] .rainbow-story:after{background:#14231e;border-color:#dbe7e2}[data-theme="dark"] .rainbow-story a{color:#79e4bc}@media(max-width:700px){.rainbow-story{bottom:calc(100% + 14px);width:min(330px,calc(100vw - 28px));padding:15px}.rainbow-story p{font-size:12px}}
.example-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.example-loading{color:var(--muted);font-size:12px}.export-actions a.button{text-decoration:none}.dependency-note{margin-bottom:12px}.dependency-note code,.option-description code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--green-dark)}
.rainbow-story:before{left:auto;right:15px;top:-27px}
.rainbow-story{left:auto;right:calc(100% + 22px);top:50%;bottom:auto;transform:translate(10px,-50%) scale(.97);transform-origin:100% 50%}.canvas-cell:hover .rainbow-story,.canvas-cell:focus-visible .rainbow-story,.canvas-cell:focus-within .rainbow-story{transform:translate(0,-50%) scale(1)}.rainbow-story:after{left:calc(100% - 8px);top:50%;width:18px;height:18px;border-right:4px solid #17211e;border-bottom:4px solid #17211e;transform:translateY(-50%) rotate(-45deg)}
[data-theme="dark"] .rainbow-story:after{border-right-color:#dbe7e2;border-bottom-color:#dbe7e2}
.preview-panel:has(.canvas-cell:hover),.preview-panel:has(.canvas-cell:focus-visible),.preview-panel:has(.canvas-cell:focus-within){position:relative;z-index:1000;overflow:visible}.workspace:has(.canvas-cell:hover),.workspace:has(.canvas-cell:focus-visible),.workspace:has(.canvas-cell:focus-within){overflow:visible}.rainbow-story{z-index:1001}
.workspace:has(.canvas-cell:hover)~.app-statusbar,.workspace:has(.canvas-cell:focus-visible)~.app-statusbar,.workspace:has(.canvas-cell:focus-within)~.app-statusbar{z-index:1002}
.workspace:has(.canvas-cell:hover)~.app-footer,.workspace:has(.canvas-cell:focus-visible)~.app-footer,.workspace:has(.canvas-cell:focus-within)~.app-footer{z-index:1003}
.summary-data-field{display:grid;gap:4px;margin-top:5px;padding-top:6px;border-top:1px dashed var(--line);min-width:0}.summary-field-name{width:max-content;max-width:100%;padding:2px 6px;border-radius:5px;background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;overflow-wrap:anywhere}.preview-title-wrap{min-width:0}.canvas-title-editor{position:relative}.preview-head #previewTitle[contenteditable="true"]{min-width:260px;max-width:min(650px,62vw);min-height:34px;margin:4px -7px -5px;padding:4px 7px;border:1px dashed transparent;border-radius:7px;cursor:text;outline:none;overflow-wrap:anywhere}.preview-head #previewTitle[contenteditable="true"]:hover{border-color:var(--line)}.preview-head #previewTitle[contenteditable="true"]:focus{border-color:var(--green);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 13%,transparent)}.preview-head #previewTitle h2,.preview-head #previewTitle h3,.preview-head #previewTitle p{margin:3px 0}.preview-head #previewTitle h2{font-size:25px}.preview-head #previewTitle h3{font-size:18px;font-weight:650}.preview-head #previewTitle p{font-size:14px;font-weight:500}.preview-head #previewTitle small{display:block;font-size:11px;font-weight:500;color:var(--muted)}.preview-head #previewTitle a{color:var(--green);text-decoration:underline;text-underline-offset:2px}.canvas-title-toolbar{position:absolute;left:0;bottom:calc(100% + 7px);z-index:8;display:flex;align-items:center;gap:4px;width:max-content;max-width:min(620px,80vw);padding:5px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:0 8px 25px rgba(10,45,34,.15);opacity:0;visibility:hidden;transform:translateY(4px);transition:.16s}.canvas-title-editor:focus-within .canvas-title-toolbar{opacity:1;visibility:visible;transform:none}.canvas-title-toolbar button,.canvas-title-toolbar select{width:auto;height:30px;margin:0;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink);font-size:11px;cursor:pointer}.canvas-title-toolbar button:hover{border-color:var(--green);color:var(--green)}
.assistant-panel{position:fixed;left:50%;top:50%;z-index:80;width:min(390px,calc(100vw - 24px));height:min(610px,calc(100vh - 120px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(7,45,34,.28);overflow:visible;opacity:0;visibility:hidden;transform:translate(-50%,calc(-50% + 14px)) scale(.98);transform-origin:center;transition:opacity .18s ease,transform .18s ease,visibility .18s}.assistant-panel.open{opacity:1;visibility:visible;transform:translate(-50%,-50%)}.assistant-panel:before,.assistant-panel:after{content:"";position:absolute;pointer-events:none;border-radius:21px;opacity:0}.assistant-panel:before{z-index:3;inset:-4px;padding:4px;background:linear-gradient(90deg,#d2305c,#ff5e00,#ffe600,#22d66f,#00aeea,#7c3aed,#d2305c);background-size:300% 100%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.assistant-panel:after{z-index:-1;inset:-11px;background:linear-gradient(90deg,#d2305c,#ff5e00,#ffe600,#22d66f,#00aeea,#7c3aed,#d2305c);background-size:300% 100%;filter:blur(13px)}.assistant-panel.answer-arrived:before{animation:assistant-rainbow-border 2.6s ease both}.assistant-panel.answer-arrived:after{animation:assistant-rainbow-glow 2.6s ease both}@keyframes assistant-rainbow-border{0%,100%{opacity:0;background-position:0 50%}15%,78%{opacity:1}65%{background-position:100% 50%}}@keyframes assistant-rainbow-glow{0%,100%{opacity:0;background-position:0 50%}18%,68%{opacity:.48}65%{background-position:100% 50%}}.assistant-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:58px;padding:15px 54px;background:linear-gradient(135deg,var(--green-dark),var(--green));color:#fff;border-radius:17px 17px 0 0}.assistant-head h2{margin:0;font-size:16px;text-align:center}.assistant-head .icon-button{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#fff;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.08)}.assistant-privacy{display:flex;align-items:center;justify-content:center;gap:9px;padding:7px 34px;background:var(--mint);border-bottom:1px solid var(--line);color:var(--green-dark);font-size:10px;font-weight:700;text-align:center}.assistant-privacy button{border:0;background:transparent;color:var(--green);font-size:16px;line-height:1;cursor:pointer;padding:0}.assistant-messages{flex:1;display:flex;flex-direction:column;gap:10px;padding:15px;overflow-y:auto;background:var(--surface-2)}.assistant-message{max-width:90%;padding:10px 12px;border-radius:13px;font-size:13px;line-height:1.48;white-space:pre-wrap;overflow-wrap:anywhere}.assistant-ai{align-self:flex-start;background:var(--surface);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:4px}.assistant-user{align-self:flex-end;background:var(--green);color:#fff;border-bottom-right-radius:4px}.assistant-prompts{display:flex;gap:6px;padding:9px 12px 5px;overflow-x:auto;background:var(--surface)}.assistant-prompts button{flex:none;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--green);padding:6px 9px;font-size:10px;font-weight:700;cursor:pointer}.assistant-model-status{padding:6px 13px;color:var(--muted);font-size:10px;background:var(--surface)}.assistant-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px;padding:8px 12px 12px;background:var(--surface);border-radius:0 0 17px 17px}.assistant-form textarea{resize:none;min-height:48px;margin:0}.assistant-form .button{height:48px}.assistant-form textarea:disabled{opacity:.7}.assistant-form button:disabled{cursor:wait;opacity:.7}
.assistant-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;white-space:normal}.assistant-actions button{border:1px solid color-mix(in srgb,var(--green) 45%,var(--line));border-radius:8px;background:var(--mint);color:var(--green);padding:7px 9px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.assistant-actions button:hover{border-color:var(--green);color:var(--green-dark)}.assistant-target{position:relative;outline:3px solid color-mix(in srgb,var(--orange) 78%,transparent)!important;outline-offset:4px;animation:assistant-target-pulse .75s ease-in-out 2}@keyframes assistant-target-pulse{50%{outline-offset:8px;box-shadow:0 0 0 8px color-mix(in srgb,var(--orange) 12%,transparent)}}
@media(max-width:700px){.assistant-button{padding:8px 10px;font-size:0}.assistant-button:first-letter{font-size:16px}.assistant-panel{left:50%;top:50%;width:calc(100vw - 16px);height:min(620px,calc(100vh - 32px))}}

/* Cross-platform readability and the persistent chromoMap creation control. */
body{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI Variable","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:inherit}.button{font-size:13px}.tab{font-size:13px}label,.switch,.segmented span{font-size:13px}.section-head p,.notice,.upload strong,.status{font-size:13px}.upload small,.option-description,.subhead p,.config-title p,.summary-card,.helper-box p,.zoom-note,.editor-header p,.editor-toolbar span,.editor-footer span,.choice-buttons span,.empty-choice{font-size:12px}.track-badge,.eyebrow,.workflow-steps p,.workflow-steps .button,.summary-card b,.add-color,.edit-data{font-size:11px}.config-title h3,.subhead h3,.collapsible-option summary h3,.workflow-steps h3{font-size:14px}input,select,textarea{font-size:14px}
.control-panel{padding-bottom:24px}.workspace{height:calc(100vh - 148px)}
.app-statusbar{height:42px;position:relative;z-index:20;display:grid;grid-template-columns:1fr 330px 1fr;align-items:center;padding:0 22px;background:var(--surface-2);border-top:1px solid var(--line);font-size:12px;overflow:visible}.app-statusbar .status{justify-self:start;margin:0}.app-statusbar #dataSummary{justify-self:end;color:var(--muted);font-size:12px}.status-action-cell{position:relative;width:330px;height:42px}.status-action-cell:after{display:none}.status-action-cell .button{box-sizing:border-box;position:absolute;left:0;bottom:-34px;width:330px;height:72px;display:flex;align-items:flex-start;justify-content:center;padding:11px 24px 0;border:2px solid rgba(14,122,88,.72);border-radius:52% 48% 50% 50%/52% 56% 44% 48%;background:linear-gradient(180deg,var(--surface),var(--mint));color:var(--green);font-size:14px;font-weight:800;letter-spacing:.1px;box-shadow:inset 0 0 0 5px rgba(66,194,146,.14),inset 0 0 25px rgba(66,194,146,.3),0 0 0 3px rgba(14,122,88,.11),0 -9px 22px rgba(7,94,67,.22);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.status-action-cell .button:hover,.status-action-cell .button:focus-visible{transform:translateY(-7px);background:linear-gradient(180deg,var(--surface),var(--mint));color:var(--green-dark);box-shadow:inset 0 0 0 5px rgba(66,194,146,.18),inset 0 0 28px rgba(66,194,146,.38),0 0 0 3px rgba(14,122,88,.14),0 -13px 27px rgba(7,94,67,.29)}.app-footer{position:relative;z-index:30}
@media(max-width:700px){.workspace{height:auto}.app-statusbar{grid-template-columns:1fr 230px;padding:0 12px}.app-statusbar #dataSummary{display:none}.status-action-cell,.status-action-cell .button{width:230px}.status-action-cell .button{padding-left:12px;padding-right:12px}.header-actions #renderTop{display:none}}
.app-footer,[data-theme="dark"] .app-footer{background:#0e7a58;color:#fff;border-top-color:#075e43;font-weight:600}
.status-action-cell .button{top:-8px;bottom:auto;height:81px;padding-top:18px;transition:none}.status-action-cell .button:hover,.status-action-cell .button:focus-visible{transform:none;background:linear-gradient(180deg,var(--surface),var(--mint));box-shadow:inset 0 0 0 5px rgba(66,194,146,.18),inset 0 0 28px rgba(66,194,146,.38),0 0 0 3px rgba(14,122,88,.14),0 -9px 22px rgba(7,94,67,.24)}.status-action-cell .button span{color:var(--green);white-space:nowrap}.status-action-cell .button:hover span,.status-action-cell .button:focus-visible span{color:transparent;background:linear-gradient(90deg,#d2305c 0%,#ff5e00 22%,#ffe600 44%,#22d66f 68%,#00aeea 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}

/* Structured assistant: draggable window, genomic chat pattern, and rich data tokens. */
.assistant-panel.dragging{transition:none;user-select:none}.assistant-head{cursor:grab;touch-action:none}.assistant-panel.dragging .assistant-head{cursor:grabbing}
.assistant-messages{background-color:#eaf7ef;background-image:radial-gradient(circle at 4px 4px,rgba(14,122,88,.13) 1.4px,transparent 1.6px),linear-gradient(35deg,transparent 46%,rgba(66,194,146,.1) 47% 49%,transparent 50%),linear-gradient(-35deg,transparent 46%,rgba(66,194,146,.1) 47% 49%,transparent 50%);background-size:28px 28px,56px 28px,56px 28px}
.assistant-message{white-space:normal;box-shadow:0 2px 5px rgba(7,94,67,.08)}.assistant-message p{margin:0}.assistant-message p+p{margin-top:7px}.assistant-message br{display:block;content:"";height:5px}
.assistant-summary-line{margin:5px 0;padding:7px 8px;border-left:3px solid var(--green);border-radius:5px;background:color-mix(in srgb,var(--mint) 55%,var(--surface));line-height:1.42}.assistant-number{display:inline-block;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--orange) 18%,var(--surface));color:var(--orange);font-weight:800;font-variant-numeric:tabular-nums}.assistant-file{color:var(--green);font-weight:750;overflow-wrap:anywhere}.assistant-property{padding:1px 4px;border-radius:4px;background:var(--surface-2);color:var(--green-dark);font-weight:700}.assistant-arrow{display:inline-block;margin:0 3px;color:var(--orange);font-weight:900}
[data-theme="dark"] .assistant-messages{background-color:#10251f;background-image:radial-gradient(circle at 4px 4px,rgba(66,194,146,.16) 1.4px,transparent 1.6px),linear-gradient(35deg,transparent 46%,rgba(66,194,146,.08) 47% 49%,transparent 50%),linear-gradient(-35deg,transparent 46%,rgba(66,194,146,.08) 47% 49%,transparent 50%)}
.cite-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}
.assistant-form{align-items:stretch}.assistant-form textarea,.assistant-form .button{box-sizing:border-box;height:52px;min-height:52px}.assistant-form textarea{margin-top:0}.assistant-form .button{align-self:stretch}
[data-theme="dark"] .preview-panel{background:var(--wash);color:var(--ink)}[data-theme="dark"] .preview-head,[data-theme="dark"] .preview-head #previewTitle{color:var(--ink)}[data-theme="dark"] .preview-head .zoom-note{color:var(--muted)}
.assistant-message{transition:opacity .36s ease,transform .36s cubic-bezier(.2,.8,.2,1)}.assistant-message-enter{opacity:0;transform:translateY(12px) scale(.98)}
@media(prefers-reduced-motion:reduce){.assistant-message{transition:none}.assistant-message-enter{opacity:1;transform:none}}
.assistant-value-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:10px}.assistant-value-form input{height:36px;min-width:0;margin:0;padding:7px 9px;background:var(--surface);color:var(--ink)}.assistant-value-form input[type="color"]{padding:3px}.assistant-value-form button{height:36px;border:0;border-radius:7px;padding:0 12px;background:var(--green);color:#fff;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.assistant-value-form button:hover{background:var(--green-dark)}.assistant-value-form button:disabled,.assistant-value-form input:disabled{opacity:.58;cursor:default}
.assistant-scroll-spacer{flex:0 0 auto;width:1px;pointer-events:none}
.assistant-model-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:7px 12px 2px;background:var(--surface)}.assistant-model-row label{font-size:10px;color:var(--muted)}.assistant-model-row select{height:29px;margin:0;padding:4px 8px;font-size:11px}.assistant-model-row select:disabled{opacity:.55}

/* App entrance motion */
.tab-panel.active{animation:tab-panel-enter .34s cubic-bezier(.2,.75,.25,1) both}
.property-panel.active{animation:tab-panel-enter .3s cubic-bezier(.2,.75,.25,1) both}
.collapsible-option[open] .option-content{animation:option-content-enter .36s cubic-bezier(.2,.75,.25,1) both}
.collapsible-option[open] summary>span{animation:section-number-pop .38s cubic-bezier(.2,.9,.25,1.25)}
@keyframes tab-panel-enter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes option-content-enter{from{opacity:0;transform:translateY(-8px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes section-number-pop{0%{transform:scale(.82)}65%{transform:scale(1.1)}100%{transform:scale(1)}}

/* Keep each assistant answer celebration visible for three seconds. */
.assistant-panel.answer-arrived:before{animation-duration:3s}
.assistant-panel.answer-arrived:after{animation-duration:3s}

@media(prefers-reduced-motion:reduce){
  .tab-panel.active,.property-panel.active,.collapsible-option[open] .option-content,.collapsible-option[open] summary>span{opacity:1;transform:none;animation:none}
  .assistant-panel.answer-arrived:before,.assistant-panel.answer-arrived:after,.assistant-sparkle{animation:none}
}

.file-card h3 small{color:var(--muted);font-size:10px;font-weight:600}.ploidy-name-field{max-width:340px;margin:0 0 12px}.ploidy-name-field input{margin-top:5px}.series-label-list{display:grid;gap:7px}.series-label-list>div{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:6px;align-items:center}.series-label-list input{margin:0}.series-label-list [data-remove-legend]{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--muted);cursor:pointer}.series-label-list [data-remove-legend]:hover{border-color:var(--orange);color:var(--orange)}
.custom-text-list{display:grid;gap:10px;margin-top:14px}.custom-text-item{padding:11px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}.custom-text-item-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.custom-text-item-head strong{font-size:12px}.custom-text-item-head button{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);cursor:pointer}.custom-text-item-head button:hover{border-color:var(--orange);color:var(--orange)}.custom-text-item small{display:block;margin-top:7px;color:var(--muted);font-size:10px}.chromomap-app-custom-text{touch-action:none}

/* Quiet cross-platform scrollbars: hidden at rest, visible while the region is used. */
*{scrollbar-width:thin;scrollbar-color:transparent transparent}
*:hover{scrollbar-color:color-mix(in srgb,var(--green) 48%,transparent) transparent}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:transparent;background-clip:padding-box}
*:hover::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--green) 48%,transparent);background-clip:padding-box}
*:hover::-webkit-scrollbar-thumb:hover{background:var(--green);background-clip:padding-box}
.tabs::-webkit-scrollbar{height:6px}

.preview-head #previewTitle mark,.canvas-title-toolbar mark{padding:.08em .22em;border-radius:.28em;background:color-mix(in srgb,var(--green) 28%,var(--surface));color:inherit;box-decoration-break:clone;-webkit-box-decoration-break:clone}.canvas-title-toolbar button mark{padding:1px 4px;font-size:10px;font-weight:750}[data-theme="dark"] .preview-head #previewTitle mark,[data-theme="dark"] .canvas-title-toolbar mark{background:color-mix(in srgb,var(--green) 42%,var(--surface));color:var(--ink)}

.preview-head{flex-direction:column;align-items:stretch;justify-content:flex-start}.preview-title-wrap,.canvas-title-editor{width:100%;max-width:none}.preview-head #previewTitle[contenteditable="true"]{box-sizing:border-box;width:100%;max-width:none}.preview-head .zoom-note{align-self:flex-start;margin-top:12px;line-height:1.45}
.preview-head #previewTitle a{cursor:pointer}.preview-head #previewTitle a:hover{color:var(--green-dark);text-decoration-thickness:2px}
.editor-table-wrap td.editor-row-actions{padding:3px;white-space:nowrap;background:var(--surface-2)}.editor-table-wrap td.editor-row-actions button{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:3px 7px;border-radius:6px}.editor-table-wrap td.editor-row-actions .move-editor-row{color:var(--green);font-size:15px;font-weight:800}.editor-table-wrap td.editor-row-actions .move-editor-row:hover:not(:disabled){background:var(--mint);color:var(--green-dark)}.editor-table-wrap td.editor-row-actions button:disabled{opacity:.3;cursor:not-allowed}

/* Mask-free assistant celebration for reliable Windows Chrome rendering. */
.assistant-panel{isolation:isolate}.assistant-panel:before{z-index:-1;padding:0;-webkit-mask:none;mask:none}.assistant-panel:after{z-index:-2}

/* Assistant feedback remains short and functional even when Windows reports reduced motion. */
@media(prefers-reduced-motion:reduce){
  .tab-panel.active{animation:tab-panel-enter .34s cubic-bezier(.2,.75,.25,1) both}
  .property-panel.active{animation:tab-panel-enter .3s cubic-bezier(.2,.75,.25,1) both}
  .collapsible-option[open] .option-content{animation:option-content-enter .36s cubic-bezier(.2,.75,.25,1) both}
  .collapsible-option[open] summary>span{animation:section-number-pop .38s cubic-bezier(.2,.9,.25,1.25)}
  .assistant-message{transition:opacity .36s ease,transform .36s cubic-bezier(.2,.8,.2,1)}
  .assistant-message-enter{opacity:0;transform:translateY(12px) scale(.98)}
  .assistant-panel.answer-arrived:before{animation:assistant-rainbow-border 3s ease both}
  .assistant-panel.answer-arrived:after{animation:assistant-rainbow-glow 3s ease both}
  .assistant-sparkle{animation:assistant-sparkle-shine 3.8s ease-in-out infinite}
}
