﻿:root{color-scheme:dark;--bg:#090b0c;--panel:#111416;--panel2:#171b1d;--border:#3a342b;--text:#e8e5de;--muted:#8d9499;--accent:#c55a14;--accent-bright:#d46a1c;--success:#4fa95b;--warning:#d99a31;--danger:#d9574f;--shadow:0 18px 50px rgba(0,0,0,.38)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--panel2);padding:.65rem 1rem;border-radius:.55rem;cursor:pointer;transition:.15s}button:hover{filter:brightness(1.12)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.success{background:var(--success);border-color:var(--success)}.warning{background:var(--warning);border-color:var(--warning);color:#111}.danger{background:var(--danger);border-color:var(--danger)}.secondary{background:var(--panel2)}.full{width:100%}.hidden{display:none!important}.login-view{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at top,#173055 0,transparent 42%),var(--bg)}.login-card{width:min(420px,100%);background:rgba(21,27,36,.96);border:1px solid var(--border);border-radius:1rem;padding:2rem;box-shadow:var(--shadow)}.login-card h1{text-align:center;margin:.7rem 0 .25rem}.login-card>p{text-align:center;color:var(--muted);margin:0 0 1.5rem}.brand-mark{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:16px;background:linear-gradient(145deg,#2f81f7,#7657ff);font-size:2rem;font-weight:800}.brand-mark.small{width:40px;height:40px;margin:0;border-radius:11px;font-size:1.25rem}.app-shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#10161f;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem;z-index:20}.brand{display:flex;align-items:center;gap:.8rem;padding:.4rem .3rem 1.25rem}.brand strong,.brand small{display:block}.brand small{font-size:.65rem;color:var(--muted);letter-spacing:.15em}.sidebar nav{display:flex;flex-direction:column;gap:.25rem}.nav-item{text-align:left;border-color:transparent;background:transparent;color:var(--muted)}.nav-item:hover,.nav-item.active{background:var(--panel2);color:var(--text);border-color:var(--border)}.sidebar-footer{margin-top:auto;padding:.8rem .4rem 0;border-top:1px solid var(--border)}.sidebar-footer small{display:block;color:var(--muted)}.text-button{border:0;background:transparent;padding:.45rem .2rem;color:var(--muted)}.danger-text{color:#ff8b86}.main-content{grid-column:2;min-width:0}.topbar{height:64px;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:.75rem;padding:0 1.4rem;background:rgba(13,17,23,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.topbar select{max-width:320px}.spacer{flex:1}.badge{padding:.3rem .65rem;border-radius:99px;font-size:.78rem;font-weight:700}.badge.online{background:rgba(46,160,67,.18);color:#68d879}.badge.offline{background:rgba(248,81,73,.16);color:#ff8983}.page{display:none;padding:1.5rem;max-width:1700px;margin:auto}.active-page{display:block}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.page-heading h2{font-size:1.8rem;margin:0}.page-heading p{color:var(--muted);margin:.25rem 0 0}.panel,.metric{background:var(--panel);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 6px 24px rgba(0,0,0,.12)}.panel{padding:1rem;margin-bottom:1rem}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:1rem;margin-bottom:1rem}.metric{padding:1.15rem}.metric span{display:block;color:var(--muted);font-size:.82rem}.metric strong{display:block;font-size:1.45rem;margin-top:.4rem}.button-row{display:flex;flex-wrap:wrap;gap:.55rem}.panel h3{margin-top:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.table-panel{padding:0;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:.8rem .9rem;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#111821}tbody tr:hover{background:rgba(255,255,255,.025)}td.actions{display:flex;gap:.35rem}td.actions button{padding:.35rem .55rem;font-size:.78rem}.tabs{display:flex;gap:.3rem;margin:0 0 1rem}.tab{background:transparent;color:var(--muted)}.tab.active{background:var(--panel2);color:var(--text);border-color:var(--accent)}label{display:flex;flex-direction:column;gap:.35rem;color:var(--muted);font-size:.85rem}input,select,textarea{width:100%;background:#0e141d;border:1px solid var(--border);border-radius:.5rem;padding:.65rem .7rem;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(47,129,247,.16)}label>input[type=checkbox]{width:auto;display:inline-block;margin-right:.4rem}label:has(>input[type=checkbox]){display:block;align-self:center;color:var(--text)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.full-span{grid-column:1/-1}.inline-form{display:flex;gap:.6rem;align-items:end}.inline-form input{flex:1}.console-panel{padding-bottom:.8rem}.console{height:420px;overflow:auto;background:#080c12;border:1px solid #222d3a;border-radius:.55rem;padding:.8rem;font-family:Cascadia Code,Consolas,monospace;font-size:.8rem;white-space:pre-wrap;color:#c8d4e3}.toolbar{display:flex;gap:.6rem;margin-bottom:.8rem}.toolbar>*{max-width:320px}.log-list{display:flex;flex-direction:column;gap:.45rem;max-height:650px;overflow:auto}.log-entry{display:grid;grid-template-columns:155px 100px 100px 1fr;gap:.7rem;padding:.65rem;border-bottom:1px solid var(--border);font-size:.86rem}.log-entry .muted{color:var(--muted)}.two-column{display:grid;grid-template-columns:minmax(350px,1fr) minmax(460px,1.2fr);gap:1rem}.kv-editor{display:flex;flex-direction:column;gap:.4rem}.kv-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,2fr) auto;gap:.5rem}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.permission-item{padding:.55rem;border:1px solid var(--border);border-radius:.45rem}.permission-item small{display:block;color:var(--muted);margin-left:1.4rem}.toast{position:fixed;right:1rem;top:1rem;z-index:100;background:#202a37;border:1px solid var(--border);padding:.8rem 1rem;border-radius:.6rem;box-shadow:var(--shadow);max-width:420px}.toast.error{border-color:var(--danger)}.form-error{color:#ff8983;min-height:1.2rem;margin-top:.5rem}dialog{border:0;background:transparent;color:inherit}dialog::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(3px)}.dialog-card{width:min(450px,calc(100vw - 2rem));background:var(--panel);border:1px solid var(--border);border-radius:.8rem;padding:1.2rem;box-shadow:var(--shadow)}.dialog-card label{margin:.7rem 0}.mobile-only{display:none}.icon-button{padding:.45rem .6rem}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main-content{grid-column:1}.mobile-only{display:block}.topbar{padding:0 .7rem}.topbar #clock{display:none}.page{padding:1rem}.metric-grid{grid-template-columns:1fr 1fr;gap:.6rem}.form-grid{grid-template-columns:1fr}.full-span{grid-column:1}.page-heading{align-items:flex-start}.inline-form{flex-direction:column;align-items:stretch}.kv-row{grid-template-columns:1fr}.log-entry{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}}

.map-status{display:flex;align-items:center;justify-content:space-between;gap:1rem}.map-status small{display:block;color:var(--muted);margin-top:.25rem}.map-search{width:min(320px,100%)}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:1rem;min-height:680px}.map-viewport{position:relative;overflow:hidden;min-height:680px;background:#080d12;border:1px solid var(--border);border-radius:.75rem;cursor:grab;touch-action:none;box-shadow:var(--shadow)}.map-viewport.dragging{cursor:grabbing}.map-stage{position:absolute;left:0;top:0;width:1400px;height:1400px;transform-origin:0 0;will-change:transform;user-select:none}.map-stage>img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.map-markers{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.map-marker{cursor:pointer;outline:none}.map-marker-hit{fill:transparent;pointer-events:all}.map-marker-dot{fill:#ff4d67;stroke:#fff;stroke-width:2;filter:drop-shadow(0 4px 7px rgba(0,0,0,.75));pointer-events:none}.map-marker.selected .map-marker-dot{fill:#ffd34e;stroke-width:3}.map-marker.stale .map-marker-dot{fill:#d29922}.map-marker-label{fill:#fff;font-size:12px;font-weight:650;paint-order:stroke;stroke:rgba(10,15,22,.94);stroke-width:5px;stroke-linejoin:round;pointer-events:none}.map-marker:hover .map-marker-dot,.map-marker:focus .map-marker-dot{stroke:#8ec5ff;stroke-width:3}.map-marker:hover .map-marker-label,.map-marker:focus .map-marker-label{fill:#fff}.map-sidebar{display:flex;flex-direction:column;gap:1rem;min-height:0}.map-player-list-panel{display:flex;flex-direction:column;min-height:300px;max-height:430px;margin:0}.map-player-list{display:flex;flex-direction:column;gap:.3rem;overflow:auto}.map-player-row{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;background:transparent;border-color:transparent;color:var(--text)}.map-player-row small{color:var(--muted)}.map-player-row:hover,.map-player-row.selected{background:var(--panel2);border-color:var(--border)}.map-player-details{margin:0;flex:1}.map-player-details h3{font-size:1.3rem;margin-bottom:.2rem}.map-details-grid{display:grid;grid-template-columns:90px 1fr;gap:.55rem;margin:1rem 0}.map-details-grid dt{color:var(--muted)}.map-details-grid dd{margin:0;overflow-wrap:anywhere}
@media(max-width:1100px){.map-layout{grid-template-columns:1fr}.map-sidebar{display:grid;grid-template-columns:1fr 1fr}.map-player-list-panel{max-height:360px}.map-viewport{min-height:620px}}
@media(max-width:760px){.map-status{align-items:stretch;flex-direction:column}.map-search{width:100%}.map-layout{display:block}.map-viewport{min-height:68vh;margin-bottom:1rem}.map-stage{width:1050px;height:1050px}.map-sidebar{display:block}.map-player-list-panel{max-height:300px;margin-bottom:1rem}.map-marker-label{max-width:115px;font-size:.68rem}}

.badge.transition{background:rgba(245,158,11,.18);color:#fbbf24}.admin-player td{color:#ff6b66;font-weight:700}.admin-role{display:inline-block;margin-left:.35rem;padding:.12rem .35rem;border-radius:.35rem;background:rgba(239,68,68,.16);color:#ff8983;font-size:.68rem;vertical-align:middle}
.language-picker{margin-bottom:1rem}.language-selector{width:auto;min-width:126px;max-width:150px;padding:.45rem .6rem}.login-language-picker select{margin-top:.1rem}
@media(max-width:760px){.language-selector{min-width:105px;max-width:115px;font-size:.8rem}}
.chat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.chat-toolbar small{display:block;color:var(--muted);margin-top:.25rem}.chat-toolbar label{width:min(420px,100%)}.chat-feed{display:flex;flex-direction:column;gap:.55rem;min-height:520px;max-height:calc(100vh - 250px);overflow:auto}.chat-message{display:grid;grid-template-columns:150px auto minmax(0,1fr);gap:.75rem;align-items:start;padding:.75rem .85rem;border:1px solid var(--border);border-radius:.65rem;background:var(--panel2)}.chat-message time{color:var(--muted);font-size:.82rem;white-space:nowrap}.chat-message strong{display:block;margin-bottom:.2rem}.chat-message p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-channel{display:inline-flex;align-items:center;justify-content:center;min-width:70px;padding:.2rem .5rem;border-radius:999px;background:rgba(47,129,247,.16);color:#8ec5ff;font-size:.78rem;font-weight:700}.map-viewport button:disabled,.page-heading button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.chat-toolbar{align-items:stretch;flex-direction:column}.chat-toolbar label{width:100%}.chat-message{grid-template-columns:1fr;gap:.3rem}.chat-message time{white-space:normal}.chat-channel{justify-self:start}}

/* Clear press, loading and completion feedback for all web-panel refresh buttons. */
button:active:not(:disabled){transform:translateY(1px) scale(.98)}
button.button-refresh-working{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,129,247,.18);filter:none}
button.button-refresh-working::before{content:"";display:inline-block;width:.82rem;height:.82rem;margin-right:.48rem;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;vertical-align:-.12rem;animation:button-refresh-spin .72s linear infinite}
button.button-refresh-success{background:var(--success);border-color:var(--success);color:#fff;box-shadow:0 0 0 3px rgba(46,160,67,.18);filter:none}
button.button-refresh-error{background:var(--danger);border-color:var(--danger);color:#fff;box-shadow:0 0 0 3px rgba(248,81,73,.18);filter:none}
.chat-empty-message{white-space:pre-wrap;overflow-wrap:anywhere}
@keyframes button-refresh-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){button{transition:none}button.button-refresh-working::before{animation-duration:1.5s}}
.chat-compose{display:grid;grid-template-columns:minmax(220px,auto) minmax(260px,1fr) auto;gap:.8rem;align-items:center}.chat-compose small{display:block;color:var(--muted);margin-top:.25rem}.chat-compose input{min-width:0}.chat-compose button{white-space:nowrap}
@media(max-width:760px){.chat-compose{grid-template-columns:1fr;align-items:stretch}}

.game-admin-role-help{color:var(--muted);line-height:1.5}.game-admin-role-help code{color:#b9d7ff}

/* Diagnostics */
.diagnostic-count.healthy{color:#68d879}.diagnostic-count.warning{color:#fbbf24}.diagnostic-count.error{color:#ff8983}.diagnostic-count.info{color:#8ec5ff}
.diagnostic-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem}.diagnostic-summary small{display:block;color:var(--muted);margin-top:.25rem}
.diagnostic-list{display:flex;flex-direction:column;gap:1rem}.diagnostic-group{margin:0}.diagnostic-group h3{margin:0 0 .65rem;color:#c9d7e8}.diagnostic-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.diagnostic-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:.7rem;padding:.8rem;border:1px solid var(--border);border-radius:.65rem;background:var(--panel2);border-left-width:4px}.diagnostic-item.status-healthy{border-left-color:var(--success)}.diagnostic-item.status-warning{border-left-color:var(--warning)}.diagnostic-item.status-error{border-left-color:var(--danger)}.diagnostic-item.status-information{border-left-color:var(--accent)}
.diagnostic-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:1.05rem;font-weight:800;background:rgba(47,129,247,.14);color:#8ec5ff}.status-healthy .diagnostic-icon{background:rgba(46,160,67,.15);color:#68d879}.status-warning .diagnostic-icon{background:rgba(210,153,34,.15);color:#fbbf24}.status-error .diagnostic-icon{background:rgba(248,81,73,.15);color:#ff8983}
.diagnostic-title{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start}.diagnostic-title span{color:var(--muted);font-size:.76rem;white-space:nowrap}.diagnostic-content p{margin:.28rem 0 .2rem}.diagnostic-content small{display:block;color:var(--muted);line-height:1.4;white-space:pre-wrap}.diagnostic-content code{display:block;margin-top:.45rem;padding:.35rem .45rem;border-radius:.4rem;background:#0b1118;color:#b8c8db;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.diagnostic-items{grid-template-columns:1fr}}
@media(max-width:760px){.diagnostic-summary{align-items:flex-start}.diagnostic-title{flex-direction:column;gap:.25rem}.diagnostic-title span{white-space:normal}}
.compact-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0;padding:.75rem 1rem}.text-danger{color:#ff8983}.text-warning{color:#f6c85f}

/* Web accounts and reusable roles */
.web-access-management{align-items:start}.role-manager-panel{margin-top:1rem}.compact-heading{margin-bottom:.8rem}.compact-heading h3{margin:0}.role-management-grid{grid-template-columns:minmax(320px,.8fr) minmax(520px,1.4fr)}
.permission-grid.compact{margin-top:.55rem}.inline-check{display:block;color:var(--text);margin:.35rem 0}.access-status{display:inline-flex;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700}.access-status.active{background:rgba(46,160,67,.16);color:#68d879}.access-status.disabled,.access-status.expired{background:rgba(248,81,73,.16);color:#ff8983}.access-status.suspended{background:rgba(210,153,34,.16);color:#fbbf24}.permission-item.owner-only{opacity:.62}.profile-access-disabled{opacity:.55;pointer-events:none}
@media(max-width:1100px){.role-management-grid{grid-template-columns:1fr}}

.log-management-status{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.log-management-status>div{min-width:220px}.log-management-status strong{display:block}.log-management-status small{display:block;color:var(--muted);margin-top:.25rem;overflow-wrap:anywhere}.log-storage-grid{grid-template-columns:repeat(4,minmax(145px,1fr))}.log-storage-grid .metric strong{font-size:1.2rem}.log-toolbar{align-items:end;flex-wrap:wrap}.log-toolbar label{min-width:180px}.log-toolbar input{min-width:220px}@media(max-width:900px){.log-storage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.log-storage-grid{grid-template-columns:1fr}.log-toolbar>*{max-width:none;width:100%}}

/* Persistent player profiles and history */
.player-history-layout{display:grid;grid-template-columns:minmax(560px,1.05fr) minmax(500px,1fr);gap:1rem;align-items:start}.player-history-list-panel,.player-history-details-panel{margin:0}.player-history-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:.55rem;margin-bottom:.85rem}.player-history-list-panel tbody tr{cursor:pointer}.player-history-list-panel tbody tr.selected-row{background:rgba(47,129,247,.14);box-shadow:inset 3px 0 0 var(--accent)}.status-online,.status-offline{display:inline-flex;padding:.16rem .45rem;border-radius:999px;font-size:.73rem;font-weight:750}.status-online{background:rgba(46,160,67,.16);color:#68d879}.status-offline{background:rgba(148,163,184,.12);color:#aebdce}.player-profile-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.player-profile-heading h3{margin:0}.player-profile-heading p{margin:.25rem 0 0;color:var(--muted)}.profile-metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:.6rem;margin:1rem 0}.profile-metrics>div{padding:.65rem;border:1px solid var(--border);border-radius:.55rem;background:var(--panel2)}.profile-metrics span{display:block;color:var(--muted);font-size:.72rem}.profile-metrics strong{display:block;margin-top:.28rem;font-size:.92rem;overflow-wrap:anywhere}.player-profile-editor{margin-top:.8rem}.player-history-subtabs{display:flex;flex-direction:column;gap:.65rem;margin-top:1rem}.player-history-subtabs details{border:1px solid var(--border);border-radius:.55rem;overflow:hidden;background:#111821}.player-history-subtabs summary{cursor:pointer;padding:.7rem .85rem;font-weight:650}.player-history-subtabs details[open] summary{border-bottom:1px solid var(--border)}
@media(max-width:1250px){.player-history-layout{grid-template-columns:1fr}.profile-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.player-history-toolbar{grid-template-columns:1fr}.profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.player-history-layout{display:block}.player-history-list-panel{margin-bottom:1rem}}

/* Enhanced player map 2.3.6 */
.map-cursor-coordinates{position:absolute;left:.75rem;bottom:.75rem;z-index:6;padding:.4rem .65rem;border:1px solid rgba(142,197,255,.38);border-radius:.45rem;background:rgba(8,13,18,.86);color:#b9dcff;font-size:.78rem;pointer-events:none;backdrop-filter:blur(4px)}
.map-sector-layer{pointer-events:none}.map-sector-layer line{stroke:rgba(209,223,239,.58);stroke-width:1.8;vector-effect:non-scaling-stroke}.map-sector-layer text{fill:rgba(255,255,255,.88);font-size:22px;font-weight:800;paint-order:stroke;stroke:rgba(8,13,18,.88);stroke-width:5px;stroke-linejoin:round}
.map-history-line{fill:none;stroke:#59b6ff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.9;pointer-events:none;filter:drop-shadow(0 2px 5px rgba(0,0,0,.8))}
.map-marker.status-online .map-marker-dot{fill:#2ea043}.map-marker.status-stale .map-marker-dot{fill:#d29922}.map-marker.status-error .map-marker-dot{fill:#f85149}.map-marker.selected .map-marker-dot{fill:#ffd34e}
.map-cluster{cursor:pointer;outline:none}.map-cluster-hit{fill:transparent;pointer-events:all}.map-cluster-dot{fill:#2ea043;stroke:#fff;stroke-width:3;filter:drop-shadow(0 4px 8px rgba(0,0,0,.8));pointer-events:none}.map-cluster.status-stale .map-cluster-dot{fill:#d29922}.map-cluster.status-error .map-cluster-dot{fill:#f85149}.map-cluster.selected .map-cluster-dot{fill:#ffd34e}.map-cluster-count{fill:#fff;font-size:14px;font-weight:850;text-anchor:middle;pointer-events:none}.map-cluster:hover .map-cluster-dot,.map-cluster:focus .map-cluster-dot{stroke:#8ec5ff;stroke-width:4}
.map-status-dot{display:inline-block;width:.62rem;height:.62rem;margin-right:.45rem;border-radius:50%;background:#2ea043;box-shadow:0 0 0 2px rgba(255,255,255,.08)}.map-status-dot.status-stale{background:#d29922}.map-status-dot.status-error{background:#f85149}
#page-map:fullscreen{display:block;overflow:auto;padding:1rem;background:var(--bg)}#page-map:fullscreen .map-layout{min-height:calc(100vh - 120px)}#page-map:fullscreen .map-viewport{min-height:calc(100vh - 120px)}#page-map:fullscreen .map-sidebar{max-height:calc(100vh - 120px)}
@media(max-width:760px){.map-cursor-coordinates{font-size:.7rem;left:.45rem;bottom:.45rem}.map-sector-layer text{font-size:17px}}

/* Advanced chat 2.3.7 */
.nav-item-with-badge{display:flex;align-items:center;justify-content:space-between;gap:.65rem}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.45rem;height:1.45rem;padding:0 .4rem;border-radius:999px;background:#ef4444;color:#fff;font-size:.72rem;font-weight:800;line-height:1}.nav-item.has-unread{font-weight:700}.settings-check-row{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem 1rem;padding:.7rem .85rem;border:1px solid var(--border);border-radius:.65rem;background:var(--panel2)}.settings-check-row label{display:inline-flex;align-items:center;gap:.35rem;width:auto}.chat-compose{grid-template-columns:minmax(210px,auto) minmax(150px,220px) minmax(260px,1fr) auto}.chat-filter-controls{display:flex;align-items:end;justify-content:flex-end;gap:.7rem;flex-wrap:wrap}.chat-filter-controls label{width:auto;min-width:150px}.chat-filter-controls input{min-width:240px}.chat-send-status{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;border-left:4px solid var(--border)}.chat-send-status strong{white-space:nowrap}.chat-send-status span{overflow-wrap:anywhere}.chat-send-status small{color:var(--muted);white-space:nowrap}.chat-send-status.status-success{border-left-color:#22c55e;background:rgba(34,197,94,.09)}.chat-send-status.status-warning{border-left-color:#f59e0b;background:rgba(245,158,11,.1)}.chat-send-status.status-error{border-left-color:#ef4444;background:rgba(239,68,68,.12)}.chat-send-status.status-pending{border-left-color:#3b82f6;background:rgba(59,130,246,.1)}.chat-message{position:relative;border-left:4px solid transparent}.chat-message.channel-global{border-left-color:#3b82f6}.chat-message.channel-local{border-left-color:#22c55e}.chat-message.channel-squad{border-left-color:#a855f7}.chat-message.channel-admin{border-left-color:#f59e0b}.chat-message.channel-system{border-left-color:#94a3b8}.chat-message.unread{box-shadow:0 0 0 1px rgba(59,130,246,.55);background:rgba(59,130,246,.08)}.chat-channel.channel-global{background:rgba(59,130,246,.16);color:#93c5fd}.chat-channel.channel-local{background:rgba(34,197,94,.16);color:#86efac}.chat-channel.channel-squad{background:rgba(168,85,247,.17);color:#d8b4fe}.chat-channel.channel-admin{background:rgba(245,158,11,.18);color:#fcd34d}.chat-channel.channel-system{background:rgba(148,163,184,.16);color:#cbd5e1}.chat-message-content{min-width:0}.chat-message-heading{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.chat-message-heading strong{margin:0}.chat-steam-copy{appearance:none;border:0;background:transparent;color:var(--muted);padding:0;font:inherit;font-size:.76rem;cursor:pointer;text-decoration:underline;text-decoration-style:dotted}.chat-steam-copy:hover{color:var(--text)}.chat-unread-dot{width:.55rem;height:.55rem;border-radius:999px;background:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.16)}
@media(max-width:980px){.chat-compose{grid-template-columns:1fr 1fr}.chat-compose>div{grid-column:1/-1}.chat-compose input{min-width:0}.chat-send-status{grid-template-columns:1fr}.chat-send-status small{white-space:normal}.chat-filter-controls{justify-content:stretch}.chat-filter-controls label{flex:1;min-width:190px}.chat-filter-controls input{min-width:0;width:100%}}
@media(max-width:760px){.chat-compose{grid-template-columns:1fr}.chat-filter-controls{flex-direction:column;align-items:stretch}.chat-filter-controls label{width:100%;min-width:0}.chat-message-heading{align-items:flex-start}.settings-check-row{align-items:flex-start;flex-direction:column}}

.table-subtext {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.78rem;
  word-break: break-all;
}

.metric small{display:block;color:var(--muted);font-size:.72rem;margin-top:.38rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:.75rem}.dashboard-chart{margin-bottom:0;min-width:0}.dashboard-chart-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.dashboard-chart-heading h3{margin:0;font-size:1rem}.dashboard-chart-heading strong{font-size:.82rem;color:var(--muted);white-space:nowrap}.dashboard-chart svg{display:block;width:100%;height:150px;margin-top:.75rem;overflow:visible}.chart-grid-line{fill:none;stroke:rgba(148,163,184,.18);stroke-width:.35;vector-effect:non-scaling-stroke}.chart-line{fill:none;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-online{stroke:#3b82f6}.chart-cpu{stroke:#f59e0b}.chart-ram{stroke:#8b5cf6}.chart-connections{stroke:#06b6d4}.chart-kills{stroke:#22c55e}.chart-deaths{stroke:#ef4444}.chart-restarts{stroke:#f97316}.chart-legend{display:flex;gap:.75rem;justify-content:flex-end;font-size:.75rem}.chart-legend .kills{color:#22c55e}.chart-legend .deaths{color:#ef4444}.dashboard-error-panel{border-color:rgba(239,68,68,.55)}.dashboard-error-panel p{margin-bottom:0;white-space:pre-wrap}.dashboard-statistics-info{text-align:right;margin:.25rem 0 1rem}@media(max-width:1100px){.dashboard-chart-grid{grid-template-columns:1fr}}@media(max-width:760px){.dashboard-chart svg{height:115px}}

.map-viewport.teleport-selecting{cursor:crosshair;box-shadow:inset 0 0 0 2px rgba(245,158,11,.85)}
.map-viewport.teleport-selecting .map-stage{cursor:crosshair}

/* Prevent browser password managers from treating SCUM service secrets as website credentials. */
.password-mask {
  -webkit-text-security: disc;
  text-security: disc;
}
#announcementRulesBody input,#announcementRulesBody textarea{min-width:90px;padding:.45rem .5rem}#announcementRulesBody textarea{min-width:260px;resize:vertical}#announcementRulesBody [data-announcement-field="commandTemplate"]{min-width:210px}#announcementRulesBody td{padding:.45rem .5rem;vertical-align:top}

/* Vehicle ownership and per-category limits */
.vehicle-limits-panel .panel-heading p{margin:.25rem 0 0}
.vehicle-limit-grid{display:grid;grid-template-columns:repeat(6,minmax(96px,1fr));gap:.65rem;margin-top:.85rem}
.vehicle-filter-grid{display:grid;grid-template-columns:minmax(210px,1.25fr) minmax(135px,.65fr) minmax(190px,.9fr) minmax(215px,1fr) auto;gap:.65rem;align-items:end}
.vehicle-violations-filter{padding-bottom:.65rem;white-space:nowrap}
.vehicle-status{display:flex;flex-direction:column;gap:.25rem;margin-top:.8rem}
.vehicle-status small{color:var(--muted);overflow-wrap:anywhere}
.vehicle-summary-toggle-row{display:flex;justify-content:flex-end;margin:0 0 .65rem}
.vehicle-layout{display:grid;grid-template-columns:minmax(720px,1fr) minmax(280px,360px);gap:1rem;align-items:start}
.vehicle-layout.vehicle-owner-summary-hidden{grid-template-columns:minmax(0,1fr)}
.vehicle-table-panel{margin:0;min-width:0}
.vehicle-table-panel .table-wrap{position:relative}
.vehicle-table-panel table{width:100%;min-width:1185px;table-layout:fixed;font-size:.78rem}
.vehicle-table-panel th,.vehicle-table-panel td{padding:.48rem .5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vehicle-col-owner{width:125px}
.vehicle-col-steam{width:150px}
.vehicle-col-squad{width:105px}
.vehicle-col-category{width:82px}
.vehicle-col-type{width:112px}
.vehicle-col-id{width:84px}
.vehicle-col-sector{width:58px}
.vehicle-col-coordinates{width:104px}
.vehicle-col-lock{width:102px}
.vehicle-col-limit{width:94px;text-align:center}
.vehicle-owner-summary{margin:0;max-height:680px;overflow:auto}
.vehicle-owner-summary-heading{margin-bottom:.8rem}
.vehicle-owner-summary-heading h3{margin:0}
.vehicle-actions-column{position:sticky;right:0;z-index:2;width:169px;min-width:169px;max-width:169px;background:var(--panel);box-shadow:-10px 0 16px -14px rgba(0,0,0,.95)}
.vehicle-table-panel thead .vehicle-actions-column{z-index:4;background:#111821}
.vehicle-action-buttons{display:flex;align-items:center;justify-content:flex-end;gap:.25rem;white-space:nowrap}
.vehicle-action-buttons button.compact{padding:.3rem .43rem;font-size:.7rem}
.vehicle-table-panel tbody tr:hover .vehicle-actions-column{background:#19212b}
.vehicle-table-panel tbody tr.vehicle-limit-violation .vehicle-actions-column{background:linear-gradient(rgba(248,81,73,.055),rgba(248,81,73,.055)),var(--panel)}
.vehicle-table-panel tbody tr.vehicle-limit-violation:hover .vehicle-actions-column{background:linear-gradient(rgba(248,81,73,.09),rgba(248,81,73,.09)),var(--panel)}
.vehicle-owner-card{padding:.7rem;border:1px solid var(--border);border-radius:.55rem;background:var(--panel2);margin-bottom:.65rem}
.vehicle-owner-card strong,.vehicle-owner-card small{display:block}
.vehicle-owner-card small{color:var(--muted);margin:.2rem 0 .55rem;overflow-wrap:anywhere}
.vehicle-owner-card>div{display:flex;flex-wrap:wrap;gap:.35rem}
.vehicle-summary-chip,.vehicle-limit-badge{display:inline-flex;padding:.18rem .42rem;border-radius:999px;background:rgba(46,160,67,.13);color:#68d879;font-size:.73rem;font-weight:700}
.vehicle-summary-chip.violation,.vehicle-limit-badge.violation{background:rgba(248,81,73,.16);color:#ff8983}
.vehicle-limit-violation{background:rgba(248,81,73,.055)}
.vehicle-limit-violation:hover{background:rgba(248,81,73,.09)}
button.compact{padding:.35rem .55rem;font-size:.76rem}
.vehicle-readonly-note{margin:.75rem .15rem}
.map-vehicle-focus-ring{fill:rgba(245,158,11,.14);stroke:#f59e0b;stroke-width:4;vector-effect:non-scaling-stroke}
.map-vehicle-focus-dot{fill:#f59e0b;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.map-vehicle-focus-label{fill:#fff;font-size:20px;font-weight:800;paint-order:stroke;stroke:#111821;stroke-width:5px;stroke-linejoin:round}
@media(max-width:1380px){.vehicle-table-panel table{min-width:1135px;font-size:.75rem}.vehicle-col-owner{width:115px}.vehicle-col-steam{width:143px}.vehicle-col-squad{width:96px}.vehicle-col-category{width:76px}.vehicle-col-type{width:104px}.vehicle-col-coordinates{width:94px}.vehicle-col-lock{width:94px}.vehicle-col-limit{width:88px}.vehicle-actions-column{width:165px;min-width:165px;max-width:165px}.vehicle-action-buttons button.compact{padding:.28rem .4rem;font-size:.68rem}}
@media(max-width:1250px){.vehicle-layout{grid-template-columns:1fr}.vehicle-owner-summary{max-height:none}.vehicle-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-violations-filter{padding-bottom:0}.vehicle-limit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.vehicle-limit-grid,.vehicle-filter-grid{grid-template-columns:1fr}.vehicle-limits-panel .panel-heading{align-items:stretch;flex-direction:column}.vehicle-layout{display:block}.vehicle-owner-summary{margin-top:1rem}.vehicle-actions-column{width:160px;min-width:160px;max-width:160px}.vehicle-action-buttons{gap:.2rem}.vehicle-action-buttons button.compact{padding:.27rem .36rem;font-size:.66rem}}

/* Web map: locked vehicles and portable chests owned by the selected player. */
.map-player-details{overflow:auto;min-height:330px}
.map-owned-panel{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
.map-owned-heading{display:flex;align-items:center;justify-content:space-between;gap:.65rem}
.map-owned-heading h4{margin:0;font-size:1rem}
.map-owned-status{margin:.55rem 0 .7rem;min-height:0}
.map-owned-kind-buttons{margin-bottom:.7rem}
.map-owned-kind-buttons button.active{border-color:var(--accent);box-shadow:0 0 0 1px rgba(47,129,247,.28);background:rgba(47,129,247,.14)}
.map-owned-kind-buttons button strong{margin-left:.25rem}
.map-owned-teleport-target{margin:.7rem 0}
.map-owned-object-list{display:flex;flex-direction:column;gap:.45rem;max-height:330px;overflow:auto;padding-right:.2rem}
.map-owned-object-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.5rem;border:1px solid var(--border);border-radius:.55rem;background:#101721}
.map-owned-object-row.selected{border-color:#f59e0b;background:rgba(245,158,11,.09)}
.map-owned-object-main{min-width:0;padding:.15rem;text-align:left;background:transparent;border:0;color:var(--text)}
.map-owned-object-main strong,.map-owned-object-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-owned-object-main small{margin-top:.18rem;color:var(--muted)}
.compact-row{flex-wrap:nowrap;gap:.3rem}
.map-owned-marker{cursor:pointer;outline:none}
.map-owned-marker-hit{fill:transparent;pointer-events:all}
.map-owned-marker-dot{stroke:#fff;stroke-width:2;filter:drop-shadow(0 4px 7px rgba(0,0,0,.8));pointer-events:none}
.map-owned-marker.kind-vehicle .map-owned-marker-dot{fill:#f59e0b}
.map-owned-marker.kind-container .map-owned-marker-dot{fill:#38bdf8}
.map-owned-marker.selected .map-owned-marker-dot{stroke:#fff;stroke-width:4}
.map-owned-marker:hover .map-owned-marker-dot,.map-owned-marker:focus .map-owned-marker-dot{stroke:#cfe6ff;stroke-width:4}
.map-owned-marker-symbol{fill:#071019;font-size:12px;font-weight:900;text-anchor:middle;pointer-events:none}
.map-owned-marker-label{fill:#fff;font-size:12px;font-weight:700;paint-order:stroke;stroke:rgba(10,15,22,.96);stroke-width:5px;stroke-linejoin:round;pointer-events:none}
@media(max-width:1100px){.map-player-details{max-height:600px}.map-owned-object-list{max-height:260px}}
@media(max-width:760px){.map-owned-object-row{grid-template-columns:1fr}.compact-row{justify-content:flex-start}.map-owned-marker-label{font-size:10px}}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;padding:.8rem;border:1px solid var(--border);border-radius:.6rem;background:rgba(255,255,255,.015)}
.muted{color:var(--muted);margin:.2rem 0}

/* Settings accordion */
.settings-accordion{overflow:hidden;border:1px solid var(--border);border-radius:.75rem;background:rgba(255,255,255,.012)}
.settings-accordion-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:0;border-radius:0;background:var(--panel2);padding:.9rem 1rem;text-align:left;font-size:1.03rem;font-weight:750;color:var(--text)}
.settings-accordion-toggle:hover{filter:none;background:#1a2431}
.settings-accordion-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.settings-accordion-chevron{flex:0 0 auto;color:var(--muted);font-size:.9rem}
.settings-accordion-content{padding:1rem}
.settings-accordion.expanded .settings-accordion-toggle{border-bottom:1px solid var(--border)}
@media(max-width:760px){.settings-accordion-content{grid-template-columns:1fr}.settings-accordion-toggle{padding:.8rem .9rem}}

/* Player profile card / drawer — same visual language as the main web panel */
.player-profile-dialog{padding:0;width:min(920px,calc(100vw - 2rem));max-width:none;max-height:92vh}.player-profile-dialog::backdrop{background:rgba(3,7,12,.78);backdrop-filter:blur(5px)}.player-profile-card{width:100%;max-height:92vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:.8rem;box-shadow:var(--shadow);color:var(--text)}.player-profile-loading,.player-profile-error{min-height:320px;display:grid;place-items:center;padding:2rem;color:var(--muted)}.player-profile-error{display:block;text-align:center}.player-card-header{position:relative;display:flex;align-items:center;gap:1rem;padding:1.15rem 1.25rem;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(47,129,247,.11),rgba(27,36,48,.55) 48%,transparent)}.player-card-avatar{width:58px;height:58px;flex:0 0 58px;border-radius:50%;display:grid;place-items:center;font-size:1.45rem;font-weight:900;color:#fff;background:linear-gradient(145deg,#2f81f7,#7657ff);border:2px solid rgba(142,197,255,.7);box-shadow:0 0 0 3px rgba(47,129,247,.12)}.player-card-identity{min-width:0;flex:1}.player-card-name-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.player-card-name-row h2{margin:0;font-size:1.45rem;color:var(--text)}.player-card-steam{display:flex;gap:.45rem;flex-wrap:wrap;color:var(--muted);font-family:Cascadia Code,Consolas,monospace;font-size:.78rem;margin-top:.3rem}.player-card-status,.player-card-admin{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border:1px solid}.player-card-status.online{color:#68d879;border-color:rgba(46,160,67,.5);background:rgba(46,160,67,.16)}.player-card-status.offline{color:#aebdce;border-color:rgba(148,163,184,.32);background:rgba(148,163,184,.12)}.player-card-admin{color:#93c5fd;border-color:rgba(47,129,247,.48);background:rgba(47,129,247,.14)}.player-card-close{position:absolute;right:.8rem;top:.7rem;width:34px;height:34px;padding:0;border-radius:.4rem;background:var(--panel2);color:var(--muted);border-color:var(--border);font-size:1.35rem}.player-card-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;padding:1rem 1.25rem}.player-card-metrics>div{background:var(--panel2);border:1px solid var(--border);border-radius:.55rem;text-align:center;padding:.85rem .45rem;box-shadow:0 6px 18px rgba(0,0,0,.08)}.player-card-metrics strong{display:block;color:#8ec5ff;font-family:Cascadia Code,Consolas,monospace;font-size:1.08rem}.player-card-metrics span{display:block;margin-top:.3rem;color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.07em}.player-card-intel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:0 1.25rem;padding:1rem;border:1px solid var(--border);border-radius:.65rem;background:#111821}.player-card-intel-item{min-width:0}.player-card-intel-label{display:block;color:var(--muted);font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.28rem}.player-card-intel-item strong{display:block;font-weight:650;overflow-wrap:anywhere;color:var(--text)}.player-card-intel-item a{color:#8ec5ff}.player-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.player-card-actions button{background:var(--panel2);border-color:var(--border);color:var(--text);padding:.5rem .75rem}.player-card-actions button:hover{border-color:var(--accent)}.player-card-actions button[data-player-action="ban"]{color:#ff9a91;border-color:rgba(248,81,73,.48);background:rgba(248,81,73,.12)}.player-card-tabs{display:flex;gap:.4rem;padding:1rem 1.25rem .65rem;overflow-x:auto}.player-card-tabs button{border-radius:999px;padding:.5rem .8rem;background:#111821;border-color:var(--border);color:var(--muted);white-space:nowrap}.player-card-tabs button.active{color:#fff;border-color:var(--accent);background:rgba(47,129,247,.2)}.player-card-tab-content{padding:.35rem 1.25rem 1.25rem}.player-card-tab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.player-card-tab-grid .player-card-intel-item,.player-card-intel-tab,.player-card-bank{padding:.85rem;border:1px solid var(--border);border-radius:.55rem;background:#111821}.player-card-intel-tab label{color:var(--muted)}.player-card-intel-tab textarea{margin-top:.4rem;background:#0e141d;border-color:var(--border)}.player-card-tag-row{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.7rem;margin-bottom:.7rem;border-bottom:1px solid var(--border)}.player-card-bank{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.player-card-bank>div{padding:1rem;border:1px solid var(--border);background:var(--panel2);border-radius:.55rem}.player-card-bank span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase}.player-card-bank strong{display:block;margin-top:.35rem;color:#8ec5ff;font-size:1.3rem}.player-card-bank p{grid-column:1/-1;margin:0}.player-card-history{max-height:330px;border:1px solid var(--border);border-radius:.55rem}.player-card-history th{background:#111821;color:var(--muted)}.player-card-history td,.player-card-history th{border-color:var(--border)}
@media(max-width:900px){.player-card-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.player-card-intel-grid,.player-card-tab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.player-profile-dialog{width:100vw;max-height:100vh}.player-profile-card{max-height:100vh;border-radius:0}.player-card-header{align-items:flex-start}.player-card-avatar{width:48px;height:48px;flex-basis:48px}.player-card-name-row h2{font-size:1.15rem}.player-card-metrics{grid-template-columns:1fr;padding:.8rem}.player-card-intel-grid,.player-card-tab-grid{grid-template-columns:1fr;margin-left:.8rem;margin-right:.8rem}.player-card-actions,.player-card-tabs,.player-card-tab-content{padding-left:.8rem;padding-right:.8rem}.player-card-bank{grid-template-columns:1fr}}

/* ========================================================================== */
/* SCUM Tactical UI 2.7.27                                                   */
/* ========================================================================== */
html,body{
  background:
    linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px),
    radial-gradient(circle at 72% -10%,rgba(197,90,20,.07),transparent 31%),
    var(--bg);
  background-size:34px 34px,34px 34px,auto,auto;
}
body{letter-spacing:.005em}
button,input,select,textarea{border-radius:2px}
button{
  position:relative;
  background:linear-gradient(180deg,#1b1f20,#141718);
  border-color:#4a4033;
  font-weight:650;
  box-shadow:inset 0 1px rgba(255,255,255,.025);
}
button:not(.text-button):not(.nav-item)::before{
  content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;
  background:rgba(197,90,20,.56);pointer-events:none
}
button:hover{filter:none;border-color:var(--accent);background:#24201b;box-shadow:0 0 0 1px rgba(197,90,20,.12)}
.primary{background:#9a541c;border-color:#d47725;color:#fff}.primary:hover{background:#b56521}
.success{background:#244a2c;border-color:#478d52}.warning{background:#6e4c1c;border-color:#b77a28;color:#fff}.danger{background:#642b29;border-color:#a84641}

.login-view{background:radial-gradient(circle at 50% 0,rgba(197,90,20,.12),transparent 38%),#07090a}
.login-card{border-radius:3px;border-color:#4a4033;background:linear-gradient(145deg,rgba(20,23,24,.98),rgba(10,12,13,.98))}
.brand-mark{border-radius:2px;background:linear-gradient(145deg,#c55a14,#3F1D0B);box-shadow:inset 0 0 0 1px #d46a1c}
.brand-mark.small{border-radius:2px}

.app-shell{grid-template-columns:242px minmax(0,1fr)}
.sidebar{
  width:242px;padding:.85rem;background:linear-gradient(180deg,#111416 0,#0b0e0f 68%,#07090a 100%);
  border-right:1px solid #3a342b;box-shadow:12px 0 35px rgba(0,0,0,.2)
}
.sidebar::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--accent)}
.brand{border-bottom:1px solid #302d29;margin-bottom:.75rem;padding:.55rem .3rem 1rem}
.brand strong{font-size:1.05rem;letter-spacing:.08em}.brand small{color:var(--accent-bright);letter-spacing:.14em}
.sidebar nav{gap:.2rem}
.nav-item{
  position:relative;border-radius:2px;border:1px solid transparent;background:transparent;color:#a0a5a7;
  padding:.68rem .72rem;font-weight:650
}
.nav-item::before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;background:transparent}
.nav-item:hover{background:#181a18;color:var(--text);border-color:#39342d}
.nav-item.active{background:linear-gradient(90deg,rgba(197,90,20,.16),rgba(197,90,20,.025));color:#fff;border-color:#4a4033}
.nav-item.active::before{background:var(--accent)}
.sidebar-footer{border-top-color:#302d29}

.topbar{
  height:62px;background:rgba(9,11,12,.94);border-bottom:1px solid #3a342b;
  box-shadow:0 8px 24px rgba(0,0,0,.15)
}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,var(--accent),transparent 36%);opacity:.55}
.badge{border-radius:2px;text-transform:uppercase;letter-spacing:.06em;border:1px solid transparent}
.badge.online{border-color:rgba(79,169,91,.35)}.badge.offline{border-color:rgba(217,87,79,.35)}

.page{padding:1.35rem 1.55rem}
.page-heading{border-bottom:1px solid #302d29;padding-bottom:.85rem;margin-bottom:1rem}
.page-heading h2{font-size:1.62rem;color:var(--accent-bright);letter-spacing:.045em;text-transform:uppercase}
.page-heading p{font-size:.8rem}
.panel,.metric{
  position:relative;border-radius:2px;border-color:#3a342b;
  background:linear-gradient(145deg,#171a1b,#101314 60%,#0d1011);
  box-shadow:0 10px 28px rgba(0,0,0,.16)
}
.panel::before,.metric::before{content:"";position:absolute;left:-1px;top:-1px;width:46px;height:2px;background:var(--accent);opacity:.65}
.metric{padding:1rem 1.05rem}
.metric span{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:#8b9295}
.metric strong{font-family:"Segoe UI",Arial,sans-serif;font-size:1.35rem;color:#f1eee8}
.panel h3{font-size:1rem;text-transform:uppercase;letter-spacing:.055em;color:#dcd9d2}

.table-panel{border-radius:2px}
table{font-size:.86rem}th,td{border-bottom-color:#292c2d}
th{background:#171816;color:var(--accent-bright);letter-spacing:.08em;font-size:.69rem;border-bottom:1px solid #494034}
tbody tr:nth-child(even){background:rgba(255,255,255,.008)}
tbody tr:hover{background:rgba(197,90,20,.055)}
td.actions button{border-radius:2px}

.tabs{border-bottom:1px solid #34302a;padding-bottom:.35rem}
.tab{border-radius:2px;border-color:transparent;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}
.tab.active{background:#221c17;color:var(--accent-bright);border-color:#654622;box-shadow:inset 0 -2px var(--accent)}

input,select,textarea{background:#0a0d0e;border-color:#3b3f3f;border-radius:2px;color:#e7e4de}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px rgba(197,90,20,.2)}
label{color:#9aa0a3}
.console{background:#07090a;border-color:#34302a;border-radius:2px;color:#c9cec9;box-shadow:inset 0 0 32px rgba(0,0,0,.28)}
.log-entry{border-bottom-color:#292c2d}.log-entry:hover{background:rgba(197,90,20,.035)}
.toast{background:#171a1b;border-radius:2px;border-color:#4a4033}
.dialog-card{border-radius:2px;border-color:#4a4033;background:linear-gradient(145deg,#171a1b,#0d1011)}

/* Settings accordions resemble SCUM terminal modules. */
.settings-grid{border-radius:2px;background:#0d1011;border-color:#34302a}
.settings-accordion{border-radius:2px;border-color:#3a342b;background:#0d1011}
.settings-accordion-toggle{border-radius:0;background:linear-gradient(90deg,#191a18,#121516);text-transform:uppercase;letter-spacing:.045em;font-size:.9rem;color:#dedbd4}
.settings-accordion-toggle:hover{background:#211e1a;color:var(--accent-bright)}
.settings-accordion.expanded .settings-accordion-toggle{border-bottom-color:#5a452e;color:var(--accent-bright);box-shadow:inset 3px 0 var(--accent)}
.settings-accordion-chevron{color:var(--accent)}
.settings-accordion-toggle:focus-visible{outline-color:var(--accent)}

/* Map + vehicle tactical panels */
.map-viewport{border-radius:2px;border-color:#3a342b;background:#07090a}
.map-owned-panel{border-top-color:#3a342b}
.map-owned-kind-buttons button.active{border-color:var(--accent);box-shadow:0 0 0 1px rgba(197,90,20,.25);background:rgba(197,90,20,.12)}
.map-owned-object-row{border-radius:2px;background:#101314;border-color:#34302a}
.map-owned-object-row.selected{border-color:var(--accent);background:rgba(197,90,20,.09)}
.map-owned-marker.kind-vehicle .map-owned-marker-dot{fill:#c55a14}
.map-owned-marker.kind-container .map-owned-marker-dot{fill:#d9a441}

/* Player profile is now part of the same SCUM tactical language. */
.player-profile-dialog::backdrop{background:rgba(2,4,5,.82);backdrop-filter:blur(5px)}
.player-profile-card{border-radius:2px;border-color:#514432;background:linear-gradient(145deg,#151819,#0d1011 72%);box-shadow:0 24px 70px rgba(0,0,0,.58)}
.player-card-header{background:linear-gradient(90deg,rgba(197,90,20,.12),rgba(20,23,24,.74) 42%,transparent);border-bottom-color:#4a3e30}
.player-card-avatar{border-radius:2px;background:linear-gradient(145deg,#9A430F,#4A1F0A);border-color:#c55a14;box-shadow:0 0 0 2px rgba(197,90,20,.15);color:#fff1df}
.player-card-admin{color:#e0a15e;border-color:rgba(197,90,20,.48);background:rgba(197,90,20,.12)}
.player-card-close{border-radius:2px}
.player-card-metrics>div{border-radius:2px;background:#111416;border-color:#3a342b;box-shadow:none}
.player-card-metrics strong{color:var(--accent-bright)}
.player-card-intel-grid,.player-card-tab-grid .player-card-intel-item,.player-card-intel-tab,.player-card-bank{border-radius:2px;background:#0f1213;border-color:#39342d}
.player-card-intel-item a{color:#dda064}
.player-card-actions{border-bottom-color:#39342d}.player-card-actions button{background:#171b1d;border-color:#443b31}
.player-card-actions button:hover{border-color:var(--accent);background:#211d19}
.player-card-tabs button{border-radius:2px;background:#111416;border-color:#39342d;text-transform:uppercase;font-size:.72rem;letter-spacing:.04em}
.player-card-tabs button.active{color:var(--accent-bright);border-color:var(--accent);background:rgba(197,90,20,.12)}
.player-card-bank>div{border-radius:2px;background:#111416;border-color:#39342d}.player-card-bank strong{color:var(--accent-bright)}
.player-card-history{border-radius:2px}.player-card-history th{background:#171816;color:var(--accent-bright)}

/* Scrollbars: low-profile terminal style. */
*{scrollbar-color:#5b4630 #0b0e0f;scrollbar-width:thin}

@media(max-width:760px){
  .sidebar{width:242px}.page{padding:1rem}.page-heading h2{font-size:1.35rem}
}

/* Tactical identity refinements */
.brand-mark{font-size:0;background-color:#0b0e0f;background-image:url('/favicon.ico');background-repeat:no-repeat;background-position:center;background-size:78%;border:1px solid #57442e}
.brand-mark.small{font-size:0;background-size:78%}
.chart-online{stroke:#65c46a}.chart-cpu{stroke:#c55a14}.chart-ram{stroke:#d99a31}.chart-connections{stroke:#c8b07a}
.chat-send-status.status-pending{border-left-color:#c55a14;background:rgba(197,90,20,.08)}
.chat-message.unread{box-shadow:0 0 0 1px rgba(197,90,20,.48);background:rgba(197,90,20,.055)}
.chat-unread-dot{background:#c55a14;box-shadow:0 0 0 3px rgba(197,90,20,.14)}


/* Runtime status colors: preserve clear SCUM operational semantics. */
.metric strong.status-success{color:#68d879;text-shadow:0 0 14px rgba(79,169,91,.12)}
.metric strong.status-danger{color:#ff7770;text-shadow:0 0 14px rgba(217,87,79,.12)}
.metric strong.status-warning{color:#f6c85f;text-shadow:0 0 14px rgba(217,154,49,.12)}
.metric strong.status-muted{color:#a2a8ab;text-shadow:none}
.text-success{color:#68d879}
.text-danger{color:#ff7770}
.text-warning{color:#f6c85f}

.metric .metric-record{color:#d17a28;font-weight:750;letter-spacing:.02em}

/* SCUM logo orange palette (2.7.36): burnt/rust orange with darker depth. */
.primary{background:linear-gradient(90deg,#9a430f 0%,#c55a14 58%,#d46a1c 100%);border-color:#9a430f;color:#fff}
.sidebar::before{background:linear-gradient(90deg,#9a430f,#c55a14 58%,#d46a1c)}
.topbar::after{background:linear-gradient(90deg,#c55a14,#9a430f 45%,transparent 72%)}
.nav-item.active::before,.panel::before,.metric::before{background:linear-gradient(180deg,#d46a1c,#9a430f)}
.settings-accordion.expanded .settings-accordion-toggle{box-shadow:inset 3px 0 #c55a14}

/* 2.7.37 compact current-online + all-time-record card */
.player-metric{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem}
.player-metric-current{min-width:0}
.player-metric-record{min-width:72px;text-align:right;padding-left:.85rem;border-left:1px solid rgba(197,90,20,.22);cursor:help}
.player-metric-record span{display:block;text-transform:none;letter-spacing:.01em;font-size:.8rem;color:#8d9499}
.player-metric-record strong{display:inline-block;margin-top:.28rem;padding:.08rem .34rem;background:#111517;border:1px solid rgba(197,90,20,.18);font-size:1.45rem;line-height:1.2;color:#f1eee8}
@media(max-width:760px){.player-metric-record{min-width:62px;padding-left:.6rem}.player-metric-record strong{font-size:1.28rem}}

/* Focused event log layout (2.7.44). */
.log-entry{grid-template-columns:155px 112px minmax(0,1fr);align-items:start;gap:.8rem;padding:.72rem .65rem}
.log-category{display:inline-flex;align-items:center;width:max-content;min-width:92px;padding:.16rem .48rem;border:1px solid var(--border);border-radius:.3rem;font-size:.78rem;line-height:1.25}
.log-message{line-height:1.45;overflow-wrap:anywhere}
.log-kind-kill .log-category{border-color:rgba(217,87,79,.58)}
.log-kind-death .log-category{border-color:rgba(141,148,153,.58)}
.log-kind-vehicle .log-category{border-color:rgba(197,90,20,.7)}
.log-kind-error .log-category{border-color:rgba(217,154,49,.72)}
@media(max-width:760px){.log-entry{grid-template-columns:1fr}.log-category{margin-top:-.15rem}}
