.chat-toggle{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:40;display:inline-flex;align-items:center;gap:8px;padding:10px 16px 10px 12px;border-radius:999px;border:1px solid var(--border-hi);background:var(--panel-solid);color:var(--gold);font-family:var(--display);font-weight:600;letter-spacing:.04em;box-shadow:0 8px 24px #00000073,0 0 18px #9b87ff40;transition:background .15s ease,transform .15s ease}.chat-toggle:hover{background:#2a2452}.chat-toggle.open{color:var(--text);border-color:var(--border)}.chat-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--arcane-deep);color:#fff;font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:0;line-height:20px;text-align:center}.chat-popup{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 58px);z-index:40;width:360px;height:min(480px,calc(100dvh - 120px));display:flex;flex-direction:column;background:#161330f0;border:1px solid var(--border-hi);border-radius:var(--radius);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 16px 40px #0000008c;overflow:hidden}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 10px 16px;border-bottom:1px solid var(--border)}.chat-head h2{font-size:15px;color:var(--gold)}.chat-close{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:22px;line-height:1}.chat-close:hover{color:var(--text);background:#9b87ff1f}.chat-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:10px 14px;display:flex;flex-direction:column;gap:8px}.chat-log .empty{margin:auto 0;text-align:center;color:var(--muted);font-size:14px}.chat-line{display:flex;flex-direction:column;gap:1px;font-size:14px}.chat-meta{display:flex;align-items:baseline;gap:8px;font-size:12px;color:var(--faint)}.chat-name{font-weight:600;color:var(--teal)}.chat-line.mine .chat-name{color:var(--gold)}.chat-text{overflow-wrap:anywhere;white-space:pre-wrap}.chat-error{margin:0 12px 6px;font-size:13px;color:var(--bad)}.chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border)}.chat-form .input{padding:9px 11px}.chat-send{flex:none}.chat-send:disabled{opacity:.5}.chat-left{position:absolute;right:92px;bottom:62px;font-size:11px;color:var(--faint)}.chat-spacer{height:56px}@media(max-width:720px){.chat-toggle{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));padding:12px}.chat-toggle-label{display:none}.chat-toggle .chat-badge{position:absolute;top:-6px;right:-6px}.chat-popup{left:8px;right:8px;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 58px);width:auto;height:min(440px,calc(100dvh - 110px))}}:root{--bg: #1a1917;--panel: #242220;--panel-solid: #242220;--panel-hi: #2e2b28;--border: #45403a;--border-hi: rgba(86, 184, 146, .55);--text: #f0e9dc;--muted: #b3a998;--faint: #857c6f;--accent: #56b892;--accent-deep: #33805f;--on-accent: #141412;--bone: #e9dcc0;--coin: #e3b65e;--rate: #8fd4a8;--ok: #8fd4a8;--bad: #ef8a7a;--radius: 8px;--display: "Grenze", "Palatino Linotype", Palatino, Georgia, serif;--body: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--num: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--body);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.45}h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:.01em;margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:22px;color:var(--accent);margin-bottom:14px}.panel-title .count{font-family:var(--body);font-size:12px;letter-spacing:0;color:var(--muted);background:#ffffff0f;border-radius:999px;padding:2px 9px}.muted{color:var(--muted);font-size:14px}.empty{color:var(--faint);font-size:14px;font-style:italic;margin:0}.btn{border:none;background:var(--accent);color:var(--on-accent);font-weight:700;border-radius:6px;padding:10px 16px 12px;box-shadow:inset 0 -4px 0 var(--accent-deep);transition:transform .08s ease,filter .15s ease}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 -2px 0 var(--accent-deep)}.btn:disabled{background:var(--panel-hi);box-shadow:inset 0 -4px #0003;color:var(--faint)}.btn-ghost{border:1px solid var(--border);background:#ffffff0a;color:var(--text);border-radius:6px;padding:6px 12px;font-size:14px;transition:background .15s ease,border-color .15s ease}.btn-ghost:hover{background:#56b89224;border-color:#56b89273}.btn-ghost.accept{border-color:#6ee7a873;color:var(--ok)}.btn-ghost.accept:hover{background:#6ee7a81f}.link{background:none;border:none;color:var(--accent);padding:0;font-size:inherit;text-decoration:underline;text-underline-offset:3px}.link:hover{color:var(--bone)}.error{color:var(--bad);background:#ff8a8a14;border:1px solid rgba(255,138,138,.3);border-radius:10px;padding:8px 12px;font-size:14px;margin:12px 0 0}.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:400px;padding:32px 28px}.crest{width:64px;height:64px;margin:0 auto 14px;display:grid;place-items:center;font-size:30px;border-radius:10px;background:var(--panel-hi);border:1px solid var(--border)}.title{text-align:center;font-size:34px;color:var(--text)}.tagline{text-align:center;color:var(--muted);font-size:14px;margin:6px 0 24px}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.input{width:100%;padding:11px 12px;font-size:16px;background:#14131199;border:1px solid var(--border);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #56b89233}.input::placeholder{color:var(--faint)}.auth-switch{text-align:center;font-size:14px;color:var(--muted);margin:20px 0 0}.game{max-width:1200px;margin:0 auto;padding:16px 16px 48px}.topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:16px}.topbar .crest{width:42px;height:42px;font-size:20px;margin:0;flex:none}.topbar-name{flex:1;min-width:0}.topbar-name h1{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}.status.offline:before{background:var(--bad);box-shadow:0 0 8px var(--bad);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.layout{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media(min-width:860px){.layout{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}}.column{display:flex;flex-direction:column;gap:16px;min-width:0}.resources{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:10px}.resource{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--edge, var(--border));position:relative;overflow:hidden}.resource-icon{font-size:30px;line-height:1}.resource-amount{font-family:var(--num);font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.1}.resource-label{font-size:13px;color:var(--muted)}.rate{color:var(--rate);font-variant-numeric:tabular-nums}.buildings{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.building{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:12px;background:#ffffff08;border:1px solid var(--border);transition:border-color .2s ease,background .2s ease}.building.affordable{border-color:var(--border-hi);background:#56b8920d}.building-head{display:flex;align-items:center;gap:12px}.building-icon{width:44px;height:44px;flex:none;display:grid;place-items:center;font-size:24px;border-radius:10px;background:#56b8921f;border:1px solid var(--border)}.building-name{font-family:var(--display);font-size:19px;font-weight:600}.owned{margin-left:auto;font-family:var(--num);font-size:26px;font-weight:600;color:var(--bone);font-variant-numeric:tabular-nums}.building-desc{font-size:13px;color:var(--muted);margin:0}.progress{height:6px;border-radius:3px;background:var(--bg);overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .1s linear}.building .btn{width:100%;font-family:var(--num);font-size:18px;font-weight:600;display:flex;justify-content:center;align-items:center;gap:6px;font-variant-numeric:tabular-nums}.list{display:flex;flex-direction:column;gap:10px}.card{border:1px solid var(--border);background:#ffffff08;border-radius:12px;padding:12px;font-size:14px}.card.incoming{border-color:#6ee7a859;background:#6ee7a80d}.card.past{color:var(--muted);padding:8px 12px;font-size:13px}.player{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;flex:none;border-radius:6px;display:grid;place-items:center;font-family:var(--display);font-weight:700;color:var(--on-accent);background:var(--bone)}.player-name{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offer{margin-top:12px;display:grid;grid-template-columns:auto 1fr;gap:6px 8px;align-items:center}.offer-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.island-picker{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px}.island-name{display:flex;flex-direction:column;align-items:center;min-width:160px;padding:4px 12px;background:none;border:none;color:var(--accent);font-family:var(--display);font-size:16px;font-weight:600;cursor:pointer}.island-name .muted{font-family:Inter,sans-serif;font-size:12px;font-weight:400}.offer-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}.recipe{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.recipe-text{flex:1 1 180px}.recipe-actions{display:flex;gap:6px;align-self:center}.offer .input{padding:7px 9px;font-size:15px;min-width:0}.offer-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;margin-top:4px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.actions .muted{flex:1;font-size:13px}.badge{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:1px 7px;border-radius:999px;margin-left:6px;background:#ffffff12;color:var(--muted)}.badge.accepted{background:#6ee7a81f;color:var(--ok)}.badge.failed{background:#ff8a8a1f;color:var(--bad)}.loading{min-height:100vh;min-height:100dvh;display:grid;place-items:center;font-family:var(--display);color:var(--muted);letter-spacing:.08em}@media(max-width:480px){.panel{padding:14px}.resource-amount{font-size:24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.btn-ghost:disabled{opacity:.45;background:#ffffff0a;border-color:var(--border)}[hidden]{display:none!important}.map-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.map-head .panel-title{margin:0}.map-tools{display:flex;gap:6px}.map-tools .btn-ghost{min-width:40px}.map-wrap{width:100%;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.map-canvas{display:block;touch-action:none;cursor:grab}.map-canvas:active{cursor:grabbing}.map-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 2px 12px;font-size:13px}.map-legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.swatch.mine{background:#f0c66ed9}.swatch.theirs{background:#5ee0c8bf}.swatch.claim{border:1px dashed rgba(240,198,110,.8)}.swatch.explore{border:1px dashed rgba(236,232,255,.85)}.swatch.poi{background:#ec7a5c;clip-path:polygon(50% 0,64% 36%,100% 50%,64% 64%,50% 100%,36% 64%,0 50%,36% 36%)}.swatch.shipment{border-radius:50%;background:#c4b8ff;box-shadow:0 0 0 2px #0a0c1ee6}.shipment-info .plot-info-head{align-items:center}.plot-info-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}.plot-info p{margin:6px 0}.plot-info .btn{margin-top:6px}.plot-chips{grid-column:2 / -1;display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:13px;cursor:pointer}.chip.on{color:var(--bg);background:var(--accent);border-color:var(--accent)}.demolish{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;border:1px solid var(--border);background:var(--panel-solid);color:var(--muted);font-size:11px;line-height:1;cursor:pointer;white-space:nowrap}.demolish.confirm{color:var(--bg);background:var(--bad);border-color:var(--bad);z-index:1}.mod.good{color:var(--ok)}.mod.bad{color:var(--bad)}.shell{display:grid;grid-template-columns:212px minmax(0,1fr);gap:16px;align-items:start}.sidenav{position:sticky;top:12px;display:flex;flex-direction:column;gap:6px;padding:10px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.navtab{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--muted);font-family:var(--display);font-weight:600;letter-spacing:.04em;text-align:left;transition:background .15s ease,color .15s ease,border-color .15s ease}.navtab:hover{color:var(--text);background:#56b8921a}.navtab.active{color:var(--accent);border-color:var(--border-hi);background:var(--panel-hi);box-shadow:inset 3px 0 0 var(--accent)}.navtab.active .navtab-icon{color:var(--accent)}.navtab-icon{position:relative;display:grid;place-items:center}.navtab-label{flex:1;min-width:0}.navtab-badge{position:absolute;top:-7px;right:-10px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--accent-deep);color:var(--on-accent);background:var(--bone);font-family:var(--body);font-size:10.5px;font-weight:700;letter-spacing:0;line-height:17px;text-align:center}.soon{font-family:var(--body);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);border:1px solid var(--border);border-radius:999px;padding:1px 7px}.content{display:flex;flex-direction:column;gap:16px;min-width:0}.ticker{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 14px;border-radius:999px;background:var(--panel);border:1px solid var(--border);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.ticker-item{display:inline-flex;align-items:center;gap:6px}.coming{display:grid;justify-items:center;text-align:center;gap:4px;padding:28px 12px 18px;color:var(--accent)}.coming p{margin:0;color:var(--text);font-family:var(--display);letter-spacing:.04em}.coming p.muted{font-family:var(--body);letter-spacing:0;color:var(--muted);max-width:420px}@media(max-width:720px){.game{padding:10px 10px 40px}.topbar{margin-bottom:10px}.shell{grid-template-columns:60px minmax(0,1fr);gap:8px}.sidenav{top:8px;padding:6px 4px;gap:4px}.navtab{flex-direction:column;gap:3px;padding:8px 2px 6px;text-align:center;font-family:var(--body);font-size:10px;letter-spacing:0}.navtab.active{box-shadow:none}.navtab-label{line-height:1.15}.soon,.hide-sm{display:none}.content{gap:10px}.ticker{border-radius:12px;padding:6px 10px;gap:4px 10px;font-size:13px}}.error.top{margin:0 0 12px}.estates{display:flex;flex-direction:column;gap:8px}.estate{border:1px solid var(--border);border-radius:12px;background:#ffffff08;overflow:hidden}.estate.open{border-color:var(--border-hi);background:#2e2b2873}.estate-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;text-align:left}.estate-row:hover{background:#56b89214}.chevron{color:var(--muted);transition:transform .15s ease}.estate.open .chevron{transform:rotate(90deg);color:var(--accent)}.estate-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:14px}.estate-name strong,.estate-name .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.estate-name .muted{font-size:12px}.pips{display:flex;gap:3px}.pip{width:8px;height:8px;border-radius:2px}.pip.built{background:var(--accent)}.pip.free{border:1px solid rgba(86,184,146,.6)}.pip.locked{background:#ffffff14}.estate-count{min-width:34px;text-align:right;font-family:var(--num);font-size:20px;font-weight:600;color:var(--bone);font-variant-numeric:tabular-nums}.estate-body{padding:4px 12px 12px}.slot-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}.bslot{position:relative;aspect-ratio:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:10px;font-size:10.5px;padding:2px}.bslot-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bslot.built{background:#56b8921f;border:1px solid var(--border-hi)}.bslot.free{background:transparent;border:1px dashed rgba(86,184,146,.55);color:var(--accent);transition:background .15s ease,box-shadow .15s ease}.bslot.free:hover,.bslot.free.active{background:#56b8921a}.bslot.free.active{border-style:solid}.bslot.locked{border:1px solid rgba(255,255,255,.06);background:#ffffff06;color:var(--faint);opacity:.55}.bslot.locked.next{opacity:1;color:var(--muted);border-color:var(--border)}.unlock{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;font-size:14px}.unlock-text{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.unlock-actions{display:inline-flex;align-items:center;gap:12px}.cost{display:inline-flex;flex-wrap:wrap;gap:4px 10px}.cost-part{display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums}.cost-part.short{color:var(--bad)}.picker{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.picker-head h3{font-size:14px;color:var(--accent)}.estates-foot{margin:12px 0 0;font-size:13px}@media(max-width:720px){.slot-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.pips{display:none}.estate-body{padding:2px 8px 10px}.estate-row{padding:10px 8px}.bslot-label{font-size:9.5px}}.online-count{display:block;font-size:12px;color:var(--faint)}.player-search{width:100%;margin-bottom:10px}.player-list{display:flex;flex-direction:column;gap:6px}.player-item{border:1px solid var(--border);border-radius:12px;background:#ffffff08;overflow:hidden}.player-item.open{border-color:var(--border-hi);background:#2e2b2873}.player-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;text-align:left}.player-row:hover{background:#56b89214}.player-action{font-size:13px;color:var(--accent);border:1px solid var(--border-hi);border-radius:999px;padding:2px 10px}.player-item.open .player-action{color:var(--muted);border-color:var(--border)}.offer-body{padding:0 12px 12px;font-size:14px}.offer-body .offer{margin-top:4px}.admin-stats .resource-amount{color:var(--accent)}.admin-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.send-by{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:8px 0 4px}.send-by label{display:flex;align-items:center;gap:8px}.send-by select.input{width:auto;padding:6px 8px;font-size:14px}.send-by-note{font-size:13px}.send-by-note.warn{color:var(--bad)}.panel-intro{margin:0 0 12px;font-size:14px}.card.vehicle{display:flex;align-items:center;gap:12px}.danger{font-weight:600}.danger-0{color:#8fd694}.danger-1{color:#e8d27a}.danger-2{color:#f0a35e}.danger-3{color:#ec7a5c}.danger-4{color:#ff5c7a}.expedition-form{margin-top:6px}.expedition-people{display:inline-flex;align-items:center;gap:8px}.expedition-people .input{width:84px}.plot-info .ok,.expeditions .ok{color:#8fd694}.plot-info .bad,.expeditions .bad{color:#ff8a7a}.expeditions ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}.expeditions{margin-top:12px}.card.listing{display:flex;align-items:center;gap:12px}.listing-text{flex:1 1 auto;min-width:0}.subhead{margin:16px 0 8px;font-family:var(--display);font-size:14px;color:var(--muted);letter-spacing:.04em}.listing-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.listing-form select.input{width:auto}.rate-field{display:flex;align-items:center;gap:6px}.rate-field .input{width:90px}.route-options{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px}.route-options .btn-ghost.active{border-color:var(--border-hi);color:var(--gold);background:#f0c66e1a}.muted.small{font-size:13px}.road-panel{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin:4px 0 8px}.road-panel p{margin:0}.toll-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toll-form input{width:110px;margin-left:6px}.swatch.road-dirt{background:#b08452;border-radius:3px}.swatch.road-paved{background:#d6d2c8;border-radius:3px}
