/* City Cyber Tools — hub grid + in-page tool window
   Scoped under .cct-hub / .cct-modal to avoid clashing with the theme. */

.cct-hub{
  --cct-ink:#14233A; --cct-ink2:#22345A; --cct-brass:#B08D57; --cct-brass-dk:#8E6F3F;
  --cct-paper:#F7F4EF; --cct-line:#E6DFD1; --cct-muted:#6E7488;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:#1B2740; max-width:1120px; margin:0 auto; padding:8px 0 4px;
}
.cct-hub *{box-sizing:border-box}
.cct-hub-head{margin-bottom:22px}
.cct-hub .cct-eyebrow{
  font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--cct-brass-dk);display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;
}
.cct-hub .cct-eyebrow::before{content:"";width:30px;height:1.5px;background:var(--cct-brass);display:inline-block}
.cct-hub-head h2{
  font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:1.9rem;color:var(--cct-ink);
  letter-spacing:-.01em;margin:0 0 6px;line-height:1.1;
}
.cct-hub-head p{color:var(--cct-ink2);font-size:1rem;margin:0}

.cct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.cct-card{
  position:relative;background:#fff;border:1px solid var(--cct-line);border-radius:18px;
  padding:22px;display:flex;flex-direction:column;cursor:pointer;overflow:hidden;
  box-shadow:0 6px 18px rgba(20,35,58,.07);
  transition:transform .18s ease,box-shadow .25s ease,border-color .25s ease;
}
.cct-card::after{content:"";position:absolute;left:0;top:0;height:100%;width:4px;background:var(--cct-accent,var(--cct-brass))}
.cct-card:hover,.cct-card:focus-visible{transform:translateY(-4px);box-shadow:0 18px 44px rgba(20,35,58,.14);border-color:var(--cct-brass);outline:none}
.cct-card .cct-ic{
  width:50px;height:50px;border-radius:13px;display:grid;place-items:center;font-size:1.5rem;margin-bottom:14px;
  background:color-mix(in srgb,var(--cct-accent,var(--cct-brass)) 14%,white);
}
.cct-card h3{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.2rem;color:var(--cct-ink);margin:0;letter-spacing:-.01em}
.cct-card .cct-role{font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--cct-accent,var(--cct-brass-dk));margin-top:4px}
.cct-card p{font-size:.88rem;color:var(--cct-ink2);margin:12px 0 0;flex:1;line-height:1.5}
.cct-card .cct-launch{
  margin-top:16px;font-weight:700;font-size:.88rem;color:var(--cct-ink);
  display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:11px;
  background:var(--cct-paper);border:1.5px solid var(--cct-line);align-self:flex-start;transition:.2s;
}
.cct-card:hover .cct-launch{background:var(--cct-ink);color:var(--cct-paper);border-color:var(--cct-ink)}
.cct-card .cct-arrow{transition:transform .2s}
.cct-card:hover .cct-arrow{transform:translateX(3px)}
.cct-card--desk{cursor:default;background:linear-gradient(135deg,#14233A,#22345A);border:none}
.cct-card--desk::after{display:none}
.cct-card--desk h3{color:var(--cct-paper)}
.cct-card--desk .cct-role{color:var(--cct-brass)}
.cct-card--desk p{color:rgba(247,244,239,.82)}
.cct-card--desk:hover{transform:none;box-shadow:0 6px 18px rgba(20,35,58,.07)}
.cct-card--desk .cct-ic{background:rgba(217,188,139,.18)}
.cct-desk-tag{margin-top:16px;font-size:.75rem;font-weight:700;color:var(--cct-brass);align-self:flex-start}

/* in-page tool window (modal) */
.cct-modal{
  position:fixed;inset:0;z-index:100000;background:rgba(20,35,58,.55);backdrop-filter:blur(4px);
  display:none;flex-direction:column;padding:0;
}
.cct-modal.cct-open{display:flex}
.cct-modal-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#14233A;color:#F7F4EF;padding:10px 16px;flex-wrap:wrap;
}
.cct-modal-title{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.05rem}
.cct-modal-actions{display:flex;gap:8px}
.cct-modal-btn{
  font-family:'Inter',sans-serif;font-size:.82rem;font-weight:700;cursor:pointer;
  padding:8px 14px;border-radius:9px;border:1px solid rgba(217,188,139,.4);
  background:transparent;color:#F7F4EF;text-decoration:none;
}
.cct-modal-btn:hover{background:rgba(217,188,139,.18);color:#F7F4EF}
.cct-modal-close{background:#B08D57;color:#14233A;border-color:#B08D57}
.cct-modal-close:hover{background:#D9BC8B;color:#14233A}
.cct-modal-frame{flex:1;width:100%;border:0;background:#fff}

/* shared note (used by [cc_tool] for desktop-only / errors) */
.cct-note{
  font-family:'Inter',sans-serif;background:#F7F4EF;border:1px solid #E6DFD1;border-left:4px solid #B08D57;
  border-radius:10px;padding:14px 16px;color:#22345A;font-size:.92rem;
}

@media(max-width:600px){
  .cct-hub-head h2{font-size:1.5rem}
  .cct-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.cct-card,.cct-launch,.cct-arrow{transition:none}}
