/* Virtus Book — board, slip, tables. Inherits Virtus palette where present. */
.vbook{
	--vb-ink:var(--ink,#08080A);
	--vb-panel:var(--panel,#121216);
	--vb-line:var(--line,#23232A);
	--vb-fog:var(--fog,#A6A6B0);
	--vb-white:var(--white,#fff);
	--vb-blood:var(--blood,#FF1F2D);
	--vb-gold:var(--gold,#E7B53C);
	color:var(--vb-white);
	font-family:var(--f-brand,inherit);
	max-width:760px;margin:0 auto;
}
.vbook *{box-sizing:border-box;}

.vbook__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--vb-line);margin-bottom:16px;}
.vbook__kicker{display:inline-block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--vb-blood);font-weight:800;}
.vbook__head h2{margin:.15em 0 .1em;font-size:1.55rem;line-height:1.1;}
.vbook__date{margin:0;color:var(--vb-fog);font-size:.85rem;}
.vbook__meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.vbook__badge{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--vb-fog);border:1px solid var(--vb-line);border-radius:999px;padding:4px 10px;}
.vbook__bal{font-size:.85rem;color:var(--vb-fog);}
.vbook__bal b{color:var(--vb-gold);font-size:1rem;}
.vbook__auth{display:flex;gap:8px;align-items:center;}
.vbook__who{font-size:.82rem;color:var(--vb-fog);}
.vbook__btn{display:inline-block;background:var(--vb-blood);color:#fff;text-decoration:none;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;padding:8px 14px;border-radius:8px;border:1px solid var(--vb-blood);}
.vbook__btn:hover{filter:brightness(1.1);}
.vbook__btn--ghost{background:transparent;color:var(--vb-white);border-color:var(--vb-line);}
.vbook__btn--ghost:hover{border-color:var(--vb-blood);}

@keyframes vbmflash{0%,100%{box-shadow:none;}30%{box-shadow:0 0 0 2px var(--vb-blood);}}
.vbm--flash{animation:vbmflash 1.6s ease;}

.vbook__empty,.vbook__login,.vbook__locked{color:var(--vb-fog);padding:14px 0;}
.vbook__locked{color:var(--vb-blood);font-weight:600;}

.vbook__how{margin:0 0 16px;border:1px solid var(--vb-line);border-radius:10px;background:var(--vb-panel);}
.vbook__how summary{cursor:pointer;padding:11px 14px;font-weight:700;font-size:.85rem;letter-spacing:.04em;color:var(--vb-white);list-style:none;}
.vbook__how summary::-webkit-details-marker{display:none;}
.vbook__how summary::before{content:"ⓘ ";color:var(--vb-blood);}
.vbook__how p{margin:0;padding:0 14px 14px;color:var(--vb-fog);font-size:.85rem;line-height:1.55;}

.vbook-special{margin:6px 0 28px;border:1px solid var(--vb-gold);border-radius:16px;background:linear-gradient(180deg,rgba(231,181,60,.07),transparent 55%);padding:16px 16px 18px;position:relative;}
.vbook-special__head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.vbook-special__badge{background:var(--vb-gold);color:#191307;font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;padding:5px 12px;border-radius:999px;}
.vbook-special__sub{color:var(--vb-fog);font-size:.82rem;}

.vbook-eventh{font-size:1.05rem;font-weight:800;letter-spacing:.02em;color:var(--vb-white);text-transform:uppercase;margin:10px 0 12px;display:flex;align-items:center;gap:10px;}
.vbook-eventh::before{content:"";width:20px;height:3px;background:var(--vb-blood);border-radius:2px;}

/* Special markets wear a gold accent so they don't read as Virtus bouts */
.vbm--special{background:#15130c;border-color:rgba(231,181,60,.40);}
.vbm--special .vbm__slot{color:var(--vb-gold);}
.vbm--special .vbm__odds{color:var(--vb-gold);}
.vbm--special .vbm__side:hover{border-color:var(--vb-gold);}
.vbm--special .vbm__side.is-picked{border-color:var(--vb-gold);box-shadow:inset 0 0 0 2px var(--vb-gold);background:rgba(231,181,60,.10);}
.vbm--special .vbm__res{color:var(--vb-gold);}
.vbm__q{font-weight:700;color:var(--vb-white);text-transform:none;letter-spacing:0;font-size:.9rem;}

.vbook__board{display:flex;flex-direction:column;gap:12px;}

.vbm{background:var(--vb-panel);border:1px solid var(--vb-line);border-radius:14px;padding:14px;}
.vbm__top{display:flex;gap:10px;align-items:center;margin-bottom:10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--vb-fog);}
.vbm__slot{color:var(--vb-gold);font-weight:800;}
.vbm__pool{margin-left:auto;}
.vbm__sides{display:flex;gap:10px;}
.vbm__side{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:var(--vb-ink);border:1px solid var(--vb-line);border-radius:10px;padding:12px 14px;cursor:pointer;color:var(--vb-white);transition:border-color .15s,transform .05s;text-align:left;}
.vbm__side:hover{border-color:var(--vb-blood);}
.vbm__side:active{transform:scale(.99);}
.vbm__side.is-static{cursor:default;opacity:.8;}
.vbm__side.is-win{border-color:var(--vb-gold);box-shadow:inset 0 0 0 1px var(--vb-gold);}
.vbm__side.is-picked{border-color:var(--vb-blood);box-shadow:inset 0 0 0 2px var(--vb-blood);background:rgba(255,31,45,.10);}
.vbm__name{font-weight:700;font-size:.98rem;}
.vbm__odds{font-size:1.5rem;font-weight:800;color:var(--vb-blood);font-variant-numeric:tabular-nums;}
.vbm__res{margin-top:10px;font-size:.85rem;color:var(--vb-gold);font-weight:700;}
.vbm__res--void{color:var(--vb-fog);}
.vbm__res--shut{color:var(--vb-fog);font-weight:600;}

/* slip */
.vbook-slip[hidden]{display:none;}
.vbook-slip{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center;z-index:9999;}
.vbook-slip__box{background:var(--panel,#121216);color:var(--white,#fff);border:1px solid var(--line,#23232A);border-radius:16px 16px 0 0;width:100%;max-width:480px;padding:20px;position:relative;font-family:var(--f-brand,inherit);}
@media(min-width:560px){.vbook-slip{align-items:center;}.vbook-slip__box{border-radius:16px;}}
.vbook-slip__x{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--fog,#A6A6B0);font-size:1.6rem;cursor:pointer;line-height:1;}
.vbook-slip__head{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-right:24px;}
.vbook-slip__title{font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;}
.vbook-slip__count{background:var(--blood,#FF1F2D);color:#fff;border-radius:999px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;padding:0 6px;}
.vbook-legs{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;max-height:230px;overflow:auto;}
.vbook-leg{display:flex;align-items:center;gap:8px;background:var(--ink,#08080A);border:1px solid var(--line,#23232A);border-radius:8px;padding:8px 10px;}
.vbook-leg__name{flex:1;font-size:.85rem;font-weight:600;}
.vbook-leg__odds{color:var(--blood,#FF1F2D);font-weight:800;font-variant-numeric:tabular-nums;}
.vbook-leg__x{background:none;border:none;color:var(--fog,#A6A6B0);font-size:1.2rem;line-height:1;cursor:pointer;padding:0 2px;}
.vbook-slip__acca{background:var(--ink,#08080A);border:1px solid var(--gold,#E7B53C);border-radius:8px;padding:8px 10px;margin-bottom:10px;font-size:.85rem;color:var(--fog,#A6A6B0);}
.vbook-slip__acca b{color:var(--gold,#E7B53C);font-size:1.1rem;}
.vbook-slip__pick{display:flex;justify-content:space-between;align-items:center;font-size:1.1rem;font-weight:700;padding-right:24px;margin-bottom:14px;}
.vbook-slip__pick b{color:var(--blood,#FF1F2D);font-size:1.4rem;font-variant-numeric:tabular-nums;}
.vbook-slip__lab{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--fog,#A6A6B0);margin-bottom:6px;}
#vbook-slip-stake{width:100%;background:var(--ink,#08080A);border:1px solid var(--line,#23232A);border-radius:10px;color:#fff;font-size:1.4rem;font-weight:700;padding:12px 14px;}
.vbook-slip__chips{display:flex;gap:8px;margin:10px 0;}
.vbook-chip{flex:1;background:var(--ink,#08080A);border:1px solid var(--line,#23232A);border-radius:8px;color:var(--fog,#A6A6B0);padding:9px 0;cursor:pointer;font-weight:700;}
.vbook-chip:hover{border-color:var(--blood,#FF1F2D);color:#fff;}
.vbook-slip__ret{font-size:.95rem;margin:6px 0 12px;color:var(--fog,#A6A6B0);}
.vbook-slip__ret b{color:var(--gold,#E7B53C);font-size:1.2rem;}
.vbook-slip__ret small{display:block;font-size:.7rem;}
.vbook-slip__age{margin-bottom:12px;font-size:.85rem;color:var(--fog,#A6A6B0);}
.vbook-slip__go{width:100%;background:var(--blood,#FF1F2D);color:#fff;border:none;border-radius:10px;padding:14px;font-size:1.05rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;}
.vbook-slip__go:disabled{opacity:.6;cursor:default;}
.vbook-slip__msg{min-height:1.2em;margin:10px 0 0;font-size:.85rem;color:var(--gold,#E7B53C);}

/* tables */
.vbook-mine,.vbook-lead{margin-top:22px;}
.vbook-mine h3,.vbook-lead h3{font-size:1.05rem;margin:0 0 8px;}
.vbook-tbl{width:100%;border-collapse:collapse;font-size:.9rem;}
.vbook-tbl td{padding:8px 10px;border-bottom:1px solid var(--vb-line);}
.vbook-tbl__r{text-align:right;font-variant-numeric:tabular-nums;}
.vbook-tbl tr.is-won td{color:var(--vb-gold);}
.vbook-tbl tr.is-lost td{color:var(--vb-fog);}

.vbook-acca-row{border:1px solid var(--vb-line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--vb-panel);}
.vbook-acca-row__top{display:flex;justify-content:space-between;font-weight:700;font-size:.9rem;}
.vbook-acca-row__legs{color:var(--vb-fog);font-size:.82rem;margin:4px 0;}
.vbook-acca-row__foot{color:var(--vb-fog);font-size:.78rem;}
.vbook-acca-row.is-won{border-color:var(--vb-gold);}
.vbook-acca-row.is-won .vbook-acca-row__top{color:var(--vb-gold);}

.vbook__fineprint{margin-top:22px;font-size:.72rem;color:var(--vb-fog);line-height:1.5;border-top:1px solid var(--vb-line);padding-top:12px;}

/* admin small tweaks */
.vbook-admin .small-text{width:80px;}

/* Buy tokens button in the header */
.vbook__btn--buy{background:var(--gold,#E7B53C);color:#191307;border-color:var(--gold,#E7B53C);font-weight:800;}
.vbook__btn--buy:hover{filter:brightness(1.06);}

/* Installed-app kiosk */
html.vg-standalone [data-vg-hidden]{display:none !important;}
html.vg-standalone body > *:not(.vbook):not([class*="vbook"]):not([class*="vb-"]):not([class*="vg-"]){display:none !important;}
html.vg-standalone > *:not(head):not(body):not([class*="vbook"]):not([class*="vg-"]){display:none !important;}
html.vg-standalone,html.vg-standalone body{background:#08080a !important;margin:0 !important;padding:0 !important;}
html.vg-standalone body{overflow-x:hidden;}
.vbook-app{min-height:100vh;min-height:100dvh;padding:calc(10px + env(safe-area-inset-top)) 14px calc(20px + env(safe-area-inset-bottom));box-sizing:border-box;}
.vbook-appback{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:8px 15px;border:1px solid var(--vb-line);border-radius:999px;background:rgba(255,255,255,.03);color:var(--vb-gold);font:800 13px/1 'Saira Condensed','Saira',system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;}
.vbook-appback:active{transform:translateY(1px);}

/* Shared app nav — mirrors the Virtus Cards bottom bar so the Book feels like
 * the same app. Links jump back to the matching Cards tab; Betting is active. */
.vbook-botnav{position:fixed;left:0;right:0;bottom:0;z-index:62;display:flex;align-items:stretch;justify-content:space-around;height:calc(62px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:linear-gradient(180deg,rgba(14,17,24,.97),rgba(6,7,11,.99));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--vb-line,#23232A);box-shadow:0 -8px 24px rgba(0,0,0,.45);}
.vbook-botnav .vb-bt{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--vb-fog,#A6A6B0);text-decoration:none;font:800 10px/1 'Saira Condensed',Saira,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;}
.vbook-botnav .vb-bt:active{transform:translateY(1px);}
.vbook-botnav .vb-bt-ic{width:24px;height:24px;display:block;}
.vbook-botnav .vb-bt.is-active{color:var(--vb-gold,#E7B53C);}
.vbook-botnav .vb-bt.is-active .vb-bt-ic{filter:drop-shadow(0 0 6px rgba(231,181,60,.55));}
.vbook-app{padding-bottom:calc(82px + env(safe-area-inset-bottom)) !important;animation:vbookFade .2s ease both;}
@keyframes vbookFade{from{opacity:0}to{opacity:1}}
