/* ===== Secret Agent visual identity — active only with body.pack-agent ===== */

/* agency atmosphere: vignette + faint grid */
body.pack-agent {
  background:
    radial-gradient(1200px 600px at 50% -10%, rgba(108, 92, 231, .08), transparent),
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(255,255,255,.015) 39px 40px),
    repeating-linear-gradient(90deg, transparent 0 39px, rgba(255,255,255,.015) 39px 40px),
    var(--bg);
}

/* typewriter headers — playful spy-file feel */
body.pack-agent .topbar h1,
body.pack-agent .card h3,
body.pack-agent .col h4,
body.pack-agent h2 {
  font-family: 'Courier New', ui-monospace, monospace;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}
body.pack-agent .topbar h1::before { content: '▸ '; color: var(--accent); }

/* radar sweep in the header */
body.pack-agent .topbar::after {
  content: ''; width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0; order: -1;
  border: 1px solid var(--accent-soft);
  background:
    conic-gradient(from 0deg, var(--accent-soft), transparent 60deg),
    radial-gradient(circle, transparent 55%, var(--accent-soft) 56%, transparent 58%),
    radial-gradient(circle, transparent 25%, var(--accent-soft) 26%, transparent 28%);
  animation: ag-radar 3.5s linear infinite;
}
@keyframes ag-radar { to { transform: rotate(360deg); } }

/* dossier cards: file-folder top edge + corner clip */
body.pack-agent .card {
  position: relative;
  border-radius: 4px 14px 14px 14px;
  border-top: 2px solid var(--accent-soft);
}
body.pack-agent .card::before {
  content: ''; position: absolute; top: -2px; left: -1px; width: 64px; height: 7px;
  background: var(--accent-soft); border-radius: 4px 8px 0 0;
}

/* CLASSIFIED stamps */
body.pack-agent .notice.unacked::after,
body.pack-agent .task .pts::before { pointer-events: none; }
body.pack-agent .notice.unacked::after {
  content: 'TOP SECRET'; position: absolute; top: 10px; right: 14px;
  font-family: 'Courier New', monospace; font-weight: 700; font-size: 11px; letter-spacing: 2px;
  color: var(--danger); border: 2px solid var(--danger); border-radius: 4px; padding: 2px 8px;
  transform: rotate(8deg); opacity: .85;
}
body.pack-agent .notice { position: relative; }
body.pack-agent .chip-closed { font-family: 'Courier New', monospace; letter-spacing: 1px; }

/* mission cards = mini dossiers */
body.pack-agent .task {
  border-left: 3px solid var(--accent);
  border-radius: 3px 10px 10px 3px;
}
body.pack-agent .task .t-title { font-family: 'Courier New', monospace; letter-spacing: .5px; }
body.pack-agent .col-done .task { border-left-color: var(--success); }
body.pack-agent .col-stuck .task { border-left-color: var(--danger); }

/* redacted-bar empty states */
body.pack-agent .empty { font-family: 'Courier New', monospace; letter-spacing: 1px; }
body.pack-agent .empty::before { content: '█▌'; color: var(--surface-3); margin-right: 6px; }
body.pack-agent .empty::after { content: ' ▐█▌'; color: var(--surface-3); }

/* XP chip = clearance badge */
body.pack-agent .xp-level {
  font-family: 'Courier New', monospace; letter-spacing: 1px;
  border: 1px solid rgba(255,255,255,.25); clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%);
  padding: 4px 12px;
}

/* comms = encrypted channel look */
body.pack-agent .chat-bubble { font-family: inherit; }
body.pack-agent .chat-chan { font-family: 'Courier New', monospace; letter-spacing: .5px; font-size: 12.5px; }
body.pack-agent .chat-input input { font-family: 'Courier New', monospace; }
body.pack-agent .chat-input input::placeholder { color: var(--muted); }

/* login terminal */
body.pack-agent .login-card { border: 1px solid var(--accent); box-shadow: 0 0 40px var(--accent-soft); border-radius: 6px; }
body.pack-agent .login-card label, body.pack-agent .login-card .login-sub,
body.pack-agent .login-card input, body.pack-agent .login-card .btn {
  font-family: 'Courier New', monospace; letter-spacing: 1px;
}
body.pack-agent .login-sub { color: var(--accent); text-transform: uppercase; font-size: 12px; }

/* access-granted overlay */
.ag-access {
  position: fixed; inset: 0; z-index: 3000; background: #0a0b10;
  display: grid; place-items: center; animation: ag-fadeout .5s ease 1.6s forwards;
}
.ag-access .ag-text {
  font-family: 'Courier New', monospace; font-size: clamp(18px, 4vw, 30px); letter-spacing: 3px;
  color: var(--success); border-right: 3px solid var(--success);
  white-space: nowrap; overflow: hidden; width: 0;
  animation: ag-type 1.1s steps(24) .15s forwards, ag-caret .5s step-end infinite;
}
@keyframes ag-type { to { width: 100%; } }
@keyframes ag-caret { 50% { border-color: transparent; } }
@keyframes ag-fadeout { to { opacity: 0; visibility: hidden; } }

/* mobile sheet tiles join the agency */
body.pack-agent .sheet-tile { font-family: 'Courier New', monospace; letter-spacing: .5px; border-radius: 6px; }

/* ===== Mission Trail ===== */
.ag-trail { display: flex; align-items: center; justify-content: space-between; padding: 18px 4px 8px; }
.ag-link { flex: 1; height: 4px; margin: 0 -6px 38px; border-radius: 99px; background: var(--surface-3);
  background-image: repeating-linear-gradient(90deg, var(--border) 0 8px, transparent 8px 16px); }
.ag-link.done { background: var(--success); background-image: none; box-shadow: 0 0 8px rgba(0,184,148,.4); }
.ag-node { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; min-width: 64px; z-index: 1; }
.ag-node:nth-child(3) { transform: translateY(-10px); }
.ag-node:nth-child(7) { transform: translateY(-10px); }
.ag-node-circle { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center;
  font-size: 22px; background: var(--surface-2); border: 3px solid var(--border);
  transition: transform .25s cubic-bezier(.34, 1.56, .64, 1); }
.ag-node:hover .ag-node-circle { transform: scale(1.12); }
.ag-node.done .ag-node-circle { background: var(--success); border-color: var(--success); color: #06281f; font-weight: 900; font-size: 26px; }
.ag-node.now .ag-node-circle { border-color: var(--accent); box-shadow: 0 0 0 0 var(--accent-soft); animation: ag-pulse 1.6s infinite; }
@keyframes ag-pulse { 0% { box-shadow: 0 0 0 0 var(--accent-soft); } 70% { box-shadow: 0 0 0 14px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
.ag-node.todo { opacity: .45; }
.ag-node-label { font-family: 'Courier New', monospace; font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: var(--text); }
.ag-node-sub { font-size: 10px; color: var(--muted); margin-top: -4px; }
.ag-node.done .ag-node-label { color: var(--success); }
.ag-trail-card.complete { border-color: var(--success); box-shadow: 0 0 24px rgba(0,184,148,.15); }
@media (max-width: 480px) {
  .ag-node-circle { width: 44px; height: 44px; font-size: 18px; }
  .ag-node { min-width: 52px; }
  .ag-node-sub { display: none; }
}

/* calm guarantee */
@media (prefers-reduced-motion: reduce) {
  body.pack-agent .topbar::after { animation: none; }
  .ag-access { display: none; }
}
