/* Global & theme */
#kwc-root, #kwc-root * {
  font-family: "Segoe UI", SegoeUI, -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif !important;
}
#kwc-root { --kwc-accent: var(--wp--preset--color--primary, var(--global-palette1, var(--theme-primary, var(--accent-color, #0d6efd)))); }
#kwc-root[data-accent]:not([data-accent=""]) { --kwc-accent: attr(data-accent color); }

/* Toolbar */
.kwc-toolbar { gap:.75rem; flex-wrap:wrap; }

/* FullCalendar tweaks */
.kwc-wrap .fc .fc-toolbar-title { color: var(--kwc-accent); }
.kwc-wrap .fc .fc-button { border-color: var(--kwc-accent); color: var(--kwc-accent); background: transparent; }
.kwc-wrap .fc .fc-button:hover { background: color-mix(in srgb, var(--kwc-accent) 12%, transparent); }
.kwc-wrap .fc .fc-prev-button .fc-icon::before { content:'\2039'; font-size:1.05rem; }
.kwc-wrap .fc .fc-next-button .fc-icon::before { content:'\203A'; font-size:1.05rem; }

/* Map container: keep rounding but don't clip markers */
#kwc-map {
  width: 100%;
  height: 520px;
  border: 1px solid #e7e7e7;
  border-radius: 10px;
  overflow: visible !important;
  position: relative;
}

