/* 药店专项监测工作台 */
.header-center{gap:10px}
.app-nav{display:flex;align-items:center;gap:4px;padding:3px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:9px}
.app-nav-btn{border:0;background:transparent;color:var(--text-muted);font:500 12px var(--font);padding:6px 12px;border-radius:6px;cursor:pointer;transition:.2s ease;white-space:nowrap}
.app-nav-btn:hover{color:var(--text);background:rgba(255,255,255,.05)}
.app-nav-btn.active{color:#fff;background:linear-gradient(135deg,rgba(74,124,255,.9),rgba(63,106,222,.86));box-shadow:0 6px 18px rgba(74,124,255,.22)}
.app-page[hidden]{display:none!important}

.special-page{flex:1;padding:14px 16px 18px;min-height:calc(100vh - 56px);animation:page-in .35s ease both}
@keyframes page-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.special-command{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px;padding:13px 16px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(100deg,rgba(74,124,255,.12),rgba(255,255,255,.035) 48%,rgba(105,231,255,.05));position:relative;overflow:hidden}
.special-command::after{content:'';position:absolute;width:260px;height:80px;right:18%;top:-55px;background:rgba(74,124,255,.14);filter:blur(30px);border-radius:50%;pointer-events:none}
.command-title{font-size:17px;font-weight:650;letter-spacing:.5px}
.command-sub{color:var(--text-muted);font-size:11px;margin-top:2px}
.command-actions{display:flex;align-items:center;gap:10px;z-index:1}
.demo-stamp{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--warning);border:1px solid rgba(255,169,64,.26);background:rgba(255,169,64,.08);border-radius:20px;padding:4px 9px}
.demo-stamp::before{content:'';width:5px;height:5px;background:var(--warning);border-radius:50%}
.range-switch{display:flex;gap:3px;padding:3px;background:rgba(0,0,0,.22);border-radius:8px;border:1px solid var(--border)}
.range-btn{border:0;background:transparent;color:var(--text-muted);font:500 11px var(--font);padding:5px 10px;border-radius:5px;cursor:pointer}
.range-btn:hover{color:var(--text)}
.range-btn.active{background:rgba(74,124,255,.2);color:#91adff}

.special-grid{display:grid;grid-template-columns:1.03fr 1.1fr 1fr;gap:12px;align-items:stretch;min-height:calc(100vh - 145px)}
.special-card{background:linear-gradient(150deg,rgba(255,255,255,.065),rgba(255,255,255,.035));border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;min-width:0;box-shadow:0 14px 34px rgba(0,0,0,.12);animation:card-rise .45s ease both}
.special-card:nth-child(2){animation-delay:.06s}.special-card:nth-child(3){animation-delay:.12s}
@keyframes card-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.special-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 11px;border-bottom:1px solid var(--border);background:rgba(7,10,20,.26)}
.special-head-main{display:flex;align-items:center;gap:9px;min-width:0}
.module-index{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:rgba(74,124,255,.18);border:1px solid rgba(74,124,255,.25);color:#8babff;font:700 11px var(--font-mono);flex:none}
.special-title{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-pill{display:flex;align-items:center;gap:5px;font-size:10px;color:#7fa1ff;background:rgba(74,124,255,.11);padding:3px 8px;border-radius:12px;white-space:nowrap}
.live-pill::before{content:'';width:5px;height:5px;border-radius:50%;background:#5a86ff;box-shadow:0 0 8px #5a86ff}
.module-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 12px}
.mini-kpi{padding:9px 10px;border-radius:8px;background:rgba(2,5,13,.3);border:1px solid rgba(255,255,255,.045)}
.mini-kpi-label{font-size:10px;color:var(--text-muted);white-space:nowrap}
.mini-kpi-value{font:700 20px/1.2 var(--font-mono);margin-top:3px}
.mini-kpi-value.danger{color:var(--danger)}.mini-kpi-value.warning{color:var(--warning)}.mini-kpi-value.accent{color:var(--accent)}
.section-block{padding:0 12px 11px}
.section-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0 7px;border-top:1px solid rgba(255,255,255,.055);font-size:11px;font-weight:600}
.section-caption:first-child{border-top:0}
.caption-note{font-size:9px;color:var(--text-muted);font-weight:400}

.special-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px}
.special-table th{text-align:left;color:var(--text-muted);font-weight:500;padding:7px 7px;background:rgba(2,5,13,.46);border-bottom:1px solid var(--border)}
.special-table td{padding:8px 7px;border-bottom:1px solid rgba(255,255,255,.045);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.special-table tbody tr{cursor:pointer;transition:.15s ease}
.special-table tbody tr:hover td{background:rgba(74,124,255,.07);color:var(--text)}
.special-table .entity{color:var(--text);font-weight:600}
.risk-chip{display:inline-block;font-size:9px;padding:2px 7px;border-radius:10px;font-weight:600}
.risk-chip.red{color:#ff8292;background:rgba(255,92,114,.16)}
.risk-chip.orange{color:#ffc071;background:rgba(255,169,64,.16)}
.risk-chip.yellow{color:#ffe75e;background:rgba(250,219,20,.12)}
.rule-code{display:inline-grid;place-items:center;min-width:19px;height:17px;margin-right:2px;padding:0 4px;border-radius:4px;background:rgba(255,255,255,.06);color:var(--text-muted);font:500 8px var(--font-mono)}
.hbars{display:grid;gap:6px}
.hbar-row{display:grid;grid-template-columns:88px 1fr 24px;align-items:center;gap:7px;font-size:9px;color:var(--text-secondary)}
.hbar-track{height:7px;border-radius:3px;background:rgba(255,255,255,.06);overflow:hidden}
.hbar-fill{height:100%;border-radius:3px;transform-origin:left;animation:bar-grow .65s ease both}
@keyframes bar-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hbar-val{font:600 9px var(--font-mono);color:var(--text)}

.district-stage{padding:10px 12px 8px;min-height:210px;position:relative;background:radial-gradient(circle at 52% 50%,rgba(74,124,255,.08),transparent 55%)}
.district-board{height:205px;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(5,1fr);gap:6px}
.district-tile{border:1px solid color-mix(in srgb,var(--tile) 68%,white 8%);background:color-mix(in srgb,var(--tile) 30%,transparent);border-radius:7px;color:var(--text);font:600 10px var(--font);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.2s ease;position:relative;overflow:hidden}
.district-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(140deg,rgba(255,255,255,.1),transparent 45%);pointer-events:none}
.district-tile:hover,.district-tile.active{transform:translateY(-2px);filter:brightness(1.2);box-shadow:0 8px 20px color-mix(in srgb,var(--tile) 22%,transparent)}
.district-tile.active{outline:2px solid rgba(255,255,255,.2);outline-offset:1px}
.district-tile small{font:500 8px var(--font-mono);color:rgba(232,237,245,.55);margin-top:2px}
.district-tile[data-district="康平县"]{grid-column:2/4;grid-row:1/2}
.district-tile[data-district="法库县"]{grid-column:4/6;grid-row:1/2}
.district-tile[data-district="新民市"]{grid-column:1/3;grid-row:2/5}
.district-tile[data-district="于洪区"]{grid-column:3/5;grid-row:2/4}
.district-tile[data-district="沈北新区"]{grid-column:5/7;grid-row:2/3}
.district-tile[data-district="皇姑区"]{grid-column:5/6;grid-row:3/4}
.district-tile[data-district="大东区"]{grid-column:7/8;grid-row:3/4}
.district-tile[data-district="和平区"]{grid-column:4/5;grid-row:4/5}
.district-tile[data-district="沈河区"]{grid-column:5/6;grid-row:4/5}
.district-tile[data-district="铁西区"]{grid-column:3/4;grid-row:4/6}
.district-tile[data-district="浑南区"]{grid-column:6/8;grid-row:4/6}
.district-tile[data-district="苏家屯区"]{grid-column:4/6;grid-row:5/6}
.district-tile[data-district="辽中区"]{grid-column:1/3;grid-row:5/6}
.map-legend-mini{position:absolute;right:18px;bottom:14px;display:flex;align-items:center;gap:5px;padding:5px 7px;border-radius:6px;background:rgba(7,10,20,.78);font-size:8px;color:var(--text-muted)}
.legend-gradient{width:58px;height:5px;border-radius:3px;background:linear-gradient(90deg,#3cbca7,#f4d21c,#ff5c72)}
.location-filter{color:#82a5ff;cursor:pointer;border:0;background:transparent;font:500 9px var(--font);padding:2px 0}
.location-filter:hover{color:#b4c5ff}

.platform-bars{display:grid;gap:6px}
.platform-row{display:grid;grid-template-columns:54px 1fr 24px;align-items:center;gap:7px;font-size:9px}
.platform-name{color:var(--text-secondary);text-align:right}
.platform-track{height:11px;background:rgba(255,255,255,.055);border-radius:3px;overflow:hidden}
.platform-fill{height:100%;border-radius:3px;background:var(--bar);animation:bar-grow .65s ease both}
.platform-count{font:600 9px var(--font-mono)}
.type-cloud{display:flex;flex-wrap:wrap;gap:6px}
.type-chip{border:1px solid color-mix(in srgb,var(--chip) 46%,transparent);background:color-mix(in srgb,var(--chip) 10%,transparent);color:var(--chip);border-radius:6px;padding:4px 8px;font-size:9px;cursor:pointer;transition:.18s ease}
.type-chip:hover,.type-chip.active{background:color-mix(in srgb,var(--chip) 20%,transparent);transform:translateY(-1px)}
.alert-feed{display:grid;max-height:285px;overflow:auto;padding-right:4px}
.alert-item{display:grid;grid-template-columns:8px 1fr auto;gap:8px;padding:9px 2px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer}
.alert-item:hover .alert-entity{color:#8faeff}
.alert-dot{width:7px;height:7px;border-radius:50%;background:var(--level);margin-top:4px;box-shadow:0 0 8px color-mix(in srgb,var(--level) 58%,transparent)}
.alert-entity{font-size:10px;font-weight:600;color:var(--text);transition:.15s}
.alert-desc{font-size:9px;color:var(--text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}
.alert-time{font:500 8px var(--font-mono);color:var(--text-muted);white-space:nowrap}

.detail-drawer{position:fixed;inset:0;z-index:80;display:flex;justify-content:flex-end;visibility:hidden;pointer-events:none}
.detail-drawer.open{visibility:visible;pointer-events:auto}
.drawer-mask{position:absolute;inset:0;background:rgba(0,0,0,.58);opacity:0;backdrop-filter:blur(2px);transition:.25s ease}
.detail-drawer.open .drawer-mask{opacity:1}
.drawer-panel{position:relative;width:min(470px,92vw);height:100%;background:#0c1120;border-left:1px solid rgba(255,255,255,.1);box-shadow:-25px 0 60px rgba(0,0,0,.38);transform:translateX(100%);transition:.3s cubic-bezier(.2,.75,.2,1);padding:20px;overflow:auto}
.detail-drawer.open .drawer-panel{transform:none}
.drawer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:15px;border-bottom:1px solid var(--border)}
.drawer-eyebrow{font-size:9px;letter-spacing:1.6px;color:#6f91ee;text-transform:uppercase;margin-bottom:5px}
.drawer-title{font-size:17px;font-weight:650}
.drawer-close{width:30px;height:30px;border:1px solid var(--border);border-radius:7px;background:rgba(255,255,255,.04);color:var(--text-secondary);cursor:pointer;font-size:17px}
.drawer-close:hover{color:#fff;background:rgba(255,255,255,.08)}
.drawer-section{padding:15px 0;border-bottom:1px solid var(--border)}
.drawer-section-title{font-size:10px;color:var(--text-muted);letter-spacing:1px;margin-bottom:9px}
.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.evidence-item{padding:9px;border:1px solid rgba(255,255,255,.055);border-radius:7px;background:rgba(255,255,255,.025)}
.evidence-key{font-size:9px;color:var(--text-muted)}
.evidence-value{font-size:11px;color:var(--text);margin-top:3px}
.drawer-reason{padding:11px 12px;border-left:2px solid var(--danger);background:rgba(255,92,114,.07);font-size:11px;color:var(--text-secondary);line-height:1.7}
.drawer-actions{display:flex;gap:8px;padding-top:16px}
.drawer-action{flex:1;border:1px solid var(--border);border-radius:7px;padding:8px 10px;background:rgba(255,255,255,.04);color:var(--text-secondary);font:500 11px var(--font);cursor:pointer}
.drawer-action.primary{border-color:rgba(74,124,255,.45);background:rgba(74,124,255,.18);color:#a8bcff}
.drawer-action:hover{filter:brightness(1.18)}
.toast{position:fixed;left:50%;bottom:24px;z-index:100;transform:translate(-50%,18px);opacity:0;pointer-events:none;padding:9px 14px;border-radius:7px;background:#172039;border:1px solid rgba(109,145,255,.35);box-shadow:0 10px 35px rgba(0,0,0,.35);color:var(--text);font-size:11px;transition:.22s ease}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:1380px){.special-grid{grid-template-columns:1fr 1fr}.special-card:last-child{grid-column:1/-1}.alert-feed{max-height:220px}}
@media(max-width:900px){.header{height:auto;min-height:56px;flex-wrap:wrap;padding:8px 12px}.header-center{order:3;width:100%;justify-content:center;margin-top:5px}.header-right{display:none}.app-nav{flex:1}.app-nav-btn{flex:1}.special-page{padding:10px}.special-command{align-items:flex-start}.command-actions{flex-direction:column;align-items:flex-end}.special-grid{grid-template-columns:1fr}.special-card:last-child{grid-column:auto}.district-board{height:230px}.module-kpis{gap:5px}.mini-kpi{padding:8px}.special-title{white-space:normal}}
@media(max-width:560px){.header-badge{display:none}.header-title{font-size:14px}.special-command{display:block}.command-actions{align-items:flex-start;margin-top:10px}.special-grid{min-height:0}.special-table th:nth-child(2),.special-table td:nth-child(2){display:none}.evidence-grid{grid-template-columns:1fr}}

/* ─────────────────────────────────────────────
   2026 原创性重构：监管研判工作台
   非三栏卡片结构，采用主题轨道 + 单画布 + 统一队列
   ───────────────────────────────────────────── */
.ops-page{
  --ops-bg:#090d12;
  --ops-panel:#101720;
  --ops-panel-2:#141d27;
  --ops-line:rgba(176,194,207,.13);
  --ops-soft:#80909d;
  --ops-ink:#edf2f3;
  --ops-sand:#e1ae67;
  --ops-teal:#6bc5c2;
  flex:1;min-height:calc(100vh - 56px);padding:18px 20px 20px;color:var(--ops-ink);
  background-color:var(--ops-bg);
  background-image:linear-gradient(rgba(120,145,159,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(120,145,159,.035) 1px,transparent 1px),radial-gradient(circle at 48% -20%,rgba(107,197,194,.1),transparent 40%);
  background-size:32px 32px,32px 32px,100% 100%;animation:ops-reveal .4s ease both;
}
@keyframes ops-reveal{from{opacity:0}to{opacity:1}}
.ops-masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:17px;padding:4px 2px 14px;border-bottom:1px solid var(--ops-line)}
.ops-heading h2{font-family:"Microsoft YaHei UI","PingFang SC",sans-serif;font-size:25px;line-height:1.15;font-weight:650;letter-spacing:.04em;color:#f3f5f2}
.ops-heading p{font-size:11px;color:var(--ops-soft);margin-top:6px;letter-spacing:.03em}
.ops-kicker{display:block;font:600 8px/1.2 var(--font-mono);letter-spacing:.24em;color:var(--ops-sand);margin-bottom:7px}
.ops-toolbar{display:flex;align-items:center;gap:12px}.ops-toolbar .demo-stamp{color:var(--ops-sand);border-color:rgba(225,174,103,.32);background:rgba(225,174,103,.08)}.ops-toolbar .demo-stamp::before{background:var(--ops-sand)}
.ops-toolbar .range-switch{border-radius:2px;background:#0b1118;border-color:var(--ops-line);padding:2px}.ops-toolbar .range-btn{border-radius:1px;padding:6px 12px;color:#71818e}.ops-toolbar .range-btn.active{background:#26333f;color:#e7ecec;box-shadow:inset 0 -2px var(--ops-sand)}

.ops-shell{display:grid;grid-template-columns:224px minmax(520px,1fr) 344px;gap:12px;min-height:calc(100vh - 152px)}
.domain-rail,.analysis-deck,.incident-column{border:1px solid var(--ops-line);background:rgba(14,20,28,.88);box-shadow:0 18px 44px rgba(0,0,0,.16)}
.domain-rail{display:flex;flex-direction:column;padding:18px 12px 13px;position:relative;overflow:hidden}
.domain-rail::before{content:'';position:absolute;top:0;left:0;width:42px;height:2px;background:var(--ops-sand)}
.rail-label{font:600 9px var(--font-mono);letter-spacing:.18em;color:#697a87;padding:0 8px 12px;text-transform:uppercase}
.domain-tab{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;min-height:66px;width:100%;padding:9px;border:0;border-left:2px solid transparent;background:transparent;color:var(--ops-soft);text-align:left;cursor:pointer;transition:.2s ease;position:relative}
.domain-tab::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(107,197,194,.09),transparent);opacity:0;transition:.2s}
.domain-tab:hover{color:var(--ops-ink);background:rgba(255,255,255,.025)}
.domain-tab.active{color:var(--ops-ink);border-left-color:var(--ops-teal);background:rgba(107,197,194,.055)}
.domain-tab.active::after{opacity:1}
.domain-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(128,144,157,.24);font:600 12px var(--font-mono);color:#8da0ac;z-index:1;clip-path:polygon(0 0,82% 0,100% 18%,100% 100%,0 100%)}
.domain-tab.active .domain-icon{border-color:rgba(107,197,194,.48);color:var(--ops-teal);background:rgba(107,197,194,.06)}
.domain-copy{display:flex;flex-direction:column;z-index:1}.domain-copy strong{font-size:12px;font-weight:620}.domain-copy small{font-size:9px;color:#697985;margin-top:3px}
.domain-count{font:700 18px var(--font-mono);color:#768895;z-index:1}.domain-tab.active .domain-count{color:var(--ops-sand)}
.rail-status{margin-top:auto;display:flex;gap:10px;align-items:center;border-top:1px solid var(--ops-line);padding:15px 8px 12px}
.status-ring{width:29px;height:29px;border:1px solid rgba(107,197,194,.35);border-radius:50%;display:grid;place-items:center}.status-ring i{width:7px;height:7px;border-radius:50%;background:var(--ops-teal);box-shadow:0 0 0 5px rgba(107,197,194,.08),0 0 12px rgba(107,197,194,.5);animation:pulse-dot 2s infinite}
.rail-status div{display:flex;flex-direction:column}.rail-status strong{font-size:10px;font-weight:600}.rail-status small{font-size:8px;color:#667783;margin-top:2px}
.rail-foot{display:flex;justify-content:space-between;align-items:center;padding:9px 8px 0;border-top:1px solid var(--ops-line);font-size:8px;color:#60717d}.rail-foot strong{font:500 8px var(--font-mono);color:#83939e}

.analysis-deck{min-width:0;display:flex;flex-direction:column;background:linear-gradient(145deg,rgba(18,26,35,.96),rgba(10,15,21,.96));position:relative;overflow:hidden}
.analysis-deck::after{content:'';position:absolute;right:-100px;top:-100px;width:260px;height:260px;border:1px solid rgba(107,197,194,.06);border-radius:50%;box-shadow:0 0 0 38px rgba(107,197,194,.018),0 0 0 76px rgba(107,197,194,.012);pointer-events:none}
.analysis-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 20px 14px;border-bottom:1px solid var(--ops-line);z-index:1}
.analysis-overline{display:block;font:600 8px var(--font-mono);letter-spacing:.2em;color:var(--ops-teal);margin-bottom:4px}.analysis-head h3{font-size:16px;font-weight:620;letter-spacing:.03em}
.analysis-state{display:flex;align-items:center;gap:7px;font-size:9px;color:#7d8e99}.analysis-state i{width:28px;height:1px;background:linear-gradient(90deg,transparent,var(--ops-teal));position:relative}.analysis-state i::after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;right:0;top:-1.5px;background:var(--ops-teal);box-shadow:0 0 7px var(--ops-teal)}
.domain-view{padding:17px 19px 18px;min-height:0;overflow:auto;animation:domain-enter .28s ease both;z-index:1}.domain-view[hidden]{display:none!important}
@keyframes domain-enter{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
.signal-summary{display:grid;grid-template-columns:minmax(280px,.85fr) 1fr;gap:18px;min-height:250px;border-bottom:1px solid var(--ops-line);padding-bottom:16px}
.signal-orbit{position:relative;min-height:238px;overflow:hidden;background:radial-gradient(circle,rgba(107,197,194,.08),transparent 57%)}
.orbit-ring{position:absolute;left:50%;top:50%;border:1px dashed rgba(126,151,163,.18);border-radius:50%;transform:translate(-50%,-50%)}.ring-a{width:180px;height:180px}.ring-b{width:118px;height:118px;border-style:solid;border-color:rgba(225,174,103,.13)}
.orbit-ring::before,.orbit-ring::after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--ops-teal);box-shadow:0 0 9px var(--ops-teal)}.ring-a::before{left:20px;top:28px}.ring-a::after{right:7px;bottom:58px}.ring-b::before{right:13px;top:15px;background:var(--ops-sand)}.ring-b::after{left:5px;bottom:28px;background:var(--ops-sand)}
.orbit-core{position:absolute;left:50%;top:50%;width:92px;height:92px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(225,174,103,.38);background:#121b23;clip-path:polygon(12% 0,88% 0,100% 12%,100% 88%,88% 100%,12% 100%,0 88%,0 12%)}
.orbit-core strong{font:700 32px/1 var(--font-mono);color:var(--ops-sand)}.orbit-core span{font-size:9px;color:#788a96;margin-top:4px}
.orbit-node{position:absolute;width:53px;height:43px;border:1px solid rgba(126,151,163,.2);background:#101820;color:#879aa6;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.18s}.orbit-node:hover,.orbit-node.active{border-color:var(--ops-teal);color:var(--ops-ink);transform:translateY(-2px)}.orbit-node b{font:700 13px var(--font-mono);color:var(--ops-teal)}.orbit-node span{font-size:8px;margin-top:1px}.n1{left:8%;top:13%}.n2{right:5%;top:20%}.n3{left:4%;bottom:10%}.n4{right:9%;bottom:8%}
.signal-brief{align-self:center;padding:5px 4px 5px 10px}.brief-tag{display:inline-block;font:600 8px var(--font-mono);letter-spacing:.12em;color:var(--ops-sand);border-bottom:1px solid rgba(225,174,103,.35);padding-bottom:5px;margin-bottom:13px}.signal-brief>strong{display:block;max-width:430px;font-size:18px;line-height:1.55;font-weight:600;letter-spacing:.02em}.signal-brief>p{font-size:10px;color:#758691;line-height:1.7;margin-top:9px;max-width:430px}.brief-metrics{display:flex;gap:22px;margin-top:20px}.brief-metrics span{display:flex;flex-direction:column;font-size:8px;color:#667682}.brief-metrics b{font:650 18px var(--font-mono);color:#e6ebea;margin-bottom:2px}
.worklist-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 1px 9px}.worklist-head>div{display:flex;align-items:baseline;gap:9px}.worklist-head strong{font-size:11px}.worklist-head span{font-size:8px;color:#697a86}.text-action{border:0;background:transparent;color:#718793;font:500 8px var(--font);cursor:pointer;padding:4px}.text-action:hover{color:var(--ops-teal)}
.case-list{display:grid;gap:1px;background:rgba(176,194,207,.08);border:1px solid var(--ops-line)}
.case-row{display:grid;grid-template-columns:1.4fr .8fr 1fr auto;align-items:center;gap:12px;min-height:45px;padding:7px 11px;background:#101720;cursor:pointer;transition:.15s}.case-row:hover{background:#17222d}.case-main{min-width:0}.case-main strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.case-main small,.case-cell small{display:block;font-size:8px;color:#667783;margin-top:2px}.case-cell{min-width:0;font-size:9px;color:#a8b2b7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.case-rules{display:flex;gap:3px}.case-rule{font:500 7px var(--font-mono);color:#80919c;border:1px solid rgba(128,145,156,.18);padding:2px 4px}.case-level{width:7px;height:26px;background:var(--level);box-shadow:0 0 10px color-mix(in srgb,var(--level) 30%,transparent)}

.location-canvas{position:relative;min-height:330px;padding:42px 20px 28px;background:linear-gradient(145deg,rgba(107,197,194,.035),transparent),repeating-linear-gradient(0deg,transparent,transparent 25px,rgba(107,197,194,.025) 26px),repeating-linear-gradient(90deg,transparent,transparent 25px,rgba(107,197,194,.025) 26px);border:1px solid var(--ops-line)}
.map-meta{position:absolute;left:14px;right:14px;top:11px;display:flex;justify-content:space-between;font-size:8px;color:#6b7d88}.map-meta strong{font-weight:500}.map-meta b{font:600 10px var(--font-mono);color:var(--ops-teal)}
.location-canvas .district-board{height:245px;max-width:620px;margin:0 auto;gap:7px}.location-canvas .district-tile{border-radius:1px;background:color-mix(in srgb,var(--tile) 20%,#111a22);clip-path:polygon(0 0,92% 0,100% 12%,100% 100%,8% 100%,0 88%)}.location-canvas .district-tile::after{background:linear-gradient(145deg,rgba(255,255,255,.06),transparent 42%)}.location-canvas .district-tile.active{outline:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 8px 20px rgba(0,0,0,.2)}
.location-canvas .map-legend-mini{right:14px;bottom:9px;background:transparent;padding:0}.location-canvas .legend-gradient{background:linear-gradient(90deg,#4d9b8f,#bca34f,#d86472)}
.network-overview{display:grid;grid-template-columns:1fr 190px;gap:16px;min-height:262px;border-bottom:1px solid var(--ops-line);padding-bottom:16px}
.channel-map{display:grid;grid-template-columns:repeat(3,1fr);align-content:center;gap:9px;padding:16px;background:radial-gradient(circle at 50% 50%,rgba(107,197,194,.07),transparent 55%);position:relative}.channel-map::before{content:'';position:absolute;left:8%;right:8%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(107,197,194,.18),transparent)}
.channel-node{min-height:72px;padding:11px;display:flex;flex-direction:column;justify-content:space-between;background:#111a22;border:1px solid var(--ops-line);clip-path:polygon(0 0,88% 0,100% 18%,100% 100%,0 100%);cursor:pointer;z-index:1;transition:.18s}.channel-node:hover{transform:translateY(-3px);border-color:var(--node)}.channel-node span{font-size:9px;color:#8797a1}.channel-node strong{font:700 22px var(--font-mono);color:var(--node)}.channel-node small{font-size:7px;color:#61717c}
.network-summary{align-self:center;border-left:1px solid var(--ops-line);padding:8px 0 8px 20px}.network-summary>span{display:block;font:600 8px var(--font-mono);letter-spacing:.18em;color:var(--ops-sand)}.network-summary>strong{display:block;font:700 38px/1 var(--font-mono);color:#ecf0ef;margin-top:14px}.network-summary>small{font-size:9px;color:#71818c}.network-summary>p{font-size:9px;color:#71818c;line-height:1.7;margin-top:18px}.network-summary b{color:var(--ops-teal)}
.type-filter-wrap{display:flex;align-items:center;gap:12px;padding:13px 1px 3px}.type-filter-wrap>span{font-size:8px;color:#657682;white-space:nowrap}.ops-page .type-cloud{gap:5px}.ops-page .type-chip{border-radius:1px;background:transparent;padding:4px 7px;clip-path:polygon(0 0,92% 0,100% 25%,100% 100%,0 100%)}

.incident-column{display:flex;flex-direction:column;min-width:0;background:#0d141c;position:relative;overflow:hidden}.incident-column::before{content:'';position:absolute;top:0;right:0;border-style:solid;border-width:0 18px 18px 0;border-color:transparent var(--ops-sand) transparent transparent;opacity:.7}
.incident-head{display:flex;align-items:center;justify-content:space-between;padding:17px 16px 13px;border-bottom:1px solid var(--ops-line)}.incident-head>div{display:flex;flex-direction:column}.incident-head span{font:600 8px var(--font-mono);letter-spacing:.16em;color:#70818c}.incident-head strong{font-size:14px;font-weight:620;margin-top:3px}.incident-head>b{font:700 29px var(--font-mono);color:var(--ops-sand)}
.queue-filter{display:flex;gap:0;padding:10px 14px;border-bottom:1px solid var(--ops-line)}.queue-filter-btn{flex:1;border:1px solid var(--ops-line);border-right:0;background:transparent;color:#6e7f8a;font:500 8px var(--font);padding:6px;cursor:pointer}.queue-filter-btn:last-child{border-right:1px solid var(--ops-line)}.queue-filter-btn.active{background:#25313a;color:#e6eceb;box-shadow:inset 0 -1px var(--ops-teal)}
.incident-feed{flex:1;min-height:0;overflow:auto;padding:4px 14px}.queue-item{display:grid;grid-template-columns:34px 1fr auto;gap:9px;padding:12px 2px;border-bottom:1px solid var(--ops-line);cursor:pointer;transition:.15s}.queue-item:hover{padding-left:6px;background:linear-gradient(90deg,rgba(107,197,194,.045),transparent)}
.queue-mark{height:34px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--mark) 45%,transparent);color:var(--mark);font:600 8px var(--font-mono);clip-path:polygon(0 0,80% 0,100% 20%,100% 100%,0 100%)}.queue-copy{min-width:0}.queue-copy strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-copy p{font-size:8px;color:#6e7e89;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-time{font:500 7px var(--font-mono);color:#5d6d78;margin-top:2px}.incident-foot{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-top:1px solid var(--ops-line);font-size:8px;color:#667783}.incident-foot span{display:flex;align-items:center;gap:5px}.incident-foot i{width:5px;height:5px;border-radius:50%;background:var(--ops-teal);box-shadow:0 0 7px var(--ops-teal)}.incident-foot button{border:0;background:transparent;color:var(--ops-sand);font:500 8px var(--font);cursor:pointer}

@media(max-width:1420px){.ops-shell{grid-template-columns:205px minmax(500px,1fr) 300px}.case-row{grid-template-columns:1.3fr .75fr .9fr auto}.signal-summary{grid-template-columns:280px 1fr}}
@media(max-width:1100px){.ops-shell{grid-template-columns:190px 1fr}.incident-column{grid-column:1/-1;min-height:340px}.incident-feed{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.incident-foot{grid-column:1/-1}.network-overview{grid-template-columns:1fr 170px}}
@media(max-width:760px){.ops-page{padding:12px 10px}.ops-masthead{display:block}.ops-toolbar{margin-top:13px;justify-content:space-between}.ops-shell{display:block}.domain-rail{margin-bottom:10px;display:grid;grid-template-columns:repeat(3,1fr);padding:9px}.rail-label,.rail-status,.rail-foot{display:none}.domain-tab{display:flex;flex-direction:column;gap:5px;text-align:center;min-height:80px;border-left:0;border-bottom:2px solid transparent;padding:7px 3px}.domain-tab.active{border-left:0;border-bottom-color:var(--ops-teal)}.domain-copy small,.domain-count{display:none}.analysis-deck{min-height:720px}.analysis-head{padding:14px}.domain-view{padding:12px}.signal-summary{display:block}.signal-orbit{min-height:250px}.signal-brief{padding:10px 5px 16px}.signal-brief>strong{font-size:15px}.case-row{grid-template-columns:1fr auto;gap:7px}.case-cell,.case-rules{display:none}.location-canvas{padding-left:7px;padding-right:7px}.location-canvas .district-board{height:265px}.network-overview{display:block}.channel-map{grid-template-columns:1fr 1fr;padding:8px}.network-summary{border-left:0;border-top:1px solid var(--ops-line);margin-top:10px;padding:14px 4px}.incident-column{margin-top:10px;min-height:420px}.incident-feed{display:block}.ops-heading h2{font-size:21px}}
@media(max-width:420px){.domain-icon{width:30px;height:30px}.domain-copy strong{font-size:10px}.analysis-state{display:none}.brief-metrics{gap:14px}.orbit-node{width:48px}.channel-node{min-height:64px}.drawer-panel{padding:16px}}

/* ── 蓝白简约政务主题 ── */
body.pharmacy-mode{
  background:#eef4fa;
  background-image:radial-gradient(circle at 18% 0,rgba(37,99,235,.06),transparent 31%),radial-gradient(circle at 86% 18%,rgba(14,165,233,.05),transparent 28%);
}
.pharmacy-mode .header{background:rgba(255,255,255,.94);border-bottom-color:#dbe5f0;box-shadow:0 2px 12px rgba(32,72,116,.06)}
.pharmacy-mode .header-title{color:#17324f}.pharmacy-mode .header-subtitle{color:#778ba0;border-left-color:#d8e3ee}.pharmacy-mode .header-right{color:#71869c}.pharmacy-mode .header-time{color:#24425f}
.pharmacy-mode .app-nav{background:#f2f6fb;border-color:#dae4ef;border-radius:10px}.pharmacy-mode .app-nav-btn{color:#6d8197;font-size:13px;padding:7px 15px;border-radius:7px}.pharmacy-mode .app-nav-btn:hover{color:#21466d;background:#e7eef6}.pharmacy-mode .app-nav-btn.active{background:#2563eb;color:#fff;box-shadow:0 5px 14px rgba(37,99,235,.22)}
.pharmacy-mode .header-badge{background:#eaf8f4;color:#15866b;border-color:#bde8db;font-size:12px}.pharmacy-mode .header-badge::before{background:#16a47d}

.ops-page{
  --ops-bg:#f3f7fb;
  --ops-panel:#ffffff;
  --ops-panel-2:#f7faff;
  --ops-line:#dbe5ef;
  --ops-soft:#647d95;
  --ops-ink:#17324f;
  --ops-sand:#2563eb;
  --ops-teal:#0e9fbd;
  color:var(--ops-ink);background-color:var(--ops-bg);
  background-image:linear-gradient(rgba(83,119,153,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(83,119,153,.035) 1px,transparent 1px),radial-gradient(circle at 48% -20%,rgba(37,99,235,.09),transparent 41%);
  background-size:40px 40px,40px 40px,100% 100%;font-size:14px;padding:22px 24px 24px;
}
.ops-masthead{margin-bottom:20px;padding:3px 4px 18px;border-bottom-color:#d6e2ed}.ops-heading h2{font-size:28px;color:#143657;letter-spacing:.02em}.ops-heading p{font-size:13px;color:#6d849a;margin-top:7px}.ops-kicker{font-size:10px;letter-spacing:.18em;color:#2563eb;margin-bottom:8px}
.ops-toolbar{gap:14px}.ops-toolbar .demo-stamp{color:#2361c9;border-color:#b9cff4;background:#edf4ff;font-size:11px;padding:5px 10px}.ops-toolbar .demo-stamp::before{background:#2563eb}.ops-toolbar .range-switch{border-radius:9px;background:#fff;border-color:#d5e1ed;padding:3px;box-shadow:0 3px 12px rgba(35,72,111,.05)}.ops-toolbar .range-btn{border-radius:6px;padding:7px 13px;color:#71869a;font-size:12px}.ops-toolbar .range-btn.active{background:#e8f0ff;color:#1f5cc7;box-shadow:none;font-weight:650}

.ops-shell{grid-template-columns:238px minmax(560px,1fr) 360px;gap:15px;min-height:calc(100vh - 164px)}
.domain-rail,.analysis-deck,.incident-column{border-color:#d9e4ef;background:#fff;border-radius:14px;box-shadow:0 8px 26px rgba(38,70,104,.07)}
.domain-rail{padding:20px 13px 15px;overflow:hidden}.domain-rail::before{width:100%;height:3px;background:linear-gradient(90deg,#2563eb,#54b8df)}.rail-label{font-size:11px;letter-spacing:.13em;color:#7890a6;padding:0 10px 13px}
.domain-tab{grid-template-columns:42px 1fr auto;gap:11px;min-height:74px;padding:11px 10px;border-left:0;border-radius:10px;color:#607991;margin-bottom:5px}.domain-tab::after{display:none}.domain-tab:hover{color:#1c3d5d;background:#f3f7fb}.domain-tab.active{color:#143555;border-left:0;background:#eaf2ff;box-shadow:inset 3px 0 #2563eb}.domain-icon{width:38px;height:38px;border-color:#cddbe8;color:#668199;background:#f8fbfe;border-radius:9px;clip-path:none;font-size:13px}.domain-tab.active .domain-icon{border-color:#9bbdf5;color:#2563eb;background:#fff}.domain-copy strong{font-size:14px}.domain-copy small{font-size:11px;color:#8194a6;margin-top:3px}.domain-count{font-size:21px;color:#71879a}.domain-tab.active .domain-count{color:#2563eb}
.rail-status{border-top-color:#dce6ef;padding:17px 9px 14px}.status-ring{width:32px;height:32px;border-color:#a8e0df;background:#effafa}.status-ring i{background:#11a8aa;box-shadow:0 0 0 5px rgba(17,168,170,.09)}.rail-status strong{font-size:12px}.rail-status small{font-size:10px;color:#7b91a4;margin-top:3px}.rail-foot{padding:11px 9px 0;border-top-color:#e0e8f0;font-size:10px;color:#8497a8}.rail-foot strong{font-size:10px;color:#607a91}

.analysis-deck{background:#fff}.analysis-deck::after{border-color:rgba(37,99,235,.05);box-shadow:0 0 0 40px rgba(37,99,235,.018),0 0 0 80px rgba(37,99,235,.012)}.analysis-head{padding:20px 22px 16px;border-bottom-color:#dce6ef}.analysis-overline{font-size:10px;letter-spacing:.16em;color:#278cab;margin-bottom:5px}.analysis-head h3{font-size:18px;color:#173756}.analysis-state{font-size:11px;color:#72889b}.analysis-state i{background:linear-gradient(90deg,transparent,#0e9fbd)}.analysis-state i::after{background:#0e9fbd;box-shadow:0 0 7px rgba(14,159,189,.5)}.domain-view{padding:20px 22px 22px}

.signal-summary{grid-template-columns:minmax(310px,.85fr) 1fr;gap:24px;min-height:275px;border-bottom-color:#dce6ef;padding-bottom:20px}.signal-orbit{min-height:260px;background:radial-gradient(circle,rgba(37,99,235,.065),transparent 58%)}.orbit-ring{border-color:#bdd0e1}.ring-b{border-color:#c9d8e7}.orbit-ring::before,.orbit-ring::after{background:#23a9b9;box-shadow:0 0 8px rgba(35,169,185,.45)}.ring-b::before,.ring-b::after{background:#2b6dd8}.orbit-core{width:100px;height:100px;border-color:#9bb9e8;background:#fff;border-radius:18px;clip-path:none;box-shadow:0 8px 22px rgba(37,99,235,.1)}.orbit-core strong{font-size:34px;color:#2563eb}.orbit-core span{font-size:11px;color:#6e8499}.orbit-node{width:60px;height:50px;border-color:#cfdeeb;background:#fff;color:#668096;border-radius:9px;box-shadow:0 4px 14px rgba(50,83,115,.05)}.orbit-node:hover,.orbit-node.active{border-color:#4a83e6;color:#173b5e;background:#f2f7ff;transform:translateY(-2px)}.orbit-node b{font-size:15px;color:#147f9a}.orbit-node span{font-size:10px;margin-top:2px}
.signal-brief{padding-left:16px}.brief-tag{font-size:10px;letter-spacing:.1em;color:#2563eb;border-bottom-color:#b9cdf0;padding-bottom:6px;margin-bottom:15px}.signal-brief>strong{font-size:20px;line-height:1.55;color:#183a5c}.signal-brief>p{font-size:12px;color:#6e8498;line-height:1.75;margin-top:10px}.brief-metrics{gap:28px;margin-top:23px}.brief-metrics span{font-size:10px;color:#71879a}.brief-metrics b{font-size:21px;color:#1a3a58;margin-bottom:3px}
.worklist-head{padding:18px 2px 11px}.worklist-head strong{font-size:14px;color:#183854}.worklist-head span{font-size:11px;color:#7d91a3}.text-action{font-size:11px;color:#4978b8;padding:5px 7px;border-radius:5px}.text-action:hover{color:#175ccb;background:#eef5ff}
.case-list{gap:0;background:#fff;border-color:#dbe5ef;border-radius:10px;overflow:hidden}.case-row{grid-template-columns:1.4fr .8fr 1fr auto;gap:14px;min-height:54px;padding:9px 13px;background:#fff;border-bottom:1px solid #e7eef5}.case-row:last-child{border-bottom:0}.case-row:hover{background:#f3f8ff}.case-main strong{font-size:12px;color:#1c3b57}.case-main small,.case-cell small{font-size:10px;color:#8194a6;margin-top:3px}.case-cell{font-size:11px;color:#536d83}.case-rule{font-size:9px;color:#607c92;border-color:#cfdeea;background:#f7fafd;border-radius:4px;padding:3px 5px}.case-level{width:6px;height:30px;border-radius:3px;box-shadow:none}

.location-canvas{min-height:360px;padding:48px 22px 31px;background:linear-gradient(145deg,rgba(37,99,235,.035),transparent),repeating-linear-gradient(0deg,transparent,transparent 29px,rgba(74,111,145,.04) 30px),repeating-linear-gradient(90deg,transparent,transparent 29px,rgba(74,111,145,.04) 30px);border-color:#dbe5ef;border-radius:11px}.map-meta{left:16px;right:16px;top:13px;font-size:10px;color:#72899c}.map-meta b{font-size:12px;color:#187d98}.location-canvas .district-board{height:270px}.location-canvas .district-tile{border-radius:9px;background:color-mix(in srgb,var(--tile) 13%,white);clip-path:none;color:#28465e;font-size:12px}.location-canvas .district-tile small{font-size:10px;color:#6d8394}.location-canvas .district-tile.active{box-shadow:inset 0 0 0 2px #3977de,0 8px 20px rgba(44,91,144,.12)}.location-canvas .map-legend-mini{font-size:10px;color:#72899b}.location-canvas .legend-gradient{height:6px;background:linear-gradient(90deg,#78c8bd,#f3c65e,#e96876)}

.network-overview{grid-template-columns:1fr 210px;gap:20px;min-height:290px;border-bottom-color:#dce6ef;padding-bottom:20px}.channel-map{gap:11px;padding:18px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.055),transparent 58%)}.channel-map::before{background:linear-gradient(90deg,transparent,rgba(37,99,235,.13),transparent)}.channel-node{min-height:82px;padding:13px;background:#fff;border-color:#d7e3ee;border-radius:10px;clip-path:none;box-shadow:0 4px 14px rgba(45,78,111,.045)}.channel-node:hover,.channel-node.active{transform:translateY(-3px);border-color:#5b8ee3;background:#f5f9ff}.channel-node span{font-size:11px;color:#526f87}.channel-node strong{font-size:25px}.channel-node small{font-size:9px;color:#8094a5}.network-summary{border-left-color:#dce6ef;padding-left:24px}.network-summary>span{font-size:10px;color:#2563eb}.network-summary>strong{font-size:42px;color:#173857}.network-summary>small{font-size:11px;color:#6f879a}.network-summary>p{font-size:11px;color:#6e8497;line-height:1.8}.network-summary b{color:#138aa6}.type-filter-wrap{gap:14px;padding:16px 2px 4px}.type-filter-wrap>span{font-size:11px;color:#71869a}.ops-page .type-cloud{gap:7px}.ops-page .type-chip{border-radius:6px;background:#fff;padding:6px 9px;clip-path:none;font-size:11px}.ops-page .type-chip:hover,.ops-page .type-chip.active{background:#edf4ff}

.incident-column{background:#fff}.incident-column::before{display:none}.incident-head{padding:20px 18px 15px;border-bottom-color:#dce6ef}.incident-head span{font-size:10px;letter-spacing:.12em;color:#70879b}.incident-head strong{font-size:16px;color:#173958;margin-top:4px}.incident-head>b{font-size:31px;color:#2563eb}.queue-filter{padding:11px 15px;border-bottom-color:#dce6ef}.queue-filter-btn{border-color:#d6e2ed;background:#fff;color:#6f8498;font-size:11px;padding:7px}.queue-filter-btn:last-child{border-color:#d6e2ed}.queue-filter-btn.active{background:#eaf2ff;color:#1f5dc9;box-shadow:inset 0 -2px #2563eb}.incident-feed{padding:5px 15px}.queue-item{grid-template-columns:38px 1fr auto;gap:10px;padding:13px 3px;border-bottom-color:#e5edf4}.queue-item:hover{padding-left:7px;background:linear-gradient(90deg,#f1f7ff,transparent)}.queue-mark{height:38px;border-color:color-mix(in srgb,var(--mark) 45%,#cbd8e4);background:color-mix(in srgb,var(--mark) 7%,white);font-size:9px;border-radius:8px;clip-path:none}.queue-copy strong{font-size:12px;color:#1d3b56}.queue-copy p{font-size:10px;color:#748a9d;margin-top:4px}.queue-time{font-size:9px;color:#8799aa;margin-top:3px}.incident-foot{padding:13px 15px;border-top-color:#dce6ef;font-size:10px;color:#71879b}.incident-foot button{font-size:10px;color:#2563eb}

.pharmacy-mode .drawer-panel{background:#fff;border-left-color:#d7e2ed;box-shadow:-25px 0 60px rgba(30,67,104,.16);color:#17324f}.pharmacy-mode .drawer-top{border-bottom-color:#dce6ef}.pharmacy-mode .drawer-eyebrow{font-size:10px;color:#2563eb}.pharmacy-mode .drawer-title{font-size:19px;color:#173655}.pharmacy-mode .drawer-close{border-color:#d6e2ed;background:#f5f8fb;color:#5f7890}.pharmacy-mode .drawer-close:hover{color:#1d5ecb;background:#eaf2ff}.pharmacy-mode .drawer-section{border-bottom-color:#e0e8f0}.pharmacy-mode .drawer-section-title{font-size:11px;color:#71879a}.pharmacy-mode .evidence-item{border-color:#dce6ef;background:#f7faff}.pharmacy-mode .evidence-key{font-size:10px;color:#71869a}.pharmacy-mode .evidence-value{font-size:12px;color:#1b3b58}.pharmacy-mode .drawer-reason{border-left-color:#e25f70;background:#fff1f3;color:#536b7f;font-size:12px}.pharmacy-mode .drawer-action{border-color:#d5e1ed;background:#f7faff;color:#536f88;font-size:12px}.pharmacy-mode .drawer-action.primary{border-color:#9bbcf3;background:#eaf2ff;color:#1d5ec9}.pharmacy-mode .toast{background:#1f4f83;border-color:#3e79b8;color:#fff}
.pharmacy-mode ::-webkit-scrollbar-thumb{background:#c5d3df}.pharmacy-mode ::-webkit-scrollbar-thumb:hover{background:#aebfce}

@media(max-width:1420px){.ops-shell{grid-template-columns:220px minmax(510px,1fr) 325px}.signal-summary{grid-template-columns:290px 1fr}}
@media(max-width:1100px){.ops-shell{grid-template-columns:205px 1fr}.incident-column{grid-column:1/-1}.incident-feed{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.ops-page{padding:14px 10px}.ops-heading h2{font-size:24px}.ops-heading p{font-size:12px}.ops-shell{display:block}.domain-rail{grid-template-columns:repeat(3,1fr);padding:10px;margin-bottom:12px}.domain-tab{min-height:88px;border-radius:8px}.domain-tab.active{box-shadow:inset 0 -3px #2563eb}.domain-copy strong{font-size:12px}.analysis-deck{min-height:760px}.analysis-head{padding:16px}.analysis-head h3{font-size:17px}.domain-view{padding:14px}.signal-summary{display:block}.signal-brief>strong{font-size:18px}.location-canvas{padding-left:8px;padding-right:8px}.network-overview{display:block}.channel-map{grid-template-columns:1fr 1fr}.network-summary{border-left:0;border-top:1px solid #dce6ef}.incident-column{margin-top:12px}.case-row{grid-template-columns:1fr auto}.case-main strong{font-size:12px}}

/* 异常类型分布图 */
.anomaly-distribution{align-self:center;width:100%;padding:4px 6px 5px}
.distribution-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:15px}
.distribution-title strong{font-size:14px;color:#183a5b}.distribution-title span{font-size:10px;color:#7d91a4}
.distribution-body{display:grid;grid-template-columns:160px minmax(135px,1fr);align-items:center;gap:18px}
.anomaly-donut{width:154px;height:154px;border-radius:50%;position:relative;background:conic-gradient(#ef6475 0 34%,#f29b4b 34% 59%,#f2c84b 59% 77%,#3e7de0 77% 91%,#24a8b8 91% 100%);box-shadow:0 12px 28px rgba(44,84,124,.12);animation:donut-enter .65s cubic-bezier(.2,.75,.2,1) both}
.anomaly-donut::before{content:'';position:absolute;inset:13px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #e2eaf2}
.anomaly-donut::after{content:'';position:absolute;inset:-7px;border:1px dashed #c8d9ea;border-radius:50%}
.donut-center{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut-center strong{font:700 31px/1 var(--font-mono);color:#1f5fd1}.donut-center span{font-size:10px;color:#71879b;margin-top:5px}
@keyframes donut-enter{from{opacity:0;transform:scale(.84) rotate(-35deg)}to{opacity:1;transform:none}}
.anomaly-legend{display:grid;gap:5px}
.anomaly-legend-item{display:grid;grid-template-columns:8px 1fr 24px 28px;align-items:center;gap:6px;width:100%;min-height:29px;padding:4px 5px;border:1px solid transparent;border-radius:6px;background:transparent;color:#587188;text-align:left;cursor:pointer;font:500 10px var(--font);transition:.16s ease}
.anomaly-legend-item i{width:7px;height:7px;border-radius:2px;background:var(--legend)}.anomaly-legend-item b{font:700 11px var(--font-mono);color:#244766;text-align:right}.anomaly-legend-item small{font:500 9px var(--font-mono);color:#8a9cac;text-align:right}
.anomaly-legend-item:hover{background:#f3f7fc;border-color:#dce7f1}.anomaly-legend-item.active{background:#eaf2ff;border-color:#a9c4ee;color:#174d9e}.anomaly-legend-item.active b{color:#175fcf}
@media(max-width:1420px){.distribution-body{grid-template-columns:145px 1fr;gap:12px}.anomaly-donut{width:138px;height:138px}.anomaly-legend-item{grid-template-columns:8px 1fr 22px}.anomaly-legend-item small{display:none}}
@media(max-width:760px){.anomaly-distribution{padding:10px 5px 18px}.distribution-title{margin-bottom:17px}.distribution-body{grid-template-columns:1fr;justify-items:center}.anomaly-donut{width:170px;height:170px}.anomaly-legend{width:100%;grid-template-columns:1fr 1fr;gap:7px}.anomaly-legend-item{grid-template-columns:8px 1fr 23px 28px;padding:6px 8px;background:#f8fbfe;border-color:#e1eaf2}.anomaly-legend-item small{display:block}}

/* 柱状图版本 */
.anomaly-bars-chart{display:grid;grid-template-columns:26px 1fr;gap:7px;height:205px;width:100%}
.bar-axis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:16px 0 29px;color:#91a2b1;font:500 9px var(--font-mono)}
.bar-plot{position:relative;min-width:0}
.bar-grid{position:absolute;inset:16px 0 29px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.bar-grid i{display:block;width:100%;height:1px;background:#e2eaf2}.bar-grid i:last-child{background:#cbd8e4}
.bar-columns{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;align-items:stretch}
.anomaly-bar-item{min-width:0;border:1px solid transparent;border-radius:7px;background:transparent;color:#536f86;padding:0 3px 3px;display:grid;grid-template-rows:16px 1fr 26px;justify-items:center;cursor:pointer;transition:.16s ease;font-family:var(--font)}
.anomaly-bar-item>b{font:700 11px/1 var(--font-mono);color:#284a68;align-self:end}.anomaly-bar-item>.bar-well{width:72%;height:100%;display:flex;align-items:flex-end;justify-content:center;padding-top:5px}.anomaly-bar-item>.bar-well i{display:block;width:100%;height:var(--bar-height);max-width:28px;min-height:4px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,color-mix(in srgb,var(--bar-color) 82%,white),var(--bar-color));box-shadow:0 5px 12px color-mix(in srgb,var(--bar-color) 18%,transparent);transform-origin:bottom;animation:bar-column-rise .65s cubic-bezier(.2,.75,.2,1) both}
.anomaly-bar-item>small{align-self:center;font-size:9px;line-height:1.2;color:#647d92;white-space:normal;text-align:center}
.anomaly-bar-item:hover{background:#f5f9fd;border-color:#dbe6f0}.anomaly-bar-item.active{background:#edf4ff;border-color:#9fbeee}.anomaly-bar-item.active>b,.anomaly-bar-item.active>small{color:#175dc8}.anomaly-bar-item.active>.bar-well i{filter:saturate(1.15);box-shadow:0 7px 16px color-mix(in srgb,var(--bar-color) 28%,transparent)}
@keyframes bar-column-rise{from{transform:scaleY(0);opacity:.25}to{transform:scaleY(1);opacity:1}}
@media(max-width:1420px){.anomaly-bars-chart{height:200px}.bar-columns{gap:4px}.anomaly-bar-item{padding-left:1px;padding-right:1px}.anomaly-bar-item>small{font-size:8px}}
@media(max-width:760px){.anomaly-bars-chart{height:235px;grid-template-columns:28px 1fr}.bar-axis{font-size:10px;padding-bottom:34px}.bar-grid{bottom:34px}.bar-columns{gap:6px}.anomaly-bar-item{grid-template-rows:18px 1fr 32px}.anomaly-bar-item>b{font-size:12px}.anomaly-bar-item>small{font-size:10px}.anomaly-bar-item>.bar-well{width:68%}}

/* 人工导入与规则风险判定 */
.worklist-actions{display:flex;align-items:center;gap:7px}
.manual-import-btn{height:32px;padding:0 12px;border:1px solid #2563eb;border-radius:7px;background:#2563eb;color:#fff;font:650 11px var(--font);cursor:pointer;box-shadow:0 5px 13px rgba(37,99,235,.18);transition:.18s ease}.manual-import-btn span{font-size:15px;margin-right:3px}.manual-import-btn:hover{background:#1e56c7;transform:translateY(-1px)}
.manual-dialog{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:22px;visibility:hidden;pointer-events:none}.manual-dialog.open{visibility:visible;pointer-events:auto}.manual-mask{position:absolute;inset:0;background:rgba(15,40,66,.42);backdrop-filter:blur(4px);opacity:0;transition:.24s ease}.manual-dialog.open .manual-mask{opacity:1}
.manual-panel{position:relative;width:min(760px,96vw);max-height:min(860px,94vh);overflow:auto;border:1px solid #cfdeea;border-radius:18px;background:#fff;box-shadow:0 28px 80px rgba(26,63,101,.24);color:#17324f;transform:translateY(18px) scale(.98);opacity:0;transition:.28s cubic-bezier(.2,.76,.2,1)}.manual-dialog.open .manual-panel{transform:none;opacity:1}
.manual-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:25px 28px 20px;border-bottom:1px solid #dce6ef;background:linear-gradient(135deg,#f8fbff,#eef5ff)}.manual-head span{font:650 9px var(--font-mono);letter-spacing:.17em;color:#2870d6}.manual-head h2{margin:7px 0 5px;font-size:22px;color:#143858}.manual-head p{font-size:11px;color:#758ba0}.manual-head>button{width:32px;height:32px;border:1px solid #d3e0eb;border-radius:8px;background:#fff;color:#6e8498;font-size:19px;cursor:pointer}.manual-head>button:hover{color:#1f5fc8;background:#edf4ff}
.manual-form,.manual-result{padding:23px 28px 26px}.manual-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 18px}.manual-field{display:flex;flex-direction:column;gap:7px;position:relative}.manual-field.manual-wide{grid-column:1/-1}.manual-field>span{font-size:11px;font-weight:650;color:#49657e}.manual-field b{color:#e25265}.manual-field input,.manual-field select,.manual-field textarea{width:100%;border:1px solid #cfdeea;border-radius:8px;background:#f9fbfd;color:#1a3b58;outline:0;font:500 12px var(--font);transition:.16s ease}.manual-field input,.manual-field select{height:42px;padding:0 11px}.manual-field textarea{resize:vertical;min-height:92px;padding:11px;line-height:1.65}.manual-field input:focus,.manual-field select:focus,.manual-field textarea:focus{border-color:#5b8fe2;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.manual-field>small{position:absolute;right:9px;bottom:7px;color:#96a7b6;font-size:9px}.manual-field>small i{font-style:normal}.manual-number{position:relative}.manual-number input{padding-right:35px}.manual-number i{position:absolute;right:13px;top:12px;color:#758b9e;font-style:normal;font-size:11px}
.manual-rule-note{display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding:11px 12px;border:1px solid #d8e5f0;border-radius:8px;background:#f4f8fd;color:#657e93;font-size:10px;line-height:1.6}.manual-rule-note i{width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:#dceaff;color:#2563eb;font-style:normal;font-weight:700;flex:none}.manual-error{min-height:18px;margin:7px 0 0;color:#ce4f61;font-size:11px}
.manual-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:6px;padding-top:17px;border-top:1px solid #e0e8f0}.manual-actions button{height:39px;border-radius:8px;padding:0 16px;font:650 11px var(--font);cursor:pointer}.manual-cancel{border:1px solid #d2dfeb;background:#fff;color:#6b8296}.manual-cancel:hover{background:#f3f7fb}.manual-submit{border:1px solid #2563eb;background:#2563eb;color:#fff;box-shadow:0 6px 14px rgba(37,99,235,.16)}.manual-submit:hover{background:#1d56c4}.manual-submit span{margin-left:8px;font-size:15px}
.manual-result{display:grid;grid-template-columns:145px 1fr;gap:22px}.result-score{min-height:145px;border:1px solid #ccdeee;border-radius:14px;background:radial-gradient(circle at 50% 38%,#fff,#eef5ff);display:flex;flex-direction:column;align-items:center;justify-content:center}.result-score span{font-size:10px;color:#748a9d}.result-score strong{font:750 49px/1 var(--font-mono);color:#2563eb;margin:8px 0 3px}.result-score small{font-size:9px;color:#91a2b1}.result-copy{align-self:center}.result-level{display:inline-flex;padding:5px 9px;border-radius:14px;background:#fff3d6;color:#a56c04;font-size:10px;font-weight:700}.result-level.red{background:#fff0f2;color:#ce4056}.result-level.orange{background:#fff5e8;color:#bf6b12}.result-copy h3{margin:10px 0 7px;font-size:20px}.result-copy p{font-size:11px;color:#6e8497;line-height:1.7}.result-reasons{grid-column:1/-1;padding:15px 17px;border:1px solid #dbe6ef;border-radius:10px;background:#f8fbfe}.result-reasons>strong{font-size:11px}.result-reasons ul{display:grid;grid-template-columns:1fr 1fr;gap:7px 16px;margin:10px 0 0;padding:0;list-style:none}.result-reasons li{position:relative;padding-left:13px;color:#60798e;font-size:10px;line-height:1.5}.result-reasons li::before{content:'';position:absolute;left:0;top:5px;width:5px;height:5px;border-radius:50%;background:#2b73d6}.manual-result .manual-actions{grid-column:1/-1}
.case-row.manual-case{background:linear-gradient(90deg,#f3f8ff,#fff)}.case-row.manual-case .case-main small::after{content:' · 人工导入';color:#2563eb}.case-rule.manual{color:#1f62cd;border-color:#a9c5ef;background:#edf4ff}
@media(max-width:600px){.worklist-head{align-items:flex-start}.worklist-actions{flex-direction:column-reverse;align-items:flex-end}.manual-dialog{padding:8px}.manual-panel{max-height:97vh;border-radius:13px}.manual-head{padding:20px 18px 16px}.manual-form,.manual-result{padding:18px}.manual-grid{grid-template-columns:1fr;gap:13px}.manual-field.manual-wide{grid-column:auto}.manual-result{grid-template-columns:1fr}.result-score{min-height:120px}.result-reasons{grid-column:auto}.result-reasons ul{grid-template-columns:1fr}.manual-result .manual-actions{grid-column:auto}.manual-actions{flex-wrap:wrap}.manual-actions button{flex:1}}
