/* Controls */
.nav-btn{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:7px 12px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface);
  color:var(--text-2);
  cursor:pointer;
  font-size:11.5px;
  font-weight:650;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease;
}
.nav-btn:hover{border-color:var(--line-strong);background:var(--surface-2);color:var(--text)}
.nav-btn:active{background:var(--control)}
.nav-btn:disabled{cursor:not-allowed;opacity:.5}
.nav-btn.is-loading{color:var(--text-3)}
#last-update{color:var(--text-3);font-size:9.5px;font-weight:500}
.nb-badge{
  min-width:18px;
  padding:1px 5px;
  border-radius:99px;
  background:var(--danger);
  color:#fff;
  font-size:9px;
  line-height:16px;
  text-align:center;
}
.nb-badge[hidden]{display:none}
.nav-btn-employees{border-color:rgba(81,215,255,.23);background:rgba(8,27,41,.72);color:#bad9e5}
.nav-btn-employees:hover{border-color:rgba(81,215,255,.42);background:rgba(12,39,57,.82);color:#effbff}
.nb-signal{
  position:relative;
  width:13px;
  height:7px;
  border-top:1px solid rgba(81,215,255,.42);
  border-bottom:1px solid rgba(79,224,162,.42);
}
.nb-signal::after{
  content:"";
  position:absolute;
  top:2px;
  left:1px;
  width:4px;
  height:2px;
  border-radius:99px;
  background:var(--cyber);
  box-shadow:7px 0 0 var(--ok);
  animation:navSignal 2.8s ease-in-out infinite;
}

/* Login */
.login-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    linear-gradient(135deg,rgba(19,38,58,.48),transparent 48%),
    var(--canvas);
}
.login-card{
  width:min(390px,100%);
  padding:36px;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.login-logo{display:flex;align-items:center;gap:14px;margin-bottom:30px}
.login-logo .logo-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid var(--line-strong);
  border-radius:10px;
  background:var(--surface-2);
  color:var(--text);
  font-size:19px;
  font-weight:750;
}
.login-logo h1{font-size:18px;font-weight:700;letter-spacing:-.02em}
.login-logo h1 b{margin-left:5px;color:var(--text-2);font-weight:550}
.login-logo p{
  margin-top:5px;
  color:var(--text-3);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:9.5px;
  font-weight:600;
  letter-spacing:.12em;
}
.login-form{display:flex;flex-direction:column;gap:15px}
.login-field{display:flex;flex-direction:column;gap:7px}
.login-field label{color:var(--text-2);font-size:11px;font-weight:650}
.login-field input{
  width:100%;
  height:42px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  outline:none;
  background:var(--control);
  color:var(--text);
  font-size:13px;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.login-field input:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-soft)}
.login-password{position:relative}
.login-password input{padding-right:62px}
.password-toggle{
  position:absolute;
  right:6px;
  bottom:6px;
  height:30px;
  padding:0 9px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:var(--text-3);
  cursor:pointer;
  font-size:10.5px;
}
.password-toggle:hover{background:var(--surface-2);color:var(--text)}
.login-btn{
  min-height:43px;
  margin-top:4px;
  border:1px solid rgba(142,181,216,.36);
  border-radius:var(--radius-sm);
  background:#173049;
  color:var(--text);
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  letter-spacing:.03em;
  transition:background-color .16s ease,border-color .16s ease;
}
.login-btn:hover{background:#1b3855;border-color:rgba(142,181,216,.55)}
.login-btn:disabled{cursor:not-allowed;opacity:.55}
.login-err{min-height:18px;color:#d8868b;font-size:11.5px;text-align:center}

/* Seven-seat command network */
.command-field{
  height:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
}
.command-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 6px 12px;
  flex-shrink:0;
}
.command-kicker{
  display:flex;
  align-items:center;
  gap:8px;
  color:#648196;
  font-family:"SFMono-Regular",Consolas,monospace;
  font-size:8.5px;
  font-weight:700;
  letter-spacing:.14em;
}
.command-live{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--cyber);
  box-shadow:0 0 12px rgba(81,215,255,.72);
  animation:signalPulse 2.2s ease-in-out infinite;
}
.command-heading h1{
  margin-top:4px;
  color:#eaf7fc;
  font-size:23px;
  font-weight:720;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.command-sync{
  display:flex;
  align-items:center;
  gap:10px;
  color:#587387;
  font-family:"SFMono-Regular",Consolas,monospace;
  font-size:8.5px;
  white-space:nowrap;
}
.command-sync>span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 8px;
  border:1px solid rgba(81,215,255,.18);
  border-radius:99px;
  background:rgba(8,29,43,.68);
  color:#7eb9cf;
  font-weight:700;
}
.command-sync i{
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--ok);
  box-shadow:0 0 9px rgba(79,224,162,.68);
}
.command-sync time{font-variant-numeric:tabular-nums}

