/* ── Command Center Redesign ─────────────────────────────────────────── */
#hub-cc {
  position: relative;
  background: #0b0b0f;
  border: 1px solid rgba(255,245,225,0.06);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 16px;
}
.cc-topbar { height: 2px; background: linear-gradient(90deg,var(--accent) 0%,rgba(212,165,116,0.25) 55%,transparent 100%); }
.cc-header { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:14px 16px 10px; }
.cc-header-right { text-align:right; flex-shrink:0; }
.cc-greeting { display:block; font-size:0.98rem; font-weight:600; color:var(--text-primary); letter-spacing:-0.01em; line-height:1.2; }
.cc-portfolio { font-family:var(--font-mono); font-size:0.57rem; color:var(--text-muted); margin-top:3px; }
.cc-date { font-family:var(--font-mono); font-size:0.54rem; color:var(--text-muted); letter-spacing:0.04em; display:block; margin-bottom:5px; }
.cc-weather-block { display:flex; align-items:center; gap:10px; margin:0 16px 10px; padding:8px 12px; border-radius:10px; background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.04); }
.cc-status-row { display:flex; align-items:center; gap:10px; padding:0 16px 10px; flex-wrap:wrap; }
.cc-margin-slot { flex:1; min-width:0; font-family:var(--font-mono); font-size:0.62rem; }
.cc-pulse-slot { font-family:var(--font-mono); font-size:0.54rem; color:var(--text-muted); white-space:nowrap; display:flex; align-items:center; gap:5px; }
.cc-divider { height:1px; background:rgba(255,245,225,0.05); }

/* Section label */
.cc-section-label {
  font-family:var(--font-mono); font-size:0.48rem; font-weight:700; color:var(--text-muted);
  text-transform:uppercase; letter-spacing:0.14em;
  padding:10px 16px 5px; display:flex; align-items:center; gap:6px;
}
.cc-section-count {
  background:rgba(248,113,113,0.12); color:var(--red);
  padding:1px 5px; border-radius:4px; font-size:0.44rem;
}
.cc-section-count.amber { background:rgba(251,191,36,0.12); color:var(--amber); }
.cc-section-count.accent { background:rgba(212,165,116,0.12); color:var(--accent); }

