.analytics-page{--analysis-ink:#233e64;--analysis-muted:#7b8fae}
.analytics-live-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;background:#fff;border:1px solid var(--border);border-radius:12px;margin-bottom:24px}
.analytics-live-bar>div:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}.analytics-live-bar strong{font-size:14px;color:var(--analysis-ink)}.analytics-live-bar small{color:var(--analysis-muted);font-size:11px}.analytics-actions{display:flex;gap:8px;flex-shrink:0}.analytics-actions .button{font-size:12px;min-height:40px}
.analytics-network-panel{overflow:hidden;margin-bottom:22px}.analytics-network-panel>.panel-heading{align-items:flex-start;padding-bottom:16px}.analytics-network-panel .panel-heading p{font-size:12px;line-height:1.8;color:var(--analysis-muted);margin:8px 0 0}.analytics-network-panel h2{font-size:24px}.analytics-network-panel #analytics-expand{white-space:nowrap;font-size:12px}
.analytics-legend{display:flex;flex-wrap:wrap;gap:8px;padding:0 24px 18px}.analytics-legend button{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #dde6f3;border-radius:7px;background:#fff;color:#4f6483;font-size:10px;min-height:34px}.analytics-legend button i{width:8px;height:8px;border-radius:50%;background:var(--company-color)}.analytics-legend button[aria-pressed=false]{opacity:.45;background:#f4f6fa;text-decoration:line-through}.analytics-legend button:focus-visible{outline:2px solid #315fe9;outline-offset:2px}
.analytics-network-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 24px;border-top:1px solid #edf1f7;background:#fbfcff;font-size:11px;color:#6f82a0}.analytics-network-tools label{display:flex;align-items:center;gap:6px}.analytics-network-tools input{accent-color:#315fe9}.analytics-network-tools select,.analytics-chart-panel select{padding:8px 10px;border:1px solid #dce5f3;background:white;border-radius:7px;font:inherit;color:#34547c;max-width:100%}.analytics-zoom{display:flex;gap:5px}.analytics-zoom button{min-width:30px;height:30px;padding:0 8px;border:1px solid #dce5f3;border-radius:6px;background:#fff;color:#4268a0;font-size:12px}
.analytics-network-stage{position:relative;height:480px;overflow:hidden;border-top:1px solid #e4ecf7;border-bottom:1px solid #e4ecf7}.analytics-network-stage canvas{display:block;width:100%;height:100%;cursor:grab}.analytics-network-stage canvas:active{cursor:grabbing}
.analytics-replay{padding:18px 24px 14px;background:#fff}.analytics-replay-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.analytics-replay-heading strong{font-size:16px;color:#315fe9;font-variant-numeric:tabular-nums}.analytics-replay-heading>span{font-size:11px;color:#8193ae}.analytics-replay-heading>div{margin-left:auto;display:flex;gap:7px}.analytics-replay-heading .button{min-height:33px;padding:7px 11px;font-size:11px}#analytics-week{width:100%;accent-color:#315fe9;cursor:pointer;display:block;margin:7px 0;height:22px}.analytics-time-limits{display:flex;justify-content:space-between;font-size:10px;color:#8a9bb3}
.analytics-inspector{padding:12px 24px;border-top:1px solid #edf1f7;background:#fafcff;display:flex;align-items:center;gap:18px}.analytics-inspector form{display:flex;align-items:center;gap:6px;flex-shrink:0}.analytics-inspector label{font-size:11px;color:#607999}.analytics-inspector input{width:90px;padding:7px;border:1px solid #dce5f3;border-radius:6px;color:#315077;font:inherit;font-size:11px}.analytics-inspector .button{padding:6px 9px;min-height:30px;font-size:11px}.analytics-inspector p{font-size:11px;line-height:1.8;color:#657d9e;margin:0}.analytics-network-note{margin:0;padding:10px 24px 16px;font-size:10px;color:#8c9cb4;line-height:1.8}
.analytics-population-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0 0 24px}.analytics-population-stats article{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:8px}.analytics-population-stats span{font-size:12px;color:#6f84a3}.analytics-population-stats strong{font-size:25px;letter-spacing:-.7px;color:#294774;font-variant-numeric:tabular-nums}.analytics-population-stats small{font-size:10px;color:#98a6bb}
.analytics-plots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.analytics-chart-panel{min-width:0;overflow:hidden}.analytics-chart-panel .panel-heading{padding:22px 22px 10px;gap:14px}.analytics-chart-panel h2{font-size:20px}.analytics-chart-panel select{font-size:11px;max-width:175px}.analytics-chart{position:relative;height:265px;margin:0 12px 8px}.analytics-chart svg{display:block;width:100%;height:100%;cursor:crosshair;overflow:visible}.analytics-chart-tooltip{position:absolute;top:12px;left:65px;z-index:3;white-space:pre-line;pointer-events:none;font-size:10px;line-height:1.8;background:#fffffff2;border:1px solid #dce5f4;border-radius:8px;padding:10px 13px;box-shadow:0 4px 18px #1b365d12;color:#3c577d;max-width:calc(100% - 80px)}.analytics-chart-note{font-size:11px;color:#8a9ab2;line-height:1.9;margin:14px 0 22px}.analytics-table-panel{overflow:hidden;margin-bottom:24px}.analytics-table-wrap{overflow:auto;padding:0 24px 20px}.analytics-table-panel table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}.analytics-table-panel th,.analytics-table-panel td{padding:14px 12px;text-align:right;border-bottom:1px solid #edf1f7;color:#536c90;font-variant-numeric:tabular-nums}.analytics-table-panel th{font-size:10px;color:#8b9bb3;font-weight:500}.analytics-table-panel :is(th,td):first-child{text-align:left}.analytics-table-panel td i{display:inline-block;width:7px;height:7px;background:var(--company-color);border-radius:50%;margin-right:9px}.analytics-table-panel td small{color:#9aa9bd;margin-left:7px;font-size:9px}
body.analytics-expanded{overflow:hidden}
@media(max-width:980px){.analytics-plots{grid-template-columns:1fr}.analytics-live-bar{align-items:flex-start}.analytics-live-bar>div:first-child{flex-direction:column;gap:6px}.analytics-inspector{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-width:600px){.page-navigation a{padding:11px 8px;gap:5px}.page-navigation .page-nav-icon{display:none}.page-navigation small{font-size:8px}.analytics-live-bar{padding:15px;flex-direction:column;gap:12px;margin-bottom:16px}.analytics-actions{width:100%}.analytics-actions .button{flex:1}.analytics-network-panel>.panel-heading{padding:18px 16px 14px;gap:8px}.analytics-network-panel h2{font-size:21px}.analytics-network-panel .panel-heading p{font-size:10px}.analytics-network-panel .eyebrow{font-size:7px;letter-spacing:1px}.analytics-network-panel #analytics-expand{padding:6px 2px;font-size:10px}.analytics-legend{padding:0 16px 12px;gap:6px}.analytics-legend button{font-size:9px;padding:5px 7px}.analytics-network-tools{padding:10px 16px;gap:8px;font-size:10px}.analytics-zoom{margin-left:auto}.analytics-replay{padding:14px 16px 12px}.analytics-replay-heading{gap:7px}.analytics-replay-heading strong{font-size:14px}.analytics-replay-heading>span{font-size:9px}.analytics-replay-heading>div{gap:3px}.analytics-replay-heading .button{font-size:10px;padding:6px 7px}.analytics-inspector{padding:12px 16px}.analytics-network-note{padding:8px 16px 14px}.analytics-population-stats{gap:8px;margin-bottom:16px}.analytics-population-stats article{padding:12px 9px}.analytics-population-stats span{font-size:10px}.analytics-population-stats strong{font-size:20px}.analytics-population-stats small{font-size:8px;line-height:1.5}.analytics-chart-panel .panel-heading{padding:18px 16px 10px}.analytics-chart-panel h2{font-size:18px}.analytics-chart-panel select{max-width:150px;font-size:10px}.analytics-chart{margin:0 4px 8px;height:240px}.analytics-table-wrap{padding:0 12px 14px}.analytics-table-panel td{font-size:11px}}

.analytics-chart-legend{display:flex;flex-wrap:wrap;gap:10px 20px;padding:0 2px 16px;color:#6b80a0;font-size:10px}.analytics-chart-legend span{display:flex;align-items:center;gap:7px}.analytics-chart-legend i{width:16px;height:2px;background:var(--company-color);border-radius:2px}

/* The network is a dark, high-contrast observatory within the light workspace. */
.analytics-network-panel{background:#0b172a;border-color:#233853;color:#d5e5f7;box-shadow:0 12px 32px #152d4814}
.analytics-network-panel>.panel-heading{padding:24px 26px 16px}
.analytics-network-panel h2{color:#edf5ff;font-size:27px;letter-spacing:-.6px}
.analytics-network-panel .eyebrow{color:#69c3ee;font-size:9px;letter-spacing:2px}
.analytics-network-panel .panel-heading p{color:#8da5c1;font-size:11px;margin-top:7px}
.analytics-network-panel .button.quiet{color:#adcae6;border-color:#30455e;background:#12223a}
.analytics-network-panel .button.primary-outline{color:#8acfff;border-color:#3c6790;background:#132c46}
.analytics-legend{padding:0 26px 18px;gap:7px}
.analytics-legend button{background:#11213a;border-color:#2a3d56;color:#bbcee5;font-size:10px;min-height:31px}
.analytics-legend button i{box-shadow:none}
.analytics-legend button[aria-pressed=false]{background:#0b1424;opacity:.4}
.analytics-legend button:focus-visible{outline-color:#85d7ff}
.analytics-network-tools{background:#102039;border-color:#263b54;color:#9db5cf;padding:10px 26px;gap:13px;font-size:11px}
.analytics-layout-switch{display:flex;padding:3px;border:1px solid #2d4461;border-radius:7px;background:#09172a}
.analytics-layout-switch button{border:0;background:transparent;color:#819dbd;padding:6px 10px;border-radius:4px;font:inherit;white-space:nowrap}
.analytics-layout-switch button[aria-pressed=true]{background:#24456b;color:#d9f3ff}
.analytics-network-tools select{background:#132840;border-color:#304967;color:#c7dbef;font-size:11px;padding:8px}
.analytics-network-tools input{accent-color:#66c7f4}
.analytics-zoom{margin-left:auto}
.analytics-zoom button{background:#142943;border-color:#304865;color:#bad7f4}
.analytics-replay{background:#102039;padding:16px 26px 14px}
.analytics-replay-heading strong{color:#bce9ff}
.analytics-replay-heading>span,.analytics-time-limits{color:#7895b5}
#analytics-week{accent-color:#7ccdf6;height:18px}
.analytics-inspector{border-color:#233852;background:#0d1b30;color:#91abc8;padding:12px 26px}
.analytics-inspector label,.analytics-inspector p{color:#91abc8}
.analytics-inspector input{background:#13243b;border-color:#304560;color:#d0e4fa}
.analytics-network-note{color:#6885a4;padding:10px 26px 17px}
.analytics-legend button i{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;font:600 9px ui-monospace,monospace;font-style:normal;color:#fff;flex-shrink:0}
@media(max-width:600px){.analytics-legend button i{width:12px;height:12px;font-size:8px}.analytics-network-tools .analytics-zoom{gap:3px}.analytics-network-tools .analytics-zoom button{min-width:25px;padding:0 5px}}
.analytics-social-week-note{color:#84a5bf;padding:0 26px 14px;font-size:10px;margin:0}
.analytics-agent-friends{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:7px}.analytics-agent-friends span{flex-basis:100%;font-size:10px;color:#72c6ea}
.analytics-agent-friends button{background:#162c46;border:1px solid #365876;border-radius:5px;color:#b4dcf5;font:10px ui-monospace,monospace;padding:5px 7px}
#analytics-social-upgrade{margin-bottom:18px}#analytics-social-upgrade small{display:block;margin-top:8px}
[data-social-only][hidden]{display:none!important}
#analytics-social-balance-upgrade{margin-bottom:18px}#analytics-social-balance-upgrade small{display:block;margin-top:8px}
.profile-country-search{display:block;color:#98b9d2;font-size:10px;margin-bottom:9px}
.profile-country-search select{display:block;width:100%;min-width:0;margin-top:7px;padding:8px;background:#142b40;color:#c5e0f1;border:1px solid #315371;border-radius:6px;font:11px system-ui}
.profile-country-summary{color:#799dbb;font-size:9px;line-height:1.6;margin:8px 0 13px}
.profile-country-match{font-size:10px;color:#9cd6f2;margin:8px 0}.profile-country-match b{font-weight:500}
.profile-breakdown .profile-share-row{display:grid;grid-template-columns:1fr auto;gap:4px;font-size:9px;color:#8eacc6;margin:8px 0}
.profile-breakdown details summary{font-size:9px;color:#8fc9e4;cursor:pointer;margin:10px 0}

/* Read-only member descriptions beside the shared graph. */
.analytics-network-body{display:grid;grid-template-columns:minmax(0,1fr) 278px;min-width:0}
.analytics-network-body:has(.community-profiles[hidden]){grid-template-columns:minmax(0,1fr)}
.analytics-network-body>.analytics-network-stage{min-width:0}
.community-profiles{min-width:0;max-height:570px;overflow:auto;border-left:1px solid #263b54;border-top:1px solid #263b54;border-bottom:1px solid #263b54;background:#0b1b2e;padding:18px 16px;color:#b7cfe3;scrollbar-width:thin;scrollbar-color:#2c4c69 #0b1b2e}
.community-profiles-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.community-profiles-heading>div>span{display:block;font-size:7px;letter-spacing:1.3px;color:#5fa9cf}.community-profiles-heading h3{margin:5px 0 0;font-size:17px;color:#e0eef8;letter-spacing:.4px}.community-profiles-heading button{border:0;background:none;color:#85ceef;font-size:10px;padding:5px 0;white-space:nowrap;cursor:pointer}.community-profiles-heading button[hidden]{display:none}
.community-profiles-week{font-size:9px;color:#789ab6;margin:9px 0 14px}.community-profile-list{display:flex;flex-direction:column;gap:10px}
.community-profile-card{display:block;text-align:left;width:100%;min-width:0;margin:0;padding:12px;border:1px solid #28465e;border-radius:8px;background:linear-gradient(130deg,#142b40,#102237);color:#adcadf;font:inherit;box-sizing:border-box;overflow-wrap:anywhere}.community-profile-card:is(button){cursor:pointer;transition:border-color .15s,background .15s}.community-profile-card:is(button):hover{border-color:var(--profile-color);background:#183249}.community-profile-card:focus-visible,.community-profiles-heading button:focus-visible{outline:2px solid #89d5fb;outline-offset:2px}
.profile-card-meta{display:flex;align-items:center;justify-content:space-between;gap:5px;color:#7f9fba;font-size:8px;line-height:1.6}.profile-card-meta>span:first-child{color:var(--profile-color)}.community-profile-card h4{color:#dfedf8;font-size:14px;line-height:1.5;margin:7px 0 5px;font-weight:600}.profile-attribute{font-size:9px;line-height:1.8;color:#93b5cf;margin:0}.profile-attribute>span{padding:0 3px;color:#557a96}
.profile-card-stats{display:grid;grid-template-columns:.9fr .8fr 1.15fr;gap:5px;margin:11px 0 7px}.profile-card-stats dt{font-size:8px;color:#7d9bb5;margin:0 0 5px}.profile-card-stats dd{font:15px ui-monospace,monospace;color:#d4eaf7;margin:0}.profile-card-stats small{font-size:9px;color:#91b0c7}.profile-card-caption{margin:0;color:#799cb7;font-size:8px;line-height:1.7}.profile-card-caption>span{float:right;color:#8ed0ed}
.community-profiles-note{font-size:8px;line-height:1.9;color:#6388a6;margin:12px 0 0}.profile-name-reason{color:#84a6c1;font-size:9px;line-height:1.8;border-top:1px solid #28445e;margin:12px 0;padding-top:10px}.profile-breakdown{margin:14px 0}.community-profile-card h5{font-size:10px;color:#accee4;font-weight:500;margin:0 0 9px}.profile-breakdown>div{display:grid;grid-template-columns:1fr auto;gap:4px;font-size:9px;color:#8eacc6;margin:8px 0}.profile-breakdown b{font-size:9px;color:#c2dceb;font-weight:500}.profile-breakdown i{grid-column:1/-1;display:block;height:3px;border-radius:3px;background:linear-gradient(to right,var(--profile-color) var(--share),#223d53 var(--share));opacity:.7}
.profile-extra-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px 8px;border-top:1px solid #29455d;padding-top:12px;font-size:8px;color:#7e9fb9}.profile-extra-stats b{display:block;color:#bcd9e9;font-size:12px;font-weight:500;margin-top:4px}.profile-subscriptions{border-top:1px solid #29455d;padding-top:12px;margin-top:14px}.profile-subscriptions p{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;color:#9cbdd4;margin:7px 0}.profile-subscriptions p>span{overflow-wrap:anywhere}.profile-subscriptions b{font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}.profile-subscriptions i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}
.is-expanded .analytics-network-body{flex:1;min-height:170px}.is-expanded .analytics-network-body>.analytics-network-stage{height:100%;min-height:0}.is-expanded .community-profiles{max-height:none;min-height:0}
@media(max-width:1200px){.analytics-network-body{grid-template-columns:minmax(0,1fr) 247px}.community-profiles{padding:15px 12px}.profile-card-stats dd{font-size:13px}}
@media(max-width:980px){.analytics-network-body{grid-template-columns:minmax(0,1fr)}.community-profiles{border-left:0;max-height:none;padding:16px}.community-profile-list{flex-direction:row;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x proximity}.community-profile-card{flex:0 0 245px;scroll-snap-align:start}.community-profiles.is-focused .community-profile-card{flex:1}.community-profiles.is-focused .community-profile-list{display:block}.community-profiles-note{max-width:540px}.is-expanded .community-profiles{display:none}.is-expanded .analytics-network-body{display:flex;flex-direction:column}}
@media(max-width:600px){.community-profiles{padding:14px 12px}.community-profiles-heading h3{font-size:16px}.community-profiles-week{margin:7px 0 10px}.community-profile-card{flex-basis:260px}.community-profiles.is-focused .community-profile-card{width:100%}.profile-card-stats dd{font-size:15px}}
/* ===== Network atlas (2026-10-26): a static stage, a fixed HUD band and a key band; no decoration ===== */
.analytics-network-stage{height:570px;border-color:#263b54;background:radial-gradient(ellipse at 50% 46%,#0d1c36 0,#091428 42%,#050b17 100%)}
.analytics-network-stage canvas{touch-action:pan-y}
.analytics-network-stage.is-zoomed canvas{touch-action:none}
.analytics-network-stage .analytics-network-effects{position:absolute;inset:0;pointer-events:none;cursor:inherit}
/* HUD: one fixed 52 px band (38 px on phones), so the layout box cannot flip from week to week. */
.analytics-network-hud{position:absolute;inset:8px 10px auto;z-index:1;height:52px;box-sizing:border-box;padding:6px 14px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;background:linear-gradient(180deg,#071222f2,#071222d9);border:1px solid #1b334d;border-radius:8px;pointer-events:none;color:#8fa7be}
.hud-week{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.hud-week strong{font:600 15px ui-monospace,"SF Mono",Menlo,monospace;color:#e4eef8;white-space:nowrap}
.hud-week small{font-size:7.5px;letter-spacing:1.2px;color:#647f99;white-space:nowrap}
.hud-story{margin:0;min-width:0;font-size:12px;line-height:1.42;color:#c9dbec;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:balance;word-break:keep-all}
.hud-story b{display:inline-block;margin-right:8px;padding:0 8px;border-radius:9px;background:#18293f;border:1px solid #34506e;color:#dbe8f5;font-size:10px;font-weight:600;line-height:16px;vertical-align:1px;white-space:nowrap}
.hud-story b:empty{display:none}
.analytics-network-counters{display:flex;gap:18px;text-align:right}
.analytics-network-counters>span{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.analytics-network-counters>span[hidden]{display:none}
/* Chinese keeps phrases whole and balances its two lines; English fills the first line (its amounts and places carry
   no-break spaces), which keeps every sentence within the two HUD lines at the owner's 1300×900. */
html[lang="en"] :is(.hud-story,.analytics-network-story-mobile){text-wrap:pretty}
.analytics-network-counters b{font:500 15px ui-monospace,"SF Mono",Menlo,monospace;color:#e4eef8;letter-spacing:0}
.analytics-network-counters small{font-size:8.5px;letter-spacing:.2px;color:#8fa7be;white-space:nowrap}
/* Bottom pill: an empty explicit layer, or a saturated spread layer with a way out. */
.analytics-network-empty{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:1;width:max-content;max-width:calc(100% - 32px);box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:6px 7px 6px 14px;background:#0c1d33f2;border:1px solid #2f4b69;border-radius:18px;font-size:11px;line-height:1.45;color:#b8cde2}
.analytics-network-empty[hidden],.analytics-network-empty button[hidden]{display:none}
.analytics-network-empty button{flex-shrink:0;background:#16304d;border:1px solid #3a6185;border-radius:12px;color:#d6ebfb;white-space:nowrap;font:inherit;padding:4px 10px;cursor:pointer}
.analytics-network-empty button:focus-visible{outline:2px solid #85d7ff;outline-offset:2px}
.analytics-network-status{position:absolute;top:auto;left:12px;bottom:12px;z-index:2;padding:6px 9px;background:#142d46e8;border:1px solid #365b7d;border-radius:6px;color:#d2e6f7;font-size:11px;pointer-events:none}
.analytics-network-status[hidden]{display:none}
/* Story strip: on phones the sentence sits under the stage and is never cut off. */
.analytics-network-story-mobile{display:none;margin:0;padding:10px 16px 11px;font-size:12.5px;line-height:1.55;color:#d3e2f1;background:#0a1729;border-bottom:1px solid #1e344d;text-wrap:balance;word-break:keep-all}
/* Key band: only the encodings on screen now; row 2 holds the Auto note and the tie counters. */
.analytics-network-key{display:flex;flex-direction:column;gap:7px;padding:10px 26px 11px;background:#0a1729;border-bottom:1px solid #1e344d;font-size:10px;line-height:1.4;color:#8fa7be}
.key-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;min-width:0}
.key-item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.key-item[hidden],.key-counters[hidden]{display:none}
.key-swatch{display:inline-block;flex-shrink:0}
.key-dot{width:3px;height:3px;background:#8aa3bd}
.key-spread{width:14px;height:6px;background:radial-gradient(circle at 3px 3px,#00e0e0 0 1.6px,transparent 2.1px),radial-gradient(circle at 11px 3px,#b3c8deaa 0 1.1px,transparent 1.5px)}
.key-aware{width:4px;height:4px;background:#b3c8de}
.key-disc{width:7px;height:7px;border-radius:50%;background:#55abf7;box-shadow:0 0 0 1px #06101f}
.key-paid{width:8px;height:8px;border-radius:50%;background:#55abf7;box-shadow:0 0 0 1.2px #fff,0 0 6px #55abf799}
.key-ribbon{width:22px;height:7px;background:linear-gradient(90deg,#55abf7d9,#55abf759);clip-path:polygon(0 0,100% 30%,100% 70%,0 100%)}
.key-hub{width:9px;height:9px;border-radius:50%;background:#55abf7;box-shadow:0 0 0 2px #0a1729,0 0 0 3px #55abf7;margin:0 2px}
.key-shade{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,#55abf766 0,#55abf726 55%,transparent 72%)}
.key-shade.is-grey{background:radial-gradient(circle,#6f8fb366 0,#6f8fb326 55%,transparent 72%)}
.key-arc{width:16px;height:7px;border-top:1px solid #86a8c8;border-radius:50% 50% 0 0;margin-top:5px}
.key-hq{width:7px;height:7px;border-radius:50%;border:1px solid #e4eef8}
.key-meta{color:#a9bed2}
#analytics-layer-note:empty{display:none}
.key-counters{display:inline-flex;flex-wrap:wrap;gap:4px 16px;margin-left:auto}
.key-count{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
.key-count b{font:500 11px ui-monospace,"SF Mono",Menlo,monospace;color:#c9dbec}
/* Legend chips: the hub colours, the viewer's company marked, companies out of the race dashed. */
.analytics-legend button{color:#d3e3f3}
.analytics-legend button i{width:16px;height:16px;border-radius:50%;background:var(--company-color);color:#06101f;font:700 9px var(--font);box-shadow:none}
.analytics-legend button.is-failed{border-style:dashed;border-color:#3d526a;background:#0b1626}
.analytics-legend button.is-failed i{background:transparent;border:1px dashed #6b7c91;color:#8fa7be}
.analytics-legend button.is-failed span{text-decoration:line-through;color:#8fa7be}
.analytics-legend button small{font-size:9px;color:#8fa7be}
.analytics-network-tools{gap:10px 12px}
.analytics-tools-view{display:flex;align-items:center;gap:10px;margin-left:auto}
.analytics-tools-view .analytics-zoom{margin-left:0}
.analytics-community-pick select{max-width:250px}
[data-legacy-only][hidden]{display:none!important}
/* Expand: the stage gets the height (at least 680 px at 1440×1000, 650 at 1300×900). The title row
   steps aside (its button stays at the top right), the chips take its place, the key wraps into two
   rows with the counters at the end, and the replay heading shares one row with the slider. */
#analytics-network-panel.is-expanded{position:fixed;inset:12px;z-index:1500;margin:0;display:flex;flex-direction:column;box-shadow:0 0 0 30px #071120ef}
#analytics-network-panel.is-expanded>.panel-heading{position:absolute;top:9px;right:22px;z-index:2;padding:0;align-items:center}
#analytics-network-panel.is-expanded>.panel-heading>div{display:none}
.is-expanded .panel-heading .eyebrow,.is-expanded .panel-heading p{display:none}
#analytics-network-panel.is-expanded h2{font-size:19px}
.is-expanded .analytics-legend{padding:10px 170px 8px 26px}
.is-expanded .analytics-network-tools{padding-top:7px;padding-bottom:7px}
.is-expanded .analytics-network-body{flex:1;min-height:170px}
.is-expanded .analytics-network-body>.analytics-network-stage{height:100%;min-height:0}
.is-expanded .analytics-network-key{flex-shrink:0;min-height:52px;box-sizing:border-box;flex-direction:row;flex-wrap:wrap;align-items:center;align-content:center;gap:4px 18px;padding-top:6px;padding-bottom:6px}
.is-expanded .key-row{display:contents}
.is-expanded .analytics-replay{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 18px;padding-top:7px;padding-bottom:7px}
.is-expanded .analytics-replay-heading{margin-bottom:0}
.is-expanded #analytics-week{margin:0}
.is-expanded .analytics-replay-heading .button{min-height:28px;padding:5px 10px}
.is-expanded .analytics-time-limits{display:none}
.is-expanded .analytics-legend button{min-height:27px;padding-top:4px;padding-bottom:4px}
.is-expanded .analytics-inspector,.is-expanded .analytics-network-note,.is-expanded .analytics-social-week-note{display:none}
/* Narrow pages: stage, sentence, key, then the community notes. */
@media(max-width:980px){
 .analytics-network-stage{height:520px}
 .analytics-network-panel:not(.is-expanded){display:flex;flex-direction:column}
 .analytics-network-panel:not(.is-expanded) .analytics-network-body{display:contents}
 .analytics-network-panel:not(.is-expanded) .analytics-network-stage{order:3}
 .analytics-network-story-mobile{order:4}.analytics-network-key{order:5}
 .analytics-network-panel:not(.is-expanded) .community-profiles{order:6}
 .analytics-replay,.analytics-inspector,.analytics-network-note,.analytics-social-week-note{order:7}
}
@media(max-width:600px){
 .analytics-network-stage{height:500px}
 .analytics-network-hud{inset:6px 6px auto;height:38px;padding:4px 10px;grid-template-columns:auto auto minmax(0,1fr);gap:9px}
 .hud-week strong{font-size:12.5px}
 .hud-week small{display:none}
 .hud-story{display:block}
 .hud-story span{display:none}
 .hud-story b{margin-right:0;font-size:9.5px;line-height:16px}
 .analytics-network-counters{justify-self:end;gap:10px}
 .analytics-network-counters>span+span{display:none}
 .analytics-network-counters b{font-size:12.5px}
 .analytics-network-counters small{font-size:8px}
 .analytics-network-story-mobile{display:block}
 .analytics-network-story-mobile:empty{display:none}
 .analytics-network-key{padding:9px 16px 10px;font-size:9.5px}
 .key-row{gap:5px 14px}
 /* An English item longer than the panel wraps instead of being cut (Expand keeps its one scrolling row). */
 html[lang="en"] .analytics-network-panel:not(.is-expanded) .key-item{white-space:normal}
 .key-counters{margin-left:0}
 .analytics-network-empty{font-size:10px;bottom:8px;max-width:calc(100% - 16px);padding:5px 5px 5px 11px}
 .analytics-network-status{left:8px;bottom:8px}
 .analytics-social-week-note{padding:0 16px 12px;font-size:9px;line-height:1.7}
 /* The community picker takes its own row, so its option reads in full; the zoom buttons join the last checkbox row. */
 .analytics-tools-view{display:contents}
 .analytics-tools-view .analytics-zoom{margin-left:auto}
 .analytics-community-pick{order:1;flex:1 1 100%;min-width:0}
 .analytics-community-pick select{width:100%;max-width:none}
 /* Phone Expand: about 600 px of stage. The title row, chips, checkboxes, the layout switch and the picker step aside;
    the Collapse button sits at the end of the tools row. The key is one row that scrolls sideways, fading at the right
    edge; it keeps the marks on the map. */
 #analytics-network-panel.is-expanded{inset:6px}
 #analytics-network-panel.is-expanded>.panel-heading{top:10px;right:12px}
 #analytics-network-panel.is-expanded #analytics-expand{min-height:0;height:30px;padding:0 9px}
 .is-expanded .analytics-legend,.is-expanded .analytics-network-tools label.analytics-check,.is-expanded .analytics-layout-switch,.is-expanded .analytics-community-pick{display:none}
 .is-expanded .analytics-network-tools{padding:6px 104px 6px 12px;flex-wrap:nowrap}
 .is-expanded .analytics-network-story-mobile{padding:7px 12px 8px;font-size:11.5px;line-height:1.45}
 .is-expanded .analytics-network-key{height:30px;min-height:0;padding:0 28px 0 12px;flex-wrap:nowrap;align-content:normal;gap:14px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-inline:12px 28px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent)}
 /* Every item of that row keeps its width (the gain clause too: it scrolls into view, it is never squeezed). */
 .is-expanded .analytics-network-key .key-item,.is-expanded .analytics-network-key .key-count,.is-expanded #analytics-gain-note{flex-shrink:0;scroll-snap-align:start}
 .is-expanded #analytics-gain-note{white-space:nowrap}
 .is-expanded .analytics-network-key :is([data-key="hub"],[data-key="shade"],[data-key="bar"],#analytics-layer-note){display:none}
 .is-expanded .key-counters{flex-wrap:nowrap;flex-shrink:0}
 .is-expanded .analytics-replay{display:block;padding:6px 12px 4px}
 .is-expanded .analytics-replay-heading{margin-bottom:0}
 .is-expanded .analytics-replay-heading>span{display:none}
}
/* ===== Network atlas, Phase 2: tooltip, company territories, card stripe and registered bar ===== */
.analytics-network-tip{position:absolute;left:0;top:0;z-index:3;width:max-content;min-width:168px;max-width:260px;box-sizing:border-box;padding:9px 11px 8px;background:#081528f5;border:1px solid #2b4866;border-radius:8px;font-size:11px;line-height:1.5;color:#cfe0f1;pointer-events:none;box-shadow:0 8px 24px #000a}
.analytics-network-tip[hidden]{display:none}
.analytics-network-tip strong{display:flex;align-items:center;flex-wrap:wrap;gap:0 6px;margin-bottom:4px;font-size:12px;font-weight:600;line-height:1.35;color:#f1f7ff}
.analytics-network-tip i{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%}
.analytics-network-tip .tip-row{display:flex;justify-content:space-between;gap:14px;font-variant-numeric:tabular-nums}
.analytics-network-tip .tip-row span{display:inline-flex;align-items:center;gap:6px;min-width:0;color:#9fb6cb}
.analytics-network-tip .tip-row b{font-weight:600;color:#e6f1fb;white-space:nowrap}
.analytics-network-tip small{display:block;margin:6px 0 2px;font-size:10px;color:#7f9bb7}
.analytics-network-tip p{margin:2px 0}
.analytics-network-tip .tip-muted{color:#8aa3bb}
.analytics-network-tip .tip-hint{margin-top:6px;font-size:10px;color:#7fc8ef}
.company-territories{margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid #22405b}
.company-territories[hidden]{display:none}
.company-territories h3{margin:0 0 9px;font-size:12px;font-weight:600;letter-spacing:.3px;color:#d6e6f3}
.company-territories ol{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.company-territories button{display:grid;grid-template-columns:9px minmax(0,auto) minmax(24px,1fr) auto;align-items:center;gap:2px 7px;width:100%;margin:0;padding:5px 6px;box-sizing:border-box;border:1px solid transparent;border-radius:6px;background:none;color:#a9c2d8;font:inherit;font-size:10px;text-align:left;cursor:pointer}
.company-territories button:hover,.company-territories button:focus-visible{background:#15304a}
.company-territories button:focus-visible{outline:2px solid #89d5fb;outline-offset:1px}
.company-territories button[aria-pressed=true]{background:#15304a;border-color:var(--race-color)}
.company-territories button>i{width:8px;height:8px;border-radius:50%;background:var(--race-color)}
.company-territories .race-name{font-weight:600;color:#e4eef8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.company-territories .race-bar{height:4px;border-radius:2px;background:#183049;overflow:hidden}
.company-territories .race-bar b{display:block;height:100%;border-radius:2px;background:var(--race-color)}
.company-territories .race-value{font:500 10px ui-monospace,"SF Mono",Menlo,monospace;color:#d6e8f6;white-space:nowrap}
.company-territories small{grid-column:2/-1;font-size:9px;line-height:1.35;color:#8aa7c1}
.company-territories button.is-failed{opacity:.75}
.company-territories button.is-failed>i{box-sizing:border-box;background:none;border:1px dashed #6b7c91}
.company-territories button.is-failed .race-name{color:#8fa7be;text-decoration:line-through}
.company-territories button.is-failed .race-value{grid-column:3/-1;font-family:inherit;color:#8fa7be}
.community-profile-card{border-left:3px solid var(--profile-color)}
.profile-company-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin:0 0 7px;font-size:8px;color:#7d9bb5}
.profile-company-bar i{display:flex;gap:1px;height:5px;border-radius:2px;background:#1d3348;overflow:hidden}
.profile-company-bar b{display:block;min-width:2px}
.profile-company-bar em{font:500 10px ui-monospace,"SF Mono",Menlo,monospace;font-style:normal;color:#c2dceb}
.key-bar{width:18px;height:3px;background:linear-gradient(90deg,#00e0e0 0 42%,#55abf7 42% 72%,#5de562 72%);box-shadow:0 0 0 1px #071222}
@media(max-width:600px){.analytics-network-tip{min-width:150px;max-width:236px;padding:7px 9px 6px;font-size:10px;line-height:1.45}.analytics-network-tip strong{font-size:11px}.analytics-network-tip small,.analytics-network-tip .tip-hint{font-size:9.5px}}
/* A sentence the two HUD lines would cut moves whole to the strip under the stage. */
.story-below .analytics-network-story-mobile{display:block}
.story-below .analytics-network-story-mobile:empty{display:none}
.story-below .hud-story span{display:none}
@media(max-width:980px){.company-territories{margin-bottom:14px}}
/* ===== Network atlas, Phases 3–4: company lanes, lights and operations keys ===== */
/* Company lanes: the range input lies over them (transparent track), so its handle is the playhead. */
.analytics-timeline{position:relative;margin:2px 0 0}
.analytics-timeline svg{display:block;width:100%;height:auto;overflow:visible}
.analytics-timeline #analytics-week{border:0;border-radius:0;box-shadow:none;min-width:0;position:absolute;top:0;left:calc(var(--timeline-left,84px) - 5px);width:calc(100% - var(--timeline-left,84px) - var(--timeline-right,10px) + 10px);height:var(--timeline-height,58px);margin:0;padding:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:pan-y}
.analytics-timeline #analytics-week::-webkit-slider-runnable-track{height:100%;background:transparent;border:0}
.analytics-timeline #analytics-week::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:calc(var(--timeline-height,58px) + 4px);margin-top:-2px;border-radius:3px;background:#bce9ff1f;border:1px solid #bce9ff80;box-shadow:0 0 8px #7ccdf633}
.analytics-timeline #analytics-week::-moz-range-track{background:transparent;border:0}
.analytics-timeline #analytics-week::-moz-range-thumb{width:10px;height:calc(var(--timeline-height,58px) + 4px);border-radius:3px;background:#bce9ff1f;border:1px solid #bce9ff80}
.analytics-timeline #analytics-week:focus-visible{outline:2px solid #85d7ff;outline-offset:3px}
.analytics-time-limits{align-items:center;gap:6px 14px;margin-top:6px}
.timeline-key{display:flex;flex-wrap:wrap;justify-content:center;gap:3px 14px;min-width:0;color:#7f9bb7}
.timeline-key>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.timeline-key>span[hidden]{display:none}
.timeline-key i{display:inline-block;flex-shrink:0}
.lane-area{width:14px;height:6px;background:linear-gradient(90deg,#55abf726,#55abf78c);clip-path:polygon(0 100%,100% 0,100% 100%)}
.lane-hire{width:1px;height:8px;background:#55abf7}
.time-limit{white-space:nowrap}
/* Key swatches for operations, lights and Geography's investor cities. */
.key-staff{width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 1.2px #55abf7}
.key-angel{width:7px;height:7px;background:#f2c14e;transform:rotate(45deg);box-shadow:0 0 0 .8px #5c4300}
.key-stage{width:14px;height:3px;border-radius:1px;background:repeating-linear-gradient(90deg,#f2c14e 0 3px,transparent 3px 4px)}
.key-hire{font:700 8px var(--font,system-ui);font-style:normal;color:#06101f;background:#55abf7;border-radius:6px;padding:0 4px;line-height:12px}
.key-round{font:600 8px var(--font,system-ui);font-style:normal;color:#f2c14e;border:1px solid #f2c14ed9;background:#211a07;border-radius:7px;padding:0 5px;line-height:11px}
.key-light{width:9px;height:9px;border-radius:50%;background:radial-gradient(circle,#f5fbff 0 1.6px,#55abf766 2.2px,transparent 4.5px)}
.key-opslight{width:16px;height:8px;background:radial-gradient(circle at 4px 4px,transparent 0 2.2px,#55abf7 2.4px 3.4px,transparent 3.6px),linear-gradient(45deg,transparent 40%,#f2c14e 40% 60%,transparent 60%) 10px 1px/6px 6px no-repeat}
.key-vc{width:7px;height:7px;border:1px solid #f2c14e;transform:rotate(45deg)}
.key-goldarc{width:16px;height:7px;border-top:1.6px solid #f2c14e;border-radius:50% 50% 0 0;margin-top:5px}
#analytics-gain-note{color:#c9dbec}
#analytics-gain-note:empty{display:none}
/* Profile cards (SOC2): staff and angels from the community. */
.profile-ops{display:flex;flex-wrap:wrap;gap:3px 12px;margin:0 0 7px;font-size:8px;color:#7d9bb5}
.profile-ops span{display:inline-flex;align-items:center;gap:5px}
.profile-ops b{font:500 10px ui-monospace,"SF Mono",Menlo,monospace;color:#c2dceb}
.profile-ops .ops-ring{width:6px;height:6px;border-radius:50%;box-shadow:0 0 0 1.1px #9fb6cb}
.profile-ops .ops-diamond{width:5px;height:5px;background:#f2c14e;transform:rotate(45deg)}
/* Expand keeps the stage tall: key items show their short label (the detail is in the inline view), the hub rows'
   own text (stage line, hire badge, round chip) labels itself, and the auto-layer explanation is left to the inline
   view like the other explanatory text (the chip, the "auto" select and the "· auto" counter still say it), so the
   gain clause never pushes the counters onto a fourth line at the owner's 1300×900. */
.is-expanded .key-detail{display:none}
.is-expanded .analytics-network-key :is([data-key="stage"],[data-key="hire"],[data-key="round"],#analytics-layer-note){display:none}
/* The gain clause and the lights item arrive with the previous record (after a seek, up to 2.5 s later): the band keeps
   room for its three lines (measured 63 px) so their arrival never shrinks the stage and cuts its tween. */
@media(min-width:601px){.is-expanded .analytics-network-key{min-height:63px}}
/* Expand: 6 px lanes beside the replay heading, the lane key under the heading (no extra height). */
.is-expanded .analytics-replay{grid-template-rows:auto auto;padding-top:5px;padding-bottom:5px}
.is-expanded .analytics-replay-heading{grid-column:1;grid-row:1}
.is-expanded .analytics-timeline{grid-column:2;grid-row:1/span 2;align-self:center;margin:0}
.is-expanded .analytics-time-limits{display:flex;grid-column:1;grid-row:2;margin:2px 0 0;justify-content:flex-start}
.is-expanded .analytics-time-limits .time-limit{display:none}
.is-expanded .timeline-key{justify-content:flex-start;flex-wrap:nowrap;gap:2px 10px;font-size:9px}
@media(max-width:600px){
 .analytics-time-limits{flex-wrap:wrap}
 .timeline-key{order:3;flex-basis:100%;justify-content:flex-start;gap:3px 10px;font-size:9px}
 .is-expanded .analytics-time-limits{display:flex;margin-top:3px}
 .is-expanded .timeline-key{max-width:none;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
 /* Phone Expand: the stage takes what the sentence strip leaves; room for two lines keeps it the same size from record
    to record, so a shorter sentence never resizes the stage and cuts the tween. */
 .is-expanded .analytics-network-story-mobile{min-height:calc(2.9em + 16px)}
}
