:root{--canvas: #f4f6fb;--canvas-deep: #eaeef7;--card: #ffffff;--card-muted: #f8fafd;--ink: #101a38;--ink-secondary: #5a6885;--ink-tertiary: #8c97ae;--brand: #2456d6;--brand-deep: #16307f;--brand-soft: #e6ecfc;--positive: #0b8a5b;--positive-soft: #e2f5ee;--negative: #c8323b;--negative-soft: #fce9ea;--gold: #c98a08;--gold-soft: #fcf2dc;--border: #e1e7f2;--border-strong: #cbd5e8;--loto: #2456d6;--euromillions: #6b3fd4;--eurodreams: #0e8391;--card-radius: 18px;--control-radius: 10px;--gutter: 18px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-figure: ui-rounded, "SF Pro Rounded", var(--font);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--canvas);color:var(--ink);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select{font-family:inherit;color:inherit}.shell{display:flex;height:100%;overflow:hidden}.sidebar{width:232px;flex:0 0 232px;background:var(--canvas-deep);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:14px 12px}.brand{display:flex;align-items:center;gap:10px;padding:0 4px 14px}.brand-name{font-size:15px;font-weight:800;letter-spacing:1.4px;color:var(--brand-deep);line-height:1.15}.brand-tagline{font-size:10.5px;color:var(--ink-tertiary)}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:500;color:var(--ink-secondary);text-align:left;width:100%}.nav-item:hover{background:#2456d614}.nav-item[aria-current=page]{background:var(--brand);color:#fff}.sidebar-footer{margin-top:auto;padding:12px 6px 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:7px}.sidebar-game{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:500;color:var(--ink-secondary)}.sidebar-game .count{margin-left:auto;font-size:10.5px;font-weight:600;color:var(--ink-tertiary);font-variant-numeric:tabular-nums}.screen{flex:1;overflow-y:auto;background:var(--canvas)}.page{display:flex;flex-direction:column;gap:var(--gutter);padding:var(--gutter);max-width:1180px}.tabbar{display:none}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--card-radius);padding:20px;box-shadow:0 4px 12px #0b1b3a0d}.card.muted{background:var(--card-muted)}.card.tight{padding:16px}.stack{display:flex;flex-direction:column;gap:var(--gutter)}.row{display:flex;align-items:center;gap:10px}.row.top{align-items:flex-start}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--gutter);align-items:start}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--gutter)}.columns.wide{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.hero-columns{display:grid;grid-template-columns:minmax(280px,1fr) minmax(240px,300px);gap:var(--gutter);align-items:start}.page-title{font-size:26px;font-weight:700;margin:0}.page-caption{font-size:12.5px;color:var(--ink-secondary);margin:3px 0 0}.section-title{font-size:17px;font-weight:700;margin:0}.section-subtitle{font-size:12px;color:var(--ink-secondary);margin:2px 0 0}.label{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-tertiary)}.figure{font-family:var(--font-figure);font-weight:700;font-variant-numeric:tabular-nums}.muted-text{color:var(--ink-secondary);font-size:11.5px}.tertiary-text{color:var(--ink-tertiary);font-size:11px}.ball-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ball{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-family:var(--font-figure);font-weight:600;font-variant-numeric:tabular-nums;border:1.2px solid;flex:none}.ball.main{background:var(--brand-soft);border-color:#2456d659;color:var(--brand-deep)}.ball.special{background:var(--gold-soft);border-color:#c98a0873;color:var(--gold)}.ball.matched{background:var(--positive);border-color:var(--positive);color:#fff}.ball.missed{background:var(--card-muted);border-color:var(--border);color:var(--ink-tertiary)}.ball.dimmed{opacity:.45}.ball-separator{width:1px;background:var(--border-strong);margin:0 2px;flex:none}.pill{display:inline-flex;align-items:center;gap:4px;padding:3.5px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--canvas-deep);color:var(--ink-secondary);white-space:nowrap}.pills{display:flex;flex-wrap:wrap;gap:8px}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.chip{padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:8px 16px;border-radius:var(--control-radius);white-space:nowrap}.btn.primary{background:var(--brand);color:#fff}.btn.primary:hover{background:#1e49bb}.btn.soft{padding:7px 14px;background:#2456d61c;color:var(--brand)}.btn.soft:hover{background:#2456d633}.btn.soft.gold{background:#c98a081f;color:var(--gold)}.btn.soft.grey{background:#5a68851c;color:var(--ink-secondary)}.btn.soft.danger{background:#c8323b1c;color:var(--negative)}.btn.soft.positive{background:#0b8a5b1f;color:var(--positive)}.btn:disabled{opacity:.45;cursor:default}.field{font-size:13px;padding:9px 10px;border-radius:var(--control-radius);background:var(--card-muted);border:1px solid var(--border);width:100%}.field:focus{outline:2px solid rgba(36,86,214,.35);outline-offset:-1px}.search{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--card-muted);border:1px solid var(--border)}.search input{border:none;background:none;outline:none;font-size:12px;width:160px}.segmented{display:inline-flex;background:var(--canvas-deep);border-radius:9px;padding:2px;gap:2px}.segmented button{padding:5px 12px;border-radius:7px;font-size:12px;font-weight:600;color:var(--ink-secondary)}.segmented button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #0b1b3a1f}.switch{position:relative;width:40px;height:23px;border-radius:999px;background:var(--border-strong);flex:none;transition:background .15s}.switch[aria-checked=true]{background:var(--brand)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .15s}.switch[aria-checked=true]:after{transform:translate(17px)}.stepper{display:inline-flex;align-items:center;gap:2px;background:var(--canvas-deep);border-radius:8px;padding:2px}.stepper button{width:26px;height:24px;border-radius:6px;font-size:15px;font-weight:600;color:var(--brand);background:var(--card)}.stepper button:disabled{color:var(--ink-tertiary)}.pad{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px}.pad button{min-height:30px;border-radius:8px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;background:var(--card-muted);border:1px solid var(--border);color:var(--ink)}.pad button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.pad.gold button[aria-pressed=true]{background:var(--gold);border-color:var(--gold)}.pad button:disabled{color:#8c97ae80}.meter{height:8px;border-radius:999px;background:var(--canvas-deep);overflow:hidden}.meter>div{height:100%;border-radius:999px}.tile-value{font-family:var(--font-figure);font-weight:700;font-size:25px;font-variant-numeric:tabular-nums;line-height:1.1}.hero-figure{font-family:var(--font-figure);font-weight:700;font-size:46px;font-variant-numeric:tabular-nums;line-height:1.05}.divider{height:1px;background:var(--border);border:none;margin:0}.draw-row{display:flex;align-items:center;gap:16px;padding:12px 16px;border-radius:12px;background:var(--card);border:1px solid var(--border)}.draw-row.hit{background:#fce9ea8c;border-color:#c8323b4d}.draw-date{width:92px;flex:none}.option-row{display:flex;align-items:center;gap:8px;margin-top:7px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#101a3859;display:flex;align-items:center;justify-content:center;padding:24px;z-index:20}.sheet{background:var(--canvas);border-radius:16px;width:min(640px,100%);max-height:min(760px,100%);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px #0b1b3a47}.sheet-header,.sheet-footer{background:var(--card);padding:var(--gutter);display:flex;align-items:center;gap:10px;flex:none}.sheet-header{border-bottom:1px solid var(--border)}.sheet-footer{border-top:1px solid var(--border);justify-content:flex-end}.sheet-body{overflow-y:auto;padding:var(--gutter);display:flex;flex-direction:column;gap:var(--gutter)}.grid-card{display:flex;flex-direction:column;gap:12px;text-align:left;width:100%}.grid-card.paused{opacity:.65}.grid-metrics{display:flex;justify-content:space-between;gap:10px}.chart{width:100%;overflow:visible}.chart text{font-size:10px;fill:var(--ink-tertiary)}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--ink-secondary)}.legend span.key{display:inline-block;width:18px;height:2.6px;border-radius:1px;margin-right:6px;vertical-align:middle}.banner{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:12px;background:var(--ink);color:#fff;font-size:12.5px;box-shadow:0 12px 30px #0b1b3a4d;max-width:min(560px,calc(100vw - 32px))}.banner button{color:#fff;opacity:.7;font-size:16px;line-height:1}@media(max-width:860px){.shell{flex-direction:column}.sidebar{display:none}.screen{padding-bottom:68px}.page{padding:14px;gap:14px}.page-title{font-size:22px}.hero-figure{font-size:34px}.columns,.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.hero-columns,.columns.wide{grid-template-columns:1fr}.draw-row{flex-direction:column;align-items:stretch;gap:9px}.draw-date{width:auto}.search input{width:100%}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:10}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:600;color:var(--ink-tertiary);padding:4px 0}.tabbar button[aria-current=page]{color:var(--brand)}.sheet-backdrop{padding:0;align-items:flex-end}.sheet{max-height:92vh;width:100%;border-radius:16px 16px 0 0}}
