:root{--ink:#f1eee8;--muted:#999793;--gold:#c8a86e;--gold-soft:#7d6b4d;--red:#c5291f;--line:#292e36;--panel:#111923;--deep:#090d13;--black:#070a0f;--nav-h:72px}
*{box-sizing:border-box}
html{background:#05070a;scroll-behavior:smooth}
body{margin:0;background:#05070a;color:var(--ink);font-family:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
button,select,input{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit}.app{min-height:100vh}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[data-theme=light]{--ink:#191918;--muted:#6b6966;--panel:#f6f1e9;--deep:#fffdfa;--black:#eee9e1;--line:#d6cfc5;background:#e9e4dc}
.site-shell{min-height:100vh;background:radial-gradient(circle at 50% -15%,#18202b 0,#080b10 36%,#05070a 72%);color:var(--ink);transition:.2s}
[data-theme=light] .site-shell{background:#e9e4dc}
.phone-app{position:relative;width:min(100%,720px);min-height:100vh;margin:0 auto;background:var(--black);padding-bottom:calc(var(--nav-h) + 16px);box-shadow:0 0 70px #0008;overflow:hidden}
.app-header{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:17px 20px 12px;position:relative;z-index:4}
.brand{display:flex;align-items:center;gap:10px;border:0;background:none;padding:0;min-width:0}
.brand-mark{width:50px;height:50px;border:1px solid var(--gold-soft);border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 6px var(--black);position:relative;flex:0 0 auto}
.brand-mark:before{content:"";width:34px;height:34px;border:1px solid #5c5140;border-radius:50%}
.brand-mark i{height:23px;width:1px;background:#e5dfd2;position:absolute}
.brand-name{font:24px/1 Georgia,serif;white-space:nowrap}.brand-name em{font:normal 14px/1 Arial,sans-serif;color:var(--gold)}
.header-actions{display:flex;align-items:center;gap:7px;min-width:0}
.select-wrap select,.square-button,.avatar{height:48px;border:1px solid var(--line);border-radius:13px;background:var(--deep);color:var(--ink)}
.select-wrap select{width:84px;padding:0 13px}.square-button{width:48px;font-size:26px;font-weight:200}.avatar{width:42px;border-radius:50%;font-weight:700;background:#172031;color:var(--gold)}
.game-tabs{display:flex;gap:7px;padding:8px 20px 7px;overflow-x:auto;scrollbar-width:none;border-bottom:5px solid #4b4d51}
.game-tabs::-webkit-scrollbar{display:none}.game-tabs button{flex:0 0 auto;border:1px solid var(--line);background:transparent;color:#aaa7a1;border-radius:29px;padding:12px 20px;font-size:16px;white-space:nowrap}
.game-tabs button.active{background:#f1ede4;color:#181818;border-color:#f1ede4}
.ad-slot{margin:12px 20px;border:1px solid #544a3a;border-radius:15px;min-height:52px;padding:7px;display:grid;grid-template-columns:auto 1fr;gap:7px;align-items:center;background:#10151c;overflow:hidden}
.ad-slot .ad-label{color:var(--gold);font-size:9px;letter-spacing:.13em;writing-mode:vertical-rl}.ad-slot img{display:block;width:100%;max-height:110px;object-fit:contain;border-radius:10px}
.ad-footer{margin-top:22px;margin-bottom:8px}.ad-footer.sticky{position:fixed;z-index:18;left:50%;bottom:var(--nav-h);transform:translateX(-50%);width:min(calc(100% - 24px),696px);margin:0;background:#0d131beb;backdrop-filter:blur(10px)}
.content{padding:20px 24px 8px}.hero{padding-top:4px}
.kicker{margin:0 0 12px;color:var(--gold);font-size:14px;letter-spacing:.28em;text-transform:uppercase}
.hero h1,.section-head h1,.login-card h1{font:48px/1 Georgia,serif;margin:0;color:var(--ink);letter-spacing:-.03em}
.quote{font-size:19px;line-height:1.58;color:#b8b4ae;margin:26px 0}
.disclaimer{border:1px solid #323944;background:var(--panel);border-radius:23px;padding:18px 22px;font-size:16px;line-height:1.52;color:#bbb8b2;margin:16px 0}
.panel{background:var(--panel);border:1px solid #242b34;border-radius:31px;padding:22px;margin-top:17px}
.eyebrow{color:#9d9b97;letter-spacing:.12em;font-size:14px;margin:0}.countdown{font:44px/1.1 Georgia,serif;color:var(--gold);margin:21px 0 15px}
.next-card>p:not(.eyebrow){font-size:18px;color:#bbb7b1;margin:0 0 14px}.next-card small,.source-line{color:#737271;font-size:14px;line-height:1.45;overflow-wrap:anywhere}.carryover{color:var(--gold);font-size:15px;margin:8px 0 0}
.panel-title{display:flex;justify-content:space-between;align-items:center}.official{background:#1e2c28;color:#83a27f;border-radius:22px;padding:8px 17px}
.balls{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 15px}.ball{width:58px;height:58px;display:grid;place-items:center;border:1px solid #806d4e;border-radius:50%;color:var(--gold);font:700 20px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.bonus{display:flex;align-items:center;gap:8px}.bonus .balls{margin:0}.bonus b{color:#888;font-weight:400}.empty-result{font:45px Georgia,serif;color:var(--gold);margin:25px 0}
.bingo-board{width:min(100%,270px);display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:20px 0}.bingo-board span{aspect-ratio:1;display:grid;place-items:center;border:1px solid #806d4e;border-radius:13px;color:var(--gold);font:700 18px ui-monospace,monospace}.bingo-board .free{background:#28251f;font-size:11px;letter-spacing:.08em}
.primary-button,.secondary-button{width:100%;min-height:44px;border-radius:12px;font-size:17px;font-weight:700;margin-top:11px;padding:8px 14px}.primary-button{border:0;background:var(--red);color:white}.secondary-button{border:1px solid var(--line);background:transparent}
.primary-button:disabled{opacity:.45}.motto{text-align:center;color:#74726f;margin:22px 0 28px}
.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-tile{min-height:106px;border:1px solid #242a32;border-radius:26px;background:var(--panel);text-align:left;padding:15px;color:var(--ink);display:flex;flex-direction:column}.game-tile.selected{border-color:#857352}.game-tile small{font-size:14px;color:#807d78}.game-tile strong{font:18px/1.38 ui-monospace,monospace;margin:9px 0 4px;word-spacing:2px}.game-tile em{font-style:normal;color:#696865;font-size:11px;margin-top:auto}.mini-bingo{font:10px/1.35 ui-monospace,monospace;color:#d2c6af;margin:6px 0}
.section-head{padding:7px 0 11px}.section-head h1{font-size:42px}.section-head>p:last-child{color:#aaa6a0;font-size:16px;line-height:1.48}.base-card .ball{width:54px;height:54px}
.profile-list{display:grid;gap:10px;margin-top:18px}.profile-card{width:100%;border:1px solid var(--line);border-radius:24px;padding:17px;background:transparent;text-align:left}.profile-card.selected{border-color:#887657;background:var(--panel)}.profile-card h2{font:22px Georgia,serif;margin:0 0 8px}.profile-card p{color:#aaa7a1;font-size:14px;line-height:1.45;margin:0}
.f30{display:flex;align-items:center;gap:12px;margin:25px 0;font-size:18px}.f30 input,.check-row input{width:25px;height:25px;accent-color:#1976d2}.probability h2{font:28px Georgia,serif}.probability>p{font:34px ui-monospace,monospace;color:var(--gold)}.probability small{color:var(--muted);line-height:1.5}
.candidate-controls{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 18px}.candidate-controls select,.candidate-controls button,.candidate-controls label{border:1px solid var(--line);border-radius:11px;background:var(--deep);color:var(--ink);padding:9px 11px;font-size:13px}
.pack-title{font:27px Georgia,serif;margin:24px 0 5px}.pack-meta{color:var(--muted);font-size:13px;margin:0 0 12px}.candidate-card{background:var(--panel);border:1px solid #242b34;border-radius:30px;padding:22px;margin-bottom:16px}
.candidate-top{display:flex;justify-content:space-between;gap:12px}.candidate-top>span{background:#2a2924;color:var(--gold);border-radius:18px;padding:7px 12px;height:max-content;font-size:13px}.candidate-top>div{text-align:right}.candidate-top strong{display:block;color:var(--gold);font:26px ui-monospace,monospace}.candidate-top small{display:block;color:#777;margin-top:5px}
.candidate-card .ball{width:54px;height:54px;border-color:#3d4651;color:var(--ink)}.score-progress{display:block;width:100%;height:6px;border:0;border-radius:5px;overflow:hidden;background:#18212c}.score-progress::-webkit-progress-bar{background:#18212c}.score-progress::-webkit-progress-value{background:var(--gold);border-radius:5px}.score-progress::-moz-progress-bar{background:var(--gold);border-radius:5px}
.candidate-card p{font-size:14px;line-height:1.42;margin:8px 0}.metrics{color:#aaa7a1;font-family:ui-monospace,monospace}.filter-row{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0}.filter-row span{background:#18212c;color:#aaa;border-radius:17px;padding:6px 11px;font-size:12px}
.candidate-actions{display:flex;flex-wrap:wrap;gap:7px}.candidate-actions button{border:1px solid var(--line);background:#18212c;border-radius:11px;padding:9px 11px;font-size:13px}.candidate-actions button:last-child{background:transparent;color:#c0b9ac}.candidate-card details{margin-top:15px}.candidate-card summary{cursor:pointer}.candidate-card pre{white-space:pre-wrap;overflow-wrap:anywhere}.explanation{padding:11px;background:var(--deep);border:1px solid var(--line);border-radius:11px;color:var(--muted)}
.muted{color:var(--muted)}.loading{text-align:center}.error-panel p{color:#d8b5ad}.export-history{margin-bottom:18px}
.history-list{display:grid;gap:10px}.history-list article{display:grid;grid-template-columns:1fr 1.4fr auto;align-items:center;gap:14px;background:var(--panel);border:1px solid #242b34;border-radius:22px;padding:17px}.history-list div{display:flex;flex-direction:column;gap:5px}.history-list small,.history-list em{font-style:normal;color:var(--muted);font-size:12px}.history-list>article>span{font:15px ui-monospace,monospace}
.account-row{display:flex;align-items:center;gap:15px}.avatar.big{display:grid;place-items:center;width:62px;height:62px}.account-row strong{font:27px Georgia,serif}.account-row p{color:var(--muted);margin:5px 0}
.settings-list{display:grid;gap:8px;margin-top:18px}.settings-list button{display:flex;justify-content:space-between;background:var(--panel);border:1px solid #242b34;border-radius:18px;padding:18px;text-align:left}.settings-list b{color:var(--gold)}
.saved-list h2{font:26px Georgia,serif}.saved-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 0}.saved-list article button{border:1px solid var(--line);background:transparent;border-radius:10px;padding:7px 10px}
.login-wrap{min-height:68vh;display:flex;align-items:center}.login-card{width:100%;background:var(--panel);border:1px solid #242b34;border-radius:35px;padding:29px}.login-card>p:not(.kicker){color:#aba7a1;line-height:1.5}
.oauth,.login-card>input,.admin-form input,.admin-form select{width:100%;min-height:54px;border:1px solid #303741;border-radius:14px;background:var(--deep);color:var(--ink);margin-top:12px;padding:0 18px}.oauth{font-weight:700}.text-button{width:100%;border:0;background:none;padding:16px;color:#b6b0a7}.form-message{min-height:25px;color:#d59687;margin-top:10px}.check-row{display:flex;align-items:center;gap:10px;color:var(--muted);margin:15px 0}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-grid .panel{margin-top:0;border-radius:26px}.admin-wide{grid-column:1/-1}.admin-form{display:grid;gap:10px}.admin-form label{color:var(--muted);font-size:13px}.admin-form input,.admin-form select{margin-top:5px}.manual-import{margin-top:18px}.manual-import textarea{width:100%;resize:vertical;border:1px solid #303741;border-radius:12px;background:var(--deep);color:var(--ink);padding:12px}.banner-list{display:grid;gap:8px;margin-top:18px}.banner-list button{display:grid;grid-template-columns:54px 1fr;gap:5px 10px;border:1px solid var(--line);border-radius:14px;background:var(--deep);text-align:left;padding:10px}.banner-list img{grid-row:1/3;width:54px;height:42px;object-fit:cover;border-radius:8px}.banner-list span{color:var(--muted);font-size:12px}
.user-list{display:grid;gap:8px}.user-list article{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:8px;align-items:center;border-top:1px solid var(--line);padding:10px 0}.user-list div{display:flex;flex-direction:column}.user-list small{color:var(--muted)}.user-list button,.user-list select{border:1px solid var(--line);border-radius:9px;background:var(--deep);padding:8px;color:var(--ink)}
.author-credit{display:grid;gap:12px;text-align:center;color:#8f877a;font-size:11px;letter-spacing:.05em;padding:24px 20px 12px}.author-credit a{color:#b2aa9d;text-decoration:none;font-size:13px;letter-spacing:0}.author-credit a:hover{color:var(--gold)}.author-credit span{text-transform:uppercase}
.bottom-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,720px);height:var(--nav-h);background:#080c12eb;border-top:1px solid #252a32;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 7px max(7px,env(safe-area-inset-bottom));backdrop-filter:blur(12px)}
.bottom-nav button{border:0;background:none;color:#aaa59d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px}.bottom-nav button.active{color:var(--gold)}.nav-icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.toast{position:fixed;z-index:40;left:50%;bottom:90px;transform:translateX(-50%);background:#eee8dc;color:#171717;border-radius:18px;padding:10px 16px;box-shadow:0 8px 30px #0008;white-space:nowrap}
@media(max-width:700px){.admin-grid{grid-template-columns:1fr}.admin-wide{grid-column:auto}.user-list article{grid-template-columns:1fr 1fr}.user-list div{grid-column:1/-1}}
@media(max-width:560px){
  :root{--nav-h:68px}.app-header{padding:14px 14px 10px;gap:6px}.brand{gap:7px}.brand-mark{width:44px;height:44px;box-shadow:inset 0 0 0 5px var(--black)}.brand-mark:before{width:30px;height:30px}.brand-mark i{height:20px}.brand-name{font-size:18px}.brand-name em{font-size:11px}.header-actions{gap:6px}.select-wrap select{width:70px;height:44px;padding-left:10px}.square-button{width:44px;height:44px;font-size:23px}.avatar{width:38px;height:38px}
  .game-tabs{padding:7px 12px 6px;border-bottom-width:4px}.game-tabs button{font-size:14px;padding:10px 15px}.ad-slot{margin:10px 16px}.content{padding:17px 16px 6px}.hero h1{font-size:42px}.quote{font-size:16px;margin:22px 0}.disclaimer{font-size:14px;padding:15px 17px;border-radius:21px}
  .panel{padding:17px;border-radius:26px}.countdown{font-size:39px}.ball,.base-card .ball,.candidate-card .ball{width:48px;height:48px;font-size:17px}.game-tile{padding:14px;min-height:92px;border-radius:23px}.section-head h1{font-size:38px}.section-head>p:last-child{font-size:15px}.candidate-card{padding:18px;border-radius:26px}.candidate-top strong{font-size:23px}.history-list article{grid-template-columns:1fr 1.15fr auto;padding:13px 11px}.login-card{padding:23px 18px;border-radius:28px}
}
@media(max-width:390px){.brand-name{font-size:17px}.brand-name em{font-size:10px}.ball,.base-card .ball,.candidate-card .ball{width:44px;height:44px;font-size:15px}.balls{gap:7px}.candidate-top{align-items:flex-start}.candidate-top>span{font-size:11px}.history-list article{grid-template-columns:1fr;gap:7px}.game-tile strong{font-size:16px}.content{padding-left:15px;padding-right:15px}}
@media(max-width:350px){.brand-name em{display:none}.brand-name{font-size:16px}.select-wrap select{width:62px}.square-button{width:40px}.avatar{width:34px;height:34px}.app-header{padding-left:10px;padding-right:10px}}
[data-theme=light] .bottom-nav{background:#fffdfaf0;border-color:#d6cfc5}[data-theme=light] .avatar{background:#e3ddd3}[data-theme=light] .candidate-actions button,[data-theme=light] .filter-row span,[data-theme=light] .score-progress,[data-theme=light] .score-progress::-webkit-progress-bar{background:#e4ded5}[data-theme=light] .ad-slot{background:#f6f1e9}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
