#pb-login { position:fixed; inset:0; z-index:45; color:#eee2c6; font:15px/1.4 Georgia,'Times New Roman',serif; isolation:isolate; }
#pb-login[hidden],#pb-login [hidden] { display:none!important; }
#pb-login * { box-sizing:border-box; }
#pb-login,#pb-login * { cursor:url('login-assets/game-cursor.png') 0 0,auto!important; }
#pb-login .pb-game-cursor { display:none; position:fixed; left:0; top:0; width:32px; height:32px; z-index:1000; pointer-events:none; user-select:none; }
#pb-login.pb-cursor-active,#pb-login.pb-cursor-active * { cursor:none!important; }
#pb-login.pb-cursor-active .pb-game-cursor { display:block; }
#pb-login .pb-vignette { position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at center,transparent 25%,#0006 100%),rgba(0,0,0,var(--pb-dim,.2)); pointer-events:none; }
.pb-login-open #pt-desktop-fullscreen,.pb-login-open #pt-toolbar,.pb-login-open #pt-touch-ui,.pb-login-open #pt-menu-tools,.pb-login-open #pt-menu-actions { visibility:hidden; pointer-events:none; }
.pb-stage { position:absolute; inset:0; height:var(--pb-height,100dvh); display:grid; place-items:center; overflow:hidden; }
.pb-panel { position:relative; flex:none; width:430px; height:670px; background:url('login-assets/login-panel.png') center/100% 100% no-repeat; transform:scale(var(--pb-scale,1)); transform-origin:center; filter:drop-shadow(0 12px 22px #000b); }
.pb-brand-space { height:215px; }
.pb-panel-content { margin:0 54px; text-shadow:0 1px 2px #000; }
#pb-login h2 { margin:0 0 15px; color:#f5d8a1; text-align:center; font:600 20px/1.25 Georgia,serif; letter-spacing:.18em; }
.pb-field { display:block; margin:0 0 12px; }
.pb-field>span:first-child { display:block; margin:0 0 5px; font-size:13px; letter-spacing:.14em; color:#eee2c6; }
.pb-input-wrap { display:flex; align-items:center; gap:10px; height:46px; padding:0 12px; background:linear-gradient(#080b0dea,#101315ef); border:1px solid #a38a55; border-radius:4px; box-shadow:inset 0 2px 6px #000a; }
.pb-input-wrap:focus-within { border-color:#f6d18a; box-shadow:0 0 0 2px #ba985634,inset 0 2px 6px #000a; }
.pb-input-wrap svg { width:17px; height:20px; flex:none; fill:none; stroke:#bfb197; stroke-width:1.7; }
.pb-input-wrap input { width:100%; min-width:0; height:100%; padding:0; background:transparent; color:#f0e8d9; border:0; outline:none; font:16px system-ui,sans-serif; }
.pb-input-wrap input::placeholder { color:#b4ad9b; opacity:.8; }
.pb-remember { display:flex; align-items:center; gap:7px; margin:2px 0 18px; font-size:13px; cursor:pointer; }
.pb-remember input { width:16px; height:16px; margin:0; accent-color:#ba8c3c; }
.pb-login-options { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:2px 0 18px; }
.pb-login-options .pb-remember { margin:0; font-size:12px; }
.pb-forgot { border:0; background:none; padding:5px 0; color:#edce93; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.pb-forgot:hover { color:#fff0cd; }
.pb-recovery-note { margin:20px 0 26px; color:#d3c9b3; text-align:center; font:14px/1.6 system-ui,sans-serif; }
#pb-login button { cursor:pointer; font-family:Georgia,serif; }
.pb-primary,.pb-secondary { display:block; width:100%; min-height:48px; padding:9px 12px; border-radius:5px; letter-spacing:.13em; font-size:16px; text-align:center; }
.pb-primary { position:relative; border:2px solid #f4cf82; background:linear-gradient(110deg,#ffffff09,transparent 50%),linear-gradient(#ffe3a0,#d89a36 65%,#a96a20); color:#28180a; box-shadow:inset 0 0 0 2px #a16a24,inset 0 2px 8px #fff7,0 0 14px #e6ad392b; text-shadow:0 1px #ffebac; font-weight:bold; }
.pb-primary::before,.pb-primary::after { content:'◆'; position:absolute; top:50%; transform:translateY(-50%); font-size:13px; color:#6e4b20; text-shadow:0 1px #ffeec4; }
.pb-primary::before { left:-7px; }.pb-primary::after { right:-7px; }
.pb-secondary { margin-top:12px; border:1px solid #b18d51; background:linear-gradient(#161a1d,#090c10); color:#f2d49d; box-shadow:inset 0 0 0 3px #141618,inset 0 0 0 4px #695334; }
#pb-registration-form h2 { font-size:18px; margin-bottom:13px; }
#pb-registration-form .pb-field { margin-bottom:10px; }
#pb-registration-form .pb-input-wrap { height:40px; }
#pb-registration-form .pb-primary { min-height:44px; font-size:14px; letter-spacing:.08em; }
.pb-return { display:block; width:100%; padding:6px; margin-top:9px; background:none; color:#edce93; border:0; font-size:13px; }
.pb-return:hover { color:#fff0cd; }
.pb-primary:hover:not(:disabled) { filter:brightness(1.12); }.pb-secondary:hover:not(:disabled) { border-color:#e4bd78; background:#1c2428; }
#pb-login :disabled { cursor:wait; opacity:.6; }
#pb-login :focus-visible { outline:2px solid #66cfca; outline-offset:3px; }
#pb-login input:focus-visible { outline:none; }
#pb-login-message { margin:11px 0 0; min-height:34px; max-height:42px; overflow:auto; color:#c8c4b3; font:12px/1.35 system-ui,sans-serif; text-align:center; }
#pb-login-message.pb-error { color:#ffb3a4; }
.pb-hint { margin:7px -18px 0; color:#bbb4a1; text-align:center; font-size:12px; }
.pb-eyebrow { color:#d7b777; text-align:center; letter-spacing:.35em; font-size:12px; margin:0 0 14px; }
#pb-server-form h2 { margin:0 -12px 23px; letter-spacing:.08em; }
#pb-servers { min-height:145px; max-height:185px; overflow:auto; border:0; margin:0 0 22px; padding:3px; scrollbar-width:thin; scrollbar-color:#8e6b33 transparent; }
.pb-server-card { position:relative; display:flex; align-items:center; gap:12px; min-height:110px; border:1px solid #786442; margin:0 0 9px; padding:15px 13px; border-radius:4px; background:linear-gradient(110deg,#10211bdc,#081414ef); cursor:pointer; }
.pb-server-card:has(input:checked) { border-color:#eac273; box-shadow:inset 0 0 0 3px #191e17,inset 0 0 0 4px #7e6330,0 0 12px #ad87431a; }
.pb-server-card input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; margin:0; }
.pb-server-card:has(input:focus-visible) { outline:2px solid #66cfca; outline-offset:2px; }
.pb-server-crest { color:#52e1d2; font-size:43px; text-shadow:0 0 12px #0ba898,2px 3px #302213; -webkit-text-stroke:1px #d7aa55; }
.pb-server-copy { display:flex; flex-direction:column; gap:2px; min-width:0; }
.pb-server-copy strong { color:#f5deae; font-size:24px; overflow-wrap:anywhere; }
.pb-server-copy>span { font-size:13px; }.pb-server-copy .pb-available { color:#76e597; font-family:system-ui,sans-serif; font-size:12px; margin-top:3px; }
.pb-server-arrow { color:#ebc374; font-size:40px; margin-left:auto; }
.pb-empty { font:13px system-ui,sans-serif; text-align:center; color:#c8c4b3; }
.pb-toolbar { position:absolute; z-index:3; top:max(12px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); display:flex; gap:6px; padding:5px; border:1px solid #b08e52; border-radius:8px; background:#0c1014ed; box-shadow:0 2px 9px #0007; font:12px Georgia,serif; }
.pb-language { display:flex; align-items:center; gap:9px; padding-left:6px; letter-spacing:.1em; color:#e8d2aa; }
.pb-globe { font:20px system-ui,sans-serif; color:#67d9df; }
.pb-globe svg { display:block; width:18px!important; height:18px!important; stroke:#67d9df; fill:none; }
#pb-login select,.pb-toolbar select,.pb-shared-settings select { background:#11141c; color:#eee2cf; border:1px solid #aa8b54; border-radius:4px; min-height:34px; padding:5px 9px; font:600 13px system-ui,sans-serif; }
.pb-shared-toolbar{position:fixed;z-index:46;box-sizing:border-box;}
.pb-character-toolbar-open #pt-desktop-fullscreen{display:none!important;}
.pb-shared-settings{position:fixed!important;z-index:47!important;color:#eee2c6;font:15px/1.4 Georgia,'Times New Roman',serif;box-sizing:border-box;}
.pb-shared-toolbar,.pb-shared-toolbar *,.pb-shared-settings,.pb-shared-settings *{cursor:url('login-assets/game-cursor.png') 0 0,auto!important;box-sizing:border-box;}
@media(max-width:900px){
  .pb-shared-toolbar{top:max(4px,env(safe-area-inset-top));right:max(4px,env(safe-area-inset-right));gap:4px;padding:3px;font-size:10px;}
  .pb-shared-toolbar .pb-language{gap:5px;padding-left:3px;letter-spacing:.04em;}
  .pb-shared-toolbar select{min-height:28px;padding:3px 6px;font-size:11px;}
  .pb-toolbar.pb-shared-toolbar button{width:28px;height:28px;padding:4px;}
  .pb-toolbar.pb-shared-toolbar svg{width:18px;height:18px;}
}
.pb-toolbar button { width:36px; height:36px; padding:6px; background:#121416; color:#f2ce82; border:1px solid #b39559; border-radius:4px; }
.pb-toolbar button:hover { background:#252620; }
.pb-toolbar svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
#pb-settings-panel { position:absolute; z-index:4; top:66px; right:max(12px,env(safe-area-inset-right)); width:min(310px,calc(100vw - 24px)); padding:20px; border:1px solid #aa8b54; border-radius:8px; background:#101519fa; box-shadow:0 12px 30px #0009; }
#pb-settings-panel h2 { margin-bottom:20px; font-size:17px; letter-spacing:.04em; }
#pb-settings-panel label { display:flex; flex-direction:column; gap:9px; margin-bottom:18px; font:13px system-ui,sans-serif; }
#pb-settings-panel input { width:100%; accent-color:#c7a467; }
.pb-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:620px),(max-height:500px) { .pb-toolbar { top:6px; right:6px; gap:4px; padding:3px; }.pb-language { gap:5px; }.pb-language>span[data-i18n] { display:none; }.pb-toolbar button { width:30px; height:30px; padding:4px; }#pb-login select { min-height:30px; padding:3px 6px; font-size:12px; }.pb-toolbar svg { width:20px; height:20px; }.pb-stage { padding-top:12px; }#pb-settings-panel { top:48px; } }
.pt-touch.pt-portrait #pb-login .pb-stage { visibility:hidden; }
@media(max-height:500px) {
  .pb-stage { padding-top:36px; }
  .pb-panel { display:grid; grid-template-columns:200px 1fr; align-items:center; gap:12px; width:660px; height:320px; padding:12px 20px 12px 12px; background:radial-gradient(ellipse at left,#14363188,transparent 65%),linear-gradient(135deg,#1b2020f5,#080d10f5); border:2px solid #c09d5b; border-radius:8px; box-shadow:inset 0 0 0 3px #11181a,inset 0 0 0 4px #66522f; }
  .pb-brand-space { width:200px; height:165px; background:url('login-assets/login-panel.png') center -8px/250px 375px no-repeat; }
  .pb-panel-content { margin:0; }
  #pb-login h2 { font-size:16px; margin-bottom:8px; }
  .pb-field { margin-bottom:7px; }.pb-field>span:first-child { font-size:11px; line-height:14px; margin-bottom:3px; }
  .pb-input-wrap { height:36px; }.pb-input-wrap input { font-size:16px; }
  .pb-remember { font-size:12px; line-height:15px; margin-bottom:8px; }
  .pb-login-options { margin:2px 0 8px; }
  .pb-login-options .pb-remember,.pb-forgot { font-size:11px; }
  .pb-primary,.pb-secondary { min-height:36px; padding:6px 12px; font-size:13px; }.pb-secondary { margin-top:8px; }
  #pb-login-message { min-height:20px; max-height:28px; margin-top:5px; font-size:11px; }
  #pb-registration-form .pb-field { margin-bottom:5px; }
  #pb-registration-form .pb-input-wrap { height:30px; }
  #pb-registration-form .pb-primary { min-height:32px; padding:5px 9px; font-size:12px; }
  #pb-registration-form .pb-return { margin-top:4px; padding:4px; font-size:12px; line-height:16px; }
  .pb-hint { margin-top:3px; font-size:11px; line-height:14px; }
  .pb-eyebrow { margin-bottom:5px; font-size:10px; }
  #pb-server-form h2 { margin-bottom:10px; }
  #pb-servers { min-height:100px; max-height:110px; margin-bottom:10px; }
  .pb-server-card { min-height:86px; padding:10px 15px; }.pb-server-copy strong { font-size:21px; }
}

/* Keep the scaled login panel centered inside short viewports. */
.pb-stage { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); min-height:0; min-width:0; box-sizing:border-box; }
