:root {
  --bg: #070b09;
  --surface: #0c1310;
  --surface-2: #111a16;
  --surface-3: #17211c;
  --line: #26342c;
  --line-soft: #19251f;
  --text: #edf3ef;
  --muted: #87958d;
  --muted-2: #58675f;
  --green: #79f2a0;
  --green-2: #29b965;
  --amber: #f4c15d;
  --red: #ff716d;
  --blue: #62b7ff;
  --sidebar: 248px;
  --mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); }
body { overflow-x: hidden; }
button, input, select { font: inherit; }
button { color: inherit; }
[hidden] { display: none !important; }

body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .035; z-index: 99;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}

.login-view { min-height: 100vh; padding: 24px; display: grid; place-items: center; background: radial-gradient(circle at 18% 22%, #183625 0, transparent 32%), radial-gradient(circle at 83% 72%, #1e2316 0, transparent 35%), #050806; }
.login-stage { width: min(1240px, 100%); min-height: min(760px, calc(100vh - 48px)); border: 1px solid #28352e; background: linear-gradient(135deg, rgba(10,18,14,.96), rgba(6,10,8,.98)); position: relative; padding: 46px 54px; overflow: hidden; box-shadow: 0 40px 120px #000; }
.login-stage::before { content: ""; position: absolute; inset: 0 42% 0 0; opacity: .16; background: repeating-linear-gradient(118deg, transparent 0 42px, #83f6a1 43px, transparent 44px 94px); mask-image: linear-gradient(90deg,#000,transparent); }
.login-stage::after { content: "MAYA // 1.3"; position: absolute; right: -38px; bottom: 95px; transform: rotate(-90deg); font: 10px var(--mono); letter-spacing: .35em; color: var(--muted-2); }
.brand-lockup { display: flex; align-items: center; gap: 12px; position: relative; z-index: 2; }
.brand-lockup--login { margin-bottom: 96px; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--green); position: relative; transform: rotate(45deg); color: var(--green); box-shadow: inset 0 0 18px #79f2a020; }
.brand-mark span { transform: rotate(-45deg); font: 700 19px var(--mono); }
.brand-mark::before, .brand-mark::after { content: ""; position: absolute; background: var(--green); }
.brand-mark::before { width: 7px; height: 1px; right: -4px; top: 6px; }
.brand-mark::after { height: 7px; width: 1px; left: 6px; bottom: -4px; }
.brand-eyebrow, .route-kicker, .card-index { font: 600 10px var(--mono); letter-spacing: .18em; color: var(--green); text-transform: uppercase; }
.brand-title { font: 700 15px var(--mono); letter-spacing: .08em; margin-top: 3px; }
.brand-lockup h1 { margin: 3px 0 0; font: 800 18px var(--mono); letter-spacing: .06em; }
.brand-lockup h1 em { color: var(--green); font-style: normal; }
.login-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.15fr .85fr; gap: 11%; align-items: center; }
.signal-line { color: var(--green); font: 600 10px var(--mono); letter-spacing: .2em; display: flex; gap: 10px; align-items: center; }
.signal-line span { display: inline-block; width: 46px; height: 1px; background: var(--green); box-shadow: 0 0 9px var(--green); }
.login-copy h2 { font-size: clamp(42px, 5vw, 72px); line-height: .98; letter-spacing: -.055em; margin: 26px 0; font-weight: 360; }
.login-copy h2 strong { font-weight: 800; color: var(--green); }
.login-copy > p { max-width: 560px; color: #a5b3ab; font-size: 17px; line-height: 1.65; }
.login-facts { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 58px; border-top: 1px solid var(--line); padding-top: 22px; gap: 18px; }
.login-facts dt { font: 600 9px var(--mono); color: var(--muted-2); letter-spacing: .18em; }
.login-facts dd { margin: 8px 0 0; font: 500 11px var(--mono); color: #b6c5bc; overflow-wrap: anywhere; }
.login-card { padding: 38px; background: rgba(15,24,19,.92); border: 1px solid #314238; box-shadow: 0 28px 70px #0009, inset 0 1px #ffffff08; position: relative; }
.login-card::before { content: ""; position: absolute; inset: -1px auto auto -1px; width: 38px; height: 3px; background: var(--green); }
.login-card h2 { font-size: 28px; letter-spacing: -.03em; margin: 12px 0 6px; }
.login-card > p { color: var(--muted); margin: 0 0 30px; }
label { display: grid; gap: 8px; color: #a9b6ae; font: 600 10px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
input, select { width: 100%; background: #080e0b; color: var(--text); border: 1px solid #314137; border-radius: 2px; padding: 13px 14px; outline: none; transition: border .15s, box-shadow .15s; text-transform: none; letter-spacing: 0; }
input:focus, select:focus { border-color: var(--green-2); box-shadow: 0 0 0 3px #79f2a012; }
.login-card label + label { margin-top: 18px; }
.button { border: 1px solid var(--line); background: var(--surface-3); min-height: 42px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; cursor: pointer; font: 650 11px var(--mono); letter-spacing: .04em; transition: .15s; border-radius: 2px; }
.button:hover { transform: translateY(-1px); border-color: #53665b; }
.button:disabled { opacity: .38; cursor: not-allowed; transform: none; }
.button--primary { color: #07110b; background: var(--green); border-color: var(--green); }
.button--danger { background: #5d1d20; border-color: #a33a3d; color: #ffd8d6; }
.button--ghost { background: transparent; }
.button--wide { width: 100%; margin-top: 28px; justify-content: space-between; padding-inline: 18px; }
.button--small { min-height: 34px; padding: 0 11px; font-size: 10px; }
.form-error { min-height: 20px; margin-top: 12px; color: var(--red); font-size: 12px; }
.secure-note { color: var(--muted-2); font: 9px var(--mono); margin-top: 20px; display: flex; align-items: center; gap: 8px; }
.secure-note i { width: 6px; height: 6px; background: var(--green); border-radius: 50%; box-shadow: 0 0 8px var(--green); }
.scanline { position: absolute; left: 0; right: 0; height: 1px; background: linear-gradient(90deg,transparent,var(--green),transparent); opacity: .2; animation: scan 7s linear infinite; }
@keyframes scan { from { top: 0; } to { top: 100%; } }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) 1fr; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar); border-right: 1px solid var(--line-soft); background: #080d0a; padding: 28px 18px 18px; display: flex; flex-direction: column; z-index: 30; }
.sidebar .brand-lockup { padding: 0 9px 30px; border-bottom: 1px solid var(--line-soft); }
.sidebar .brand-mark { width: 34px; height: 34px; }
.nav { display: grid; gap: 4px; margin-top: 28px; }
.nav-item { position: relative; display: grid; grid-template-columns: 27px 1fr auto; align-items: center; gap: 8px; min-height: 48px; padding: 0 13px; border: 1px solid transparent; color: var(--muted); background: transparent; cursor: pointer; text-align: left; font-size: 13px; }
.nav-item small { font: 9px var(--mono); color: #3c4a42; }
.nav-item:hover { color: var(--text); background: #101713; }
.nav-item.is-active { color: var(--green); border-color: #253c2d; background: linear-gradient(90deg,#14241a,#0d1511); }
.nav-item.is-active::before { content: ""; position: absolute; left: -19px; width: 3px; height: 26px; background: var(--green); box-shadow: 0 0 10px #79f2a080; }
.nav-icon { font: 18px var(--mono); }
.sidebar-foot { margin-top: auto; border-top: 1px solid var(--line-soft); padding-top: 18px; display: flex; align-items: center; gap: 8px; }
.owner-chip { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.owner-chip .avatar { width: 34px; height: 34px; border: 1px solid #3c5145; display: grid; place-items: center; color: var(--green); font: 700 13px var(--mono); }
.owner-chip b { display: block; font-size: 12px; }
.owner-chip small { color: var(--muted-2); font: 8px var(--mono); letter-spacing: .1em; }
.icon-button { border: 0; background: transparent; color: var(--muted); font-size: 20px; padding: 7px; cursor: pointer; }
.workspace { grid-column: 2; min-width: 0; }
.topbar { min-height: 92px; position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; padding: 19px 34px; border-bottom: 1px solid var(--line-soft); background: rgba(7,11,9,.92); backdrop-filter: blur(16px); }
.topbar h1 { font-size: 23px; margin: 5px 0 0; letter-spacing: -.025em; }
.topbar-status { display: flex; align-items: center; gap: 11px; }
.topbar-status small { display: block; color: var(--muted-2); font: 8px var(--mono); letter-spacing: .12em; }
.topbar-status b { font: 600 11px var(--mono); }
.topbar-status time { color: var(--muted); font: 11px var(--mono); border-left: 1px solid var(--line); margin-left: 14px; padding-left: 24px; min-width: 72px; }
.state-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--muted); }
.state-dot.is-online { background: var(--green); box-shadow: 0 0 12px var(--green); }
.state-dot.is-offline { background: var(--red); box-shadow: 0 0 12px #ff716d70; }
.mobile-menu { display: none; }
.loading-bar { position: fixed; z-index: 40; left: var(--sidebar); right: 0; top: 90px; height: 2px; opacity: 0; overflow: hidden; }
.loading-bar.is-loading { opacity: 1; }
.loading-bar span { display: block; width: 35%; height: 100%; background: var(--green); animation: loading 1s infinite ease-in-out; }
@keyframes loading { from { transform: translateX(-110%); } to { transform: translateX(330%); } }
.content { padding: 30px 34px 64px; max-width: 1720px; margin: auto; }
.view { display: none; animation: reveal .22s ease-out; }
.view.is-active { display: block; }
@keyframes reveal { from { opacity: 0; transform: translateY(5px); } }

.section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 3px 0 22px; }
.section-head h2 { margin: 5px 0 0; font-size: 28px; letter-spacing: -.04em; }
.section-head p { color: var(--muted); margin: 6px 0 0; max-width: 760px; line-height: 1.55; font-size: 13px; }
.eyebrow { font: 600 9px var(--mono); letter-spacing: .18em; color: var(--green); }
.grid { display: grid; gap: 14px; }
.grid--4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.card { background: linear-gradient(145deg,var(--surface),#0a100d); border: 1px solid var(--line-soft); padding: 20px; position: relative; overflow: hidden; }
.card::after { content: ""; position: absolute; width: 7px; height: 7px; right: 8px; top: 8px; border-top: 1px solid #4b5d53; border-right: 1px solid #4b5d53; }
.card--hero { min-height: 250px; padding: 28px; background: radial-gradient(circle at 77% 20%,#173722 0,transparent 35%), linear-gradient(135deg,#101c15,#090e0b); }
.card--hero h2 { font-size: 36px; margin: 23px 0 8px; }
.hero-state { display: flex; align-items: center; gap: 13px; }
.hero-state .pulse { width: 12px; height: 12px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 7px #79f2a012, 0 0 18px var(--green); }
.hero-state small { color: var(--green); font: 600 10px var(--mono); letter-spacing: .13em; }
.hero-meta { display: flex; gap: 32px; margin-top: 34px; }
.hero-meta dt, .metric-label { color: var(--muted-2); font: 600 9px var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.hero-meta dd { margin: 7px 0 0; font: 600 13px var(--mono); }
.hero-decoration { position: absolute; right: -30px; bottom: -55px; width: 280px; height: 280px; border: 1px solid #79f2a01f; border-radius: 50%; }
.hero-decoration::before, .hero-decoration::after { content: ""; position: absolute; border: 1px solid #79f2a01f; border-radius: 50%; inset: 34px; }
.hero-decoration::after { inset: 82px; background: #79f2a008; }
.metric-card { min-height: 130px; display: flex; flex-direction: column; justify-content: space-between; }
.metric-value { font: 650 29px var(--mono); letter-spacing: -.05em; }
.metric-foot { color: var(--muted); font-size: 11px; display: flex; justify-content: space-between; gap: 8px; }
.trend { color: var(--green); }
.progress { height: 3px; background: #17211c; margin-top: 14px; }
.progress span { display: block; height: 100%; background: var(--green); }
.split-layout { display: grid; grid-template-columns: 1.45fr .75fr; gap: 14px; margin-top: 14px; }
.panel-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.panel-title h3 { font-size: 15px; margin: 0; }
.panel-title small { color: var(--muted-2); font: 9px var(--mono); }
.status-list { display: grid; gap: 0; }
.status-row { display: grid; grid-template-columns: 1.3fr 1fr auto; align-items: center; gap: 12px; min-height: 47px; border-top: 1px solid var(--line-soft); font-size: 12px; }
.status-row:first-child { border-top: 0; }
.status-row span:nth-child(2) { color: var(--muted); font: 11px var(--mono); }
.badge { display: inline-flex; width: fit-content; align-items: center; gap: 6px; border: 1px solid #34443a; padding: 5px 8px; font: 600 9px var(--mono); color: #a9b8af; text-transform: uppercase; letter-spacing: .05em; }
.badge--green { border-color: #2f6742; color: var(--green); background: #12331d; }
.badge--amber { border-color: #6f5931; color: var(--amber); background: #2b2516; }
.badge--red { border-color: #753638; color: #ff9995; background: #2c1516; }
.badge--blue { border-color: #315573; color: #8bcaff; background: #102536; }
.job-card { border-left: 2px solid var(--amber); }
.job-card pre { white-space: pre-wrap; max-height: 160px; overflow: auto; color: var(--muted); font: 10px/1.5 var(--mono); }

.action-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; }
.action-card { min-height: 190px; display: flex; flex-direction: column; }
.action-card .action-symbol { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #34483c; color: var(--green); font: 20px var(--mono); }
.action-card h3 { margin: 22px 0 6px; font-size: 15px; }
.action-card p { color: var(--muted); font-size: 11px; line-height: 1.5; margin: 0 0 18px; }
.action-card .button { margin-top: auto; }
.action-card.is-danger .action-symbol { color: var(--red); border-color: #683539; }
.warning-strip { margin: 14px 0; padding: 14px 16px; border: 1px solid #5d4c2c; background: #201c12; display: flex; align-items: center; gap: 12px; color: #d7c28f; font-size: 12px; }
.warning-strip b { color: var(--amber); font: 700 10px var(--mono); }
.table-wrap { overflow: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { color: var(--muted-2); text-align: left; font: 600 9px var(--mono); letter-spacing: .1em; padding: 11px 10px; border-bottom: 1px solid var(--line); }
td { padding: 13px 10px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
td.mono { font: 10px var(--mono); color: var(--muted); }
.empty { min-height: 150px; display: grid; place-items: center; text-align: center; color: var(--muted); }
.empty strong { display: block; color: var(--text); margin-bottom: 6px; }

.toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.search { position: relative; min-width: min(360px,100%); flex: 1; }
.search input { padding-left: 40px; }
.search::before { content: "⌕"; position: absolute; left: 14px; top: 11px; color: var(--muted); z-index: 1; font-size: 18px; }
.tabs { display: flex; gap: 5px; overflow: auto; padding-bottom: 2px; }
.tab { white-space: nowrap; background: transparent; border: 1px solid var(--line); color: var(--muted); min-height: 38px; padding: 0 13px; cursor: pointer; font: 10px var(--mono); }
.tab.is-active { color: var(--green); border-color: #3c6148; background: #112319; }
.settings-summary { display: grid; grid-template-columns: 1.2fr repeat(3,.5fr); gap: 1px; background: var(--line-soft); border: 1px solid var(--line-soft); margin-bottom: 14px; }
.settings-summary > div { background: var(--surface); padding: 16px; }
.settings-summary strong { display: block; font: 650 23px var(--mono); }
.settings-summary small { color: var(--muted); font-size: 10px; }
.quick-settings { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin: 14px 0; }
.quick-card { background: #101a14; border: 1px solid #263d2f; padding: 14px; }
.quick-card label { color: var(--green); }
.quick-card p { color: var(--muted); font-size: 10px; line-height: 1.45; min-height: 30px; }
.setting-list { display: grid; gap: 8px; margin-top: 14px; }
.setting-card { display: grid; grid-template-columns: minmax(250px,1.2fr) minmax(220px,.7fr); gap: 22px; padding: 18px; background: var(--surface); border: 1px solid var(--line-soft); }
.setting-card.is-changed { border-color: #826a36; background: linear-gradient(90deg,#1c1910,var(--surface)); }
.setting-card h3 { margin: 0; font-size: 14px; }
.setting-key { margin: 5px 0 10px; color: var(--green); font: 9px var(--mono); overflow-wrap: anywhere; }
.setting-description { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.setting-meta { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 11px; }
.setting-control { display: grid; align-content: center; gap: 7px; }
.setting-control small { color: var(--muted-2); font: 9px var(--mono); }
.toggle { position: relative; width: 50px; height: 27px; justify-self: end; }
.toggle input { position: absolute; opacity: 0; }
.toggle span { position: absolute; inset: 0; background: #1a2620; border: 1px solid #36483e; cursor: pointer; }
.toggle span::after { content: ""; width: 17px; height: 17px; position: absolute; top: 4px; left: 5px; background: #647269; transition: .15s; }
.toggle input:checked + span { background: #153821; border-color: #397b4e; }
.toggle input:checked + span::after { transform: translateX(21px); background: var(--green); box-shadow: 0 0 8px #79f2a080; }
.save-bar { position: sticky; bottom: 16px; z-index: 12; margin-top: 14px; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 17px; background: rgba(21,27,23,.96); border: 1px solid #66562f; box-shadow: 0 15px 50px #000c; }
.save-bar p { margin: 0; font-size: 12px; }
.save-bar small { display: block; color: var(--muted); margin-top: 4px; }
.mechanics-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.mechanic-card { display:flex;flex-direction:column;min-height:310px; }
.mechanic-card h3 { margin:0 0 4px;font-size:15px; }
.mechanic-card code { color:var(--green);font:9px var(--mono); }
.mechanic-card > p { color:var(--muted);font-size:11px;line-height:1.55;min-height:52px; }
.mechanic-settings { display:grid;gap:5px;padding:10px;background:#0a110d;border:1px solid var(--line-soft);font-size:10px;line-height:1.45; }
.mechanic-settings b { color:var(--amber);font:9px var(--mono);text-transform:uppercase;letter-spacing:.08em; }
.mechanic-settings span { color:#a6b2ab; }
.mechanic-path { margin-top:10px;color:var(--muted-2);font:8px var(--mono);overflow-wrap:anywhere; }
.mechanic-card .item-actions { margin-top:auto;padding-top:12px;gap:7px; }
.json-editor { width:100%;min-height:390px;resize:vertical;padding:12px;background:#070b09;color:#c9f6d5;border:1px solid var(--line);font:10px/1.45 var(--mono);tab-size:2; }
.json-editor:focus { outline:1px solid #397b4e;border-color:#397b4e; }

.world-layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(340px,.6fr); gap: 14px; }
.map-card { padding: 0; min-height: 680px; }
.map-toolbar { position: absolute; z-index: 4; left: 14px; right: 14px; top: 14px; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; pointer-events: none; }
.map-toolbar > * { pointer-events: auto; }
.layer-panel { display: flex; gap: 5px; padding: 7px; background: #080d0ad9; border: 1px solid #34443a; backdrop-filter: blur(10px); }
.map-stage { position: absolute; inset: 0; overflow: hidden; background: #111b15; }
.map-canvas { position: absolute; width: min(100%,680px); aspect-ratio: 1; left: 50%; top: 50%; transform-origin: center; touch-action: none; cursor: grab; will-change: transform; }
.map-canvas.is-dragging { cursor: grabbing; }
.map-canvas.is-marking { cursor: crosshair; }
.map-canvas > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; }
.map-tile-layer { position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden; }
.map-tile-layer img { position:absolute;display:block;object-fit:cover;pointer-events:none; }
.sector-grid { position:absolute;inset:0;pointer-events:none;z-index:2;background:linear-gradient(90deg,transparent calc(20% - 1px),rgba(255,255,255,.32) 20%,transparent calc(20% + 1px),transparent calc(40% - 1px),rgba(255,255,255,.32) 40%,transparent calc(40% + 1px),transparent calc(60% - 1px),rgba(255,255,255,.32) 60%,transparent calc(60% + 1px),transparent calc(80% - 1px),rgba(255,255,255,.32) 80%,transparent calc(80% + 1px)),linear-gradient(0deg,transparent calc(20% - 1px),rgba(255,255,255,.32) 20%,transparent calc(20% + 1px),transparent calc(40% - 1px),rgba(255,255,255,.32) 40%,transparent calc(40% + 1px),transparent calc(60% - 1px),rgba(255,255,255,.32) 60%,transparent calc(60% + 1px),transparent calc(80% - 1px),rgba(255,255,255,.32) 80%,transparent calc(80% + 1px));}
.sector-grid span { position:absolute;width:20%;height:20%;padding:7px;color:#fff;font:800 14px var(--mono);text-shadow:0 2px 5px #000,0 0 4px #000;box-sizing:border-box; }
.map-overlay { position: absolute; inset: 0; pointer-events: none; z-index:3; }
.marker { appearance:none;padding:0;position: absolute; width: 8px; height: 8px; transform: translate(-50%,-50%) rotate(45deg); border: 1px solid #06100a; box-shadow: 0 0 7px currentColor; pointer-events: auto; cursor: crosshair; transition:left .48s linear,top .48s linear,filter .15s; }
.marker:hover,.marker:focus-visible { filter:brightness(1.5);z-index:12;outline:2px solid #fff;outline-offset:2px; }
.marker--player { color: var(--green); background: var(--green); width: 11px; height: 11px; z-index: 3; }
.marker--vehicle { color: var(--blue); background: var(--blue); opacity: .72; }
.marker--storage { color: var(--amber); background: var(--amber); }
.marker--custom { color: var(--marker-color,#f5e879); background: var(--marker-color,#f5e879); width: 12px; height: 12px; border: 2px solid #151209; z-index: 4; cursor:move; }
.marker--poi { color:var(--marker-color,#d35ab7);background:var(--marker-color,#d35ab7);width:7px;height:7px;opacity:.86;z-index:2; }
.marker--custom.marker-kind-danger { color: var(--red); background: var(--red); }
.marker--custom.marker-kind-home { color: #c18bff; background: #c18bff; }
.marker--custom.marker-kind-loot { color: var(--amber); background: var(--amber); }
.map-zoom { display: flex; gap: 4px; padding: 6px; border: 1px solid #34443a; background: #080d0ad9; }
.map-zoom .button { min-width: 34px; padding: 0 9px; }
.map-legend { position: absolute; z-index: 4; left: 14px; bottom: 14px; display: flex; gap: 14px; padding: 9px 12px; background: #080d0ad9; border: 1px solid #34443a; font: 9px var(--mono); color: var(--muted); }
.map-legend i { display: inline-block; width: 7px; height: 7px; margin-right: 5px; transform: rotate(45deg); }
.layer-panel--wrap { max-width:min(68%,620px);flex-wrap:wrap; }
.map-layer-toggle { display:block;position:relative;color:var(--muted);font:9px var(--mono);cursor:pointer; }
.map-layer-toggle input { position:absolute;opacity:0; }
.map-layer-toggle span { display:block;padding:7px 9px;border:1px solid #2c3d33;background:#101713; }
.map-layer-toggle input:checked + span { color:#09110c;background:var(--green);border-color:var(--green); }
.measurement-layer { position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:7;overflow:visible; }
.measurement-layer polyline { fill:none;stroke:#ffe36d;stroke-width:.45;stroke-dasharray:1.5 1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #000); }
.measurement-point { position:absolute;z-index:8;transform:translate(-50%,-50%);display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#ffe36d;color:#171306;font:800 8px var(--mono); }
.measurement-total { position:absolute;z-index:8;left:50%;bottom:8%;transform:translateX(-50%);padding:7px 10px;background:#080d0ae8;border:1px solid #ffe36d;color:#ffe36d;font:10px var(--mono);white-space:nowrap; }
.marker-swatch { display:inline-block;width:8px;height:8px;margin-right:7px;transform:rotate(45deg); }
.map-context-menu { position:fixed;z-index:1000;width:min(340px,calc(100vw - 20px));padding:7px;background:#08100df5;border:1px solid #55715f;box-shadow:0 18px 60px #000c;backdrop-filter:blur(12px); }
.map-context-menu b { display:block;padding:9px;color:var(--green);font:9px var(--mono); }
.map-context-menu small { display:block;padding:0 9px 9px;color:var(--muted);font:8px/1.45 var(--mono); }
.map-context-menu button { display:block;width:100%;padding:10px;border:0;border-top:1px solid var(--line-soft);background:transparent;color:var(--text);text-align:left;cursor:pointer; }
.map-context-menu button:hover { background:#1a2d20;color:var(--green); }
.map-context-menu button:disabled { opacity:.35;cursor:not-allowed; }
.entity-row--button { appearance:none;width:100%;background:transparent;color:inherit;text-align:left;cursor:pointer; }
.entity-row--button:hover { background:#122018; }
.admin-hero { display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:14px; }
.admin-console p,.admin-proof li { color:var(--muted);font-size:11px;line-height:1.55; }
.admin-proof ol { margin:15px 0;padding-left:20px; }
.admin-quick { display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft); }
.mass-select { display:grid;gap:7px; }
.mass-select label { display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line-soft);color:var(--text);font-size:10px;cursor:pointer; }
.mass-select label:has(input:checked) { border-color:#3c6148;background:#112319;color:var(--green); }
.mass-select > small { color:var(--muted);font-size:9px;line-height:1.4; }
.admin-capability-toolbar { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px;border:1px solid var(--line-soft);background:#0b120e; }
.admin-capability-toolbar .search { min-width:min(520px,100%); }
.admin-capability-toolbar > span { color:var(--muted);font:9px var(--mono); }
.admin-capability-toolbar #admin-visible-count { color:var(--green); }
.capability-groups { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px; }
.capability-list { display:grid;gap:7px;max-height:620px;overflow:auto;scrollbar-gutter:stable; }
.capability-row { appearance:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;width:100%;padding:13px;border:1px solid var(--line-soft);background:#0c140f;color:var(--text);text-align:left;cursor:pointer; }
.capability-row:hover { border-color:#477259;background:#122018; }
.capability-copy { display:grid;gap:5px;min-width:0; }
.capability-copy strong { font-size:12px;line-height:1.3;color:#f1f5f2; }
.capability-copy code { color:var(--green);font:8px var(--mono);overflow-wrap:anywhere; }
.capability-description { color:#b8c4bd;font-size:10px;line-height:1.5; }
.capability-arguments { color:#8fa097;font:8.5px/1.5 var(--mono); }
.capability-flags { display:grid;gap:5px;justify-items:end; }
.capability-row.is-unavailable { opacity:.76;cursor:default; }
.capability-row[hidden],.capability-group[hidden] { display:none; }
.admin-zero-strip { display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:15px 17px;border:1px solid #2d6040;background:linear-gradient(90deg,#102819,#0b1510); }
.admin-zero-strip div { display:grid;gap:4px; }
.admin-zero-strip b { color:var(--green);font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em; }
.admin-zero-strip span { color:#b9c7be;font-size:10px;line-height:1.45; }
.weather-mode-strip { display:flex;align-items:center;justify-content:space-between;gap:18px;margin:10px 0 14px;padding:14px 16px;border:1px solid #326546;background:#102219; }
.weather-mode-strip > div { display:grid;gap:4px; }
.weather-mode-strip b { color:var(--green);font-size:11px; }
.weather-mode-strip span { color:#b9c7be;font-size:10px; }
.weather-mode-strip.is-manual { border-color:#806b36;background:#292311; }
.weather-mode-strip.is-manual b { color:var(--amber); }
.admin-favorites { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:14px 0; }
.admin-favorite { appearance:none;display:flex;align-items:center;gap:10px;padding:13px;border:1px solid var(--line-soft);background:linear-gradient(145deg,#111b15,#0a100c);color:var(--text);cursor:pointer;text-align:left; }
.admin-favorite:hover,.admin-favorite.is-active { border-color:#4c7c5e;background:#152a1d;color:var(--green); }
.admin-favorite i { display:grid;place-items:center;width:28px;height:28px;border:1px solid #365441;color:var(--green);font:14px var(--mono);font-style:normal; }
.admin-favorite span { font-size:10px;font-weight:700; }
.admin-studio { display:grid;grid-template-columns:210px minmax(290px,.72fr) minmax(390px,1.2fr);gap:12px;align-items:start;margin-top:12px; }
.admin-groups { position:sticky;top:82px;padding:8px;display:grid;gap:4px; }
.admin-groups button { appearance:none;display:flex;justify-content:space-between;gap:10px;width:100%;padding:10px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:9px;text-align:left;cursor:pointer; }
.admin-groups button:hover,.admin-groups button.is-active { border-color:#365d44;background:#112219;color:var(--green); }
.admin-groups small { color:var(--muted-2);font:8px var(--mono); }
.admin-command-list { max-height:calc(100vh - 135px);overflow:auto;scrollbar-gutter:stable;padding:12px; }
.admin-subgroup { display:grid;gap:5px;margin-top:13px; }
.admin-subgroup:first-of-type { margin-top:0; }
.admin-subgroup > b { padding:3px 5px;color:var(--muted-2);font:8px var(--mono);text-transform:uppercase;letter-spacing:.09em; }
.admin-command-row { appearance:none;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:11px;border:1px solid var(--line-soft);background:#0a120d;color:var(--text);text-align:left;cursor:pointer; }
.admin-command-row:hover,.admin-command-row.is-active { border-color:#4b775b;background:#14261a; }
.admin-command-row > span { display:grid;gap:4px;min-width:0; }
.admin-command-row strong { font-size:10px;line-height:1.35; }
.admin-command-row small { color:var(--muted);font:8px/1.4 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.admin-command-row > i { color:var(--green);font-style:normal; }
.admin-command-row.is-unavailable { opacity:.55; }
.admin-form-pane { position:sticky;top:82px;min-height:430px;padding:20px;background:radial-gradient(circle at 100% 0,#18322055,transparent 34%),var(--surface); }
.admin-command-head { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid var(--line-soft); }
.admin-command-head h2 { margin:5px 0 4px;font-size:19px; }
.admin-command-head small { color:var(--green);font:8px var(--mono);text-transform:uppercase; }
.admin-command-head code { color:var(--muted-2);font:8px var(--mono); }
.admin-form-pane > p { color:#b7c2bb;font-size:11px;line-height:1.55; }
.admin-structured-form { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px; }
.admin-structured-form label { margin:0; }
.admin-structured-form label small { display:block;min-height:13px;margin-top:4px;color:var(--muted-2);font:7.5px/1.35 var(--mono); }
.admin-structured-form .button,.admin-structured-form .source-note { grid-column:1/-1; }
.admin-switch { position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;min-height:58px;padding:10px;border:1px solid var(--line-soft); }
.admin-switch input { position:absolute;opacity:0; }
.admin-switch i { width:35px;height:19px;border:1px solid #4b5e53;background:#0a0f0c;position:relative; }
.admin-switch i::after { content:"";position:absolute;width:13px;height:13px;left:2px;top:2px;background:#718078;transition:.15s; }
.admin-switch input:checked + i { border-color:var(--green);background:#173421; }
.admin-switch input:checked + i::after { left:18px;background:var(--green); }
.admin-switch small { grid-column:1/-1; }
.admin-result { display:grid;gap:6px;margin-top:16px;padding:13px 14px;border:1px solid var(--line-soft);background:#0a110d; }
.admin-result b { font-size:10px; }
.admin-result span { color:#bac6bf;font-size:10px;line-height:1.45; }
.admin-result small { color:var(--muted-2);font:8px var(--mono); }
.admin-result.is-success { border-color:#327048;background:#10251a; }
.admin-result.is-success b { color:var(--green); }
.admin-result.is-failed { border-color:#804044;background:#291618; }
.admin-result.is-failed b { color:#ffaaa6; }
.admin-result.is-unconfirmed { border-color:#806b36;background:#292311; }
.admin-result.is-unconfirmed b { color:var(--amber); }
.admin-result details,.technical-details { margin-top:6px;color:var(--muted-2);font:8px/1.5 var(--mono); }
.admin-result summary,.technical-details summary { cursor:pointer;color:#a8b6ae; }
.admin-result details code,.technical-details code { display:block;margin-top:7px;white-space:pre-wrap;overflow-wrap:anywhere; }
.technical-details { margin-top:14px;padding-top:10px;border-top:1px dashed #35443c; }
.technical-details p { color:var(--muted-2); }
.verification-note { display:grid;gap:4px;margin-top:14px;padding:11px 12px;border-left:2px solid var(--green);background:#102219; }
.verification-note b { color:var(--green);font-size:10px; }
.verification-note span { color:#b8c6bd;font-size:9px;line-height:1.45; }
.verification-note.is-unconfirmed { border-color:var(--amber);background:#241f11; }
.verification-note.is-unconfirmed b { color:var(--amber); }
.extension-summary { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:14px 0;background:var(--line-soft); }
.extension-summary > div { padding:15px;background:var(--surface); }
.extension-summary strong { display:block;color:var(--green);font:22px var(--mono); }
.extension-summary small { color:var(--muted);font-size:9px; }
.extension-section-title { margin:26px 0 10px; }
.extension-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.extension-card { display:flex;flex-direction:column;gap:12px; }
.extension-card > p,.extension-action-form > p { margin:0;color:var(--muted);font-size:10px;line-height:1.5; }
.extension-card .status-list.compact .status-row { grid-template-columns:minmax(120px,.65fr) minmax(0,1fr) auto; }
.extension-card .status-row code { overflow:hidden;color:#9db0a5;font:8px var(--mono);text-overflow:ellipsis; }
.source-link { color:var(--green);font:9px var(--mono);text-decoration:none; }
.source-link:hover { text-decoration:underline; }
.extension-actions { justify-content:flex-start;flex-wrap:wrap;margin-top:auto; }
.extension-form { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding-top:12px;border-top:1px solid var(--line-soft); }
.extension-form label { margin:0; }
.extension-form .button,.extension-form > b,.extension-form > p { grid-column:1/-1;justify-self:start; }
.extension-action-form { padding:13px;border:1px solid var(--line-soft);background:#0a120d; }
.world-side { display: grid; gap: 14px; align-content: start; }
.world-stat { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line-soft); }
.world-stat div { background: var(--surface); padding: 14px; }
.world-stat b { display: block; font: 650 21px var(--mono); }
.world-stat small { color: var(--muted); font-size: 9px; }
.entity-list { max-height: 424px; overflow: auto; }
.entity-row { padding: 12px 0; border-top: 1px solid var(--line-soft); display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.entity-row:first-child { border-top: 0; }
.entity-row b { font-size: 11px; }
.entity-row small { color: var(--muted); display: block; margin-top: 4px; font: 9px var(--mono); }
.source-note { color: var(--muted); font-size: 10px; line-height: 1.5; padding: 12px; border: 1px dashed #35443c; }

.communication-status { display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:1px;margin-bottom:14px;border:1px solid var(--line-soft);background:var(--line-soft); }
.communication-status > div { min-height:68px;padding:13px 15px;background:var(--surface);display:flex;align-items:center;gap:9px; }
.communication-status > div:first-child { display:grid;grid-template-columns:auto 1fr;align-content:center; }
.communication-status > div:first-child .state-dot { grid-row:1/3; }
.communication-status b { font-size:11px; }
.communication-status small,.communication-status span { color:var(--muted);font:8px/1.4 var(--mono); }
.communication-layout { display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:14px;align-items:start; }
.message-composer,.automation-composer { overflow:visible; }
.message-composer form,.automation-composer form { display:grid;gap:14px; }
.message-choice-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.message-choice-grid label,.message-composer form > label,.automation-composer form > label { align-content:start; }
.schedule-grid { padding:12px;background:#09100c;border:1px solid var(--line-soft); }
.field-title { display:flex;align-items:center;gap:6px; }
.field-help { width:16px;height:16px;display:inline-grid;place-items:center;border:1px solid #496052;border-radius:50%;color:var(--green);font:normal 700 9px var(--mono);cursor:help;text-transform:none; }
.field-note { display:block;color:var(--muted-2);font:8px/1.45 var(--mono);letter-spacing:0;text-transform:none; }
.message-textarea { width:100%;min-height:92px;resize:vertical;padding:13px 14px;background:#080e0b;color:var(--text);border:1px solid #314137;border-radius:2px;outline:none;font:12px/1.55 var(--sans); }
.message-textarea:focus { border-color:var(--green-2);box-shadow:0 0 0 3px #79f2a012; }
.palette-title { display:flex;justify-content:space-between;align-items:end;gap:12px; }
.palette-title b { font-size:11px; }
.palette-title span { color:var(--muted-2);font:8px var(--mono); }
.variable-palette { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px; }
.variable-chip { appearance:none;min-width:0;padding:9px 10px;border:1px solid var(--line-soft);background:#09110c;color:var(--text);display:grid;grid-template-columns:1fr auto;gap:3px 8px;text-align:left;cursor:pointer; }
.variable-chip:hover { border-color:#477658;background:#112219; }
.variable-chip b { overflow:hidden;font-size:9px;white-space:nowrap;text-overflow:ellipsis; }
.variable-chip code { color:var(--green);font:8px var(--mono); }
.variable-chip small { grid-column:1/-1;color:var(--muted);overflow:hidden;font:8px var(--mono);white-space:nowrap;text-overflow:ellipsis; }
.message-preview { min-height:106px;padding:15px;border:1px solid #356446;background:radial-gradient(circle at 100% 0,#1b3e2755,transparent 42%),#09130d; }
.message-preview--compact { min-height:86px; }
.preview-label { color:var(--green);font:700 8px var(--mono);letter-spacing:.12em;text-transform:uppercase; }
.preview-body { display:grid;gap:7px;margin-top:11px; }
.preview-body p { margin:0;color:#eff8f1;font-size:13px;line-height:1.55;overflow-wrap:anywhere; }
.preview-body small,.preview-body > span { color:var(--muted);font:8px/1.45 var(--mono); }
.preview-body .preview-error { color:var(--red); }
.message-submit { width:100%; }
.communication-lists { margin-top:14px; }
.message-rule-row p { margin:7px 0;color:#c2cec7;font-size:10px;line-height:1.5; }
.message-rule-row > div:last-child { display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end; }
.message-history-row { align-items:start; }
.message-history-row > .badge { max-width:170px;text-align:center; }
.message-history .technical-details { max-width:620px; }
.appearance-card { margin-top:14px; }
.appearance-card td:first-child { min-width:220px; }
.appearance-card td { color:#abb8b0; }
.live-check-details ol { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:0;list-style:none;counter-reset:none; }
.live-check-details li { padding:9px;border:1px solid var(--line-soft);background:#080e0b; }
.live-check-details li b,.live-check-details li code { display:block; }
.live-check-details li b { color:#c2cec7;font-size:9px; }
.live-check-details li code { margin-top:5px;color:var(--green);font:8px/1.45 var(--mono);white-space:normal; }

.catalog-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.item-card { min-height: 280px; display: flex; flex-direction: column; padding: 15px; background: linear-gradient(145deg,#101713,#090e0b); border: 1px solid var(--line-soft); position: relative; overflow: hidden; cursor: pointer; }
.item-card:hover { border-color: #456052; transform: translateY(-1px); }
.item-image { height: 112px; display: grid; place-items: center; background: radial-gradient(circle,#213228,#0b110d 65%); border: 1px solid #1e2c25; margin-bottom: 13px; position: relative; }
.item-image::before { content: ""; position: absolute; inset: 9px; border: 1px solid #ffffff06; }
.item-image img { max-width: 90%; max-height: 96px; object-fit: contain; filter: drop-shadow(0 8px 10px #000); }
.image-loading { position:absolute;z-index:0;inset:0;display:grid;place-items:center;color:#68776e;font:8px var(--mono);text-transform:uppercase;letter-spacing:.04em; }
.image-loading.is-error { z-index:2;padding:12px;color:var(--amber);background:repeating-linear-gradient(135deg,#12150f 0 8px,#17180f 8px 16px);text-align:center; }
.item-image--unavailable { background:repeating-linear-gradient(135deg,#12150f 0 8px,#17180f 8px 16px);border-color:#5e532c; }
.missing-image-state { position:relative;z-index:1;display:grid;place-items:center;gap:3px;max-width:94%;padding:9px;color:var(--amber);text-align:center; }
.missing-image-state b { font:24px var(--mono);line-height:1; }
.missing-image-state strong { color:#e2cf95;font-size:10px; }
.missing-image-state small { color:#988d6e;font:7px/1.35 var(--mono); }
.missing-image-state.is-compact { min-width:70px;padding:4px; }
.missing-image-state.is-compact b { font-size:18px; }
.missing-image-state.is-compact strong { font-size:8px; }
.missing-image-state.is-compact small { font-size:7px; }
.inherited-image { position:absolute;right:5px;bottom:4px;max-width:calc(100% - 10px);padding:3px 5px;background:#07100dda;color:var(--amber);font:7px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.item-image .fallback { color: #32473a; font: 700 28px var(--mono); }
.item-image .fallback small { display: block; max-width: 150px; margin-top: 7px; color: var(--muted); font: 500 9px/1.3 var(--mono); text-align: center; text-transform: uppercase; }
.item-card h3 { font-size: 13px; margin: 0 0 4px; }
.item-code { color: var(--green); font: 8px var(--mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.item-stats { display: grid; grid-template-columns: repeat(2,1fr); gap: 6px; margin-top: auto; padding-top: 13px; }
.item-stats div { border-top: 1px solid var(--line-soft); padding-top: 6px; }
.item-stats small { display: block; color: var(--muted-2); font: 8px var(--mono); }
.item-stats b { font: 500 10px var(--mono); }
.item-stats-empty { margin-top:auto;padding-top:12px;border-top:1px solid var(--line-soft); }
.item-stats-empty b,.item-stats-empty span { display:block; }
.item-stats-empty b { color:#c6b67f;font-size:10px; }
.item-stats-empty span { margin-top:4px;color:#84938b;font:8px/1.45 var(--mono); }
.pagination { display: flex; justify-content: center; gap: 8px; margin: 20px 0; }
.item-actions { display: flex; justify-content: flex-end; margin-top: 10px; }
.spawn-unavailable-reason { margin: 10px 0 0; padding: 9px 10px; border-left: 2px solid var(--amber); background: #211b10; color: #e8c983; font-size: 10px; line-height: 1.45; }
.spawn-unavailable-reason button { display:block;margin-top:7px;padding:0;border:0;background:transparent;color:var(--green);cursor:pointer;font:9px var(--mono);text-align:left; }
.spawn-preview { min-height: 88px; display: grid; grid-template-columns: 92px 1fr; gap: 16px; align-items: center; margin: 16px 0 20px; border: 1px solid var(--line); padding: 12px; background: #09100c; }
.spawn-preview img { width: 82px; height: 70px; object-fit: contain; }
.spawn-preview h3 { margin: 0 0 6px; }
.spawn-preview code { color: var(--green); font: 10px var(--mono); }
.coordinate-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:9px; }
.dialog--wide { width: min(620px,calc(100% - 30px)); }

.event-layout { display: grid; grid-template-columns: 260px 1fr; gap: 14px; }
.event-summary { display: grid; gap: 7px; align-content: start; }
.event-filter { width: 100%; justify-content: space-between; background: transparent; border: 1px solid var(--line-soft); padding: 12px; color: var(--muted); cursor: pointer; text-align: left; }
.event-filter.is-active { border-color: #3b6448; background: #112319; color: var(--green); }
.event-feed { display: grid; gap: 8px; max-height: calc(100vh - 300px); min-height: 420px; overflow: auto; align-content: start; scrollbar-gutter: stable; }
.event-card { display: grid; grid-template-columns: 110px 36px 1fr auto; gap: 14px; align-items: start; padding: 15px 17px; border: 1px solid var(--line-soft); background: var(--surface); }
.event-card time { color: var(--muted-2); font: 9px/1.5 var(--mono); }
.event-glyph { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid #365043; color: var(--green); font: 14px var(--mono); }
.event-card.is-critical .event-glyph { color: var(--red); border-color: #753638; }
.event-card.is-warning .event-glyph { color: var(--amber); border-color: #6f5931; }
.event-card h3 { margin: 0 0 5px; font-size: 13px; }
.event-card p { color: var(--muted); margin: 0; font-size: 11px; line-height: 1.5; }
.event-detail { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }

.log-shell { border: 1px solid var(--line); background: #070c09; }
.log-head { display: grid; grid-template-columns: 150px 130px 1fr 150px; gap: 12px; padding: 10px 15px; border-bottom: 1px solid var(--line); color: var(--muted-2); font: 9px var(--mono); }
.log-list { max-height: 650px; overflow: auto; }
.log-row { display: grid; grid-template-columns: 150px 130px 1fr 150px; gap: 12px; padding: 11px 15px; border-bottom: 1px solid var(--line-soft); align-items: start; font-size: 11px; }
.log-row:hover { background: #101813; }
.log-row time, .log-file { color: var(--muted-2); font: 9px/1.5 var(--mono); }
.log-message { line-height: 1.5; overflow-wrap: anywhere; }
.log-raw { margin-top: 7px; color: var(--muted-2); }
.log-raw summary { width: max-content; cursor: pointer; color: var(--blue); font: 8px var(--mono); text-transform: uppercase; }
.log-raw code { display: block; margin-top: 7px; padding: 8px; border-left: 2px solid #304a3b; background: #050805; color: #91a49a; font: 9px/1.5 var(--mono); white-space: pre-wrap; overflow-wrap: anywhere; }
.severity { display: inline-flex; align-items: center; gap: 5px; font: 8px var(--mono); text-transform: uppercase; }
.severity::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.severity--critical::before { background: var(--red); box-shadow: 0 0 8px var(--red); }
.severity--warning::before { background: var(--amber); }
.severity--notice::before { background: var(--blue); }

.notification-workbench { align-items: start; }
.notification-preview-card { position: sticky; top: 92px; }
.native-preview { min-height: 210px; display: grid; place-content: center; gap: 12px; padding: 28px; text-align: center; border: 1px solid #36423d; background: radial-gradient(circle at center,#1b1d1c 0,#090d0b 72%); }
.native-preview::before { content: ""; width: 54px; height: 2px; justify-self: center; background: var(--notification-color,var(--red)); box-shadow: 0 0 18px var(--notification-color,var(--red)); }
.native-preview small,.native-preview span { color: var(--muted); font: 9px var(--mono); letter-spacing: .08em; }
.native-preview strong { max-width: 540px; color: var(--notification-color,var(--red)); font-size: 22px; line-height: 1.25; text-shadow: 0 0 16px color-mix(in srgb,var(--notification-color,var(--red)) 35%,transparent); }
.native-notification-list .entity-row { grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 14px; }
.native-notification-list .entity-row > div:last-child { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.native-notification-list p { margin: 6px 0 0; color: var(--text); font-size: 12px; }
.notification-color { width: 6px; height: 46px; background: var(--notification-color); box-shadow: 0 0 12px color-mix(in srgb,var(--notification-color) 45%,transparent); }
.notification-evidence .status-row { align-items: start; }
.notification-evidence .status-row > span:first-child { max-width: 72%; }

.timeline { position: relative; margin-left: 9px; padding-left: 25px; border-left: 1px solid #32423a; }
.timeline-entry { position: relative; padding: 0 0 22px; }
.timeline-entry::before { content: ""; position: absolute; left: -30px; top: 4px; width: 9px; height: 9px; background: var(--surface); border: 2px solid var(--green); transform: rotate(45deg); }
.timeline-entry time { color: var(--muted-2); font: 9px var(--mono); }
.timeline-entry h3 { font-size: 13px; margin: 6px 0 4px; }
.timeline-entry p { color: var(--muted); font: 10px var(--mono); margin: 0; }

.dialog { color: var(--text); background: #0e1612; border: 1px solid #4a5c51; padding: 0; width: min(480px,calc(100% - 30px)); box-shadow: 0 30px 100px #000; }
.dialog::backdrop { background: #000b; backdrop-filter: blur(5px); }
.dialog form { padding: 28px; }
.dialog h2 { margin: 12px 0 8px; }
.dialog p { color: var(--muted); line-height: 1.55; font-size: 12px; }
.dialog label { margin-top: 20px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 24px; }
.toast-region { position: fixed; z-index: 100; right: 18px; bottom: 18px; display: grid; gap: 8px; max-width: min(390px,calc(100% - 36px)); }
.toast { background: #142019; border: 1px solid #3b5545; padding: 13px 16px; box-shadow: 0 16px 50px #000b; font-size: 12px; animation: reveal .18s; }
.toast.is-error { border-color: #7c383b; background: #281517; color: #ffbfbc; }

@media (max-width: 1180px) {
  .grid--4 { grid-template-columns: repeat(2,1fr); }
  .action-grid { grid-template-columns: repeat(3,1fr); }
  .quick-settings, .catalog-grid { grid-template-columns: repeat(3,1fr); }
  .world-layout { grid-template-columns: 1fr; }
  .world-side { grid-template-columns: repeat(2,1fr); }
  .event-layout { grid-template-columns: 1fr; }
  .event-summary { grid-template-columns: repeat(3,1fr); }
  .admin-hero { grid-template-columns:1fr; }
  .admin-favorites { grid-template-columns:repeat(3,1fr); }
  .admin-studio { grid-template-columns:180px minmax(260px,.8fr) minmax(360px,1.2fr); }
  .communication-layout { grid-template-columns:1fr; }
  .notification-preview-card { position: static; }
  .communication-status { grid-template-columns:repeat(3,1fr); }
  .communication-status > div:first-child { grid-column:1/-1; }
}
@media (max-width: 820px) {
  :root { --sidebar: 0px; }
  .app-shell { display: block; }
  .sidebar { transform: translateX(-100%); transition: transform .2s; width: 248px; box-shadow: 20px 0 60px #000; }
  .sidebar.is-open { transform: translateX(0); }
  .workspace { grid-column: 1; }
  .mobile-menu { display: block; border: 1px solid var(--line); background: var(--surface); color: var(--text); width: 39px; height: 39px; margin-right: 12px; }
  .topbar { padding: 15px 18px; justify-content: flex-start; }
  .topbar-status { margin-left: auto; }
  .topbar-status time { display: none; }
  .content { padding: 22px 16px 50px; }
  .login-stage { padding: 30px 24px; }
  .brand-lockup--login { margin-bottom: 54px; }
  .login-grid { grid-template-columns: 1fr; }
  .login-copy { display: none; }
  .login-card { width: min(460px,100%); margin: auto; }
  .grid--3, .grid--2, .split-layout { grid-template-columns: 1fr; }
  .mechanics-grid { grid-template-columns:1fr; }
  .action-grid, .quick-settings, .catalog-grid { grid-template-columns: repeat(2,1fr); }
  .settings-summary { grid-template-columns: repeat(3,1fr); }
  .settings-summary > div:first-child { grid-column: 1/-1; }
  .setting-card { grid-template-columns: 1fr; }
  .world-side { grid-template-columns: 1fr; }
  .capability-groups { grid-template-columns:1fr; }
  .admin-studio { grid-template-columns:1fr; }
  .admin-groups { position:static;grid-template-columns:repeat(3,minmax(0,1fr)); }
  .admin-command-list { max-height:430px; }
  .admin-form-pane { position:static; }
  .extension-grid { grid-template-columns:1fr; }
  .live-check-details ol { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .event-card { grid-template-columns: 80px 30px 1fr; }
  .event-card > .badge { grid-column: 3; }
  .log-head, .log-row { grid-template-columns: 110px 1fr; }
  .log-head > :nth-child(2), .log-head > :nth-child(4), .log-row > :nth-child(2), .log-row > :nth-child(4) { display: none; }
  .map-card { min-height: 540px; }
}
@media (max-width: 520px) {
  .grid--4, .action-grid, .quick-settings, .catalog-grid { grid-template-columns: 1fr; }
  .topbar-status small { display: none; }
  .topbar h1 { font-size: 18px; }
  .section-head { align-items: start; flex-direction: column; }
  .login-view { padding: 0; }
  .login-stage { min-height: 100vh; border: 0; }
  .login-card { padding: 26px 21px; }
  .hero-meta { display: grid; gap: 12px; }
  .settings-summary { grid-template-columns: 1fr; }
  .settings-summary > div:first-child { grid-column: auto; }
  .map-card { min-height: 430px; }
  .map-toolbar { left:8px;right:8px;top:8px;display:grid; }
  .layer-panel--wrap { max-width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
  .map-layer-toggle span { padding:6px 4px;text-align:center; }
  .map-zoom { max-width:100%;overflow-x:auto; }
  .map-legend { left:8px;right:8px;bottom:8px;justify-content:space-between;gap:5px; }
  .capability-row { grid-template-columns:1fr; }
  .admin-favorites { grid-template-columns:repeat(2,1fr); }
  .admin-groups { grid-template-columns:1fr 1fr; }
  .admin-structured-form,.extension-form { grid-template-columns:1fr; }
  .admin-structured-form > *,.extension-form > * { grid-column:1!important; }
  .extension-summary { grid-template-columns:repeat(2,1fr); }
  .capability-flags { display:flex;justify-items:start;justify-content:flex-start;flex-wrap:wrap; }
  .communication-status,.message-choice-grid,.variable-palette,.live-check-details ol { grid-template-columns:1fr; }
  .native-notification-list .entity-row { grid-template-columns:6px 1fr; }
  .native-notification-list .entity-row > div:last-child { grid-column:2;justify-content:flex-start; }
  .communication-status > div:first-child { grid-column:auto; }
  .palette-title { align-items:start;flex-direction:column; }
}
