imeeting/frontend/src/pages/business/Meetings.css

782 lines
17 KiB
CSS

.meetings-page {
padding: 8px;
min-width: 0;
background: #f5f6fa;
}
.meetings-page > .page-container__body {
padding: 0;
overflow: hidden;
border: none;
border-radius: 0;
background: transparent;
}
.meetings-list-panel .data-list-panel__table-area {
overflow: hidden;
}
.meetings-list-panel--cards .data-list-panel__table-area .app-page__table-wrap {
height: 100%;
min-height: 0;
display: flex;
flex-direction: column;
overflow: hidden;
}
.meetings-list-toolbar {
align-items: stretch;
margin-bottom: 12px;
}
.meetings-list-toolbar .data-list-panel__left-actions {
flex: 1;
width: 100%;
}
.meetings-list-toolbar .data-list-panel__right-actions {
display: none;
}
.meetings-toolbar-stack {
width: 100%;
min-width: 0;
display: flex;
flex-direction: column;
gap: 12px;
}
.meetings-toolbar-primary {
min-width: 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.meetings-primary-actions {
flex: 0 0 auto;
min-width: 0;
}
.meetings-display-switch {
flex: 0 0 auto;
}
.meetings-filter-actions {
min-width: 0;
flex: 1;
display: inline-flex;
align-items: center;
justify-content: flex-end;
}
.meetings-filter-actions.ant-space {
align-items: center;
}
.meetings-filter-actions .ant-space-item {
display: inline-flex;
align-items: center;
}
.meetings-scope-row {
min-width: 0;
display: flex;
align-items: center;
justify-content: flex-start;
}
.meetings-scope-switch {
flex: 0 0 auto;
}
.meetings-card-scroll {
--meeting-card-columns: 4;
--meeting-card-rows: 3;
--meeting-card-grid-gap: clamp(8px, 0.9cqw, 12px);
--meeting-card-grid-min-height: 176px;
flex: 1 1 auto;
height: 100%;
min-height: 0;
container-type: inline-size;
display: flex;
flex-direction: column;
overflow-x: hidden;
overflow-y: auto;
padding: clamp(4px, 0.6cqw, 6px) clamp(6px, 0.8cqw, 8px) clamp(8px, 1cqw, 12px);
}
.meetings-card-scroll .ant-skeleton,
.meetings-card-scroll .ant-spin-nested-loading,
.meetings-card-scroll .ant-spin-container,
.meetings-card-scroll .ant-list {
flex: 1 1 auto;
height: 100%;
min-height: 0;
display: flex;
flex-direction: column;
}
.meetings-card-scroll .ant-list-items {
flex: 0 0 auto;
min-height: 0;
height: auto;
display: grid;
grid-template-columns: repeat(var(--meeting-card-columns), minmax(0, 1fr));
grid-auto-rows: var(--meeting-card-grid-min-height);
gap: var(--meeting-card-grid-gap);
align-items: stretch;
align-content: start;
}
.meetings-card-scroll--full-page .ant-list-items {
flex: 1 1 auto;
height: 100%;
min-height: 0;
grid-template-rows: repeat(var(--meeting-card-rows), minmax(var(--meeting-card-grid-min-height), 1fr));
align-content: stretch;
}
.meeting-card-list-item.ant-list-item {
width: 100%;
height: 100%;
padding: 0 !important;
}
.meeting-card-v2.ant-card {
--meeting-card-title-font-size: clamp(12px, 4cqw, 16px);
--meeting-card-title-line-height: clamp(17px, 5.4cqw, 23px);
--meeting-card-meta-font-size: clamp(11px, 3.2cqw, 13px);
--meeting-card-meta-icon-size: clamp(12px, 3.6cqw, 15px);
--meeting-card-chip-font-size: clamp(10px, 3cqw, 12px);
--meeting-card-chip-height: clamp(21px, 6.6cqw, 28px);
--meeting-card-chip-line-height: calc(var(--meeting-card-chip-height) - 2px);
--meeting-card-status-icon-size: clamp(11px, 3.4cqw, 14px);
--meeting-card-footer-tag-line-height: clamp(15px, 4.8cqw, 22px);
--meeting-card-dot-size: clamp(6px, 1.6cqw, 7px);
--meeting-card-body-padding-block: clamp(9px, 3.2cqw, 14px);
--meeting-card-body-padding-inline: clamp(10px, 3.4cqw, 16px);
--meeting-card-body-row-gap: clamp(5px, 1.9cqw, 9px);
--meeting-card-body-min-height: clamp(17px, 5cqw, 22px);
--meeting-card-inline-gap: clamp(4px, 1.6cqw, 8px);
--meeting-card-footer-padding-top: clamp(5px, 2.2cqw, 9px);
container-type: inline-size;
width: 100%;
height: 100%;
min-height: 0;
display: flex;
flex-direction: column;
overflow: hidden;
border: none !important;
border-radius: 8px !important;
background: #fff !important;
box-shadow:
0 10px 26px rgba(24, 39, 75, 0.07),
0 2px 8px rgba(24, 39, 75, 0.05) !important;
cursor: pointer;
transform: translateY(0);
will-change: transform, box-shadow;
transition:
background 0.18s ease,
box-shadow 0.18s ease,
transform 0.18s ease;
}
.meeting-card-v2.ant-card:hover {
background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
box-shadow:
0 16px 34px rgba(24, 39, 75, 0.12),
0 6px 14px rgba(60, 112, 245, 0.10) !important;
transform: translateY(-3px);
}
.meeting-card-v2.ant-card:active {
box-shadow:
0 8px 18px rgba(24, 39, 75, 0.10),
0 2px 8px rgba(60, 112, 245, 0.10) !important;
transform: translateY(-1px);
}
.meeting-card-v2.ant-card:focus-visible {
outline: 2px solid rgba(60, 112, 245, 0.36);
outline-offset: 2px;
}
.meeting-card-v2 .ant-card-body {
flex: 1;
min-height: 0;
display: grid;
grid-template-rows: auto auto minmax(var(--meeting-card-body-min-height), 1fr) auto;
row-gap: var(--meeting-card-body-row-gap);
overflow: hidden;
padding: var(--meeting-card-body-padding-block) var(--meeting-card-body-padding-inline) !important;
}
.meeting-status-tag {
min-width: 0;
height: var(--meeting-card-chip-height);
position: relative;
display: inline-flex;
align-items: center;
gap: clamp(3px, 1.1cqw, 4px);
overflow: hidden;
padding: 0 clamp(6px, 2cqw, 8px);
border: 1px solid var(--meeting-status-border);
border-radius: 10px;
background: var(--meeting-status-bg);
color: var(--meeting-status-color);
font-size: var(--meeting-card-meta-font-size);
font-weight: 500;
line-height: var(--meeting-card-chip-line-height);
white-space: nowrap;
}
.meeting-status-tag__progress {
position: absolute;
left: 0;
bottom: 0;
height: 2px;
background: var(--meeting-status-color);
transition: width 0.4s ease-out;
}
.meeting-status-tag__icon {
display: inline-flex;
align-items: center;
flex-shrink: 0;
font-size: var(--meeting-card-status-icon-size);
}
.meeting-status-tag__spin-icon {
font-size: var(--meeting-card-status-icon-size);
}
.meeting-status-tag__percent {
flex-shrink: 0;
color: var(--meeting-status-color);
font-size: var(--meeting-card-chip-font-size);
font-weight: 500;
}
.meeting-status-tag > span:not(.meeting-status-tag__icon):not(.meeting-status-tag__percent) {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.meeting-status-tag--card,
.meeting-status-tag--table {
width: auto;
max-width: 100%;
}
.meeting-card-v2__top,
.meeting-card-v2__footer,
.meeting-card-v2__status-inner,
.meeting-card-v2__meta,
.meeting-card-v2__meta-item,
.meeting-card-v2__owner,
.meeting-card-v2__top-actions,
.meeting-card-v2__source {
display: flex;
align-items: center;
}
.meeting-card-v2__top {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: var(--meeting-card-inline-gap);
min-height: var(--meeting-card-chip-height);
min-width: 0;
}
.meeting-card-v2__top > .meeting-status-tag {
flex: 0 1 auto;
}
.meeting-card-v2__top > .meeting-status-tag--card {
width: fit-content;
max-width: clamp(86px, 54%, 176px);
}
.meeting-card-v2__top-actions {
min-width: 0;
flex: 0 0 auto;
display: grid;
grid-auto-flow: column;
grid-auto-columns: max-content;
align-items: center;
justify-content: flex-end;
gap: clamp(3px, 1.4cqw, 6px);
}
.meeting-card-v2__source {
max-width: clamp(58px, 30cqw, 112px);
height: var(--meeting-card-chip-height);
flex: 0 1 auto;
gap: clamp(3px, 1.3cqw, 5px);
padding: 0 clamp(5px, 1.8cqw, 8px);
border: 1px solid #e6e6e6;
border-radius: 10px;
color: var(--meeting-source-color);
background: #fff;
font-size: var(--meeting-card-chip-font-size);
font-weight: 500;
line-height: var(--meeting-card-chip-line-height);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.meeting-card-v2__source-text {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.meeting-card-v2__source-dot {
width: var(--meeting-card-dot-size);
height: var(--meeting-card-dot-size);
flex: 0 0 auto;
border-radius: 50%;
background: var(--meeting-source-color);
}
.meeting-card-v2__title-row {
min-width: 0;
display: block;
min-height: var(--meeting-card-title-line-height);
}
.meeting-card-v2__title.ant-typography {
min-width: 0;
flex: 1;
margin: 0 !important;
color: #333;
font-size: var(--meeting-card-title-font-size);
font-weight: 600;
line-height: var(--meeting-card-title-line-height);
}
.meeting-card-v2__actions {
flex: 0 0 auto;
}
.meeting-card-v2__actions .ant-btn {
width: var(--meeting-card-chip-height);
height: var(--meeting-card-chip-height);
border-radius: 10px;
border: 1px solid #f0f0f0;
background: #fff;
}
.meeting-card-v2__body {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
justify-content: center;
gap: var(--meeting-card-body-row-gap);
overflow: hidden;
}
.meeting-card-v2__status-note {
width: fit-content;
max-width: 100%;
align-self: flex-start;
padding: 0;
border: none;
border-radius: 0;
background: transparent;
font-size: var(--meeting-card-meta-font-size);
}
.meeting-card-v2__status-inner {
justify-content: flex-start;
width: 100%;
min-width: 0;
gap: var(--meeting-card-inline-gap);
}
.meeting-card-v2__status-text {
flex: 1 1 auto;
min-width: 0;
max-width: 100%;
display: flex;
align-items: center;
gap: clamp(3px, 1.4cqw, 6px);
color: var(--meeting-progress-color);
font-weight: 500;
line-height: var(--meeting-card-title-line-height);
}
.meeting-card-v2__status-text span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.meeting-card-v2__retry.ant-btn {
height: var(--meeting-card-chip-height);
flex-shrink: 0;
margin-left: 2px;
padding-inline: 0;
font-size: var(--meeting-card-meta-font-size);
font-weight: 500;
line-height: var(--meeting-card-chip-line-height);
}
.meeting-card-v2__meta {
flex-wrap: wrap;
gap: clamp(6px, 3cqw, 12px);
color: #9095a1;
font-size: var(--meeting-card-meta-font-size);
}
.meeting-card-v2__meta-item {
min-width: 0;
gap: 4px;
}
.meeting-card-v2__meta-item span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.meeting-card-v2__meta-item .anticon {
color: #9095a1;
font-size: var(--meeting-card-meta-icon-size);
}
.meeting-card-v2__footer {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: clamp(5px, 2.4cqw, 10px);
min-height: calc(var(--meeting-card-chip-height) + var(--meeting-card-footer-padding-top) + 2px);
min-width: 0;
padding-top: var(--meeting-card-footer-padding-top);
border-top: 1px solid #f0f0f0;
}
.meeting-card-v2__tags {
min-width: 0;
display: flex;
align-items: center;
flex-wrap: nowrap;
gap: clamp(3px, 1.1cqw, 4px);
overflow: hidden;
}
.meeting-card-v2__tag {
flex: 0 1 auto;
max-width: clamp(62px, 46%, 176px);
overflow: hidden;
padding: 1px clamp(5px, 1.8cqw, 7px);
border: 1px solid #e6e6e6;
border-radius: 999px;
background: #f9fafe;
color: #596275;
font-size: var(--meeting-card-chip-font-size);
font-weight: 500;
line-height: var(--meeting-card-footer-tag-line-height);
text-overflow: ellipsis;
white-space: nowrap;
}
.meeting-card-v2__tag-empty {
color: #bfbfbf;
font-size: var(--meeting-card-chip-font-size);
}
.meeting-card-v2__owner {
max-width: clamp(72px, 34cqw, 140px);
height: var(--meeting-card-chip-height);
flex: 0 1 auto;
justify-content: center;
gap: clamp(3px, 1.3cqw, 5px);
overflow: hidden;
padding: 0 clamp(5px, 1.8cqw, 8px);
border: 1px solid #e6e6e6;
border-radius: 999px;
color: #596275;
background: #fff;
font-size: var(--meeting-card-chip-font-size);
font-weight: 500;
white-space: nowrap;
}
.meeting-card-v2__owner .anticon {
flex-shrink: 0;
color: #9095a1;
font-size: var(--meeting-card-status-icon-size);
}
.meeting-card-v2__owner span {
overflow: hidden;
text-overflow: ellipsis;
}
.meetings-status-filter {
width: 170px;
}
.meetings-status-filter .ant-select-selector {
display: flex;
align-items: center;
}
.meetings-status-filter__suffix {
color: #8c8c8c;
}
.meetings-search-input {
width: 240px;
}
.meetings-search-input .ant-input-group,
.meetings-search-input .ant-input-affix-wrapper,
.meetings-search-input .ant-input-search-button {
height: 32px;
}
.meetings-search-input .ant-input-affix-wrapper {
display: inline-flex;
align-items: center;
}
.meetings-status-filter-dot {
width: 8px;
height: 8px;
flex-shrink: 0;
border-radius: 50%;
}
.meetings-list-table.ant-table-wrapper,
.meetings-list-table.ant-table-wrapper .ant-spin-nested-loading,
.meetings-list-table.ant-table-wrapper .ant-spin-container,
.meetings-list-table.ant-table-wrapper .ant-table,
.meetings-list-table.ant-table-wrapper .ant-table-container {
height: 100%;
min-height: 0;
}
.meetings-list-table.ant-table-wrapper .ant-table-body {
max-height: none !important;
}
.meetings-list-table .ant-table-row {
cursor: pointer;
}
.meetings-table__title-link {
padding: 0;
border: 0;
background: transparent;
color: #1677ff;
font: inherit;
font-weight: 500;
cursor: pointer;
text-align: left;
}
.meetings-table__source-tag.ant-tag {
margin: 0;
font-size: 11px;
}
.meetings-table__participants {
max-width: 180px;
}
.meetings-page .status-bar-active {
animation: statusBreathing 2s infinite ease-in-out;
}
.meetings-page .ant-btn-primary:not(.ant-btn-dangerous) {
border-color: #3c70f5;
background: #3c70f5;
box-shadow: none;
}
.meetings-page .ant-btn-primary:not(.ant-btn-dangerous):hover {
border-color: #2458d9;
background: #2458d9;
}
@keyframes statusBreathing {
0% {
opacity: 1;
}
50% {
opacity: 0.4;
}
100% {
opacity: 1;
}
}
@media (min-height: 900px) {
@container (min-width: 360px) {
.meeting-card-v2--spacious .ant-card-body {
row-gap: 12px;
padding: 16px 16px !important;
}
.meeting-card-v2--spacious .meeting-card-v2__body {
gap: 8px;
}
.meeting-card-v2--spacious .meeting-card-v2__footer {
--meeting-card-footer-padding-top: 11px;
}
}
}
@container (max-width: 340px) {
.meeting-card-v2__source {
max-width: clamp(54px, 28cqw, 84px);
}
.meeting-card-v2__actions .ant-btn {
padding-inline: 0;
}
.meeting-card-v2__status-text {
line-height: clamp(16px, 5cqw, 21px);
}
}
@container (max-width: 260px) {
.meeting-card-v2__footer {
grid-template-columns: minmax(0, 1fr);
}
.meeting-card-v2__owner {
justify-self: start;
}
.meeting-card-v2__owner {
max-width: 100%;
}
}
@container (max-width: 1320px) {
.meetings-card-scroll .ant-list-items {
--meeting-card-columns: 3;
--meeting-card-rows: 4;
}
.meeting-card-v2--spacious .ant-card-body {
row-gap: 8px;
padding: 12px 14px !important;
}
}
@container (max-width: 900px) {
.meetings-card-scroll .ant-list-items {
--meeting-card-columns: 2;
--meeting-card-rows: 6;
}
}
@container (max-width: 560px) {
.meetings-card-scroll .ant-list-items {
--meeting-card-columns: 1;
--meeting-card-rows: 12;
}
}
@media (max-height: 820px) {
.meetings-page.page-container {
padding: 10px;
}
.meetings-page .section-card {
padding: 12px;
}
.meetings-page .section-card__description {
padding-bottom: 10px;
line-height: 21px;
}
.meetings-page .section-card__content {
padding: 6px;
}
.meetings-list-panel.data-list-panel {
padding: 10px 12px 8px;
}
.meetings-list-toolbar {
margin-bottom: 8px;
}
.meetings-toolbar-stack {
gap: 8px;
}
.meetings-card-scroll {
--meeting-card-grid-min-height: 164px;
--meeting-card-grid-gap: 8px;
padding: 4px 6px 8px;
}
}
@media (max-width: 768px) {
.meetings-toolbar-primary {
align-items: stretch;
flex-direction: column;
}
.meetings-primary-actions {
width: 100%;
}
.meetings-display-switch,
.meetings-scope-switch {
width: 100%;
}
.meetings-display-switch .ant-radio-button-wrapper,
.meetings-scope-switch .ant-radio-button-wrapper {
text-align: center;
flex: 1;
}
.meetings-display-switch,
.meetings-scope-switch {
display: flex;
}
.meetings-filter-actions,
.meetings-filter-actions .ant-input-search,
.meetings-filter-actions .ant-select {
width: 100% !important;
}
.meetings-card-scroll .ant-list-items {
--meeting-card-columns: 1;
--meeting-card-rows: 12;
grid-template-columns: 1fr;
}
.meeting-card-v2 .ant-card-body {
padding: 14px !important;
}
}
.meetings-card-scroll--adaptive .ant-list-items {
grid-template-columns: repeat(var(--meeting-card-adaptive-columns, var(--meeting-card-columns)), minmax(0, 1fr));
grid-auto-rows: var(--meeting-card-grid-min-height);
grid-template-rows: none;
align-content: start;
}