:root {
  --bg: #0b0f17;
  --panel: #121a2a;
  --text: #e8eefc;
  --muted: #9fb0d0;
  --border: rgba(255,255,255,0.10);
  --shadow: 0 10px 30px rgba(0,0,0,0.35);
  --radius: 18px;
  --fc-page-bg-color: rgba(18, 26, 42, 0.95);
  --fc-border-color: rgba(255,255,255,0.15);
  --fc-neutral-bg-color: rgba(15, 22, 38, 0.95);
  --fc-today-bg-color: rgba(90, 120, 255, 0.25);
  --fc-event-bg-color: rgba(90, 120, 255, 0.85);
  --fc-event-text-color: #ffffff;
  /* === FullCalendar: 2-line event blocks === */

/* Clip content at the day cell */
.fc .fc-daygrid-day-frame {
  overflow: hidden;
}

/* Event container must not overflow horizontally */
.fc .fc-daygrid-event {
  max-width: 100%;
  overflow: hidden;
}

/* Layout event content vertically */
.fc .fc-event-main {
  display: block;
  max-width: 100%;
  overflow: hidden;
}

/* Time stays on one line */
.fc .fc-event-time {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Title wraps to max 2 lines */
.fc .fc-event-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  white-space: normal;
  line-height: 1.2;
}

/* Give the event a bit more vertical breathing room */
.fc .fc-daygrid-event {
  padding: 2px 4px;
}
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background: radial-gradient(1200px 800px at 20% 10%, rgba(90,120,255,0.18), transparent 60%),
              radial-gradient(900px 600px at 80% 10%, rgba(255,140,60,0.10), transparent 55%),
              var(--bg);
  color: var(--text);
}
.container { max-width: 1100px; margin: 0 auto; padding: 26px 18px 40px; }
.header { display:flex; gap:18px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-bottom:18px; }
.brand { display:flex; gap:14px; align-items:center; }
.logo { width:190px; height:100px; border-radius:6px; background: linear-gradient(135deg, rgba(254, 255, 255, 0.9), rgba(255, 255, 255, 0.85)); box-shadow: var(--shadow); }
.titleblock h1 { font-size:22px; margin:0; letter-spacing:0.2px; }
.titleblock p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.controls { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.input { border:1px solid var(--border); background: rgba(255,255,255,0.04); color: var(--text); padding:10px 12px; border-radius:12px; outline:none; min-width:240px; }
.badge { padding:8px 10px; border-radius:999px; border:1px solid var(--border); background: rgba(255,255,255,0.04); color: var(--muted); font-size:12px; }
.panel { background: rgba(18,26,42,0.80); border:1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); overflow:hidden; }
.panel-header { padding:14px 16px; display:flex; justify-content:flex-end; gap:12px; align-items:center; border-bottom:1px solid var(--border); }
.panel-header .hint { color: var(--muted); font-size:12px; }
#calendar { padding:10px 10px 16px; }
.footer { margin-top:16px; color: var(--muted); font-size:12px; line-height:1.4; }
.footer code { background: rgba(255,255,255,0.06); border:1px solid var(--border); padding:2px 6px; border-radius:8px; }
@media (max-width:520px) {
  .input { min-width:100%; }
  .panel-header { flex-direction:column; align-items:flex-start; }
}
