*{margin:0;padding:0;box-sizing:border-box;}
[x-cloak]{display:none!important;}
body{
  background:
    radial-gradient(1200px 700px at 12% -8%, rgba(0,200,255,.16), transparent 60%),
    radial-gradient(1000px 800px at 100% 0%, rgba(170,68,255,.14), transparent 55%),
    radial-gradient(900px 700px at 50% 120%, rgba(0,255,136,.10), transparent 60%),
    #05060f;
  background-attachment:fixed;
  color:#fff;font-family:'Courier New',monospace;
  overflow:hidden; height:100vh; -webkit-font-smoothing:antialiased;
}
body::after{
  content:'';position:fixed;inset:0;z-index:999;pointer-events:none;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.05) 2px,rgba(0,0,0,0.05) 4px);
}
/* ── TOP NAV ── */
#topnav{
  position:fixed;top:0;left:0;right:0;height:66px;z-index:50;
  background:rgba(7,9,26,.55);border-bottom:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;gap:0;
  backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
}
#nav-brand{
  padding:0 20px;font-size:14px;letter-spacing:4px;color:#00c8ff;
  text-transform:uppercase;white-space:nowrap;border-right:1px solid rgba(0,200,255,.25);
  height:100%;display:flex;align-items:center;flex-shrink:0;
}
#nav-brand span{color:#00ff8888;margin-right:6px;font-size:18px;}
#nav-sections{
  display:flex;flex:1;height:100%;overflow-x:auto;scrollbar-width:none;gap:2px;padding:0 4px;
}
#nav-sections::-webkit-scrollbar{display:none;}
.nsec{
  padding:0 22px;font-size:10px;letter-spacing:2px;color:#ffffffaa;
  text-transform:uppercase;cursor:pointer;border:none;background:none;
  font-family:'Courier New',monospace;height:100%;display:flex;align-items:center;
  border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;
  border-right:1px solid rgba(255,255,255,.04);position:relative;
}
.nsec:hover{color:#ffffffcc;background:rgba(255,255,255,.05);}
.nsec.drag-over{border-left:2px solid #00c8ff;background:rgba(0,200,255,.1);}
.nsec[draggable]{cursor:grab;}
.nsec[draggable]:active{cursor:grabbing;}

/* ── Per-tab colors ── */
.nsec-c1{color:#00ff88aa;}
.nsec-c1.active{color:#00ff88;border-bottom-color:#00ff88;background:rgba(0,255,136,.07);}
.nsec-c2{color:#00c8ffaa;}
.nsec-c2.active{color:#00c8ff;border-bottom-color:#00c8ff;background:rgba(0,200,255,.07);}
.nsec-c3{color:#aa44ffaa;}
.nsec-c3.active{color:#aa44ff;border-bottom-color:#aa44ff;background:rgba(170,68,255,.07);}
.nsec-c4{color:#ff6600aa;}
.nsec-c4.active{color:#ff6600;border-bottom-color:#ff6600;background:rgba(255,102,0,.07);}
.nsec-c5{color:#ff44aaaa;}
.nsec-c5.active{color:#ff44aa;border-bottom-color:#ff44aa;background:rgba(255,68,170,.07);}
.nsec-c6{color:#ff4466aa;}
.nsec-c6.active{color:#ff4466;border-bottom-color:#ff4466;background:rgba(255,68,102,.07);}
.nsec-c7{color:#ffdd00aa;}
.nsec-c7.active{color:#ffdd00;border-bottom-color:#ffdd00;background:rgba(255,221,0,.07);}
.nsec-c8{color:#00e5ffaa;}
.nsec-c8.active{color:#00e5ff;border-bottom-color:#00e5ff;background:rgba(0,229,255,.07);}
.nsec-c9{color:#39ff14aa;}
.nsec-c9.active{color:#39ff14;border-bottom-color:#39ff14;background:rgba(57,255,20,.07);}

/* ── Rainbow pulse (Overview) ── */
@keyframes rainbow-text{
  0%  {color:#ff4466;text-shadow:0 0 8px #ff4466;}
  12% {color:#ff6600;text-shadow:0 0 8px #ff6600;}
  25% {color:#ffdd00;text-shadow:0 0 8px #ffdd00;}
  37% {color:#00ff88;text-shadow:0 0 8px #00ff88;}
  50% {color:#00c8ff;text-shadow:0 0 8px #00c8ff;}
  62% {color:#aa44ff;text-shadow:0 0 8px #aa44ff;}
  75% {color:#ff44aa;text-shadow:0 0 8px #ff44aa;}
  87% {color:#39ff14;text-shadow:0 0 8px #39ff14;}
  100%{color:#ff4466;text-shadow:0 0 8px #ff4466;}
}
@keyframes rainbow-border{
  0%  {border-bottom-color:#ff4466;}
  12% {border-bottom-color:#ff6600;}
  25% {border-bottom-color:#ffdd00;}
  37% {border-bottom-color:#00ff88;}
  50% {border-bottom-color:#00c8ff;}
  62% {border-bottom-color:#aa44ff;}
  75% {border-bottom-color:#ff44aa;}
  87% {border-bottom-color:#39ff14;}
  100%{border-bottom-color:#ff4466;}
}
.nsec-rainbow{animation:rainbow-text 4s linear infinite;}
.nsec-rainbow.active{animation:rainbow-text 4s linear infinite,rainbow-border 4s linear infinite;background:rgba(255,255,255,.04);}

/* ── Color pulse on inactive tabs ── */
@keyframes pulse-c1{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #00ff88;}}
@keyframes pulse-c2{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #00c8ff;}}
@keyframes pulse-c3{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #aa44ff;}}
@keyframes pulse-c4{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #ff6600;}}
@keyframes pulse-c5{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #ff44aa;}}
@keyframes pulse-c6{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #ff4466;}}
@keyframes pulse-c7{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #ffdd00;}}
@keyframes pulse-c8{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #00e5ff;}}
@keyframes pulse-c9{0%,100%{opacity:.67}50%{opacity:1;text-shadow:0 0 6px #39ff14;}}
.nsec-c1:not(.active){animation:pulse-c1 3.1s ease-in-out infinite;}
.nsec-c2:not(.active){animation:pulse-c2 3.4s ease-in-out infinite;}
.nsec-c3:not(.active){animation:pulse-c3 2.8s ease-in-out infinite;}
.nsec-c4:not(.active){animation:pulse-c4 3.7s ease-in-out infinite;}
.nsec-c5:not(.active){animation:pulse-c5 3.2s ease-in-out infinite;}
.nsec-c6:not(.active){animation:pulse-c6 2.9s ease-in-out infinite;}
.nsec-c7:not(.active){animation:pulse-c7 3.5s ease-in-out infinite;}
.nsec-c8:not(.active){animation:pulse-c8 3.0s ease-in-out infinite;}
.nsec-c9:not(.active){animation:pulse-c9 3.3s ease-in-out infinite;}
.nsec.active.green{color:#00ff88;border-bottom-color:#00ff88;}
.nsec.active.orange{color:#ff6600;border-bottom-color:#ff6600;}
.nsec.active.purple{color:#aa44ff;border-bottom-color:#aa44ff;}
.nsec.active.gold{color:#ffdd00;border-bottom-color:#ffdd00;}
.nsec .ndot{
  position:absolute;top:10px;right:8px;width:4px;height:4px;border-radius:50%;
  background:#00c8ff;box-shadow:0 0 4px #00c8ff;
  animation:pdot 1.4s infinite;display:none;
}
.nsec .ndot.show{display:block;}
#nav-right{
  display:flex;align-items:center;gap:14px;padding:0 16px;
  border-left:1px solid rgba(0,200,255,.12);height:100%;flex-shrink:0;
}
.nav-chip{display:flex;flex-direction:column;align-items:center;gap:1px;}
.nav-chip-label{font-size:9px;letter-spacing:2px;color:#ffffff88;text-transform:uppercase;}
.nav-chip-val{font-size:14px;letter-spacing:1px;font-weight:bold;}
.cv-green{color:#1fffa3;text-shadow:0 0 10px rgba(31,255,163,.45);}
.cv-red{color:#ff3b6b;text-shadow:0 0 10px rgba(255,59,107,.45);}
.cv-cyan{color:#22d3ff;text-shadow:0 0 10px rgba(34,211,255,.4);}
.cv-dim{color:#ffffffaa;}
#conn-pill{
  display:flex;align-items:center;gap:5px;padding:3px 8px;
  border:1px solid rgba(255,255,255,.2);border-radius:12px;
}
.conn-dot{width:5px;height:5px;border-radius:50%;background:#ffffff55;}
.conn-dot.live{background:#00ff88;box-shadow:0 0 5px #00ff88;animation:pdot 2s infinite;}
#conn-text{font-size:9px;letter-spacing:2px;color:#ffffffcc;text-transform:uppercase;}
/* ── MAIN CONTENT ── */
#db-main{
  position:fixed;top:66px;left:0;right:0;bottom:0;
  overflow-y:auto;overflow-x:hidden;
  scrollbar-width:thin;scrollbar-color:rgba(0,200,255,.15) transparent;
  padding:16px 16px 80px;
}
#db-main::-webkit-scrollbar{width:3px;}
#db-main::-webkit-scrollbar-thumb{background:rgba(0,200,255,.2);border-radius:2px;}
/* ── CARDS ── */
.card{
  background:linear-gradient(160deg, rgba(255,255,255,.07), rgba(12,16,34,.42));
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;overflow:hidden;
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  box-shadow:0 8px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);
}
.card-head{
  padding:10px 14px;font-size:10px;letter-spacing:3px;color:#00c8ffdd;
  text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1);
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(255,255,255,.03);
}
.card-head.green{color:#00ff88cc;border-bottom-color:rgba(0,255,136,.22);}
.card-head.orange{color:#ff6600cc;border-bottom-color:rgba(255,102,0,.22);}
.card-head.purple{color:#aa44ffcc;border-bottom-color:rgba(170,68,255,.22);}
.card-head.red{color:#ff4466cc;border-bottom-color:rgba(255,68,102,.22);}
.card-head.gold{color:#ffdd00cc;border-bottom-color:rgba(255,221,0,.22);}
.card-body{padding:14px;}
/* ── KPI CARD ── */
.kpi-card{
  background:linear-gradient(160deg, rgba(255,255,255,.08), rgba(12,16,34,.4));
  border:1px solid rgba(255,255,255,.12);border-radius:12px;
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  box-shadow:0 8px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);
  padding:14px 16px;
}
.kpi-label{font-size:9px;letter-spacing:3px;color:#ffffff99;text-transform:uppercase;margin-bottom:6px;}
.kpi-val{font-size:29px;font-weight:bold;letter-spacing:1px;}
.kpi-sub{font-size:12px;color:#ffffffaa;margin-top:4px;letter-spacing:1px;}
/* ── GRID LAYOUTS ── */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.grid-2-1{display:grid;grid-template-columns:2fr 1fr;gap:12px;}
.grid-1-2{display:grid;grid-template-columns:1fr 2fr;gap:12px;}
.mt12{margin-top:12px;}
/* ── TABLE ── */
.db-table{width:100%;border-collapse:collapse;font-size:12px;}
.db-table th{
  padding:6px 10px;font-size:9px;letter-spacing:2px;color:#ffffff88;
  text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.15);
  text-align:left;font-weight:normal;
}
.db-table td{
  padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.07);
  color:#ffffffee;vertical-align:middle;
}
.db-table tr:hover td{background:rgba(0,200,255,.07);}
/* ── SYSTEM MONITOR ── */
.sm-tab{padding:5px 14px;border-radius:3px 3px 0 0;cursor:pointer;font-size:10px;letter-spacing:1.5px;
  border:1px solid rgba(255,255,255,.06);border-bottom:none;color:#ffffff55;
  background:rgba(255,255,255,.03);transition:all .15s;}
.sm-tab.active{color:#fff;background:rgba(0,200,255,.08);border-color:rgba(0,200,255,.2);}
.sm-tab:hover:not(.active){color:#ffffffaa;background:rgba(255,255,255,.05);}
.sm-proc-table{width:100%;border-collapse:collapse;font-size:12px;}
.sm-proc-table th{font-size:9px;letter-spacing:1.5px;color:#ffffff88;padding:5px 8px;text-align:left;
  border-bottom:1px solid rgba(255,255,255,.15);position:sticky;top:0;background:#07091a;cursor:pointer;}
.sm-proc-table th:hover{color:#ffffffaa;}
.sm-proc-table th.sort-asc::after{content:' ▲';}
.sm-proc-table th.sort-desc::after{content:' ▼';}
.sm-proc-table td{padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.03);color:#ffffffcc;}
.sm-proc-table tr:hover td{background:rgba(0,200,255,.05);}
.sm-bar-wrap{height:5px;border-radius:3px;background:rgba(255,255,255,.06);overflow:hidden;min-width:60px;}
.sm-bar-fill{height:100%;border-radius:3px;transition:width .4s;}
.sm-stat-box{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:10px 14px;}
.sm-stat-label{font-size:9px;letter-spacing:1.5px;color:#ffffff88;margin-bottom:4px;}
.sm-stat-val{font-size:23px;font-weight:bold;color:#fff;letter-spacing:1px;}
.sm-stat-sub{font-size:10px;color:#ffffffaa;margin-top:2px;}
.sm-core-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:4px;}
.sm-core{padding:4px;border-radius:3px;background:rgba(0,200,255,.05);border:1px solid rgba(0,200,255,.1);text-align:center;}
.sm-core-pct{font-size:12px;font-weight:bold;color:#00c8ff;}
.sm-core-bar{height:3px;border-radius:2px;margin-top:2px;background:rgba(255,255,255,.06);}
.sm-core-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#00c8ff,#00ff88);}
/* ── AGENT HEALTH ── */
.agent-health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:12px;}
.ah-card{
  padding:8px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.06);
  background:rgba(0,0,0,.15);
}
.ah-name{font-size:9px;letter-spacing:1.5px;color:#fff;text-transform:uppercase;margin-bottom:4px;}
.ah-dot{width:5px;height:5px;border-radius:50%;background:#ffffff55;display:inline-block;margin-right:5px;}
.ah-dot.ok{background:#00ff88;box-shadow:0 0 5px #00ff88;}
.ah-dot.working{background:#ffaa00;box-shadow:0 0 5px #ffaa00;animation:pdot 1s infinite;}
.ah-dot.idle{background:#ffffff44;}
.ah-status{font-size:10px;color:#ffffff99;margin-top:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
/* ── ACTIVITY ── */
.act-item{padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.04);font-size:10px;}
.act-source{color:#00c8ffcc;letter-spacing:1px;margin-bottom:2px;font-size:9px;text-transform:uppercase;}
.act-content{color:#fff;line-height:1.45;word-break:break-word;}
/* ── ORB ZONE ── */
#orb-zone{
  position:fixed;bottom:16px;right:16px;z-index:200;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  user-select:none;
}
#orb-zone.dragging{cursor:grabbing !important;}
#orb-canvas{pointer-events:none;display:block;}
#orb-drag-handle{
  font-size:18px;color:#00c8ff44;cursor:grab;letter-spacing:2px;
  padding:2px 10px;border-radius:4px;
  transition:color .2s;user-select:none;
}
#orb-drag-handle:hover{color:#00c8ffcc;background:rgba(0,200,255,.08);}
#orb-chat{
  width:360px;height:480px;background:#080d1fff;
  border:1px solid rgba(0,200,255,.3);border-radius:8px;
  box-shadow:0 0 30px rgba(0,200,255,.12);
  display:flex;flex-direction:column;overflow:hidden;
  backdrop-filter:blur(16px);margin-bottom:4px;
  animation:chatrise .25s ease;
}
@keyframes chatrise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
#orb-chat-head{
  padding:10px 14px;font-size:10px;letter-spacing:3px;color:#00c8ffee;
  text-transform:uppercase;border-bottom:1px solid rgba(0,200,255,.3);
  display:flex;justify-content:space-between;align-items:center;flex-shrink:0;
}
#orb-close-btn{color:#ffffff88;cursor:pointer;font-size:18px;line-height:1;transition:color .2s;}
#orb-close-btn:hover{color:#ff446688;}
#orb-thread{
  flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px;
  scrollbar-width:thin;scrollbar-color:rgba(0,200,255,.1) transparent;
}
#orb-thread::-webkit-scrollbar{width:3px;}
#orb-thread::-webkit-scrollbar-thumb{background:rgba(0,200,255,.15);border-radius:2px;}
.orb-msg-user{
  align-self:flex-end;max-width:80%;
  background:rgba(0,200,255,.1);border:1px solid rgba(0,200,255,.25);
  border-radius:8px 8px 2px 8px;padding:7px 10px;
}
.orb-msg-nexus{
  align-self:flex-start;max-width:85%;
  background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);
  border-radius:2px 8px 8px 8px;padding:8px 10px;
}
.orb-msg-label{font-size:9px;letter-spacing:2px;text-transform:uppercase;opacity:.9;margin-bottom:3px;}
.orb-msg-user .orb-msg-label{color:#00c8ff;text-align:right;}
.orb-msg-nexus .orb-msg-label{color:#00ff88;}
.orb-msg-body{font-size:13px;color:#ffffffdd;line-height:1.6;word-break:break-word;}
.orb-msg-body h1,.orb-msg-body h2,.orb-msg-body h3{font-size:13px;color:#00c8ffcc;margin:6px 0 2px;letter-spacing:1px;}
.orb-msg-body code{background:rgba(255,255,255,.06);border-radius:3px;padding:1px 4px;font-size:12px;color:#00ff88cc;}
.orb-msg-body p{margin:3px 0;}
.orb-msg-body ul,.orb-msg-body ol{padding-left:14px;margin:3px 0;}
.orb-msg-body li{margin:2px 0;}
.orb-msg-streaming{border-color:rgba(0,200,255,.4)!important;animation:cpulse 1.2s infinite;}
@keyframes cpulse{0%,100%{border-color:rgba(0,200,255,.2)}50%{border-color:rgba(0,200,255,.5)}}
#orb-input-row{
  display:flex;gap:6px;padding:8px 10px;border-top:1px solid rgba(0,200,255,.12);flex-shrink:0;
}
#orb-input{
  flex:1;background:rgba(0,200,255,.06);border:1px solid rgba(0,200,255,.2);
  border-radius:4px;color:#fff;padding:6px 10px;font-family:'Courier New',monospace;
  font-size:13px;outline:none;transition:border .2s;
}
#orb-input:focus{border-color:rgba(0,200,255,.5);}
#orb-input::placeholder{color:#ffffff77;}
#orb-send{
  background:rgba(0,200,255,.12);border:1px solid rgba(0,200,255,.3);
  color:#00c8ff;padding:6px 12px;border-radius:4px;cursor:pointer;
  font-family:'Courier New',monospace;font-size:16px;transition:all .2s;
}
#orb-send:hover{background:rgba(0,200,255,.25);border-color:rgba(0,200,255,.6);}
#orb-button{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  cursor:pointer;user-select:none;
  transition:transform .2s;
}
#orb-button:hover{transform:scale(1.05);}
#orb-button:active{transform:scale(0.97);}
#orb-label{
  font-size:9px;letter-spacing:3px;color:#00c8ff66;text-transform:uppercase;
  transition:color .2s;
}
#orb-button.active #orb-label{color:#00c8ffcc;}
/* ── SHARED ── */
@keyframes pdot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}
@keyframes fi{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.anim-in{animation:fi .3s ease;}
.tag{padding:2px 7px;border-radius:6px;font-size:9px;letter-spacing:1px;text-transform:uppercase;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.tag-cyan{color:#22d3ff;background:rgba(34,211,255,.14);border:1px solid rgba(34,211,255,.3);}
.tag-green{color:#1fffa3;background:rgba(31,255,163,.14);border:1px solid rgba(31,255,163,.3);}
.tag-red{color:#ff3b6b;background:rgba(255,59,107,.14);border:1px solid rgba(255,59,107,.3);}
.tag-orange{color:#ff8a3d;background:rgba(255,138,61,.14);border:1px solid rgba(255,138,61,.3);}
.tag-dim{color:#ffffffcc;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);}
.empty-state{padding:20px;text-align:center;font-size:12px;color:#ffffff66;letter-spacing:1px;}
.section-title{font-size:10px;letter-spacing:4px;color:#ffffff88;text-transform:uppercase;margin-bottom:12px;}
.scroll-inner{overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,200,255,.1) transparent;}
.scroll-inner::-webkit-scrollbar{width:3px;}
.scroll-inner::-webkit-scrollbar-thumb{background:rgba(0,200,255,.15);}
.card-scroll{max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,200,255,.1) transparent;}
.card-scroll::-webkit-scrollbar{width:3px;}
.card-scroll::-webkit-scrollbar-thumb{background:rgba(0,200,255,.15);}
.link-main{
  font-size:10px;letter-spacing:1px;color:#00c8ff55;cursor:pointer;padding:3px 8px;
  border:1px solid rgba(0,200,255,.2);border-radius:3px;transition:all .2s;text-decoration:none;
  font-family:'Courier New',monospace;
}
.link-main:hover{color:#00c8ffcc;border-color:rgba(0,200,255,.5);}
/* ── NEURAL BG ── */
#neural-bg{position:fixed;inset:0;z-index:0;pointer-events:none;}
/* ── RADIAL RING ── */
#agent-ring-wrap{
  display:flex;justify-content:center;align-items:center;
  padding:16px 0 8px;
}
#agent-ring-canvas{display:block;}
/* ── CARD PULSE ── */
@keyframes card-pulse{
  0%{box-shadow:0 0 0 0 rgba(0,200,255,.5)}
  70%{box-shadow:0 0 0 8px rgba(0,200,255,0)}
  100%{box-shadow:0 0 0 0 rgba(0,200,255,0)}
}
.card-flash{animation:card-pulse .8s ease;}
@keyframes card-pulse-green{
  0%{box-shadow:0 0 0 0 rgba(0,255,136,.6)}
  70%{box-shadow:0 0 0 10px rgba(0,255,136,0)}
  100%{box-shadow:0 0 0 0 rgba(0,255,136,0)}
}
.card-flash-green{animation:card-pulse-green .8s ease;}
/* ── KEYBOARD HINT ── */
#kb-hint{
  position:fixed;bottom:14px;left:50%;transform:translateX(-50%);
  font-size:9px;letter-spacing:2px;color:#ffffff18;text-transform:uppercase;
  pointer-events:none;z-index:10;white-space:nowrap;
}

