#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-framed.svg?v=1)!important;background-size:90px 30px!important;background-position:0 0!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:90px 30px!important;background-position:0 0!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}



body.u2m #tabs #partyNav.on::before{background-position:100% 0!important}

.party-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.party-columns>section{min-width:0;border:1px solid #53583b;border-radius:3px;padding:10px}.party-columns h4{margin:0 0 10px!important}.party-candidates{height:260px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a99c62 #172016}.party-columns .party-member{gap:6px;flex-wrap:wrap}.party-columns .party-member span{min-width:0;overflow-wrap:anywhere}.party-columns .party-member .btn{min-height:40px;flex-shrink:0}.party-columns .party-member .btn:disabled{opacity:.5;cursor:default;pointer-events:none}.party-settings-section{border-top:1px solid #53583b;margin-top:16px;padding-top:2px}.party-settings-section .party-settings{margin-bottom:0}.party-team-column .party-follow{flex-wrap:wrap}.party-team-column select{min-width:0;width:100%}@media(max-width:480px){.party-columns{gap:8px}.party-columns>section{padding:8px}.party-candidates{height:230px}.party-columns .party-follow{font-size:12px}.party-columns .party-member{font-size:12px}.party-columns .party-member .btn{min-height:44px}.party-columns .party-member small{font-size:11px}}

.xp-system-notice{color:#ff5555!important}#xpEventTicker{position:fixed;top:58px;left:0;right:0;height:30px;overflow:hidden;pointer-events:none;z-index:900;background:#150606dc;border-top:1px solid #8d302b;border-bottom:1px solid #8d302b;color:#ff6262;font-family:"IBM Plex Mono",monospace;font-size:13px;font-weight:bold;line-height:28px}#xpEventTicker span{display:block;width:max-content;white-space:nowrap;padding-left:100vw;animation:xp-event-scroll 18s linear forwards}@keyframes xp-event-scroll{from{transform:translateX(0)}to{transform:translateX(-100%)}}@media(prefers-reduced-motion:reduce){#xpEventTicker{height:auto;min-height:30px}#xpEventTicker span{padding:4px 12px;white-space:normal;width:auto;animation:xp-event-static 18s linear forwards}@keyframes xp-event-static{from{opacity:1}to{opacity:1}}}

.friend-list{max-height:230px;overflow-y:auto}.friend-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #505637}.friend-row small{display:block;font-size:12px;color:#b3b79c}.friend-row .btn{min-height:40px}#friendSearch{display:flex;align-items:end;gap:10px}#friendSearch label{flex:1;min-width:0}#friendsBody h4{margin:16px 0 8px}#lanBar{flex-wrap:wrap;max-width:calc(100vw - 12px)}@media(max-width:480px){.friend-row{flex-wrap:wrap}.friend-row .btn{min-height:44px}}

body.u2m #tabs:has(#friendsNav){grid-template-columns:repeat(10,minmax(0,1fr))!important}#tabs:has(#friendsNav){grid-template-columns:repeat(10,minmax(0,1fr))}body.u2m #tabs #friendsNav::before{background-image:url(img/u2/friends.svg?v=1)!important;background-size:90px 30px!important;background-position:0 0!important}body.u2m #tabs #friendsNav.on::before{background-position:100% 0!important}#friendsNav{position:relative;font-size:9px!important;white-space:nowrap;padding-left:0!important;padding-right:0!important}#friendsNav::before{background-image:url(img/u2/friends.svg?v=1);background-size:300% 100%}

#lanBar{right:auto!important;padding:0!important;border:0;background:transparent;gap:4px;font-size:10px}#lanBar .btn{min-height:18px!important;height:18px;padding:0 5px;line-height:16px;font-size:10px}#lanStatus,#lanChatBtn{display:none!important}#lanServerLabel{position:fixed;z-index:9;color:#eee5bd;background:#162017d9;border:1px solid #6b704c;text-align:center;font:10px/16px "IBM Plex Mono",monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.account-gated #lanServerLabel{visibility:hidden}#lanChat{left:0;right:auto;top:auto;bottom:52px;width:min(430px,calc(100vw - 8px));z-index:8;font-size:11px}body.u20 #u20log #lanChat{position:relative;left:auto;bottom:auto;top:auto;width:100%;box-sizing:border-box;pointer-events:auto}body.u20 #u20log{pointer-events:auto}#lanMessages{height:100px;max-height:18vh}#lanChatForm{padding:4px}#lanChatInput{font-size:13px;min-height:28px;padding:3px 6px}#lanChat .btn{min-height:28px;padding:2px 6px}#lanChatClose{min-width:24px;min-height:24px;font-size:18px}.lan-chat-title{padding:3px 5px;gap:5px}#lanChatChannel{background:#172116;color:#eee3b5;border:1px solid #747b50;font:11px "IBM Plex Mono",monospace;min-height:24px}#lanChatTarget{min-width:0;width:60%;font:11px "IBM Plex Mono",monospace;background:#172116;color:#eee3b5;border:1px solid #747b50;padding:3px}#lanChatTarget[hidden]{display:none}@media(max-width:600px){#lanChat{width:min(340px,calc(100vw - 8px))}#lanBar{max-width:180px!important}}

#lanChatForm[hidden]{display:none}#u20log #u20lines{max-height:130px;overflow:auto}#lanGuildManage{font-size:10px!important}body.u20:has(#chatBox.open) #u20log{display:block!important}

#lanGuildManage[hidden]{display:none}#lanServerLabel{overflow:visible;text-overflow:clip}#lanChatTarget{flex:1}#lanChatChannel{max-width:110px}

#lanChatChannel{display:none}#lanChat{background:#111a10b8;border:0;border-radius:0;font:11px/1.6 "IBM Plex Mono",monospace}.lan-chat-title{min-height:0;border:0;padding:0;justify-content:flex-end}#lanChatClose{position:absolute;right:2px;top:0;color:#b6b89b;background:#162017aa;z-index:1}#lanMessages{height:125px;max-height:22vh;padding:2px 6px;scrollbar-width:thin;scrollbar-color:#85845c #162017;overflow-wrap:anywhere}.lan-log-line{margin:1px 0;line-height:1.6}.lan-log-line>b{font-weight:normal}#lanChatTabs{display:flex;flex-wrap:wrap;gap:2px;background:linear-gradient(#353c29,#1c2417);border-top:1px solid #777953;padding:2px}#lanChatTabs button{color:var(--channel-color);font:10px/18px "IBM Plex Mono",monospace;background:#152014;border:1px solid #59623e;padding:0 5px;cursor:pointer}#lanChatTabs button.on{border-color:#dac677;background:#41442b;box-shadow:inset 0 0 3px #cdbf6844}#lanChatForm{border-top:1px solid #485238}.account-gated #lanChatTabs{visibility:hidden}@media(max-width:480px){#lanChat{width:calc(100vw - 8px)}#lanChatTabs button{font-size:10px;padding:0 4px}#lanMessages{height:110px}}

#logBox{display:none!important}

#lanChat .lan-chat-title{height:22px;min-height:22px;padding:0 6px;display:flex;align-items:center;gap:6px;background:#172014b8;cursor:default}.lan-log-heading{margin-right:auto;color:#bdc2a2;font-size:10px}#lanChatClose{position:static;min-width:30px;min-height:20px;font:10px/18px "IBM Plex Mono",monospace;border:1px solid #606944;padding:0 5px;color:#ddd8b8}#lanChatReset{font:10px/18px "IBM Plex Mono",monospace;border:1px solid #606944;background:#202b1c;color:#ddd8b8;padding:0 5px;cursor:pointer}#lanChatReset[hidden],#lanChatShow[hidden]{display:none!important}#lanChatShow{position:fixed;left:2px;bottom:52px;z-index:9;font:11px "IBM Plex Mono",monospace;color:#e4deba;background:#23301f;border:1px solid #7d8458;padding:3px 7px;cursor:pointer}body.u20 #lanChatShow{bottom:2px}.account-gated #lanChatShow{visibility:hidden}#lanChat[data-sized]{width:var(--log-width)!important}#lanChat[data-sized] #lanMessages{height:var(--log-height)!important;max-height:none!important;box-sizing:border-box}.lan-log-resize{position:absolute;touch-action:none;z-index:3}.resize-height{left:10px;right:14px;top:-4px;height:7px;cursor:ns-resize}.resize-width{right:-4px;top:14px;bottom:8px;width:7px;cursor:ew-resize}.resize-both{right:-3px;top:-3px;width:13px;height:13px;cursor:nesw-resize;border-top:2px solid #a9b475;border-right:2px solid #a9b475}.lan-log-resize:hover{background:#a8b36c66}

.party-member-actions{display:flex;flex-wrap:wrap;gap:6px}.party-member-actions .btn.on{border-color:#dcc877;background:#455034}.party-member-actions .btn{white-space:nowrap}@media(max-width:480px){.party-member-actions{width:100%}}

.party-settings #partyAutoAccept{min-width:0;min-height:36px;max-width:100%;background:#172215;color:#eee0b6;border:1px solid #777b50;font:13px "IBM Plex Mono",monospace;padding:4px}.party-settings label:has(#partyAutoAccept){flex-wrap:wrap}

[data-u="friends"]{position:relative;overflow:visible!important}.friends-invite-badge{position:absolute;top:-3px;right:-3px;z-index:2;min-width:14px;height:14px;box-sizing:border-box;padding:0 3px;border-radius:8px;background:#d91f2f;color:#fff;font:700 10px/14px Arial,sans-serif;text-align:center;pointer-events:none;box-shadow:0 0 0 1px #330b10}.friends-invite-badge[hidden]{display:none!important}#friendsNav .friends-invite-badge{top:0;right:calc(50% - 20px)}

#lanBar #inBtn{position:static!important;inset:auto!important;margin:0;font-size:10px;white-space:nowrap}
