@font-face{font-family:SurvScope Sans;src:url(/survscope/fonts/LiberationSans-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:block}@font-face{font-family:SurvScope Sans;src:url(/survscope/fonts/LiberationSans-Bold.ttf) format("truetype");font-style:normal;font-weight:700;font-display:block}@font-face{font-family:SurvScope Sans;src:url(/survscope/fonts/LiberationSans-Italic.ttf) format("truetype");font-style:italic;font-weight:400;font-display:block}@font-face{font-family:SurvScope Sans;src:url(/survscope/fonts/LiberationSans-BoldItalic.ttf) format("truetype");font-style:italic;font-weight:700;font-display:block}@font-face{font-family:"SurvScope Serif";src:url(/survscope/fonts/LiberationSerif-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:block}@font-face{font-family:"SurvScope Serif";src:url(/survscope/fonts/LiberationSerif-Bold.ttf) format("truetype");font-style:normal;font-weight:700;font-display:block}@font-face{font-family:"SurvScope Serif";src:url(/survscope/fonts/LiberationSerif-Italic.ttf) format("truetype");font-style:italic;font-weight:400;font-display:block}@font-face{font-family:"SurvScope Serif";src:url(/survscope/fonts/LiberationSerif-BoldItalic.ttf) format("truetype");font-style:italic;font-weight:700;font-display:block}@font-face{font-family:SurvScope Mono;src:url(/survscope/fonts/LiberationMono-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:block}@font-face{font-family:SurvScope Mono;src:url(/survscope/fonts/LiberationMono-Bold.ttf) format("truetype");font-style:normal;font-weight:700;font-display:block}@font-face{font-family:SurvScope Mono;src:url(/survscope/fonts/LiberationMono-Italic.ttf) format("truetype");font-style:italic;font-weight:400;font-display:block}@font-face{font-family:SurvScope Mono;src:url(/survscope/fonts/LiberationMono-BoldItalic.ttf) format("truetype");font-style:italic;font-weight:700;font-display:block}:root{color:#18201f;background:#f3f1ea;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-synthesis:none;--ink: #18201f;--muted: #66706e;--paper: #fffefb;--line: #d7d5cd;--teal: #147d77;--teal-dark: #0d5f5b;--coral: #d9684c;--blue: #2f6fb0;--red: #c43c39}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 82% 5%,rgb(20 125 119 / 11%),transparent 26rem),linear-gradient(180deg,#f7f6f1 0,#f1efe7 65rem)}button,input,select{font:inherit}button,select{cursor:pointer}.app-shell{min-height:100vh}.masthead{display:flex;align-items:center;justify-content:space-between;width:min(1280px,calc(100% - 40px));margin:0 auto;padding:12px 0;border-bottom:1px solid rgb(24 32 31 / 14%)}.brand{color:var(--ink);font-size:20px;font-weight:700;text-decoration:none}.data-version{color:var(--muted);font-size:12px}main{width:min(1280px,calc(100% - 40px));margin:0 auto}.workspace{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(520px,1.5fr);overflow:visible;margin-top:20px;background:var(--paper);border:1px solid var(--line);box-shadow:0 28px 70px #2d322c1a}.controls{position:relative;z-index:3;padding:34px;border-right:1px solid var(--line)}.control-heading,.result-heading>div:first-child{display:flex;gap:14px;align-items:flex-start}.control-heading>span,.result-heading>div:first-child>span{color:var(--coral);font-size:14px;font-style:italic}h2{margin:0;font-size:24px;font-weight:500}.control-heading p,.result-heading p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.controls>label,.controls fieldset{display:block;margin-top:28px}.controls label>span:first-child,.controls legend{display:block;margin-bottom:8px;color:#46504e;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.controls select,.controls input[type=text],.controls input:not([type]){width:100%}.controls select,.gene-control>input,.cutoff-input{width:100%;height:46px;padding:0 13px;color:var(--ink);background:#faf9f5;border:1px solid #c9c8c1;border-radius:4px;outline:none}.controls select:focus,.gene-control>input:focus,.cutoff-input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #147d771f}.gene-control{position:relative}.suggestions{position:absolute;z-index:8;top:calc(100% + 5px);right:0;left:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:5px;box-shadow:0 16px 35px #1a222129}.suggestions button{display:flex;align-items:baseline;justify-content:space-between;width:100%;padding:10px 12px;text-align:left;background:#fff;border:0;border-bottom:1px solid #eee}.suggestions button:hover{background:#eff7f5}.suggestions small{color:var(--muted)}.controls fieldset{padding:0;border:0}.radio{display:flex!important;gap:10px;align-items:flex-start;margin:11px 0 0!important;padding:12px;border:1px solid var(--line);border-radius:4px}.radio:has(input:checked){background:#eef7f5;border-color:var(--teal)}.radio input{margin-top:3px;accent-color:var(--teal)}.radio span{margin:0!important;text-transform:none!important}.radio strong,.radio small{display:block}.radio small{margin-top:3px;color:var(--muted);font-weight:400;letter-spacing:0}.cutoff-input{margin-top:10px}.primary-button{width:100%;margin-top:28px;padding:14px 16px;color:#fff;background:var(--teal);border:0;border-radius:4px;font-weight:800;box-shadow:0 8px 20px #147d7733}.primary-button:hover:not(:disabled){background:var(--teal-dark)}button:disabled{cursor:wait;opacity:.52}.status{min-height:34px;margin:13px 0 0;color:#a54d38;font-size:12px;line-height:1.4}.result{min-width:0;padding:34px}.result-heading{display:flex;gap:20px;align-items:flex-start;justify-content:space-between}.export-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.export-buttons button{padding:7px 9px;color:var(--teal-dark);background:transparent;border:1px solid #a8c9c5;border-radius:3px;font-size:10px;font-weight:800}.export-buttons button:hover:not(:disabled){color:#fff;background:var(--teal)}.plot-stage{display:grid;place-items:center;min-height:0;margin-top:10px;overflow:auto;background:linear-gradient(90deg,rgb(30 48 45 / 3%) 1px,transparent 1px),linear-gradient(rgb(30 48 45 / 3%) 1px,transparent 1px),#ebeae4;background-size:18px 18px;border:1px solid #deddd7}.survival-plot{display:block;width:auto;max-width:100%;height:100%;max-height:680px;aspect-ratio:1;background:transparent;filter:drop-shadow(0 13px 16px rgb(26 34 33 / 14%))}.plot-placeholder{display:grid;place-items:center;color:var(--muted)}.plot-placeholder span{font-size:80px;opacity:.16}.quality-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.quality-strip article{min-width:0;padding:8px 9px;background:#f7f6f1;border:1px solid var(--line)}.quality-strip article>div{display:flex;gap:6px;align-items:center;justify-content:space-between}.quality-strip article>div span{padding:3px 5px;color:var(--teal-dark);background:#dcefeb;border-radius:99px;font-size:8px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.quality-strip article[data-quality=caution]>div span{color:#855b13;background:#f4e6bd}.quality-strip article[data-quality=not_recommended]>div span,.quality-strip article[data-quality=unavailable]>div span{color:#8e4333;background:#f3d9d2}.quality-strip p,.quality-strip small{display:block;color:var(--muted);font-size:9px;line-height:1.35}.quality-strip p{margin:5px 0 0}.quality-strip small{margin-top:3px}footer{display:flex;justify-content:space-between;width:min(1280px,calc(100% - 40px));margin:20px auto 0;padding:16px 0 24px;color:var(--muted);border-top:1px solid rgb(24 32 31 / 14%);font-size:12px}footer p{margin:0}footer a{color:var(--teal-dark);font-weight:700}@media(min-width:981px){body{overflow:hidden}.app-shell{display:grid;grid-template-rows:48px minmax(0,1fr) 45px;height:100dvh;min-height:680px}main{min-height:0}.workspace{height:calc(100% - 24px);margin-top:12px}.controls,.result{min-height:0;padding:20px}.controls{overflow-y:auto}.controls>label,.controls fieldset{margin-top:16px}.controls select,.gene-control>input,.cutoff-input{height:40px}.controls fieldset{display:grid;grid-template-columns:1fr 1fr;gap:8px}.controls legend{margin-bottom:0}.radio{margin-top:0!important;padding:9px}.primary-button{margin-top:16px;padding:11px 14px}.status{min-height:20px;margin-top:8px}.result{display:flex;flex-direction:column}.plot-stage{flex:1}footer{align-items:center;margin-top:0;padding:10px 0}}@media(max-width:980px){.workspace{grid-template-columns:1fr}.controls{border-right:0;border-bottom:1px solid var(--line)}.quality-strip{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.masthead,main,footer{width:min(100% - 24px,1280px)}.controls,.result{padding:22px}.result-heading{display:block}.export-buttons{justify-content:flex-start;margin-top:16px}.plot-stage{min-height:360px}footer{display:block}footer a{display:inline-block;margin-top:10px}}.header-actions,.figure-toolbar,.zoom-toolbar,.button-row,.order-row{display:flex;align-items:center;gap:8px}.header-actions{gap:14px}.header-actions button,.figure-toolbar button,.zoom-toolbar button,.editor-controls button{border:1px solid #bfc8c1;border-radius:4px;background:#fffefb;color:#31534d;padding:7px 10px;font-size:11px;font-weight:600}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--teal);outline-offset:3px}button:disabled{cursor:default}.header-actions button:hover,.figure-toolbar button:hover:not(:disabled),.zoom-toolbar button:hover:not(:disabled),.editor-controls button:hover:not(:disabled){background:#eaf4f1}.file-input{display:none}.controls .comparison-control{display:block;margin:16px 0 0}.controls .comparison-control>label{display:block}.controls input[type=number],.editor-controls input:not([type=checkbox]):not([type=color]),.editor-controls select,.editor-controls textarea{width:100%;padding:8px 10px;min-height:34px;border:1px solid #c9c8c1;border-radius:4px;background:#faf9f5;color:var(--ink);font:inherit}.controls input[type=number]{font-size:13px}.help-text{font-size:11px;color:var(--muted);line-height:1.5;margin:8px 0}.text-button{border:0;background:transparent;color:var(--teal-dark);padding:0;font-size:inherit;text-decoration:underline}.field-error{display:block;color:#a04432;font-size:11px;line-height:1.4;margin:4px 0}.group-preview{margin-top:12px;padding:9px 11px;background:#f2f5ef;border:1px solid #dce0d5;border-radius:4px;font-size:10px}.group-preview>div{display:flex;justify-content:space-between;gap:8px;padding-bottom:5px;color:#43544b}.group-preview p{display:grid;grid-template-columns:34px 1fr auto;gap:6px;margin:4px 0}.group-preview p>span:nth-child(2){text-align:right}.group-preview small{color:var(--muted)}.figure-toolbar{flex-wrap:wrap;margin-top:10px}.figure-toolbar .edit-button{border-color:var(--teal);color:var(--teal-dark)}.global-status{flex-shrink:0;margin:8px 0 0;padding:8px 10px;color:#7b5122;background:#fcf0d8;border-radius:4px;font-size:12px;line-height:1.4}.plot-stage{position:relative;padding:0;display:flex;min-height:0;align-items:center;justify-content:center}.figure-canvas{flex:none;position:relative}.plot-stage.fitted .figure-canvas{width:auto;height:100%;max-width:100%;max-height:100%}.figure-canvas .survival-plot{width:100%;height:100%;max-width:none;max-height:none}.plot-stage.zoomed{display:block}.plot-stage.zoomed .figure-canvas{margin:24px}.plot-stage.panning{cursor:grab;touch-action:none}.zoom-toolbar{margin-top:10px;flex-wrap:wrap;color:#4d5a55;font-size:11px}.zoom-toolbar button[aria-pressed=true]{color:#fff;background:var(--teal)}.zoom-toolbar small{margin-left:auto;max-width:190px;line-height:1.4}.editor-controls{min-height:0;padding:20px;overflow-y:auto;border-right:1px solid var(--line);background:var(--paper);font-size:12px}.editor-intro h2{font-size:22px}.editor-intro p{color:var(--muted);line-height:1.5;font-size:12px}.editor-controls label{display:block;margin:8px 0}.editor-controls label>span:first-child{display:block;margin-bottom:5px;color:#42534b;font-size:11px;font-weight:600}.editor-controls details{border-top:1px solid var(--line);padding:12px 0 4px;margin-top:12px}.editor-controls summary{cursor:pointer;color:#283f37;font-size:12px;font-weight:700;margin-bottom:8px}.editor-controls textarea{resize:vertical;min-height:60px}.editor-controls .selected-properties{background:#edf5ef;margin:14px -8px 0;padding:12px 8px;border:1px solid #cbdace;border-radius:5px}.property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.property-grid>label{min-width:0}.editor-controls .check{display:flex;gap:8px;align-items:center}.editor-controls .check span{margin:0;font-weight:400}.editor-controls input[type=checkbox]{accent-color:var(--teal)}.editor-controls .color-field{display:flex;align-items:center;justify-content:space-between;gap:6px}.color-field input{padding:0;height:28px;width:36px;background:transparent;border:0}.button-row{flex-wrap:wrap;margin-top:8px}.order-row{justify-content:space-between;margin:6px 0}.is-editing .workspace{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.is-editing .result{padding:18px}.is-editing .result-heading h2{font-size:22px}.is-editing .result-heading p{display:none}.help-dialog{max-width:720px;max-height:85dvh;width:calc(100% - 36px);overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:32px;background:var(--paper);color:var(--ink);box-shadow:0 30px 100px #0004}.help-dialog::backdrop{background:#18352b80;backdrop-filter:blur(2px)}.help-dialog h2{margin-right:24px}.help-dialog h3{margin-top:26px;font-size:16px}.help-dialog p,.help-dialog li,.help-dialog dd{font-size:14px;line-height:1.7;color:#4d5a55}.help-dialog dt{font-size:13px;font-weight:700;margin-top:10px}.help-dialog dd{margin:0}.help-dialog a{color:var(--teal-dark)}.dialog-close{position:absolute;right:16px;top:12px;background:none;border:0;color:var(--muted);font-size:28px}@media(max-width:980px){.header-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}.header-actions .data-version{display:none}.header-actions button{font-size:10px;padding:6px}.controls{padding:24px}.controls>label{margin-top:18px}.controls .primary-button{margin-top:16px}.group-preview{font-size:11px}.plot-stage.fitted .figure-canvas{width:100%;height:auto}.plot-stage.fitted{min-height:0}.is-editing .workspace{display:flex;flex-direction:column}.is-editing .result{order:0}.is-editing .editor-controls{order:1;max-height:65dvh;border-right:0;border-top:1px solid var(--line)}.is-editing .plot-stage{max-height:65dvh}.is-editing .plot-stage.zoomed{height:55dvh}.zoom-toolbar small{display:none}.help-dialog{padding:24px}}.pending-status{margin:0;padding:7px 12px;background:#fff6d7;color:#73561c;font-size:12px}
