:root {
    --jbd-bg: #17191c;
    --jbd-panel: #22252a;
    --jbd-line: #d9dde2;
    --jbd-text: #25282c;
    --jbd-muted: #6f757c;
    --jbd-white: #ffffff;
    --jbd-sat: #fff3b8;
    --jbd-sun: #f9d7d7;
    --jbd-today: #dfe8ef;
}
* { box-sizing: border-box; }
body {
    margin: 0;
    background: #eef0f2;
    color: var(--jbd-text);
    font-family: Arial, Helvetica, sans-serif;
}
.site-header {
    background: var(--jbd-bg);
    color: #fff;
    border-bottom: 1px solid #30343a;
}
.site-header .container { min-height: 78px; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { color:#fff; text-decoration:none; font-size:1.45rem; font-weight:600; letter-spacing:.04em; }
.brand small { display:block; color:#aeb4bb; font-size:.75rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; margin-top:.15rem; }
.calendar-shell { max-width: 1050px; margin: 30px auto 60px; }
.calendar-card { background:#fff; border:1px solid #d8dce0; box-shadow:0 6px 22px rgba(0,0,0,.07); }
.calendar-toolbar { background:var(--jbd-panel); color:#fff; padding:.8rem 1rem; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.75rem; }
.calendar-toolbar h1 { font-size:1.3rem; margin:0; text-align:center; font-weight:500; text-transform:capitalize; }
.nav-group { display:flex; gap:.35rem; }
.btn-jbd { min-width:42px; border:1px solid #555b63; background:#30343a; color:#fff; border-radius:.25rem; padding:.42rem .7rem; text-decoration:none; text-align:center; }
.btn-jbd:hover { background:#41464d; color:#fff; }
.day-row { display:grid; grid-template-columns:64px 90px 1fr; min-height:54px; border-bottom:1px solid var(--jbd-line); background:#fff; }
.day-row:last-child { border-bottom:0; }
.day-row.sat { background:var(--jbd-sat); }
.day-row.sun { background:var(--jbd-sun); }
.day-row.today { box-shadow: inset 5px 0 0 #607d8b; }
.day-number, .weekday, .day-text { padding:.8rem .9rem; display:flex; align-items:flex-start; }
.day-number { font-size:1.25rem; font-weight:700; justify-content:center; border-right:1px solid rgba(0,0,0,.09); }
.weekday { font-weight:600; color:#555b61; border-right:1px solid rgba(0,0,0,.09); }
.day-text { white-space:pre-wrap; line-height:1.45; }
.day-text.empty { color:#a3a8ad; }
.admin-wrap { max-width:900px; margin:30px auto 60px; }
.admin-card { background:#fff; border:1px solid #d8dce0; padding:1.25rem; box-shadow:0 6px 22px rgba(0,0,0,.07); }
.entry-table td, .entry-table th { vertical-align:middle; }
textarea.form-control { min-height:150px; }
@media (max-width: 650px) {
    .site-header .container { min-height:64px; }
    .calendar-shell { margin-top:15px; }
    .calendar-toolbar { grid-template-columns:auto 1fr auto; padding:.65rem; }
    .calendar-toolbar h1 { font-size:1.05rem; }
    .day-row { grid-template-columns:48px 58px 1fr; min-height:50px; }
    .day-number, .weekday, .day-text { padding:.65rem .55rem; }
    .day-number { font-size:1.05rem; }
    .weekday { font-size:.85rem; }
}

.event-line { display:flex; gap:.8rem; align-items:flex-start; }
.event-line + .event-line { margin-top:.35rem; padding-top:.35rem; border-top:1px solid rgba(0,0,0,.08); }
.event-time { flex:0 0 3.5rem; font-weight:700; font-variant-numeric:tabular-nums; margin-right: .15rem;}
.event-text { min-width:0; }