.network-stage{
  --parallax-x:0px;
  --parallax-y:0px;
  --grid-x:0px;
  --grid-y:0px;
  --link-x:0px;
  --link-y:0px;
  position:relative;
  isolation:isolate;
  flex:1 1 auto;
  min-height:560px;
  height:auto;
  overflow:hidden;
  border:1px solid rgba(112,185,218,.17);
  border-radius:22px;
  background:
    radial-gradient(circle at 50% 50%,rgba(28,130,169,.16),transparent 19%),
    radial-gradient(ellipse at 50% 50%,rgba(16,61,86,.15),transparent 58%),
    linear-gradient(180deg,rgba(6,19,32,.92),rgba(3,11,21,.96));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015),0 22px 70px rgba(0,0,0,.2);
  perspective:1000px;
}
.network-stage::before,
.network-stage::after{
  content:"";
  position:absolute;
  z-index:8;
  width:42px;
  height:42px;
  pointer-events:none;
  opacity:.62;
}
.network-stage::before{
  top:13px;
  left:13px;
  border-top:1px solid rgba(81,215,255,.48);
  border-left:1px solid rgba(81,215,255,.48);
}
.network-stage::after{
  right:13px;
  bottom:13px;
  border-right:1px solid rgba(81,215,255,.48);
  border-bottom:1px solid rgba(81,215,255,.48);
}
.network-grid{
  position:absolute;
  z-index:0;
  inset:-7%;
  background-image:
    linear-gradient(rgba(81,215,255,.042) 1px,transparent 1px),
    linear-gradient(90deg,rgba(81,215,255,.042) 1px,transparent 1px);
  background-size:42px 42px;
  opacity:.7;
  transform:translate3d(var(--grid-x),var(--grid-y),-30px);
  transition:transform .18s ease-out;
  -webkit-mask-image:radial-gradient(ellipse at center,#000 18%,transparent 76%);
  mask-image:radial-gradient(ellipse at center,#000 18%,transparent 76%);
}
.network-scan{
  position:absolute;
  z-index:2;
  left:0;
  top:0;
  width:100%;
  height:90px;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(81,215,255,.055),transparent);
  opacity:0;
  transform:translate3d(0,-110px,0);
  animation:fieldScan 7.2s ease-in-out infinite;
}
.network-links{
  position:absolute;
  z-index:1;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  color:var(--cyber);
  transform:translate3d(var(--link-x),var(--link-y),-10px);
  transition:transform .18s ease-out;
}
.orbit-rail{
  fill:none;
  stroke:rgba(81,215,255,.11);
  stroke-width:1;
  stroke-dasharray:3 13;
}
.orbit-rail-inner{stroke:rgba(81,215,255,.065);stroke-dasharray:2 18}
.energy-link{color:var(--warn)}
.energy-link[data-health="healthy"]{color:var(--ok)}
.energy-link[data-health="connected"]{color:var(--cyber)}
.energy-link[data-health="offline"]{color:var(--danger)}
.energy-link[data-health="degraded"],
.energy-link[data-health="unpaired"],
.energy-link[data-health="unknown"]{color:var(--warn)}
.energy-rail{
  stroke:currentColor;
  stroke-width:1;
  opacity:.18;
}
.energy-flow{
  transform-box:fill-box;
  transform-origin:left center;
  animation:energyTravel 3.9s ease-in-out infinite;
  animation-delay:var(--flow-delay);
}
.energy-charge{
  stroke:currentColor;
  stroke-width:1.6;
  opacity:.72;
}
.energy-packet{fill:currentColor;opacity:.96}

.network-world{
  position:absolute;
  z-index:3;
  inset:0;
}
.network-node{
  --signal:var(--warn);
  --signal-soft:rgba(237,180,91,.12);
  --signal-glow:rgba(237,180,91,.38);
  position:absolute;
  z-index:3;
  left:var(--node-x);
  top:var(--node-y);
  width:178px;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  text-align:center;
  cursor:pointer;
  transform:translate(-50%,-50%);
}
.network-node[data-health="healthy"]{
  --signal:var(--ok);
  --signal-soft:rgba(79,224,162,.11);
  --signal-glow:rgba(79,224,162,.42);
}
.network-node[data-health="connected"]{
  --signal:var(--cyber);
  --signal-soft:rgba(81,215,255,.11);
  --signal-glow:rgba(81,215,255,.42);
}
.network-node[data-health="offline"]{
  --signal:var(--danger);
  --signal-soft:rgba(255,104,120,.11);
  --signal-glow:rgba(255,104,120,.42);
}
.node-assembly{
  display:flex;
  flex-direction:column;
  align-items:center;
  opacity:0;
  transform:translateY(10px) scale(.97);
  animation:nodeReveal .55s ease-out forwards;
  animation-delay:var(--node-delay);
  transition:transform .18s ease-out;
}
.network-node:hover .node-assembly{transform:translateY(-4px) scale(1.035)}
.network-node:active .node-assembly{transform:translateY(-1px) scale(.99)}
.network-node:focus-visible .node-assembly{outline:2px solid var(--focus);outline-offset:7px;border-radius:18px}
.node-visual{
  position:relative;
  width:100px;
  height:100px;
  display:grid;
  place-items:center;
  animation:nodeBreathe 5.2s ease-in-out infinite;
  animation-delay:var(--float-delay);
}
.portrait-orbit{
  position:absolute;
  inset:0;
  border:1px solid var(--signal);
  border-radius:50%;
  opacity:.34;
  box-shadow:0 0 24px var(--signal-glow),inset 0 0 14px var(--signal-soft);
}
.portrait-orbit::before,
.portrait-orbit::after{
  content:"";
  position:absolute;
  inset:-6px;
  border:1px solid transparent;
  border-top-color:var(--signal);
  border-bottom-color:var(--signal);
  border-radius:50%;
  opacity:.42;
}
.portrait-orbit::after{inset:7px;opacity:.2}
.node-portrait{
  position:absolute;
  inset:9px;
  overflow:hidden;
  border:1px solid rgba(211,239,251,.3);
  border-radius:50%;
  background:var(--surface-2);
  box-shadow:0 10px 30px rgba(0,0,0,.34);
}
.node-portrait::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  box-shadow:inset 0 -18px 28px rgba(2,11,20,.25);
  pointer-events:none;
}
.node-portrait img,
.node-portrait svg{width:100%;height:100%;object-fit:cover}
.node-beacon{
  position:absolute;
  right:4px;
  bottom:14px;
  width:11px;
  height:11px;
  border:2px solid #06121e;
  border-radius:50%;
  background:var(--signal);
  box-shadow:0 0 12px var(--signal-glow);
}
.node-copy{
  min-width:0;
  margin-top:10px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.node-name{
  color:#eff9fd;
  font-size:16px;
  font-weight:720;
  line-height:1.1;
  text-shadow:0 2px 16px rgba(0,0,0,.72);
}
.node-name small{
  margin-left:6px;
  color:#7891a2;
  font-size:9px;
  font-weight:500;
}
.node-role{
  max-width:170px;
  margin-top:5px;
  overflow:hidden;
  color:#6d8394;
  font-size:9.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.node-health{
  margin-top:7px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  border:1px solid var(--signal-soft);
  border-radius:99px;
  background:rgba(4,15,25,.78);
  color:var(--signal);
  font-family:"SFMono-Regular",Consolas,monospace;
  font-size:8.5px;
  font-weight:650;
  white-space:nowrap;
}
.node-health i{
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--signal);
  box-shadow:0 0 8px var(--signal-glow);
}

.network-node--center{z-index:6;width:230px}
.network-node--center .node-assembly{animation-delay:0ms}
.network-node--center .node-visual{width:150px;height:150px;animation:coreFloat 5.8s ease-in-out infinite}
.goode-ring{
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(81,215,255,.4);
  opacity:.72;
}
.goode-ring-a{
  inset:0;
  border-style:dashed;
  animation:ringOrbit 18s linear infinite;
}
.goode-ring-b{
  inset:13px;
  border-color:rgba(81,215,255,.22);
  border-left-color:transparent;
  border-right-color:transparent;
  animation:ringOrbitReverse 12s linear infinite;
}
.goode-core-disc{
  position:relative;
  width:104px;
  height:104px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:1px solid rgba(145,228,255,.55);
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 42%,rgba(81,215,255,.24),rgba(8,35,53,.92) 54%,rgba(3,14,24,.98));
  box-shadow:0 0 34px rgba(81,215,255,.22),inset 0 0 24px rgba(81,215,255,.13);
}
.goode-core-disc::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(164,235,255,.18);
  border-radius:50%;
}
.goode-core-disc::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-30%;
  width:22%;
  background:linear-gradient(90deg,transparent,rgba(202,246,255,.32),transparent);
  opacity:0;
  transform:translateX(0);
  animation:coreSweep 4.6s ease-in-out infinite;
}
.goode-core-disc b{
  position:relative;
  z-index:1;
  color:#e8fbff;
  font-size:40px;
  font-weight:780;
  line-height:1;
  text-shadow:0 0 20px rgba(81,215,255,.65);
}
.goode-core-disc i{
  position:absolute;
  z-index:1;
  bottom:18px;
  color:#72c9e5;
  font-family:"SFMono-Regular",Consolas,monospace;
  font-size:7px;
  font-style:normal;
  font-weight:800;
  letter-spacing:.18em;
}
.network-node--center .node-beacon{right:17px;bottom:29px}
.network-node--center .node-name{font-size:19px}
.network-node--center .node-role{color:#76a6ba}

.command-field.motion-paused .command-live,
.command-field.motion-paused .network-scan,
.command-field.motion-paused .energy-flow,
.command-field.motion-paused .node-assembly,
.command-field.motion-paused .node-visual,
.command-field.motion-paused .goode-ring,
.command-field.motion-paused .goode-core-disc::after,
.command-field.motion-paused .network-world::after{
  animation-play-state:paused!important;
}

@keyframes nodeReveal{
  from{opacity:0;transform:translateY(10px) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes nodeBreathe{
  0%,100%{transform:translateY(0);opacity:.96}
  50%{transform:translateY(-4px);opacity:1}
}
@keyframes coreFloat{
  0%,100%{transform:translateY(0) scale(1);opacity:.97}
  50%{transform:translateY(-5px) scale(1.018);opacity:1}
}
@keyframes energyTravel{
  0%{transform:scaleX(.02);opacity:0}
  14%{opacity:.9}
  76%{opacity:.78}
  100%{transform:scaleX(1);opacity:0}
}
@keyframes fieldScan{
  0%,12%{transform:translate3d(0,-110px,0);opacity:0}
  22%{opacity:.75}
  74%{opacity:.35}
  88%,100%{transform:translate3d(0,720px,0);opacity:0}
}
@keyframes ringOrbit{to{transform:rotate(360deg)}}
@keyframes ringOrbitReverse{to{transform:rotate(-360deg)}}
@keyframes coreSweep{
  0%,58%{transform:translateX(0);opacity:0}
  66%{opacity:.9}
  82%{transform:translateX(620%);opacity:.55}
  90%,100%{transform:translateX(620%);opacity:0}
}
@keyframes signalPulse{
  0%,100%{transform:scale(.85);opacity:.52}
  50%{transform:scale(1.15);opacity:1}
}

@keyframes navSignal{
  0%,100%{opacity:.45;transform:translateX(0)}
  50%{opacity:1;transform:translateX(2px)}
}

/* Employee directory — PC / Weixin dual-channel signal rail */
.employee-mask{
  position:fixed;
  inset:0;
  z-index:240;
  display:none;
  align-items:stretch;
  justify-content:flex-end;
  background:rgba(1,6,12,.76);
  opacity:0;
  transition:opacity .22s ease;
}
.employee-mask.show{opacity:1}
.employee-panel{
  width:min(1180px,96vw);
  height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-left:1px solid rgba(125,195,225,.2);
  background:
    linear-gradient(180deg,rgba(12,27,40,.98),rgba(5,14,24,.99)),
    var(--surface);
  transform:translateX(24px);
  transition:transform .3s cubic-bezier(.16,1,.3,1);
}
.employee-mask.show .employee-panel{transform:translateX(0)}
.employee-head{
  min-height:112px;
  display:flex;
  align-items:flex-start;
  gap:24px;
  padding:24px 28px 20px;
  border-bottom:1px solid var(--line);
  flex-shrink:0;
}
.employee-head>div{flex:1;min-width:0}
.employee-kicker{
  display:flex;
  align-items:center;
  gap:8px;
  color:#6f97aa;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:8.5px;
  font-weight:700;
  letter-spacing:.14em;
}
.employee-kicker span{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--ok);
  box-shadow:0 0 12px rgba(79,224,162,.62);
  animation:signalPulse 2.4s ease-in-out infinite;
}
.employee-head h2{margin-top:6px;color:#edf9fd;font-size:22px;font-weight:720;letter-spacing:-.035em}
.employee-head p:not(.employee-kicker){margin-top:6px;color:var(--text-3);font-size:10.5px}
.employee-close{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface);
  color:var(--text-3);
  cursor:pointer;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease;
}
.employee-close:hover{border-color:rgba(255,104,120,.36);background:var(--danger-soft);color:#e69aa2}
.employee-legend{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:18px;
  padding:8px 28px;
  border-bottom:1px solid var(--line-soft);
  color:var(--text-3);
  font-size:9.5px;
  flex-shrink:0;
}
.employee-legend>span{display:inline-flex;align-items:center;gap:6px}
.employee-legend a{margin-left:auto;color:#78bcd2;font-weight:650;transition:color .16s ease}
.employee-legend a:hover{color:#d9f6ff}
.channel-dot{width:6px;height:6px;border-radius:50%;background:var(--off)}
.channel-dot.online{background:var(--ok);box-shadow:0 0 8px rgba(79,224,162,.48)}
.channel-dot.attention{background:var(--warn)}
.channel-dot.offline{background:var(--danger)}
.employee-body{flex:1;min-height:0;overflow:auto;padding:0 28px 36px}
.employee-directory{min-width:980px}
.employee-row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(210px,1.1fr) minmax(180px,.85fr) minmax(260px,1.2fr) minmax(310px,1.35fr);
  align-items:center;
  gap:20px;
  min-height:104px;
  padding:18px 0;
  border-bottom:1px solid var(--line-soft);
  opacity:0;
  transform:translateY(7px);
  animation:employeeRowIn .38s ease-out forwards;
  animation-delay:var(--row-delay);
}
.employee-row::before{
  content:"";
  position:absolute;
  inset:0 -14px;
  z-index:-1;
  background:rgba(81,215,255,.025);
  opacity:0;
  transition:opacity .16s ease;
}
.employee-row:hover::before{opacity:1}
.employee-identity{min-width:0;display:flex;align-items:center;gap:13px}
.employee-avatar{
  width:54px;
  height:54px;
  flex:0 0 54px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:1px solid rgba(139,199,223,.25);
  border-radius:13px;
  background:var(--surface-2);
}
.employee-avatar img,.employee-avatar svg{width:100%;height:100%;object-fit:cover}
.employee-person{min-width:0;display:flex;flex-direction:column}
.employee-person strong{overflow:hidden;color:#f0f8fb;font-size:14px;font-weight:720;text-overflow:ellipsis;white-space:nowrap}
.employee-person strong small{margin-left:7px;color:#718a9b;font-size:9px;font-weight:500}
.employee-person>span{margin-top:5px;overflow:hidden;color:var(--text-3);font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}
.employee-account{min-width:0;display:flex;flex-direction:column;gap:6px}
.employee-account label{color:#597588;font-size:8.5px;font-weight:650;letter-spacing:.05em}
.employee-account input{
  width:100%;
  height:36px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  outline:none;
  background:var(--control);
  color:var(--text);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:10.5px;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.employee-account input:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-soft)}
.employee-signal-rail{
  --rail-color:var(--warn);
  display:grid;
  grid-template-columns:minmax(78px,1fr) minmax(68px,.8fr) minmax(78px,1fr);
  align-items:center;
  gap:10px;
}
.employee-signal-rail[data-state="online"]{--rail-color:var(--ok)}
.employee-signal-rail[data-state="offline"]{--rail-color:var(--danger)}
.employee-channel{
  --channel-color:var(--warn);
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
}
.employee-channel[data-state="online"]{--channel-color:var(--ok)}
.employee-channel[data-state="offline"]{--channel-color:var(--danger)}
.channel-node{
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--channel-color) 36%,transparent);
  border-radius:50%;
  background:color-mix(in srgb,var(--channel-color) 8%,transparent);
}
.channel-node i{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--channel-color);
  box-shadow:0 0 9px color-mix(in srgb,var(--channel-color) 58%,transparent);
}
.channel-copy{min-width:0;display:flex;flex-direction:column;line-height:1.05}
.channel-copy b{color:#b8cbd6;font-size:9px;font-weight:700}
.channel-copy small{margin-top:4px;overflow:hidden;color:var(--channel-color);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.channel-track{position:relative;height:1px;background:color-mix(in srgb,var(--rail-color) 24%,transparent)}
.channel-track::before,.channel-track::after{
  content:"";
  position:absolute;
  top:-2px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--rail-color);
  opacity:.55;
}
.channel-track::before{left:0}.channel-track::after{right:0}
.channel-track i{
  position:absolute;
  top:-1px;
  left:0;
  width:14px;
  height:3px;
  border-radius:99px;
  background:linear-gradient(90deg,transparent,var(--rail-color),transparent);
  box-shadow:0 0 10px color-mix(in srgb,var(--rail-color) 50%,transparent);
  animation:dualChannelTravel 3s ease-in-out infinite;
}
.employee-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.employee-actions button,.employee-error button,.employee-secret-slot button{
  min-height:32px;
  padding:6px 9px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text-2);
  cursor:pointer;
  font-size:9.5px;
  font-weight:650;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease;
}
.employee-actions button:hover,.employee-error button:hover,.employee-secret-slot button:hover{border-color:var(--line-strong);background:var(--surface-3);color:var(--text)}
.employee-actions button:disabled,.employee-secret-slot button:disabled{cursor:wait;opacity:.55}
.employee-state-toggle{display:inline-flex;align-items:center;gap:6px}
.employee-state-toggle i{width:6px;height:6px;border-radius:50%;background:var(--off)}
.employee-state-toggle[aria-pressed="true"]{border-color:rgba(79,224,162,.24);color:#83d6a9}
.employee-state-toggle[aria-pressed="true"] i{background:var(--ok);box-shadow:0 0 8px rgba(79,224,162,.46)}
.employee-secret-slot{
  grid-column:1/-1;
  min-height:46px;
  display:grid;
  grid-template-columns:auto minmax(180px,1fr) auto;
  align-items:center;
  gap:14px;
  margin-top:-6px;
  padding:9px 10px;
  border:1px solid rgba(237,180,91,.24);
  border-radius:var(--radius-sm);
  background:rgba(237,180,91,.055);
}
.employee-secret-slot[hidden]{display:none}
.employee-secret-slot>span{display:flex;flex-direction:column}
.employee-secret-slot b{color:#e3be7e;font-size:9.5px}
.employee-secret-slot small{margin-top:3px;color:#806f58;font-size:8px}
.employee-secret-slot code{overflow:hidden;color:#f5e5c8;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;text-overflow:ellipsis;white-space:nowrap;user-select:all}
.employee-loading,.employee-empty,.employee-error{
  min-height:320px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:var(--text-3);
  text-align:center;
}
.employee-loading i{width:26px;height:26px;border:1px solid var(--line);border-top-color:var(--cyber);border-radius:50%;animation:employeeSpin .8s linear infinite}
.employee-loading span,.employee-empty p,.employee-error p{font-size:10px}
.employee-empty-mark{color:#284559;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:30px;font-weight:750}
.employee-empty strong,.employee-error strong{color:var(--text-2);font-size:13px}

@keyframes employeeRowIn{to{opacity:1;transform:translateY(0)}}
@keyframes employeeSpin{to{transform:rotate(360deg)}}
@keyframes dualChannelTravel{
  0%,12%{left:0;opacity:0}
  28%{opacity:1}
  78%{opacity:.85}
  100%{left:calc(100% - 14px);opacity:0}
}

/* Goode organization-memory governance — read-only, evidence-first */
.memory-audit-mask{
  position:fixed;
  inset:0;
  z-index:270;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(1,6,12,.82);
  opacity:0;
  transition:opacity .2s ease;
}
.memory-audit-mask.show{opacity:1}
.memory-audit-panel{
  width:min(1240px,100%);
  height:min(880px,calc(100vh - 40px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(125,195,225,.2);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg,rgba(10,25,39,.995),rgba(5,14,24,.995));
  box-shadow:0 32px 96px rgba(0,0,0,.42);
  transform:translateY(8px);
  transition:transform .22s cubic-bezier(.16,1,.3,1);
}
.memory-audit-mask.show .memory-audit-panel{transform:translateY(0)}
.memory-audit-head{
  min-height:92px;
  display:flex;
  align-items:flex-start;
  gap:24px;
  padding:20px 24px 16px;
  border-bottom:1px solid var(--line);
}
.memory-audit-head>div{flex:1;min-width:0}
.memory-audit-kicker{
  display:flex;
  align-items:center;
  gap:8px;
  color:#6f97aa;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em;
}
.memory-audit-kicker span{width:6px;height:6px;border-radius:50%;background:var(--focus)}
.memory-audit-head h2{margin-top:4px;color:var(--text);font-size:22px;font-weight:720;letter-spacing:-.03em}
.memory-audit-head p:not(.memory-audit-kicker){margin-top:4px;color:var(--text-3);font-size:11px}
.memory-audit-close{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface);
  color:var(--text-3);
  cursor:pointer;
}
.memory-audit-close:hover{border-color:rgba(255,104,120,.36);background:var(--danger-soft);color:#e69aa2}
.memory-audit-boundary{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 24px;
  border-bottom:1px solid var(--line-soft);
  background:rgba(81,215,255,.025);
}
.memory-audit-boundary>span{
  padding:3px 7px;
  border:1px solid rgba(81,215,255,.25);
  border-radius:var(--radius-sm);
  color:#86c9dc;
  font-size:9px;
  font-weight:700;
}
.memory-audit-boundary p{flex:1;color:var(--text-3);font-size:10px;line-height:1.5}
.memory-audit-boundary p strong{margin-right:6px;color:var(--text-2);font-weight:650}
.memory-audit-boundary>b{color:var(--text-3);font-size:10px;font-weight:650;white-space:nowrap}
.memory-audit-boundary>b[data-state="ok"]{color:var(--ok)}
.memory-audit-boundary>b[data-state="danger"]{color:var(--danger)}
.memory-audit-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-bottom:1px solid var(--line-soft);
}
.memory-audit-summary>div{min-width:0;padding:12px 24px;border-right:1px solid var(--line-soft)}
.memory-audit-summary>div:last-child{border-right:0}
.memory-audit-summary span{display:block;color:var(--text-3);font-size:9px}
.memory-audit-summary strong{display:block;margin-top:4px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:19px;font-weight:720}
.memory-audit-summary [data-tone="ok"] strong{color:var(--ok)}
.memory-audit-summary [data-tone="warn"] strong{color:var(--warn)}
.memory-audit-summary [data-tone="danger"] strong{color:var(--danger)}
.memory-audit-toolbar{position:relative;display:flex;flex-direction:column;gap:8px;padding:12px 24px;border-bottom:1px solid var(--line)}
.memory-audit-tabs{display:flex;align-items:center;gap:4px}
.memory-audit-tabs button{
  min-height:44px;
  padding:8px 12px;
  border:0;
  border-bottom:2px solid transparent;
  background:transparent;
  color:var(--text-3);
  cursor:pointer;
  font-size:11px;
  font-weight:650;
}
.memory-audit-tabs button:hover{color:var(--text-2)}
.memory-audit-tabs button.is-active{border-bottom-color:var(--focus);color:var(--text)}
.memory-audit-filters{display:flex;align-items:flex-end;gap:8px}
.memory-audit-filters label{min-width:136px;display:flex;flex-direction:column;gap:4px}
.memory-audit-filters label>span{color:var(--text-3);font-size:8px;font-weight:650;letter-spacing:.04em}
.memory-audit-filters select,.memory-audit-filters input,.memory-audit-refresh{
  height:44px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  outline:none;
  background:var(--control);
  color:var(--text-2);
  font-size:10.5px;
}
.memory-audit-filters select:focus,.memory-audit-filters input:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-soft)}
.memory-audit-search{flex:1}
.memory-audit-refresh{min-width:72px;background:var(--surface-2);cursor:pointer;font-weight:650}
.memory-audit-refresh:hover{border-color:var(--line-strong);color:var(--text)}
.memory-audit-refresh:disabled{cursor:wait;opacity:.55}
.memory-audit-workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr)}
.memory-audit-list-pane{min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}
.memory-audit-list-head{height:44px;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--line-soft)}
.memory-audit-list-head b{flex:1;color:var(--text-2);font-size:10px;font-weight:700}
.memory-audit-list-head span{color:var(--text-3);font-size:9px}
.memory-audit-list{flex:1;min-height:0;overflow-y:auto}
.memory-audit-row{
  width:100%;
  min-height:80px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  border:0;
  border-bottom:1px solid var(--line-soft);
  background:transparent;
  color:inherit;
  cursor:pointer;
  text-align:left;
  transition:background-color .14s ease,border-color .14s ease;
}
.memory-audit-row:hover{background:rgba(81,215,255,.035)}
.memory-audit-row.is-selected{border-left:2px solid var(--focus);background:rgba(81,215,255,.07);padding-left:14px}
.memory-audit-row-main{min-width:0;display:block}
.memory-audit-row-main strong{display:-webkit-box;overflow:hidden;color:var(--text-2);font-size:11px;font-weight:650;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.memory-audit-row-main small{display:block;margin-top:4px;overflow:hidden;color:var(--text-3);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.memory-audit-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:var(--text-3);font-size:8px}
.memory-audit-row-meta>span{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.memory-audit-row-meta b,.memory-audit-detail-head>b{
  padding:3px 7px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text-3);
  font-size:8px;
  font-weight:700;
}
.memory-audit-row-meta b[data-tone="ok"],.memory-audit-detail-head>b[data-tone="ok"]{border-color:rgba(79,224,162,.25);background:var(--ok-soft);color:var(--ok)}
.memory-audit-row-meta b[data-tone="warn"],.memory-audit-detail-head>b[data-tone="warn"]{border-color:rgba(237,180,91,.25);background:var(--warn-soft);color:var(--warn)}
.memory-audit-row-meta b[data-tone="danger"],.memory-audit-detail-head>b[data-tone="danger"]{border-color:rgba(255,104,120,.25);background:var(--danger-soft);color:var(--danger)}
.memory-audit-detail{min-width:0;overflow-y:auto;padding:24px 28px 32px}
.memory-audit-detail-head{display:flex;align-items:flex-start;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}
.memory-audit-detail-head>div{flex:1;min-width:0}
.memory-audit-detail-head span{color:var(--text-3);font-size:9px}
.memory-audit-detail-head h3{margin-top:6px;color:var(--text);font-size:16px;font-weight:680;line-height:1.5}
.memory-audit-detail-source{margin-top:8px;color:var(--text-3);font-size:9px}
.memory-audit-copy{margin-top:20px;padding-left:12px;border-left:2px solid rgba(81,215,255,.42)}
.memory-audit-copy h4,.memory-audit-section h4{color:var(--text-2);font-size:10px;font-weight:700}
.memory-audit-copy p{margin-top:8px;color:var(--text);font-size:13px;line-height:1.75;white-space:pre-wrap}
.memory-audit-copy small{display:block;margin-top:6px;color:var(--text-3);font-size:10px;line-height:1.6}
.memory-audit-definitions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:20px;border-top:1px solid var(--line-soft)}
.memory-audit-definitions>div{min-width:0;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.memory-audit-definitions>div:nth-child(odd){padding-right:16px}
.memory-audit-definitions>div:nth-child(even){padding-left:16px;border-left:1px solid var(--line-soft)}
.memory-audit-definitions dt,.memory-audit-evidence-row dt{color:var(--text-3);font-size:8px}
.memory-audit-definitions dd,.memory-audit-evidence-row dd{margin-top:4px;color:var(--text-2);font-size:10px;line-height:1.55;overflow-wrap:anywhere}
.memory-audit-definitions dd.is-mono,.memory-audit-evidence-row dd.is-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px}
.memory-audit-section{margin-top:24px}
.memory-audit-section>h4{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}
.memory-audit-section>h4 span{color:var(--text-3);font-size:8px;font-weight:500}
.memory-audit-section pre{margin-top:12px;overflow:auto;padding:16px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--control);color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.memory-audit-evidence{display:flex;flex-direction:column}
.memory-audit-evidence-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.memory-audit-evidence-row>span{display:flex;flex-direction:column;gap:4px}
.memory-audit-evidence-row>span b{color:var(--text-2);font-size:9px}
.memory-audit-evidence-row>span small{color:var(--text-3);font-size:8px}
.memory-audit-evidence-row dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
.memory-audit-inline-empty{padding:20px 0;color:var(--text-3);font-size:10px}
.memory-audit-loading,.memory-audit-empty,.memory-audit-error,.memory-audit-detail-empty{
  min-height:260px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:24px;
  color:var(--text-3);
  text-align:center;
}
.memory-audit-loading i{width:24px;height:24px;border:1px solid var(--line);border-top-color:var(--focus);border-radius:50%;animation:employeeSpin .8s linear infinite}
.memory-audit-loading span,.memory-audit-empty span,.memory-audit-error span,.memory-audit-detail-empty span{color:var(--text-2);font-size:11px;font-weight:650}
.memory-audit-empty p,.memory-audit-error p,.memory-audit-detail-empty p{font-size:9px;line-height:1.6}
.memory-audit-error button{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);cursor:pointer}
.memory-audit-back{display:none;min-height:44px;margin-bottom:12px;padding:8px 0;border:0;background:transparent;color:#86c9dc;cursor:pointer;font-size:10px;font-weight:650}

@media (max-width:760px){
  .memory-audit-mask{align-items:stretch;padding:0}
  .memory-audit-panel{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}
  .memory-audit-head{min-height:84px;padding:16px}
  .memory-audit-head h2{font-size:20px}
  .memory-audit-kicker{font-size:8px}
  .memory-audit-boundary{padding:8px 16px}
  .memory-audit-boundary p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .memory-audit-boundary>b{display:none}
  .memory-audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .memory-audit-summary>div{padding:10px 16px}
  .memory-audit-summary>div:nth-child(2){border-right:0}
  .memory-audit-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}
  .memory-audit-toolbar{padding:8px 16px 12px}
  .memory-audit-tabs{overflow-x:auto}
  .memory-audit-tabs button{white-space:nowrap}
  .memory-audit-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .memory-audit-filters label{min-width:0}
  .memory-audit-search{grid-column:1/-1}
  .memory-audit-refresh{position:absolute;right:16px;margin-top:-52px}
  .memory-audit-workspace{display:block;overflow:hidden}
  .memory-audit-list-pane,.memory-audit-detail{width:100%;height:100%}
  .memory-audit-list-pane{border-right:0}
  .memory-audit-detail{display:none;padding:16px 16px 28px}
  .memory-audit-workspace.show-detail .memory-audit-list-pane{display:none}
  .memory-audit-workspace.show-detail .memory-audit-detail{display:block}
  .memory-audit-back{display:inline-flex;align-items:center}
  .memory-audit-definitions{grid-template-columns:1fr}
  .memory-audit-definitions>div:nth-child(odd),.memory-audit-definitions>div:nth-child(even){padding:12px 0;border-left:0}
  .memory-audit-evidence-row{grid-template-columns:1fr;gap:8px}
  .memory-audit-evidence-row dl{grid-template-columns:1fr}
}

/* Shared overlays and details */
.modal-mask,.qr-mask,.log-mask{
  position:fixed;
  inset:0;
  display:none;
  background:rgba(3,8,13,.7);
  z-index:100;
}
.modal-mask{align-items:stretch;justify-content:flex-end}
.modal-mask.show,.qr-mask.show,.log-mask.show{display:flex}
.modal-panel{
  position:relative;
  width:540px;
  max-width:94vw;
  height:100%;
  display:flex;
  flex-direction:column;
  gap:16px;
  overflow-y:auto;
  padding:24px 26px;
  border-left:1px solid var(--line);
  background:var(--surface);
  animation:slideIn .18s ease-out;
}
.modal-close,.qr-close,.log-close{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface);
  color:var(--text-3);
  cursor:pointer;
  transition:border-color .16s ease,color .16s ease,background-color .16s ease;
}
.modal-close:hover,.qr-close:hover,.log-close:hover{border-color:rgba(167,79,85,.45);background:var(--danger-soft);color:#d8898e}
.modal-panel>.modal-close{position:absolute;top:22px;right:22px;z-index:2}
.modal-head{display:flex;align-items:center;gap:13px;padding:0 42px 16px 0;border-bottom:1px solid var(--line)}
.modal-avatar{width:62px;height:62px;flex:0 0 62px;overflow:hidden;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.modal-avatar img,.modal-avatar svg{width:100%;height:100%;object-fit:cover}
.modal-head h2{font-size:18px;font-weight:720;letter-spacing:-.025em}
.modal-real{margin-left:6px;color:var(--text-2);font-size:10.5px;font-weight:450}
.modal-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px;color:var(--text-3);font-size:10px}
.modal-meta b{color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.badge,.health-inline{
  display:inline-flex;
  align-items:center;
  padding:3px 7px;
  border:1px solid var(--line);
  border-radius:99px;
  background:var(--surface-2);
  color:var(--text-2);
  font-size:9.5px;
  font-weight:650;
}
.badge.active,.health-inline[data-health="healthy"]{border-color:rgba(79,157,115,.32);background:var(--ok-soft);color:#78bc94}
.badge.warn,.badge.init,.health-inline[data-health="connected"],.health-inline[data-health="degraded"],.health-inline[data-health="unpaired"],.health-inline[data-health="unknown"]{border-color:rgba(185,135,67,.34);background:var(--warn-soft);color:#d0a263}
.badge.offline,.health-inline[data-health="offline"]{border-color:rgba(167,79,85,.36);background:var(--danger-soft);color:#c9787e}
.modal-body{display:flex;flex-direction:column;gap:12px}
.health-overview{display:flex;flex-direction:column;gap:8px}
.health-overview-head{display:flex;align-items:center;justify-content:space-between;color:var(--text-2);font-size:10.5px}
.health-overview-head b{font-size:10.5px}
.health-overview-head [data-health="healthy"]{color:#78bc94}
.health-overview-head [data-health="connected"],.health-overview-head [data-health="degraded"],.health-overview-head [data-health="unpaired"],.health-overview-head [data-health="unknown"]{color:#d0a263}
.health-overview-head [data-health="offline"]{color:#c9787e}
.detail-lifeline{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  overflow:hidden;
  border:1px solid var(--line-soft);
  border-radius:var(--radius-sm);
  background:var(--control);
}
.detail-life-step{
  position:relative;
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px;
  border-right:1px solid var(--line-soft);
}
.detail-life-step:last-child{border-right:0}
.detail-life-step:not(:last-child)::after{
  content:"›";
  position:absolute;
  right:-4px;
  z-index:1;
  padding:1px;
  background:var(--control);
  color:var(--text-3);
  font-size:11px;
}
.detail-life-index{
  color:#486277;
  font-family:"SFMono-Regular",Consolas,monospace;
  font-size:8px;
}
.detail-life-copy{min-width:0}
.detail-life-copy small{display:block;color:var(--text-3);font-size:8px}
.detail-life-copy strong{
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:var(--text-2);
  font-size:9px;
  font-weight:680;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.detail-life-step[data-state="success"] .detail-life-index,
.detail-life-step[data-state="success"] strong{color:var(--ok)}
.detail-life-step[data-state="warn"] .detail-life-index,
.detail-life-step[data-state="warn"] strong{color:var(--warn)}
.detail-life-step[data-state="failed"] .detail-life-index,
.detail-life-step[data-state="failed"] strong{color:var(--danger)}
.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.health-item{min-width:0;padding:10px 11px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2)}
.health-item[data-state="success"]{border-color:rgba(79,157,115,.25)}
.health-item[data-state="warn"]{border-color:rgba(185,135,67,.27)}
.health-item[data-state="failed"]{border-color:rgba(167,79,85,.32);background:var(--danger-soft)}
.health-label{color:var(--text-3);font-size:9px}
.health-value{margin-top:4px;overflow:hidden;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.health-item[data-state="success"] .health-value{color:#78bc94}
.health-item[data-state="warn"] .health-value{color:#d0a263}
.health-item[data-state="failed"] .health-value{color:#c9787e}
.health-detail{margin-top:4px;overflow:hidden;color:var(--text-3);font-size:8.8px;text-overflow:ellipsis;white-space:nowrap}
.modal-row,.modal-spark{padding:11px 12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2)}
.modal-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.modal-row .rk,.modal-spark .rk{color:var(--text-2);font-size:10.5px}
.modal-row .rv{overflow:hidden;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;text-align:right;text-overflow:ellipsis;white-space:nowrap}
.modal-spark{display:flex;flex-direction:column;gap:8px}
.modal-spark canvas{width:100%;max-width:100%;border-radius:4px;background:var(--control)}
.modal-section{margin-top:2px}
.modal-section h4,.goode-section h4{margin-bottom:8px;color:var(--text-2);font-size:10px;font-weight:700;letter-spacing:.08em}
.soul-text{
  width:100%;
  min-height:126px;
  resize:vertical;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  outline:none;
  background:var(--control);
  color:var(--text-2);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:10.5px;
  line-height:1.6;
}
.soul-text:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-soft)}
.conv-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}
.conv-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:border-color .16s ease,background-color .16s ease}
.conv-item:hover{border-color:var(--line-strong);background:var(--surface-3)}
.conv-time{color:var(--text-3);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9.5px}
.conv-snip{overflow:hidden;color:var(--text-2);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
.empty{padding:18px;color:var(--text-3);font-size:11px;text-align:center}
.modal-foot{display:flex;gap:8px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line)}
.btn-act{
  flex:1;
  min-width:90px;
  min-height:36px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text-2);
  cursor:pointer;
  font-size:10.5px;
  font-weight:650;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease;
}
.btn-act:hover{border-color:var(--line-strong);background:var(--surface-3);color:var(--text)}
.btn-act.primary{border-color:rgba(142,181,216,.38);background:#173049;color:var(--text)}
.btn-act.warn{border-color:rgba(185,135,67,.3);color:#d0a263}
.btn-act.danger{border-color:rgba(167,79,85,.32);color:#c9787e}

/* Goode console */
.goode-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.gs-cell{padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2)}
.gs-num{display:block;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:21px;font-weight:720;line-height:1.1}
.gs-num .unit{color:var(--text-3);font-size:12px;font-weight:500}
.gs-lbl{display:block;margin-top:5px;color:var(--text-3);font-size:9.5px}
.goode-section{margin-top:4px}
.cmd-list{display:grid;gap:6px}
.cmd-row{
  min-height:38px;
  padding:9px 11px;
  border:1px solid var(--line-soft);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text-2);
  text-align:left;
  font-size:10.5px;
}
.cmd-row:disabled{cursor:not-allowed;opacity:.52}
.ticker{max-height:190px;overflow:auto;padding:4px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--control)}
.ticker-line{padding:8px 0;border-bottom:1px solid var(--line-soft);color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9.5px;line-height:1.5}
.ticker-line:last-child{border-bottom:0}
.memory-search{width:100%;height:38px;padding:0 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--control);color:var(--text-2);font-size:11px}
.memory-search:disabled{opacity:.62}
.memory-hint{margin-top:6px;color:var(--text-3);font-size:9.5px}
.console-note{padding:11px 12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);font-size:10.5px;line-height:1.65}

/* QR pairing */
.qr-mask{align-items:center;justify-content:center;z-index:300;padding:20px}
.qr-modal{width:520px;max-width:100%;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 26px 80px rgba(0,0,0,.35);animation:riseIn .18s ease-out}
.qr-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.qr-head h3{flex:1;font-size:14px;font-weight:700}
.qr-body{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:22px}
.qr-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%}
.qr-step{display:flex;align-items:center;gap:5px;justify-content:center;padding:6px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-3);font-size:9.5px;white-space:nowrap}
.step-num{width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:var(--control);font-size:9px;font-weight:700}
.qr-step.active{border-color:rgba(185,135,67,.34);background:var(--warn-soft);color:#d0a263}
.qr-step.active .step-num{background:var(--warn);color:#10151b}
.qr-step.done{border-color:rgba(79,157,115,.32);background:var(--ok-soft);color:#78bc94}
.qr-step.done .step-num{background:var(--ok);color:#07100a}
.qr-img-wrap{min-width:270px;min-height:270px;display:grid;place-items:center;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}
.qr-body img{max-width:240px;max-height:240px;background:#fff}
.qr-loading{max-width:230px;color:#35475a;font-size:12px;line-height:1.5;text-align:center}
.qr-url{max-width:100%;color:var(--text-3);font-size:9.5px;line-height:1.5;text-align:center;word-break:break-all}
.qr-foot{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line);color:var(--text-3);font-size:10px}
.qr-meta{flex:1}
.qr-timer{padding:3px 7px;border:1px solid var(--line);border-radius:99px;background:var(--surface-2);color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* Logs */
.log-mask{align-items:stretch;justify-content:flex-end;z-index:250}
.log-panel{width:620px;max-width:95vw;height:100%;display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--surface);animation:slideIn .18s ease-out}
.log-head{position:relative;display:flex;flex-direction:column;gap:12px;padding:17px 52px 15px 20px;border-bottom:1px solid var(--line)}
.log-head h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700}
.log-count{padding:2px 6px;border:1px solid var(--line);border-radius:99px;background:var(--surface-2);color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px}
.log-close{position:absolute;top:15px;right:16px}
.log-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.log-filters select,.log-filters input{height:34px;padding:0 9px;border:1px solid var(--line);border-radius:var(--radius-sm);outline:none;background:var(--control);color:var(--text-2);font-size:10.5px}
.log-filters select:focus,.log-filters input:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-soft)}
.log-filters input{flex:1;min-width:140px}
.log-body{flex:1;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}
.log-line{display:grid;grid-template-columns:82px 52px 58px minmax(0,1fr);gap:9px;align-items:start;padding:9px 20px;border-bottom:1px solid var(--line-soft)}
.log-line:hover{background:rgba(155,177,203,.035)}
.log-line.warn{background:rgba(185,135,67,.045)}
.log-line.error{background:rgba(167,79,85,.055)}
.log-ts{color:var(--text-3);font-variant-numeric:tabular-nums}
.log-lv{padding:2px 5px;border-radius:4px;color:var(--text-3);font-size:8.5px;font-weight:700;text-align:center;text-transform:uppercase}
.log-lv.info{background:var(--focus-soft);color:var(--focus)}
.log-lv.warn{background:var(--warn-soft);color:#d0a263}
.log-lv.error{background:var(--danger-soft);color:#c9787e}
.log-cat{overflow:hidden;color:var(--text-3);text-overflow:ellipsis;white-space:nowrap}
.log-msg{min-width:0;color:var(--text-2);line-height:1.55;word-break:break-word}
.log-meta{margin-top:4px;color:var(--text-3);font-size:9px;white-space:pre-wrap}
.log-empty{padding:60px 20px;color:var(--text-3);text-align:center}

/* Feedback */
.toast{
  position:fixed;
  right:22px;
  bottom:58px;
  z-index:400;
  max-width:min(360px,calc(100vw - 28px));
  padding:10px 13px;
  border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text);
  box-shadow:0 14px 34px rgba(0,0,0,.3);
  font-size:11px;
  opacity:0;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .16s ease,transform .16s ease;
}
.toast.show{opacity:1;transform:translateY(0)}
.toast.err{border-color:rgba(167,79,85,.52);color:#d8898e}

@media (max-width:620px){
  .login-card{padding:28px 22px}
  .modal-panel{max-width:100vw;width:100%;padding:20px 16px}
  .modal-panel>.modal-close{top:18px;right:16px}
  .modal-head{padding-right:40px}
  .health-grid{grid-template-columns:1fr}
  .conv-item{grid-template-columns:1fr;gap:4px}
  .qr-mask{padding:10px}
  .qr-body{min-height:360px;padding:18px 14px}
  .qr-steps{grid-template-columns:repeat(2,1fr)}
  .qr-img-wrap{min-width:250px;min-height:250px}
  .log-panel{max-width:100vw;width:100%}
  .log-line{grid-template-columns:72px 44px minmax(0,1fr)}
  .log-cat{display:none}
  .toast{right:14px;bottom:54px}
  .employee-panel{width:100vw;max-width:100vw}
  .employee-head{min-height:102px;padding:20px 16px 16px}
  .employee-head h2{font-size:19px}
  .employee-legend{padding-inline:16px;gap:11px;overflow-x:auto}
  .employee-legend a{margin-left:4px;white-space:nowrap}
  .employee-body{padding:0 16px 28px}
  .employee-directory{min-width:900px}
}

@media (max-width:1040px) and (min-width:821px){
  .network-node{width:158px}
  .node-visual{width:88px;height:88px}
  .network-node--center{width:205px}
  .network-node--center .node-visual{width:132px;height:132px}
  .goode-core-disc{width:92px;height:92px}
  .goode-core-disc b{font-size:35px}
  .node-name{font-size:14px}
}

@media (max-width:820px){
  .command-heading{padding:2px 16px 12px}
  .command-heading h1{font-size:20px}
  .command-sync time{display:none}
  .network-stage{
    min-height:420px;
    height:auto;
    overflow-x:auto;
    overflow-y:hidden;
    border-right:0;
    border-left:0;
    border-radius:0;
    scroll-behavior:smooth;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .network-stage::-webkit-scrollbar{display:none}
  .network-stage::before,.network-stage::after{display:none}
  .network-grid{
    inset:0 auto 0 0;
    width:1120px;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
    transform:none;
  }
  .network-scan{width:1120px}
  .network-links{display:none}
  .network-world{
    inset:0 auto 0 0;
    width:1120px;
    min-width:1120px;
  }
  .network-world::before{
    content:"";
    position:absolute;
    z-index:0;
    top:50%;
    left:40px;
    width:1040px;
    height:1px;
    background:rgba(81,215,255,.18);
  }
  .network-world::after{
    content:"";
    position:absolute;
    z-index:1;
    top:calc(50% - 1px);
    left:40px;
    width:72px;
    height:2px;
    background:linear-gradient(90deg,transparent,rgba(81,215,255,.9),transparent);
    opacity:0;
    transform:translateX(0);
    animation:mobileSignal 5.4s ease-in-out infinite;
  }
  .network-node{
    left:var(--mobile-x);
    top:var(--mobile-y);
    width:142px;
    scroll-snap-align:center;
  }
  .node-visual{width:82px;height:82px}
  .node-name{font-size:14px}
  .node-name small{display:block;margin:4px 0 0}
  .node-role{max-width:132px;font-size:8.5px}
  .node-health{margin-top:5px;padding:3px 7px;font-size:8px}
  .node-beacon{right:3px;bottom:11px}
  .network-node--center{width:170px}
  .network-node--center .node-visual{width:112px;height:112px}
  .network-node--center .node-name{font-size:16px}
  .goode-core-disc{width:78px;height:78px}
  .goode-core-disc b{font-size:30px}
  .goode-core-disc i{bottom:12px}
  .network-node--center .node-beacon{right:12px;bottom:21px}
  .detail-lifeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-life-step:nth-child(2){border-right:0}
  .detail-life-step:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}
}

@media (max-width:430px){
  .command-kicker{font-size:7.5px}
  .command-sync>span{padding:4px 7px;font-size:7.5px}
  .network-stage{min-height:380px;height:auto}
  .node-visual{width:76px;height:76px}
  .network-node--center .node-visual{width:104px;height:104px}
  .goode-core-disc{width:72px;height:72px}
}

@keyframes mobileSignal{
  0%,10%{transform:translateX(0);opacity:0}
  20%{opacity:.9}
  78%{opacity:.7}
  92%,100%{transform:translateX(960px);opacity:0}
}

@media (prefers-reduced-motion:reduce){
  .node-assembly{animation:none!important;opacity:1;transform:none}
  .node-visual,.goode-ring,.command-live,.network-scan,.energy-flow,
  .goode-core-disc::after,.network-world::after{animation:none!important}
  .energy-flow{opacity:.48;transform:scaleX(1)}
}
