body { font-family: Arial, sans-serif; margin: 0; padding: 0; background: #f7f7fb; color: #222; }
.container { max-width: 1100px; margin: 0 auto; padding: 1rem; }
.card { background: #fff; border-radius: 8px; padding: 1rem; box-shadow: 0 1px 4px rgba(0,0,0,.08); margin-bottom: 1rem; }
form { display: grid; gap: .6rem; }
input, button, select { padding: .5rem; font-size: 1rem; }
button { cursor: pointer; }
.nav { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.nav a { text-decoration: none; color: #0b4ea2; }
.flash-success { background: #e8f7e8; padding: .6rem; border-left: 4px solid #2f9e44; margin: .4rem 0; }
.flash-error { background: #ffe8e8; padding: .6rem; border-left: 4px solid #c92a2a; margin: .4rem 0; }
.calendar { width: 100%; border-collapse: collapse; }
.calendar th, .calendar td { border: 1px solid #ddd; vertical-align: top; width: 14.28%; min-height: 120px; height: 120px; padding: .4rem; background: #fff; }
.calendar .day-num { font-weight: bold; }
.actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1rem; }
.block-self { color: #c92a2a; font-weight: bold; }
.block-other { color: #c92a2a; font-size: .9rem; }
.event-item { border-top: 1px solid #eee; margin-top: .4rem; padding-top: .4rem; font-size: .9rem; }
.small { font-size: .9rem; color: #555; }
.grid2 { display:grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 800px) { .grid2 { grid-template-columns: 1fr; } .calendar th, .calendar td { height: 100px; } }

.button-link { display: inline-block; padding: .5rem .8rem; background: #eef2ff; border: 1px solid #c7d2fe; color: #1e3a8a; text-decoration: none; border-radius: 4px; }
