@charset "UTF-8";
:root{--paper:#f2f5f8;--surface:#fff;--ink:#1b2d44;--muted:#5f6f83;--line:#dde5ee;--blue:#2456d9;--blue-hover:#1943b3;--blue-soft:#edf3ff;--red:#dd3b4b;--amber:#86621b;--amber-paper:#fff7e5;--error:#b42318;--sans:"Avenir Next",Avenir,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--mono:"SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding:20px 0 24px}
body{margin:0;color:var(--ink);background:linear-gradient(180deg,#e9eef5 0, var(--paper) 440px);font:14px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a{color:inherit}
button,a{touch-action:manipulation}
button,summary,select{cursor:pointer}
button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed}
button:disabled{color:#738197;background:#f0f3f7;border-color:#dce3ed}
button,input,select,textarea{border-radius:8px}
input,select,textarea{min-width:0;max-width:100%;color:var(--ink);background:var(--surface);border:1px solid #cdd4e1}
input,select{width:100%;min-height:44px;padding:9px 12px}
select{padding-right:30px}
textarea{display:block;width:100%;min-height:100px;resize:vertical;padding:12px;line-height:1.7}
textarea::placeholder,input::placeholder{color:#647084;font-size:14px}
input:disabled,select:disabled,textarea:disabled{background:#f6f7fa}
input[type=number]{font-variant-numeric:tabular-nums}
input[type=file]{width:100%;padding:5px;font-size:14px}
input[type=file]::file-selector-button{padding:7px 9px;margin-right:8px;border:0;border-radius:5px;background:#edf1f8;color:#45536b;font:inherit}
fieldset{border:0;padding:0;margin:0;min-width:0}
label{display:flex;flex-direction:column;gap:7px;min-width:0;font-weight:500;font-size:14px}
fieldset>label+label,form>label+label{margin-top:18px}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #7a9bff;outline-offset:3px}
summary:focus-visible{outline-offset:-3px}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{font-family:var(--sans);font-weight:650;line-height:1.4}
h1{font-size:27px;letter-spacing:-.7px}
h2{font-size:20px;letter-spacing:-.3px}
h3{font-size:16px}
h4{font-size:15px}
ul,ol{margin:0;padding:0}
svg{display:block}
[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;padding:0}
.skip-link{position:fixed;left:20px;top:-100px;z-index:99;padding:12px 20px;background:var(--blue);color:#fff;border-radius:5px}
.skip-link:focus{top:15px}
/* Shell and everyday workflow. */
.app-header{min-height:72px;display:flex;align-items:center;gap:28px;padding:12px max(28px,calc((100vw - 1344px)/2));background:#172c46;color:#fff;border-bottom:1px solid #172c46}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.brand-mark{width:36px;height:36px}
.brand-mark rect{fill:#376cf1}
.brand-mark path{fill:none;stroke:#fff;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}
.brand strong{display:block;font-size:21px;line-height:1.2;letter-spacing:-.6px;font-weight:750}
.brand small{display:block;color:#bdcadd;font-size:11px;letter-spacing:.4px;margin-top:4px}
.main-nav{display:flex;align-items:center;gap:3px}
.main-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 13px;text-decoration:none;border-radius:6px;color:#c8d3e4;font-size:14px;font-weight:550;white-space:nowrap}
.main-nav a:hover{background:#263e5d;color:#fff}
.main-nav a.active{background:#314b70;color:#fff;box-shadow:inset 0 -2px #8ab0ff}
.topbar-controls{display:flex;align-items:center;gap:4px;margin-left:auto}
.compact-select select{min-height:44px;width:auto;padding-left:7px;padding-right:22px;border-color:transparent;background:transparent;color:#dae3f0;font-size:12px}
.compact-select option{color:var(--ink);background:#fff}
.account-controls{display:flex;align-items:center;gap:8px;padding-left:10px;margin-left:3px;border-left:1px solid #39516d}
.account-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.app-header .button-dark{background:#e9f0ff;border-color:#e9f0ff;color:#153e94}
.app-header .button-dark:hover:not(:disabled){background:#fff;border-color:#fff}
.app-header .button-outline{background:transparent;color:#e9f0ff;border-color:#57708f;text-decoration:none}
main{max-width:1400px;margin:0 auto;padding:24px 28px 0}
main:focus{outline:none}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.page-heading>div{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:2px 16px}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.6px;color:#65768c;margin-bottom:4px}
.page-heading .eyebrow{grid-column:1/-1;font-size:10px;letter-spacing:1.8px;margin:0}
.page-heading>div>p:last-child{color:var(--muted);font-size:14px}
.local-badge{display:flex;align-items:center;gap:7px;color:#60718a;font-size:12px;white-space:nowrap}
.local-badge>span:first-child{width:6px;height:6px;border-radius:50%;background:#7387a4}
.workspace-context{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:12px;margin-bottom:12px;align-items:start}
.game-toolbar{min-width:0;display:flex;align-items:center;gap:13px;min-height:64px;padding:10px 16px;border:1px solid var(--line);border-radius:9px;background:#fff}
.game-toolbar>label{flex-shrink:0;color:#50637d;font-size:13px}
.game-toolbar #game-select{width:235px;flex-shrink:0;min-height:44px;font-weight:650;border-color:#bfcde1;background:#f7f9fe}
.toolbar-divider{height:24px;width:1px;background:var(--line);flex-shrink:0}
.game-rule-summary{font-size:13px;color:#5a6f8d;line-height:1.7}
.current-rule-pill{margin-left:auto}
.pill{display:inline-flex;align-items:center;justify-content:center;padding:3px 9px;border:1px solid #d9e4f5;border-radius:5px;background:#eef4fc;color:#47638c;font-size:12px;font-weight:550;line-height:1.6;white-space:nowrap;max-width:100%}
.pill-amber{background:var(--amber-paper);border-color:#ead5a6;color:var(--amber)}
.game-catalog{min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}
.game-catalog>summary{display:grid;grid-template-columns:19px minmax(0,1fr) 12px;align-items:center;gap:0 10px;min-height:64px;padding:10px 15px;list-style:none;color:#425b7e}
.game-catalog>summary::-webkit-details-marker{display:none}
.game-catalog>summary:hover{background:#f7f9fd}
.game-catalog>summary strong{font-size:13px;font-weight:650}
.game-catalog .catalog-symbol{grid-row:1/3}
.game-catalog .catalog-summary-note{grid-column:2;font-size:12px;color:#62728b}
.game-catalog .catalog-chevron{grid-column:3;grid-row:1/3}
.game-catalog[open],.workspace-context:has(.game-catalog[open]) .game-toolbar{grid-column:1/-1}
.quick-start{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}
.quick-start>button{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 15px;border:1px solid #d8e2ef;border-radius:8px;background:#f9fbfe;text-align:left;color:var(--ink)}
.quick-start>button:hover{background:#fff;border-color:#a9bfdf}
.step-number{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:6px;background:#e5edf9;color:#355d9b;font-family:var(--mono);font-size:12px;font-weight:600}
.quick-start strong{display:block;font-size:13px;font-weight:600}
.quick-start small{display:block;color:#5e718d;font-size:12px;margin-top:1px}
.step-arrow{margin-left:auto;font-size:18px;color:#6a81a5}
.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:20px;margin-bottom:20px}
.work-section{min-width:0;scroll-margin-top:20px}
.history-section,.candidate-section{padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 10px #1d385005}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.section-heading p:not(.eyebrow){margin-top:5px;color:var(--muted);font-size:14px;line-height:1.75}
.section-heading>button{flex-shrink:0}

/* Historical context and the selected draw stay ahead of the chart. */
.history-overview{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}
.history-identity{min-width:0}
.history-game-heading{gap:12px;margin-bottom:13px}
.game-region-label{display:block;margin-bottom:4px;color:#4f6b92;font-size:12px;font-weight:600}
#data-heading{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
#history-game-name{font-size:26px;line-height:1.3;letter-spacing:-.7px;font-weight:750;color:#1d3658}
.history-heading-suffix{font-size:13px;font-weight:500;color:#61758f;letter-spacing:0}
.history-game-heading .history-game-description{font-size:12px;line-height:1.75;color:#5e6f87;margin-top:6px}
.history-game-heading .button{padding:9px 10px;font-size:12px}
.history-ball-key{display:flex;flex-wrap:wrap;gap:6px 14px;padding-top:1px}
.history-ball-key>span{display:flex;align-items:center;gap:6px;color:#566b86;font-size:12px;line-height:1.7}
.ball-key-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.ball-key-main{background:#d84d60;border:1px solid #bc334b}
.ball-key-bonus{background:#3b6fde;border:1px solid #2855b8}
.latest-draw-wrap{min-width:0;padding:14px 15px;border:1px solid #dde7f3;border-top:3px solid #5379be;border-radius:8px;background:#f6f9fd}
.latest-draw-wrap:has(#latest-draw:empty){display:none}
.latest-draw{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.latest-meta{display:flex;align-items:baseline;gap:4px 10px;flex-wrap:wrap}
.latest-label{flex-basis:100%;font-size:12px;color:#526b90;line-height:1.3}
.latest-meta strong{font-size:17px;letter-spacing:.2px;font-weight:700;font-variant-numeric:tabular-nums}
.latest-meta span,.latest-meta p{font-size:12px;color:#5b6f8a}
.history-latest-caption{margin-top:9px;font-size:12px;line-height:1.6;color:#5e718c}
.balls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ball{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border:1px solid #edc1c7;border-radius:50%;background:#fff0f2;color:#bc2c44;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.ball-bonus{border-color:#b5cafa;background:#e6eeff;color:#2453c8}
.ball-plus{font-size:13px;color:#6f819b}
.balls-compact .ball,.latest-draw-wrap .ball{width:31px;height:31px;font-size:13px}
.latest-draw-wrap .balls{gap:4px}
.history-source-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:16px;align-items:center;margin-top:18px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.history-controls{display:flex;align-items:end;justify-content:space-between;gap:10px;min-width:0}
.history-controls label{min-width:0;flex:1;gap:5px;font-size:12px;color:#5a6e88}
.history-controls select{font-size:13px;padding-left:9px}
.history-controls .pill{margin-bottom:9px;font-size:11px;padding:3px 6px}
.history-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;color:#5b6f8c;font-size:12px;line-height:1.7;min-width:0;overflow-wrap:anywhere}
.history-status strong{font-weight:650;color:#344e72}
.snapshot-time{flex-basis:100%;color:#60718a}
.history-status .text-link{font-size:12px}
.chart-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-top:20px}
.chart-heading h3{font-size:18px;color:#29466e;padding-bottom:8px}
.chart-controls{display:flex;gap:10px}
.chart-controls label{font-size:12px;color:#576d8a;gap:4px}
.chart-controls select{min-height:44px;padding:8px 28px 8px 10px;font-size:13px;background:#f8fafc}
.trend-metric-description{margin-top:12px;font-size:13px;line-height:1.7;color:#526a8d}
.trend-reading-guide{display:flex;align-items:center;flex-wrap:wrap;gap:4px 15px;padding-top:8px;color:#5f7390;font-size:12px}
.trend-reading-guide>span{display:inline-flex;align-items:center;gap:6px}
.trend-reading-guide i{display:inline-grid;place-items:center;width:15px;color:#5273ab;font-size:16px;font-style:normal}
.trend-reading-guide .reading-point{width:7px;height:7px;border-radius:50%;background:#376bd5;margin:0 4px}
.trend-chart{min-height:270px;max-width:100%;padding-top:12px}
.trend-chart svg{display:block;width:100%;height:auto;overflow:visible}
.trend-line{fill:none;stroke:#8daae4;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.trend-dot{fill:#416fce;stroke:#fff;stroke-width:2;cursor:pointer}
.trend-dot:hover,.trend-dot:focus,.trend-dot[aria-pressed="true"]{fill:#173f99;stroke:#9ab9f4;stroke-width:4;outline:none}
.trend-hitbox{fill:transparent;stroke:none;pointer-events:all;cursor:pointer}
.trend-hitbox:focus{outline:none;fill:#e7efff88;stroke:#92afdf;stroke-width:1}
.trend-value{fill:#3c6097;font-family:var(--sans);font-size:12px;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:4;stroke-linejoin:round;pointer-events:none}
.trend-selected-line{stroke:#708fc6;stroke-width:1.2;stroke-dasharray:4 4;pointer-events:none}
.chart-gridline{stroke:#e1e8f2;stroke-width:1}
.chart-axis{fill:#596d8a;font-size:12px;font-family:var(--sans)}
.trend-point-detail{margin-top:10px;padding:12px 14px;border:1px solid #d3e1f4;border-left:3px solid #4470c3;border-radius:7px;background:#f4f8fe;color:#4c658c;font-size:13px;line-height:1.75}
.trend-point-detail:has(.trend-detail-caption){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center}
.trend-detail-caption{min-width:0;color:#5f718a;font-size:12px;overflow-wrap:anywhere}
.trend-detail-caption strong{display:block;color:#294b7a;font-size:14px;font-weight:650}
.trend-point-detail .balls{min-width:0}
.trend-point-detail .ball{width:30px;height:30px;font-size:12px}
.trend-detail-number{grid-column:1/-1;display:block;margin-top:2px;padding-top:8px;border-top:1px solid #dde7f4;color:#345886;font-size:13px;font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.chart-note{display:flex;align-items:flex-start;gap:7px;margin-top:12px!important;font-size:12px!important;line-height:1.8;color:#60718b!important}
.chart-note-icon{display:inline-grid;place-items:center;flex:0 0 15px;height:15px;margin-top:3px;border:1px solid #8fa2bf;border-radius:50%;font-size:10px;font-weight:600;line-height:1}
.data-detail{margin-top:12px;border-top:1px solid var(--line)}
.data-detail>summary{display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 0;color:#42638e;font-size:13px}
.trend-table-details{border:1px solid var(--line);border-radius:7px;overflow:hidden}
.trend-table-details>summary{padding:11px 13px;background:#f7f9fc;list-style:none}
.trend-table-details>summary::-webkit-details-marker{display:none}
.trend-table-details>summary .summary-arrow{margin-left:auto}
.trend-table-details[open]>summary{margin-bottom:0;border-bottom:1px solid var(--line)}
.table-alternative-icon{font-size:18px;color:#557aa9}
.frequency-details>summary::after{content:"+";margin-left:auto;font-size:20px;font-weight:400}
.frequency-details[open]>summary::after{content:"−"}
.frequency-chart{min-height:190px;padding-top:12px}
.frequency-chart svg{width:100%;height:auto}
.chart-bar{fill:#b0c4eb}
.chart-bar-high{fill:#3c6ccd}
.chart-loading{min-height:260px;display:grid;place-items:center;padding:25px;color:#557096;border-radius:7px;background:repeating-linear-gradient(to bottom,#f7f9fc 0,#f7f9fc 52px,#e5ecf5 53px,#e5ecf5 54px)}
.trend-chart:has(>.empty-state){display:flex;min-height:230px;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#f8fafc;border:1px dashed #ccd8e8;border-radius:8px;margin-top:14px;padding:20px}
.trend-chart>.empty-state{margin:0;padding:0;max-width:380px;font-size:14px;line-height:1.8}

/* The reference panel is an explicit action, followed by transfer and exact odds. */
.candidate-section{position:sticky;top:20px;border-top:3px solid #315fae;background:linear-gradient(155deg,#f3f7ff,#fff 260px)}
.candidate-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}
.candidate-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid #cfddf5;border-radius:8px;background:#e9f0fd}
.candidate-icon svg{width:21px;height:21px;fill:none;stroke:#3862ad;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.candidate-game-label{display:block;margin-bottom:4px;font-size:12px;font-weight:650;color:#55719a}
.candidate-section h2{font-size:23px}
.candidate-section .section-heading{margin-bottom:20px}
.candidate-section .section-heading p{font-size:13px;line-height:1.75}
.candidate-section form label{font-size:13px}
.candidate-section form button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;margin-top:12px;text-align:left;font-size:14px}
.candidate-section form button>span:last-child{font-size:20px;line-height:1}
.candidate-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:112px;padding:22px 12px;margin:16px 0;border:1px dashed #cddbf0;border-radius:8px;background:#f8faff;color:#627694;text-align:center;font-size:13px;line-height:1.8}
.candidate-empty strong{color:#50678b;font-size:14px;font-weight:500}
.empty-ticket-icon{width:64px;height:40px;stroke:#9eafd1;fill:#f2f6fe;stroke-width:1.3}
.empty-ticket-icon path:first-of-type{stroke-dasharray:3 3}
.candidate-method{padding:17px 0 5px;color:#5e7392;font-size:13px;line-height:1.75}
.candidate-ticket{display:flex;align-items:center;gap:9px;min-width:0;padding:12px 0;border-bottom:1px solid var(--line)}
.ticket-index{flex:0 0 18px;color:#667b9a;font-family:var(--mono);font-size:12px;font-weight:500}
.candidate-ticket .balls{gap:4px;min-width:0}
.candidate-ticket .ball{width:30px;height:30px;font-size:12px}
.candidate-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 0;color:#627694;font-size:12px}
.candidate-metrics strong,.candidate-metrics .metric-value{display:block;margin-top:5px;color:#2e4d7c;font-size:14px;font-weight:650;overflow-wrap:anywhere}
.candidate-metrics .metric-label{font-size:12px;color:#576f94}
.candidate-section #candidate-copy{font-size:14px}
.candidate-explainer{display:flex;align-items:flex-start;gap:8px;margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}
.info-dot{display:grid;place-items:center;flex:0 0 16px;width:16px;height:16px;margin-top:3px;border:1px solid #8d9fbb;border-radius:50%;color:#617899;font-size:11px;font-weight:600;line-height:1}
.candidate-explainer p{color:#61738d;font-size:12px;line-height:1.8}
.candidate-ai-state{margin-top:9px;padding-left:24px;color:#61738d;font-size:12px;line-height:1.8}
.workspace-feedback:has(>:not([hidden])){display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0;padding:13px 16px;border:1px solid #d2dff1;border-radius:8px;background:#f4f8ff;color:#476188;font-size:14px;line-height:1.8}
.workspace-feedback:has(.is-error){border-color:#edc8b8;background:#fff6f1}
.workspace-feedback button{flex-shrink:0}
[aria-busy="true"]{cursor:progress}
form[aria-busy="true"] button[type="submit"]{opacity:.75}
#probability-result[aria-busy="true"]{min-height:180px;background:linear-gradient(90deg,#edf2fa,#f7f9fc,#edf2fa);border-radius:7px}

/* Shared controls and research tools. */
.button{min-height:44px;padding:10px 16px;border:1px solid transparent;font-size:14px;font-weight:550;line-height:1.45;transition:background .15s,border-color .15s}
.button-dark,.button-light{color:#fff;background:var(--blue);border-color:var(--blue)}
.button-dark:hover:not(:disabled),.button-light:hover:not(:disabled){background:var(--blue-hover);border-color:var(--blue-hover)}
.button-outline{color:#52647f;background:#fff;border-color:#d3dce9}
.button-outline:hover:not(:disabled){color:var(--blue);background:#f5f8ff;border-color:#b5c7f1}
.button-small{min-height:44px;padding:10px 13px;font-size:13px}
.full-width{width:100%}
.text-button{min-height:44px;border:0;background:none;color:var(--blue);padding:8px 0;font-size:14px;text-align:left;font-weight:550}
.text-button:hover{text-decoration:underline;text-underline-offset:4px}
.text-link{color:#496fd0;text-decoration:underline;text-decoration-color:#ccd8f0;text-underline-offset:4px;overflow-wrap:anywhere}
.text-link:hover{text-decoration-color:var(--blue)}
.tool-disclosure{margin:14px 0;border:1px solid var(--line);border-radius:10px;background:#fff;scroll-margin-top:20px;overflow:hidden}
.tool-disclosure>summary{display:flex;align-items:center;gap:15px;min-height:76px;padding:16px 24px;list-style:none}
.tool-disclosure>summary::-webkit-details-marker{display:none}
.tool-disclosure>summary:hover{background:#fbfcff}
.disclosure-icon{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:8px;background:#f3f5fa;color:#7b8aa6;font-size:20px;font-weight:500}
.tool-disclosure>summary strong{display:block;font-size:15px;font-weight:600;color:#46536a}
.tool-disclosure>summary small{display:block;margin-top:3px;font-size:13px;color:#65758b}
.disclosure-chevron{margin-left:auto;color:#8792a8;font-size:22px;transition:transform .15s}
.tool-disclosure[open]>summary{border-bottom:1px solid var(--line)}
.tool-disclosure[open]>summary .disclosure-chevron{transform:rotate(180deg)}
.disclosure-content{padding:25px}
.disclosure-content>.work-section,.disclosure-content>.probability-section{padding:0}
.disclosure-content>.work-section+.work-section{border-top:1px solid var(--line);margin-top:30px;padding-top:30px}
.tool-disclosure .section-heading .eyebrow{font-size:11px;margin-bottom:7px}
.tool-disclosure .section-heading h2{font-size:22px}
.auth-gate{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 17px;border:1px solid #dae4fa;border-radius:8px;background:#f4f7ff;margin-bottom:18px}
.auth-gate p{display:flex;align-items:center;gap:9px;font-size:14px;color:#63779d}
.auth-gate p>span:first-child{font-size:22px}
.auth-gate .text-button{white-space:nowrap}
.import-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
.panel{min-width:0;padding:22px;border:1px solid var(--line);border-radius:9px;background:#fff}
.panel>h3{margin-bottom:18px}
.two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.two-fields+label{margin-top:18px}
.import-panel .two-fields{grid-template-columns:100px minmax(0,1fr);margin-bottom:18px}
.import-panel textarea{font-family:var(--mono);font-size:13px;min-height:145px}
.import-panel .full-width{margin-top:18px}
.demo-action{display:flex;align-items:flex-start;gap:16px;justify-content:space-between;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.demo-action strong{font-size:14px;font-weight:600}
.demo-action p{font-size:13px;color:var(--muted);margin-top:5px}
.demo-action .text-button{flex-shrink:0;font-size:13px}
.records-details{min-width:0}
.records-details>summary{padding:12px 0;font-size:15px}
.summary-arrow{float:right;color:#8d9ab1}
.fine-print{margin-top:10px;color:var(--muted);font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.notice{display:flex;align-items:flex-start;gap:15px;margin:16px 0;padding:13px 16px;border-radius:7px;font-size:14px;line-height:1.7}
.notice strong{flex-shrink:0;font-weight:600}
.notice-amber{border:1px solid #f0dfb8;background:var(--amber-paper);color:var(--amber)}
.notice-paper{align-items:center;border:1px solid #dce5f8;background:#f5f8ff;color:#667b9f}
.notice-paper>span{font-size:24px;line-height:1}
.form-status{margin-top:11px;font-size:14px;color:#2d6c61;line-height:1.8;overflow-wrap:anywhere}
.form-status:empty{display:none}
.is-error,.form-status.is-error{color:var(--error)}
.global-status{position:sticky;top:12px;z-index:30;padding:12px 16px;margin:0 0 18px;border:1px solid #cddbf7;background:#f0f5ff;color:#3c5e9a;border-radius:8px;font-size:14px;box-shadow:0 6px 20px #203d740b}
.global-status.is-error{border-color:#f0c1b8;background:#fff4f0;color:var(--error)}
.overview-grid{display:block}
.probability-panel{padding:22px;border:1px solid #dce5fa;border-radius:9px;background:#f7f9ff}
.probability-controls{display:flex;align-items:end;gap:18px;padding-bottom:20px;border-bottom:1px solid #e0e7f5}
.probability-controls label{flex:0 1 190px;font-size:14px}
.probability-controls .button{margin-left:auto;flex-shrink:0}
.probability-result{min-height:180px}
.coverage-primary{padding:24px 0 20px}
.metric-label{display:block;color:#7c879a;font-size:13px}
.coverage-fraction{display:block;margin-top:6px;font-size:38px;letter-spacing:-1px;color:#2445a0;font-weight:650;line-height:1.35;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.coverage-percent{display:block;color:#6f84b8;font-size:14px;margin-top:5px}
.probability-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:18px 0 0;border-top:1px solid #e0e7f5}
.metric-value{display:block;font-size:24px;font-weight:600;line-height:1.4;margin-top:6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.probability-secondary .metric-value{font-size:20px;color:#465d8a}
.cost-note,.probability-footnote{margin-top:15px;color:#7888a8;font-size:14px}
.probability-footnote{display:flex;gap:9px}
.rules-strip{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 0}
.rules-strip p{font-size:14px;line-height:1.9}
.rules-strip .text-link{flex-shrink:0;font-size:14px}
.muted{color:var(--muted)}
summary{min-height:44px;cursor:pointer;font-size:14px;color:#596c8b;font-weight:500}
details[open]>summary{margin-bottom:14px}
.tool-disclosure[open]>summary{margin-bottom:0}
.distribution-details{padding:16px 0;border-top:1px solid var(--line)}
.distribution-list{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.distribution-item{padding:10px;border-left:1px solid var(--line);font-size:13px}
.distribution-item strong{display:block;margin:5px 0;font-size:15px}
.distribution-item small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.principle-note{display:flex;align-items:center;gap:12px;padding:13px 16px;background:#f5f7fb;border:1px solid var(--line);border-radius:7px;color:#7a8598;font-size:14px}
.note-mark{font-size:26px;color:#8a9bbb;line-height:1}
.advanced-intro{padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:27px}
.advanced-intro h2{font-size:23px}
.advanced-intro p{color:var(--muted);font-size:14px;margin-top:7px}
.advanced-intro nav{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px}
.advanced-intro nav a{min-height:44px;display:flex;align-items:center;padding:8px 15px;border:1px solid #dce4f3;border-radius:6px;background:#f8faff;color:#536d9b;text-decoration:none;font-size:14px}
.inline-form{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr auto;gap:15px;align-items:end}
.inline-form button{min-height:44px}
.experiment-controls{padding-bottom:18px}
.method-details{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
.method-entry{display:grid;grid-template-columns:130px 1fr auto;gap:18px;align-items:start;padding:17px 0;border-top:1px solid var(--line)}
.method-entry h4,.method-entry p,.method-entry a{font-size:14px}
.method-entry p{color:var(--muted);line-height:1.8}
.result-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:25px 0 15px}
.history-select{width:min(60%,430px)}
.history-select select{font-size:14px}
.experiment-result{padding:22px;border:1px solid var(--line);border-radius:8px;background:#fff}
.empty-state{max-width:440px;text-align:center;padding:25px 18px;margin:10px auto;color:#647084}
.empty-symbol{display:block;font-size:35px;color:#a7b6d2;line-height:1.3;margin-bottom:10px}
.empty-state h4{font-size:15px;color:#687991;margin-bottom:8px;font-weight:550}
.empty-state p{font-size:14px;line-height:1.8}
.result-topline{display:flex;align-items:center;justify-content:space-between;gap:18px}
.result-topline h4{font-size:20px}
.badge-row{display:flex;gap:7px;flex-wrap:wrap}
.result-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-top:23px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.result-metrics .metric+.metric{padding-left:17px;border-left:1px solid var(--line)}
.result-conclusion{margin-top:17px;color:#8c7134;font-size:14px}
.hash-line{margin-top:10px;font:12px/1.8 var(--mono);color:#8390a4;overflow-wrap:anywhere}
.hash-line code{font:inherit}
.series-details,.raw-details{margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}
.raw-details summary{font-size:13px;color:#8190a6}
pre{max-height:300px;overflow:auto;margin:0;padding:14px;border-radius:7px;background:#f5f7fc;color:#63728c;font:12px/1.9 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}
.review-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:26px 0 14px}
.review-heading .fine-print{margin:0}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.review-block{position:relative;padding:20px;border:1px solid var(--line);border-radius:8px;background:#fafbfe;min-width:0}
.review-index{position:absolute;right:16px;top:12px;color:#d7dfec;font-size:29px}
.review-engine{display:block;margin-bottom:13px;padding-right:35px;color:#8895aa;font-size:12px}
.review-block h4{margin-bottom:12px;font-size:15px}
.check-list{list-style:none;margin-top:15px}
.check-list li{position:relative;padding-left:12px;color:#7a879c;font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.check-list li+li{margin-top:8px}
.check-list li:before{content:"·";position:absolute;left:0}
.ai-block{border-style:dashed;background:#f8f9fc}
.ai-block .button{margin-top:16px;font-size:13px}
.ai-block .fine-print{margin:0}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.split-grid .panel{padding:24px}
.split-grid .two-fields{margin-top:17px}
.split-grid form .full-width{margin-top:20px}
.history-panel{min-width:0;padding:4px 0}
.history-panel>h3{margin-bottom:18px}
.history-record{padding:21px 0;border-top:1px solid var(--line)}
.history-record:first-child{border:0;padding-top:3px}
.record-topline{display:flex;align-items:center;justify-content:space-between;gap:15px}
.record-topline h4{font-size:20px;overflow-wrap:anywhere}
.record-time{font-size:13px;color:#8590a4;margin-top:6px}
.record-topline .record-time{margin:0;text-align:right}
.prediction-tickets{display:grid;gap:12px;margin-top:18px;max-height:290px;overflow:auto}
.prediction-ticket{display:flex;align-items:center;gap:16px}
.prediction-ticket>small{font-size:13px;color:#8b96ab;min-width:45px}
.prediction-record .button{margin-top:15px}
.lesson-record h4{margin:16px 0 5px;color:#7f8ba2;font-size:14px}
.lesson-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.9;color:#5c6c85}
.table-scroll{max-width:100%;overflow:auto;overscroll-behavior-x:contain}
table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}
th{padding:12px;text-align:left;background:#f5f7fc;color:#71829f;font-size:13px;font-weight:600;border-bottom:1px solid var(--line)}
td{padding:12px;border-bottom:1px solid var(--line);color:#667996}
th:first-child,td:first-child{padding-left:8px}
.page-footer{border-top:1px solid var(--line);margin-top:24px;display:flex;align-items:center;gap:22px;padding:25px 0 28px;color:#627188}
.page-footer strong{font-size:14px;color:#6f7d94}
.page-footer p{font-size:12px}
.page-footer>span{margin-left:auto;flex-shrink:0;font-size:12px}
dialog{width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:30px;color:var(--ink);background:#fff;border:1px solid #e0e5ef;border-radius:14px;box-shadow:0 20px 90px #1427472b}
dialog::backdrop{background:#14274477;backdrop-filter:blur(3px)}
.dialog-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.dialog-topline .eyebrow{font-size:11px;margin:0}
.close-button{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:50%;color:#7b879c;background:#fff;font-size:25px;line-height:1}
dialog h2{font-size:26px}
dialog>p{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.8}
.auth-mode{display:flex;gap:4px;margin:24px 0;padding:4px;border:1px solid var(--line);border-radius:8px;background:#f5f7fc}
.auth-mode button{flex:1;min-height:44px;padding:8px 12px;border:1px solid transparent;background:none;color:#7b89a2;font-size:14px}
.auth-mode button.active{border-color:#dce5f7;background:#fff;color:var(--blue)}
#auth-form .fine-print{margin-bottom:16px}
#auth-submit{margin-top:6px}
.noscript-note{position:fixed;inset:auto 15px 15px;z-index:100;padding:20px;background:#fff;border:1px solid #c7d4ed}

/* Owner-scoped ticket ledger. */
.candidate-record-button { margin-top: 10px; }
.candidate-record-hint { margin-top: 8px; color: #66758d; font-size: 13px; line-height: 1.75; }
.purchase-section { margin: 0 0 20px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.purchase-heading { margin-bottom: 23px; }
.purchase-title-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.purchase-title-row h2 { font-size: 22px; }
.purchase-title-row .pill { font-size: 12px; }
.purchase-heading > div > p { max-width: 600px; }
.purchase-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 30px; align-items: start; }
.purchase-entry { min-width: 0; padding-right: 30px; border-right: 1px solid var(--line); }
.purchase-entry-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; margin-bottom: 19px; }
.purchase-entry-heading h3, .purchase-ledger > h3 { font-size: 16px; }
.purchase-origin { color: #687a98; font-size: 12px; }
.purchase-target-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 14px; }
.purchase-target-fields:has(> label[hidden]) { grid-template-columns: minmax(0, 1fr); }
.purchase-bottom-fields { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 14px; margin-top: 17px; }
.purchase-field-hint { margin: 7px 0 17px; color: #627188; font-size: 13px; line-height: 1.75; }
.purchase-entry label { color: #485972; font-size: 14px; }
.purchase-entry input, .purchase-entry textarea { background: #fff; }
#purchase-numbers { min-height: 98px; font-family: var(--mono); font-size: 14px; line-height: 1.8; }
.purchase-form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 17px; }
.purchase-form-actions .button-dark, .purchase-form-actions #purchase-login { flex: 1; }
.purchase-ledger { min-width: 0; }
.purchase-sync-status { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin: 14px 0 18px; padding: 12px 14px; border: 1px solid #dfe7f7; border-radius: 7px; background: #f7f9fe; color: #647590; font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
.purchase-sync-status strong { font-weight: 600; color: #4e6383; }
.purchase-sync-status .fine-print { margin-top: 0; font-size: 12px; }
.purchase-status-dot { flex: 0 0 6px; height: 6px; margin-top: 8px; border-radius: 50%; background: #91a5c9; }
.purchase-sync-status.is-error { border-color: #f0d3c6; background: #fff7f2; color: #9e4b28; }
.purchase-list { display: grid; gap: 13px; min-width: 0; }
.purchase-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 35px 22px; min-height: 190px; border: 1px dashed #dce4f2; border-radius: 9px; background: #f8fafc; text-align: center; }
.purchase-empty > svg { width: 47px; height: 47px; margin-bottom: 13px; fill: #f2f6ff; stroke: #9eafd0; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.purchase-empty h4 { color: #5b6e8d; font-size: 15px; font-weight: 550; }
.purchase-empty p { max-width: 340px; margin-top: 7px; color: #60718a; font-size: 14px; line-height: 1.8; }
.purchase-record { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.purchase-record-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 9px; }
.purchase-record-heading h3 { font-size: 16px; }
.purchase-record > .fine-print { margin-top: 6px; font-size: 13px; line-height: 1.8; }
.purchase-record > .text-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 7px; font-size: 13px; }
.purchase-ticket { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 12px; padding: 13px 0; border-bottom: 1px solid #edf1f7; }
.purchase-ticket:last-child { border-bottom: 0; }
.purchase-ticket .ticket-index { flex-basis: 21px; }
.purchase-record .balls { gap: 5px; }
.purchase-record .ball { width: 30px; height: 30px; font-size: 12px; }
.purchase-hit-result { flex-basis: 100%; padding-left: 33px; color: #536b92; font-size: 13px; line-height: 1.8; }
.purchase-record .ball-matched { box-shadow: 0 0 0 2px #f0c4cc; background: #dd3b4b; border-color: #c92e3d; color: #fff; }
.purchase-record .ball-bonus.ball-matched { box-shadow: 0 0 0 2px #c3d4ff; background: #2955eb; border-color: #244cce; color: #fff; }
.purchase-source-warning, .purchase-pending-note, .purchase-prize-note { margin-top: 13px; padding: 11px 12px; border: 1px solid #e3e9f3; border-radius: 7px; background: #f7f9fd; color: #667894; font-size: 13px; line-height: 1.8; }
.purchase-source-warning { border-color: #eeddb4; background: #fff8e9; color: #886724; }
.purchase-sync-status .purchase-source-warning { margin-top: 2px; padding: 0; border: 0; background: none; }
.purchase-prize-note { border-color: #dae5f8; background: #f2f7ff; color: #55729d; }
.purchase-outcome { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 13px 0 5px; }
.purchase-outcome > strong { color: #61738f; font-size: 13px; font-weight: 550; }
.purchase-record-note { margin-top: 10px; padding-left: 10px; border-left: 2px solid #dce5f4; color: #71819a; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.purchase-service-note { display: flex; align-items: flex-start; gap: 9px; padding-top: 18px; margin-top: 24px; border-top: 1px solid var(--line); }
.purchase-service-note p { color: #6b7c96; font-size: 13px; line-height: 1.8; }
.purchase-service-note .info-dot { margin-top: 4px; }

/* Game directory and number-pool encodings. */
.catalog-symbol { display: block; flex: 0 0 19px; color: #5475b9; }
.catalog-symbol svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.catalog-summary-note { color: #6e7b90; font-size: 13px; }
.catalog-expand { display: none; }
.catalog-chevron { color: #7f8ca2; font-size: 19px; line-height: 1; transition: transform .15s; }
.game-catalog[open] > summary { margin-bottom: 0; border-bottom: 1px solid #e5eaf2; }
.game-catalog[open] .catalog-chevron { transform: rotate(180deg); }
.catalog-content { padding: 23px; }
.catalog-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.catalog-intro h2 { font-size: 18px; }
.catalog-intro p { max-width: 680px; margin-top: 6px; color: #68778f; font-size: 14px; line-height: 1.8; }
.catalog-scope { max-width: 230px; color: #6d7d97; font-size: 13px; text-align: right; line-height: 1.7; }
.catalog-supported { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-top: 20px; }
.catalog-game { min-width: 0; padding: 19px 18px 14px; border: 1px solid #dfe7f4; border-radius: 9px; background: linear-gradient(160deg, #f6f9ff, #fff 55%); }
.catalog-game-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.catalog-region { color: #4c6389; font-size: 13px; font-weight: 550; }
.catalog-game-code { color: #b6c4df; font-size: 18px; font-weight: 750; letter-spacing: 1px; }
.catalog-game h3 { margin-top: 9px; font-size: 20px; letter-spacing: -.3px; }
.catalog-game-kind { min-height: 44px; margin-top: 4px; color: #6d7a90; font-size: 13px; line-height: 1.7; }
.catalog-game dl { margin: 13px 0 0; }
.catalog-game dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid #e8edf5; font-size: 13px; }
.catalog-game dt { color: #758197; }
.catalog-game dd { margin: 0; font-weight: 550; text-align: right; }
.capability-available { color: #4166b8; }
.capability-unavailable { color: #8b6c2e; }
.catalog-game-partial { background: linear-gradient(160deg, #faf9f5, #fff 55%); }
.catalog-data-note { margin-top: 13px; color: #617188; font-size: 13px; line-height: 1.8; }
.catalog-directory-heading { display: flex; align-items: center; gap: 14px; margin-top: 26px; }
.catalog-directory-heading h3 { font-size: 16px; }
.catalog-offline-label { display: inline-flex; align-items: center; padding: 3px 9px; border: 1px solid #dfe4eb; border-radius: 5px; background: #f6f7f9; color: #718098; font-size: 13px; }
.catalog-directory-note { margin-top: 7px; color: #68778f; font-size: 14px; line-height: 1.8; }
.catalog-directory { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; margin-top: 15px; }
.catalog-directory-item { min-width: 0; padding: 15px 0; border-top: 1px solid #e9edf3; }
.catalog-directory-item h4 { color: #4e607d; font-size: 14px; font-weight: 600; }
.catalog-directory-item p { color: #617188; font-size: 13px; line-height: 1.8; margin-top: 3px; }
html[data-game="powerball"] .ball:not(.ball-bonus), html[data-game="mega"] .ball:not(.ball-bonus) { border-color: #d6dce7; background: #fff; color: #485a77; }
html[data-game="powerball"] .ball-bonus { border-color: #f0c2c8; background: #fff0f2; color: #ca3b4e; }
html[data-game="mega"] .ball-bonus { border-color: #ebd697; background: #fff6d9; color: #8d661a; }
html[data-game="powerball"] .ball-key-main, html[data-game="mega"] .ball-key-main { border-color: #aebbd0; background: #fff; }
html[data-game="powerball"] .ball-key-bonus { border-color: #d54555; background: #e45a68; }
html[data-game="mega"] .ball-key-bonus { border-color: #c59c33; background: #e9c666; }
html[data-game="powerball"] .purchase-record .ball-matched:not(.ball-bonus), html[data-game="mega"] .purchase-record .ball-matched:not(.ball-bonus) { border-color: #9aaccc; background: #e7edf7; color: #2f4c77; box-shadow: 0 0 0 2px #cfd9ed; }
html[data-game="powerball"] .purchase-record .ball-bonus.ball-matched { border-color: #c92e3d; background: #dd3b4b; color: #fff; box-shadow: 0 0 0 2px #f0c4cc; }
html[data-game="mega"] .purchase-record .ball-bonus.ball-matched { border-color: #c49b35; background: #f1d58c; color: #674a10; box-shadow: 0 0 0 2px #eedcae; }

/* Content breakpoints, with one rule set per layout. */
@media(min-width:1600px){
  .dashboard{grid-template-columns:minmax(0,1fr) 370px}
}
@media(max-width:1250px){
  .app-header{gap:18px;padding-left:24px;padding-right:24px;flex-wrap:wrap}
  .brand small{display:none}
  .main-nav a{font-size:13px;padding-left:10px;padding-right:10px}
  .workspace-context{grid-template-columns:minmax(0,1fr) 270px}
  .game-toolbar{gap:10px;padding:10px 12px;flex-wrap:wrap}
  .game-toolbar #game-select{width:220px}
  .game-rule-summary{flex:1;min-width:160px}
  .current-rule-pill,.toolbar-divider{display:none}
  .dashboard{grid-template-columns:minmax(0,1fr) 320px;gap:16px}
  .history-section,.candidate-section{padding:20px}
  .history-overview{grid-template-columns:1fr}
  .history-game-heading{margin-bottom:9px}
  .history-ball-key{margin-bottom:0}
  .latest-draw-wrap{padding:12px 14px}
  .latest-draw{flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap}
  .history-source-panel{grid-template-columns:1fr;gap:12px}
  .history-controls{align-items:center}
  .history-controls label{flex-direction:row;align-items:center;flex:0 1 330px;gap:10px;white-space:nowrap}
  .history-controls .pill{margin:0}
  .history-controls select{min-width:0}
  .history-status .snapshot-time{flex-basis:auto}
  .chart-heading{align-items:stretch;flex-direction:column;gap:10px}
  .chart-heading h3{padding:0}
  .chart-controls label{flex:1}
  .trend-point-detail:has(.trend-detail-caption){grid-template-columns:1fr}
  .candidate-ticket{gap:6px}
  .candidate-ticket .ball{width:28px;height:28px}
  .candidate-ticket .balls{gap:3px}
  .page-heading>div{display:block}
  .page-heading>div>p:last-child{margin-top:3px}
  .inline-form{grid-template-columns:repeat(4,minmax(0,1fr))}
  .inline-form>button{grid-column:1/-1}
  .review-grid{gap:12px}
  .review-block{padding:17px}
  .result-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .result-metrics .metric:nth-child(4){border-left:0;padding-left:0}
  .catalog-supported{gap:12px}
  .catalog-game{padding:16px 14px 12px}
  .catalog-game dl>div{flex-wrap:wrap;gap:3px 8px}
  .catalog-game dd{margin-left:auto}
  .catalog-directory{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1050px){
  .app-header{gap:8px 20px;padding-top:12px;padding-bottom:10px}
  .main-nav{order:3;width:100%;justify-content:space-between;border-top:1px solid #39506c;margin-top:2px;padding-top:7px}
  .main-nav a{font-size:14px}
  .brand small{display:block}
  .local-badge{display:none}
  .quick-start small{display:none}
  .quick-start>button{min-height:48px;padding:8px 12px}
  .dashboard{grid-template-columns:minmax(0,1fr)}
  .history-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .history-source-panel{grid-template-columns:1fr 1.3fr}
  .history-controls label{flex-direction:column;align-items:flex-start;gap:4px}
  .history-controls{align-items:end}
  .history-controls .pill{margin-bottom:9px}
  .chart-heading{flex-direction:row;align-items:end}
  .chart-heading h3{padding-bottom:8px}
  .chart-controls{min-width:300px}
  .trend-point-detail:has(.trend-detail-caption){grid-template-columns:1fr auto}
  .candidate-section{position:static}
  .candidate-section form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:end;gap:14px}
  .candidate-section form button{margin:0;min-height:44px}
  .candidate-empty{min-height:90px}
  .candidate-ticket .ball{width:34px;height:34px;font-size:14px}
  .candidate-ticket .balls{gap:6px}
  .purchase-grid,.split-grid,.import-workspace{grid-template-columns:1fr;gap:24px}
  .purchase-entry{padding-right:0;border-right:0}
  .purchase-ledger{padding-top:23px;border-top:1px solid var(--line)}
  .purchase-empty{min-height:160px;padding:25px 20px}
  .review-grid{grid-template-columns:1fr 1fr}
  .ai-block{grid-column:1/-1}
  .distribution-list{grid-template-columns:repeat(4,minmax(0,1fr))}
  .rules-strip{flex-direction:column;gap:10px}
  .page-footer{flex-wrap:wrap;gap:12px}
  .page-footer p{order:3;flex-basis:100%}
}
@media(max-width:720px){
  html{scroll-padding:14px 0 100px}
  body{padding-bottom:78px}
  main{padding:18px 14px 0}
  .app-header{padding:14px 16px 10px;gap:10px;display:grid;grid-template-columns:1fr auto}
  .brand{grid-column:1/-1;gap:8px}
  .brand-mark{width:32px;height:32px}
  .brand strong{font-size:20px}
  .brand small{font-size:10px;letter-spacing:.3px}
  .topbar-controls{grid-column:1/-1;width:100%;margin:0;gap:4px;flex-wrap:wrap}
  .compact-select select{font-size:14px;padding-left:3px;padding-right:22px;min-height:44px}
  .account-controls{margin-left:auto;padding-left:6px;border:0;gap:7px}
  .account-name{max-width:65px;font-size:12px}
  .account-controls .button{padding:10px 11px;font-size:13px}
  .main-nav{position:fixed;inset:auto 0 0;z-index:35;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;width:100%;margin:0;padding:8px 6px max(8px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #cdd9e8;box-shadow:0 -4px 18px #1c38500b}
  .main-nav a{min-height:48px;padding:7px 2px;border-radius:6px;color:#596d89;font-size:12px;line-height:1.45;text-align:center;white-space:normal}
  .main-nav a.active{background:#e8f0ff;color:#244ea7;box-shadow:inset 0 2px #3568d5}
  .main-nav a:hover{background:#f0f5fc;color:#244ea7}
  .page-heading{margin-bottom:14px}
  .page-heading .eyebrow{font-size:9px;letter-spacing:1.5px}
  .page-heading h1{font-size:25px;letter-spacing:-.5px}
  .page-heading>div>p:last-child{font-size:13px;line-height:1.7;margin-top:4px}
  .workspace-context{display:block;margin-bottom:12px}
  .game-toolbar{padding:11px 12px;gap:8px 10px}
  .game-toolbar>label{font-size:13px}
  .game-toolbar #game-select{flex:1;min-width:0;width:auto;font-size:14px;padding-right:24px}
  .game-rule-summary{min-width:0;flex-basis:100%;font-size:13px;line-height:1.6}
  .game-catalog{margin-top:8px}
  .game-catalog>summary{min-height:48px;padding:7px 12px;grid-template-columns:17px minmax(0,1fr) 12px;gap:0 8px}
  .game-catalog>summary strong{font-size:13px}
  .game-catalog .catalog-summary-note{font-size:11px}
  .quick-start{gap:6px;margin-bottom:14px}
  .quick-start>button{min-height:48px;padding:7px 5px;gap:5px;justify-content:center}
  .quick-start strong{font-size:12px;line-height:1.5}
  .quick-start .step-number{width:19px;flex-basis:19px;height:22px;font-size:11px;background:transparent}
  .quick-start .step-arrow{display:none}
  .dashboard{gap:16px;margin-bottom:16px}
  .history-section,.candidate-section,.purchase-section{padding:18px 15px;border-radius:10px}
  .history-overview{grid-template-columns:1fr;gap:15px}
  .history-game-heading{margin-bottom:10px;gap:10px}
  #history-game-name{font-size:25px}
  .history-heading-suffix{font-size:13px}
  .game-region-label{font-size:12px}
  .history-game-heading .history-game-description{font-size:13px;line-height:1.7}
  .history-ball-key{gap:5px 13px}
  .history-ball-key>span{font-size:13px}
  .history-game-heading .button{padding:9px;font-size:12px}
  .latest-draw-wrap{padding:12px;border-top-width:2px}
  .latest-draw{flex-direction:column;align-items:flex-start;gap:9px}
  .latest-meta{gap:2px 10px}
  .latest-meta strong{font-size:16px}
  .latest-meta span,.latest-meta p,.latest-label,.history-latest-caption{font-size:12px}
  .latest-draw-wrap .balls{gap:5px}
  .latest-draw-wrap .ball{width:32px;height:32px;font-size:13px}
  .history-source-panel{grid-template-columns:1fr;gap:10px;margin-top:15px;padding:13px 0}
  .history-controls{align-items:end;gap:7px}
  .history-controls label{flex:1;font-size:12px;gap:5px}
  .history-controls select{font-size:14px}
  .history-controls .pill{font-size:11px;padding:4px 6px;margin-bottom:8px}
  .history-status{font-size:12px;line-height:1.8;gap:2px 7px}
  .history-status .snapshot-time{flex-basis:100%}
  .history-status .text-link{font-size:12px;display:inline-flex;align-items:center;min-height:30px}
  .chart-heading{margin-top:17px;flex-direction:column;align-items:stretch;gap:10px}
  .chart-heading h3{font-size:18px;padding:0}
  .chart-controls{gap:9px;min-width:0}
  .chart-controls label{font-size:12px;flex:1;min-width:0}
  .chart-controls select{font-size:14px;padding-left:9px;padding-right:25px;min-width:0}
  .trend-metric-description{font-size:13px;line-height:1.75;margin-top:11px}
  .trend-reading-guide{font-size:12px;gap:4px 12px;padding-top:8px}
  .trend-reading-guide>span:nth-child(2){order:3;flex-basis:100%}
  .trend-chart{min-height:250px;padding-top:12px}
  .trend-chart svg{min-height:240px}
  .chart-axis{font-size:13px}
  .trend-point-detail:has(.trend-detail-caption){grid-template-columns:1fr;gap:8px;padding:12px}
  .trend-detail-caption{font-size:13px}
  .trend-point-detail .ball{width:30px;height:30px;font-size:12px}
  .trend-detail-number{font-size:13px}
  .chart-note{font-size:13px!important;line-height:1.75}
  .data-detail>summary{font-size:13px;min-height:48px}
  .trend-table-details>summary{padding:11px}
  .candidate-topline{margin-bottom:13px}
  .candidate-section h2{font-size:22px}
  .candidate-section .section-heading{margin-bottom:17px}
  .candidate-section .section-heading p,.candidate-game-label{font-size:13px}
  .candidate-section form{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:10px}
  .candidate-section form label,.candidate-section form select{font-size:14px}
  .candidate-section form button{font-size:14px;padding:10px 12px}
  .candidate-empty{min-height:100px;padding:18px 12px;font-size:14px}
  .candidate-ticket{gap:6px;padding:13px 0}
  .candidate-ticket .balls{gap:5px}
  .candidate-ticket .ball{width:31px;height:31px;font-size:13px}
  .candidate-metrics .metric-label,.candidate-method,.candidate-explainer p,.candidate-ai-state,.candidate-record-hint{font-size:13px}
  .purchase-section{margin-bottom:16px}
  .purchase-heading{gap:10px;margin-bottom:20px}
  .purchase-title-row{gap:8px}
  .purchase-title-row h2{font-size:21px}
  .purchase-heading>.button{padding:10px;font-size:12px}
  .purchase-heading>div>p{font-size:13px;line-height:1.7}
  .purchase-entry-heading{gap:8px;margin-bottom:15px}
  .purchase-origin{font-size:12px}
  .purchase-target-fields{grid-template-columns:minmax(0,1fr);gap:14px}
  .purchase-bottom-fields{grid-template-columns:90px minmax(0,1fr);gap:12px}
  .purchase-field-hint{font-size:13px;line-height:1.75;margin-bottom:16px}
  .purchase-sync-status,.purchase-sync-status .fine-print,.purchase-hit-result,.purchase-record-note{font-size:13px}
  .purchase-record{padding:13px}
  .purchase-record .ball{width:29px;height:29px;font-size:12px}
  .purchase-ticket{gap:8px}
  .purchase-hit-result{padding-left:0}
  .purchase-outcome{align-items:flex-start;flex-direction:column}
  .purchase-empty{padding:23px 15px;min-height:150px}
  .purchase-service-note{margin-top:20px;padding-top:15px}
  .purchase-service-note p,.purchase-section>.fine-print{font-size:13px}
  .tool-disclosure{margin:12px 0}
  .tool-disclosure>summary{min-height:82px;padding:15px;gap:11px}
  .tool-disclosure>summary strong{font-size:15px}
  .tool-disclosure>summary small{font-size:13px;line-height:1.65}
  .disclosure-icon{flex-basis:29px;height:29px;font-size:18px}
  .disclosure-chevron{font-size:20px}
  .disclosure-content{padding:18px 15px}
  .tool-disclosure .section-heading h2{font-size:21px}
  .auth-gate{padding:13px;flex-direction:column;align-items:flex-start;gap:5px}
  .auth-gate p{align-items:flex-start;font-size:14px}
  .panel,.split-grid .panel{padding:16px}
  .two-fields{gap:12px}
  .import-panel .two-fields{grid-template-columns:85px minmax(0,1fr)}
  .import-panel textarea{font-size:14px}
  .demo-action{flex-direction:column;gap:5px}
  .notice{padding:12px;font-size:14px;flex-direction:column;gap:6px}
  .notice-paper{flex-direction:row;align-items:flex-start;gap:9px}
  .probability-panel{padding:16px}
  .probability-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .probability-controls .button{grid-column:1/-1;margin:0;width:100%}
  .coverage-fraction{font-size:29px}
  .probability-secondary{grid-template-columns:1fr 1fr;gap:16px}
  .probability-secondary>.metric:last-child{grid-column:1/-1}
  .probability-secondary .metric-value{font-size:18px}
  .distribution-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .principle-note{padding:12px;align-items:flex-start}
  .inline-form{grid-template-columns:1fr 1fr;gap:14px 12px}
  .method-entry{grid-template-columns:1fr auto;gap:8px}
  .method-entry p{grid-row:2;grid-column:1/-1}
  .method-entry a{grid-row:1;grid-column:2}
  .result-heading,.review-heading{display:block}
  .history-select{width:100%;margin-top:12px}
  .experiment-result{padding:16px}
  .result-topline{align-items:flex-start;flex-direction:column;gap:11px}
  .result-metrics{grid-template-columns:1fr 1fr;gap:18px 13px}
  .result-metrics .metric+.metric{padding-left:0;border:0}
  .result-metrics .metric:nth-child(even){padding-left:13px;border-left:1px solid var(--line)}
  .result-metrics .metric-value{font-size:23px}
  .review-heading .fine-print{margin-top:6px}
  .review-grid{grid-template-columns:1fr;gap:12px}
  .ai-block{grid-column:auto}
  .review-engine,.check-list li{font-size:14px}
  .lesson-text,.lesson-record h4,.record-time{font-size:14px}
  .page-footer{padding:22px 0;gap:9px}
  .page-footer p{font-size:13px;line-height:1.8}
  dialog{padding:22px}
  dialog h2{font-size:24px}
  .catalog-content{padding:18px 15px}
  .catalog-intro{display:block}
  .catalog-intro h2{font-size:18px}
  .catalog-scope{display:block;max-width:none;margin-top:8px;text-align:left;font-size:13px}
  .catalog-supported{grid-template-columns:1fr;gap:12px;margin-top:17px}
  .catalog-game{padding:16px}
  .catalog-game-kind{min-height:0;font-size:14px}
  .catalog-game dl>div{font-size:13px;padding:9px 0}
  .catalog-directory-heading{align-items:flex-start;flex-direction:column;gap:7px;margin-top:23px}
  .catalog-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}
  .workspace-feedback:has(>:not([hidden])){align-items:flex-start;flex-direction:column;gap:9px;padding:12px 14px}
}
@media(max-width:370px){
  main{padding-left:10px;padding-right:10px}
  .app-header{padding-left:12px;padding-right:12px}
  .brand strong{font-size:19px}
  .account-name{max-width:50px}
  .compact-select select{font-size:13px;padding-right:18px}
  .account-controls{gap:5px;padding-left:0}
  .account-controls .button{font-size:12px;padding-left:9px;padding-right:9px}
  .quick-start>button{padding-left:3px;padding-right:3px;gap:1px}
  .quick-start strong{font-size:11px}
  .history-section,.candidate-section,.purchase-section{padding-left:12px;padding-right:12px}
  .latest-draw-wrap .balls,.trend-point-detail .balls{gap:4px}
  .latest-draw-wrap .ball,.trend-point-detail .ball{width:28px;height:28px;font-size:12px}
  .candidate-ticket .balls{gap:4px}
  .candidate-ticket .ball{width:28px;height:28px;font-size:12px}
  .candidate-section form{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:7px}
  .candidate-section form button{padding-left:9px;padding-right:9px;font-size:13px}
  .candidate-section form select{padding-left:9px}
  .history-controls{flex-wrap:wrap}
  .history-controls label{min-width:155px}
  .catalog-game dl>div{flex-direction:column;gap:2px}
  .catalog-game dd{margin-left:0;text-align:left}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
