:root{--text:#6d635c;--text-h:#1c1613;--bg:#fffdfa;--border:#e9e2da;--accent:#d92d20;--accent-hover:#b21f14;--accent-bg:#fdece9;--brand-blue:#1c67b3;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:17px/1.45 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#a8a09a;--text-h:#f4efeb;--bg:#181513;--border:#332d29;--accent:#ff6b5e;--accent-hover:#ff8478;--accent-bg:#ff6b5e26;--brand-blue:#6ba8e0}.tool-hint-warning{color:#fdba74;background:#ea580c2e}.tool-hint-error{color:#fca5a5;background:#dc26262e}.color-result-amyloid{color:#93c5fd;background:#2563eb33}.color-result-dextrinoid{color:#fdba74;background:#b4530933}.color-result-inamyloid{color:#d1d5db;background:#9ca3af33}}*{box-sizing:border-box}body{margin:0}h1,h2{color:var(--text-h);font-weight:500}button,.cta-button,.upload-button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;min-height:44px;padding:11px 18px;font-size:15px}button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cta-button{background:var(--accent);color:#fff;padding:14px 28px;font-size:18px;text-decoration:none;display:inline-block}.landing{max-width:900px;margin:0 auto;padding:24px}.landing-header{justify-content:space-between;align-items:center;display:flex}.language-switcher button{min-height:auto;padding:6px 14px}.landing-hero{text-align:center;margin-top:15vh}.landing-hero h1{max-width:700px;margin:0 auto 16px;font-size:36px}.landing-hero p{max-width:600px;margin:0 auto 32px;font-size:17px}.landing-steps{flex-wrap:wrap;justify-content:center;gap:32px;max-width:780px;margin:12vh auto 0;display:flex}.landing-step{text-align:center;flex:200px;max-width:240px;padding:20px 16px;position:relative}.landing-step-icon{width:56px;height:56px;color:var(--accent);margin:0 auto 12px}.landing-step-icon svg{width:100%;height:100%}.landing-step-number{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:600;display:flex;position:absolute;top:8px;left:50%;transform:translate(9px)}.landing-step p{margin:0;font-size:15px}.landing-nav{align-items:center;gap:16px;display:flex}.docs-link{color:var(--text);font-size:14px;text-decoration:none}.docs-link:hover{color:var(--accent)}.landing-docs-cta{text-align:center;margin-top:10vh;font-size:14px}.landing-docs-cta a{color:var(--accent)}.docs-page{max-width:1400px;margin:0 auto;padding:28px 40px 80px}.docs-page h1{margin-bottom:4px;font-size:clamp(32px,4vw,44px);line-height:1.15}.docs-intro{max-width:70ch;margin:20px 0 52px;font-size:21px;line-height:1.6}.docs-steps{flex-direction:column;gap:60px;margin:0;padding:0;list-style:none;display:flex}.docs-step-text h2{margin-bottom:14px;font-size:26px;line-height:1.3}.docs-step-text p{margin:0 0 14px;font-size:19px;line-height:1.7}@media (width>=900px){.docs-step{grid-template-columns:minmax(360px,460px) 1fr;align-items:start;column-gap:52px;display:grid}.docs-step-text{position:sticky;top:24px}.docs-step-text:only-child{grid-column:1/-1;max-width:72ch;position:static}}.docs-screenshot{border:1px solid var(--border);border-radius:10px;max-width:100%;display:block;box-shadow:0 2px 10px #00000017}.docs-footer{text-align:center;margin:64px 0 24px}.docs-footer .cta-button{padding:14px 28px;font-size:18px}.about-section{margin:0 0 32px}.about-section h2{margin-bottom:8px;font-size:19px}.about-section p{margin:0;line-height:1.6}.about-association{border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:20px;padding:20px;display:flex}.about-logo{border-radius:8px;flex-shrink:0;width:90px;height:auto}.about-association a{color:var(--accent);margin-top:8px;font-size:14px;display:inline-block}.spore-editor{flex-direction:column;gap:16px;max-width:1000px;margin:0 auto;padding:24px;display:flex}.editor-header{align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:9px;display:inline-flex}.brand-mark{object-fit:contain;flex-shrink:0;width:30px;height:30px}.app-name{color:var(--brand-blue);letter-spacing:.01em;font-weight:600}.editor-header .app-name{font-size:16px}.editor-header .language-switcher{margin-left:auto}.back-link{color:var(--text);align-items:center;gap:6px;font-size:14px;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--text-h)}.back-icon{width:16px;height:16px}.menu-bar{border-bottom:1px solid var(--border);align-items:center;gap:2px;padding-bottom:4px;display:flex}.menu{position:relative}.menu-trigger{background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;min-height:auto;padding:8px 12px;font-size:14px;display:inline-flex}.menu-trigger:hover,.menu-trigger[aria-expanded=true]{background:var(--accent-bg)}.menu-chevron{width:12px;height:12px}.menu-dropdown{z-index:20;background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;width:max-content;min-width:200px;max-width:320px;padding:6px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #0000001f}.menu-dropdown .menu-item{text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:6px;justify-content:flex-start;align-items:center;gap:10px;width:100%;min-height:auto;padding:8px 10px;font-size:14px;display:flex}.menu-dropdown .menu-item>span{flex:1}.menu-dropdown .menu-item:hover:not(:disabled){background:var(--accent-bg)}.menu-dropdown .menu-item:disabled{opacity:.45;cursor:default}.menu-icon{flex-shrink:0;width:16px;height:16px}.zoom-readout{color:var(--text);margin-left:auto;padding:8px 4px;font-size:13px}.tool-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-row button{align-items:center;gap:8px;display:inline-flex}.tool-icon{flex-shrink:0;width:18px;height:18px}.active-more-tool{color:var(--accent);padding:0 4px;font-size:13px}.upload-button-prominent{border:2px dashed var(--accent);color:var(--accent);background:var(--accent-bg);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:11px 20px;font-weight:500;display:inline-flex}.color-test-panel{flex-direction:column;gap:8px;display:flex}.color-swatches{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.color-swatch-item{align-items:center;gap:8px;font-size:13px;display:flex}.color-swatch{border:1px solid var(--border);background:repeating-conic-gradient(#00000010 0% 25%,#0000 0% 50%) 50%/8px 8px;border-radius:6px;width:28px;height:28px;display:inline-block}.color-result{border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px}.color-result-amyloid{color:#1e40af;background:#2563eb1f}.color-result-dextrinoid{color:#9a3412;background:#b453091f}.color-result-inamyloid{color:#374151;background:#6b72801f}.color-result-inconclusive{color:var(--text);background:#6b728014}.autodetect-status{color:var(--text);flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.calibration-readout{color:var(--text-muted,var(--text));align-items:center;gap:10px;margin-top:8px;font-size:13px;display:flex}.calibration-readout .link-button{color:var(--accent,#d92d20);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.detect-algo{align-items:center;gap:4px;display:inline-flex}.detect-algo-label{color:var(--text);margin-right:4px}.detect-algo button{border:1px solid var(--border);background:var(--bg);min-height:auto;color:var(--text-h);border-radius:6px;padding:5px 10px;font-size:13px}.detect-algo button.active{background:var(--accent);border-color:var(--accent);color:#fff}.detect-algo button:disabled{opacity:.5;cursor:default}.detect-progress{align-items:center;gap:8px;min-width:240px;display:inline-flex}.detect-progress progress{height:8px;accent-color:var(--accent);flex:1}.detect-faint-hint{color:var(--text);opacity:.8;font-size:12px}.detect-advanced{color:var(--text);max-width:420px;margin-top:8px;font-size:13px}.detect-advanced summary{cursor:pointer;color:var(--accent,#d92d20);-webkit-user-select:none;user-select:none}.detect-sliders{flex-direction:column;gap:10px;padding:10px 2px 2px;display:flex}.detect-slider{flex-direction:column;gap:3px;display:flex}.detect-slider-label{justify-content:space-between;gap:8px;display:flex}.detect-slider-value{font-variant-numeric:tabular-nums;color:var(--text-h,var(--text));opacity:.7}.detect-slider input[type=range]{width:100%;accent-color:var(--accent)}.detect-sliders .btn-secondary{align-self:flex-start;min-height:auto;padding:4px 10px;font-size:12px}.export-mode-toggle{gap:6px;margin-bottom:12px;display:flex}.export-mode-toggle button{border:1px solid var(--border);background:var(--bg);min-height:auto;color:var(--text-h);border-radius:6px;flex:1;padding:7px 10px;font-size:13px}.export-mode-toggle button.active{background:var(--accent);border-color:var(--accent);color:#fff}.export-mode-hint{color:var(--text);opacity:.85;margin:0 0 4px;font-size:12.5px;line-height:1.4}.calibration-profiles{flex-direction:column;gap:8px;display:flex}.profile-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-row select,.profile-row input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:8px 10px}.profile-row input{min-width:240px}.calibration-panel{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;display:flex}.calibration-panel label{flex-direction:column;gap:4px;font-size:13px;display:flex}.calibration-panel input,.calibration-panel select{font:inherit;padding:4px 8px}.plate-panel{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;padding:14px 16px;display:flex}.plate-panel p{flex-basis:100%;margin:0;font-size:15px;line-height:1.5}.plate-panel label{flex-direction:column;gap:5px;font-size:14px;display:flex}.plate-panel input{font:inherit;min-width:220px;padding:8px 10px}.plate-panel button{padding:9px 18px}.plate-panel-cancel{border:1px solid var(--border);background:0 0}.canvas-wrap{position:relative}.spore-canvas{border:1px solid var(--border);touch-action:none;background:repeating-conic-gradient(#00000008 0% 25%,#0000 0% 50%) 50%/20px 20px;border-radius:6px;max-width:100%}.canvas-placeholder{pointer-events:none;color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;font-size:15px;display:flex;position:absolute;inset:0}.canvas-placeholder-icon{opacity:.5;width:36px;height:36px}.tool-hint{color:var(--text);background:var(--accent-bg);border:1px solid var(--border);border-radius:6px;margin:0;padding:8px 12px;font-size:13px}.tool-hint-warning{color:#9a3412;background:#ea580c1a;border-color:#ea580c66}.tool-hint-error{color:#991b1b;background:#dc26261a;border-color:#dc262666}.line-legend{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px;margin-left:12px;display:inline-block}.legend-dot:first-child{margin-left:0}.legend-length{background:#2563eb}.legend-width{background:#16a34a}.legend-isolated{background:#6b7280}.row-delete{color:var(--text);background:0 0;border:none;min-height:auto;padding:4px 10px;font-size:18px;line-height:1}.row-delete:hover{color:var(--accent)}.measurement-table table{border-collapse:collapse;width:100%}.measurement-table th,.measurement-table td{border-bottom:1px solid var(--border);text-align:left;padding:6px 10px}.measurement-summary{gap:24px;margin-top:12px;font-size:14px;display:flex}.dimensional-formula{border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:6px;margin-top:16px;padding:12px 14px;display:flex}.dimensional-formula-title{color:var(--text);font-size:12px}.dimensional-formula code{font-size:15px;font-family:var(--mono,ui-monospace, Consolas, monospace)}.dimensional-formula-mean{color:var(--text);font-size:13px}.comparator{border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:6px;margin-top:16px;padding:12px 14px;display:flex}.comparator-title{color:var(--text);font-size:12px}.comparator-svg{width:100%;max-width:420px;height:auto}.cmp-axis{stroke:var(--border);stroke-width:1px}.cmp-tick,.cmp-axis-label{fill:var(--text);font-family:inherit;font-size:10px}.cmp-axis-label{font-size:11px}.cmp-ellipse{fill:var(--accent-bg);stroke:var(--accent);stroke-width:1.5px;opacity:.9}.cmp-centre{fill:var(--accent)}.cmp-pt{fill:var(--text-h)}.cmp-pt-outlier{fill:none;stroke:var(--accent);stroke-width:2px}.comparator-caption{color:var(--text);font-size:12px}.hints-area{flex-direction:column;gap:6px;margin-top:4px;display:flex}.hint-dismissible{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.hint-dismiss{min-height:auto;color:var(--text);opacity:.5;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:16px;line-height:1}.hint-dismiss:hover{opacity:1;color:var(--accent)}.export-modal-backdrop{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.export-modal{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:14px;width:100%;min-width:300px;max-width:440px;padding:24px;display:flex;box-shadow:0 8px 32px #0000002e}.export-modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.export-modal-header h3{margin:0;font-size:16px;font-weight:600}.modal-close{min-height:auto;color:var(--text);opacity:.6;cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:20px;line-height:1}.modal-close:hover{opacity:1;color:var(--accent)}.export-modal-options{flex-direction:column;gap:8px;display:flex}.export-option{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.export-option input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex-shrink:0}.export-option-group{flex-direction:column;gap:6px;margin-top:2px;display:flex}.export-suboptions{border-left:2px solid var(--border);flex-direction:column;gap:6px;margin-left:6px;padding-left:22px;display:flex}.export-option-author{flex-direction:column;gap:5px;font-size:13px;display:flex}.export-option-author input{font-size:13px}.export-modal-actions{gap:8px;padding-top:4px;display:flex}.btn-secondary{border:1px solid var(--border);color:var(--text);background:0 0}.btn-secondary:hover{background:var(--accent-bg)}