/* Swipeable Needs You cards */
.cc-needs-section { padding-bottom:4px; }
.cc-needs-card-wrap {
  position:relative; overflow:hidden;
  margin:0 10px 5px; border-radius:10px;
}
.cc-dismiss-bg {
  position:absolute; inset:0; display:flex; align-items:center; padding:0 14px;
  background:rgba(248,113,113,0.14); color:var(--red);
  font-family:var(--font-mono); font-size:0.52rem; font-weight:700;
  text-transform:uppercase; letter-spacing:0.1em;
  opacity:0; transition:opacity 0.12s; pointer-events:none;
}
.cc-dismiss-bg.show { opacity:1; }
.cc-needs-inner {
  position:relative; z-index:1;
  background:rgba(255,255,255,0.025);
  border:1px solid rgba(255,245,225,0.06);
  border-left:2.5px solid transparent;
  border-radius:10px; padding:9px 12px;
  cursor:grab; will-change:transform;
  -webkit-user-select:none; user-select:none;
}
.cc-needs-inner:active { cursor:grabbing; }
.cc-needs-inner.ac-red   { border-left-color:var(--red); }
.cc-needs-inner.ac-amber { border-left-color:var(--amber); }
.cc-needs-inner.ac-gold  { border-left-color:var(--accent); }
.cc-needs-header { display:flex; align-items:center; gap:6px; }
.cc-needs-title { font-size:0.74rem; font-weight:600; color:var(--text-primary); line-height:1.3; flex:1; }
.cc-needs-expand-icon { font-size:0.55rem; color:var(--text-muted); flex-shrink:0; transition:transform 0.2s; opacity:0.5; }
.cc-needs-inner.expanded .cc-needs-expand-icon { transform:rotate(90deg); }
.cc-needs-body { display:none; margin-top:7px; padding-top:7px; border-top:1px solid rgba(255,245,225,0.05); }
.cc-needs-inner.expanded .cc-needs-body { display:block; }
.cc-needs-detail { font-family:var(--font-mono); font-size:0.56rem; color:var(--text-muted); line-height:1.4; margin-bottom:6px; }
.cc-needs-context { font-family:var(--font-mono); font-size:0.52rem; color:var(--text-muted); opacity:0.6; margin-bottom:8px; line-height:1.5; }
.cc-needs-actions { display:flex; gap:5px; flex-wrap:wrap; align-items:center; }
/* Tick / promote-to-task button */
.cc-tick-btn {
  display:inline-flex; align-items:center; gap:4px;
  font-family:var(--font-mono); font-size:0.52rem; font-weight:700;
  padding:3px 8px; border-radius:5px; border:1px solid rgba(163,230,53,0.22);
  background:rgba(163,230,53,0.07); color:rgba(163,230,53,0.7);
  cursor:pointer; margin-left:auto; flex-shrink:0;
  transition:all 0.15s; white-space:nowrap;
}
.cc-tick-btn:hover { background:rgba(163,230,53,0.14); color:#a3e635; border-color:rgba(163,230,53,0.35); }
.cc-tick-btn.done { color:var(--green); border-color:rgba(163,230,53,0.3); background:rgba(163,230,53,0.1); cursor:default; }
.cc-needs-btn {
  font-family:var(--font-mono); font-size:0.54rem; font-weight:700;
  padding:3px 9px; border-radius:5px; border:1px solid;
  cursor:pointer; text-decoration:none;
  display:inline-flex; align-items:center; gap:3px;
  transition:opacity 0.12s, transform 0.12s;
  background:none;
}
.cc-needs-btn:hover { opacity:0.8; transform:translateY(-1px); }
.cc-needs-btn:disabled { opacity:0.4; cursor:not-allowed; transform:none; }
.cc-btn-review { background:rgba(212,165,116,0.1); color:var(--accent); border-color:rgba(212,165,116,0.28); }
.cc-btn-approve { background:rgba(163,230,53,0.1); color:#a3e635; border-color:rgba(163,230,53,0.26); }
.cc-btn-decline { background:rgba(248,113,113,0.08); color:#f87171; border-color:rgba(248,113,113,0.26); }

/* Telemetry compact row */
.cc-tel-section { padding-bottom:4px; }
.cc-tel-row {
  display:flex; margin:0 10px 5px; border-radius:10px;
  background:rgba(255,255,255,0.02); border:1px solid rgba(255,245,225,0.05);
  overflow:hidden; cursor:pointer;
}
.cc-tel-stat {
  flex:1; padding:7px 8px; text-align:center;
  border-right:1px solid rgba(255,245,225,0.05); transition:background 0.12s;
}
.cc-tel-stat:last-child { border-right:none; }
.cc-tel-row:hover .cc-tel-stat { background:rgba(255,255,255,0.02); }
.cc-tel-num { font-family:var(--font-mono); font-size:0.88rem; font-weight:700; line-height:1; }
.cc-tel-lbl { font-family:var(--font-mono); font-size:0.41rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.06em; margin-top:2px; }
.cc-tel-expand {
  display:none; padding:6px 12px 8px; border-top:1px solid rgba(255,245,225,0.05);
  margin:0 10px 5px;
}
.cc-tel-expand.open { display:block; }
.cc-tel-sub { font-family:var(--font-mono); font-size:0.47rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.1em; margin:5px 0 3px; }
.cc-tel-erow { display:flex; gap:8px; padding:2px 0; font-family:var(--font-mono); font-size:0.57rem; color:var(--text-muted); }
.cc-tel-epath { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cc-tel-ecount { color:var(--red); font-weight:700; }

/* Overnight / Today lists */
.cc-list-section { padding-bottom:6px; }
.cc-list-items { padding:0 10px; }
.cc-list-row {
  display:flex; align-items:flex-start; gap:7px; padding:5px 6px;
  font-size:0.71rem; color:var(--text-secondary); line-height:1.35;
  cursor:pointer; border-radius:7px; transition:background 110ms;
}
.cc-list-row:hover { background:rgba(255,255,255,0.03); }
.cc-list-icon { flex-shrink:0; width:16px; text-align:center; font-size:0.72rem; line-height:1.35; }
.cc-list-text { flex:1; }
.cc-list-muted { font-family:var(--font-mono); font-size:0.53rem; color:var(--text-muted); margin-left:4px; }
.cc-list-arrow { flex-shrink:0; color:var(--text-muted); font-size:0.6rem; line-height:1.35; }
.cc-list-num { font-family:var(--font-mono); font-size:0.56rem; font-weight:700; color:var(--accent); width:16px; text-align:center; flex-shrink:0; line-height:1.35; }

/* AI Brief */
.cc-brief-section { padding:8px 10px 6px; }
.cc-brief-head { display:flex; align-items:baseline; gap:8px; margin-bottom:8px; }
.cc-brief-title { font-size:0.56rem; font-weight:700; text-transform:uppercase; letter-spacing:0.16em; color:var(--accent); }
.cc-brief-age { font-family:var(--font-mono); font-size:0.52rem; color:var(--text-muted); margin-left:auto; }
.cc-brief-headline { font-size:0.78rem; font-weight:600; color:var(--text-primary); line-height:1.35; margin-bottom:8px; padding-bottom:8px; border-bottom:1px solid var(--border-color); }
/* 2026-04-14 — 2-col horizontal layout for "most recent news" compaction */
.cc-brief-focus { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.cc-brief-focus .cc-brief-row { padding:9px 10px; }
@media (max-width: 720px) { .cc-brief-focus { grid-template-columns:1fr; } }
.cc-brief-row { display:flex; align-items:flex-start; gap:9px; padding:8px 10px; border-radius:9px; background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.04); cursor:pointer; transition:background 140ms,border-color 140ms; }
.cc-brief-row:hover { background:rgba(255,255,255,0.045); border-color:rgba(212,165,116,0.25); }
.cc-brief-bullet { flex-shrink:0; width:5px; height:5px; border-radius:50%; background:var(--accent); margin-top:7px; box-shadow:0 0 6px rgba(212,165,116,0.35); }
.cc-brief-body { flex:1; min-width:0; }
.cc-brief-text { font-size:0.74rem; color:var(--text-primary); line-height:1.4; }
.cc-brief-why { font-size:0.6rem; color:var(--text-muted); line-height:1.4; margin-top:3px; }
.cc-brief-arrow { flex-shrink:0; color:var(--text-muted); font-size:0.65rem; line-height:1.4; margin-top:2px; }
.cc-brief-celebrate { margin-top:10px; padding:8px 10px; border-radius:9px; background:linear-gradient(135deg,rgba(245,200,100,0.06),rgba(245,200,100,0.02)); border:1px solid rgba(245,200,100,0.18); display:flex; gap:8px; align-items:flex-start; }
.cc-brief-celebrate-icon { font-size:0.9rem; line-height:1.4; flex-shrink:0; }
.cc-brief-celebrate-text { font-size:0.72rem; color:#f5c864; line-height:1.4; }
.cc-brief-celebrate-detail { font-size:0.58rem; color:var(--text-muted); margin-top:2px; }
.cc-brief-quiet { margin-top:10px; font-size:0.58rem; color:var(--text-muted); line-height:1.5; font-style:italic; padding-top:8px; border-top:1px dashed rgba(255,255,255,0.06); }
.cc-brief-delegated { margin-top:6px; font-family:var(--font-mono); font-size:0.54rem; color:var(--text-muted); opacity:0.7; }
.cc-brief-empty { font-size:0.66rem; color:var(--text-muted); padding:14px 10px; text-align:center; font-style:italic; }
@keyframes cc-swipe-hint { 0%{transform:translateX(0)} 15%{transform:translateX(-7px)} 30%{transform:translateX(0)} }
.cc-swipe-hint-anim { animation:cc-swipe-hint 1.4s ease 0.8s 1; }

/* ═══ Calendar strip (next to weather) + full-month overlay ═══ */
.cc-forecast-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 16px 10px; }
.cc-forecast-row .cc-weather-block { margin: 0; }
.cc-cal-strip {
  display: flex; gap: 4px; padding: 8px 10px; border-radius: 10px;
  background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.04);
  cursor: pointer; transition: all 140ms; overflow: hidden;
}
.cc-cal-strip:hover { border-color: rgba(125,211,192,0.25); background: rgba(125,211,192,0.04); }
.cc-cal-day { flex: 1; min-width: 0; text-align: center; padding: 2px 0; position: relative; }
.cc-cal-day.today { background: rgba(125,211,192,0.1); border-radius: 6px; }
.cc-cal-day-num { font-family: var(--font-mono); font-size: 0.64rem; color: var(--text-primary); font-weight: 600; }
.cc-cal-day-dow { font-family: var(--font-mono); font-size: 0.48rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.08em; }
.cc-cal-day-dots { display: flex; gap: 2px; justify-content: center; margin-top: 3px; min-height: 4px; }
.cc-cal-day-dot { width: 4px; height: 4px; border-radius: 50%; }

.cal-overlay { position: fixed; inset: 0; z-index: 10000; background: radial-gradient(ellipse at 50% 30%, rgba(16,22,32,0.98), rgba(6,8,12,0.99)); display: none; }
.cal-overlay.open { display: flex; align-items: stretch; }
.cal-main { flex: 1; padding: 18px 24px 24px; overflow: auto; }
.cal-topbar { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.cal-title { font-family: var(--font-display); font-size: 1.25rem; color: var(--text-primary); flex: 1; }
.cal-nav { display: flex; gap: 4px; }
.cal-nav button { background: rgba(255,255,255,0.04); color: var(--text-secondary); border: 1px solid var(--border-color); border-radius: 8px; padding: 5px 10px; cursor: pointer; font-size: 0.7rem; }
.cal-nav button:hover { background: rgba(125,211,192,0.1); color: var(--teal); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-grid-head { font-family: var(--font-mono); font-size: 0.55rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.12em; text-align: center; padding: 4px 0; }
.cal-cell {
  background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.04); border-radius: 8px;
  min-height: 110px; padding: 6px 6px 4px; cursor: pointer; transition: all 120ms; position: relative;
}
.cal-cell:hover { border-color: rgba(125,211,192,0.25); background: rgba(125,211,192,0.03); }
.cal-cell.other-month { opacity: 0.35; }
.cal-cell.today { border-color: var(--teal); background: rgba(125,211,192,0.08); }
.cal-cell-num { font-family: var(--font-mono); font-size: 0.8rem; color: var(--text-primary); font-weight: 600; }
.cal-cell-events { margin-top: 4px; display: flex; flex-direction: column; gap: 2px; }
.cal-event-pill {
  font-size: 0.58rem; padding: 2px 6px; border-radius: 4px;
  color: #f1f5f9; cursor: pointer;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  border-left: 3px solid;
}
.cal-pane {
  width: 360px; padding: 18px 20px;
  background: rgba(14,16,20,0.97); backdrop-filter: blur(10px);
  border-left: 1px solid rgba(255,255,255,0.04); overflow-y: auto;
  display: none;
}
.cal-pane.open { display: block; }
.cal-pane-title { font-family: var(--font-display); font-size: 1.05rem; color: var(--text-primary); margin-bottom: 10px; }
.cal-pane input, .cal-pane textarea, .cal-pane select { width: 100%; background: rgba(255,255,255,0.04); border: 1px solid var(--border-color); border-radius: 8px; padding: 8px 10px; color: var(--text-primary); font-family: var(--font-body); font-size: 0.78rem; margin-bottom: 8px; }
.cal-pane label { font-family: var(--font-mono); font-size: 0.55rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); display: block; margin-bottom: 3px; }
.cal-close { background: rgba(255,255,255,0.04); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: 10px; width: 32px; height: 32px; cursor: pointer; font-size: 1rem; }

/* ═══ Travel Board overlay (2026-04-17) — endless mindmap canvas for saved trips ═══ */
.travel-board-overlay { position: fixed; inset: 0; z-index: 10000; background: radial-gradient(ellipse at 50% 30%, rgba(16,22,32,0.98), rgba(6,8,12,0.99)); display: none; }
.travel-board-overlay.open { display: block; }
.tb-topbar {
  position: absolute; top: 0; left: 0; right: 0; height: 52px; padding: 0 16px;
  display: flex; align-items: center; gap: 12px; z-index: 10;
  background: linear-gradient(180deg, rgba(10,12,16,0.95), rgba(10,12,16,0.6) 80%, transparent);
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.tb-close { background: rgba(255,255,255,0.04); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: 10px; width: 32px; height: 32px; cursor: pointer; font-size: 1rem; }
.tb-close:hover { background: rgba(248,113,113,0.12); border-color: rgba(248,113,113,0.3); color: #fecaca; }
.tb-title { font-family: var(--font-display); font-size: 1.05rem; color: var(--text-primary); }
.tb-stats { font-family: var(--font-mono); font-size: 0.62rem; color: var(--text-muted); margin-left: auto; }
.tb-btn { background: rgba(255,255,255,0.04); color: var(--text-secondary); border: 1px solid var(--border-color); border-radius: 10px; padding: 6px 12px; font-size: 0.7rem; cursor: pointer; font-family: var(--font-body); }
.tb-btn:hover { background: rgba(125,211,192,0.1); border-color: rgba(125,211,192,0.3); color: var(--text-primary); }
.tb-canvas { position: absolute; top: 52px; left: 0; right: 0; bottom: 0; cursor: grab; touch-action: none; user-select: none; }
.tb-canvas.panning { cursor: grabbing; }
.tb-node { cursor: move; }
.tb-node:hover circle { opacity: 1; stroke-width: 3; }
.tb-node.selected circle { stroke-width: 4; filter: drop-shadow(0 0 12px currentColor); }
.tb-edge { fill: none; }
.tb-pane {
  position: absolute; top: 52px; right: 0; bottom: 0; width: 340px; padding: 18px 20px;
  background: rgba(14,16,20,0.97); backdrop-filter: blur(10px);
  border-left: 1px solid rgba(255,255,255,0.04); overflow-y: auto; z-index: 5;
  display: none;
}
.tb-pane.open { display: block; }
.tb-pane-title { font-family: var(--font-display); font-size: 1.1rem; color: var(--text-primary); margin-bottom: 4px; }
.tb-pane-meta { font-family: var(--font-mono); font-size: 0.6rem; color: var(--text-muted); margin-bottom: 14px; }
.tb-pane-section { margin-bottom: 14px; }
.tb-pane-section-title { font-size: 0.55rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--teal); margin-bottom: 6px; }
.tb-pane-field { display: flex; justify-content: space-between; padding: 4px 0; font-size: 0.72rem; color: var(--text-secondary); border-bottom: 1px solid rgba(255,255,255,0.04); }
.tb-pane-field .k { color: var(--text-muted); font-family: var(--font-mono); font-size: 0.58rem; }
.tb-pane-close { position: absolute; top: 14px; right: 14px; background: transparent; border: none; color: var(--text-muted); cursor: pointer; font-size: 1.1rem; }
.tb-color-swatches { display: flex; gap: 6px; flex-wrap: wrap; }
.tb-swatch { width: 18px; height: 18px; border-radius: 50%; cursor: pointer; border: 2px solid rgba(255,255,255,0.1); }
.tb-swatch.active { border-color: #fff; }
.tb-note-edit { width: 100%; background: rgba(255,255,255,0.04); border: 1px solid var(--border-color); border-radius: 8px; padding: 8px; color: var(--text-primary); font-family: var(--font-body); font-size: 0.72rem; resize: vertical; min-height: 80px; }
.tb-empty { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: var(--text-muted); font-size: 0.82rem; text-align: center; max-width: 400px; }
.tb-empty-hint { font-size: 0.7rem; margin-top: 10px; color: var(--text-muted); opacity: 0.7; }
