:root {
  --bg: #050907;
  --panel: rgba(8, 20, 17, .93);
  --panel-2: rgba(11, 29, 24, .96);
  --line: #214638;
  --line-soft: rgba(83, 150, 121, .22);
  --ink: #d8eadf;
  --muted: #7f9c8f;
  --green: #7dffb2;
  --green-2: #32d887;
  --amber: #ffc86b;
  --danger: #ff6b78;
  --defcon-red: #b92f3b;
  --btv-blue: #1496ff;
  --shadow: 0 20px 70px rgba(0,0,0,.58);
  --taskbar-h: 48px;
}

* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; margin: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  overflow: hidden;
}
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }
a { color: inherit; }

.noscript { padding: 18px; background: #15100a; color: #ffe0a8; }
.desktop {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 16%, rgba(45, 182, 116, .12), transparent 28%),
    radial-gradient(circle at 78% 72%, rgba(255, 190, 90, .06), transparent 30%),
    linear-gradient(145deg, #06100d 0%, #030806 54%, #07120e 100%);
}
.ambient-grid {
  position: absolute; inset: 0; pointer-events: none; opacity: .38;
  background-image:
    linear-gradient(rgba(89, 184, 141, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(89, 184, 141, .07) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, black, transparent 90%);
}
.scanlines {
  position: absolute; inset: 0; pointer-events: none; z-index: 10000; opacity: .17;
  background: repeating-linear-gradient(to bottom, transparent 0, transparent 3px, rgba(0,0,0,.36) 4px);
  mix-blend-mode: multiply;
}
.scanlines.off { display: none; }

.desktop-status {
  position: absolute; z-index: 4; left: 28px; right: 28px; top: 20px;
  display: flex; justify-content: space-between; align-items: center;
  color: var(--muted); font-size: 12px; letter-spacing: .1em;
}
.status-dot, .tray-led { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--green-2); box-shadow: 0 0 12px var(--green-2); }
.status-right { display: flex; gap: 22px; }
.muted { color: #527164; }
.mono { color: var(--green); }

.hero-panel {
  position: absolute; z-index: 2; left: clamp(28px, 7vw, 112px); top: 50%; transform: translateY(-54%);
  width: min(700px, 63vw); padding: 30px 34px 27px;
  border: 1px solid rgba(73, 143, 112, .28);
  background: linear-gradient(110deg, rgba(6,18,14,.72), rgba(6,13,11,.32));
  box-shadow: inset 3px 0 0 rgba(125,255,178,.6);
  backdrop-filter: blur(3px);
}
.hero-kicker { color: var(--amber); letter-spacing: .18em; font-size: 12px; margin-bottom: 17px; }
.hero-panel h1 { margin: 0; font-size: clamp(34px, 5.8vw, 78px); line-height: .9; letter-spacing: -.065em; font-weight: 850; }
.hero-panel h1 span { color: transparent; -webkit-text-stroke: 1px rgba(173, 232, 198, .63); }
.hero-panel p { max-width: 610px; margin: 24px 0 0; color: #a8c0b4; line-height: 1.7; font-size: 14px; }
.hero-actions { display: flex; gap: 10px; margin-top: 26px; flex-wrap: wrap; }
.ui-button {
  border: 1px solid #315844; background: rgba(8, 20, 17, .82); color: #a8c3b4;
  padding: 10px 14px; cursor: pointer; transition: .15s ease;
}
.ui-button:hover { border-color: #5f9b7d; color: #e6f6ed; transform: translateY(-1px); }
.ui-button.primary { background: #0f3325; border-color: #2e9b69; color: var(--green); }
.hero-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 23px; }
.hero-meta span { border: 1px solid #1c4434; color: #658979; background: rgba(7,17,14,.7); padding: 5px 7px; font-size: 10px; letter-spacing: .08em; }

.credential-strip { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.credential-pill {
  min-height:44px; display:flex; align-items:center; gap:9px; padding:5px 10px 5px 6px;
  border:1px solid #294e3d; background:rgba(5,15,11,.84); color:#a8c2b4; cursor:pointer; text-align:left;
  transition:.15s ease;
}
.credential-pill:hover { transform:translateY(-1px); color:#effff6; }
.credential-pill.defcon { border-color:rgba(185,47,59,.62); box-shadow:inset 2px 0 var(--defcon-red); }
.credential-pill.btv { border-color:rgba(20,150,255,.55); box-shadow:inset 2px 0 var(--btv-blue); }
.pill-logo { position:relative; width:32px; height:32px; flex:0 0 32px; display:grid; place-items:center; overflow:hidden; background:#050907; border:1px solid #304c3d; }
.pill-logo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pill-fallback { font-size:9px; font-weight:900; color:#8ca99a; }
.pill-copy { display:flex; flex-direction:column; line-height:1.1; }
.pill-copy small { font-size:8px; letter-spacing:.1em; color:#6f8e7d; margin-bottom:4px; }
.pill-copy strong { font-size:9px; letter-spacing:.07em; color:#d5e8de; }
.credential-glyph { border-color:rgba(185,47,59,.68); color:#ff9aa3; box-shadow:inset 0 0 18px rgba(185,47,59,.08),0 8px 22px rgba(0,0,0,.35); }

.desktop-icons {
  position: absolute; z-index: 3; top: 75px; right: clamp(25px, 4vw, 62px);
  display: grid; grid-template-columns: repeat(2, 86px); gap: 18px 10px;
}
.desktop-icon {
  width: 86px; min-height: 82px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px;
  border: 1px solid transparent; background: transparent; color: #9eb8ab; text-decoration: none; cursor: pointer; padding: 6px;
  font-size: 11px;
}
.desktop-icon:hover, .desktop-icon:focus-visible { background: rgba(23,61,45,.4); border-color: rgba(86,153,123,.4); color: #e9fff2; }
.glyph {
  width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #3a7358; background: rgba(10,30,22,.82);
  color: var(--green); font-weight: 800; font-size: 16px; box-shadow: inset 0 0 18px rgba(46, 184, 113, .08), 0 8px 22px rgba(0,0,0,.35);
}

.window-layer { position: absolute; inset: 0 0 var(--taskbar-h); z-index: 20; pointer-events: none; }
.app-window {
  --x: 12vw; --y: 10vh; --w: min(760px, 72vw); --h: min(570px, 72vh);
  position: absolute; left: var(--x); top: var(--y); width: var(--w); height: var(--h);
  min-width: 360px; min-height: 240px; display: flex; flex-direction: column;
  background: var(--panel); border: 1px solid #315844; box-shadow: var(--shadow); pointer-events: auto; overflow: hidden;
  resize: both;
}
.app-window.active { border-color: #4f9d77; box-shadow: 0 0 0 1px rgba(125,255,178,.08), var(--shadow); }
.app-window.maximized { left: 12px !important; top: 12px !important; width: calc(100% - 24px) !important; height: calc(100% - 24px) !important; resize: none; }
.app-window.minimized { display: none; }
.window-titlebar {
  height: 38px; flex: 0 0 38px; display: flex; justify-content: space-between; align-items: center;
  padding-left: 11px; background: linear-gradient(90deg, #0e2d20, #0b1b16); border-bottom: 1px solid #2c5744;
  user-select: none; touch-action: none; cursor: move;
}
.window-title { display: flex; gap: 9px; align-items: center; font-size: 12px; letter-spacing: .07em; color: #b9d2c6; }
.window-icon { width: 8px; height: 8px; border-radius: 50%; background: var(--green-2); box-shadow: 0 0 8px rgba(50,216,135,.7); }
.window-controls { height: 100%; display: flex; }
.window-controls button { width: 38px; height: 100%; color: #8da99a; background: transparent; border: 0; border-left: 1px solid #234534; cursor: pointer; }
.window-controls button:hover { color: white; background: #183928; }
.window-controls button[data-action="close"]:hover { background: #5a1f27; }
.window-body { flex: 1; overflow: auto; min-height: 0; }
.window-status { flex: 0 0 25px; border-top: 1px solid #203f31; padding: 6px 9px; color: #587765; font-size: 10px; background: #08120e; }

.terminal { height: 100%; display: flex; flex-direction: column; background: #030705; color: #95e5b6; }
.terminal-output { flex: 1; overflow-y: auto; padding: 14px 16px 8px; line-height: 1.55; font-size: 12px; scrollbar-color: #315844 #07100c; }
.terminal-line { white-space: pre-wrap; overflow-wrap: anywhere; }
.terminal-line.dim { color: #5e806d; }
.terminal-line.amber { color: var(--amber); }
.terminal-line.error { color: #ff7b86; }
.terminal-prompt-row { display: flex; align-items: center; gap: 8px; padding: 8px 14px 12px; border-top: 1px solid #11261c; }
.prompt { color: var(--green); white-space: nowrap; }
.terminal-input { flex: 1; min-width: 0; border: 0; outline: none; color: #e2f9ea; background: transparent; caret-color: var(--green); }

.panel-content { padding: 22px; color: #aec5b9; line-height: 1.6; font-size: 13px; }
.panel-eyebrow { color: var(--amber); font-size: 10px; letter-spacing: .16em; margin-bottom: 7px; }
.panel-content h2 { color: #e4f1e9; font-size: 24px; letter-spacing: -.03em; margin: 0 0 12px; }
.panel-content h3 { color: #c8ded1; font-size: 13px; margin: 21px 0 8px; }
.panel-content p { margin: 0 0 12px; }
.panel-content strong { color: #dfeee6; }

.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.project-card {
  position: relative; min-height: 160px; padding: 16px; border: 1px solid #254b39; background: linear-gradient(145deg, rgba(16,42,31,.76), rgba(5,14,11,.8));
  overflow: hidden;
}
.project-card::after { content: attr(data-code); position: absolute; right: -7px; bottom: -18px; font-size: 56px; font-weight: 900; color: rgba(100,194,149,.055); pointer-events: none; }
.project-card .project-type { color: #6a9980; font-size: 9px; letter-spacing: .15em; }
.project-card h3 { margin: 7px 0 7px; color: #e5f4ec; font-size: 16px; }
.project-card p { color: #87a495; font-size: 11px; margin: 0 0 15px; min-height: 36px; }
.project-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.text-link, .mini-btn { display: inline-block; color: var(--green); background: #0d291d; border: 1px solid #28583f; padding: 6px 8px; text-decoration: none; font-size: 10px; cursor: pointer; }
.text-link:hover, .mini-btn:hover { border-color: #52a978; color: #eafff2; }

.about-grid { display: grid; grid-template-columns: 180px 1fr; gap: 20px; }
.id-card { padding: 14px; border: 1px solid #315844; background: #07140f; align-self: start; }
.id-avatar { height: 120px; display: grid; place-items: center; border: 1px dashed #2e684d; color: var(--green); font-size: 34px; font-weight: 900; background: repeating-linear-gradient(135deg, rgba(67,135,101,.06), rgba(67,135,101,.06) 6px, transparent 6px, transparent 12px); }
.id-card dl { margin: 13px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 6px 8px; font-size: 9px; }
.id-card dt { color: #527462; }.id-card dd { margin: 0; color: #a9c6b6; }
.skill-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.skill-list span { border: 1px solid #294d3c; color: #88ae9a; padding: 5px 7px; font-size: 10px; }


.credentials-panel { padding-bottom:18px; }
.credential-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.credential-card { display:grid; grid-template-columns:118px 1fr; gap:16px; align-items:center; min-height:170px; padding:14px; border:1px solid #284b3b; background:linear-gradient(145deg,rgba(15,38,29,.78),rgba(4,12,9,.9)); }
.credential-card.defcon-card { border-color:rgba(185,47,59,.5); box-shadow:inset 3px 0 rgba(185,47,59,.65); }
.credential-card.btv-card { border-color:rgba(20,150,255,.48); box-shadow:inset 3px 0 rgba(20,150,255,.65); }
.credential-logo.large { position:relative; width:112px; height:112px; display:grid; place-items:center; overflow:hidden; border:1px solid #315844; background:#050907; }
.credential-logo.large img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#050907; }
.logo-fallback { text-align:center; font-weight:900; font-size:13px; line-height:1.25; color:#759383; letter-spacing:.06em; }
.credential-label { font-size:9px; letter-spacing:.14em; color:#6e8d7d; margin-bottom:4px; }
.credential-copy-block h3 { margin:0 0 7px; font-size:17px; color:#e4f2ea; }
.credential-copy-block p { margin:0; color:#8faa9b; font-size:11px; line-height:1.55; }
.credential-tags { display:flex; gap:5px; flex-wrap:wrap; margin-top:10px; }
.credential-tags span { border:1px solid rgba(185,47,59,.42); color:#d99399; background:rgba(78,18,25,.2); padding:4px 6px; font-size:8px; letter-spacing:.08em; }
.credential-tags.blue span { border-color:rgba(20,150,255,.38); color:#81c8ff; background:rgba(10,68,111,.18); }
.speaker-callout { position:relative; margin-top:14px; padding:17px 18px; border:1px solid rgba(20,150,255,.45); background:linear-gradient(105deg,rgba(10,58,91,.18),rgba(7,18,14,.82)); overflow:hidden; }
.speaker-callout::after { content:'DC33'; position:absolute; right:-8px; bottom:-24px; font-size:82px; line-height:1; font-weight:900; color:rgba(20,150,255,.055); pointer-events:none; }
.obsidian-callout { border-color:rgba(135,103,255,.42); background:linear-gradient(105deg,rgba(48,30,92,.18),rgba(7,18,14,.82)); }
.obsidian-callout::after { content:'OBSIDIAN'; font-size:54px; color:rgba(135,103,255,.05); right:-12px; bottom:-12px; }
.obsidian-callout .speaker-kicker { color:#b5a3ff; }

.speaker-index { color:#6d9cbc; font-size:9px; letter-spacing:.15em; margin-bottom:8px; }
.speaker-callout-grid { display:grid; grid-template-columns:1fr auto; gap:22px; align-items:end; }
.speaker-kicker { color:var(--btv-blue); font-size:9px; letter-spacing:.14em; margin-bottom:4px; }
.speaker-callout h3 { margin:0 0 6px; font-size:19px; color:#edf7ff; }
.speaker-callout p { margin:0; max-width:520px; font-size:11px; color:#94adba; }
.speaker-actions { display:flex; flex-direction:column; align-items:flex-start; gap:7px; position:relative; z-index:1; }
.mark-note { margin-top:10px !important; color:#4f6c5d !important; font-size:9px; line-height:1.45 !important; }
.about-credential { width:100%; display:grid; grid-template-columns:auto auto 1fr; gap:8px; align-items:center; padding:10px 11px; border:1px solid #2a4d3c; background:linear-gradient(90deg,rgba(185,47,59,.1),rgba(20,150,255,.08)); color:#a9c3b5; cursor:pointer; text-align:left; }
.about-credential:hover { border-color:#527964; color:#e7f7ee; }
.about-credential strong { font-size:9px; letter-spacing:.07em; }
.about-credential > span { color:#5b7d6b; }
.about-credential small { grid-column:1/-1; color:#7ca3b6; font-size:9px; }

.resource-list { display: grid; gap: 9px; }
.resource-row { display: grid; grid-template-columns: 84px 1fr auto; gap: 12px; align-items: center; padding: 12px; border: 1px solid #234333; background: rgba(6,18,13,.62); }
.resource-row .tag { color: var(--amber); font-size: 9px; letter-spacing: .12em; }
.resource-row a { color: var(--green); text-decoration: none; font-size: 11px; }
.resource-row a:hover { text-decoration: underline; }

.sys-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.stat { border: 1px solid #254836; background: #07130e; padding: 13px; }
.stat-head { display:flex; justify-content:space-between; color:#759381; font-size:10px; margin-bottom:8px; }
.bar { height: 7px; background: #10231a; overflow: hidden; }.bar i { display: block; height: 100%; background: linear-gradient(90deg, #257b51, #7dffb2); }
.setting-row { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid #173426; }
.toggle { border:1px solid #315944; background:#0d2118; color:#9dc3ae; padding:6px 9px; cursor:pointer; }
.toggle.on { color:var(--green); border-color:#3c8c62; background:#123224; }

.start-menu {
  position: absolute; z-index: 9998; left: 8px; bottom: calc(var(--taskbar-h) + 8px); width: 330px; padding: 12px;
  background: rgba(7,18,14,.98); border: 1px solid #315844; box-shadow: var(--shadow); transform: translateY(18px); opacity: 0; pointer-events: none; transition: .12s ease;
}
.start-menu.open { transform: translateY(0); opacity: 1; pointer-events: auto; }
.start-header { display: flex; align-items: center; gap: 10px; padding: 6px 5px 12px; border-bottom: 1px solid #214333; }
.start-avatar { width: 42px; height: 42px; display:grid; place-items:center; border:1px solid #3d765a; color:var(--green); font-weight:900; }
.start-header strong { display:block; color:#d6e8de; font-size:12px; }.start-header small { color:#5e7c6c; font-size:9px; }
.start-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:10px 0; }
.start-grid button, .start-grid a { border:1px solid transparent; background:#09150f; color:#9db7aa; padding:10px; text-align:left; text-decoration:none; cursor:pointer; }
.start-grid button:hover, .start-grid a:hover { border-color:#315a45; background:#10251b; color:#e4f6ec; }
.start-grid span { color:var(--green); display:inline-block; width:28px; font-weight:bold; }
.start-footer { color:#4e6b5c; font-size:9px; padding:7px 5px 1px; }

.taskbar {
  position: absolute; z-index: 9999; bottom: 0; left: 0; right: 0; height: var(--taskbar-h); display:flex; align-items:center;
  background: rgba(5,14,10,.97); border-top: 1px solid #2e5542; box-shadow: 0 -10px 35px rgba(0,0,0,.25); backdrop-filter: blur(8px);
}
.start-button { height:100%; min-width:112px; border:0; border-right:1px solid #2a4d3b; background:#0c2017; color:#a9c6b7; cursor:pointer; }
.start-button:hover, .start-button.open { background:#153527; color:#edfff5; }
.kmark { color:var(--green); font-weight:900; margin-right:7px; }
.task-buttons { flex:1; display:flex; min-width:0; overflow:auto; scrollbar-width:none; }
.task-button { height:34px; align-self:center; max-width:180px; min-width:105px; margin-left:6px; padding:0 10px; border:1px solid #234735; background:#0a1a13; color:#799887; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:pointer; font-size:10px; }
.task-button.active { color:#d8ece1; border-color:#3c7357; box-shadow: inset 0 -2px var(--green-2); }
.tray { height:100%; display:flex; align-items:center; gap:12px; padding:0 15px; border-left:1px solid #284b39; color:#8daa9b; font-size:11px; }

.toast { position:absolute; z-index:10001; right:18px; bottom:66px; max-width:340px; padding:12px 14px; background:#0a1b13; border:1px solid #315b45; color:#a8c6b6; box-shadow:var(--shadow); font-size:11px; animation:toast-in .18s ease; }
@keyframes toast-in { from { opacity:0; transform:translateY(8px); } }

.boot-screen { position:fixed; z-index:20000; inset:0; background:#010302; color:#75dd9e; padding:28px; font:12px/1.55 ui-monospace, monospace; transition:opacity .32s ease; }
.boot-screen.done { opacity:0; pointer-events:none; }
.boot-screen pre { margin:0; white-space:pre-wrap; }

@media (max-width: 850px) {
  .desktop-status { left:16px; right:16px; top:14px; font-size:10px; }
  .status-right #statusMessage { display:none; }
  .hero-panel { left:18px; right:18px; top:46%; width:auto; transform:translateY(-50%); padding:22px; }
  .hero-panel h1 { font-size:clamp(34px, 11vw, 56px); }
  .desktop-icons { top:auto; bottom:74px; left:16px; right:16px; display:flex; justify-content:space-between; gap:2px; }
  .desktop-icon { width:56px; min-height:60px; font-size:9px; }
  .glyph { width:36px; height:36px; font-size:13px; }
  .desktop-icon:nth-child(n+5) { display:none; }
  .app-window, .app-window.maximized {
    left: 6px !important; top: 8px !important; width: calc(100% - 12px) !important; height: calc(100% - 16px) !important;
    min-width:0; min-height:0; resize:none;
  }
  .window-titlebar { cursor:default; }
  .project-grid { grid-template-columns:1fr; }
  .credential-strip { gap:6px; margin-top:10px; }
  .credential-pill { min-height:38px; padding:4px 7px 4px 4px; }
  .credential-pill.btv .pill-copy small { display:none; }
  .pill-logo { width:28px; height:28px; flex-basis:28px; }
  .credential-grid { grid-template-columns:1fr; }
  .credential-card { grid-template-columns:84px 1fr; min-height:128px; padding:11px; }
  .credential-logo.large { width:78px; height:78px; }
  .speaker-callout-grid { grid-template-columns:1fr; gap:13px; }
  .speaker-actions { flex-direction:row; flex-wrap:wrap; }
  .about-grid { grid-template-columns:1fr; }.id-card { max-width:250px; }
  .sys-grid { grid-template-columns:1fr; }
  .start-menu { left:6px; right:6px; width:auto; }
  .start-button { min-width:94px; }
  .tray { padding:0 10px; }
}

@media (max-height: 620px) and (min-width: 851px) {
  .hero-panel { top:47%; padding:20px 28px; }
  .hero-panel h1 { font-size:50px; }
  .hero-panel p { margin-top:14px; }.hero-actions { margin-top:15px; }.hero-meta { margin-top:14px; }
  .credential-strip { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
  .boot-screen { display:none; }
}

/* v5 community + Signal FM additions */
:root {
  --hrv-gold: #f1b435;
  --obsidian: #8c74ef;
  --signal-red: #ff3048;
  --signal-blue: #218cff;
  --synth-magenta: var(--signal-red);
  --synth-cyan: var(--signal-blue);
}
.credential-pill.hrv { border-color:rgba(241,180,53,.55); box-shadow:inset 2px 0 var(--hrv-gold); }
.credential-card.hrv-card { grid-column:1/-1; border-color:rgba(241,180,53,.48); box-shadow:inset 3px 0 rgba(241,180,53,.65); }
.credential-tags.amber span { border-color:rgba(241,180,53,.38); color:#f4ce7f; background:rgba(91,66,10,.18); }
.credential-inline-link { margin-top:10px; }
.obsidian-layout { display:grid; grid-template-columns:92px 1fr auto; gap:16px; align-items:center; }
.obsidian-mark { width:86px; height:86px; display:block; border:1px solid rgba(140,116,239,.36); background:#050907; }
.obsidian-callout .speaker-index { color:#9784e6; }
.obsidian-callout .speaker-kicker { color:#b5a3ff; }
.radio-glyph { border-color:rgba(255,48,72,.62); color:#ff5268; box-shadow:inset -9px 0 20px rgba(33,140,255,.11),inset 9px 0 20px rgba(255,48,72,.1),0 8px 22px rgba(0,0,0,.35); }

.signal-dock {
  position:relative; flex:0 0 292px; align-self:stretch; min-width:0; height:100%;
  display:grid; grid-template-columns:minmax(0,1fr) 54px 38px; align-items:center; gap:6px; padding:4px 7px;
  border:0; border-left:1px solid rgba(255,48,72,.42); border-right:1px solid rgba(33,140,255,.42);
  background:linear-gradient(100deg,rgba(28,4,10,.72),rgba(4,12,30,.78));
  box-shadow:inset 3px 0 rgba(255,48,72,.55), inset -3px 0 rgba(33,140,255,.42);
}
.signal-main { min-width:0; height:100%; display:flex; align-items:center; gap:8px; border:0; background:transparent; color:#c8d8ed; text-align:left; cursor:pointer; padding:0 2px; }
.signal-main > span:last-child { min-width:0; }
.signal-main small { display:block; color:#ff687b; font-size:7px; letter-spacing:.1em; margin-bottom:2px; }
.signal-main strong { display:block; max-width:150px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:#73b7ff; font-size:9px; letter-spacing:.06em; }
.signal-led { display:inline-block; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:#35465d; box-shadow:0 0 0 rgba(33,140,255,0); }
.playing .signal-led { background:var(--signal-blue); box-shadow:0 0 7px rgba(33,140,255,.95),0 0 15px rgba(255,48,72,.7); }
.signal-bars { height:20px; display:flex; align-items:flex-end; justify-content:center; gap:3px; opacity:.72; }
.signal-bars i { width:3px; height:6px; display:block; background:linear-gradient(to top,var(--signal-red) 0 48%,var(--signal-blue) 52% 100%); }
.signal-bars i:nth-child(2){height:13px}.signal-bars i:nth-child(3){height:18px}.signal-bars i:nth-child(4){height:11px}.signal-bars i:nth-child(5){height:15px}
.signal-dock.playing .signal-bars i { animation:signal-bounce .68s steps(4,end) infinite alternate; }
.signal-dock.playing .signal-bars i:nth-child(2){animation-delay:.12s}.signal-dock.playing .signal-bars i:nth-child(3){animation-delay:.3s}.signal-dock.playing .signal-bars i:nth-child(4){animation-delay:.18s}.signal-dock.playing .signal-bars i:nth-child(5){animation-delay:.4s}
@keyframes signal-bounce { from{transform:scaleY(.35)} to{transform:scaleY(1.15)} }
.signal-play { width:34px; height:34px; border:1px solid rgba(255,48,72,.68); background:linear-gradient(135deg,rgba(88,5,18,.7),rgba(4,35,82,.72)); color:#ff7183; cursor:pointer; box-shadow:inset -7px 0 15px rgba(33,140,255,.1); }
.signal-play:hover { border-color:#218cff; color:#fff; box-shadow:0 0 13px rgba(33,140,255,.25), inset 0 0 12px rgba(255,48,72,.18); }

.radio-console { min-height:100%; background:radial-gradient(circle at 78% 13%,rgba(33,140,255,.17),transparent 34%),radial-gradient(circle at 16% 82%,rgba(255,48,72,.15),transparent 36%),#04060b; }
.radio-console .panel-eyebrow { color:#ff5369; }
.radio-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.radio-head h2 { margin-bottom:6px; color:#78baff; text-shadow:-8px 0 22px rgba(255,48,72,.14),8px 0 22px rgba(33,140,255,.21); }
.radio-head p { max-width:540px; color:#8295b2; font-size:11px; }
.radio-status { display:flex; align-items:center; gap:7px; flex:0 0 auto; border:1px solid rgba(33,140,255,.43); background:#050a15; padding:7px 9px; color:#7595bf; font-size:9px; letter-spacing:.12em; }
.radio-console.playing .radio-status { color:#78baff; border-color:rgba(255,48,72,.52); box-shadow:inset 3px 0 rgba(255,48,72,.65); }
.radio-display { position:relative; min-height:142px; margin:14px 0; display:grid; grid-template-columns:140px 1fr; gap:20px; align-items:center; overflow:hidden; border:1px solid rgba(33,140,255,.5); background:linear-gradient(118deg,rgba(27,3,10,.94),rgba(4,19,48,.94)); padding:18px; box-shadow:inset 4px 0 rgba(255,48,72,.28),inset -4px 0 rgba(33,140,255,.2); }
.radio-display::before { content:''; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(90deg,transparent 0,transparent 31px,rgba(33,140,255,.05) 32px); }
.radio-display::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(255,48,72,.05),transparent 38%,transparent 62%,rgba(33,140,255,.06)); }
.radio-frequency { position:relative; z-index:1; color:var(--signal-blue); font-size:34px; font-weight:900; letter-spacing:-.06em; text-shadow:-3px 0 0 rgba(255,48,72,.25),0 0 18px rgba(33,140,255,.28); }
.radio-frequency small { font-size:9px; letter-spacing:.08em; color:#ff6276; }
.radio-now { position:relative; z-index:1; display:flex; flex-direction:column; gap:4px; }
.radio-now small { color:#ff6075; font-size:8px; letter-spacing:.16em; }
.radio-now strong { color:#d9eaff; font-size:22px; letter-spacing:.06em; text-shadow:0 0 14px rgba(33,140,255,.16); }
.radio-now span { color:#6faef3; font-size:9px; letter-spacing:.12em; }
.radio-spectrum { position:absolute; left:0; right:0; bottom:0; height:46px; display:flex; align-items:flex-end; justify-content:space-between; gap:2px; padding:0 8px; opacity:.48; }
.radio-spectrum i { flex:1; max-width:12px; min-width:2px; height:10%; background:linear-gradient(to top,var(--signal-red) 0 46%,var(--signal-blue) 54% 100%); transform-origin:bottom; }
.radio-spectrum i:nth-child(3n){height:42%}.radio-spectrum i:nth-child(4n){height:70%}.radio-spectrum i:nth-child(5n){height:26%}.radio-spectrum i:nth-child(7n){height:86%}
.radio-console.playing .radio-spectrum i { animation:spectrum 1.05s steps(6,end) infinite alternate; }
.radio-console.playing .radio-spectrum i:nth-child(2n){animation-duration:.72s}.radio-console.playing .radio-spectrum i:nth-child(3n){animation-duration:1.28s}.radio-console.playing .radio-spectrum i:nth-child(5n){animation-duration:.91s}
@keyframes spectrum { from{transform:scaleY(.3)} to{transform:scaleY(1.1)} }
.radio-controls { display:grid; grid-template-columns:50px 62px 50px 1fr; gap:8px; align-items:center; }
.radio-skip,.radio-play-big { border:1px solid rgba(33,140,255,.46); background:#061126; color:#79baff; cursor:pointer; height:42px; }
.radio-skip:hover,.radio-play-big:hover { color:#fff; border-color:#ff3048; background:#260711; }
.radio-play-big { height:52px; color:#ff6f82; border-color:rgba(255,48,72,.62); background:linear-gradient(135deg,rgba(83,4,17,.62),rgba(4,35,82,.58)); font-size:17px; box-shadow:inset -8px 0 19px rgba(33,140,255,.09); }
.radio-volume { margin-left:8px; display:flex; align-items:center; gap:9px; color:#7697c2; font-size:9px; letter-spacing:.12em; }
.radio-volume input { width:100%; accent-color:var(--signal-red); }
.radio-tracks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-top:15px; }
.radio-tracks button { min-height:70px; display:grid; grid-template-columns:auto 1fr; gap:2px 7px; align-content:center; border:1px solid rgba(33,140,255,.28); background:linear-gradient(145deg,rgba(8,19,43,.82),rgba(25,3,9,.72)); color:#8098ba; padding:9px; text-align:left; cursor:pointer; box-shadow:inset 2px 0 rgba(255,48,72,.15); }
.radio-tracks button:nth-child(even) { border-color:rgba(255,48,72,.27); box-shadow:inset 2px 0 rgba(33,140,255,.2); }
.radio-tracks button:hover { border-color:#218cff; background:linear-gradient(130deg,rgba(7,35,76,.84),rgba(51,5,15,.7)); }
.radio-tracks button.active { border-color:#ff3048; background:linear-gradient(130deg,rgba(66,6,18,.9),rgba(5,36,82,.85)); box-shadow:inset 3px 0 #ff3048,inset -3px 0 #218cff,0 0 14px rgba(33,140,255,.08); }
.radio-tracks button > span { grid-row:1/3; color:#ff5870; font-size:18px; font-weight:900; }
.radio-tracks button:nth-child(even) > span { color:#4fa5ff; }
.radio-tracks strong { color:#cfe2ff; font-size:9px; letter-spacing:.05em; }
.radio-tracks small { color:#657f9f; font-size:7.5px; line-height:1.35; }
.radio-note { margin-top:12px !important; color:#637797 !important; font-size:9px; }

@media (max-width:850px) {
  .credential-card.hrv-card { grid-column:auto; }
  .obsidian-layout { grid-template-columns:70px 1fr; align-items:start; }
  .obsidian-mark { width:66px; height:66px; }
  .obsidian-layout .speaker-actions { grid-column:1/-1; }
  .signal-dock { flex-basis:190px; grid-template-columns:minmax(0,1fr) 34px; gap:4px; padding:4px 5px; }
  .signal-main small { display:none; }
  .signal-main strong { max-width:105px; font-size:8px; }
  .signal-bars { display:none; }
  .signal-play { width:32px; height:32px; }
  .radio-display { grid-template-columns:96px 1fr; min-height:120px; padding:13px; }
  .radio-frequency { font-size:25px; }
  .radio-now strong { font-size:16px; }
  .radio-tracks { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .radio-controls { grid-template-columns:44px 56px 44px 1fr; }
}

@media (max-width:520px) {
  .radio-tracks { grid-template-columns:1fr; }
}

@media (max-width:620px) {
  .task-buttons { display:none; }
  .signal-dock { flex:1 1 auto; }
  .signal-main strong { max-width:120px; }
}

@media (prefers-reduced-motion: reduce) {
  .signal-bars i,.radio-spectrum i { animation:none !important; }
}


/* v9 HEAVY//GLITCH radio bank */
.radio-tracks button:nth-child(n+21) { border-color:rgba(255,48,72,.5); background:linear-gradient(145deg,rgba(38,3,10,.93),rgba(3,22,55,.92)); box-shadow:inset 3px 0 rgba(255,48,72,.42),inset -2px 0 rgba(33,140,255,.25); }
.radio-tracks button:nth-child(n+21) strong { color:#f4f7ff; }
.radio-tracks button:nth-child(n+21) small { color:#8ca9cf; }
.radio-tracks button:nth-child(n+21) > span { color:#ff4058; text-shadow:2px 0 0 rgba(33,140,255,.35); }
.radio-tracks button:nth-child(n+21):hover,.radio-tracks button:nth-child(n+21).active { border-color:#ff3048; box-shadow:inset 4px 0 #ff3048,inset -4px 0 #218cff,0 0 18px rgba(255,48,72,.12); }


.game-glyph { border-color:rgba(83,171,255,.42); color:#b7ddff; box-shadow:inset 0 0 16px rgba(47,120,255,.10),0 8px 20px rgba(0,0,0,.28); }
.tooltrail-panel { background:radial-gradient(circle at 70% 20%,rgba(26,71,131,.14),transparent 38%), radial-gradient(circle at 20% 10%,rgba(146,20,54,.10),transparent 32%); }
.trail-shell { display:flex; flex-direction:column; gap:14px; }
.trail-topbar,.trail-headline { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.trail-topbar h2,.trail-headline h2 { margin-bottom:6px; }
.trail-topbar p,.trail-headline p { color:#89a0ac; max-width:560px; font-size:11px; }
.trail-integrity small,.trail-scorecard span,.trail-meta-grid small,.trail-stage-meta span,.trail-option small { display:block; color:#7990a1; font-size:9px; letter-spacing:.14em; }
.trail-hearts { display:flex; gap:6px; margin-top:6px; }
.trail-hearts i { width:16px; height:10px; border:1px solid rgba(103,139,172,.45); background:#08131d; display:block; }
.trail-hearts i.on { background:linear-gradient(90deg,#1f7dff,#dd274f); border-color:rgba(119,183,255,.55); box-shadow:0 0 16px rgba(31,125,255,.24); }
.trail-progress { height:10px; border:1px solid #293f52; background:#07111a; overflow:hidden; }
.trail-progress i { display:block; height:100%; background:linear-gradient(90deg,#1f7dff,#dd274f); box-shadow:0 0 18px rgba(31,125,255,.28); }
.trail-stage-card { border:1px solid #264052; background:linear-gradient(135deg,rgba(9,21,31,.94),rgba(22,9,17,.84)); padding:16px; }
.trail-stage-meta { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:8px; }
.trail-stage-meta strong { color:#eaf6ff; font-size:11px; letter-spacing:.08em; }
.trail-stage-blurb { color:#c6d5de; font-size:13px; line-height:1.55; margin:0; }
.trail-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.trail-option { border:1px solid #2a4052; background:linear-gradient(145deg,rgba(10,18,28,.96),rgba(25,8,18,.82)); padding:14px; min-height:110px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:10px; color:#d6e8f4; cursor:pointer; text-align:left; }
.trail-option strong { font-size:18px; line-height:1.05; }
.trail-option span { color:#ff8da0; font-size:10px; letter-spacing:.16em; }
.trail-option:hover { transform:translateY(-1px); border-color:rgba(77,160,255,.48); box-shadow:0 10px 24px rgba(0,0,0,.28); }
.trail-log-wrap { border:1px solid #26384b; background:#071018; padding:12px; }
.trail-log-wrap h3 { margin-bottom:10px; }
.trail-log { display:flex; flex-direction:column; gap:10px; max-height:210px; overflow:auto; }
.trail-log.empty { color:#6b8794; font-size:12px; }
.trail-log-entry { border-left:3px solid #43627a; padding:8px 10px; background:rgba(255,255,255,.02); }
.trail-log-entry.good { border-left-color:#2a8cff; }
.trail-log-entry.bad { border-left-color:#d83b57; }
.trail-log-entry strong { display:block; font-size:11px; color:#e7f2f7; margin-bottom:4px; }
.trail-log-entry p { margin:0; color:#9ab1bc; font-size:11px; line-height:1.45; }
.trail-scorecard { min-width:110px; text-align:center; padding:10px 12px; border:1px solid #294154; background:#08121b; }
.trail-scorecard strong { display:block; font-size:30px; color:#f2fbff; }
.trail-meta-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.trail-meta-grid > div { border:1px solid #26394c; background:#08121b; padding:10px; }
.trail-meta-grid strong { display:block; margin-top:4px; color:#edf7ff; font-size:14px; }
.trail-actions { display:flex; gap:10px; }
.trail-shell.success .trail-headline h2 { color:#dff3ff; }
.trail-shell.failure .trail-headline h2 { color:#ffd6dc; }
@media (max-width: 850px) {
  .trail-topbar,.trail-headline,.trail-stage-meta { flex-direction:column; }
  .trail-options { grid-template-columns:1fr; }
  .trail-meta-grid { grid-template-columns:1fr; }
}


/* v11 profile + CTF workbench + threat feed + mini-browser */
.id-avatar { position:relative; overflow:hidden; }
.id-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.id-avatar span { position:absolute; inset:0; place-items:center; }
.id-avatar span:not([hidden]) { display:grid; }
.ctf-glyph { color:#ffd26b; border-color:rgba(255,210,107,.48); font-size:12px; }
.feed-glyph { color:#ff6578; border-color:rgba(255,48,72,.52); font-size:12px; }
.pizzint-glyph { color:#7ebaff; border-color:rgba(33,140,255,.52); font-size:12px; }
.toolkit-panel { min-height:100%; background:radial-gradient(circle at 90% 10%,rgba(255,184,64,.06),transparent 30%),#050907; }
.toolkit-head,.feed-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.toolkit-head p,.feed-head p { color:#829b8f; max-width:650px; font-size:11px; }
.local-badge { border:1px solid #436b53; color:var(--green); background:#071b12; padding:6px 8px; font-size:9px; letter-spacing:.12em; }
.toolkit-controls { display:flex; align-items:end; gap:10px; flex-wrap:wrap; margin:12px 0; }
.toolkit-controls label { display:flex; flex-direction:column; gap:5px; color:#6d8f7e; font-size:9px; letter-spacing:.1em; }
.toolkit-controls select,.toolkit-controls input { border:1px solid #315844; background:#06110d; color:#d8eadf; padding:8px; }
.shift-control { display:none !important; }.shift-control.visible { display:flex !important; }
.shift-control input { width:80px; }
.toolkit-dir { display:flex; gap:6px; }
.toolkit-dir .active,.feed-tabs .active { border-color:#4da473; color:var(--green); background:#0e2b1e; }
.toolkit-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.toolkit-grid label { color:#759a87; font-size:9px; letter-spacing:.12em; }
.toolkit-grid textarea { margin-top:6px; width:100%; min-height:280px; resize:vertical; border:1px solid #274b3a; background:#020604; color:#bff3d1; padding:12px; font:12px/1.5 ui-monospace,monospace; }
.toolkit-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.toolkit-note { margin-top:10px !important; color:#607f70 !important; font-size:9px; }
.feed-panel { min-height:100%; background:radial-gradient(circle at 85% 5%,rgba(33,140,255,.08),transparent 30%),radial-gradient(circle at 10% 85%,rgba(255,48,72,.06),transparent 33%),#05080a; }
.feed-meta { margin:8px 0 10px; color:#6c8293; font-size:9px; letter-spacing:.1em; }
.feed-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.feed-list { display:grid; gap:8px; }
.feed-item { border:1px solid #253b48; background:#071018; padding:12px; box-shadow:inset 3px 0 #314b5e; }
.feed-item.kev { box-shadow:inset 3px 0 #ff3048; }.feed-item.critical { box-shadow:inset 3px 0 #ff9c42; }.feed-item.news { box-shadow:inset 3px 0 #218cff; }
.feed-item-meta { display:flex; gap:10px; flex-wrap:wrap; color:#627c8d; font-size:8px; letter-spacing:.1em; }
.feed-item-meta span:first-child { color:#ff8190; }
.feed-item h3 { margin:7px 0 5px; font-size:13px; }.feed-item h3 a { color:#d9e9f3; text-decoration:none; }.feed-item h3 a:hover { color:#fff; text-decoration:underline; }
.feed-item p { margin:0; color:#8ea5b2; font-size:10px; line-height:1.45; }.feed-item code { display:inline-block; margin-top:7px; color:#ffd0d6; font-size:9px; }
.feed-loading,.feed-error { border:1px dashed #314957; padding:18px; color:#7f98a5; font-size:11px; }.feed-error strong { color:#ffd7dc; }
.feed-source-links { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }.feed-source-links a { border:1px solid #2d4c5e; color:#8fc7ff; padding:6px 8px; text-decoration:none; font-size:9px; }
.pizzint-panel { height:100%; display:flex; flex-direction:column; background:#03070a; }
.mini-browser-bar { flex:0 0 42px; display:flex; align-items:center; gap:9px; padding:0 10px; border-bottom:1px solid #2a4354; background:linear-gradient(90deg,#0c151d,#080b10); color:#7fa3bb; font-size:10px; }
.mini-browser-bar strong { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.mini-browser-bar a,.embed-note a { color:#74b9ff; text-decoration:none; }
.mini-browser-dot { width:7px; height:7px; border-radius:50%; background:#218cff; box-shadow:0 0 10px #218cff; }
.pizzint-frame { flex:1; width:100%; min-height:0; border:0; background:#fff; }
.embed-note { flex:0 0 auto; padding:7px 10px; border-top:1px solid #213744; background:#071018; color:#617987; font-size:9px; }
@media (max-width:850px) { .toolkit-head,.feed-head { flex-direction:column; } .toolkit-grid { grid-template-columns:1fr; } .toolkit-grid textarea { min-height:180px; } }


/* v14 live threat-feed source diagnostics */
.feed-source-status { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px; }
.feed-status-chip { display:inline-flex; align-items:center; gap:5px; border:1px solid #2b4352; background:#071019; color:#7992a1; padding:5px 7px; font-size:8px; letter-spacing:.06em; }
.feed-status-chip i { width:6px; height:6px; border-radius:50%; background:#566672; }
.feed-status-chip b { font-weight:800; color:#a9bdc8; }
.feed-status-chip.loading i { background:#ffc86b; box-shadow:0 0 8px rgba(255,200,107,.4); animation:feed-pulse .8s ease-in-out infinite alternate; }
.feed-status-chip.ok { border-color:rgba(45,142,91,.5); color:#95c7aa; }
.feed-status-chip.ok i { background:#32d887; box-shadow:0 0 8px rgba(50,216,135,.45); }
.feed-status-chip.error { border-color:rgba(206,54,76,.48); color:#d9939e; }
.feed-status-chip.error i { background:#ff3048; box-shadow:0 0 8px rgba(255,48,72,.45); }
.feed-source-errors { border:1px solid rgba(255,48,72,.34); background:rgba(78,8,18,.22); color:#d99aa4; padding:8px 10px; font-size:9px; }
@keyframes feed-pulse { from { opacity:.35; } to { opacity:1; } }

/* v16 PizzINT live popup launcher */
.pizzint-launcher { min-height:100%; background:radial-gradient(circle at 82% 14%,rgba(33,140,255,.10),transparent 36%),radial-gradient(circle at 14% 86%,rgba(255,48,72,.08),transparent 38%); }
.pizzint-launch-card { margin:20px 0; display:grid; grid-template-columns:72px 1fr; gap:16px; align-items:center; padding:16px; border:1px solid rgba(33,140,255,.38); background:linear-gradient(135deg,rgba(5,28,54,.72),rgba(40,4,13,.62)); box-shadow:inset 3px 0 rgba(255,48,72,.55),inset -3px 0 rgba(33,140,255,.45); }
.pizzint-launch-mark { width:64px; height:64px; display:grid; place-items:center; border:1px solid rgba(33,140,255,.55); color:#79baff; font-size:22px; font-weight:900; background:#050b14; }
.pizzint-launch-card small { display:block; color:#ff6176; font-size:8px; letter-spacing:.15em; }
.pizzint-launch-card strong { display:block; color:#e4f1ff; font-size:20px; margin:3px 0; }
.pizzint-launch-card span { color:#7896b6; font-size:10px; }
.pizzint-launch-actions { display:flex; gap:10px; flex-wrap:wrap; }
.pizzint-launch-actions .ui-button { text-decoration:none; }


/* v18 QR decoder + reliable PizzINT launcher */
.qr-workbench { margin-top:18px; padding-top:16px; border-top:1px solid #254836; }
.qr-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; margin-bottom:10px; }
.qr-head small { color:var(--amber); font-size:9px; letter-spacing:.14em; }
.qr-head h3 { margin:3px 0 4px; font-size:16px; }
.qr-head p { margin:0; color:#789889; font-size:10px; }
.qr-grid { display:grid; grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr); gap:12px; }
.qr-grid > label { color:#759a87; font-size:9px; letter-spacing:.12em; }
.qr-grid textarea { margin-top:6px; width:100%; min-height:170px; resize:vertical; border:1px solid #274b3a; background:#020604; color:#bff3d1; padding:12px; font:12px/1.5 ui-monospace,monospace; }
.qr-drop { min-height:170px; position:relative; display:flex; flex-direction:column; gap:8px; align-items:center; justify-content:center; overflow:hidden; border:1px dashed #486a58; background:#040b07; cursor:pointer; text-align:center; padding:10px; }
.qr-drop input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.qr-drop > span { border:1px solid #315844; background:#0d291d; color:var(--green); padding:7px 10px; font-size:9px; }
.qr-drop img { width:100%; max-height:210px; object-fit:contain; background:#fff; }
@media (max-width:850px) { .qr-head { flex-direction:column; } .qr-grid { grid-template-columns:1fr; } }


/* v19 PIN//SET + Lock Lab */
.lock-glyph { border-color:rgba(244,186,55,.55); color:#ffd36f; box-shadow:inset 0 0 16px rgba(244,186,55,.08),0 8px 20px rgba(0,0,0,.28); }
.video-glyph { border-color:rgba(255,70,84,.55); color:#ff7f8c; box-shadow:inset 0 0 16px rgba(255,70,84,.08),0 8px 20px rgba(0,0,0,.28); }
.lock-trainer { background:radial-gradient(circle at 15% 20%,rgba(225,166,49,.10),transparent 34%),#050a08; }
.lock-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.lock-head p { max-width:610px; color:#90aa9b; font-size:11px; }
.lock-level { border:1px solid #765d24; color:#ffd26a; background:#1b1609; padding:7px 10px; font-size:10px; letter-spacing:.12em; }
.lock-legal { border-left:3px solid #d8a934; padding:8px 10px; margin:8px 0 13px; background:rgba(86,63,10,.16); color:#b9a56f; font-size:9px; letter-spacing:.07em; }
.lock-status { display:grid; grid-template-columns:180px 1fr; gap:10px; margin-bottom:12px; }
.lock-status > div { border:1px solid #304b3d; background:#07130e; padding:10px; }
.lock-status small,.lock-feedback small { display:block; color:#6d897a; font-size:8px; letter-spacing:.14em; margin-bottom:4px; }
.lock-status strong { color:#e9d795; }.lock-status span { color:#91aa9d; font-size:10px; }
.lock-cylinder { min-height:220px; display:flex; justify-content:center; align-items:flex-end; gap:8px; padding:26px 18px 18px; border:1px solid #43583f; background:linear-gradient(180deg,#11170f,#080c09 52%,#161207); box-shadow:inset 0 -8px 0 #6a5522,inset 0 -11px 0 #2b2410; overflow:hidden; }
.lock-pin { width:72px; min-width:52px; height:175px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:5px; border:1px solid #4b563d; background:#11170f; color:#809587; cursor:pointer; padding:7px; }
.lock-pin.selected { border-color:#e0af3a; box-shadow:0 0 0 1px rgba(224,175,58,.14),inset 0 0 20px rgba(224,175,58,.05); color:#ffd56e; }
.lock-pin.set { border-color:#3f9b6b; background:#0b2118; color:#7dffb2; }
.pin-number { font-size:11px; font-weight:900; }
.pin-stack { height:122px; width:26px; display:flex; flex-direction:column; justify-content:flex-end; background:#050706; border:1px solid #3d4432; }
.pin-stack b,.pin-stack em { display:block; width:100%; min-height:5px; }
.pin-stack b { background:#6f704d; border-bottom:2px solid #e3c55d; }
.pin-stack em { background:linear-gradient(90deg,#675318,#c9a83f,#675318); }
.lock-pin.set .pin-stack b { background:#49785c; }.lock-pin.set .pin-stack em { background:linear-gradient(90deg,#1f6945,#65d699,#1f6945); }
.lock-pin small { font-size:8px; letter-spacing:.08em; }
.lock-controls { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
.lock-controls label { display:grid; grid-template-columns:92px 1fr 45px; align-items:center; gap:8px; padding:10px; border:1px solid #2b4938; background:#07140f; color:#7d9a8a; font-size:9px; letter-spacing:.12em; }
.lock-controls input { width:100%; accent-color:#d8aa38; }.lock-controls output { color:#f2c75f; text-align:right; }
.lock-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.lock-feedback { margin-top:10px; border:1px solid #315242; background:#06110d; padding:11px; }
.lock-feedback strong { display:block; color:#d9e9e0; font-size:11px; }
.lock-guide { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:10px; }
.lock-guide span { border:1px solid #263f32; background:#07110d; color:#718d7e; padding:8px; font-size:8px; }
.lock-complete { border:1px solid #3d805d; background:linear-gradient(140deg,rgba(11,47,31,.8),rgba(42,33,8,.55)); padding:22px; }
.lock-complete strong { display:block; color:#7dffb2; font-size:24px; margin-bottom:6px; }
.lock-complete p { color:#9ab3a5; }
.video-lab { background:radial-gradient(circle at 85% 10%,rgba(255,52,70,.08),transparent 34%),#05080b; }
.video-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.video-head p { max-width:600px; color:#8ea0aa; font-size:11px; }.video-head code,.video-file-note code { color:#ff8b96; }
.video-layout { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:12px; margin-top:14px; }
.video-stage { min-width:0; }.youtube-frame { position:relative; width:100%; aspect-ratio:16/9; border:1px solid #384853; background:#000; overflow:hidden; }
.youtube-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-now { display:grid; grid-template-columns:1fr auto; gap:5px 10px; padding:10px; border:1px solid #2c404d; border-top:0; background:#071018; }
.video-now small { grid-column:1/-1; color:#7a8f9a; font-size:8px; letter-spacing:.14em; }.video-now strong { color:#e7f0f5; }.video-now a { color:#ff7180; text-decoration:none; font-size:9px; }
.video-playlist { display:flex; flex-direction:column; gap:6px; max-height:490px; overflow:auto; }
.video-item { display:grid; grid-template-columns:30px 1fr; gap:3px 8px; border:1px solid #263b48; background:#071018; color:#8197a3; padding:9px; text-align:left; cursor:pointer; }
.video-item:hover,.video-item.active { border-color:#bb3c4b; background:#18090d; }.video-item > span { grid-row:1/3; color:#ff6473; font-weight:900; }.video-item strong { color:#cbd9e0; font-size:10px; }.video-item small { color:#566d79; font-size:8px; }
.video-empty { min-height:320px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; border:1px dashed #3a4a53; background:#060b0f; color:#718892; text-align:center; padding:24px; }
.video-empty strong { color:#e4edf1; }.video-empty span { max-width:520px; font-size:10px; line-height:1.5; }
.video-file-note { margin-top:10px; color:#637985; font-size:9px; }
@media (max-width:850px){
  .lock-head,.video-head { flex-direction:column; }
  .lock-status,.lock-controls,.video-layout { grid-template-columns:1fr; }
  .lock-cylinder { justify-content:flex-start; overflow-x:auto; }
  .lock-pin { flex:0 0 58px; }
  .lock-guide { grid-template-columns:1fr 1fr; }
  .video-playlist { max-height:260px; }
}


/* v20 Lock Lab silent-only player */
.video-head-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.video-muted-badge,.video-silent-label { border:1px solid rgba(255,70,84,.48); background:rgba(73,7,15,.45); color:#ff8793; padding:5px 7px; font-size:8px; letter-spacing:.13em; white-space:nowrap; }
.video-now { align-items:center; }
.video-silent-label { justify-self:end; }
.video-controls { display:grid; grid-template-columns:repeat(5,minmax(0,auto)); gap:7px; padding:9px; border:1px solid #2c404d; border-top:0; background:#050c12; }
.video-controls button { min-height:34px; }
.youtube-frame::after { content:'AUDIO DISABLED'; position:absolute; right:8px; top:8px; z-index:2; padding:4px 6px; border:1px solid rgba(255,70,84,.48); background:rgba(13,4,7,.84); color:#ff8490; font-size:8px; letter-spacing:.12em; pointer-events:none; }
@media (max-width:850px) {
  .video-head-actions { justify-content:flex-start; }
  .video-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .video-controls button:last-child { grid-column:1/-1; }
  .video-silent-label { justify-self:start; }
}

/* v21 taskbar-integrated Signal FM */
.taskbar .signal-dock { z-index:1; }
.taskbar .signal-main:focus-visible, .taskbar .signal-play:focus-visible { outline:1px solid #7ebcff; outline-offset:-2px; }
