.mx{display:flex;flex-direction:column;gap:var(--cds-gap-xl);font-family:var(--font-anthropic-sans);font-variant-numeric:tabular-nums;
  --pos:var(--color-ok);--neu:var(--cds-chart-muted);--neg:var(--cds-chart-status-critical);--warn:var(--color-warn)}
.mx h2{font-size:var(--cds-font-size-heading);font-weight:var(--cds-font-weight-medium);margin:0}
.mx-eyebrow{font-size:var(--cds-font-size-caption);letter-spacing:.08em;text-transform:uppercase;opacity:.7}

/* Hero band */
.mx-hero{background:var(--color-fg);color:var(--color-bg);border-radius:calc(var(--cds-radius) * 2);padding:var(--cds-pad-xl);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--cds-gap-xl);position:relative;overflow:hidden}
@media (max-width:820px){.mx-hero{grid-template-columns:minmax(0,1fr)}}
.mx-hero::after{content:"";position:absolute;right:-6rem;top:-6rem;width:18rem;height:18rem;border-radius:50%;border:1px solid color-mix(in srgb,var(--color-bg) 18%,transparent);pointer-events:none}
.mx-hero h1{font-family:var(--font-anthropic-serif);font-weight:400;font-size:calc(var(--cds-font-size-title) * 1.35);line-height:1.1;margin:var(--cds-gap-xs) 0 0;text-wrap:balance}
.mx-take{margin:var(--cds-gap-md) 0 0;font-size:var(--cds-font-size-body);line-height:1.5;max-width:60ch;opacity:.88}
.mx-take b{font-weight:600;opacity:1}
.mx-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cds-gap-md) var(--cds-gap-lg);align-content:center;position:relative;z-index:1}
.mx-kpi{display:flex;flex-direction:column;gap:2px;border-top:1px solid color-mix(in srgb,var(--color-bg) 22%,transparent);padding-top:var(--cds-pad-sm);min-width:0}
.mx-kpi .v{font-family:var(--font-anthropic-serif);font-size:var(--cds-font-size-title);line-height:1.15}
.mx-kpi .s{font-size:var(--cds-font-size-body);font-weight:500;line-height:1.35;overflow-wrap:anywhere}
.mx-kpi .c{font-size:var(--cds-font-size-caption);opacity:.7}

/* Filter + alerts */
.mx-toolbar{display:flex;flex-wrap:wrap;gap:var(--cds-gap-sm) var(--cds-gap-lg);align-items:center;justify-content:space-between}
.mx-seg{display:flex;flex-wrap:wrap;max-width:100%;gap:2px;background:var(--color-panel);border:1px solid var(--color-border-line);border-radius:999px;padding:3px}
.mx-seg button{font:inherit;font-size:var(--cds-font-size-caption);border:0;background:none;color:var(--color-fg-muted);padding:var(--cds-pad-xs) var(--cds-pad-md);border-radius:999px;cursor:pointer}
.mx-seg button[aria-pressed="true"]{background:var(--color-fg);color:var(--color-bg)}
.mx-dates{justify-content:flex-start}
.mx-range{display:flex;flex-wrap:wrap;gap:var(--cds-gap-sm);font-size:var(--cds-font-size-caption);color:var(--color-fg-muted)}
.mx-range label{display:flex;align-items:center;gap:6px}
.mx-range input{font:inherit;color:var(--color-fg);background:var(--color-panel);border:1px solid var(--color-border-line);border-radius:999px;padding:3px 10px;color-scheme:light dark}
.mx-alerts{display:flex;flex-direction:column;gap:var(--cds-gap-sm)}
.mx-alist{display:flex;flex-wrap:wrap;gap:var(--cds-gap-sm)}
.mx-alert{font:inherit;cursor:pointer;display:flex;align-items:center;gap:var(--cds-gap-sm);padding:var(--cds-pad-sm) var(--cds-pad-md);border-radius:var(--cds-radius);border:1px solid color-mix(in srgb,var(--neg) 35%,var(--color-border-line));background:color-mix(in srgb,var(--neg) 9%,var(--color-panel));color:var(--color-fg);text-align:left}
.mx-alert:hover{border-color:var(--neg)}
.mx-alert .n{font-family:var(--font-anthropic-serif);font-size:var(--cds-font-size-heading);color:var(--neg);min-width:1.6em}
.mx-alert .t{font-size:var(--cds-font-size-body);font-weight:500}
.mx-alert .m{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted)}

