@font-face { font-family: iconfont; src: url("/static/fonts/iconfont.46bbeda.woff2") format("woff2"); font-display: block; }
.meeting-shell .iconfont { font-family: iconfont !important; font-style: normal; font-weight: 400; line-height: 1; -webkit-font-smoothing: antialiased; }
.meeting-shell .icon-sousuo::before { content: "\E634"; }
.meeting-shell .icon-list::before { content: "\E629"; }
.meeting-shell .icon-sync::before { content: "\E647"; }
.meeting-shell .icon-subscribe-add::before { content: "\E637"; }
.meeting-shell .icon-cloud-download::before { content: "\E654"; }
.meeting-shell .icon-operation::before { content: "\E669"; }
.meeting-shell .icon-swap::before { content: "\E636"; }
.meeting-shell .icon-Save::before { content: "\E670"; }
.meeting-shell .icon-upload::before { content: "\E635"; }
.meeting-shell .icon-picture::before { content: "\E63C"; }

.app-shell.meeting-shell { position: relative; height: calc(100vh - 3px); grid-template-rows: 68px 0 minmax(0,1fr); background: var(--ui-primary-pale, #fff7f8); }
.app-shell.meeting-shell .topbar { height: 60px; align-self: start; }
.app-shell.meeting-shell .brand img { width: 148px; }
.app-shell.meeting-shell .primary-nav button { min-width: 68px; padding: 0 14px; font-size: 15px; }
.app-shell.meeting-shell .nav-home { min-width: 60px !important; font-size: 21px !important; }
.app-shell.meeting-shell .top-actions { gap: 10px; padding: 0 16px; }
.app-shell.meeting-shell .top-action { width: 32px; height: 32px; padding: 0; font-size: 17px; }
.app-shell.meeting-shell .avatar { width: 40px; height: 40px; font-size: 18px; }
.app-shell.meeting-shell .tab-strip { position: absolute; z-index: 50; top: 68px; right: 25px; left: 211px; width: auto; height: 44px; margin: 0; padding: 2px; overflow: visible; border: 0; border-radius: 3px 3px 0 0; background: #fff; box-shadow: none; }
.app-shell.meeting-shell .tab-scroll { height: 40px; background: #e5e5e5; }
.app-shell.meeting-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.meeting-shell .route-tab.active { border: 0; border-radius: 0; background: #fff; color: #555; font-weight: 400; }
.app-shell.meeting-shell .tab-grid,
.app-shell.meeting-shell .tab-menu-wrap { width: 40px; height: 40px; flex: 0 0 40px; }
.app-shell.meeting-shell .tab-grid { border: 0; background: #e5e5e5; color: var(--ui-ink, #343034); }
.app-shell.meeting-shell .workspace-wrap { grid-row: 3; min-height: 0; padding: 0 25px 16px; }
.app-shell.meeting-shell .workspace { height: 100%; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }

.meeting-page { position: relative; height: 100%; min-height: 608px; overflow: hidden; background: transparent; color: #222; font-family: "Microsoft YaHei", Arial, sans-serif; }
.meeting-page * { box-sizing: border-box; letter-spacing: 0; }
.meeting-page button,
.meeting-page input,
.meeting-page select { font: inherit; }
.meeting-page button { cursor: pointer; }
.meeting-layout { height: calc(100% - 42px); display: grid; grid-template-columns: 171px minmax(0,1fr); gap: 15px; overflow: hidden; }
.meeting-room-tools { height: 42px; display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 4px 12px; }
#meeting-room-form { display: grid; gap: 16px; padding: 18px; }
#meeting-room-form label { display: grid; gap: 6px; }
#meeting-room-form input { min-width: 0; width: 100%; height: 36px; border: 1px solid var(--ui-primary-line, #efd0d5); padding: 6px 10px; }
.meeting-sidebar { min-width: 0; height: 100%; padding: 8px; overflow-y: auto; border-radius: 8px; background: #fff; }
.meeting-side-group + .meeting-side-group { margin-top: 0; }
.meeting-side-group h2 { height: 30px; margin: 0; padding: 0 20px; display: flex; align-items: center; color: #999; font-size: 12px; font-weight: 400; }
.meeting-side-item { width: 100%; height: 38px; padding: 0 10px; border: 0; border-radius: 10px; background: transparent; color: #171717; text-align: center; font-size: 12px; }
.meeting-side-item:hover { background: #f3f8fc; }
.meeting-side-item.active { background: var(--ui-primary-soft, #fbeaec); color: var(--ui-accent-ink, #a21c27); }
.meeting-content { min-width: 0; height: 100%; padding-top: 44px; overflow: hidden; border-radius: 8px; background: #fff; }

.meeting-calendar-content { padding: 60px 16px 8px; display: flex; flex-direction: column; }
.meeting-date-bar { height: 62px; padding: 5px 2px; display: grid; grid-template-columns: 20px minmax(0,1fr) 20px; align-items: center; border: 1px solid #f4f5f9; border-radius: 10px; background: #fff; }
.meeting-date-scroll { min-width: 0; height: 50px; display: flex; overflow: hidden; }
.meeting-arrow { width: 20px; height: 50px; padding: 0; border: 0; background: transparent; color: var(--ui-ink, #343034); font-size: 18px; }
.meeting-date-cell { position: relative; min-width: 50px; width: 50px; height: 50px; margin-right: 8px; padding: 5px 2px; display: block; overflow: hidden; border: 1px solid #f4f5f9; border-radius: 10px; background: #fff; color: #212121; text-align: center; }
.meeting-date-cell small,
.meeting-date-cell strong { display: block; height: 20px; line-height: 20px; font-weight: 400; }
.meeting-date-cell small { color: var(--ui-ink, #343034); font-size: 13px; }
.meeting-date-cell strong { color: #212121; font-size: 15px; }
.meeting-date-cell.active { border-color: var(--ui-primary, #b8202b); background: var(--ui-primary, #b8202b); }
.meeting-date-cell.active small,
.meeting-date-cell.active strong { color: #fff; }
.meeting-first-day { position: absolute; top: 0; left: 0; width: 30px; height: 30px; padding: 1px 0 0 4px; overflow: hidden; background: var(--ui-primary, #b8202b); color: #fff; font-size: 10px; line-height: 13px; text-align: left; clip-path: polygon(0 0,100% 0,0 100%); }
.meeting-timeline-frame { min-height: 0; flex: 1; margin-top: 16px; display: grid; grid-template-columns: 193px minmax(0,1fr); overflow: hidden; border: 1px solid #ddd; }
.meeting-fixed-viewport { min-width: 0; overflow: auto; border-right: 1px solid #ddd; background: #fff; }
.meeting-date-head { position: sticky; z-index: 4; top: 0; width: 190px; height: 33px; padding-left: 8px; display: flex; align-items: center; border-bottom: 1px solid #ddd; background: #fff; color: #303133; font-size: 12px; font-weight: 500; }
.meeting-fixed-body { width: 191px; min-height: calc(100% - 33px); }
.meeting-room-label { width: 190px; height: 72px; padding: 14px 12px; overflow: hidden; border-bottom: 1px solid #ddd; background: #fff; }
.meeting-room-label strong,
.meeting-room-label small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.meeting-room-label strong { font-size: 12px; font-weight: 500; }
.meeting-room-label small { margin-top: 7px; color: #909399; font-size: 10px; }
.meeting-time-viewport { min-width: 0; overflow: auto; background: #fff; }
.meeting-hours-row,
.meeting-time-row { width: 1440px; display: grid; grid-template-columns: repeat(24,60px); }
.meeting-time-row { grid-template-columns: repeat(48,30px); }
.meeting-hours-row { position: sticky; z-index: 3; top: 0; }
.meeting-time-head { height: 33px; display: grid; place-items: center; border-right: 1px solid #ddd; border-bottom: 1px solid #ddd; background: #fff; color: #303133; font-size: 12px; font-weight: 500; }
.meeting-timed-body { width: 1440px; height: calc(100% - 33px); min-height: calc(100% - 33px); }
.meeting-empty-time-grid { width: 1440px; height: 100%; display: grid; grid-template-columns: repeat(48, 30px); }
.meeting-empty-time-grid span { height: 100%; border-left: 1px solid #ddd; border-bottom: 1px solid #ddd; }
.meeting-time-cell { height: 72px; padding: 0; border: 0; border-right: 1px solid #ddd; border-bottom: 1px solid #ddd; background: #fff; }
.meeting-time-cell:hover { background: var(--ui-primary-pale, #fff7f8); }
.meeting-time-cell.occupied { background: var(--ui-primary, #b8202b); }

.meeting-list-main { position: relative; height: 100%; display: flex; flex-direction: column; }
.meeting-toolbar { position: relative; z-index: 20; height: 59px; padding: 0 20px; display: flex; align-items: center; }
.meeting-search { width: 207.6px; height: 26px; display: flex; }
.meeting-search input { width: 185px; height: 26px; padding: 0 30px 0 15px; border: 1px solid #f4f5f9; border-radius: 6px; outline: 0; background: #f4f5f9; color: #222; font-size: 12px; }
.meeting-search button { width: 37.6px; height: 26px; margin-left: -15px; padding: 0 12px; border: 1px solid var(--ui-primary, #b8202b); border-radius: 10px; background: var(--ui-primary, #b8202b); color: #fff; font-size: 12px; }
.meeting-icon-button { width: auto; height: 26px; padding: 0; border: 0; background: transparent; color: var(--ui-ink, #343034); }
.meeting-advanced-button { width: 38px; margin-left: 10px; padding: 0 12px; font-size: 14px; }
.meeting-reset-button { width: 16px; margin-left: 10px; font-size: 16px; }
.meeting-toolbar-spacer { flex: 1; }
.meeting-primary-button { width: 90px; height: 26px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid var(--ui-primary, #b8202b); border-radius: 10px; background: var(--ui-primary, #b8202b); color: #fff; font-size: 12px; white-space: nowrap; }
.meeting-export-wrap { position: relative; width: 26px; height: 26px; margin-left: 8px; }
.meeting-export-button { width: 26px; font-size: 26px; }
.meeting-export-menu { position: absolute; z-index: 80; top: 32px; right: 0; width: 112px; padding: 5px 0; border: 1px solid #ebeef5; border-radius: 4px; background: #fff; box-shadow: 0 2px 12px rgba(0,0,0,.12); }
.meeting-export-menu button { width: 100%; height: 30px; border: 0; background: #fff; color: #555; font-size: 12px; text-align: left; padding: 0 14px; }
.meeting-export-menu button:hover { background: #f4f8fb; color: var(--ui-accent-ink, #a21c27); }
.meeting-advanced { position: absolute; z-index: 15; top: 55px; right: 0; left: 0; height: 96px; padding: 0 25px; display: grid; grid-template-columns: repeat(3,401.6px); grid-auto-rows: 32px; gap: 16px 10px; align-content: start; background: #fff; box-shadow: 0 10px 14px rgba(0,0,0,.08); }
.meeting-advanced label { min-width: 0; display: grid; grid-template-columns: 80px minmax(0,1fr); align-items: center; font-size: 12px; }
.meeting-advanced label > span { word-spacing: 14px; }
.meeting-advanced input,
.meeting-advanced select { width: 100%; height: 32px; padding: 0 15px; border: 0; border-radius: 5px; outline: 0; background: #f4f5f9; color: #606266; font-size: 12px; }
.meeting-range { display: grid; grid-template-columns: 1fr 5px 1fr; align-items: center; }
.meeting-range b { color: var(--ui-muted, #716a70); font-weight: 400; text-align: center; }

.meeting-table-frame { position: relative; min-height: 0; flex: 1; margin: 0 20px; overflow: auto; border: 1px solid #e1e5ea; }
.meeting-table { width: 1259px; min-width: 1259px; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 12px; }
.meeting-table th,
.meeting-table td { height: 40px; padding: 0 12px; overflow: hidden; border-right: 1px solid #e3e6ea; border-bottom: 1px solid #e3e6ea; background: #fff; color: #333; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.meeting-table th { position: sticky; z-index: 6; top: 0; background: var(--ui-primary-soft, #fbeaec); color: #444; font-weight: 500; }
.meeting-sticky-left { position: sticky; z-index: 5; left: 0; }
.meeting-title.meeting-sticky-left,
.meeting-screen-name.meeting-sticky-left { left: 40px; }
.meeting-index { width: 40px; min-width: 40px; padding: 0 !important; text-align: center !important; }
.meeting-title { width: 339px; min-width: 339px; }
.meeting-screen-name { width: 253px; min-width: 253px; }
.meeting-sticky-right { position: sticky; z-index: 5; right: 0; }
.meeting-operation { position: relative; width: 40px; min-width: 40px; padding: 0 !important; overflow: visible !important; text-align: center !important; }
.meeting-more { width: 34px; height: 32px; padding: 0; border: 0; background: transparent; color: var(--ui-muted, #716a70); }
.meeting-row-menu { position: fixed; z-index: 1000; width: 86px; padding: 4px 0; border: 1px solid #ebeef5; border-radius: 4px; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.12); }
.meeting-row-menu button { display: block; width: 100%; height: 28px; border: 0; background: #fff; font-size: 12px; }
.meeting-table[data-oa-resizable="true"] td.meeting-operation { text-overflow: clip !important; }
.meeting-table td.meeting-operation:has(.meeting-row-menu) { z-index: 20; }
.meeting-empty { position: absolute; z-index: 2; top: 40px; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #979ba1; font-size: 12px; pointer-events: none; }
.meeting-empty svg { width: 48px; height: 48px; margin-bottom: 4px; }
.meeting-empty span { height: 20px; line-height: 20px; }
.meeting-status { display: inline-flex; align-items: center; gap: 5px; color: #606266; }
.meeting-status i { width: 7px; height: 7px; border-radius: 50%; background: #e6a23c; }
.meeting-status.approved i { background: #67c23a; }
.meeting-status.rejected i { background: #f56c6c; }
.meeting-pagination { height: 59px; display: flex; align-items: center; justify-content: center; gap: 12px; color: #606266; font-size: 12px; }
.meeting-pagination button { width: 26px; height: 26px; border: 0; background: transparent; color: var(--ui-muted, #716a70); }
.meeting-pagination b { min-width: 30px; height: 30px; display: grid; place-items: center; border-radius: 4px; background: var(--ui-primary, #b8202b); color: #fff; font-weight: 400; }
.meeting-pagination label { display: flex; align-items: center; gap: 5px; }
.meeting-pagination input { width: 42px; height: 30px; border: 1px solid #ebeef5; border-radius: 4px; text-align: center; }

.meeting-management-content,
.meeting-background-content { display: flex; flex-direction: column; }
.meeting-management-toolbar { height: 59px; padding: 0 16px; display: flex; align-items: center; justify-content: flex-end; gap: 20px; }
.meeting-screen-table { margin-bottom: 59px; }
.meeting-copy-cell { text-align: center !important; }
.meeting-copy-cell button { height: 26px; padding: 0 10px; border: 1px solid var(--ui-primary, #b8202b); border-radius: 10px; background: #fff; color: var(--ui-accent-ink, #a21c27); font-size: 12px; }
.meeting-background-form { min-height: 10px; margin: -1px 16px 0; }
.meeting-background-row { height: 40px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #ebeef5; background: #fff; font-size: 12px; }
.meeting-background-row span { display: flex; align-items: center; gap: 8px; }
.meeting-background-row button { width: 28px; height: 28px; border: 0; background: transparent; color: #f56c6c; }
.meeting-upload-bar { height: 40px; margin: 8px 16px 0; display: flex; align-items: center; justify-content: center; gap: 10px; border: 0; background: #f4f5f9; color: var(--ui-accent-ink, #a21c27); font-size: 12px; }
.meeting-upload-bar .iconfont { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--ui-primary-soft, #fbeaec); color: #fff; font-size: 12px; }

.meeting-dialog-backdrop { position: fixed; z-index: 1900; inset: 0; display: grid; place-items: start center; padding-top: 20px; background: rgba(0,0,0,.48); }
.meeting-dialog { width: 90vw; display: flex; flex-direction: column; overflow: hidden; border-radius: 3px; background: #f3f4f8; box-shadow: 0 2px 3px rgba(0,0,0,.25); }
.meeting-dialog > header { height: 33px; min-height: 33px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; background: linear-gradient(90deg,var(--ui-primary, #b8202b),var(--ui-primary, #b8202b)); color: #fff; }
.meeting-dialog > header h2 { margin: 0; font-size: 18px; font-weight: 400; }
.meeting-dialog > header button { width: 24px; height: 32px; padding: 0; border: 0; background: transparent; color: #fff; font-size: 24px; }
.meeting-dialog > main { min-height: 0; margin: 20px 20px 0; overflow: auto; background: #fff; }
.meeting-dialog > footer { height: 73px; min-height: 73px; padding-right: 30px; display: flex; align-items: center; justify-content: center; gap: 44px; }
.meeting-form-title { height: 46px; padding-left: 4px; display: flex; align-items: center; border-bottom: 1px solid #edf0f3; border-left: 2px solid var(--ui-primary, #b8202b); color: #222; font-size: 14px; }
.meeting-cancel-button,
.meeting-submit-button { width: 120px; height: 32px; border: 0; border-radius: 10px; background: var(--ui-primary-soft, #fbeaec); color: #666; font-size: 14px; }
.meeting-submit-button { background: var(--ui-primary, #b8202b); color: #fff; }

.meeting-book-dialog { height: 646px; }
.meeting-book-dialog > main { height: 520px; flex: 0 0 520px; }
.meeting-book-form { padding: 0 12px 20px; display: flex; flex-direction: column; gap: 20px; }
.meeting-book-row { height: 32px; display: grid; grid-template-columns: 5fr 2fr 5fr; }
.meeting-book-row.full label { grid-column: 1 / 4; }
.meeting-book-row.paired label:first-child { grid-column: 1; }
.meeting-book-row.paired label:last-child { grid-column: 3; }
.meeting-book-form label { position: relative; min-width: 0; display: grid; grid-template-columns: 110px minmax(0,1fr); align-items: center; font-size: 12px; }
.meeting-book-form label > span:first-child { padding-left: 6px; color: #222; }
.meeting-book-form label.required > span:first-child::before { content: "*"; margin-left: -6px; color: #f56c6c; }
.meeting-book-form input,
.meeting-book-form select { width: 100%; height: 32px; padding: 0 15px; border: 0; border-radius: 5px; outline: 0; background: #f4f5f9; color: #606266; font-size: 12px; }
.meeting-book-form input:focus,
.meeting-book-form select:focus { box-shadow: inset 0 0 0 1px var(--ui-primary, #b8202b); }
.meeting-room-control { position: relative; min-width: 0; }
.meeting-photo-link { position: absolute; top: 3px; left: calc(100% + 30px); width: 70px; height: 26px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--ui-primary, #b8202b); border-radius: 10px; background: #fff; color: var(--ui-accent-ink, #a21c27); font-size: 12px; }
.meeting-time-inputs { display: grid; grid-template-columns: 1fr 20px 1fr; align-items: center; }
.meeting-time-inputs b { text-align: center; font-weight: 400; }
.meeting-approver-picker { width: 100%; height: 32px; padding: 0 15px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 0; border-radius: 5px; outline: 0; background: #f4f5f9; color: #606266; text-align: left; cursor: pointer; }
.meeting-approver-picker span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.meeting-approver-picker i { width: 7px; height: 7px; flex: 0 0 auto; border-right: 1px solid #909399; border-bottom: 1px solid #909399; transform: rotate(45deg) translateY(-2px); }
.meeting-approver-picker:focus { box-shadow: inset 0 0 0 1px var(--ui-primary, #b8202b); }
.meeting-approver small { position: absolute; top: 35px; left: 110px; color: #f56c6c; font-size: 12px; }
.meeting-attachment-row { min-height: 90px; padding: 0 6px; display: grid; grid-template-rows: 50px 40px; font-size: 12px; }
.meeting-attachment-row > span { padding-left: 6px; display: flex; align-items: center; }
.meeting-upload-box { position: relative; width: 100%; height: 40px; display: flex !important; grid-template-columns: none !important; align-items: center; justify-content: center; gap: 10px; background: #f4f5f9; color: var(--ui-accent-ink, #a21c27); }
.meeting-upload-box input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.meeting-upload-box .iconfont { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--ui-primary-soft, #fbeaec); color: #fff; font-size: 12px; }
.meeting-upload-box b { font-weight: 400; }

.meeting-screen-dialog { height: 572px; }
.meeting-screen-dialog > main { height: 446px; flex: 0 0 446px; }
.meeting-screen-form { padding: 0 12px 20px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: 82px; row-gap: 20px; }
.meeting-screen-form label { min-width: 0; height: 64px; display: flex; flex-direction: column; font-size: 12px; }
.meeting-screen-form label > span { height: 32px; display: flex; align-items: center; }
.meeting-screen-form label.required > span::before { content: "*"; color: #f56c6c; }
.meeting-screen-form input,
.meeting-screen-form select { width: 100%; height: 32px; padding: 0 15px; border: 0; border-radius: 5px; outline: 0; background: #f4f5f9; color: #606266; font-size: 12px; }
.meeting-screen-form .wide { grid-column: 1 / 4; }
.meeting-screen-background { height: 192px; font-size: 12px; }
.meeting-screen-background > span { height: 32px; display: flex; align-items: center; }
.meeting-screen-background > div { display: flex; gap: 34px; overflow-x: auto; }
.meeting-background-choice { position: relative; width: 186px; min-width: 186px; height: 128px; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 10px; background: #f4f5f9; }
.meeting-background-choice img { width: 100%; height: 100%; display: block; object-fit: cover; }
.meeting-background-choice span { position: absolute; right: 0; bottom: 0; left: 0; height: 24px; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,.55); color: #fff; font-size: 14px; }
.meeting-background-choice.active { border-color: var(--ui-primary, #b8202b); }
.meeting-background-choice.active span { display: flex; }

.meeting-sort-dialog { height: 760px; }
.meeting-sort-dialog > main { height: 624px; flex: 0 0 624px; }
.meeting-sort-table { position: relative; height: 624px; overflow: auto; border: 1px solid #ebeef5; }
.meeting-sort-table table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.meeting-sort-table th,
.meeting-sort-table td { height: 40px; padding: 0 16px; border-right: 1px solid #ebeef5; border-bottom: 1px solid #ebeef5; text-align: center; }
.meeting-sort-table th { background: var(--ui-primary-soft, #fbeaec); font-weight: 500; }
.meeting-sort-table th:first-child,
.meeting-sort-table td:first-child { width: 50px; }
.meeting-sort-empty { position: absolute; inset: 40px 0 0; display: grid; place-items: center; color: #909399; font-size: 12px; }
.meeting-sort-actions { float: right; display: flex; gap: 6px; }
.meeting-sort-actions button { width: 26px; height: 26px; border: 0; background: transparent; color: var(--ui-accent-ink, #a21c27); }

.meeting-dialog-backdrop:has(.meeting-upload-dialog) { padding-top: 15vh; }
.meeting-upload-dialog { width: 550px; height: 682px; background: #fff; }
.meeting-upload-dialog > main { height: 584px; flex: 0 0 584px; margin: 0; padding: 20px; overflow: hidden; }
.meeting-upload-dialog > footer { height: 65px; min-height: 65px; padding-right: 20px; gap: 40px; border-top: 1px solid #ebeef5; }
.meeting-upload-stage { width: 100%; height: 544px; display: grid; place-items: center; overflow: hidden; background: #f3f4f8; }
.meeting-upload-stage > img { max-width: 100%; max-height: 100%; object-fit: contain; }
.meeting-upload-prompt { text-align: center; transform: translateY(-2px); }
.meeting-upload-prompt label { position: relative; width: 120px; height: 32px; margin: 0 auto 22px; display: block; }
.meeting-upload-prompt input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.meeting-upload-prompt label span { width: 120px; height: 32px; display: grid; place-items: center; border-radius: 10px; background: var(--ui-primary, #b8202b); color: #fff; font-size: 12px; }
.meeting-upload-prompt p { margin: 0; color: #222; font-size: 12px; }

@media (max-width: 900px) {
  .app-shell.meeting-shell .tab-strip { left: 175px; }
  .meeting-layout { grid-template-columns: 142px minmax(0,1fr); gap: 8px; }
  .meeting-side-group h2 { padding: 0 10px; }
  .meeting-content { min-width: 0; }
  .meeting-calendar-content { padding: 60px 8px 8px; }
  .meeting-timeline-frame { grid-template-columns: 150px minmax(0,1fr); }
  .meeting-date-head,
  .meeting-room-label { width: 150px; }
  .meeting-fixed-body { width: 151px; }
  .meeting-dialog { width: calc(100vw - 24px); }
  .meeting-book-dialog,
  .meeting-screen-dialog { height: calc(100vh - 40px); }
  .meeting-book-dialog > main,
  .meeting-screen-dialog > main { height: auto; flex: 1; }
  .meeting-book-row,
  .meeting-book-row.paired { height: auto; display: block; }
  .meeting-book-row.paired label + label { margin-top: 20px; }
  .meeting-screen-form { grid-template-columns: 1fr; column-gap: 0; }
  .meeting-screen-form .wide { grid-column: auto; }
}
