/* =========================================================
   Visser@70 — Light Red Theme
   Based on the previous light theme, but with red accents
   ========================================================= */

:root {
  --accent: #cc3340;           /* calm red accent */
  --accent-2: #e67373;         /* lighter red / coral */
  --accent-3: #a1232d;         /* darker hover red */
  --text:   #1a1a1a;           /* main text */
  --muted:  #5a6b7b;           /* secondary text */
  --bg:     #ffffff;           /* white background */
  --bg-soft:#fff9f9;           /* soft pink tint */
  --border: #f1d7d7;           /* light red border */
  --radius: 10px;
  --shadow: 0 2px 8px rgba(204, 51, 64, .08);
}

/* Base typography */
html, body {
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body, .event-page, .conference-page, .content {
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu,
               Cantarell, "Helvetica Neue", Arial, "Apple Color Emoji",
               "Segoe UI Emoji", "Segoe UI Symbol", sans-serif !important;
  line-height: 1.6;
  font-size: 16px;
}

/* Links */
a, .i-link { color: var(--accent); text-decoration: none; }
a:hover, .i-link:hover { color: var(--accent-3); text-decoration: underline; }

/* Headings */
h1, h2, h3, h4, .event-title { color: var(--text); letter-spacing: .2px; }
h1, .event-title { font-weight: 800; }
h2, h3 { font-weight: 700; }
.event-header .event-title { font-size: clamp(28px, 3vw, 40px); margin: 0 0 .25rem; }
.event-header .event-subtitle { font-size: clamp(16px, 2vw, 18px); color: var(--muted); font-style: italic; }

/* Header / Hero */
.event-header, .event-header .toolbar {
  border: none !important;
  background: linear-gradient(180deg, #fff 0%, var(--bg-soft) 100%);
}
.event-header .event-date, .event-location, .event-creation-date { color: var(--muted); }
.event-header .event-header-background { opacity: .15; filter: saturate(100%) contrast(100%); }

/* Breadcrumbs */
.breadcrumbs, .category-header {
  background: transparent !important;
  border-bottom: 1px solid var(--border);
}

/* Boxes / cards */
.i-box, .i-box.no-border, .i-box-group > .i-box, .grouped-list > .i-box {
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow);
  background: #fff;
}
.i-box-header {
  border-bottom: 1px solid var(--border) !important;
  background: #fff;
  padding-top: .2rem;
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
}
.i-box-header h2, .i-box-header h3 { margin: 0; padding: .2rem 0; }

/* People cards */
.person-list .person, .speaker-list .speaker {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 12px;
  background: #fff;
}
.person-list .name, .speaker-list .name { font-weight: 700; color: var(--text); }
.person-list .affiliation, .speaker-list .affiliation { color: var(--muted); }

/* Buttons */
.btn, .i-button, .toolbar .i-button {
  border-radius: 8px !important;
  border: 1px solid transparent !important;
  background: var(--accent) !important;
  color: #fff !important;
  box-shadow: 0 2px 6px rgba(204, 51, 64, .22);
  transition: background .15s ease, transform .04s ease-in;
}
.btn:hover, .i-button:hover {
  transform: translateY(-1px);
  background: var(--accent-3) !important;
}
.btn-secondary, .i-button.secondary {
  background: #fff !important;
  color: var(--accent) !important;
  border-color: var(--accent) !important;
}

/* Badges */
.label, .badge {
  border-radius: 999px !important;
  padding: .18rem .55rem;
  background: #ffeeee;
  color: var(--accent-3);
}

/* Alerts */
.alert, .flashed-messages .message {
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: #fff9f9;
  color: var(--text);
}

/* Tables */
table, .table {
  border-collapse: separate !important;
  border-spacing: 0;
  width: 100%;
  background: #fff;
}
.table th {
  font-weight: 700;
  color: var(--text);
  background: #fff5f5;
}
.table td, .table th {
  border-bottom: 1px solid var(--border) !important;
  vertical-align: middle;
  padding: .6rem .7rem !important;
}
.table tr:hover td { background: #fffafa; }

/* Timetable */
.timetable {
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  background: #fff;
}
.timetable .session {
  background: #fff;
  border-left: 4px solid var(--accent);
  margin-bottom: 10px;
  border-radius: 8px;
  padding: .45rem .6rem;
}
.timetable .session .title { font-weight: 700; color: var(--text); }
.timetable .talk, .timetable .contribution {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .4rem .6rem;
  margin: .35rem 0;
  background: #fff;
}
.timetable .time, .timetable .location { color: var(--muted); }

/* Tracks */
.category-color, .track-color { background: var(--accent-2) !important; }

/* Forms */
form .field, .form-field, .form-group { margin-bottom: 12px; }
input[type="text"], input[type="email"], input[type="number"],
textarea, select {
  border-radius: 8px !important;
  border: 1px solid var(--border) !important;
  background: #fff;
  padding: .55rem .7rem !important;
  box-shadow: inset 0 1px 1px rgba(204,51,64,.04);
}
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px rgba(204,51,64,.15);
}

/* Uploads */
.file-upload-box, .dropzone {
  border: 2px dashed var(--border);
  border-radius: var(--radius);
  background: #fffafa;
}

/* Spacing & content helpers */
ul, ol { padding-left: 1.15rem; }
.content p, .i-box-content p { margin: .6rem 0; }
.content .lead, .event-description .lead {
  font-size: 1.05rem;
  color: var(--muted);
}

/* Callouts */
.callout {
  border-left: 4px solid var(--accent-2);
  background: #fff4f4;
  padding: .8rem 1rem;
  border-radius: 6px;
}
.notice {
  border-left: 4px solid #e09a3e;
  background: #fff8ed;
  padding: .8rem 1rem;
  border-radius: 6px;
}

/* Footer */
.event-footer, .page-footer {
  border-top: 1px solid var(--border);
  color: var(--muted);
  background: #fff;
}

/* Mobile tweaks */
@media (max-width: 992px) {
  .i-box, .timetable { box-shadow: 0 1px 4px rgba(204,51,64,.08); }
}

/* Force light mode appearance */
@media (prefers-color-scheme: dark) {
  :root {
    --text: #1a1a1a;
    --muted: #5a6b7b;
    --bg: #ffffff;
    --bg-soft: #fff9f9;
    --border: #f1d7d7;
  }
}