/* Mall cards */
.mx-malls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18.5rem),1fr));gap:var(--cds-gap-md)}
.mx-mall{background:var(--color-panel);border:1px solid var(--color-border-line);border-radius:calc(var(--cds-radius) * 1.5);padding:var(--cds-pad-lg);display:flex;flex-direction:column;gap:var(--cds-gap-md);min-height:19rem;min-width:0}
.mx-mall.is-sel{border-color:var(--color-fg)}
.mx-mall{cursor:pointer;transition:border-color var(--cds-dur-slow)}
.mx-mall:hover{border-color:color-mix(in srgb,var(--color-fg) 45%,var(--color-border-line))}
.mx-mall:focus-visible{outline:2px solid var(--color-fg);outline-offset:2px}
.mx-mhead{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--cds-gap-sm)}
.mx-mhead h3{font-family:var(--font-anthropic-serif);font-weight:400;font-size:var(--cds-font-size-title);margin:0;line-height:1.1}
.mx-city{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted)}
.mx-pill{font-size:var(--cds-font-size-caption);font-weight:600;padding:2px var(--cds-pad-sm);border-radius:999px;white-space:nowrap;display:inline-flex;align-items:center;gap:.35rem}
.mx-pill::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}
.mx-pill.critical{color:var(--neg);background:color-mix(in srgb,var(--neg) 12%,transparent)}
.mx-pill.watch{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}
.mx-pill.healthy{color:var(--pos);background:color-mix(in srgb,var(--pos) 13%,transparent)}
.mx-mbody{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--cds-gap-lg);align-items:center}
.mx-donut{width:7.5rem;height:7.5rem;position:relative}
.mx-donut svg{width:100%;height:100%;display:block}
.mx-donut .ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.mx-donut .ctr b{font-family:var(--font-anthropic-serif);font-weight:400;font-size:var(--cds-font-size-title);line-height:1}
.mx-donut .ctr span{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted)}
.mx-net{display:flex;flex-direction:column;gap:2px}
.mx-net .v{font-family:var(--font-anthropic-serif);font-size:calc(var(--cds-font-size-title) * 1.25);line-height:1}
.mx-net .l{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);max-width:16ch}
.mx-rows{display:flex;flex-direction:column;gap:4px}
.mx-row{font:inherit;cursor:pointer;display:grid;grid-template-columns:5.5rem minmax(0,1fr) 2.2rem;align-items:center;gap:var(--cds-gap-sm);padding:6px var(--cds-pad-sm);border-radius:var(--cds-radius);border:1px solid transparent;background:none;color:var(--color-fg);text-align:left}
.mx-row:hover{background:var(--color-bg)}
.mx-row[aria-pressed="true"]{background:var(--color-bg);border-color:var(--color-fg)}
.mx-row .k{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);display:flex;align-items:center;gap:.4rem}
.mx-row .bar{height:8px;border-radius:999px;background:var(--cds-chart-grid);overflow:hidden}
.mx-row .bar span{display:block;height:100%;border-radius:999px}
.mx-row .n{font-weight:600;text-align:right}
.mx-dot{width:.55rem;height:.55rem;border-radius:50%;display:inline-block;flex:none}
.mx-hint{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);margin:0}

