.schedule-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:28px}.schedule-heading h1{font-size:clamp(32px,5vw,58px);margin:8px 0}.schedule-heading h2{margin:6px 0}.schedule-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.schedule-controls a{padding:10px 14px;border:1px solid #393440;border-radius:24px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.day-card{background:#18171e;border:1px solid #34303e;border-radius:18px;padding:18px 14px;min-height:240px;overflow-wrap:anywhere}.day-card.is-today{border-color:#c6a3ff;background:#262032}.day-date{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:#d0bddf}.day-status{display:block;font-size:11px;letter-spacing:.06em;color:#aaa2b5;margin:28px 0 12px}.day-card h3{font-size:18px;margin:0 0 14px;line-height:1.5}.day-card p{font-size:13px;line-height:1.7}.day-time{color:#d9bcff}.day-note{color:#aaa2b5;white-space:normal}.schedule-month{margin-top:72px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#393440;border:1px solid #393440;border-radius:14px;overflow:hidden}.month-label,.month-cell{background:#15141a;padding:12px;min-width:0}.month-label{text-align:center;color:#baa6ce;font-size:13px}.month-cell{min-height:125px;font-size:13px;overflow-wrap:anywhere}.month-cell a{display:block;margin-top:12px;color:#e0c6ff;line-height:1.6}.month-cell small{display:block;color:#afa4bc}.month-cell.today{background:#2c2336}.schedule-empty{border:1px dashed #554362;padding:40px;border-radius:18px;color:#bdb0ca}.schedule-editor{display:grid;gap:16px}.editor-day{padding:22px;border:1px solid #3c3349;border-radius:18px;background:#19161f}.editor-day legend{padding:0 10px;color:#dac1f6}.editor-fields{display:grid;grid-template-columns:1fr 1fr 1fr 2fr 2fr;gap:14px}.schedule-editor label{display:grid;gap:8px;font-size:13px;color:#ccbedc}.schedule-editor input,.schedule-editor select,.schedule-editor textarea,.schedule-controls input,.schedule-recovery input{width:100%;min-width:0;background:#100e15;border:1px solid #51445f;border-radius:8px;padding:12px;color:#fff;font:inherit;color-scheme:dark}.editor-note{margin-top:14px}.schedule-actions{display:flex;gap:12px;flex-wrap:wrap;padding:20px 0}.schedule-actions button{cursor:pointer;font:inherit}.schedule-notice{padding:18px;border:1px solid #9974bd;border-radius:12px;margin:20px 0}.schedule-notice.error{border-color:#da838d;color:#ffd0d5}.schedule-help{color:#b5a6c5;font-size:14px;line-height:1.8}.schedule-recovery{border:1px solid #795548;padding:20px;margin:24px 0}.schedule-preview{margin-top:50px}.schedule-preview summary{cursor:pointer;font-size:20px;margin-bottom:20px}.schedule-top{margin-bottom:24px}.schedule-top a{color:#d5b6f2}.schedule-home{border-bottom:1px solid #302839}@media(max-width:1100px){.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-card{min-height:200px}.editor-fields{grid-template-columns:1fr 1fr}.month-cell{padding:6px;min-height:100px;font-size:11px}.month-label{padding:8px 2px}.schedule-controls{gap:8px}.schedule-controls a{padding:8px}.editor-day{padding:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Mobile calendar uses compact day selectors; full entries remain available below. */
.month-day-button,.calendar-tap-hint,.calendar-day-detail{display:none}
@media(max-width:720px){
  .schedule-month{margin-top:44px}
  .schedule-month>.schedule-heading{gap:12px;margin-bottom:16px}
  .schedule-month>.schedule-heading h2{font-size:24px}
  .schedule-month .schedule-controls{gap:6px}
  .schedule-month .schedule-controls a{font-size:12px;padding:9px 11px}
  .calendar-interactive .calendar-tap-hint{display:block;margin:0 0 14px;color:#b5a6c5;font-size:12px;line-height:1.6}
  .calendar-interactive .month-grid{border-radius:12px}
  .calendar-interactive .month-label{padding:9px 0;font-size:12px}
  .calendar-interactive .month-cell{padding:0;min-height:94px;position:relative}
  .calendar-interactive .month-cell>.month-date,.calendar-interactive .month-entries{display:none}
  .calendar-interactive .month-day-button{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;height:100%;min-height:94px;padding:7px 2px;border:0;border-radius:0;background:transparent;color:#eee8f4;font:inherit;cursor:pointer;-webkit-appearance:none;appearance:none;touch-action:manipulation}
  .month-day-number{font-size:13px;line-height:22px;width:24px;border-radius:50%}
  .today .month-day-number{background:#584067;color:#fff}
  .calendar-interactive .month-cell.is-selected{background:#32263e;box-shadow:inset 0 0 0 2px #c6a3e3}
  .month-day-button:focus-visible{outline:3px solid #f1dafd;outline-offset:-3px}
  .month-day-flags{display:flex;flex-direction:column;align-items:center;gap:3px}
  .calendar-flag{display:flex;align-items:center;gap:3px;font-size:10px;line-height:14px;white-space:nowrap;color:#cbbbd9}
  .calendar-flag:before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;flex:none}
  .flag-live{color:#d5b8f1}.flag-event{color:#f3cea0}.flag-diary{color:#a8d4d3}.flag-off{color:#a299af}
  .calendar-interactive .calendar-day-detail:not([hidden]){display:block;margin-top:14px;padding:18px;border:1px solid #51405f;border-radius:14px;background:#1c1723}
  .calendar-day-detail h3{font-size:17px;margin:0 0 13px;color:#f0e5f6}
  .calendar-day-content{display:grid;gap:9px}
  .calendar-day-content a{display:block;padding:13px 14px;border:1px solid #45344f;border-radius:10px;color:#e0c6ff;line-height:1.6;overflow-wrap:anywhere;background:#ffffff04}
  .calendar-day-content small{display:block;margin-top:5px;font-size:12px;color:#b6a8c2}
  .calendar-day-content .event-calendar-link{border-color:#70533e;color:#f3cea0}
  .calendar-day-content .diary-calendar-link{margin:0;background:#293a3a55;border-color:#446362;color:#bbdfdd}
  .calendar-day-empty{margin:0;color:#b5a6c5;font-size:13px}
}
