@font-face { font-family: iconfont; src: url("/static/fonts/iconfont.46bbeda.woff2") format("woff2"); font-display: block; }
.schedule-shell .iconfont { font-family: iconfont !important; font-style: normal; font-weight: 400; line-height: 1; -webkit-font-smoothing: antialiased; }
.schedule-shell .icon-list::before { content: "\E629"; }
.schedule-shell .icon-sync::before { content: "\E647"; }
.schedule-shell .icon-subscribe-add::before { content: "\E637"; }
.schedule-shell .icon-cloud-download::before { content: "\E654"; }
.schedule-shell .icon-select-all::before { content: "\E653"; }
.schedule-shell .icon-upload::before { content: "\E635"; }

.app-shell.schedule-shell { position: relative; height: calc(100vh - 3px); grid-template-rows: 68px 0 minmax(0, 1fr); background: var(--ui-primary-pale, #fff7f8); }
.app-shell.schedule-shell .topbar { height: 60px; align-self: start; }
.app-shell.schedule-shell .brand img { width: 148px; }
.app-shell.schedule-shell .primary-nav button { min-width: 68px; padding: 0 14px; font-size: 15px; }
.app-shell.schedule-shell .nav-home { min-width: 60px !important; font-size: 21px !important; }
.app-shell.schedule-shell .top-actions { gap: 10px; padding: 0 16px; }
.app-shell.schedule-shell .top-action { width: 32px; height: 32px; padding: 0; font-size: 17px; }
.app-shell.schedule-shell .avatar { width: 40px; height: 40px; font-size: 18px; }
.app-shell.schedule-shell .tab-strip { position: absolute; z-index: 50; top: 68px; right: 25px; left: 25px; width: auto; height: 44px; margin: 0; padding: 2px; border: 0; border-radius: 3px 3px 0 0; background: #fff; box-shadow: none; overflow: visible; }
.app-shell.schedule-shell .tab-scroll { height: 40px; background: #e5e5e5; }
.app-shell.schedule-shell .route-tab { width: 120px; min-width: 120px; max-width: 120px; height: 40px; padding: 0 8px; gap: 6px; border: 0; border-radius: 0; background: transparent; color: #555; font-size: 12px; font-weight: 400; }
.app-shell.schedule-shell .route-tab:hover { color: #555; background: #f7f7f7; }
.app-shell.schedule-shell .route-tab.active { border: 0; border-radius: 0; background: #fff; color: #555; font-weight: 400; }
.app-shell.schedule-shell .tab-grid,
.app-shell.schedule-shell .tab-menu-wrap { width: 40px; height: 40px; flex: 0 0 40px; }
.app-shell.schedule-shell .tab-grid { border: 0; background: #e5e5e5; color: var(--ui-ink, #343034); font-size: 16px; }
.app-shell.schedule-shell .workspace-wrap { grid-row: 3; min-height: 0; padding: 0 25px 16px; }
.app-shell.schedule-shell .workspace { height: 100%; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.schedule-page { position: relative; height: 100%; min-height: 0; padding-top: 44px; overflow: hidden; border-radius: 8px; background: #fff; color: #000; font-family: "Microsoft YaHei", sans-serif; }
.schedule-list-page { display: grid; grid-template-rows: auto minmax(0, 1fr) 64px; }
.app-shell.schedule-shell:has(.schedule-calendar-page) { height: auto; min-height: calc(100vh - 3px); grid-template-rows: 68px 0 auto; }
.app-shell.schedule-shell:has(.schedule-calendar-page) .workspace-wrap { min-height: calc(100vh - 84px); }
.app-shell.schedule-shell:has(.schedule-calendar-page) .workspace { height: auto; min-height: calc(100vh - 84px); }
.schedule-calendar-page { width: calc(100% - 15px); height: auto; min-height: 898px; overflow: visible; }
.schedule-page * { box-sizing: border-box; }
.schedule-page button, .schedule-page input, .schedule-page select { font: inherit; }
.schedule-page button { cursor: pointer; }

.schedule-mode-toggle { width: 136px; height: 26px; flex: 0 0 136px; display: flex; overflow: hidden; border-radius: 10px; background: #f4f5f9; }
.schedule-mode-toggle button { height: 26px; padding: 0 12px; flex: 1; border: 0; background: #f4f5f9; color: #606266; font-size: 12px; white-space: nowrap; }
.schedule-mode-toggle button.active { background: var(--ui-primary, #b8202b); color: #fff; }

.schedule-calendar-toolbar { position: relative; height: 58px; padding: 16px; display: flex; align-items: center; }
.schedule-month-control { position: absolute; top: 16px; left: 50%; height: 26px; display: flex; align-items: center; transform: translateX(-50%); color: var(--ui-ink, #343034); }
.schedule-month-control > button { width: 16px; height: 26px; padding: 0; border: 0; background: transparent; color: var(--ui-ink, #343034); }
.schedule-month-control .icon { font-size: 14px; }
.schedule-month-picker { position: relative; width: 96px; height: 26px; display: flex; align-items: center; justify-content: center; color: var(--ui-ink, #343034); font-size: 14px; }
.schedule-month-picker input { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.schedule-month-picker span { white-space: nowrap; }
.schedule-chevron { width: 7px; height: 7px; margin-left: 6px; border-right: 1px solid var(--ui-primary, #b8202b); border-bottom: 1px solid var(--ui-primary, #b8202b); transform: translateY(-2px) rotate(45deg); }

.schedule-calendar-layout { height: 780px; margin: 0 16px 16px; display: grid; grid-template-columns: minmax(0, 5.12fr) minmax(190px, 1fr); gap: 8px; }
.schedule-calendar-scroll { min-width: 0; overflow: auto; }
.schedule-calendar-grid { min-width: 840px; height: 780px; display: grid; grid-template-rows: 40px minmax(0, 1fr); }
.schedule-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.schedule-weekdays div { display: grid; place-items: center; border-top: 1px solid #ddd; border-right: 1px solid #ddd; background: #f4f5f9; color: #000; font-size: 14px; font-weight: 600; }
.schedule-weekdays div:first-child { border-left: 1px solid #ddd; }
.schedule-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-rows: minmax(145px, 1fr); border-left: 1px solid #ddd; }
.schedule-day { position: relative; min-width: 0; padding: 28px 6px 5px; border-right: 1px solid #ddd; border-bottom: 1px solid #ddd; background: #fff; }
.schedule-day.today { background: rgba(255,220,40,.15); }
.schedule-day.disabled { background: #fff; }
.schedule-day-number { position: absolute; top: 5px; right: 5px; height: 20px; font-size: 14px; line-height: 20px; }
.schedule-day-events { min-width: 0; display: grid; gap: 3px; }
.schedule-event { width: 100%; height: 25px; padding: 0 8px; overflow: hidden; border: 0; border-radius: 7px; color: #000; font-size: 12px; text-align: left; text-overflow: ellipsis; white-space: nowrap; }

.schedule-calendar-sidebar { min-width: 0; }
.schedule-calendar-sidebar section { margin: 0 0 8px; border: 1px solid #f4f5f9; }
.schedule-calendar-sidebar h3, .schedule-all-type { height: 39px; margin: 0; padding: 0 10px; display: flex; align-items: center; background: #f4f5f9; font-size: 14px; font-weight: 400; }
.schedule-scope-list { height: 56px; padding: 4px 8px; display: grid; align-content: center; gap: 3px; }
.schedule-scope-list label, .schedule-type-list label, .schedule-all-type { color: var(--ui-accent-ink, #a21c27); font-size: 12px; }
.schedule-scope-list label, .schedule-type-list label { height: 21px; display: flex; align-items: center; gap: 8px; }
.schedule-calendar-sidebar input { width: 15px; height: 15px; margin: 0; accent-color: var(--ui-primary, #b8202b); }
.schedule-all-type { gap: 8px; }
.schedule-type-list { height: 120px; padding: 4px 8px; display: grid; }
.schedule-type-list label span { flex: 1; }
.schedule-type-list label i { width: 18px; height: 18px; border-radius: 7px; }

.schedule-list-controls { position: relative; z-index: 10; min-width: 0; }
.schedule-list-toolbar { position: relative; min-height: 52px; margin: 0 20px; padding: 10px 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.schedule-toolbar-left, .schedule-toolbar-right { display: flex; flex-wrap: wrap; min-width: 0; max-width: 100%; align-items: center; gap: 8px; }
.schedule-toolbar-left { flex: 1 1 480px; }
.schedule-toolbar-right { flex: 0 1 auto; }
.schedule-search { width: 260px; max-width: 100%; min-width: 0; flex: 1 1 220px; height: 32px; display: flex; }
.schedule-search input { width: 0; min-width: 0; flex: 1; height: 32px; padding: 0 12px; border: 1px solid #f4f5f9; border-radius: 3px 0 0 3px; outline: 0; background: #f4f5f9; color: #606266; font-size: 12px; }
#app .schedule-list-toolbar .schedule-search > button { width: 68px !important; min-width: 68px !important; flex: 0 0 68px; height: 32px; margin: 0; display: inline-flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid var(--ui-primary, #b8202b); border-radius: 0 4px 4px 0; background: var(--ui-primary, #b8202b); color: #fff; }
.schedule-icon-button { width: 26px; height: 26px; padding: 0; border: 0; background: #fff; color: var(--ui-ink, #343034); }
.schedule-icon-button:hover { color: var(--ui-accent-ink, #a21c27); }
.schedule-advanced-button { margin-left: 0; flex: 0 0 32px; border-radius: 4px; background: #f4f5f9; color: var(--ui-ink, #343034); }
.schedule-advanced-button .iconfont { font-size: 17px; }
.schedule-reset-button { width: 32px; flex: 0 0 32px; }
.schedule-segment { height: 26px; display: flex; overflow: hidden; border-radius: 10px; background: #f4f5f9; }
.schedule-segment button { height: 26px; padding: 0 12px; border: 0; background: #f4f5f9; color: #606266; font-size: 12px; white-space: nowrap; }
.schedule-segment button.active { background: var(--ui-primary, #b8202b); color: #fff; }
.schedule-expiry button { padding: 0 10px; }
.schedule-create-button { width: 90px; height: 26px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid var(--ui-primary, #b8202b); border-radius: 3px; background: var(--ui-primary, #b8202b); color: #fff; font-size: 12px; }
.schedule-create-button i { font-size: 14px; }
.schedule-tool-wrap { position: relative; height: 26px; }
.schedule-export-button i, .schedule-columns-button i { font-size: 26px; }
.schedule-export-menu, .schedule-columns-popover { position: absolute; z-index: 80; top: 31px; right: 0; border: 1px solid #ebeef5; border-radius: 4px; background: #fff; box-shadow: 0 2px 12px rgba(0,0,0,.12); }
.schedule-export-menu { width: 126px; padding: 5px 0; }
.schedule-export-menu button { width: 100%; height: 30px; padding: 0 14px; border: 0; background: #fff; color: #606266; font-size: 12px; text-align: left; }
.schedule-export-menu button:hover { background: #f5f7fa; color: var(--ui-accent-ink, #a21c27); }
.schedule-columns-popover { width: 186px; padding-top: 8px; }
.schedule-column-options { max-height: 360px; overflow: auto; }
.schedule-column-options label { min-height: 30px; padding: 0 14px; display: flex; align-items: center; gap: 8px; color: #606266; font-size: 12px; }
.schedule-column-options label.fixed { color: #909399; }
.schedule-column-options input { margin: 0; accent-color: var(--ui-primary, #b8202b); }
.schedule-columns-popover footer { padding: 8px 12px; border-top: 1px solid #ebeef5; text-align: right; }
.schedule-columns-popover footer button { height: 24px; padding: 0 12px; border: 1px solid var(--ui-primary, #b8202b); border-radius: 3px; background: var(--ui-primary, #b8202b); color: #fff; font-size: 12px; }

.schedule-advanced { position: relative; margin: 0 20px; padding: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; border: 1px solid var(--ui-primary-line, #efd0d5); border-radius: 4px; background: var(--ui-primary-pale, #fff7f8); }
.schedule-filter-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 8px; }
.schedule-filter-reset { border: 1px solid var(--ui-primary-line, #efd0d5); border-radius: 4px; padding: 0 16px; background: #fff; color: var(--ui-accent-ink, #a21c27); }
.schedule-advanced > label { min-width: 0; display: flex; align-items: center; }
.schedule-advanced > label > span { width: 80px; flex: 0 0 80px; padding-right: 16px; color: #000; font-size: 12px; text-align: justify; text-align-last: justify; }
.schedule-advanced input, .schedule-advanced select { width: calc(100% - 80px); min-width: 0; height: 32px; padding: 0 16px; border: 1px solid #f4f5f9; border-radius: 3px; outline: 0; background: #f4f5f9; color: #606266; font-size: 12px; }
.schedule-date-range { width: calc(100% - 80px); min-width: 0; height: 32px; display: grid; grid-template-columns: minmax(0,1fr) 24px minmax(0,1fr); align-items: center; background: #f4f5f9; }
.schedule-date-range input { width: 100%; padding: 0 10px; border: 0; text-align: center; }
.schedule-date-range b { color: var(--ui-muted, #716a70); font-weight: 400; text-align: center; }

.schedule-list-page .schedule-table-frame { height: auto; min-height: 0; margin: 16px 20px 0; overflow: auto; border: 1px solid #ebeef5; }
.schedule-table { border-collapse: collapse; table-layout: fixed; color: #000; }
.schedule-table th { position: relative; height: 40px; padding: 0 10px; border-right: 1px solid #fff; border-bottom: 1px solid #ebeef5; background: var(--ui-primary-soft, #fbeaec); color: var(--ui-ink, #343034); font-size: 12px; font-weight: 600; text-align: left; white-space: nowrap; }
.schedule-table td { position: relative; height: 40px; padding: 0 10px; overflow: hidden; border-right: 1px solid #ebeef5; border-bottom: 1px solid #ebeef5; background: #fff; color: #000; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-table .schedule-column-index { left: 0; text-align: center; }
.schedule-table th.schedule-column-index,
.schedule-table th.schedule-column-operation { padding-right: 4px; padding-left: 4px; }
.schedule-table th.schedule-column-index .oa-column-header-content,
.schedule-table th.schedule-column-operation .oa-column-header-content { padding-right: 0; text-align: center; }
.schedule-table .schedule-column-scheduleType { left: 40px; }
.schedule-sticky-left { position: sticky !important; z-index: 3; }
.schedule-sticky-right { position: sticky !important; right: 0; z-index: 4; text-align: center !important; }
.schedule-table th.schedule-sticky-left, .schedule-table th.schedule-sticky-right { z-index: 6; }
.schedule-empty { height: 120px !important; text-align: center; color: #909399 !important; }
.schedule-row-more { width: 22px; height: 26px; padding: 0; border: 0; background: transparent; color: var(--ui-accent-ink, #a21c27); }
.schedule-row-menu { position: fixed; z-index: 90; width: 74px; padding: 5px 0; border: 1px solid #ebeef5; border-radius: 4px; background: #fff; box-shadow: 0 2px 12px rgba(0,0,0,.12); }
.schedule-row-menu button { display: block; width: 100%; height: 28px; border: 0; background: #fff; color: #606266; font-size: 12px; }
.schedule-table[data-oa-resizable="true"] td.schedule-column-operation { padding: 0; text-overflow: clip !important; }
.schedule-table td:has(> .schedule-row-menu) { z-index: 20; }
.schedule-row-menu button:hover { background: #f5f7fa; color: var(--ui-accent-ink, #a21c27); }
.schedule-pagination { height: 64px; display: flex; align-items: center; justify-content: center; gap: 14px; color: #000; font-size: 12px; }
.schedule-pagination > button { width: 36px; height: 28px; border: 0; background: #fff; color: var(--ui-muted, #716a70); }
.schedule-pagination > button:disabled { color: var(--ui-muted, #716a70); cursor: default; }
.schedule-pagination > b { width: 38px; height: 36px; display: grid; place-items: center; border-radius: 8px; background: var(--ui-primary, #b8202b); color: #fff; font-weight: 400; }
.schedule-pagination label { display: flex; align-items: center; gap: 7px; color: var(--ui-muted, #716a70); }
.schedule-pagination input { width: 36px; height: 28px; border: 0; border-radius: 6px; background: #f4f5f9; text-align: center; }

.schedule-modal-backdrop { position: fixed; z-index: 160; inset: 0; display: flex; align-items: flex-start; justify-content: center; padding: 20px 0; overflow: auto; background: rgba(0,0,0,.48); }
.schedule-modal { width: 90vw; min-height: 542px; display: flex; flex-direction: column; overflow: visible; border-radius: 4px; background: #f4f5f9; box-shadow: 0 20px 60px rgba(0,0,0,.22); }
.schedule-modal > header { height: 33px; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; background: linear-gradient(100deg,var(--ui-primary, #b8202b),var(--ui-primary, #b8202b)); color: #fff; }
.schedule-modal > header h2 { margin: 0; font-size: 18px; font-weight: 400; }
.schedule-modal > header button { width: 28px; height: 32px; padding: 0; border: 0; background: transparent; color: #fff; }
.schedule-modal > main { margin: 7px 24px 0; padding: 0; flex: 1; background: #fff; }
.schedule-modal > footer { height: 73px; display: flex; align-items: center; justify-content: center; gap: 44px; }
.schedule-modal > footer button { width: 120px; height: 40px; border: 0; border-radius: 10px; font-size: 14px; }
.schedule-modal > footer .secondary { background: var(--ui-primary-soft, #fbeaec); color: #70706d; }
.schedule-modal > footer .primary { background: var(--ui-primary, #b8202b); color: #fff; }
.schedule-section-title { height: 36px; padding: 0 6px; display: flex; align-items: center; justify-content: space-between; border-left: 2px solid var(--ui-primary, #b8202b); border-bottom: 1px solid #ebeef5; color: #000; font-size: 14px; }
.schedule-section-title > button { height: 26px; padding: 0 12px; border: 0; border-radius: 3px; background: var(--ui-primary, #b8202b); color: #fff; font-size: 12px; }
.schedule-section-title > button i { margin-right: 4px; }
.schedule-form-grid { padding: 10px 12px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 219px; }
.schedule-form-field { min-width: 0; height: 65px; display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: start; }
.schedule-form-field.wide { grid-column: 1 / -1; }
.schedule-form-field > span { height: 32px; display: flex; align-items: center; padding-left: 14px; color: #000; font-size: 12px; }
.schedule-form-field > span b { margin-right: 2px; color: #f00; font-weight: 400; }
.schedule-form-field > input, .schedule-form-field > select { min-width: 0; height: 40px; padding: 0 16px; border: 1px solid #f4f5f9; border-radius: 8px; outline: 0; background: #f4f5f9; color: var(--ui-ink, #343034); font-size: 12px; }
.schedule-datetime { position: relative; min-width: 0; height: 40px; }
.schedule-datetime > input { width: 100%; height: 40px; padding: 0 74px 0 16px; border: 1px solid #f4f5f9; border-radius: 8px; outline: 0; background: #f4f5f9; color: var(--ui-ink, #343034); font-size: 12px; }
.schedule-datetime > label { position: absolute; top: 0; right: 10px; height: 40px; display: flex; align-items: center; gap: 7px; color: #000; font-size: 12px; }
.schedule-reminder-control { position: relative; min-width: 0; }
.schedule-reminder-value { width: 100%; min-height: 40px; padding: 4px 38px 4px 12px; display: flex; align-items: center; gap: 4px; overflow: hidden; border: 1px solid #f4f5f9; border-radius: 8px; background: #f4f5f9; color: var(--ui-ink, #343034); text-align: left; }
.schedule-reminder-value > span { height: 28px; display: inline-flex; align-items: center; padding: 0 7px; border-radius: 3px; background: #fff; font-size: 12px; white-space: nowrap; }
.schedule-reminder-value > span button, .schedule-attachment-list span button { margin-left: 5px; padding: 0; border: 0; background: transparent; color: #909399; }
.schedule-reminder-value > i { position: absolute; right: 13px; font-size: 18px; }
.schedule-reminder-value em { color: #909399; font-size: 12px; font-style: normal; }
.schedule-reminder-editor { position: absolute; z-index: 190; top: 44px; left: 0; width: 390px; padding: 12px; border: 1px solid #ebeef5; border-radius: 4px; background: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.14); }
.schedule-reminder-editor h4 { margin: 0 0 10px; font-size: 12px; font-weight: 500; }
.schedule-reminder-editor > div { display: grid; grid-template-columns: 92px 70px 82px 110px; gap: 7px; }
.schedule-reminder-editor select, .schedule-reminder-editor input { min-width: 0; height: 32px; border: 1px solid #dcdfe6; border-radius: 3px; background: #fff; }
.schedule-reminder-editor button { height: 32px; border: 0; border-radius: 3px; background: var(--ui-primary, #b8202b); color: #fff; }
.schedule-attachment-list { min-height: 40px; display: flex; align-items: center; gap: 8px; }
.schedule-attachment-list span { height: 28px; padding: 0 9px; display: inline-flex; align-items: center; border: 1px solid #e6ebf1; border-radius: 3px; color: #606266; font-size: 12px; }
.schedule-upload { height: 50px; margin: -13px 24px 20px; display: flex; align-items: center; justify-content: center; gap: 10px; background: #f4f5f9; color: var(--ui-accent-ink, #a21c27); cursor: pointer; }
.schedule-upload input { display: none; }
.schedule-upload i { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--ui-primary-soft, #fbeaec); color: #fff; }
.schedule-form-error { margin: -10px 24px 10px; color: #d43d55; font-size: 12px; }

.schedule-detail-modal { min-height: 455px; }
.schedule-detail-grid { padding: 18px 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 219px; }
.schedule-detail-item { min-width: 0; min-height: 52px; display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: start; }
.schedule-detail-item.wide { grid-column: 1 / -1; }
.schedule-detail-item span { padding: 9px 0 0 14px; color: #606266; font-size: 12px; }
.schedule-detail-item strong { min-height: 32px; padding: 8px 16px; overflow: hidden; border-radius: 8px; background: #f4f5f9; color: var(--ui-ink, #343034); font-size: 12px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1100px) {
  .schedule-toolbar-left, .schedule-toolbar-right { flex-basis: 100%; }
  .schedule-form-grid, .schedule-detail-grid { column-gap: 40px; }
}

@media (max-width: 820px) {
  .app-shell.schedule-shell { height: auto; min-height: 100dvh; grid-template-rows: 60px 46px minmax(calc(100dvh - 106px),auto); }
  .app-shell.schedule-shell .topbar { height: 60px; }
  .app-shell.schedule-shell .tab-strip { position: static; width: 100%; height: 46px; margin: 0; padding: 0; }
  .app-shell.schedule-shell .workspace-wrap { grid-row: 3; padding: 0; }
  .schedule-page { min-height: calc(100dvh - 106px); padding-top: 0; overflow: hidden; border-radius: 0; }
  .app-shell.schedule-shell:has(.schedule-calendar-page) { grid-template-rows: 60px 46px auto; }
  .app-shell.schedule-shell:has(.schedule-calendar-page) .workspace-wrap,
  .app-shell.schedule-shell:has(.schedule-calendar-page) .workspace { min-height: calc(100dvh - 106px); }
  .schedule-calendar-page { width: 100%; min-height: calc(100dvh - 106px); overflow: hidden; }
  .schedule-calendar-toolbar { padding: 12px 10px; height: 50px; }
  .schedule-month-control { top: 12px; left: auto; right: 10px; transform: none; }
  .schedule-calendar-layout { height: auto; margin: 0 10px 12px; grid-template-columns: 1fr; }
  .schedule-calendar-sidebar { grid-row: 1; display: flex; gap: 8px; overflow-x: auto; }
  .schedule-calendar-sidebar section { min-width: 210px; }
  .schedule-calendar-scroll { grid-row: 2; width: 100%; }
  .schedule-calendar-grid { width: 840px; height: 660px; }
  .schedule-days { grid-auto-rows: minmax(123px,1fr); }
  .schedule-list-toolbar { height: auto; margin: 0 10px; padding: 10px 0; }
  .schedule-list-page { grid-template-rows: auto minmax(0, 1fr) 64px; }
  .schedule-toolbar-left { display: grid; grid-template-columns: minmax(0, 1fr) 32px 32px; width: 100%; }
  .schedule-toolbar-left .schedule-mode-toggle { grid-column: 1 / -1; }
  .schedule-search { width: 100%; }
  .schedule-toolbar-right { width: 100%; }
  .schedule-advanced { margin: 0 10px; grid-template-columns: 1fr; gap: 10px; }
  .schedule-list-page .schedule-table-frame { height: auto; min-height: 0; margin: 8px 10px 0; }
  .schedule-modal-backdrop { padding: 8px; }
  .schedule-modal { width: calc(100vw - 16px); min-height: 0; }
  .schedule-modal > main { margin: 7px 8px 0; overflow: auto; }
  .schedule-modal > footer { height: 64px; gap: 12px; }
  .schedule-modal > footer button { width: 104px; height: 40px; }
  .schedule-form-grid, .schedule-detail-grid { padding: 10px 8px; grid-template-columns: 1fr; column-gap: 0; }
  .schedule-form-field.wide, .schedule-detail-item.wide { grid-column: auto; }
  .schedule-form-field { grid-template-columns: 82px minmax(0,1fr); }
  .schedule-form-field > span { padding-left: 4px; }
  .schedule-upload { margin: -5px 16px 16px; }
  .schedule-detail-item { grid-template-columns: 82px minmax(0,1fr); }
  .schedule-detail-item span { padding-left: 4px; }
  .schedule-reminder-editor { right: 0; left: auto; width: min(390px, calc(100vw - 44px)); }
  .schedule-reminder-editor > div { grid-template-columns: 1fr 65px 72px; }
  .schedule-reminder-editor button { grid-column: 1 / -1; }
}
