:root{font-family:DM Sans,system-ui,sans-serif;color:#f2f1ff;background:#10101b;color-scheme:dark}*{box-sizing:border-box}body{margin:0}main{max-width:880px;margin:auto;padding:20px 12px 40px}header{padding:30px 4px}.eyebrow{color:#c3a4ff;letter-spacing:3px;font-size:11px;font-weight:700}h1{font-size:42px;letter-spacing:-2px;margin:12px 0}h1 span{display:block;color:#ad91ee;font-size:24px;letter-spacing:-.5px}p,footer{color:#b6b6cb;line-height:1.6}section{padding:18px 12px;background:#1c1c2c;border:1px solid #35334b;border-radius:18px;margin:18px 0}h2{font-size:20px;margin:8px 0}.status{font-size:13px;color:#edb876}.online{color:#82d9b4}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0;align-items:stretch}button,.button,select,input{font:inherit;border:1px solid #514565;border-radius:9px;padding:12px;background:#302742;color:#fff}button,.button{cursor:pointer}button:hover{background:#49335e}button:disabled{opacity:.55;cursor:default}a{color:#c6adff}button:focus-visible,a:focus-visible{outline:3px solid #e9c6ff;outline-offset:2px}.roundhead{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.roundhead span{font-size:11px;color:#aaa}.bingoletters,.card{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.bingoletters{text-align:center;color:#c5a9ff;margin:15px 0 10px}.square{display:flex;flex-direction:column;justify-content:space-between;gap:6px;background:#262538;line-height:1.25;height:112px;min-height:0;min-width:0;padding:8px 3px;font-size:14px;overflow:hidden;overflow-wrap:normal}.square small{color:#aba2bd;min-height:16px;flex-shrink:0;font-size:11px}.square.marked{background:#4b3470;border-color:#bf94ff}.square.marked small{color:#e2cfff}.claim{width:100%;background:#8a56d2;font-weight:700;margin:10px 0}.description{padding:12px;border-left:3px solid #aa79ea}details{margin-top:18px}summary{cursor:pointer;padding:8px 0}.eventrow{display:flex;align-items:center;gap:12px;justify-content:space-between;border-bottom:1px solid #393449;padding:10px 0;flex-wrap:wrap}.eventrow small{display:block;color:#b5adc1}textarea{width:100%;margin:10px 0}label{display:block;margin:10px 0}label input{display:block;width:100%;margin-top:5px}aside{position:sticky;bottom:12px;padding:16px;background:#483263;border-radius:12px;box-shadow:0 5px 30px #0008;white-space:pre-wrap;overflow-wrap:anywhere}aside button{margin-left:12px}footer{font-size:12px;margin-top:24px}input,select,textarea{font:inherit;max-width:100%;min-width:0}select,textarea{width:100%;padding:12px;border:1px solid #514565;border-radius:9px;background:#302742;color:#fff}button{min-height:44px}button,a,summary{touch-action:manipulation}.actions button{white-space:normal;overflow-wrap:anywhere}.check{display:flex;gap:12px;align-items:center;min-height:44px}.check input{width:22px;height:22px;flex:none;margin:0}.check small{display:block;color:#b6b6cb}.check span{min-width:0}fieldset{border:1px solid #514565;border-radius:12px;min-width:0;margin:16px 0;padding:12px}legend{max-width:100%;font-weight:700}.quota-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quota-grid label{margin:0}.filters{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.library-events{max-height:650px;overflow:auto;overscroll-behavior:contain}.library-events article{padding:16px 0;border-bottom:1px solid #514565;overflow-wrap:anywhere}.library-events p{margin:8px 0}.library-events .actions button:first-child{flex:1}.eventrow>span:first-child{flex:1 1 180px;min-width:0}.eventrow>button{flex:0 0 auto}.roundhead h2{overflow-wrap:anywhere;min-width:0}.pool{overflow-wrap:anywhere}.error{color:#ffc0b9}dialog{max-width:calc(100vw - 24px);width:440px;max-height:85vh;overflow:auto;border:1px solid #8360ab;border-radius:16px;background:#252035;color:#fff;padding:20px}dialog::backdrop{background:#000b}dialog p{overflow-wrap:anywhere}ul{padding-left:24px}.bite-control{border:1px solid #514565;border-radius:12px;padding:12px}.bite-control button{margin:4px 0;width:100%}[hidden]{display:none!important}.route-nav{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.portal-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.portal-tabs button{flex:1 1 90px;min-height:44px}.portal-tabs [aria-selected=true]{background:#8c58e8;color:#fff}.portal{max-width:1120px;padding-top:12px}.portal header{padding:0;margin-bottom:8px}.portal h1{font-size:1.65rem;margin:6px 0}.portal .eyebrow{font-size:.7rem}.portal .route-nav{margin:8px 0}.portal .moderation{padding:12px}.portal .moderation>h2{font-size:1.15rem;margin:0 0 8px}.portal .portal-tabs{margin:8px 0;gap:4px}.portal .portal-tabs button{flex:1 1 48px;padding:8px 4px;font-size:.8rem;min-width:0;overflow-wrap:normal;white-space:nowrap}.live-toolbar{position:sticky;top:0;z-index:5;background:#191827;border:1px solid #514768;border-radius:8px;display:flex;align-items:end;gap:8px;padding:6px}.live-toolbar label{margin:0;font-size:.8rem;min-width:0}.live-toolbar input,.live-toolbar select{width:100%;margin:4px 0;min-height:44px;font-size:16px}.live-filters{display:grid;gap:6px;grid-template-columns:minmax(0,1fr)}.live-toolbar summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.toolbar-actions{display:flex;gap:6px;height:52px}.toolbar-actions button{flex:1;min-height:44px;font-size:.8rem;padding:6px;height:52px;overflow:auto}.live-feedback{height:2.8em;min-height:0;overflow:auto;margin:4px 0;font-size:12px;line-height:1.4}.live-count{font-size:.8rem;margin:4px 0;overflow:auto;line-height:1.5;height:auto}.koivu-compact{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:4px 0;margin:0}.koivu-compact strong{flex:1 1 60px;font-size:.8rem}.koivu-compact button{padding:6px;min-height:44px;flex:0 1 auto;font-size:.8rem}.milestone-help>summary,.recent-events>summary{min-height:44px;padding:10px 0;cursor:pointer}.recent-slots{height:240px;overflow:auto}.recent-row{display:flex;gap:8px;align-items:center;min-height:48px;border-bottom:1px solid #514768}.recent-row span{flex:1;min-width:0}.recent-row small{display:block;font-size:.7rem}.live-list{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.live-row.eventrow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:4px 6px;padding:8px;margin:0;border:1px solid #514768;border-radius:8px}.live-row-title{min-width:0;align-self:center}.live-row-title strong{font-size:.86rem;line-height:1.25;display:block}.live-row-title small{font-size:.68rem;line-height:1.3;display:block;height:2.6em;overflow:auto}.activation.activated{color:#8ce5b9}.live-row-actions{display:flex;align-items:start;gap:4px}.live-row-actions button{min-width:44px;min-height:44px;padding:6px;font-size:.8rem}.event-details{grid-column:1/-1}.event-details>summary{min-height:44px;display:flex;align-items:center;font-size:.8rem;cursor:pointer}.event-details p{font-size:.9rem;overflow-wrap:anywhere}.portal-message{bottom:8px;right:8px;z-index:10;position:static;max-width:none;max-height:none;overflow:auto;height:auto;padding:8px;margin:6px 0}.event-details,.live-toolbar details{margin-top:0}.portal>.actions{font-size:.75rem;gap:6px}.portal>.actions select{width:auto;flex:1;min-height:44px}.milestone-help,.recent-events{margin-top:4px}.card{grid-auto-rows:112px;gap:4px}.square span{overflow:auto;width:100%;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;flex:1}.claim-bar{position:sticky;bottom:0;z-index:2;background:#191827;padding:2px env(safe-area-inset-right,0px) calc(2px + var(--claim-safe-area-bottom)) env(safe-area-inset-left,0px)}.square-detail{width:min(520px,calc(100vw - 24px));max-height:85dvh;overflow:auto;box-sizing:border-box}.square-detail p{white-space:pre-wrap;overflow-wrap:break-word}.live-toolbar>label{flex:1}.live-toolbar>button{min-height:44px;margin-bottom:4px}.filter-summary{align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;margin:6px 0;display:grid;grid-template-columns:minmax(0,1fr) 135px;height:58px;overflow:hidden}.filter-summary button{font-size:12px;padding:6px;width:135px;height:48px}.player-roster article{border:1px solid #514768;padding:10px;margin:8px 0;border-radius:8px}.player-roster p{margin:6px 0}.filter-summary span{max-height:58px;overflow:auto}.live-filters label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px}.live-filters input[type=checkbox]{width:24px;height:24px;margin:0}.player-card{--claim-bar-height: 80px;--claim-safe-area-bottom: env(safe-area-inset-bottom, 0px)}.player-card-content{padding-bottom:calc(var(--claim-bar-height) + 12px)}.player-round-status{scroll-margin-bottom:calc(var(--claim-bar-height) + 12px)}.player-feedback{position:static}@media(min-width:600px){main{padding:30px}section{padding:24px}.filters{grid-template-columns:1fr 1fr}.quota-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:399px){main{padding-left:8px;padding-right:8px}section{padding-left:8px;padding-right:8px}.card,.bingoletters{margin-left:-6px;margin-right:-6px}.bingoletters{gap:3px}}@media(min-width:760px){.live-list{grid-template-columns:repeat(2,minmax(0,1fr))}.card{grid-auto-rows:130px}.square{height:130px;font-size:17px;padding:12px}.live-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}.card-rarity{scroll-margin-bottom:calc(var(--claim-bar-height) + 12px);margin:12px 0;padding:10px;border:1px solid var(--border, #4d415e);border-radius:12px}.card-rarity summary,.recipe-editor summary,.variant-choices summary{cursor:pointer;min-height:44px;display:list-item;padding:8px 0;box-sizing:border-box}.card-rarity dl>div{display:flex;justify-content:space-between;gap:12px}.card-rarity dd{margin:0}.recipe-state{overflow-wrap:anywhere}.pool-counts{width:100%;border-collapse:collapse;margin:12px 0;font-size:.9rem}.pool-counts th,.pool-counts td{padding:6px 3px;text-align:left}.variant-choices fieldset{min-width:0}.variant-choices legend,.variant-choices summary{overflow-wrap:anywhere}.switch-game{margin:8px 0}
