:root{--accent: #c8102e;--accent-deep: #9d0c23;--gold: #d4af37;--gold-soft: #e8cf7a;--bg: #faf8f4;--bg-embellish: #f5efe4;--panel: #ffffff;--panel-2: #fbf8f2;--ink: #2b2320;--ink-2: #6b5f58;--ink-3: #a09187;--line: #eadfd2;--front-ball: linear-gradient(160deg, #d4233f, var(--accent) 55%, var(--accent-deep));--back-ball: linear-gradient(160deg, #3d6fb8, #27508f);--ok: #1f7a44;--danger: #b3261e;--shadow-1: 0 1px 2px rgba(43, 35, 32, .05);--shadow-2: 0 6px 24px -8px rgba(43, 35, 32, .16);--shadow-gold: 0 6px 18px -6px rgba(212, 175, 55, .45);--font: system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--r1: 6px;--r2: 10px;--r3: 16px;--r4: 24px;--ease: cubic-bezier(.22, .9, .36, 1);--dur: .24s;--maxw: 920px;--tabbar-h: 60px}:root[data-theme=dark]{--bg: #191512;--bg-embellish: #14100d;--panel: #241d19;--panel-2: #2b2320;--ink: #f2e9df;--ink-2: #cbc0b4;--ink-3: #948878;--line: #3a312a;--accent: #e0344e;--accent-deep: #b4233a;--gold: #e0c368;--gold-soft: #f0dca0;--front-ball: linear-gradient(160deg, #e44b64, var(--accent) 55%, var(--accent-deep));--back-ball: linear-gradient(160deg, #5d8ec9, #3a6299);--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 8px 28px -10px rgba(0, 0, 0, .6)}:root[data-motion=off] *,:root[data-motion=off] *:before,:root[data-motion=off] *:after{animation:none!important;transition:none!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}h2,h3{margin:0}:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:var(--r1)}:root[data-festive=on] body{background:var(--bg-embellish)}:root[data-festive=on] .app-header{background:radial-gradient(circle at 12% -40%,rgba(212,175,55,.16),transparent 55%),radial-gradient(circle at 88% -60%,rgba(200,16,46,.2),transparent 55%),linear-gradient(150deg,var(--accent-deep),var(--accent) 48%,#a81129 78%,#7e0d1f)}:root[data-festive=on] .brand-mark{background:radial-gradient(circle at 30% 25%,#f6e7b4,var(--gold) 60%,#b8912a)}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-main{flex:1;width:min(var(--maxw),100% - var(--s5));margin:0 auto;padding:var(--s5) 0 calc(var(--s6) + var(--tabbar-h))}.app-footer{display:flex;flex-direction:column;align-items:center;gap:var(--s2);text-align:center;color:var(--ink-3);font-size:12px;padding:var(--s4) var(--s4) calc(var(--s5) + var(--tabbar-h) + env(safe-area-inset-bottom,0px))}.offline-badge{border:1px solid var(--line);border-radius:999px;background:var(--panel-2);color:var(--ink-2);font-size:11.5px;padding:3px 12px;cursor:pointer;transition:all var(--dur) var(--ease);min-height:26px}.offline-badge:hover{border-color:var(--accent);color:var(--accent)}.offline-badge.ready{color:var(--ok);border-color:#1f7a4466}.offline-badge.ready{border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.offline-badge.checking{color:var(--ink-3)}.app-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:calc(10px + env(safe-area-inset-top,0px)) max(var(--s4),calc((100% - var(--maxw)) / 2)) 10px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:var(--shadow-1)}:root:not([data-festive=on]) .app-header{background:var(--panel)}.brand{display:flex;align-items:center;gap:var(--s2);color:inherit}.brand-mark{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:17px;background:var(--accent);box-shadow:var(--shadow-gold)}.brand-name{font-weight:700;font-size:17px;color:#fff;letter-spacing:.5px}.brand-divider{width:1px;height:16px;background:#ffffff59}.brand-sub{font-size:11px;color:#ffffffbf;letter-spacing:1px}:root:not([data-festive=on]) .brand-name,:root:not([data-festive=on]) .brand-sub{color:var(--ink)}:root:not([data-festive=on]) .brand-divider{background:var(--line)}:root:not([data-festive=on]) .brand-sub{color:var(--ink-3)}.top-nav{display:none;gap:var(--s1)}.top-nav-item{padding:var(--s2) var(--s3);border-radius:var(--r2);color:#ffffffe0;font-weight:500;transition:background var(--dur) var(--ease)}.top-nav-item:hover{background:#ffffff24}.top-nav-item.active{background:#ffffff38;font-weight:700}:root:not([data-festive=on]) .top-nav-item{color:var(--ink-2)}:root:not([data-festive=on]) .top-nav-item:hover{background:var(--panel-2)}:root:not([data-festive=on]) .top-nav-item.active{color:var(--accent);background:var(--panel-2)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;height:var(--tabbar-h);background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:var(--ink-3);font-size:11px;min-height:44px}.bottom-nav-item .bottom-icon{font-size:19px;line-height:1}.bottom-nav-item.active{color:var(--accent);font-weight:600}.page{display:flex;flex-direction:column;gap:var(--s4);animation:page-in var(--dur) var(--ease)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3)}.page-title{font-size:22px;letter-spacing:.5px}.page-subtitle{margin:var(--s1) 0 0;color:var(--ink-2);font-size:13px}.section-title{font-size:15px;margin-bottom:var(--s2)}.section-desc{margin:0 0 var(--s3);color:var(--ink-2);font-size:13.5px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r3);padding:var(--s4);box-shadow:var(--shadow-1)}.rule-text{margin:var(--s3) 0 0;color:var(--ink-2);font-size:13px}.disclaimer{color:var(--ink-3);font-size:12.5px;text-align:center;padding:var(--s3) var(--s4) 0;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);border:1px solid transparent;border-radius:var(--r2);padding:var(--s2) var(--s4);font-weight:600;font-size:14px;cursor:pointer;min-height:40px;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease);user-select:none}.btn:active{transform:scale(.97)}.btn.primary{color:#fff;background:linear-gradient(150deg,var(--accent),var(--accent-deep));box-shadow:0 6px 16px -6px #c8102e8c;box-shadow:0 6px 16px -6px color-mix(in srgb,var(--accent) 55%,transparent)}:root[data-festive=on] .btn.primary{background:linear-gradient(150deg,var(--accent),var(--accent-deep));background:linear-gradient(150deg,color-mix(in srgb,var(--gold) 24%,var(--accent)),var(--accent-deep))}.btn.primary:hover{filter:brightness(1.06)}.btn.big{padding:var(--s3) var(--s6);font-size:16px;min-height:48px}.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink-2)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}.btn.danger{background:transparent;border-color:#b3261e66;color:var(--danger)}.btn.danger{border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.btn.danger:hover{background:#b3261e14}.btn.danger:hover{background:color-mix(in srgb,var(--danger) 8%,transparent)}.btn.small{padding:var(--s1) var(--s3);min-height:34px;font-size:13px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{display:flex;flex-wrap:wrap;gap:var(--s2)}.icon-btn{border:1px solid var(--line);background:var(--panel-2);border-radius:var(--r2);padding:5px 12px;font-size:12.5px;min-height:32px;color:var(--ink-2);cursor:pointer;transition:all var(--dur) var(--ease)}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.icon-btn.fav-on{color:var(--gold);border-color:var(--gold)}.ball{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;box-shadow:inset 0 -3px 6px #00000038,var(--shadow-1);animation:ball-pop .32s var(--ease) backwards}.ball-front{background:var(--front-ball)}.ball-back{background:var(--back-ball)}@keyframes ball-pop{0%{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}.ball-group{display:inline-flex;align-items:center;gap:var(--s1)}.ball-sep{color:var(--ink-3);margin:0 2px}.ticket-numbers{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1)}.ticket-card{display:flex;align-items:center;gap:var(--s3);background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r2);padding:var(--s3) var(--s4);box-shadow:var(--shadow-1);animation:card-in .3s var(--ease) backwards}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.ticket-index{color:var(--gold);font-weight:700;font-size:13px;min-width:22px}.ticket-actions{display:flex;align-items:center;gap:var(--s2);margin-left:auto;flex-wrap:wrap}.entry-time{color:var(--ink-3);font-size:11.5px;white-space:nowrap}.ticket-list{display:flex;flex-direction:column;gap:var(--s2)}.ticket-list .ticket-card:nth-child(1){animation-delay:.02s}.ticket-list .ticket-card:nth-child(2){animation-delay:.05s}.ticket-list .ticket-card:nth-child(3){animation-delay:.08s}.ticket-list .ticket-card:nth-child(4){animation-delay:.11s}.ticket-list .ticket-card:nth-child(5){animation-delay:.14s}.results-meta{color:var(--ink-2);font-size:13px;padding:0 var(--s1)}.meta-sub{color:var(--ink-3);margin-left:var(--s2);font-size:12px}.game-tab{display:inline-flex;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r3);padding:3px;gap:3px}.game-tab-item{border:none;background:transparent;border-radius:var(--r2);padding:var(--s2) var(--s6);font-weight:600;color:var(--ink-2);cursor:pointer;transition:all var(--dur) var(--ease)}.game-tab-item.active{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-1)}.pick-controls{display:flex;flex-direction:column;gap:var(--s3)}.control-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3)}.control-label{font-weight:600;font-size:14px;min-width:4.5em}.control-actions{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s1)}.count-picker{display:inline-flex;gap:var(--s1);flex-wrap:wrap}.count-btn{width:46px;height:40px;border-radius:var(--r2);border:1px solid var(--line);background:var(--panel-2);cursor:pointer;font-weight:700;font-variant-numeric:tabular-nums;transition:all var(--dur) var(--ease)}.count-btn:hover{border-color:var(--accent)}.count-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.segment{display:inline-flex;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}.segment-btn{border:none;background:var(--panel-2);padding:var(--s2) var(--s4);cursor:pointer;color:var(--ink-2)}.segment-btn.active{background:var(--accent);color:#fff;font-weight:600}.switch{display:inline-flex;align-items:center;gap:var(--s2);cursor:pointer}.switch input{position:absolute;opacity:0;width:44px;height:26px;margin:0;cursor:pointer}.switch .slider{width:44px;height:26px;border-radius:13px;background:var(--line);position:relative;transition:background var(--dur) var(--ease);flex:none}.switch .slider:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:transform var(--dur) var(--ease)}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:after{transform:translate(18px)}.switch input:focus-visible+.slider{outline:2px solid var(--gold);outline-offset:2px}.switch-text{color:var(--ink-2);font-size:13px}.switch.compact .switch-text{font-size:12.5px}.radio-chip{border:1px solid var(--line);border-radius:999px;padding:var(--s1) var(--s3);cursor:pointer;font-size:13px;color:var(--ink-2);background:var(--panel-2);display:inline-flex;align-items:center;gap:var(--s1);transition:all var(--dur) var(--ease)}.radio-chip input{display:none}.radio-chip.active{border-color:var(--accent);color:var(--accent);background:#c8102e12}.radio-chip.active{background:color-mix(in srgb,var(--accent) 7%,transparent)}.entry-toolbar{display:flex;flex-direction:column;gap:var(--s2)}.toolbar-row{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.search-input{flex:1;min-width:200px;height:40px;border:1px solid var(--line);border-radius:var(--r2);padding:0 var(--s3);background:var(--panel-2);color:var(--ink);font-size:16px}.search-input:focus{border-color:var(--accent);outline:none}.toolbar-stat{color:var(--ink-3);font-size:12.5px;margin-left:auto}.entry-list{display:flex;flex-direction:column;gap:var(--s2)}.entry-row{display:flex;align-items:center;gap:var(--s2)}.entry-row .entry-check{width:18px;height:18px;accent-color:var(--accent);flex:none}.entry-row .ticket-card{flex:1}.next-draw{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s5)}.next-draw-main{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap}.next-label{color:var(--ink-2);font-size:13px}.next-date{font-size:22px;color:var(--accent);font-variant-numeric:tabular-nums}.next-week{color:var(--ink-2);font-size:13px}.next-draw-note{color:var(--ink-3);font-size:12.5px;width:100%}.cal-toolbar{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.cal-title{font-size:16px;margin:0 var(--s2)}.view-switch{display:inline-flex;margin-left:auto;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}.view-btn{border:none;background:var(--panel-2);padding:var(--s1) var(--s4);font-size:13px;cursor:pointer;color:var(--ink-2)}.view-btn.active{background:var(--accent);color:#fff}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:0}.cal-cell{aspect-ratio:1;display:grid;place-items:center;border-radius:var(--r1);font-size:14px;font-variant-numeric:tabular-nums;position:relative;color:var(--ink-2)}.cal-head{aspect-ratio:auto;color:var(--ink-3);font-size:12px;padding:var(--s1) 0}.cal-cell.blank{visibility:hidden}.cal-cell.day{background:var(--panel-2)}.cal-cell.day.draw-day{background:#c8102e1a;color:var(--accent);font-weight:700}.cal-cell.day.draw-day{background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid rgba(200,16,46,.35);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.cal-cell.day.today{outline:2px solid var(--gold);outline-offset:-2px}.draw-dot{position:absolute;bottom:3px;right:3px;font-size:9px;line-height:1;padding:2px;border-radius:4px;background:var(--accent);color:#fff;font-weight:700}.draw-list{list-style:none;margin:0;padding:var(--s3);display:flex;flex-direction:column;gap:var(--s2)}.draw-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-bottom:1px dashed var(--line)}.draw-item:last-child{border-bottom:none}.draw-item.today .draw-date{color:var(--accent);font-weight:700}.draw-date{font-variant-numeric:tabular-nums;min-width:90px}.draw-week{color:var(--ink-2)}.draw-tag{margin-left:auto;font-size:11.5px;color:var(--accent);border:1px solid rgba(200,16,46,.4);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);padding:2px 8px;border-radius:999px}.paste-label{display:block;font-size:13px;color:var(--ink-2);margin:var(--s3) 0 var(--s1)}.paste-area{width:100%;border:1px solid var(--line);border-radius:var(--r2);background:var(--panel-2);padding:var(--s3);resize:vertical;font-family:ui-monospace,Consolas,monospace;font-size:16px;line-height:1.5}.paste-area:focus{border-color:var(--accent);outline:none}.hidden-input{display:none}.import-error{margin-top:var(--s3);padding:var(--s3);background:#b3261e14;border:1px solid rgba(179,38,30,.35);border-radius:var(--r2);color:var(--danger);font-size:13px}.import-error{background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.import-preview{margin-top:var(--s3);padding:var(--s3);background:var(--panel-2);border-radius:var(--r2);display:flex;flex-direction:column;gap:var(--s2);align-items:flex-start}.preview-line{font-size:13px;color:var(--ink-2)}.preview-line .warn{color:var(--gold)}.data-notes{margin:0;padding-left:1.2em;color:var(--ink-2);font-size:13px;display:flex;flex-direction:column;gap:var(--s1)}.data-notes code{background:var(--panel-2);padding:1px 6px;border-radius:4px;font-size:12px}.color-presets{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.color-swatch{width:34px;height:34px;border-radius:50%;cursor:pointer;border:2px solid var(--line);display:grid;place-items:center;font-size:9px;color:#fff;background:var(--accent);transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{border-color:var(--gold);box-shadow:0 0 0 3px #d4af3766;box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 40%,transparent)}.swatch-default{font-weight:700}.color-custom{display:inline-flex;align-items:center;gap:var(--s1);border:1px dashed var(--line);border-radius:var(--r2);padding:var(--s1) var(--s3);font-size:12.5px;color:var(--ink-2);cursor:pointer}.color-custom input{width:26px;height:26px;border:none;background:none;padding:0;cursor:pointer}.empty-state{text-align:center;padding:var(--s7) var(--s4);color:var(--ink-3)}.empty-icon{font-size:40px;margin-bottom:var(--s2)}.empty-title{font-size:15px;color:var(--ink-2);font-weight:600}.empty-hint{font-size:13px;margin-top:var(--s1)}.toast-stack{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:var(--s2);align-items:center;pointer-events:none;max-width:calc(100vw - var(--s6))}.toast{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r2);padding:var(--s2) var(--s4);box-shadow:var(--shadow-2);font-size:13.5px;animation:toast-in .28s var(--ease)}.toast-ok{border-left-color:var(--ok)}.toast-error{border-left-color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.modal-mask{position:fixed;inset:0;z-index:90;background:#140e0a73;display:grid;place-items:center;padding:var(--s4);animation:page-in var(--dur) var(--ease)}.modal{background:var(--panel);border-radius:var(--r3);padding:var(--s5);max-width:420px;width:100%;box-shadow:var(--shadow-2)}.modal-title{font-size:17px;margin-bottom:var(--s2)}.modal-body{color:var(--ink-2);font-size:13.5px;margin:0 0 var(--s4);word-break:break-word}.modal-actions{display:flex;justify-content:flex-end;gap:var(--s2)}@media (min-width: 900px){.bottom-nav{display:none}.top-nav{display:flex}.app-main{padding-bottom:var(--s6)}.app-footer{padding-bottom:var(--s5)}}@media (max-width: 899px){.top-nav,.brand-divider,.brand-sub{display:none}.page-title{font-size:19px}.ticket-card{flex-wrap:wrap}.ticket-actions{margin-left:auto}.cal-cell{font-size:13px}}@media (max-width: 560px){body{font-size:14.5px}.app-main{width:calc(100% - var(--s4));padding-top:var(--s4)}.ball{width:30px;height:30px;font-size:13.5px}.btn.big,.game-tab{width:100%}.game-tab-item{flex:1;padding:var(--s2) var(--s2)}.count-btn{width:44px}.ticket-index{display:none}.entry-time{font-size:10.5px}.control-label{min-width:100%}.cal-cell{font-size:12px}.draw-dot{font-size:8px}}@media (max-width: 360px){.ball{width:27px;height:27px;font-size:12px}.count-btn{width:40px;height:38px}}@media (max-height: 480px) and (orientation: landscape){.app-main{padding-top:var(--s3);padding-bottom:calc(var(--s4) + var(--tabbar-h))}.page{gap:var(--s3)}.empty-state{padding:var(--s4)}}