/* Detail */
.mx-card{background:var(--color-panel);border:1px solid var(--color-border-line);border-radius:calc(var(--cds-radius) * 1.5);padding:var(--cds-pad-lg);display:flex;flex-direction:column;gap:var(--cds-gap-md);min-width:0}
.mx-dhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--cds-gap-sm)}
.mx-dtitle{font-family:var(--font-anthropic-serif);font-weight:400;font-size:var(--cds-font-size-title);margin:0;line-height:1.15}
.mx-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:var(--cds-gap-lg);align-items:start}
@media (max-width:780px){.mx-detail{grid-template-columns:minmax(0,1fr)}}
.mx-themes{display:flex;flex-direction:column;gap:4px}
.mx-theme{font:inherit;cursor:pointer;background:none;border:1px solid transparent;border-radius:var(--cds-radius);padding:var(--cds-pad-xs) var(--cds-pad-sm);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px var(--cds-gap-sm);text-align:left;color:var(--color-fg)}
.mx-theme:hover{background:var(--color-bg)}
.mx-theme[aria-pressed="true"]{border-color:var(--color-fg);background:var(--color-bg)}
.mx-theme .t{font-size:var(--cds-font-size-body)}
.mx-theme .c{font-size:var(--cds-font-size-body);font-weight:600}
.mx-theme .b{grid-column:1/-1;height:6px;border-radius:999px;background:var(--cds-chart-grid);overflow:hidden}
.mx-theme .b span{display:block;height:100%;border-radius:999px}
.mx-posts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--cds-gap-sm);max-height:38rem;overflow:auto}
.mx-post{display:flex;flex-direction:column;gap:6px;padding:var(--cds-pad-md);border-radius:var(--cds-radius);background:var(--color-bg);border:1px solid var(--color-border-line);border-left-width:3px}
.mx-pmeta{display:flex;flex-wrap:wrap;gap:4px var(--cds-gap-sm);font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);align-items:center}
.mx-plat{font-weight:600;color:var(--color-fg)}
.mx-psum{font-size:var(--cds-font-size-body);line-height:1.5;overflow-wrap:anywhere}
.mx-pfoot{display:flex;flex-wrap:wrap;gap:4px var(--cds-gap-md);font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);align-items:center}
.mx-tag{border:1px solid var(--color-border-line);border-radius:999px;padding:0 .45rem}
.mx-pfoot a{color:var(--color-fg);font-weight:500}

/* Trend */
.mx-chart{position:relative;min-height:220px}
.mx-tip{position:absolute;background:var(--cds-surface-popover);border:1px solid var(--cds-border);border-radius:var(--cds-radius);box-shadow:var(--cds-shadow-popover);padding:var(--cds-pad-xs) var(--cds-pad-sm);font-size:var(--cds-font-size-caption);pointer-events:none;white-space:nowrap;z-index:2;display:flex;flex-direction:column;gap:2px}
.mx-tip .d{color:var(--cds-text-secondary)}
.mx-tip div{display:flex;align-items:center;gap:.35rem}
.mx-legend{display:flex;flex-wrap:wrap;gap:var(--cds-gap-md);font-size:var(--cds-font-size-caption);color:var(--color-fg-muted)}
.mx-legend span{display:inline-flex;align-items:center;gap:.35rem}
.mx-fail{display:flex;align-items:center;justify-content:center;gap:.4rem;color:var(--color-fg-muted);font-size:var(--cds-font-size-caption);min-height:6rem}
.mx-fail i{width:.375rem;height:.375rem;border-radius:50%;background:var(--color-bad)}
.mx button:focus-visible{outline:2px solid var(--color-fg);outline-offset:2px}
.mx-hero button:focus-visible{outline-color:var(--color-bg)}
[data-dash-source-state=refreshing]{opacity:.5;transition:opacity var(--cds-dur-slow)}
[data-dash-source-state=empty]{color:transparent}
@media (prefers-reduced-motion:no-preference){.mx-mall,.mx-alert{animation:mxIn var(--cds-dur-slow) var(--cds-ease-out) both}}
@keyframes mxIn{from{transform:translateY(4px)}to{transform:none}}
