/* LottoLoom tools — themeable via the --ll-* custom properties. */
.ll-app {
	--ll-ink: #1b1740;
	--ll-ink-2: #3a3470;
	--ll-muted: #6b6890;
	--ll-line: #e6e3f3;
	--ll-surface: #ffffff;
	--ll-soft: #f5f3fd;
	--ll-accent: #ffb703;
	--ll-accent-ink: #1b1740;
	--ll-primary: #5b3df5;
	--ll-primary-2: #7c5cff;
	--ll-bonus: #ff5d73;
	--ll-lucky: #16c79a;
	--ll-radius: 18px;
	--ll-shadow: 0 1px 2px rgba(27, 23, 64, .06), 0 8px 24px -12px rgba(27, 23, 64, .18);
	color: var(--ll-ink);
	font-size: 16px;
	line-height: 1.5;
	margin: 0 0 2rem;
}
.ll-app *, .ll-app *::before, .ll-app *::after { box-sizing: border-box; }
.ll-app h2, .ll-app h3 { color: var(--ll-ink); margin: 0 0 .5rem; line-height: 1.2; }
.ll-app .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* layout */
.ll-grid { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .ll-grid { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; } }
.ll-main, .ll-side { display: grid; gap: 20px; min-width: 0; }
.ll-card {
	background: var(--ll-surface);
	border: 1px solid var(--ll-line);
	border-radius: var(--ll-radius);
	box-shadow: var(--ll-shadow);
	padding: 20px;
	margin: 0 0 20px;
}
.ll-main > .ll-card, .ll-side > .ll-card, .ll-side > .ll-ad { margin: 0; }
@media (min-width: 600px) { .ll-card { padding: 24px; } }
.ll-two { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .ll-two { grid-template-columns: 1fr 1fr; } }

