:root{--paper:#f2f5fa;--ink:#243555;--muted:#66758a;--red:#bf3f54;--blue:#3066ad;--line:#dde4ed;--white:#fff;--soft:#eaf0f8;--teal:#267b78;font-family:"Avenir Next","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.45}a{color:var(--blue)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #397bc5;outline-offset:3px}header{height:86px;padding:0 5vw;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:30px;background:#fff}.brand{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:21px;font-weight:700;text-decoration:none;white-space:nowrap}.brand-mark{color:var(--red);font-size:36px;line-height:1}.header-note{font-size:13px;color:var(--muted)}header>button{margin-left:auto}main{max-width:1440px;padding:0 5vw;margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:46px 0 32px}h1{font-size:42px;letter-spacing:-1.5px;line-height:1.3;margin:0 0 14px;font-weight:650}.intro>div>p{font-size:14px;color:var(--muted);margin:0}.honest-note{display:flex;align-items:flex-start;gap:12px;max-width:380px;background:#e8edf5;padding:22px;border-radius:6px}.honest-note strong{font-size:14px}.honest-note p{font-size:12px;line-height:1.85;margin:6px 0 0;color:#53637b}.note-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);margin-top:7px;flex-shrink:0}#status{font-size:12px;color:#52647a;line-height:1.7;min-height:30px;padding-bottom:12px}#status.error{color:#a92e46}.workspace{display:grid;grid-template-columns:245px minmax(0,1fr);gap:26px;align-items:start}.controls{position:sticky;top:20px;background:#fff;padding:22px;border-radius:10px}.segmented{display:flex;background:var(--soft);padding:4px;border-radius:6px;margin-bottom:28px}.segmented button{width:50%;padding:10px 0;background:transparent;color:var(--muted);border-radius:4px;font-weight:600;font-size:14px}.segmented .active{background:var(--ink);color:#fff}.control-block{margin:0 0 24px}label{display:block;font-size:13px;font-weight:600;margin-bottom:9px}select,input{min-height:42px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);padding:8px 10px;max-width:100%;width:100%;font-size:13px}select{cursor:pointer}.control-block p,.data-tools p,.odds p{font-size:11px;line-height:1.8;color:var(--muted);margin:9px 0 0}.two-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.primary{width:100%;padding:14px 15px;display:flex;justify-content:space-between;background:var(--red);color:white;border-radius:5px;font-weight:650;font-size:14px}.primary:hover{background:#a93346}.quiet{color:var(--ink);background:transparent;border:1px solid var(--line);padding:8px 12px;border-radius:5px;font-size:12px;white-space:nowrap}.quiet:hover{background:var(--soft)}.wide{width:100%;margin-top:10px}.odds{margin:25px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.odds>span{font-size:11px;color:var(--muted)}.odds strong{display:block;font-size:19px;margin-top:6px;font-variant-numeric:tabular-nums}.data-tools summary{font-size:12px;cursor:pointer}.upload{margin-top:10px;text-align:center;border:1px dashed var(--line);padding:10px;font-size:12px;cursor:pointer}.upload input{font-size:11px;margin-top:8px}.content{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:22px}section{padding:25px 28px;background:#fff;border-radius:10px}.draw-panel{background:#e7edf7;display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font-size:11px;color:#5a6f91}.draw-panel h2{font-size:17px;margin:8px 0}.draw-panel p{font-size:11px;color:var(--muted);margin:0;line-height:1.7}.balls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ball{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;border-radius:50%;background:#fbecef;color:var(--red);font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.ball.blue{background:#e8f0fb;color:var(--blue)}.ball-divider{height:17px;width:1px;background:#c8d1df;margin:0 3px}.draw-panel .ball{background:#fff}.draw-panel .ball.blue{color:white;background:var(--blue)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}h2{font-size:20px;margin:0;font-weight:650}.section-heading p{font-size:12px;color:var(--muted);line-height:1.8;margin:6px 0 0}.ticket{display:flex;align-items:center;gap:24px;padding:16px 0;border-bottom:1px dashed var(--line)}.ticket:first-child{padding-top:2px}.ticket:last-child{border-bottom:0}.ticket-num{font-size:11px;color:#79889c;width:26px}.ticket .balls{gap:11px}.ticket .ball{height:40px;width:40px;font-size:18px;background:var(--red);color:white}.ticket .blue{background:var(--blue)}.ticket-stats{margin-left:auto;font-size:11px;color:var(--muted);text-align:right;line-height:1.8;white-space:nowrap}.ticket-footer{display:flex;justify-content:space-between;gap:12px;font-size:11px;border-top:1px solid var(--line);padding-top:18px;margin-top:9px;color:var(--muted)}.zone-switch{display:flex;gap:4px}.zone-switch button{background:var(--soft);padding:7px 12px;border-radius:4px;font-size:12px;color:var(--muted);white-space:nowrap}.zone-switch .active{background:var(--ink);color:#fff}.legend{display:flex;gap:20px;font-size:11px;color:var(--muted);margin:0 0 15px}.legend-red{display:inline-block;background:var(--red);height:8px;width:8px;border-radius:2px;margin-right:5px}.frequency{display:flex;align-items:stretch;gap:4px;height:172px;position:relative;padding-top:18px}.freq-col{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;background:transparent;color:var(--muted);padding:0;font-size:10px}.freq-col .bar{width:100%;max-width:28px;background:#e3a3ae;border-radius:3px 3px 0 0;min-height:2px}.freq-col.selected .bar,.freq-col:hover .bar{background:var(--red)}.freq-col .n{height:26px;padding-top:7px;font-variant-numeric:tabular-nums}.freq-col.selected .n{color:var(--red);font-weight:bold}.freq-col .qty{font-size:9px;margin-bottom:5px}.mean-line{position:absolute;left:0;right:0;border-top:1px dashed #9caac0;pointer-events:none;z-index:1}.number-detail{display:flex;gap:18px;align-items:center;margin-top:18px;padding:12px 0;font-size:12px;border-top:1px solid var(--line);flex-wrap:wrap}.number-detail b{color:var(--red)}.occurrences{display:flex;gap:5px;overflow:hidden;margin:8px 0}.occurrences i{display:block;flex:1;max-width:12px;aspect-ratio:1;border-radius:50%;background:#e7ecf2}.occurrences .hit{background:var(--red)}.small{font-size:11px;line-height:1.8}.muted{color:var(--muted)}.compact-label{font-size:11px;color:var(--muted);min-width:90px}.compact-label select{margin-top:7px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:22px}.metric{background:#f3f6fa;border-radius:5px;padding:20px}.metric-label{font-size:12px}.metric-value{display:flex;gap:9px;align-items:baseline;margin:10px 0}.metric-value b{font-size:29px;font-weight:600;font-variant-numeric:tabular-nums}.metric-value span{font-size:11px;color:var(--muted)}.metric p{font-size:11px;margin:5px 0;color:var(--muted);line-height:1.7}.verdict{margin:18px 0 0;font-size:12px;line-height:1.9;border-left:3px solid var(--teal);padding:3px 0 3px 14px;color:#4c6475}.curve{margin:18px 0 0}.curve svg{display:block;width:100%;height:auto}.curve text{font-family:inherit;fill:var(--muted);font-size:11px}.history-panel input{width:175px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px;white-space:nowrap}th{font-size:11px;color:var(--muted);font-weight:500;padding:0 12px 14px 0;border-bottom:1px solid var(--line)}td{padding:13px 12px 13px 0;border-bottom:1px solid #edf0f5}td time{display:block;font-size:10px;color:var(--muted);margin-top:4px}td .balls{gap:5px;flex-wrap:nowrap}td .ball{width:26px;height:26px;font-size:11px}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:18px;font-size:11px;color:var(--muted)}footer{display:flex;justify-content:space-between;padding:34px 0;font-size:12px;color:var(--muted)}footer span{font-size:11px}
@media(min-width:1450px){main{padding:0 52px}}@media(max-width:1100px){main{padding:0 3vw}.workspace{grid-template-columns:220px minmax(0,1fr);gap:18px}.controls{padding:18px}section{padding:22px}.draw-panel{display:block}.draw-panel .balls{margin-top:15px}.ticket{gap:12px}.ticket .balls{gap:7px}.ticket .ball{height:34px;width:34px;font-size:16px}.ticket-stats{display:none}.freq-col .qty{font-size:8px}.frequency{gap:3px}.honest-note{max-width:330px}h1{font-size:36px}}@media(max-width:760px){header{height:70px;padding:0 20px;gap:10px}.brand{font-size:17px}.header-note{display:none}main{padding:0 18px}.intro{padding:30px 0 22px;display:block}h1{font-size:34px;letter-spacing:-1px}.honest-note{max-width:none;margin-top:22px;padding:16px}.workspace{display:block}.controls{position:static;display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;padding:18px}.segmented{grid-column:1/-1;margin:0}.control-block{margin:0}.two-controls{grid-column:1/-1;margin:0}.primary{align-items:center}.wide{margin:0}.odds{grid-column:1/-1;margin:0;padding:15px 0}.data-tools{grid-column:1/-1}.data-tools .wide{margin-top:10px}section{padding:20px 17px;border-radius:8px}.section-heading{gap:12px;margin-bottom:20px}h2{font-size:18px}.section-heading p{font-size:11px}.ticket{gap:10px}.ticket .balls{gap:7px}.ticket .ball{height:32px;width:32px;font-size:15px}.ticket-num{width:22px}.ticket-footer{flex-direction:column;gap:5px}.frequency{gap:2px;height:150px}.freq-col .n{font-size:8px}.freq-col .qty{font-size:7px}.metrics{gap:12px}.metric{padding:14px}.metric-value b{font-size:25px}.metric-value{gap:4px}.number-detail{gap:12px}.history-panel .section-heading{flex-direction:column}.history-panel input{width:100%}.legend{gap:10px;font-size:10px}footer{display:block;line-height:2}footer span{display:block}.balls{gap:6px}.draw-panel .ball{width:33px;height:33px;font-size:15px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

@media(max-width:400px){.ticket .balls{gap:4px}.ticket .ball{width:28px;height:28px;font-size:13px}.ticket-num{width:18px}.ticket{gap:8px}}

@media(min-width:761px){.controls{max-height:calc(100vh - 40px);overflow-y:auto;scrollbar-width:thin}}
