:root { --bg: #f4f5f7; --panel: white; --sidebar: #ffffff; --text: #111; --muted: #666; --border: #ddd; --accent: #2563eb; } .dark { --bg: #080808; --panel: #151515; --sidebar: #101010; --text: #eee; --muted: #aaa; --border: #333; --accent: #38bdf8; } * { box-sizing: border-box; } body { margin: 0; background: var(--bg); color: var(--text); font-family: Inter, system-ui, sans-serif; transition: 0.2s; } .layout { display: grid; grid-template-columns: 260px 1fr; height: 100vh; display: none; } .sidebar { background: var(--sidebar); border-right: 1px solid var(--border); padding: 25px; display: flex; flex-direction: column; } .logo { display: flex; align-items: center; gap: 10px; margin-bottom: 40px; } .logo h2 { margin: 0; } nav { display: flex; flex-direction: column; gap: 8px; } nav a { cursor: pointer; padding: 12px 15px; border-radius: 10px; color: var(--muted); transition: 0.2s; } nav a:hover, nav .active { background: var(--accent); color: white; } .sidebar-bottom { margin-top: auto; } button { width: 100%; padding: 12px; border-radius: 10px; border: 1px solid var(--border); background: var(--panel); color: var(--text); cursor: pointer; margin-top: 8px; } /* Content */ .content { padding: 40px; overflow-y: auto; } h1 { margin-top: 0; } .card { background: var(--panel); border: 1px solid var(--border); border-radius: 16px; padding: 25px; margin-top: 20px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); } /* forms */ input { width: 100%; padding: 12px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg); color: var(--text); margin-top: 8px; } form { display: flex; flex-direction: column; } .muted { color: var(--muted); } .error { color: #e11d48; } /* list items */ .list-item { padding: 10px 15px; border: 1px solid var(--border); border-radius: 10px; margin-top: 10px; } /* event actions */ .event-actions { display: flex; gap: 10px; margin-top: 15px; } .event-actions button { margin-top: 0; } /* calendar */ .calendar-header { display: flex; align-items: center; justify-content: space-between; } .calendar-header h3 { margin: 0; text-transform: capitalize; } .calendar-nav-btn { width: auto; padding: 8px 14px; margin-top: 0; } .calendar-legend { display: flex; gap: 18px; margin-top: 14px; font-size: 12px; color: var(--muted); } .legend-item { display: flex; align-items: center; gap: 6px; } .legend-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; } /* week grid */ .calendar-week { display: flex; margin-top: 16px; overflow-x: auto; } .calendar-gutter { width: 55px; flex-shrink: 0; padding-top: 0px; } .calendar-hour-label { height: 48px; /* 2 uur = 48px */ font-size: 11px; color: var(--muted); text-align: right; padding-right: 8px; display: flex; justify-content: flex-end; align-items: flex-start; transform: translateY(-6px); } .calendar-days { display: flex; flex: 1; min-width: 700px; } .calendar-day-column { flex: 1; display: flex; flex-direction: column; border-left: 1px solid var(--border); } .calendar-day-header { height: 32px; text-align: center; padding: 6px 0; font-size: 12px; color: var(--muted); } .calendar-day-track { position: relative; height: 576px; /* 12 uur zichtbaar × 48px */ background-image: repeating-linear-gradient( to bottom, var(--border) 0, var(--border) 1px, transparent 1px, transparent 48px ); } .calendar-event { position: absolute; left: 4px; right: 4px; border-radius: 6px; padding: 3px 6px; font-size: 11px; color: white; cursor: pointer; overflow: hidden; box-shadow: 0 2px 6px rgba(0,0,0,0.25); opacity: 0.92; border: 1px solid rgba(255,255,255,0.4); } .calendar-event-time { display: block; font-size: 10px; opacity: 0.85; } .calendar-event-title { display: block; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .event-confirmed { background: #16a34a; } .event-busy { background: #f97316; } .event-private { background: #6b7280; } /* login screen */ .login-screen { height: 100vh; width: 100%; display: flex; align-items: center; justify-content: center; } .login-box { background: var(--panel); border: 1px solid var(--border); border-radius: 16px; padding: 40px; width: 320px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); } .login-box h2 { margin-top: 0; text-align: center; }