/* results */
.ll-results { background: linear-gradient(160deg, #221c57 0%, #1b1740 55%, #2c1f6b 100%); border: 0; color: #fff; position: relative; overflow: hidden; }
.ll-results::after { content: ""; position: absolute; inset: auto -60px -80px auto; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(255,183,3,.25), transparent 70%); pointer-events: none; }
.ll-results .ll-results__title { color: #fff; font-size: 1.25rem; }
.ll-results__head { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.ll-card:not(.ll-results) .ll-results__head h2 { font-size: 1.15rem; }
.ll-actions { display: flex; gap: 8px; align-items: center; }
.ll-output { position: relative; z-index: 1; min-height: 56px; }
.ll-results .ll-muted { color: rgba(255,255,255,.7); }
.ll-results .ll-hint { color: rgba(255,255,255,.75); }
.ll-error { background: #fff1f2; color: #9f1239; border-radius: 10px; padding: 10px 12px; margin: 12px 0 0; font-size: .92rem; }
.ll-success { background: #ecfdf5; color: #065f46; border-radius: 10px; padding: 12px 14px; margin-top: 12px; }
.ll-success p { margin: 0 0 8px; }

.ll-line { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px dashed rgba(255,255,255,.12); }
.ll-line:first-child { border-top: 0; }
.ll-card:not(.ll-results) .ll-line { border-top-color: var(--ll-line); }
.ll-line__no { flex: 0 0 auto; width: 22px; text-align: right; font-size: .8rem; opacity: .55; font-variant-numeric: tabular-nums; }
.ll-balls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ll-ball {
	--size: 42px;
	width: var(--size); height: var(--size);
	display: inline-grid; place-items: center;
	border-radius: 50%;
	font-weight: 800; font-size: calc(var(--size) * .38);
	font-variant-numeric: tabular-nums;
	color: var(--ll-ink);
	background: radial-gradient(circle at 32% 28%, #fff 0 18%, #fff5d6 34%, var(--ll-accent) 78%, #e09a00 100%);
	box-shadow: inset 0 -3px 6px rgba(0,0,0,.15), 0 4px 10px -4px rgba(0,0,0,.45);
	letter-spacing: -.02em;
}
.ll-ball--bonus { color: #fff; background: radial-gradient(circle at 32% 28%, #ffd0d7 0 14%, #ff8a9b 36%, var(--ll-bonus) 76%, #d63750 100%); }
.ll-ball--lucky { color: #fff; background: radial-gradient(circle at 32% 28%, #d4fff1 0 14%, #5de3bd 36%, var(--ll-lucky) 76%, #0d9a76 100%); }
.ll-ball--mini { --size: 14px; vertical-align: middle; }
.ll-plus { font-weight: 800; opacity: .6; padding: 0 2px; }
@media (max-width: 480px) { .ll-card { padding: 16px; } .ll-ball { --size: 34px; } .ll-balls { gap: 5px; } .ll-line { gap: 8px; } }
.ll-output.is-fresh .ll-ball, .ll-output.is-fresh .ll-pill { animation: ll-pop .42s cubic-bezier(.2, 1.4, .4, 1) both; animation-delay: calc(var(--i, 0) * 45ms); }
@keyframes ll-pop { from { transform: translateY(-10px) scale(.6) rotate(-40deg); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .ll-output.is-fresh .ll-ball, .ll-output.is-fresh .ll-pill { animation: none; } }
.ll-pill { display: inline-block; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font-weight: 600; }
.ll-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; columns: 14ch auto; column-gap: 24px; margin: 0; padding-left: 3.2em; font-size: .92rem; }
.ll-results .ll-mono { color: #fff; }

/* buttons */
.ll-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font: inherit; font-weight: 700; font-size: .95rem; line-height: 1;
	padding: 12px 18px; border-radius: 12px; border: 1px solid transparent;
	cursor: pointer; text-decoration: none !important; transition: transform .12s, background .2s, box-shadow .2s;
}
.ll-btn:active { transform: translateY(1px); }
.ll-btn:disabled { opacity: .6; cursor: default; }
.ll-btn--primary { background: linear-gradient(135deg, var(--ll-primary), var(--ll-primary-2)); color: #fff !important; box-shadow: 0 8px 20px -10px var(--ll-primary); }
.ll-btn--primary:hover { box-shadow: 0 10px 24px -8px var(--ll-primary); }
.ll-btn--ghost { background: transparent; border-color: currentColor; color: inherit; padding: 8px 12px; font-size: .85rem; }
.ll-results .ll-btn--ghost { color: #fff; border-color: rgba(255,255,255,.35); }
.ll-results .ll-btn--ghost:hover { background: rgba(255,255,255,.1); }
.ll-btn--block { width: 100%; padding: 16px; font-size: 1.05rem; margin-top: 6px; }
.ll-icon-btn { background: none; border: 0; cursor: pointer; font-size: 1.5rem; line-height: 1; color: var(--ll-accent); padding: 4px 6px; }

/* controls */
.ll-controls { display: grid; gap: 16px; }
.ll-input {
	font: inherit; color: var(--ll-ink); background: var(--ll-soft);
	border: 1.5px solid var(--ll-line); border-radius: 10px; padding: 10px 12px; width: 100%;
	transition: border-color .15s, box-shadow .15s;
}
.ll-input:focus { outline: none; border-color: var(--ll-primary); box-shadow: 0 0 0 3px rgba(91, 61, 245, .18); background: #fff; }
textarea.ll-input { resize: vertical; min-height: 84px; }
.ll-input--num { width: 5.2em; text-align: center; padding: 8px 4px; font-weight: 700; -moz-appearance: textfield; }
.ll-range { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-weight: 600; }
.ll-range__bonus { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.ll-range__bonus[hidden] { display: none; }
.ll-row { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.ll-lines { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; }
.ll-field { display: grid; gap: 6px; }
.ll-field__label { font-weight: 700; font-size: .9rem; }
.ll-hint { font-size: .85rem; color: var(--ll-muted); margin: 0; }
.ll-muted { color: var(--ll-muted); }
.ll-disclaimer { font-size: .8rem; color: var(--ll-muted); margin: 0; text-align: center; }
.ll-hp { position: absolute; left: -9999px; }

.ll-switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 600; user-select: none; }
.ll-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ll-switch__track { width: 42px; height: 24px; border-radius: 99px; background: #d6d2ea; position: relative; transition: background .2s; flex: 0 0 auto; }
.ll-switch__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s; }
.ll-switch input:checked + .ll-switch__track { background: var(--ll-primary); }
.ll-switch input:checked + .ll-switch__track::after { transform: translateX(18px); }
.ll-switch input:focus-visible + .ll-switch__track { box-shadow: 0 0 0 3px rgba(91, 61, 245, .3); }

.ll-seg { display: inline-flex; flex-wrap: wrap; border: 0; margin: 0; padding: 4px; background: var(--ll-soft); border-radius: 12px; gap: 2px; }
.ll-seg--wide { display: flex; }
.ll-seg--wide label { flex: 1; }
.ll-seg label { position: relative; cursor: pointer; }
.ll-seg input { position: absolute; opacity: 0; }
.ll-seg span { display: block; padding: 8px 14px; border-radius: 9px; font-weight: 600; font-size: .9rem; color: var(--ll-muted); text-align: center; transition: background .15s, color .15s; }
.ll-seg input:checked + span { background: #fff; color: var(--ll-ink); box-shadow: 0 1px 4px rgba(27,23,64,.15); }
.ll-seg input:focus-visible + span { outline: 2px solid var(--ll-primary); }

.ll-more { border: 1.5px dashed var(--ll-line); border-radius: 14px; padding: 0 16px; }
.ll-more summary { cursor: pointer; font-weight: 700; padding: 14px 0; color: var(--ll-primary); list-style: none; }
.ll-more summary::-webkit-details-marker { display: none; }
.ll-more summary::before { content: "✦ "; color: var(--ll-accent); }
.ll-more[open] summary { border-bottom: 1px solid var(--ll-line); margin-bottom: 14px; }
.ll-more__body { display: grid; gap: 14px; padding-bottom: 16px; }
@media (min-width: 600px) { .ll-more__body { grid-template-columns: 1fr 1fr; } }

/* info + pick */
.ll-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 800; color: var(--ll-primary); margin: 0 0 4px; }
.ll-info__name { font-size: 1.4rem; }
.ll-info__rules { color: var(--ll-muted); margin: 0 0 14px; font-size: .92rem; }
.ll-stats { margin: 0; display: grid; gap: 12px; }
.ll-stats div { background: var(--ll-soft); border-radius: 12px; padding: 10px 12px; }
.ll-stats dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ll-muted); font-weight: 700; }
.ll-stats dd { margin: 2px 0 0; font-weight: 800; font-size: 1.05rem; word-break: break-word; }
.ll-stats dd small { display: block; font-weight: 500; font-size: .8rem; color: var(--ll-muted); }
.ll-stats--grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); margin-top: 14px; }
.ll-pick__title { font-size: 1.05rem; }
.ll-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ll-chip {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 14px; border-radius: 999px; font: inherit; font-size: .88rem; font-weight: 700;
	background: var(--ll-soft); color: var(--ll-ink) !important; border: 1.5px solid var(--ll-line);
	text-decoration: none !important; cursor: pointer; transition: all .15s;
}
.ll-chip:hover { border-color: var(--ll-primary); color: var(--ll-primary) !important; }
.ll-chip.is-active { background: var(--ll-ink); border-color: var(--ll-ink); color: #fff !important; }
.ll-chip--accent { background: var(--ll-accent); border-color: var(--ll-accent); color: var(--ll-accent-ink) !important; }
.ll-chip--more { background: transparent; border-style: dashed; }
.ll-chip--saved { padding: 4px 6px 4px 14px; }
.ll-chip--saved a { color: inherit; text-decoration: none; }
.ll-chip--saved button { border: 0; background: rgba(27,23,64,.08); border-radius: 50%; width: 24px; height: 24px; cursor: pointer; font-size: 1rem; line-height: 1; color: inherit; }

.ll-ad { text-align: center; }
.ll-ad__label { display: block; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ll-muted); margin-bottom: 4px; }

/* dialog */
.ll-dialog { border: 0; border-radius: var(--ll-radius); padding: 0; max-width: min(520px, calc(100vw - 32px)); width: 100%; box-shadow: 0 30px 60px -20px rgba(27,23,64,.5); color: var(--ll-ink); }
.ll-dialog::backdrop { background: rgba(27, 23, 64, .55); backdrop-filter: blur(3px); }
.ll-dialog__form { padding: 24px; display: grid; gap: 14px; }
.ll-dialog__form h3 { margin: 0; }
.ll-dialog__form p { margin: 0; }
.ll-dialog__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ll-dialog__actions { display: flex; justify-content: flex-end; gap: 10px; }
.ll-dialog .ll-btn--ghost { padding: 12px 18px; font-size: .95rem; }
@media (max-width: 480px) { .ll-dialog__grid { grid-template-columns: 1fr 1fr; } }

/* numerology / horoscope */
.ll-profile { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.ll-profile__item { display: flex; gap: 12px; align-items: flex-start; background: var(--ll-soft); border-radius: 14px; padding: 12px; }
.ll-profile__item p { margin: 2px 0 0; font-size: .88rem; color: var(--ll-muted); }
.ll-profile__num { flex: 0 0 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: var(--ll-ink); color: var(--ll-accent); font-weight: 800; font-size: 1.2rem; }
.ll-zodiac { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; }
.ll-zodiac__sign { position: relative; display: grid; justify-items: center; gap: 2px; padding: 10px 4px; border-radius: 14px; border: 1.5px solid var(--ll-line); background: var(--ll-soft); cursor: pointer; font-weight: 700; font-size: .82rem; transition: all .15s; }
.ll-zodiac__sign input { position: absolute; opacity: 0; }
.ll-zodiac__glyph { font-size: 1.6rem; line-height: 1.1; color: var(--ll-primary); }
.ll-zodiac__sign:has(input:checked) { background: var(--ll-ink); border-color: var(--ll-ink); color: #fff; }
.ll-zodiac__sign:has(input:checked) .ll-zodiac__glyph { color: var(--ll-accent); }
.ll-zodiac__sign:has(input:focus-visible) { outline: 2px solid var(--ll-primary); }
.ll-sign { display: flex; gap: 16px; align-items: center; }
.ll-sign h2 { margin: 0; }
.ll-sign p { margin: 0; }
.ll-sign__glyph { width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; font-size: 2.2rem; background: var(--ll-ink); color: var(--ll-accent); }

/* directories */
.ll-directory__region { font-size: 1.1rem; }
.ll-directory__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.ll-directory__list a { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: var(--ll-soft); border: 1.5px solid transparent; text-decoration: none !important; color: var(--ll-ink) !important; transition: border-color .15s; }
.ll-directory__list a:hover { border-color: var(--ll-primary); }
.ll-directory__list span { font-size: .82rem; color: var(--ll-muted); }
.ll-pagination { display: flex; gap: 6px; flex-wrap: wrap; }
.ll-pagination .page-numbers { padding: 6px 12px; border-radius: 8px; background: var(--ll-soft); text-decoration: none; }
.ll-pagination .current { background: var(--ll-ink); color: #fff; }
.ll-hist { border-top: 1px solid var(--ll-line); padding: 10px 0; }
.ll-hist summary { cursor: pointer; }
.ll-hist pre { background: var(--ll-soft); padding: 10px 12px; border-radius: 10px; overflow: auto; font-size: .88rem; margin: 8px 0 0; white-space: pre-wrap; }

/* widget: regions */
.ll-regions__group h4 { margin: 12px 0 6px; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
.ll-regions__group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 12px; }

/* lottery page description */
.ll-about { max-width: 72ch; }

/* ===================== v1.1 additions ===================== */
.ll-toolbar { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12); }
.ll-card:not(.ll-results) .ll-toolbar { border-top-color: var(--ll-line); }
.ll-btn--gold { background: var(--ll-accent); color: var(--ll-accent-ink) !important; padding: 8px 14px; font-size: .85rem; }
.ll-btn--gold[hidden] { display: none; }
.ll-btn--sm { padding: 6px 10px; font-size: .8rem; }
.ll-icon-btn--sound { font-size: 1.2rem; color: #fff; opacity: .85; }
.ll-ball.is-landed { animation: ll-land .25s ease-out; }
@keyframes ll-land { 50% { transform: scale(1.15); } }
.ll-ball--bonus.is-hit, .ll-ball--lucky { box-shadow: inset 0 -3px 6px rgba(0,0,0,.15), 0 0 0 3px rgba(22,199,154,.45); }

.ll-favs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-bottom: 12px; border-bottom: 1px dashed var(--ll-line); }
.ll-favs[hidden] { display: none; }
.ll-favs__label { font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ll-muted); }
.ll-chip--sm { padding: 5px 11px; font-size: .8rem; }

.ll-next { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; background: var(--ll-soft); border-radius: 12px; padding: 10px 12px; margin-top: 12px; }
.ll-next[hidden], .ll-latest[hidden], .ll-jackpot[hidden] { display: none; }
.ll-next__label { width: 100%; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ll-muted); }
.ll-next__when { font-size: 1rem; }
.ll-countdown { font-variant-numeric: tabular-nums; font-weight: 800; color: var(--ll-primary); }
.ll-countdown.is-soon, .ll-countdown.is-live { color: var(--ll-bonus); }
.ll-jackpot { width: 100%; font-size: .9rem; }
.ll-jackpot strong { color: var(--ll-ink); font-size: 1.05rem; }
.ll-latest { margin-top: 12px; }
.ll-latest .ll-ball, .ll-draws .ll-ball, .ll-result-card .ll-ball, .ll-ticket .ll-ball, .ll-sign-card .ll-ball, .ll-stat-groups .ll-ball, .ll-line--draw .ll-ball, .ll-draw-ref .ll-ball, .ll-member .ll-ball { --size: 32px; }
.ll-latest .ll-balls { gap: 5px; margin-top: 6px; }

.ll-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 140%); z-index: 9999; max-width: min(92vw, 520px); background: #1b1740; color: #fff; padding: 12px 18px; border-radius: 14px; box-shadow: 0 16px 40px -12px rgba(0,0,0,.5); font-size: .92rem; transition: transform .3s cubic-bezier(.2,1.2,.4,1); }
.ll-toast.is-shown { transform: translate(-50%, 0); }
.ll-toast a { color: #ffb703; font-weight: 800; margin-left: 6px; }
@media (max-width: 760px) { .has-bottom-nav .ll-toast { bottom: 84px; } }

.ll-inline-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ll-inline-form select { flex: 1 1 220px; width: auto; }
.ll-banner { background: var(--ll-soft); border: 1px solid var(--ll-line); border-radius: 12px; padding: 10px 14px; font-size: .9rem; }
.ll-banner--ok { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.ll-quick { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ll-quick [hidden] { display: none; }

/* results */
.ll-draws { list-style: none; margin: 12px 0 0; padding: 0; }
.ll-draws li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 10px 0; border-top: 1px solid var(--ll-line); }
.ll-draws li:first-child { border-top: 0; }
.ll-draws__date { display: grid; min-width: 140px; font-size: .9rem; }
.ll-upcoming { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.ll-upcoming a { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: var(--ll-soft); text-decoration: none !important; color: var(--ll-ink) !important; border: 1.5px solid transparent; }
.ll-upcoming a:hover { border-color: var(--ll-primary); }
.ll-upcoming span { font-size: .84rem; }
.ll-result-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ll-result-card { background: var(--ll-soft); border-radius: 14px; padding: 12px 14px; }
.ll-result-card header { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 8px; font-size: .9rem; }
.ll-result-card a { color: var(--ll-ink); text-decoration: none; }
.ll-result-card .ll-balls { gap: 5px; }

/* stats */
.ll-stat-groups { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: 8px; }
.ll-stat-groups h3 { font-size: 1rem; }
.ll-stat-groups .ll-balls { gap: 5px; }
.ll-freq { display: flex; align-items: flex-end; gap: 3px; height: 190px; overflow-x: auto; padding: 8px 0 0; }
.ll-freq--bonus { height: 140px; }
.ll-freq__bar { flex: 1 0 18px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; }
.ll-freq__fill { width: 100%; min-height: 2px; border-radius: 6px 6px 2px 2px; background: #c9c2f5; }
.ll-freq__bar.is-hot .ll-freq__fill { background: linear-gradient(180deg, var(--ll-bonus), #ff9f6b); }
.ll-freq__bar.is-cold .ll-freq__fill { background: linear-gradient(180deg, #5aa9ff, #9ccaff); }
.ll-freq__n { font-size: .66rem; font-weight: 700; margin-top: 3px; font-variant-numeric: tabular-nums; }
.ll-freq__c { position: absolute; top: -2px; font-size: .6rem; color: var(--ll-muted); }

/* tickets & checker */
.ll-ticket { border: 1.5px solid var(--ll-line); border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; }
.ll-ticket header { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 6px; }
.ll-ticket header .ll-muted { font-size: .85rem; }
.ll-ticket__status { margin-left: auto; font-size: .8rem; font-weight: 800; padding: 4px 10px; border-radius: 999px; background: var(--ll-soft); }
.ll-ticket__status:empty { display: none; }
.ll-ticket__status.is-wait { color: var(--ll-primary); }
.ll-ticket__status.is-win { background: #dcfce7; color: #166534; }
.ll-ticket__status.is-done { color: var(--ll-muted); }
.ll-ticket__rm { border: 0; background: none; font-size: 1.3rem; cursor: pointer; color: var(--ll-muted); line-height: 1; }
.ll-ticket .ll-line { border-top-color: var(--ll-line); }
.ll-line__score { margin-left: auto; font-size: .82rem; font-weight: 800; white-space: nowrap; opacity: .85; }
.ll-line__date { flex: 0 0 auto; min-width: 118px; font-size: .82rem; opacity: .8; }
.ll-line--draw.is-miss { opacity: .55; }
.ll-draw-ref { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; background: var(--ll-soft); padding: 8px 10px; border-radius: 10px; margin-bottom: 4px; font-size: .82rem; }
.ll-shared-note { background: rgba(255,183,3,.15); color: #ffe3a1; border-radius: 10px; padding: 8px 12px; font-size: .9rem; }

/* daily */
.ll-daily__hero { text-align: center; }
.ll-nod { width: 110px; height: 110px; margin: 8px auto 12px; border-radius: 50%; display: grid; place-items: center; font-size: 3rem; font-weight: 800; color: var(--ll-ink); background: radial-gradient(circle at 32% 28%, #fff 0 18%, #fff5d6 34%, var(--ll-accent) 78%, #e09a00 100%); box-shadow: inset 0 -5px 10px rgba(0,0,0,.15), 0 10px 24px -10px rgba(0,0,0,.45); }
.ll-sign-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.ll-sign-grid .ll-card { margin: 0; }
.ll-sign-card header { display: flex; gap: 12px; align-items: center; margin-bottom: 10px; }
.ll-sign-card h3 { margin: 0; }
.ll-sign-card .ll-balls { gap: 5px; }
.ll-sign-card.is-selected { border-color: var(--ll-primary); box-shadow: 0 0 0 3px rgba(91,61,245,.2), var(--ll-shadow); }
.ll-sign__glyph--sm { width: 44px; height: 44px; border-radius: 12px; font-size: 1.5rem; display: grid; place-items: center; background: var(--ll-ink); color: var(--ll-accent); flex: 0 0 auto; }
.ll-mini-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 12px 0; }
.ll-mini-stats div { background: var(--ll-soft); border-radius: 10px; padding: 6px 8px; }
.ll-mini-stats dt { font-size: .66rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ll-muted); font-weight: 700; }
.ll-mini-stats dd { margin: 0; font-weight: 800; font-size: .9rem; }

/* group */
.ll-member { padding: 10px 0; border-top: 1px dashed rgba(255,255,255,.18); }
.ll-member:first-child { border-top: 0; }
.ll-member header { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.ll-results .ll-member .ll-muted { color: rgba(255,255,255,.7); }

/* reminders */
.ll-checks { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ll-checks legend { margin-bottom: 8px; }
.ll-check { position: relative; cursor: pointer; }
.ll-check input { position: absolute; opacity: 0; }
.ll-check span { display: inline-block; padding: 7px 13px; border-radius: 999px; border: 1.5px solid var(--ll-line); background: var(--ll-soft); font-weight: 700; font-size: .86rem; }
.ll-check input:checked + span { background: var(--ll-ink); border-color: var(--ll-ink); color: #fff; }
.ll-check input:focus-visible + span { outline: 2px solid var(--ll-primary); }
.ll-switch--pad { align-self: end; padding-bottom: 10px; }
.ll-reminders__actions { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.ll-reminders__col { background: var(--ll-soft); border-radius: 14px; padding: 14px; display: grid; gap: 8px; align-content: start; }
.ll-reminders__col h3 { margin: 0; font-size: 1rem; }
.ll-reminders__col [hidden] { display: none; }
.ll-inline { display: flex; gap: 8px; }
.ll-inline .ll-input { flex: 1; min-width: 0; background: #fff; }

/* FAQ */
.ll-faq { max-width: 78ch; margin-top: 24px; }
.ll-faq__item { border-top: 1px solid var(--ll-line, #e6e3f3); padding: 12px 0; }
.ll-faq__item summary { cursor: pointer; font-weight: 700; }
.ll-faq__item p { margin: 8px 0 0; }

/* print */
.ll-print-root { display: none; }
@media print {
	html.ll-printing body > *:not(.ll-print-root) { display: none !important; }
	html.ll-printing .ll-print-root { display: block; color: #000; font: 12pt/1.4 system-ui, sans-serif; }
	html.ll-printing body { background: #fff !important; padding: 0 !important; }
	.ll-print__head { display: flex; justify-content: space-between; border-bottom: 2px solid #000; padding-bottom: 6px; margin-bottom: 10px; }
	.ll-print-root h1 { font-size: 20pt; margin: 0 0 4px; }
	.ll-slip { display: grid; grid-template-columns: 32px 1fr; gap: 4px 10px; break-inside: avoid; border: 1px solid #999; border-radius: 6px; padding: 8px; margin: 8px 0; }
	.ll-slip__no { grid-row: span 3; font-weight: 800; font-size: 14pt; }
	.ll-slip__grid { display: flex; flex-wrap: wrap; gap: 3px; }
	.ll-slip__grid span { width: 22px; height: 22px; border: 1px solid #888; border-radius: 4px; display: grid; place-items: center; font-size: 8pt; }
	.ll-slip__grid span.on { background: #000; color: #fff; border-color: #000; }
	.ll-slip__grid em { width: 100%; font-size: 8pt; }
	.ll-slip__nums { margin: 2px 0 0; font-weight: 700; font-family: ui-monospace, monospace; }
	.ll-print-root footer { margin-top: 12px; font-size: 9pt; color: #555; }
}

/* dark mode (when the theme sets data-theme="dark") */
html[data-theme="dark"] .ll-app {
	--ll-ink: #f1efff;
	--ll-muted: #a9a5cc;
	--ll-line: #2e2a55;
	--ll-surface: #17142f;
	--ll-soft: #201c40;
	--ll-shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
	--ll-accent-ink: #1b1740;
	color: var(--ll-ink);
}
html[data-theme="dark"] .ll-input:focus { background: #241f4a; }
html[data-theme="dark"] .ll-switch__track { background: #3a3566; }
html[data-theme="dark"] .ll-seg input:checked + span { background: #2e2860; color: #fff; }
html[data-theme="dark"] .ll-chip.is-active, html[data-theme="dark"] .ll-check input:checked + span, html[data-theme="dark"] .ll-zodiac__sign:has(input:checked) { background: var(--ll-primary); border-color: var(--ll-primary); color: #fff !important; }
html[data-theme="dark"] .ll-profile__num, html[data-theme="dark"] .ll-sign__glyph, html[data-theme="dark"] .ll-sign__glyph--sm { background: #0f0c26; }
html[data-theme="dark"] .ll-ball, html[data-theme="dark"] .ll-nod { color: #1b1740; }
html[data-theme="dark"] .ll-ball--bonus, html[data-theme="dark"] .ll-ball--lucky { color: #fff; }
html[data-theme="dark"] .ll-dialog { background: #17142f; color: var(--ll-ink); }
html[data-theme="dark"] .ll-error { background: #3b1020; color: #fecdd3; }
html[data-theme="dark"] .ll-success, html[data-theme="dark"] .ll-banner--ok { background: #0b3326; color: #a7f3d0; border-color: #14532d; }
html[data-theme="dark"] .ll-ticket__status.is-win { background: #14532d; color: #bbf7d0; }
html[data-theme="dark"] .ll-inline .ll-input { background: #17142f; }
html[data-theme="dark"] .ll-jackpot strong { color: #ffd166; }
html[data-theme="dark"] .ll-freq__fill { background: #4a4290; }
