h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
/* ---- Coronado Treasures shell ---- */
:root { --gold:#f3c34a; --gold2:#ffe9a0; --ink:#17090a; --wine:#5a0d1c; }
html { background-color:#0c0304; background-image:radial-gradient(1200px 700px at 50% -10%, #3a0f1a 0%, #170608 60%, #0c0304 100%); background-attachment:fixed; }
html, body { margin:0; min-height:100%; color:#f6ead2; font:16px/1.5 system-ui, "Segoe UI", Roboto, sans-serif; }
a { color:var(--gold); }
.top { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid rgba(243,195,74,.25); }
.brand { font:800 20px/1 Georgia, "Times New Roman", serif; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; color:var(--gold2); text-shadow:0 0 18px rgba(243,195,74,.4); }
.top .out { margin:0; }
button.link { background:none; border:0; color:var(--gold); cursor:pointer; font:inherit; text-decoration:underline; }
main { max-width:760px; margin:0 auto; padding:32px 20px 64px; }
h1 { font:800 clamp(28px,6vw,44px)/1.1 Georgia, serif; color:var(--gold2); margin:0 0 8px; }
h2 { font:700 20px Georgia, serif; color:var(--gold); margin:36px 0 10px; }
.sub { opacity:.8; margin:0 0 20px; }
.fine { opacity:.55; font-size:13px; }
.hero { text-align:center; padding-top:48px; }
.cta { display:flex; gap:12px; flex-wrap:wrap; margin:24px 0; }
.hero .cta { justify-content:center; }
.btn { display:inline-block; padding:12px 26px; border-radius:999px; border:2px solid #fff1b8; background:linear-gradient(180deg,#ffd45c,#c98a14); color:#2a1303; font-weight:800; text-decoration:none; cursor:pointer; font-size:16px; box-shadow:0 4px 18px rgba(243,195,74,.35); }
.btn.ghost { background:transparent; color:var(--gold2); border-color:rgba(243,195,74,.6); box-shadow:none; }
.btn:hover { filter:brightness(1.08); }
.auth { max-width:420px; margin:20px auto; display:flex; flex-direction:column; gap:6px; }
.auth form { display:flex; flex-direction:column; gap:10px; }
.auth label { display:flex; flex-direction:column; gap:4px; font-size:14px; opacity:.95; }
.auth label.chk { flex-direction:row; align-items:center; gap:8px; }
.auth input[type=text], .auth input[type=email], .auth input[type=password], .auth input:not([type]) { padding:11px 12px; border-radius:10px; border:1px solid rgba(243,195,74,.4); background:#1f0b0e; color:#fff; font-size:16px; }
.auth .btn { margin-top:8px; align-self:flex-start; }
.auth .alt { margin-top:18px; opacity:.85; }
.err { background:#4a0f14; border:1px solid #ff6b6b; color:#ffd7d7; border-radius:10px; padding:10px 12px; margin-bottom:8px; }
.validation-message { color:#ff9a9a; font-size:13px; }
.wallet { display:inline-flex; flex-direction:column; padding:14px 22px; border-radius:16px; border:1px solid rgba(243,195,74,.45); background:rgba(0,0,0,.35); }
.wallet small { letter-spacing:.2em; opacity:.7; }
.wallet strong { font:800 34px Georgia, serif; color:var(--gold2); }
.hist { width:100%; border-collapse:collapse; font-size:14px; }
.hist th, .hist td { padding:8px 10px; border-bottom:1px solid rgba(243,195,74,.15); text-align:left; }
.hist .r { text-align:right; font-variant-numeric:tabular-nums; }
.hist .win { color:#8dffb0; font-weight:700; }

/* ---- owner panel ---- */
.navlink { margin-right:18px; color:var(--gold2); font-weight:700; text-decoration:none; }
.top { gap:12px; }
.top > .navlink, .top .out { display:inline-block; }
.adm { max-width:1100px; margin:0 auto; }
body:has(.adm) main { max-width:1100px; }
.adm-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.card { background:rgba(0,0,0,.32); border:1px solid rgba(243,195,74,.28); border-radius:14px; padding:16px; margin:8px 0 14px; }
.card.row, .row { display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; align-items:end; }
.form-grid .row { grid-column:1/-1; }
.adm label { display:flex; flex-direction:column; gap:4px; font-size:13px; opacity:.95; }
.adm label.grow { flex:1 1 220px; }
.adm label.chk { flex-direction:row; align-items:center; gap:8px; }
.adm input[type=text], .adm input[type=email], .adm input[type=number], .adm input:not([type]), .search { padding:9px 11px; border-radius:9px; border:1px solid rgba(243,195,74,.4); background:#1f0b0e; color:#fff; font-size:15px; }
.search { width:100%; box-sizing:border-box; margin:6px 0 12px; }
.btn.sm { padding:7px 16px; font-size:13px; box-shadow:none; }
.btn.danger { background:linear-gradient(180deg,#ff6b6b,#a01c1c); color:#fff; border-color:#ffd0d0; }
.tablewrap { overflow-x:auto; }
.adm-table td, .adm-table th { vertical-align:middle; }
.adm-table tr.dim { opacity:.55; }
.acts { white-space:nowrap; text-align:right; }
.acts .btn { margin-left:4px; }
.mut { opacity:.6; font-size:12px; }
.tag { display:inline-block; padding:1px 8px; border-radius:999px; font-size:11px; font-weight:800; margin-right:4px; border:1px solid; }
.tag.gold { color:#ffe9a0; border-color:#c98a14; background:rgba(201,138,20,.2); }
.tag.red { color:#ffb3b3; border-color:#ff6b6b; background:rgba(255,107,107,.15); }
.tag.blue { color:#b8dcff; border-color:#5aa9ff; background:rgba(90,169,255,.15); }
.okmsg { background:#0f3a1d; border:1px solid #4fd37e; color:#d3ffe2; border-radius:10px; padding:10px 12px; margin:8px 0; }
.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:12px 0; }
.stats > div { border:1px solid rgba(243,195,74,.3); border-radius:12px; padding:10px 14px; background:rgba(0,0,0,.28); }
.stats small { letter-spacing:.15em; opacity:.65; font-size:11px; display:block; }
.stats strong { font:800 20px Georgia, serif; color:var(--gold2); }
.dial { display:grid; grid-template-columns:minmax(180px,1.2fr) 2fr 90px; gap:12px; align-items:center; padding:8px 0; border-bottom:1px solid rgba(243,195,74,.12); }
.dial-t { display:flex; flex-direction:column; }
.dial input[type=range] { width:100%; accent-color:#f3c34a; }
.dial .num { width:80px; }
.danger-zone { grid-column:1/-1; display:flex; gap:10px; align-items:center; margin-top:6px; }
.preview .win td { color:#8dffb0; font-weight:700; }
@media (max-width:640px) { .dial { grid-template-columns:1fr; } }

/* ---- touch devices and small screens (phones, iPad) ---- */
html { -webkit-text-size-adjust:100%; }
body { padding-left:env(safe-area-inset-left); padding-right:env(safe-area-inset-right); padding-bottom:env(safe-area-inset-bottom); }
.top { flex-wrap:wrap; padding-top:max(14px, env(safe-area-inset-top)); }
a, button, input, select, label { touch-action:manipulation; -webkit-tap-highlight-color:rgba(243,195,74,.25); }
input, select, textarea { font-size:16px !important; }          /* iOS Safari zooms the page on focus if smaller than 16px */
.btn { min-height:44px; box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; text-align:center; }
.btn.sm { min-height:40px; }
button.link { min-height:44px; padding:0 8px; }
.navlink { display:inline-flex; align-items:center; min-height:44px; }
.auth input:not([type=checkbox]), .adm input:not([type=checkbox]):not([type=range]), .search { min-height:44px; box-sizing:border-box; }
input[type=checkbox] { width:22px; height:22px; accent-color:#f3c34a; flex:0 0 auto; }
.auth label.chk, .adm label.chk { min-height:44px; }

/* big, easy-to-drag sliders */
input[type=range] { -webkit-appearance:none; appearance:none; background:transparent; height:44px; margin:0; }
input[type=range]::-webkit-slider-runnable-track { height:8px; border-radius:99px; background:rgba(243,195,74,.35); }
input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:30px; height:30px; margin-top:-11px; border-radius:50%; border:2px solid #fff1b8; background:linear-gradient(#ffe9a0,#c98a14); box-shadow:0 2px 6px rgba(0,0,0,.5); }
input[type=range]::-moz-range-track { height:8px; border-radius:99px; background:rgba(243,195,74,.35); }
input[type=range]::-moz-range-thumb { width:26px; height:26px; border-radius:50%; border:2px solid #fff1b8; background:linear-gradient(#ffe9a0,#c98a14); }

@media (pointer:coarse) { .btn.sm { min-height:44px; padding-left:18px; padding-right:18px; } }

/* tables become one card per row on phones and iPad portrait */
@media (max-width:1100px) {
  main { padding:20px max(14px, env(safe-area-inset-left)) 56px; }
  .adm .hist thead { display:none; }
  .adm .hist, .adm .hist tbody, .adm .hist tr, .adm .hist td { display:block; width:100%; box-sizing:border-box; }
  .adm .hist tr { border:1px solid rgba(243,195,74,.28); border-radius:12px; padding:8px 14px; margin:0 0 10px; background:rgba(0,0,0,.28); }
  .adm .hist td { display:flex; justify-content:space-between; align-items:center; gap:14px; text-align:right !important; border:0; padding:6px 0; }
  .adm .hist td::before { content:attr(data-label); opacity:.65; font-size:12px; letter-spacing:.06em; text-transform:uppercase; text-align:left; flex:0 0 auto; }
  .adm .hist td[data-label=""]::before { content:none; }
  .adm .hist td.who { display:block; text-align:left !important; font-size:17px; padding-bottom:4px; }
  .adm .hist td.who::before { content:none; }
  .adm .hist td.tags { justify-content:flex-start; flex-wrap:wrap; }
  .adm .hist td.acts { display:grid; grid-template-columns:repeat(auto-fit,minmax(104px,1fr)); gap:8px; white-space:normal; padding-top:10px; }
  .adm .hist td.acts::before { content:none; }
  .adm .hist td.acts .btn { margin:0; width:100%; }
  .adm-table tr.dim { opacity:.6; }
  .tablewrap { overflow:visible; }
}
@media (max-width:640px) {
  .dial { grid-template-columns:1fr; gap:4px; }
  .dial .num { width:100%; }
  .card.row > label, .row > label { flex:1 1 100%; }
  .row .btn, .danger-zone .btn { flex:1 1 140px; }
  .adm-head .btn { width:100%; }
  .auth .btn, .hero .cta .btn, .cta .btn { width:100%; }
  .wallet { display:flex; }
  .stats { grid-template-columns:repeat(2,1fr); }
  h1 { font-size:28px; }
}

/* ---- landing page ---- */
body:has(.landing) main { max-width:none; padding:0; }
.landing { overflow-x:clip; }
.l-hero { max-width:1240px; margin:0 auto; padding:clamp(28px,6vw,72px) clamp(16px,4vw,40px) 28px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(20px,4vw,56px); align-items:center; }
.eyebrow { margin:0 0 10px; letter-spacing:.22em; text-transform:uppercase; font-size:12px; color:var(--gold); font-weight:800; }
.l-copy h1 { font-size:clamp(38px,7vw,72px); line-height:1.02; margin:0 0 14px; text-shadow:0 0 30px rgba(243,195,74,.35); }
.lead { font-size:clamp(17px,2.2vw,21px); line-height:1.5; opacity:.92; margin:0 0 22px; max-width:30em; }
.l-cta { display:flex; gap:12px; flex-wrap:wrap; margin:0 0 16px; }
.btn.big { padding:14px 30px; font-size:17px; min-height:52px; }
.l-hero .fine, .l-final .fine { line-height:1.6; }
.l-shot { position:relative; display:block; border-radius:18px; overflow:hidden; border:2px solid rgba(255,233,160,.7); box-shadow:0 18px 60px rgba(0,0,0,.6), 0 0 60px rgba(243,195,74,.25); transform:rotate(-1.2deg); transition:transform .3s ease, box-shadow .3s ease; }
.l-shot img { display:block; width:100%; height:auto; }
a.l-shot:hover { transform:rotate(0) scale(1.01); box-shadow:0 22px 70px rgba(0,0,0,.65), 0 0 80px rgba(243,195,74,.4); }
.l-play { position:absolute; left:50%; bottom:6%; transform:translateX(-50%); padding:12px 28px; border-radius:999px; font-weight:900; letter-spacing:.12em; color:#2a1303; background:linear-gradient(180deg,#ffd45c,#c98a14); border:2px solid #fff1b8; box-shadow:0 6px 24px rgba(0,0,0,.55); animation:lpulse 2.2s ease-in-out infinite; }
@keyframes lpulse { 0%,100% { box-shadow:0 6px 24px rgba(0,0,0,.55),0 0 0 0 rgba(255,211,78,.55); } 50% { box-shadow:0 6px 24px rgba(0,0,0,.55),0 0 0 14px rgba(255,211,78,0); } }

.l-strip { overflow:hidden; border-block:1px solid rgba(243,195,74,.25); background:rgba(0,0,0,.35); padding:14px 0; margin-top:12px; mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.l-track { display:flex; gap:28px; width:max-content; animation:lscroll 38s linear infinite; }
.l-track img { height:72px; width:auto; flex:0 0 auto; filter:drop-shadow(0 4px 8px rgba(0,0,0,.6)); }
@keyframes lscroll { to { transform:translateX(-50%); } }

.l-feats { max-width:1240px; margin:0 auto; padding:clamp(36px,6vw,72px) clamp(16px,4vw,40px) 12px; }
.l-feats h2, .l-final h2 { font:800 clamp(26px,4.4vw,40px) Georgia, serif; color:var(--gold2); text-align:center; margin:0 0 26px; }
.l-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.l-grid article { border:1px solid rgba(243,195,74,.3); border-radius:16px; overflow:hidden; background:rgba(0,0,0,.32); display:flex; flex-direction:column; }
.l-grid article img { width:100%; height:auto; display:block; aspect-ratio:16/10; object-fit:cover; }
.l-grid h3 { font:800 21px Georgia, serif; color:var(--gold2); margin:14px 16px 6px; }
.l-grid p { margin:0 16px 16px; opacity:.88; line-height:1.55; }
.l-grid .l-text { justify-content:center; padding-top:8px; }
.l-final { text-align:center; padding:clamp(36px,6vw,72px) clamp(16px,4vw,40px) 64px; }
.l-final .l-cta { justify-content:center; }

@media (max-width:900px) {
  .l-hero { grid-template-columns:1fr; text-align:center; }
  .lead { margin-inline:auto; }
  .l-cta { justify-content:center; }
  .l-shot { order:2; transform:none; }
}
@media (max-width:640px) {
  .l-cta .btn { width:100%; }
  .l-track img { height:56px; }
}
@media (prefers-reduced-motion:reduce) {
  .l-track { animation:none; }
  .l-play { animation:none; }
  .l-shot { transition:none; }
}
