#lanBar {
  position: fixed; top: max(6px, env(safe-area-inset-top)); right: 8px;
  display: flex; align-items: center; gap: 6px; z-index: 45;
  padding: 5px 7px; border: 1px solid #81875e; border-radius: 3px;
  background: #20291ef2; color: #eee5bd; font: 11px "IBM Plex Mono", monospace;
  max-width: calc(100vw - 16px);
}
#lanStatus { max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#lanBar .btn, #lanChat .btn {
  min-height: 36px; background: linear-gradient(#5d684d, #2e3825);
  color: #f3edc8; border: 1px solid #a6ad80; border-radius: 3px; cursor: pointer;
  padding: 5px 9px; font: inherit;
}
#lanBar .btn.on { border-color: #e7d48a; }
#lanFactionBtn[hidden] { display: none; }
.lan-form { display: grid; gap: 8px; }
.lan-form input, .lan-form select, #lanChatInput {
  width: 100%; box-sizing: border-box; min-height: 40px; background: #111a10;
  color: #f3edc8; border: 1px solid #8b916a; border-radius: 3px;
  padding: 7px 9px; font: inherit;
}
.lan-links { overflow-wrap: anywhere; display: grid; gap: 6px; }
.lan-links a { color: #b8dbe9; }
.lan-player { display: grid; gap: 3px; padding: 9px 0; border-bottom: 1px solid #747b5144; }
.lan-player small { color: #bdc4a7; }
#lanChat {
  position: fixed; right: 8px; top: max(60px, calc(env(safe-area-inset-top) + 54px));
  width: min(340px, calc(100vw - 16px)); z-index: 46;
  color: #f3edc8; background: #20291ef5; border: 1px solid #81875e;
  border-radius: 3px; font: 12px "IBM Plex Mono", monospace;
}
#lanChat[hidden] { display: none; }
.lan-chat-title { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border-bottom: 1px solid #81875e; }
#lanChatClose { min-width: 40px; min-height: 40px; border: 0; background: transparent; color: inherit; font-size: 24px; cursor: pointer; }
#lanMessages { height: min(200px, 30dvh); overflow-y: auto; padding: 0 10px; overflow-wrap: anywhere; }
#lanMessages p { margin: 9px 0; }
#lanMessages b { color: #b8dbe9; }
#lanChatForm { display: flex; gap: 6px; padding: 8px; }
#lanChatInput { min-width: 0; flex: 1; font-size: 16px; }
.lan-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.account-gated #app > :not(#modal), .account-gated #lanBar, .account-gated #lanChat { visibility: hidden; }
.account-gated #mClose { display: none; }
.account-gated #modal { background: #10170f; padding: 20px; box-sizing: border-box; }
.account-gated #modal .mbox { width: min(100%, 440px); max-height: calc(100dvh - 40px); box-sizing: border-box; }
.account-gated #accountForm { display: grid; gap: 14px; }
.account-gated #accountForm label { display: grid; gap: 6px; }
.account-gated #accountForm input:not([type="checkbox"]) { width: 100%; box-sizing: border-box; min-height: 44px; font-size: 16px; color: #f3edc8; background: #111a10; border: 1px solid #8b916a; border-radius: 3px; padding: 8px 10px; font-family: inherit; }
.account-gated #accountForm .account-remember { display: flex; align-items: center; gap: 8px; }
.account-gated #accountForm .btnrow { display: flex; gap: 10px; flex-wrap: wrap; }
.account-gated #accountForm button { min-height: 44px; flex: 1; }
#lanBar button:focus-visible, #lanChat button:focus-visible { outline: 2px solid #e7d48a; outline-offset: 2px; }
@media (max-width: 600px) {
  #lanStatus { display: none; }
  #lanBar { top: max(4px, env(safe-area-inset-top)); right: 4px; padding: 2px 4px; gap: 4px; }
  #lanBar .btn { min-height: 40px; }
  .lan-form input, .lan-form select { font-size: 16px; }
}

.server-list{display:grid;gap:10px;margin:16px 0}.server-list .btn{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;min-height:64px;text-align:left}.server-list small{font-size:12px;color:#b8b0a0}.server-create summary{cursor:pointer;padding:10px 0}.server-create form{display:grid;gap:12px}.server-create label{display:grid;gap:6px}

.server-create input{width:100%;box-sizing:border-box;min-height:44px;font-size:16px;color:#f3edc8;background:#111a10;border:1px solid #8b916a;border-radius:3px;padding:8px 10px;font-family:inherit}

#partyInvites{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#0008;padding:16px;box-sizing:border-box}
.party-invite-box{width:min(100%,520px);max-height:calc(100dvh - 32px);overflow:auto;background:#151d14;border:1px solid #9c8750;border-radius:5px;box-shadow:0 8px 30px #0009;color:#eee3b5;font-family:"IBM Plex Mono",monospace;font-size:14px;line-height:1.5}
.party-invite-box header,.party-invite-box footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#252b1c}
.party-invite-box h3{font-size:17px;margin:0}.party-invite-box h3 span{color:#e7c567}.party-close{width:36px;height:36px;color:#eee3b5;font-size:24px;background:transparent;border:1px solid #5c6342;border-radius:3px}
.party-invite-list{padding:4px 16px}.party-invite-row{padding:14px 0;border-bottom:1px solid #4a5136;display:flex;gap:12px;align-items:center;justify-content:space-between}.party-invite-row:last-child{border:0}.party-invite-row small,.party-member small{display:block;color:#b9baa0;font-size:12px}.party-actions{display:flex;gap:8px}.party-actions .btn,.party-invite-box footer .btn{min-height:40px;white-space:nowrap}
.party-settings{display:grid;gap:12px;margin-bottom:20px}.party-settings label{display:flex;align-items:center;gap:10px;min-height:32px}.party-settings input{width:18px;height:18px;accent-color:#bdac60}.party-settings small{color:#b3b39b;line-height:1.6}.party-member{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #454d34}.party-member .btn{min-height:36px}.party-follow{display:flex;align-items:center;gap:10px;margin:14px 0}.party-follow select{flex:1;min-height:40px}.party-count{position:absolute;right:0;top:0;background:#ae3324;color:#fff6d6;border-radius:8px;font-size:10px;line-height:16px;min-width:16px;text-align:center}.party-count[hidden]{display:none}
#partyNav::before{background-image:url(img/u2/party.svg)!important;background-size:100% 100%!important;background-position:center!important}#tabs:has(#partyNav){grid-template-columns:repeat(9,minmax(0,1fr))}
#partyBody{font-size:14px;line-height:1.5}#partyBody h4{font-size:14px;color:#e6d995;margin:18px 0 8px}.account-gated #u20menu,.account-gated #u20log,.account-gated #u20side,.account-gated #u20r,.account-gated #u20rc{visibility:hidden}
@media(max-width:480px){.party-invite-row{flex-wrap:wrap}.party-actions{width:100%}.party-actions .btn{flex:1;min-height:44px}.party-invite-box footer{flex-wrap:wrap}.party-invite-box footer .btn{width:100%;min-height:44px}#tabs #partyNav{font-size:10px}}

body.u2m #tabs:has(#partyNav){grid-template-columns:repeat(9,minmax(0,1fr))!important}body.u2m #tabs #partyNav::before{background-size:30px 30px!important;background-position:center!important}.party-invite-box h3{padding:0;border:0;line-height:1.4}.party-invite-box h3 span{display:inline-block;margin-left:8px;min-width:24px;text-align:center;border:1px solid #78683e;border-radius:3px;font-size:13px;vertical-align:middle}
