body { background: #f4f8ed; }
.admin-header { color: white; }
.admin-header a { color: white; }
.calendar-workspace { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, 1fr); gap: 28px; align-items: start; }
.calendar-panel { min-width: 0; background: white; border: 1px solid var(--line); padding: 25px; }
.calendar-panel h2 { margin-bottom: 15px; }
.calendar-toolbar h2 { margin: 0; }
.calendar-panel #day-source { margin-bottom: 20px; }
#day-save-status, #weekly-save-status { margin: 18px 0 0; color: #416d27; white-space: pre-wrap; }
.weekly-settings { margin-top: 30px; background: white; border: 1px solid var(--line); }
.weekly-settings > summary { cursor: pointer; padding: 20px 25px; font-weight: 600; }
#weekly-editor { padding: 10px 25px 25px; }
.weekly-row { display: grid; grid-template-columns: 50px 140px 1fr; gap: 18px; align-items: start; border-bottom: 1px solid var(--line); padding: 15px 0; }
.weekly-row > strong { margin-top: 31px; }
.weekly-row input, .weekly-row select { margin-bottom: 5px; }
#calendar-public-notice { margin-top: 12px; }
.weekly-settings #weekly-fields { margin-bottom: 25px; }
.calendar-panel .calendar-day { border-radius: 0; }
.calendar-panel .calendar-day:hover { filter: brightness(.97); }
.login-link { display: inline-block; padding: 12px 20px; background: #416d27; color: white; }
#calendar-auth-status { color: #a43428; }
#calendar-version { margin-top: 25px; }
@media (max-width: 850px) {
  .calendar-workspace { grid-template-columns: 1fr; }
  .weekly-row { grid-template-columns: 35px 110px 1fr; gap: 12px; }
}
@media (max-width: 540px) {
  .calendar-panel { padding: 17px 10px; }
  .weekly-settings > summary { padding: 17px; font-size: 12px; }
  #weekly-editor { padding: 10px 15px 20px; }
  .weekly-row { grid-template-columns: 25px 1fr; gap: 8px 12px; }
  .weekly-row > div:last-child { grid-column: 2; }
  .weekly-row > strong { margin-top: 30px; }
  .calendar-panel h2 { font-size: 19px; }
  input, select, textarea { font-size: 16px; }
  .admin-header > div { flex-wrap: wrap; }
}
