.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--panel-bg:#10131ce6;--panel-bg-solid:#10131c;--panel-border:#ffffff17;--panel-header:#ffffff0a;--text:#e4e6eb;--muted:#8e97a8;--accent:#ffe08a;--accent-dim:#ffe08a2e;--danger:#e86b6b;--ok:#7cc47c;--mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace}html,body,#app{background:#0b0e14;width:100%;height:100%;margin:0;overflow:hidden}#world{position:absolute;inset:0}#hud{pointer-events:none;position:absolute;inset:0}.hud-root{pointer-events:none;color:var(--text);-webkit-user-select:none;user-select:none;font:12.5px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;position:absolute;inset:0}.hud-root button,.hud-root input,.hud-root select{font:inherit;color:inherit}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:11px}.danger{color:var(--danger)}.ok{color:var(--ok)}img.pixel,canvas.pixel{image-rendering:pixelated;image-rendering:crisp-edges}.icon-glyph{text-align:center;min-width:14px;display:inline-block}.hud-panel{pointer-events:auto;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:6px;box-shadow:0 4px 14px #0000004d}.hud-panel-header{background:var(--panel-header);border-bottom:1px solid var(--panel-border);border-radius:6px 6px 0 0;align-items:center;gap:6px;padding:5px 8px;display:flex}.hud-panel.collapsed .hud-panel-header{border-bottom:none;border-radius:6px}.hud-panel-title{letter-spacing:.04em;text-transform:uppercase;color:#cfd5df;white-space:nowrap;flex:1;margin:0;font-size:12px;font-weight:600}.hud-panel-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.hud-panel-body{padding:8px 10px}.icon-btn,.text-btn,.speed-btn,.tool-btn,.chip-btn,.tab,.primary-btn,.entity-link,.faction-name{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px}.icon-btn{color:var(--muted);padding:0 4px}.icon-btn:hover,.text-btn:hover{color:var(--text);background:#ffffff12}.text-btn{color:#c9cfda;border-color:var(--panel-border);padding:2px 7px}.text-btn.active{border-color:var(--accent);color:var(--accent)}.text-btn:disabled,.tool-btn:disabled,.speed-btn:disabled{opacity:.35;cursor:default}.primary-btn{background:var(--accent);padding:5px 14px}.hud-root .primary-btn{color:#1a1c2c;font-weight:600}.hud-root .entity-link{color:#9ad1ff;align-items:center;gap:4px;padding:0 2px;display:inline-flex}.hud-root .entity-link:hover{text-decoration:underline}.swatch{border:1px solid #00000080;border-radius:2px;width:10px;height:10px;display:inline-block}.swatch.big{vertical-align:-2px;border-width:2px;width:14px;height:14px;margin-right:6px}.topbar{align-items:center;gap:18px;height:38px;padding:0 12px;display:flex;position:absolute;top:8px;left:8px;right:8px}.topbar-title{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700}.topbar-date{min-width:190px}.topbar-date .phase{color:var(--accent)}.topbar-date .phase.dawn,.topbar-date .phase.dusk{color:#ff9f5a}.topbar-date .phase.night{color:#9ab8ff}.topbar-stats{gap:14px;display:flex}.stat{align-items:center;gap:4px;display:inline-flex}.stat.war{color:var(--danger)}.speed-group{gap:2px;display:flex}.speed-btn{border-color:var(--panel-border);color:#c9cfda;font-family:var(--mono);padding:2px 8px}.speed-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.skip-progress{border:1px solid var(--panel-border);text-align:center;border-radius:4px;width:150px;height:18px;font-size:11px;position:relative;overflow:hidden}.skip-progress .skip-fill{background:var(--accent-dim);position:absolute;inset:0 auto 0 0}.skip-progress span{position:relative}.topbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.perf{color:var(--muted);margin-right:8px}.hud-left{flex-direction:column;width:270px;max-height:calc(100% - 300px);display:flex;position:absolute;top:56px;left:8px}.hud-right{pointer-events:none;flex-direction:column;gap:8px;width:330px;display:flex;position:absolute;top:56px;bottom:252px;right:8px}.hud-right>*{flex:0 auto;min-height:0}.hud-bottom{pointer-events:none;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:8px;left:8px;right:8px}.hud-bottom-left{flex:0 500px;min-width:0}.hud-bottom-center{flex:1;justify-content:center;display:flex}.hud-bottom-right{flex:none}.status-area{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:54px;left:50%;transform:translate(-50%)}.banner{align-items:center;gap:8px;padding:5px 12px;display:flex}.banner.error{border-color:var(--danger);max-width:640px}.banner.paused{color:var(--muted);pointer-events:none}.factions .hud-panel-body{max-height:360px;overflow-y:auto}.faction-list{margin:0;padding:0;list-style:none}.faction-row{border-bottom:1px solid #ffffff0d;padding:3px 0}.faction-row:last-child{border-bottom:none}.faction-main{align-items:center;gap:6px;display:flex}.faction-name{text-align:left;flex:1;align-items:center;gap:6px;min-width:0;padding:1px 2px;font-weight:600;display:inline-flex}.faction-name:hover{background:#ffffff0f}.faction-war{color:var(--danger);padding-left:22px;font-size:11px}.faction-details{padding:2px 0 2px 22px;font-size:11.5px}.rel-row{justify-content:space-between;display:flex}.inspector{flex-direction:column;min-height:0;max-height:100%;display:flex}.inspector>.hud-panel-body{min-height:0;overflow-y:auto}.insp-head{align-items:flex-start;gap:10px;margin-bottom:6px;display:flex}.portrait{border:1px solid var(--panel-border);background:#ffffff0a;border-radius:4px;justify-content:center;align-items:center;width:56px;min-height:56px;font-size:26px;display:flex}.portrait img{max-width:56px;max-height:80px}.insp-name{font-size:15px;font-weight:600}.insp-section{margin-top:8px}.insp-section h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 3px;font-size:10.5px;font-weight:600}.kv-row{gap:8px;padding:1px 0;display:flex}.kv-label{color:var(--muted);flex:0 0 82px}.kv-value{flex-wrap:wrap;flex:1;align-items:center;gap:2px 6px;display:flex}.rel{margin-left:auto}.rel.pos{color:var(--ok)}.rel.neg{color:var(--danger)}.chips{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.chip{background:#ffffff12;border-radius:8px;padding:0 6px;font-size:11px}.link-list{flex-wrap:wrap;gap:2px 6px;display:inline-flex}.stock-list{flex-wrap:wrap;gap:4px 10px;display:flex}.stock-item{align-items:center;gap:3px;display:inline-flex}.bar-row{align-items:center;gap:6px;padding:1px 0;display:flex}.bar-label{color:var(--muted);flex:0 0 82px}.bar-track{background:#ffffff14;border-radius:3px;flex:1;height:7px;position:relative;overflow:hidden}.bar-fill{position:absolute;top:0;bottom:0;left:0}.bar-mid{background:#ffffff4d;width:1px;position:absolute;top:0;bottom:0;left:50%}.bar-text{text-align:right;flex:0 0 38px;font-size:11px}.tabs{border-bottom:1px solid var(--panel-border);gap:2px;margin-bottom:8px;display:flex}.tabs.small{margin-bottom:4px}.tab{color:var(--muted);border-radius:4px 4px 0 0;padding:3px 10px}.tab.active{color:var(--accent);border-color:var(--panel-border);background:#ffffff0a;border-bottom-color:#0000}.explain{white-space:pre-wrap;font-family:var(--mono);-webkit-user-select:text;user-select:text;max-height:420px;margin:6px 0 0;font-size:11px;overflow:auto}.chronicle .hud-panel-body{padding:4px 6px}.chip-btn{border:1px solid;border-radius:8px;padding:0 4px;font-size:10px;line-height:15px}.chronicle .hud-panel-actions{flex-wrap:nowrap;gap:2px}.chronicle .hud-panel-actions .text-btn{padding:0 5px;font-size:11px}.chip-btn.off{opacity:.35}.chronicle-list{min-height:40px;max-height:190px;margin:0;padding:0;list-style:none;overflow-y:auto}.chronicle-entry{cursor:pointer;border-radius:3px;align-items:baseline;gap:6px;padding:2px 4px;display:flex}.chronicle-entry:hover{background:#ffffff0f}.chronicle-entry .dot{border-radius:50%;flex:0 0 7px;height:7px;transform:translateY(-1px)}.chronicle-entry .year{color:var(--muted);flex:0 0 38px;font-size:11px}.chronicle-entry.sev-3 .text{color:#fff;font-weight:600}.chronicle-entry.sev-0 .text{color:var(--muted)}.god-toolbar{gap:2px;padding:4px;display:flex}.tool-btn{color:#c9cfda;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;display:flex}.tool-btn:hover:not(:disabled){background:#ffffff14}.tool-btn.active{background:var(--accent-dim);border-color:var(--accent)}.tool-btn img{width:24px;height:24px}.minimap .hud-panel-body{padding:6px}.minimap-frame{cursor:crosshair;background:#0b0e14;position:relative}.minimap-frame canvas{display:block}.minimap-view{pointer-events:none;border:1px solid #fff;position:absolute;box-shadow:0 0 0 1px #0009}.modal-backdrop{pointer-events:auto;background:#05070c73;place-items:center;display:grid;position:absolute;inset:0}.modal{background:var(--panel-bg-solid)}.modal.menu{width:560px;max-width:calc(100% - 32px)}.modal.stats{width:940px;max-width:calc(100% - 32px)}.menu-form{flex-direction:column;gap:10px;display:flex}.menu-form label:not(.inline){color:var(--muted);flex-direction:column;gap:3px;display:flex}.menu-form input[type=number],.menu-form select{border:1px solid var(--panel-border);color:var(--text);background:#ffffff0f;border-radius:4px;width:180px;padding:4px 6px}.menu-form .row,.row{align-items:center;gap:6px;display:flex}label.inline{cursor:pointer;align-items:center;gap:6px;display:flex}fieldset{border:1px solid var(--panel-border);border-radius:4px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}fieldset.radio-row{flex-direction:row;gap:16px}legend{color:var(--muted);padding:0 4px}.menu-actions{align-items:center;gap:6px;margin-top:8px;display:flex}.saves-table{border-collapse:collapse;width:100%}.saves-table td{border-bottom:1px solid #ffffff0d;padding:4px}.slot-name{white-space:nowrap;font-weight:600}.slot-actions{text-align:right;white-space:nowrap}.error-text{color:var(--danger);margin-top:6px}.about p{margin:0 0 8px}.chart-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.chart-placeholder{place-items:center;display:grid}.chart .u-title{color:#cfd5df;font-size:12px;font-weight:600}.chart .u-legend{color:var(--muted);font-size:11px}.debug{min-height:0;max-height:100%;overflow-y:auto}.debug-grid{grid-template-columns:auto 1fr;gap:1px 12px;margin-bottom:6px;font-size:11.5px;display:grid}.systems-table{border-collapse:collapse;width:100%;font-size:11px}.systems-table th{text-align:left;color:var(--muted);font-weight:500}.systems-table td,.systems-table th{padding:0 4px}.systems-table tr.disabled{opacity:.45}.debug-invariants,.debug-traces{flex-direction:column;gap:3px;margin-top:8px;display:flex}.violations{max-height:140px;margin:0;padding-left:16px;overflow:auto}