/* Posterboard */
.kwc-poster-card {
  display: flex; flex-direction: column; border: 1px solid #e7e7e7;
  border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.06); background:#fff; height:100%;
}
.kwc-poster-body { display:flex; flex-direction:column; gap:.25rem; padding:14px 16px; min-height:170px; }
.kwc-title { line-height:1.2; }
.kwc-muted { color:#666; font-size:.9rem; }
.kwc-ellipsis-3 { -webkit-line-clamp:3; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; }
.kwc-actions { margin-top:auto; }

/* Date badge */
.kwc-date-badge {
  display:inline-flex; flex-direction:column; align-items:center; justify-content:center;
  width:64px;height:64px;border-radius:10px;background:var(--kwc-accent);color:#fff;font-weight:700;line-height:1
}
.kwc-date-month { font-size:.75rem; text-transform:uppercase }
.kwc-date-day { font-size:1.25rem }

/* Tile */
.kwc-tile-col { display:flex; }
.kwc-tile-card { display:flex; flex-direction:row; align-items:stretch; gap:14px; border:1px solid #e9e9e9; border-radius:12px; padding:12px; background:#fff; width:100%; height:100%; }
.kwc-tile-imgwrap { flex:0 0 160px; width:160px; }
.kwc-tile-img { width:100%; height:160px; object-fit:cover; border-radius:8px; background:#f4f4f4; display:block; }
.kwc-tile-body { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.kwc-tile-title { font-weight:600; line-height:1.2; margin-bottom:.2rem; }

/* Stream timeline (no dot overlap) */
.kwc-stream { position:relative; padding-left:48px; }
.kwc-stream::before { content:""; position:absolute; left:24px; top:0; bottom:0; width:4px; background:#e7e7e7; border-radius:2px; }
.kwc-stream-item { position:relative; margin-bottom:16px; }
.kwc-stream-item .kwc-dot { position:absolute; left:20px; top:10px; width:12px; height:12px; background:var(--kwc-accent); border-radius:50%; }
.kwc-stream-content { margin-left:8px; }

/* Admin settings styling */
.kwc-wrap *{box-sizing:border-box}
.kwc-hero{padding:16px 18px;margin:20px 0;border:1px solid #e7eef7;border-radius:12px;background:#f9fbff}
.kwc-hero h1{margin:0 0 8px 0}
.kwc-tabs{display:flex;gap:6px;margin:16px 0 12px}
.kwc-tab{border:1px solid #e6e6e6;padding:8px 12px;border-radius:10px;background:#fff;cursor:pointer}
.kwc-tab.active{border-color:var(--kwc-accent); color:#fff; background:var(--kwc-accent)}
.kwc-section{display:none}
.kwc-section.active{display:block}
.kwc-grid{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:900px){ .kwc-grid{grid-template-columns:1fr 1fr} }
.kwc-card{border:1px solid #e9e9ee;border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.03)}
.kwc-card-h{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #f0f0f3}
.kwc-card-h h3{margin:0;font-size:15px}
.kwc-card-b{padding:14px}
.kwc-field{margin:0 0 12px}
.kwc-label{display:block;font-weight:600;margin-bottom:6px}
.kwc-input{width:100%}
.kwc-help{color:#666;margin:6px 0 0}
.kwc-badge{background:#eef5ff;color:#0b5ed7;border:1px solid #d6e6ff;border-radius:999px;padding:3px 8px;font-size:12px}
.kwc-row{display:flex;gap:12px;flex-wrap:wrap}
.kwc-row > *{flex:1}
.kwc-note{background:#fff9e6;border:1px solid #ffe4a3;padding:10px;border-radius:8px}
.kwc-good{background:#e6fff2;border:1px solid #a7f0c4;padding:8px;border-radius:8px;display:inline-flex;align-items:center;gap:8px}
.kwc-bad{background:#ffeaea;border:1px solid #ffc7c7;padding:8px;border-radius:8px;display:inline-flex;align-items:center;gap:8px}

/* --- Stream view fix: anchor dot to row and keep it off text --- */
.kwc-stream .kwc-item { position: relative; padding-left: 40px; margin-bottom: 18px; }
.kwc-stream .kwc-dot  { left: 8px; top: 10px; }


/* --- Calendar event cursor fix: use pointer on clickable entries --- */
.fc .fc-daygrid-event,
.fc .fc-timegrid-event,
.fc .fc-event,
.fc .fc-daygrid-dot-event {
  cursor: pointer;
  user-select: none;
}

/* --- Map infowindow UI (optional polish) --- */
.kwc-map-infowin .kwc-i-title { font-weight:700; margin-bottom:4px; }
.kwc-map-infowin .kwc-i-when  { font-size:.9rem; margin-bottom:4px; color:#555; }
.kwc-map-infowin .kwc-i-where { font-size:.9rem; margin-bottom:4px; }
.kwc-map-infowin .kwc-i-desc  { margin-top:4px; font-size:.95rem; }
.kwc-map-infowin .kwc-btn     { border:1px solid #cfd5e2; padding:4px 8px; border-radius:6px; background:#fff; text-decoration:none; }
.kwc-map-infowin .kwc-btn:hover { background:#f6f7fb; }
.kwc-map-infowin .kwc-btn-sm  { font-size:.875rem; }

/* --- Uniform attachment image sizing across views --- */
/* Any explicit image block we render */
.kwc-img,
.kwc-card .kwc-img,
.kwc-list .kwc-img,
.kwc-accordion .kwc-img,
.kwc-stream .kwc-img,
.kwc-posterboard .kwc-img,
.kwc-tile .kwc-img,
.kwc-modal .kwc-img,
.kwc-map-infowin .kwc-i-img img {
  display: block;
  width: 100%;
  height: 160px;           /* unified height target (matches Tile look) */
  object-fit: cover;
  border-radius: 8px;
}

/* If an image appears inside descriptions, keep it from breaking layout */
.kwc-card .desc img,
.kwc-list .kwc-list-desc img,
.kwc-modal .kwc-ev-desc img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

/* Grid cards and tiles keep consistent spacing regardless of image presence */
.kwc-card .body,
.kwc-card-body {
  padding-top: 12px;
}

/* === Stronger settings tab styles (high specificity, with fallbacks) === */
#kwc-root .kwc-tabs .kwc-tab {
  font-weight: 600;
  border: 1px solid #d7dbe5;
  background: #fff;
  color: #1f2937;
  cursor: pointer;
}

#kwc-root .kwc-tabs .kwc-tab:hover {
  border-color: var(--kwc-accent, #0d6efd);
  background: color-mix(in srgb, var(--kwc-accent, #0d6efd) 10%, #ffffff);
}

#kwc-root .kwc-tabs .kwc-tab:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--kwc-accent, #0d6efd) 40%, transparent);
  outline-offset: 2px;
}

/* Make the selected tab *very* visible */
#kwc-root .kwc-tabs .kwc-tab.active {
  background: color-mix(in srgb, var(--kwc-accent, #0d6efd) 92%, #000) !important;
  border-color: color-mix(in srgb, var(--kwc-accent, #0d6efd) 85%, #000) !important;
  color: #fff !important;
  box-shadow: 0 1px 0 rgba(0,0,0,.05), 0 4px 12px rgba(0,0,0,.08);
}

/* Fallback if color-mix() is not supported */
@supports not (background: color-mix(in srgb, red 50%, white)) {
  #kwc-root .kwc-tabs .kwc-tab:hover {
    border-color: var(--kwc-accent, #0d6efd) !important;
    background: #eef4ff !important;
  }
  #kwc-root .kwc-tabs .kwc-tab.active {
    background: var(--kwc-accent, #0d6efd) !important;
    border-color: var(--kwc-accent, #0d6efd) !important;
    color: #fff !important;
  }
}

/* If your screen used WP native 'nav-tab' classes instead, cover those too */
#kwc-root .nav-tab-active,
#kwc-root .nav-tab:focus,
#kwc-root .nav-tab:hover {
  border-color: var(--kwc-accent, #0d6efd) !important;
}
#kwc-root .nav-tab-active {
  background: var(--kwc-accent, #0d6efd) !important;
  color: #fff !important;
}

/* === Map overflow fix (append-only) === */
#kwc-map {
  overflow: hidden !important; /* clip Google canvas to the rounded border */
  max-width: 100%;
  display: block;
}

/* === Stream dot alignment fix (append-only) === */
.kwc-stream { position: relative; padding-left: 48px !important; }
.kwc-stream::before { left: 24px !important; }

/* Support both markup variants: .kwc-stream-item and .kwc-item */
.kwc-stream .kwc-stream-item,
.kwc-stream .kwc-item {
  position: relative;
  padding-left: 48px !important; /* give room for dot and rail */
}

/* Keep the dot on the rail, away from text */
.kwc-stream .kwc-stream-item .kwc-dot,
.kwc-stream .kwc-item .kwc-dot {
  position: absolute !important;
  left: 16px !important;     /* aligns with the rail */
  top: 0.6rem !important;    /* centers near the first line */
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--kwc-accent, #0d6efd);
  pointer-events: none;
  z-index: 1;
}

/* Ensure content doesn't shift or overlap */
.kwc-stream .kwc-stream-content { margin-left: 0 !important; }
