
:root{color-scheme:light;--bg:#f4f6f8;--paper:#fff;--ink:#263140;--muted:#626e7c;--line:#e3e8ee;--blue:#2563eb;--soft-blue:#edf4ff;--radius:10px;--red:#b23232;--gold:#875c08;--silver:#38628b;--bronze:#935329;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:12px;line-height:1.45}button,input,select{font:inherit;min-width:0}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--blue);text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:19px;line-height:1.3;letter-spacing:-.5px}h2{font-size:13px;font-weight:700}h3{font-size:12px}strong,b{font-weight:700}small{font-size:11px}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #6398ef;outline-offset:2px}input,select{min-height:31px;padding:5px 7px;border:1px solid #cfd7e1;border-radius:6px;background:#fff;color:var(--ink);font-size:12px}input[type=number]{width:100%;font-variant-numeric:tabular-nums}input:disabled,select:disabled{background:#f2f4f6;color:#697584}select{cursor:pointer}.button{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;padding:6px 9px;border:1px solid transparent;border-radius:6px;font-weight:650;font-size:12px;line-height:1.35;min-height:31px}.button.primary{color:#fff;background:var(--blue)}.button.primary:hover:not(:disabled){background:#1c50bd}.button.secondary{color:#3b495c;background:#fff;border-color:#d7dfe8}.button.secondary:hover{background:#f2f5f9}.button.quiet{background:transparent;color:#556374}.button.quiet:hover{background:#eaf0f6}.button.danger{background:#fff1f1;color:var(--red);border-color:#edcece}.button.small{padding:5px 8px;min-height:29px;font-size:11px}.button.full{width:100%}.button.disabled{opacity:.5;pointer-events:none}.micro,.subtle{font-size:11px;color:var(--muted);line-height:1.5}.subtle{margin-top:2px}.badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:5px;background:var(--soft-blue);color:#305fa7;font-size:11px;font-weight:650;line-height:1.35;white-space:nowrap}.badge.neutral{background:#f0f3f6;color:#596575}
.appbar{height:46px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);padding:0 max(12px,calc((100vw - 1540px)/2));gap:8px}.brand{display:flex;align-items:center;gap:9px;min-width:0;white-space:nowrap}.brand img{object-fit:contain;max-height:29px;width:auto;max-width:90px}.brand-text{font-size:19px;letter-spacing:-.6px;font-weight:750}.brand-text b{color:var(--blue)}.brand-sub{font-size:11px;color:#596675;border-left:1px solid var(--line);padding-left:9px}.header-actions{display:flex;align-items:center;gap:3px}.connection{font-size:11px;margin-right:6px;color:#166f51}.connection.offline{color:#af3434}.shell{max-width:1564px;margin:0 auto;padding:12px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.source-badge{font-size:11px;color:#5e6d80;text-align:right}.workspace{display:grid;grid-template-columns:268px minmax(0,1fr);gap:10px;align-items:start}.sidebar{display:grid;gap:8px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:13px;font-weight:700;padding:9px 10px;list-style:none;cursor:pointer}.panel-heading::-webkit-details-marker{display:none}.panel-heading:after{content:'⌄';font-size:14px;color:#6b7787;margin-left:2px;font-weight:400}details[open]>.panel-heading:after{transform:rotate(180deg)}.panel-heading>span:first-child{margin-right:auto}.settings-body{padding:0 10px 2px}.settings-body fieldset{border:0;padding:0;margin:0 0 7px}.settings-body legend,.field-label{display:block;font-size:11px;font-weight:650;color:#4c596a;margin-bottom:4px}.segmented{display:flex;gap:3px;border-radius:7px;background:#eef1f5;padding:3px}.segmented label{flex:1;position:relative;cursor:pointer}.segmented input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}.segmented span{display:flex;align-items:center;justify-content:center;gap:4px;min-height:29px;padding:4px;border-radius:5px;color:#626f80;font-size:12px;font-weight:650}.segmented input:checked+span{color:#214d96;background:#fff;box-shadow:0 1px 3px #20334814}.segmented input:focus-visible+span{outline:3px solid #6398ef;outline-offset:1px}.segmented input:disabled+span{opacity:.6}.field{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:7px}.field>label{font-size:11px;font-weight:600;white-space:nowrap}.field select{max-width:165px;font-size:11px}.unit-input{position:relative;width:116px}.unit-input input{padding-right:24px;font-weight:700}.unit-input>span{position:absolute;right:8px;top:7px;font-size:11px;color:#647286;pointer-events:none}.single-round{display:flex;gap:4px;align-items:center}.single-round .unit-input{flex:1}.single-round .button{padding:5px 8px;min-width:31px}.single-round #latestRound{font-size:11px}.range-inputs{display:flex;gap:6px;align-items:end;margin-top:6px}.range-inputs label{flex:1;min-width:0;font-size:11px;color:#5f6e7e}.range-inputs input{margin-top:3px}.range-inputs>span{padding-bottom:6px}.setting-hint{margin:5px 0 8px}.formula-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:9px 0 3px;padding-top:8px;border-top:1px solid var(--line)}.formula-heading h2{font-size:12px}.tiny-actions{display:flex;align-items:center;gap:3px}.tiny-actions button{font-size:11px;border:0;min-height:26px;padding:3px 5px;background:transparent;color:#526782;border-radius:4px}.tiny-actions button:hover{color:var(--blue);background:#f0f5fb}.formula-list{max-height:322px;overflow:auto;scrollbar-width:thin;padding-right:2px}.formula-category{margin:6px 0 2px;font-size:11px;color:#617084;font-weight:650}.formula-row{display:flex;align-items:center;gap:4px;padding:2px;border-radius:5px;min-height:28px}.formula-row:hover{background:#f3f6fa}.formula-row label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;flex:1;min-width:0;min-height:24px}.formula-row input[type=checkbox]{margin:0;accent-color:var(--blue);width:15px;height:15px;min-height:0;flex:none;cursor:pointer}.formula-name{line-height:1.35;min-width:0;overflow-wrap:anywhere}.formula-help{background:transparent;border:0;font-size:12px;color:#67798f;border-radius:5px;width:26px;height:26px;padding:0;flex:none}.formula-help:hover{background:#e7effc;color:var(--blue)}.catalog-button{font-size:11px;border:0;background:transparent;color:#2b5d9e;padding:5px 0;margin-top:3px;min-height:28px;text-align:left}.baseline-note{background:#f3f6fa;border-radius:6px;padding:6px 7px;margin-top:3px;font-size:11px;color:#586e89}.run-actions{padding:8px 10px 10px;display:grid;grid-template-columns:1.25fr 1fr;gap:6px}.run-actions .button{font-size:12px;min-height:34px}.run-actions .micro{grid-column:1/-1}.data-body{padding:0 10px 10px}.data-body>p:first-child{font-size:12px;font-weight:650}#historySource{margin:4px 0 7px;overflow-wrap:anywhere}.data-actions{display:flex;gap:5px;margin-bottom:6px}.data-actions button{flex:1;font-size:11px;padding:5px}.text-link{font-size:11px}.data-body hr{border:0;border-top:1px solid var(--line);margin:8px 0}.data-path{display:block;overflow-wrap:anywhere;font-size:11px;margin:3px 0 5px;color:#596b82}.data-body .full{margin-top:7px}.research-warning{color:#68788d;font-size:11px;padding:0 3px}
.results{min-width:0;display:grid;gap:8px}.run-panel{padding:9px 11px;border-color:#d7e3f3}.run-top,.run-label,.run-count-row{display:flex;align-items:center;justify-content:space-between;gap:7px}.run-label{justify-content:flex-start;flex-wrap:wrap}.run-label h2{font-size:13px}.run-dot{width:7px;height:7px;background:#8a98aa;border-radius:50%;flex:none}.run-dot.active{background:#286bed;box-shadow:0 0 0 3px #e7effd}.run-dot.stopping{background:#ba761b}.run-dot.error{background:#c04040}.run-count-row{margin-top:6px;align-items:baseline}#runCount{font-variant-numeric:tabular-nums;white-space:nowrap}#runCount strong{font-size:23px;letter-spacing:-.5px;line-height:1.2}#runCount>span{color:#627287;font-size:12px;margin-left:3px}progress{width:100%;height:4px;border:0;border-radius:7px;overflow:hidden;display:block;margin-top:6px;background:#e9eef5;accent-color:var(--blue)}progress::-webkit-progress-bar{background:#e9eef5;border-radius:7px}progress::-webkit-progress-value{background:var(--blue);border-radius:7px}progress::-moz-progress-bar{background:var(--blue);border-radius:7px}.run-message{margin-top:5px}.live-draw-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 10px 7px}.live-draw-line>span:first-child{font-size:11px;font-weight:650}.live-draw-line #livePhase{margin-left:auto}.live-scroll{max-height:255px}.live-table{min-width:550px}.live-table td{height:34px}.live-status{font-size:11px;color:#66778d}.live-status.generating{color:#225cb1;font-weight:650}.live-status.saved{color:#1b7458}.live-status.unavailable{color:#9d6a17}.live-name{display:block;max-width:220px}.waiting-numbers{color:#617184;font-size:11px}.experiment-bar{display:flex;align-items:center;gap:7px;min-width:0}.experiment-bar>label{font-size:12px;font-weight:700;white-space:nowrap}.experiment-bar>select{flex:1;width:0;font-size:11px;min-height:30px;padding:4px 6px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.metric{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;min-width:0}.metric>p{font-size:11px;color:#546274}.metric>strong{display:block;margin:2px 0;font-size:21px;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.metric>strong span{font-size:11px;font-weight:500;color:#657489;margin-left:4px}.metric small{display:block;color:#67758a;font-size:11px;line-height:1.4}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:9px 10px 7px}.section-heading p{margin-top:2px}.table-filters{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:0 10px 7px}.table-filters input,.table-filters select{font-size:11px;min-height:29px;padding:4px 6px}.rank-filters input{width:160px}.rank-filters select{max-width:180px}.record-filters #recordMethod{width:167px}.record-filters #recordRound{width:88px}.record-filters select{max-width:180px}.table-scroll{overflow:auto;scrollbar-width:thin;min-width:0;max-width:100%;overscroll-behavior:contain}.ranking-scroll{max-height:370px}.records-scroll{max-height:345px}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font-weight:600;color:#536479;font-size:11px;background:#f5f7fa;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px 8px;white-space:nowrap;position:sticky;top:0;z-index:1}td{padding:6px 8px;border-bottom:1px solid #edf0f4;vertical-align:middle;background:#fff}tbody tr:last-child>td{border-bottom:0}.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ranking-table{min-width:655px}.ranking-table th:first-child{min-width:170px}.ranking-table th:nth-child(6){min-width:151px}.method-cell{display:flex;align-items:center;gap:7px}.rank-number{display:inline-flex;align-items:center;justify-content:center;min-width:21px;font-size:12px;font-weight:750;color:#68788d;flex:none}.rank-number.rank-1{color:var(--gold)}.rank-number.rank-2{color:var(--silver)}.rank-number.rank-3{color:var(--bronze)}.method-name{font-weight:650;font-size:12px;line-height:1.4}.method-meta{font-size:11px;color:#66778d;margin-top:1px}.baseline-row .method-name{font-weight:600;color:#5c6d82}.baseline-row td{border-top:2px solid #e0e7f1}.delta-positive{color:#166b52}.delta-negative{color:#9f4949}.prize-counts{display:grid;grid-template-columns:repeat(5,minmax(24px,1fr));gap:3px;text-align:center;min-width:142px;font-variant-numeric:tabular-nums}.prize-count{font-size:12px;line-height:1.25;font-weight:650}.prize-count small{display:block;font-size:11px;font-weight:400;color:#67788b;margin-bottom:2px}.prize-count:not(.has-prize){color:#68798d}.prize-count.has-prize.p1{color:var(--gold)}.prize-count.has-prize.p2{color:var(--silver)}.prize-count.has-prize.p3{color:var(--bronze)}.prize-count.has-prize.p4{color:#326a82}.prize-count.has-prize.p5{color:#477658}.detail-button{background:transparent;border:1px solid #dce3ec;border-radius:5px;font-size:16px;color:#526981;min-width:28px;min-height:28px;padding:0 5px}.detail-row>td{padding:9px 10px;background:#f9fbfd}.detail-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;font-size:11px}.detail-grid h3{font-size:12px;margin-bottom:5px}.detail-grid p{font-size:11px;color:#5f7085;margin:4px 0}.mini-hist{display:flex;gap:5px;align-items:end;height:80px;max-width:290px}.hist-column{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:20px}.hist-count,.hist-label{font-size:11px;color:#55677e}.hist-bar{width:70%;min-height:2px;background:#9cb9e8;border-radius:3px 3px 0 0}.detail-actions .button{margin-top:4px}.table-note{padding:7px 10px;border-top:1px solid var(--line);font-size:11px;color:#66768b;line-height:1.45}.live-badge{display:inline-flex;margin-left:5px;background:#edf5ff;color:#2f639d;font-size:11px;vertical-align:middle;padding:2px 5px;border-radius:4px;font-weight:600}.live-badge.paused{background:#f3f0e8;color:#886122}.records-table{min-width:750px}.records-table th:nth-child(4){min-width:145px}.records-table th:nth-child(5){min-width:177px}.record-id,.record-round{font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.record-time,.record-cutoff,.record-version,.result-small{font-size:11px;color:#6a778a;white-space:nowrap;margin-top:2px}.record-name{display:block;font-size:12px;font-weight:600;max-width:174px;line-height:1.35}.balls{display:flex;align-items:center;gap:3px;white-space:nowrap;min-width:max-content}.ball{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:650;background:#f0f3f7;color:#4e6078;font-variant-numeric:tabular-nums;border:1px solid #dde4ed}.ball.matched{background:#e7f0ff;color:#174ba1;border-color:#98b6e6;text-decoration:underline;text-underline-offset:2px}.ball.bonus{background:#fff8e7;border-color:#dac58b;color:#805f11}.ball.bonus-matched{outline:1px solid #99701b;outline-offset:1px;text-decoration:underline}.ball-plus{font-size:11px;color:#728199;margin:0 1px}.result-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-size:11px;font-weight:650;padding:3px 6px;background:#f1f4f7;border-radius:5px;color:#586b82}.result-badge.grade-1{background:#fff5d9;color:#805808}.result-badge.grade-2{background:#edf3fb;color:#365c89}.result-badge.grade-3{background:#fbefe6;color:#89502d}.result-badge.grade-4{background:#edf6fa;color:#306882}.result-badge.grade-5{background:#eef7f0;color:#376d47}.record-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-top:1px solid var(--line)}.record-footer>div{display:flex;align-items:center;gap:3px;flex:none}.runs-list{padding:0 10px 8px}.run-history-item{display:flex;align-items:center;gap:9px;padding:6px 0;border-top:1px solid var(--line);font-size:11px;color:#596c83;flex-wrap:wrap}.run-history-item>span:nth-child(2){margin-left:auto}.run-history-error{width:100%;color:var(--red)}.page-footer{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:11px;color:#66778d;padding:0 2px}.empty{text-align:center;color:#697c94;padding:25px 12px;font-size:12px}.small-empty{padding:18px 12px}.empty strong{display:block;margin-bottom:4px}.notice{padding:8px 10px;background:#fff0f0;color:#a23030;border:1px solid #eccbcb;border-radius:7px;margin-bottom:8px;font-size:12px;overflow-wrap:anywhere}.notice.info{background:#edf5ff;color:#28558d;border-color:#d0e0f3}
.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid var(--line)}.dialog-heading h2{font-size:16px}dialog{border:1px solid #d6dfea;border-radius:12px;padding:0;max-width:670px;width:calc(100% - 24px);max-height:85vh;color:var(--ink);background:#fff;box-shadow:0 15px 60px #17243b40}dialog::backdrop{background:#14233e55}.dialog-body{padding:12px 14px;font-size:12px;overflow-wrap:anywhere}.dialog-body h3{font-size:13px;margin:12px 0 4px}.dialog-body h3:first-child{margin-top:0}.dialog-body p{margin:5px 0;color:#4f627b;font-size:12px;line-height:1.65}.dialog-body details{margin-top:8px}.dialog-body summary{font-size:12px;cursor:pointer;padding:5px 0;color:#275eac}.catalog-totals{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.catalog-table{font-size:12px;min-width:0}.catalog-table td,.catalog-table th{white-space:normal;padding:6px}.catalog-table td:first-child{min-width:155px}.catalog-disabled{color:#66768b}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip:focus{position:fixed;top:4px;left:4px;z-index:20;padding:8px;background:#fff;border:2px solid var(--blue);font-size:12px}
@media(min-width:1500px){.workspace{grid-template-columns:280px minmax(0,1fr)}.formula-list{max-height:366px}}
@media(max-width:1080px){.workspace{grid-template-columns:252px minmax(0,1fr);gap:8px}.shell{padding:9px}.metric{padding:7px}.metric>strong{font-size:19px}.source-badge{max-width:230px}.detail-grid{grid-template-columns:1fr 1fr}.detail-actions{grid-column:1/-1}.record-footer{align-items:flex-start;flex-direction:column;gap:4px}.run-top{flex-wrap:wrap}}
@media(max-width:820px){.workspace{grid-template-columns:minmax(0,1fr)}.sidebar{gap:7px}.control-panel .run-actions{padding-top:6px}.formula-list{max-height:255px}.data-panel{display:block}.research-warning{display:none}.shell{padding:8px}.appbar{padding:0 8px}.brand-sub{display:none}.results{gap:7px}.page-heading{align-items:flex-start;margin-bottom:8px}.source-badge{font-size:11px;max-width:190px}.detail-grid{grid-template-columns:1fr 1fr}.metrics{gap:5px}.metric small{line-height:1.4}.live-scroll{max-height:230px}.ranking-scroll{max-height:335px}.run-actions{grid-template-columns:1fr 1fr}.data-actions button{flex:0 1 auto}.data-panel .full{max-width:300px}.header-actions .connection{display:none}}
@media(max-width:500px){body{font-size:12px}.brand{gap:6px}.brand img{max-width:64px;max-height:25px}.brand-text{font-size:17px}.header-actions .button{font-size:11px;padding:5px 7px}.page-heading{flex-wrap:wrap;gap:4px}h1{font-size:18px}.source-badge{max-width:none;text-align:left}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric>strong{font-size:20px}.metric{padding:7px 9px}.section-heading{align-items:flex-start}.section-heading .badge{max-width:none;white-space:nowrap;flex:none}.table-filters{gap:5px}.rank-filters input{width:100%;flex:1 0 100%}.rank-filters select{flex:1;min-width:110px}.record-filters #recordMethod{width:calc(100% - 100px);flex:1 1 170px}.record-filters #recordRound{width:90px}.record-filters #recordPrize,.record-filters #recordMatches{flex:1 1 40%;max-width:none}.record-filters #recordSort{flex:1 1 160px;min-width:150px;max-width:none}.experiment-bar{flex-wrap:wrap;gap:5px}.experiment-bar>select{min-width:165px}.experiment-bar>a{margin-left:auto}.run-count-row{align-items:flex-start;flex-wrap:wrap}.run-top{gap:5px}.live-draw-line{gap:5px}.live-draw-line #livePhase{width:100%;margin-left:0}.detail-grid{grid-template-columns:1fr}.detail-actions{grid-column:auto}.record-footer>div{width:100%;justify-content:flex-end}.page-footer{font-size:11px}.data-actions .button{min-height:34px}.single-round button,.run-actions .button{min-height:36px}.catalog-table td:first-child{min-width:0}.catalog-table{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* v1.2: the working area is for live numbers; control and comparison stay left. */
.workspace{grid-template-columns:400px minmax(0,1fr);gap:8px}
.sidebar{position:sticky;top:8px;max-height:calc(100dvh - 16px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-gutter:stable;align-content:start;gap:7px;padding:0 3px 3px 0}
.sidebar-comparison{display:grid;gap:6px;min-width:0}
.results{align-content:start;gap:7px}
.sidebar .run-panel{position:sticky;top:0;z-index:4;padding:8px 9px;box-shadow:0 2px 5px #24324512}
.sidebar .run-top{flex-wrap:wrap;gap:3px}
.sidebar .run-top #runRate{width:100%}
.sidebar .run-count-row{flex-wrap:wrap;gap:2px;margin-top:4px}
.sidebar #runCount strong{font-size:21px}
.sidebar #currentRound{width:100%}
.sidebar .run-actions{padding:7px 0 0;gap:5px}
.sidebar .run-message{display:none}
.sidebar .run-message.has-error{display:block;color:var(--red);overflow-wrap:anywhere}
.current-formula{margin-top:7px;padding:7px 8px;border:1px solid #dae4f4;background:#f7faff;border-radius:7px;overflow-wrap:anywhere}
.current-formula-top{display:flex;justify-content:space-between;gap:5px}
.current-formula-name{font-size:14px;font-weight:750;margin:3px 0;line-height:1.4;color:#244874}
.current-formula[data-state="generating"] .current-formula-name:before,
.current-formula[data-state="preparing"] .current-formula-name:before{content:"";display:inline-block;width:11px;height:11px;margin-right:6px;border:2px solid #bdcceb;border-top-color:#255ba5;border-radius:50%;animation:lab-spin 1s linear infinite}
.current-formula[data-state="stopping"],.current-formula[data-state="offline"]{background:#fff8eb;border-color:#e8d4ad}
@keyframes lab-spin{to{transform:rotate(360deg)}}
.formula-picker{margin:7px 0 2px;border-top:1px solid var(--line)}
.formula-picker>summary{padding:7px 1px 5px;font-size:12px;font-weight:650;cursor:pointer}
.formula-picker>summary span{font-size:11px;font-weight:400;color:var(--muted);margin-left:6px}
.formula-picker .formula-heading{padding-top:0;margin-top:3px;border:0}
.formula-picker .formula-list{max-height:230px}
.sidebar .experiment-bar{flex-wrap:wrap;gap:4px}
.sidebar .experiment-bar>label{width:100%;font-size:12px}
.sidebar .experiment-bar>select{min-width:0;flex:1}
.sidebar .experiment-bar>a{padding:5px 6px}
.sidebar .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.sidebar .metric{padding:6px 8px}
.sidebar .metric>strong{font-size:20px;margin:2px 0}
.sidebar .metric small{font-size:11px;line-height:1.35}
.sidebar .section-heading{padding:8px 8px 6px}
.sidebar .section-heading .badge{flex:none}
.sidebar .rank-filters{padding:0 8px 6px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:4px}
.sidebar .rank-filters input{width:100%;grid-column:1/-1}
.sidebar .rank-filters select{max-width:none;width:100%;min-width:0;font-size:11px}
.sidebar .rank-filters .button{padding:4px 6px}
.sidebar .ranking-scroll{max-height:410px}
.sidebar .ranking-table{min-width:0;table-layout:fixed}
.sidebar .ranking-table th{padding:5px 4px;white-space:normal}
.sidebar .ranking-table td{padding:6px 4px}
.sidebar .ranking-table th:first-child{min-width:0;width:42%}
.sidebar .ranking-table th:nth-child(2){width:15%}
.sidebar .ranking-table th:nth-child(3){width:35%}
.sidebar .ranking-table th:nth-child(4){width:8%}
.sidebar .method-cell{gap:3px;align-items:flex-start}
.sidebar .rank-number{min-width:15px;font-size:11px;padding-top:1px}
.sidebar .method-cell>div{min-width:0}
.sidebar .method-name{font-size:12px;overflow-wrap:anywhere;line-height:1.3}
.sidebar .method-meta{font-size:11px;white-space:normal;overflow-wrap:anywhere}
.sidebar .prize-counts{min-width:0;gap:1px;grid-template-columns:repeat(5,minmax(0,1fr))}
.sidebar .prize-count,.sidebar .prize-count small{font-size:11px;overflow-wrap:anywhere}
.sidebar .prize-count small{margin-bottom:2px}
.sidebar .numeric{font-size:11px;white-space:normal;overflow-wrap:anywhere}
.sidebar .detail-button{min-width:25px;min-height:28px;padding:0 3px;font-size:16px}
.sidebar .detail-row>td{padding:8px}
.sidebar .detail-grid{grid-template-columns:1fr;gap:9px}
.sidebar .detail-actions{grid-column:auto}
.sidebar .detail-grid summary{cursor:pointer;min-height:26px;align-content:center}
.detail-metrics{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;padding-bottom:7px;margin-bottom:7px;border-bottom:1px solid var(--line);font-size:11px}
.detail-metrics span{overflow-wrap:anywhere}
.sidebar .table-note{font-size:11px;padding:6px 8px}
.live-panel .panel-heading{padding:9px 10px 6px}
.live-draw-line{gap:8px;padding-bottom:6px}
.live-draw-line #livePhase{font-size:11px}
.live-activity-bar{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 10px;background:#f6f9fd;border-top:1px solid #e8eef7;flex-wrap:wrap}
.live-activity-bar>div{min-width:0;overflow-wrap:anywhere}
#liveActivityName{font-size:12px;margin-left:3px;color:#244874}
#liveActivityStep{margin-left:3px}
.follow-control{display:inline-flex;align-items:center;gap:4px;font-size:11px;cursor:pointer;min-height:26px;white-space:nowrap}
.follow-control input{min-height:0;width:14px;height:14px;margin:0;accent-color:var(--blue)}
.live-scroll{max-height:clamp(260px,50dvh,560px);overflow-anchor:none}
.live-table{min-width:560px}
.live-table th:first-child{width:29%}
.live-table td{height:38px}
.live-name{font-size:12px;font-weight:600;max-width:none;overflow-wrap:anywhere}
.live-table tr[aria-current="step"]>td{background:#eef5ff}
.live-table tr[aria-current="step"]>td:first-child{box-shadow:inset 3px 0 0 #2864c5}
.method-now{display:inline-block;font-size:11px;color:#2055a2;margin-top:2px}
.live-status.generating{font-weight:750}
.attempt-history{border-top:1px solid var(--line)}
.attempt-history>summary{padding:6px 10px;font-size:11px;cursor:pointer;min-height:29px}
.attempt-history>summary span{margin-left:5px}
.attempt-list{max-height:180px;overflow:auto;scrollbar-width:thin;padding:0 10px 7px}
.attempt-item{display:flex;align-items:center;gap:5px 9px;padding:4px 0;border-top:1px solid #edf1f7;font-size:11px;flex-wrap:wrap}
.attempt-item time{color:#586981;font-variant-numeric:tabular-nums}
.attempt-item strong{flex:1;font-size:11px;min-width:130px}
.records-scroll{max-height:clamp(240px,40dvh,520px)}
/* Same five background colors as HA-Lotto-645 lotto-panel-view.js.
   Dark foregrounds on the three lighter bands keep 11px numerals readable. */
.balls{gap:5px;padding:2px 1px}
.ball{width:22px;height:22px;position:relative;border:1px solid transparent;font-size:11px;font-weight:750;line-height:1;background:#fff;color:#526073;border-color:#d7dfe8}
.ball:is(.matched,.bonus-matched,.draw-reference)[data-band="1"]{background:#cd9234;color:#151e2b}
.ball:is(.matched,.bonus-matched,.draw-reference)[data-band="2"]{background:#3e63c5;color:#fff}
.ball:is(.matched,.bonus-matched,.draw-reference)[data-band="3"]{background:#bd4152;color:#fff}
.ball:is(.matched,.bonus-matched,.draw-reference)[data-band="4"]{background:#8c8c8c;color:#151e2b}
.ball:is(.matched,.bonus-matched,.draw-reference)[data-band="5"]{background:#5a9b50;color:#151e2b}
.ball.matched{border-color:transparent;box-shadow:0 0 0 1px #fff,0 0 0 2px #1d2d42;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.ball.bonus{border-color:transparent}
.ball.bonus-matched{outline:1px dashed #1d2d42;outline-offset:1px;text-decoration:underline;text-underline-offset:2px}
.live-draw-line .ball{width:24px;height:24px;font-size:12px}
.live-scroll:focus-visible{outline:2px solid #6398ef;outline-offset:-2px}
@media(min-width:1500px){.workspace{grid-template-columns:410px minmax(0,1fr)}}
@media(max-width:1200px) and (min-width:821px){.workspace{grid-template-columns:360px minmax(0,1fr)}.sidebar{scrollbar-gutter:auto}.sidebar .ranking-table th:first-child{width:40%}.sidebar .ranking-table th:nth-child(3){width:37%}.sidebar .rank-number{min-width:13px}.sidebar .method-name{font-size:11px}}
@media(max-width:820px){.workspace{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;max-height:none;overflow:visible;padding:0;scrollbar-gutter:auto}.sidebar .run-panel{position:static}.sidebar .run-top #runRate{width:auto}.sidebar #currentRound{width:auto}.sidebar .current-formula{padding:6px 8px}.sidebar .ranking-scroll{max-height:230px}.sidebar .metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.sidebar .metric small{display:none}.live-scroll{max-height:340px}.records-scroll{max-height:360px}.live-draw-line #livePhase{width:100%;margin-left:0}}
@media(max-width:500px){.sidebar .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar .metric>strong{font-size:19px}.sidebar .ranking-table th:first-child{width:39%}.sidebar .ranking-table th:nth-child(2){width:16%}.sidebar .ranking-table th:nth-child(3){width:36%}.sidebar .ranking-table th:nth-child(4){width:9%}.sidebar .method-name{font-size:11px}.sidebar .rank-number{min-width:12px}.sidebar .ranking-table td{padding:5px 3px}.sidebar .prize-counts{gap:0}.current-formula-name{font-size:13px}.live-activity-bar{gap:2px}.live-activity-bar>div{width:100%}.live-draw-line{gap:4px}.live-draw-line #liveDrawLabel{width:100%}.records-table{min-width:790px}}
@media(forced-colors:active){.ball[data-band]{background:Canvas;color:CanvasText;border:1px solid CanvasText}.ball.matched{outline:2px solid CanvasText;outline-offset:1px;box-shadow:none}.ball.bonus-matched{outline:2px dashed CanvasText}.live-table tr[aria-current="step"]>td{border-top:2px solid Highlight;border-bottom:2px solid Highlight}}
@media(prefers-reduced-motion:reduce){.current-formula-name:before{animation:none!important}}

/* v1.3: collapse without destroying controls or the active validation. */
.workspace.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}
.sidebar-toggle{flex:none;font-size:11px!important;min-height:30px!important;padding:4px 7px!important}
.collapsed-run{display:flex;gap:6px 10px;align-items:center;flex-wrap:wrap;padding:7px 10px;margin-bottom:8px}
#collapsedActivity{min-width:0;overflow-wrap:anywhere}#collapsedCount{margin-right:auto}
.sort-header{display:flex;align-items:center;gap:3px;justify-content:space-between;width:100%;border:0;background:transparent;color:inherit;text-align:inherit;padding:5px 0;min-height:28px;font-size:11px;font-weight:700;line-height:1.3}
.sort-header:hover{color:#214f99}.sort-arrow{font-size:11px;color:#566c88;flex:none}th[aria-sort]{color:#234f92;background:#edf3fc}
.live-sort-tools{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:2px 10px;border-top:1px solid var(--line)}
.update-panel .field{margin-bottom:6px}.update-panel .data-actions{margin:6px 0 2px}.update-check{display:flex;align-items:center;gap:5px;min-height:27px;font-size:11px;cursor:pointer}
.update-check input{width:14px;height:14px;min-height:0;margin:0;accent-color:var(--blue)}
#engineUpdateStatus{margin:4px 0;overflow-wrap:anywhere}#engineReleaseNotes{white-space:pre-wrap;max-height:180px;overflow:auto;margin-top:5px;overflow-wrap:anywhere}
#engineReleaseDetails{margin-top:5px}#engineReleaseDetails summary{min-height:26px;align-content:center;font-size:11px;cursor:pointer}
@media(max-width:650px){.brand-sub{display:none}.brand img{display:none}.brand-text{font-size:16px}.appbar{height:auto;min-height:46px;flex-wrap:wrap;padding:6px 8px}.brand{gap:6px}.header-actions{margin-left:auto}}
@media(forced-colors:active){.ball[data-band]{background:Canvas!important;color:CanvasText!important;border:1px solid CanvasText}.sort-header{color:ButtonText}th[aria-sort]{outline:1px solid Highlight}}

/* v1.4: small live window; saved evidence and winning records get the space. */
.live-scroll{max-height:clamp(160px,24dvh,210px);overflow-anchor:none}
.live-table td{height:34px;padding-top:4px;padding-bottom:4px}
.live-sort-tools{padding-top:0;padding-bottom:0}
.records-scroll{max-height:clamp(300px,55dvh,680px);overflow-anchor:none}
.records-panel .section-heading{align-items:center;flex-wrap:wrap}
.records-panel .section-heading>div{flex:1;min-width:200px}
.record-footer{flex-wrap:wrap;gap:4px}
#recordLatest.has-new{color:#174e9c;background:#edf4ff}
.research-heading{display:flex;gap:6px 10px;align-items:center;padding:8px 10px 5px;flex-wrap:wrap}
.research-heading>h2{margin-right:auto}.research-brief{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px;padding:0 10px 7px}
.research-brief>div{min-width:0;padding-right:8px;border-right:1px solid var(--line)}
.research-brief>div:last-child{border:0;padding:0}.research-brief strong{display:block;font-size:12px;line-height:1.4;margin:2px 0;overflow-wrap:anywhere}
.research-brief p{overflow-wrap:anywhere;line-height:1.4}
#researchLeader{color:#245395}#researchDetails>summary{font-size:11px;min-height:29px;padding:5px 10px;border-top:1px solid var(--line);cursor:pointer}
#researchDetails>summary span{margin-left:6px}.research-tools{display:flex;gap:8px;align-items:center;padding:0 10px 5px;justify-content:space-between}
.research-scroll{max-height:300px}.research-table{min-width:1060px;table-layout:auto}
.research-table th{padding:3px 6px}.research-table td{padding:5px 6px;vertical-align:top;font-size:11px;font-variant-numeric:tabular-nums}
.research-table th:first-child{min-width:145px;position:sticky;left:0;z-index:4}
.research-table td:first-child{position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:1px 0 0 var(--line)}.research-table td>small{display:block;color:var(--muted);line-height:1.5;white-space:nowrap}
.research-table .research-name{display:block;font-size:12px;font-weight:650;max-width:200px;overflow-wrap:anywhere}
.research-audit{display:grid;gap:3px;padding:6px 10px;border-top:1px solid var(--line)}
#researchSource{overflow-wrap:anywhere}.research-record-link{display:inline-block;min-height:24px;padding:2px 0;border:0;background:transparent;color:#245da8;font-size:11px}
.research-table .best-prize{font-size:11px;font-weight:650}
@media(max-width:820px){.live-scroll{max-height:184px}.records-scroll{max-height:430px}.research-brief{grid-template-columns:1fr 1fr}.research-brief>div:last-child{grid-column:1/-1;padding-top:4px;border-top:1px solid var(--line)}.research-brief>div:nth-child(2){border-right:0}.research-tools{flex-wrap:wrap}}
@media(max-width:400px){.research-heading .micro{width:100%;order:3}.research-brief{gap:5px}#researchDetails>summary span{display:block;margin-left:0}.record-footer>div{display:flex;flex-wrap:wrap;gap:2px}}

/* v1.5: saved results are primary; analysis lives in the collapsible sidebar. */
:root{--font-ui:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;--appbar-height:46px;--surface:var(--paper);font-family:var(--font-ui)}
body,button,input,select,textarea{font-family:var(--font-ui)}
.appbar{position:sticky;top:0;z-index:30;min-height:46px}
.sidebar{top:calc(var(--appbar-height) + 8px);max-height:calc(100dvh - var(--appbar-height) - 16px);scroll-padding-top:270px}
#recordsTitle,#recordsPanel{scroll-margin-top:calc(var(--appbar-height) + 12px)}
.page-heading{margin-bottom:7px}.page-heading h1{font-size:17px}
.records-panel .section-heading h2{font-size:15px;letter-spacing:-.2px}
.records-scroll{max-height:clamp(320px,57dvh,740px)}
.sidebar .research-heading{padding:8px;gap:4px 6px}
.sidebar .research-heading h2{flex:1}
.sidebar #researchStamp{order:4;width:100%;font-size:11px}
.sidebar .research-brief{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0 8px 6px}
.sidebar .research-brief>div{grid-column:auto;padding:5px 0;border:0;border-top:1px solid var(--line)}
.sidebar .research-brief>div:first-child{border:0;padding-top:0}
.sidebar .research-brief strong{font-size:12px;margin:2px 0}
.sidebar #researchDetails>summary{padding:6px 8px}
.sidebar #researchDetails>summary span{display:block;margin:2px 0 0}
.sidebar .research-tools{padding:0 8px 5px;flex-wrap:wrap;gap:4px}
.sidebar .research-scroll{max-height:270px}
.sidebar .research-table th:first-child{min-width:130px;max-width:150px}
.sidebar .research-name{max-width:135px;font-size:11px}
.sidebar .research-audit{padding:6px 8px}
.header-update{font-size:11px;min-height:31px;border:1px solid #d7dfe8;background:#f8fafc;color:#4e5e73;max-width:250px;position:relative}
#headerUpdateText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.update-indicator{display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:17px;width:18px;height:18px;line-height:1}
.header-update[data-state="available"]{background:#edf4ff;border-color:#abc6f1;color:#1d51a1}
.new-version-dot{width:6px;height:6px;border-radius:50%;background:#255cb9;flex:none}
.header-update[data-state="error"],.header-update[data-state="offline"]{color:#875405;background:#fff7e8;border-color:#e5cb9e}
.header-update[data-state="current"] .update-indicator{color:#147052}
:is(.header-update,.update-overview):is([data-state="checking"],[data-state="applying"],[data-state="rollback"]) .update-indicator{border:2px solid #c9d9ef;border-top-color:#235bae;border-radius:50%;font-size:0;width:14px;height:14px;animation:lab-spin .9s linear infinite}
.button,.sort-header,.segmented span,.formula-row,.panel-heading{transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s}
.button:active:not(:disabled),.sort-header:active{transform:translateY(1px)}
.button[data-loading="true"]{cursor:progress}
.button[data-loading="true"]::before{content:"";display:block;flex:none;width:11px;height:11px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:lab-spin .8s linear infinite}
.panel-heading:hover{background:#f6f8fb}
#recordsBody>tr:hover>td{background:#f4f8fd}
#recordsBody>tr:focus-within>td{background:#eff5fe}
.record-open{background:transparent;border:0;border-radius:4px;color:#235ba5;padding:4px 0;min-height:28px;font-size:11px;font-weight:650}
.record-open:hover{text-decoration:underline;text-underline-offset:3px}
.records-table th,.ranking-table th,.live-table th,.research-table th{transition:background-color .15s}
.sort-header:hover .sort-arrow{color:#2058b0}
.records-scroll:focus-visible,.research-scroll:focus-visible{outline:2px solid #6398ef;outline-offset:-2px}
.record-detail-result{padding:7px 0}
.feedback-flash{animation:lab-emphasis .7s ease-out}
@keyframes lab-emphasis{from{box-shadow:0 0 0 2px #78a7f0}to{box-shadow:0 0 0 0 transparent}}
.new-record>td{animation:lab-new-record .85s ease-out}
@keyframes lab-new-record{from{background:#e4effe}to{background:#fff}}
dialog[open]{animation:lab-dialog-in .14s ease-out}
@keyframes lab-dialog-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.dialog-heading{position:sticky;top:0;background:#fff;z-index:6}
.dialog-heading>div{min-width:0}.dialog-heading .micro{margin-top:3px}
.update-dialog{max-width:580px}.update-body{padding:10px 13px}
.update-overview{display:flex;gap:9px;align-items:center;padding:10px;border-radius:8px;background:#f3f7fd;border:1px solid #dce7f6;margin-bottom:10px}
.update-overview>div{min-width:0}.update-overview h3{font-size:13px;margin-bottom:3px}
.update-overview[data-state="error"],.update-overview[data-state="offline"]{background:#fff8ec;border-color:#ead2aa}
.update-versions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 7px}
.update-versions>div{min-width:0;padding:8px;border:1px solid var(--line);border-radius:7px}
.update-versions dt{font-size:11px;color:var(--muted)}.update-versions dd{font-size:13px;font-weight:650;margin:3px 0 0;overflow-wrap:anywhere}
.release-note-block{padding:9px 0}.release-note-block h3{font-size:12px;margin-bottom:5px}
#updateNotes{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto;border:1px solid var(--line);background:#f8fafc;border-radius:6px;padding:8px;font-size:12px;line-height:1.65}
.update-hint{font-size:11px;line-height:1.55;color:#506079}.update-action-error{font-size:12px;line-height:1.5;color:#a82727;padding:8px 0 0}
.dialog-footer{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:9px 13px;border-top:1px solid var(--line);background:#fff;z-index:6}
.dialog-footer>div{display:flex;gap:5px;margin-left:auto}
.research-dialog{width:calc(100% - 24px);max-width:1320px;max-height:90dvh}
.research-dialog .research-scroll{max-height:calc(80dvh - 170px);min-height:140px}
.research-dialog #researchDetails>summary{display:none}
.research-dialog .research-tools{padding:10px 12px 8px}
.research-dialog .research-audit{padding:9px 12px}
.toast{position:fixed;bottom:16px;right:16px;max-width:min(540px,calc(100vw - 24px));display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #c7d6ea;border-radius:10px;padding:8px 10px;box-shadow:0 5px 25px #22395d26;z-index:45;animation:lab-dialog-in .16s ease-out}
.toast p{font-size:12px;min-width:0;overflow-wrap:anywhere;flex:1}.toast .button{flex:none}
.toast[data-kind="success"]{border-left:3px solid #238462}.toast[data-kind="update"]{border-left:3px solid #2864c5}
@media(max-width:1150px){.header-actions .connection{display:none}.header-update{max-width:225px}}
@media(max-width:820px){.results{order:-1}.sidebar{position:static;max-height:none;scroll-padding-top:8px}.records-scroll{max-height:56dvh}.sidebar .research-brief{grid-template-columns:minmax(0,1fr)}.research-dialog .research-tools{flex-wrap:wrap}}
@media(max-width:650px){:root{--appbar-height:80px}.header-actions{width:100%;justify-content:flex-end}.header-update{margin-right:auto;max-width:calc(100% - 125px)}.appbar{gap:3px}.header-actions .button{min-height:29px}.toast{bottom:10px;right:10px;gap:4px;padding:7px 8px}}
@media(forced-colors:active){.header-update{border:1px solid ButtonText}.new-version-dot{background:Highlight}.update-indicator{color:ButtonText}.toast{border:1px solid CanvasText}.record-open{color:LinkText}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.button:active,.sort-header:active{transform:none!important}}

