/* ShakesBeard PLAY v2 — official navy/white identity + gaming accents. */
:root{
  --sb-bg:#09111e; --sb-panel:#111c2b; --sb-card:#101c2e; --sb-border:#26354a;
  --sb-text:#eff5ff; --sb-muted:#9aaec6; --sb-purple:#9675ff; --sb-purple2:#6648dc;
  --sb-cyan:#4adacb; --sb-radius:20px;
}
[data-bs-theme="light"]{
  --sb-bg:#f4f6fa; --sb-panel:#fff; --sb-card:#fff; --sb-border:#dbe2ec;
  --sb-text:#152238; --sb-muted:#65768b; --sb-purple:#644ad6; --sb-purple2:#4935bd;
  --sb-cyan:#078e87;
}
body{background:radial-gradient(circle at 90% 0, color-mix(in srgb,var(--sb-purple) 6%, transparent),transparent 45%),var(--sb-bg)}
[data-bs-theme="light"] body{background:var(--sb-bg)}
/* Source files and PNG crops all use the actual ShakesBeard Cyber logo, not a generated replacement. */
.sb-logo{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden}
.sb-logo img{width:100%;height:100%;object-fit:contain}
.sb-logo-wide{width:181px;height:54px}
.sb-logo-stacked{width:126px;height:126px}
.sb-logo-for-light{display:none!important}
[data-bs-theme="light"] .sb-logo-for-light{display:block!important}
[data-bs-theme="light"] .sb-logo-for-dark{display:none!important}
.topbar{min-height:80px;background:color-mix(in srgb,var(--sb-bg) 97%,transparent)}
[data-bs-theme="light"] .topbar{background:#fff}
.brand-v2{gap:11px;font-size:1rem;letter-spacing:0}.brand-v2 .sb-logo{transition:opacity .2s}.brand-v2:hover .sb-logo{opacity:.83}
.brand-play{font-size:1rem;font-weight:900;letter-spacing:.13em;color:var(--sb-text);padding-left:11px;border-left:1px solid var(--sb-border)}
.brand-play-dot{color:var(--sb-cyan)}
.nav-quick{transition:color .15s}.nav-quick:hover{color:var(--sb-text)}
.app-sidebar{top:80px;height:calc(100vh - 80px);background:color-mix(in srgb,var(--sb-bg) 80%,var(--sb-panel));padding-top:15px}
.sidebar-brand{padding:8px 16px 18px;margin-bottom:17px;border-bottom:1px solid var(--sb-border);text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
.sidebar-brand span:last-child{color:var(--sb-muted);font-size:.61rem;font-weight:850;letter-spacing:.17em}
.side-link{font-size:.84rem;padding:11px 13px;border-radius:10px}
.side-link.active{background:linear-gradient(95deg,#3e498d,#5440a5);border:1px solid #9b8cff50;box-shadow:0 9px 30px #1b174438}
[data-bs-theme="light"] .side-link.active{color:#fff}
.side-link.active::before{content:"";width:3px;height:17px;position:absolute;left:3px;border-radius:6px;background:#5be1ce}
.side-link{position:relative}
.hero{background:radial-gradient(circle at 76% 17%,#403260 0%,transparent 39%),radial-gradient(circle at 24% 90%,#14485f66,transparent 40%),linear-gradient(112deg,#0d1b31,#121629 66%,#122139);border:1px solid #36506b;border-radius:25px;isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#a2cefa0b 1px,transparent 1px),linear-gradient(90deg,#a2cefa0b 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,transparent 15%,#000)}
.hero h1 span{background:linear-gradient(95deg,#b7a4ff,#5aebdb);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .eyebrow{color:#64e3d5}
.hero .btn-primary{background:#7956db;border-color:#7956db}
.section-title .eyebrow{font-size:.67rem;letter-spacing:.16em}
.panel,.stat-card,.game-station-card,.game-card,.tournament-card{box-shadow:0 14px 38px #00000009}
.game-station-card,.game-card{border-radius:19px}.game-station-card:hover,.game-card:hover{box-shadow:0 20px 60px #00000025}
.station-cover{background:radial-gradient(circle at 60% 20%,#504d91,#1b2947 70%)}
.station-cover.station-pc{background:radial-gradient(circle at 60% 20%,#17587a,#15283e 70%)}
.price{color:var(--sb-cyan)}
[data-bs-theme="light"] .price{color:#007f79}
.footer-strip{background:var(--sb-panel);align-items:center;padding-top:14px;padding-bottom:14px}
.footer-brand{display:flex;gap:17px;align-items:center}
.footer-brand .sb-logo-wide{width:116px;height:34px}
.footer-strip a{color:var(--sb-text)}
/* New title search */
.search-panel{display:flex;align-items:center;gap:13px;border:1px solid var(--sb-border);background:var(--sb-panel);border-radius:15px;padding:10px 16px;max-width:700px}
.search-panel i{color:var(--sb-muted)}.search-panel .form-control{border:0;box-shadow:none;padding:7px 1px;background:transparent;flex:1;min-width:50px}
.search-panel span{white-space:nowrap}
/* Real-time gaming floor — staff only */
.floor-legend{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:12px 2px;font-size:.78rem;color:var(--sb-muted);font-weight:700}
.floor-legend span{display:inline-flex;align-items:center;gap:8px}
.floor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:16px}
.floor-station{border:1px solid var(--sb-border);border-top:3px solid var(--sb-border);border-radius:17px;background:var(--sb-panel);padding:20px;min-height:235px;display:flex;flex-direction:column;align-items:stretch;box-shadow:0 7px 25px #0000000c}
.floor-station.state-free{border-top-color:#45c6a1}.floor-station.state-playing{border-top-color:#7d6cff}.floor-station.state-reserved{border-top-color:#f0b850}.floor-station.state-offline{border-top-color:#8492a5;opacity:.76}
.floor-platform{font-size:.69rem;font-weight:900;letter-spacing:.08em;color:var(--sb-muted);text-transform:uppercase}
.floor-state{font-size:.69rem;color:var(--sb-text);font-weight:800;background:var(--sb-bg);border-radius:40px;padding:7px 9px;display:inline-flex;gap:7px;align-items:center}
.floor-dot{display:inline-block;width:8px;height:8px;border-radius:100%;background:#8293a5;flex:none}
.floor-dot.state-free{background:#49cc9d;box-shadow:0 0 0 3px #49cc9d20}.floor-dot.state-playing{background:#a08aff;box-shadow:0 0 0 3px #a08aff20}.floor-dot.state-reserved{background:#f0b850;box-shadow:0 0 0 3px #f0b85020}
.floor-station h3{font-size:1.17rem;letter-spacing:-.03em;margin:21px 0 5px;font-weight:850}
.floor-detail{border-top:1px solid var(--sb-border);padding-top:14px;color:var(--sb-muted);font-size:.85rem;min-height:63px;margin-top:auto}
.floor-station .btn{align-self:flex-start}
/* Printable booking pass */
.ticket-actions{max-width:750px;margin:24px auto 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.print-ticket{max-width:750px;margin:0 auto 60px;border-radius:22px;overflow:hidden;border:1px solid var(--sb-border);background:var(--sb-panel);box-shadow:0 22px 55px #0002}
.ticket-head{background:#0b1320;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:19px 31px;gap:20px}
.ticket-head .sb-logo-for-dark{display:block!important}.ticket-head .sb-logo-for-light{display:none!important}
.ticket-head .sb-logo-wide{width:181px;height:49px}.ticket-brand-sub{font-size:.66rem;letter-spacing:.14em;margin:7px 0 0;color:#c2d1e3}
.ticket-brand-sub b{color:#70dfce}.ticket-number{color:#fff;font-size:1.2rem;font-weight:900;letter-spacing:.05em}
.ticket-lead{padding:36px 32px 19px}.ticket-tag{color:var(--sb-cyan);font-weight:900;font-size:.68rem;letter-spacing:.15em}
.ticket-lead h1{font-size:clamp(1.55rem,3vw,2.3rem);font-weight:900;letter-spacing:-.045em;margin:12px 0}
.ticket-lead p{font-size:.8rem;color:var(--sb-muted)}
.ticket-cols{display:grid;grid-template-columns:1fr 1fr;gap:4px 26px;margin:0 32px 28px}
.ticket-cols>div{border-bottom:1px dashed var(--sb-border);padding:13px 0}.ticket-cols span,.ticket-cols strong,.ticket-total span,.ticket-total strong{display:block}
.ticket-cols span,.ticket-total span{font-size:.7rem;color:var(--sb-muted);margin-bottom:4px}.ticket-cols strong{font-weight:780;font-size:.98rem}
.ticket-total{display:flex;justify-content:space-between;align-items:center;padding:19px 32px;background:color-mix(in srgb,var(--sb-purple) 10%,var(--sb-panel))}
.ticket-total strong{font-size:1.6rem;font-weight:900;color:var(--sb-text)}.ticket-pay{font-size:.72rem!important;letter-spacing:.08em;font-weight:900;color:#d99c36!important;background:#d99c3617;padding:8px 12px;border-radius:9px;margin:0!important}
.ticket-pay.ticket-paid{background:#2fb88d25;color:#34b58c!important}
.ticket-foot{padding:21px 32px 28px;color:var(--sb-muted);font-size:.82rem;line-height:1.65}.ticket-foot p{margin-bottom:9px}.ticket-foot small{font-size:.72rem}
.installer-brand{display:flex;align-items:center;gap:20px;padding:12px 18px;background:var(--sb-panel);border:1px solid var(--sb-border);border-radius:16px}
.installer-brand img{width:215px;height:65px;object-fit:contain}.installer-brand span{color:var(--sb-muted);font-weight:850;font-size:.75rem;letter-spacing:.12em}
@media(max-width:1100px){.sb-logo-wide{width:145px;height:45px}.brand-play{font-size:.83rem}}
@media(max-width:700px){.topbar{min-height:65px}.sb-logo-wide{width:122px;height:36px}.brand-play{font-size:.73rem;padding-left:8px}.footer-brand .sb-logo-wide{width:99px;height:33px}.footer-brand{gap:10px}.footer-brand span{font-size:.7rem}.hero{border-radius:17px}.floor-grid{grid-template-columns:1fr}.ticket-head{padding:17px}.ticket-head .sb-logo-wide{width:145px;height:40px}.ticket-number{font-size:.9rem}.ticket-lead{padding:27px 20px 13px}.ticket-cols{margin:0 20px 20px;gap:1px 12px}.ticket-total{padding:16px 20px}.ticket-foot{padding:15px 20px}.installer-brand img{width:145px;height:45px}}
@media print{
  @page{size:A4 portrait;margin:14mm}
  html,body{background:#fff!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .topbar,.app-sidebar,.sidebar-mobile,.ticket-actions,.footer-strip,.alert{display:none!important}
  .app-shell,.main-content,.guest-content,.container-fluid,.content-wrap{display:block!important;padding:0!important;margin:0!important;max-width:100%!important;width:100%!important}
  .print-ticket{border:1px solid #ccc!important;border-radius:0;box-shadow:none!important;background:#fff!important;max-width:100%;margin:0!important;color:#101b2f!important;page-break-inside:avoid}
  .ticket-head{background:#0b1320!important;color:#fff!important}
  .ticket-lead,.ticket-cols,.ticket-total,.ticket-foot{color:#152238!important}
  .ticket-pay{color:#a16d00!important}.ticket-paid{color:#15764f!important}
}

.auth-aside .sb-logo-wide{width:186px;height:54px;justify-content:flex-start}.auth-aside .sb-logo-for-dark{display:block!important}.auth-aside .sb-logo-for-light{display:none!important}
.auth-aside .sb-logo img{position:static!important;bottom:auto!important;right:auto!important;transform:none!important;filter:none!important;width:100%!important;height:100%!important}
@media(max-width:575px){.brand-v2 .brand-play{display:none}.topbar .container-fluid{padding-left:10px!important;padding-right:10px!important}.topbar .d-flex{gap:.35rem!important}.nav-person{display:none}}
