1183 lines
25 KiB
CSS
1183 lines
25 KiB
CSS
/* 管理后台视口边界:document 不滚动,各个工作区和面板独立滚动。 */
|
|
:root {
|
|
--app-ink: #191919;
|
|
--app-muted: #707070;
|
|
--app-body: #ededed;
|
|
--app-surface: #ffffff;
|
|
--app-subtle: #f7f7f7;
|
|
--app-border: #e5e5e5;
|
|
--app-inverse: #ffffff;
|
|
--app-accent: #07c160;
|
|
--app-accent-hover: #2dcb79;
|
|
--app-accent-text: #087c42;
|
|
--app-on-accent: #082b17;
|
|
--app-selected: #e4f4e9;
|
|
--app-shadow: #00000018;
|
|
--app-danger: #a93232;
|
|
--app-success: #087c42;
|
|
}
|
|
:root[data-theme='dark'] {
|
|
--app-ink: #d9d9d9;
|
|
--app-muted: #a3a3a3;
|
|
--app-body: #111111;
|
|
--app-surface: #191919;
|
|
--app-subtle: #232323;
|
|
--app-border: #333333;
|
|
--app-inverse: #111111;
|
|
--app-accent-text: #5cd693;
|
|
--app-selected: #173527;
|
|
--app-shadow: #00000055;
|
|
--app-danger: #fa7373;
|
|
--app-success: #5cd693;
|
|
}
|
|
html,
|
|
body,
|
|
#app,
|
|
.app-provider {
|
|
height: 100%;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
}
|
|
html {
|
|
background: var(--app-body);
|
|
}
|
|
body {
|
|
margin: 0;
|
|
}
|
|
.admin-layout {
|
|
height: 100dvh;
|
|
overflow: hidden;
|
|
}
|
|
.admin-main {
|
|
min-width: 0;
|
|
height: 100%;
|
|
}
|
|
.admin-main > .n-layout-scroll-container {
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
}
|
|
.admin-sider {
|
|
height: 100%;
|
|
}
|
|
/* Naive 菜单背景默认左右内缩 8px;只铺满导航行,不改图标与文字缩进。 */
|
|
.admin-sider .n-menu .n-menu-item-content::before {
|
|
left: 0;
|
|
right: 0;
|
|
border-radius: 0;
|
|
}
|
|
.admin-brand {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
height: 74px;
|
|
padding: 0 20px;
|
|
color: var(--app-ink);
|
|
white-space: nowrap;
|
|
}
|
|
.admin-brand > svg {
|
|
flex-shrink: 0;
|
|
}
|
|
.admin-brand span {
|
|
font-size: 15px;
|
|
font-weight: 600;
|
|
}
|
|
.admin-brand small {
|
|
display: block;
|
|
font-size: 8px;
|
|
letter-spacing: 1px;
|
|
font-weight: 400;
|
|
color: var(--app-muted);
|
|
margin-top: 3px;
|
|
}
|
|
.admin-topbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
flex-shrink: 0;
|
|
height: 44px;
|
|
padding: 0 20px;
|
|
gap: 12px;
|
|
}
|
|
.theme-select {
|
|
width: 120px;
|
|
}
|
|
.admin-content {
|
|
flex: 1;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
outline: none;
|
|
}
|
|
.project-frame {
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
}
|
|
.project-header {
|
|
flex-shrink: 0;
|
|
padding: 9px 20px;
|
|
background: var(--app-surface);
|
|
border-bottom: 1px solid var(--app-border);
|
|
}
|
|
.project-header .n-page-header__main,
|
|
.project-header .n-page-header__title {
|
|
min-width: 0;
|
|
}
|
|
.project-title {
|
|
max-width: min(58vw, 980px);
|
|
font-size: 16px;
|
|
font-weight: 600;
|
|
}
|
|
.project-notices.n-scrollbar {
|
|
flex-shrink: 0;
|
|
height: auto;
|
|
max-height: 100px;
|
|
overflow: hidden;
|
|
}
|
|
.project-notices-content {
|
|
padding: 8px 24px;
|
|
display: grid;
|
|
gap: 5px;
|
|
}
|
|
.project-notices .n-alert {
|
|
padding: 7px 12px;
|
|
font-size: 12px;
|
|
}
|
|
.project-view {
|
|
flex: 1;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
}
|
|
.workspace-page {
|
|
position: relative;
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
}
|
|
.workspace-heading-scroll.n-scrollbar {
|
|
flex-shrink: 0;
|
|
height: auto;
|
|
max-height: min(35dvh, 260px);
|
|
overflow: hidden;
|
|
}
|
|
.workspace-heading {
|
|
padding: 16px 24px 12px;
|
|
}
|
|
/* 常用工具固定在滚动区外;低频操作使用局部抽屉,不叠加占高面板。 */
|
|
.content-first-workspace .workspace-heading {
|
|
padding: 8px 20px;
|
|
}
|
|
.content-first-workspace .workspace-split {
|
|
padding: 0 20px 12px;
|
|
gap: 8px;
|
|
}
|
|
.content-first-workspace .workspace-scroll-content {
|
|
padding: 0 20px 16px;
|
|
}
|
|
.workspace-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 8px 16px;
|
|
min-height: 34px;
|
|
}
|
|
.toolbar-episode {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
flex: 0 1 340px;
|
|
min-width: 180px;
|
|
font-size: 12px;
|
|
}
|
|
.toolbar-episode > span {
|
|
flex-shrink: 0;
|
|
color: var(--app-muted);
|
|
}
|
|
.toolbar-episode .n-select {
|
|
min-width: 0;
|
|
}
|
|
.toolbar-metrics,
|
|
.toolbar-summary {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 8px 16px;
|
|
color: var(--app-muted);
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
}
|
|
.toolbar-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
margin-left: auto;
|
|
}
|
|
.toolbar-type-filter {
|
|
width: 152px;
|
|
}
|
|
.workspace-tools-drawer {
|
|
max-width: 100%;
|
|
}
|
|
.workspace-tools-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
width: 100%;
|
|
font-size: 15px;
|
|
}
|
|
.workspace-tools-body {
|
|
padding: 20px;
|
|
}
|
|
/* 身份说明与折叠入口分开,避免正文紧贴下一组操作。 */
|
|
.identity-tools-intro {
|
|
margin-bottom: 24px;
|
|
}
|
|
.workspace-tools-body .storyboard-controls,
|
|
.workspace-tools-body .production-controls {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
|
gap: 16px;
|
|
margin-block: 20px;
|
|
}
|
|
.workspace-tools-body .storyboard-coverage {
|
|
margin-block: 20px;
|
|
}
|
|
.workspace-tools-body .generation-row {
|
|
display: block;
|
|
}
|
|
.workspace-tools-body .generation-row > div + div {
|
|
margin-top: 14px;
|
|
}
|
|
.workspace-tools-body .production-pipeline {
|
|
grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
|
|
}
|
|
.workspace-inline-status {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
gap: 8px 16px;
|
|
padding: 7px 12px;
|
|
flex-shrink: 0;
|
|
border: 1px solid var(--app-border);
|
|
border-radius: 4px;
|
|
background: var(--app-subtle);
|
|
font-size: 12px;
|
|
}
|
|
.confirm-action {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
max-width: 100%;
|
|
}
|
|
.production-pipeline-card > .confirm-action {
|
|
margin-block: 16px 4px;
|
|
}
|
|
.gallery-workspace-page .form-image-filter-region {
|
|
margin-block: 10px 0;
|
|
}
|
|
.workspace-heading h2 {
|
|
font-size: 16px;
|
|
}
|
|
.workspace-heading .text-sm {
|
|
font-size: 12px;
|
|
}
|
|
.workspace-heading .production-controls {
|
|
gap: 12px;
|
|
}
|
|
.workspace-heading .n-input-number {
|
|
width: 100%;
|
|
}
|
|
.workspace-scroll {
|
|
flex: 1;
|
|
min-height: 0;
|
|
}
|
|
.workspace-scroll-content {
|
|
padding: 4px 24px 24px;
|
|
}
|
|
.workspace-scroll > .n-scrollbar-container {
|
|
overscroll-behavior: contain;
|
|
}
|
|
.workspace-split {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
padding: 4px 24px 20px;
|
|
gap: 12px;
|
|
}
|
|
.workspace-split > .my-6 {
|
|
margin: 0;
|
|
flex-shrink: 0;
|
|
}
|
|
.workspace-feedback.n-scrollbar {
|
|
flex-shrink: 0;
|
|
height: auto;
|
|
max-height: min(24dvh, 160px);
|
|
overflow: hidden;
|
|
}
|
|
.workspace-feedback .n-alert + .n-alert {
|
|
margin-top: 8px;
|
|
}
|
|
.script-section {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 0;
|
|
}
|
|
.script-section > :first-child {
|
|
flex-shrink: 0;
|
|
}
|
|
.script-section > :first-child .n-tabs {
|
|
flex: 1;
|
|
min-width: 220px;
|
|
width: auto;
|
|
}
|
|
.script-section .content-with-history {
|
|
flex: 1;
|
|
height: auto;
|
|
min-height: 0;
|
|
}
|
|
.script-workspace-page .workspace-split > :not(.script-section) {
|
|
flex-shrink: 0;
|
|
}
|
|
.storyboard-workspace-page .storyboard-workspace {
|
|
flex: 1;
|
|
height: auto;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
}
|
|
.storyboard-coverage {
|
|
flex-shrink: 0;
|
|
}
|
|
.overview-content {
|
|
padding-bottom: 8px;
|
|
}
|
|
.workspace-loading {
|
|
display: grid;
|
|
place-content: center;
|
|
height: 100%;
|
|
}
|
|
.production-workspace,
|
|
.identity-workspace {
|
|
flex: 1;
|
|
min-height: 0;
|
|
align-items: stretch;
|
|
overflow: hidden;
|
|
}
|
|
.production-workspace,
|
|
.identity-workspace,
|
|
.storyboard-workspace {
|
|
grid-template-columns: clamp(240px, 22%, 280px) minmax(0, 1fr);
|
|
}
|
|
.production-shot-list {
|
|
max-height: none;
|
|
overflow: hidden;
|
|
min-height: 0;
|
|
}
|
|
.production-workspace > article {
|
|
overflow: hidden;
|
|
min-height: 0;
|
|
overscroll-behavior: contain;
|
|
}
|
|
.identity-workspace > div {
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
overscroll-behavior: contain;
|
|
}
|
|
.identity-subject-list {
|
|
max-height: none;
|
|
min-height: 0;
|
|
flex: 1;
|
|
}
|
|
.storyboard-workspace {
|
|
height: clamp(360px, 65dvh, 850px);
|
|
min-height: 0;
|
|
}
|
|
.storyboard-workspace > article,
|
|
.storyboard-workspace .shot-list {
|
|
overflow: hidden;
|
|
min-height: 0;
|
|
height: 100%;
|
|
max-height: none;
|
|
}
|
|
/* 目录统一为固定标题/筛选区和独立滚动列表;不再依赖按钮的默认行高与内边距。 */
|
|
.directory-panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
background: var(--app-subtle);
|
|
}
|
|
.directory-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap;
|
|
flex-shrink: 0;
|
|
gap: 8px;
|
|
padding: 18px 16px 14px;
|
|
font-size: 11px;
|
|
color: var(--app-muted);
|
|
}
|
|
.directory-heading h3 {
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: var(--app-ink);
|
|
}
|
|
.directory-heading h3 span {
|
|
margin-left: 8px;
|
|
font-size: 11px;
|
|
font-weight: 400;
|
|
color: var(--app-muted);
|
|
}
|
|
.directory-filters {
|
|
display: grid;
|
|
gap: 10px;
|
|
padding: 0 12px 12px;
|
|
flex-shrink: 0;
|
|
border-bottom: 1px solid var(--app-border);
|
|
}
|
|
.directory-filters > * {
|
|
min-width: 0;
|
|
}
|
|
.directory-scroll {
|
|
flex: 1;
|
|
}
|
|
.directory-list-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
padding: 8px 0 16px;
|
|
}
|
|
.directory-group-heading {
|
|
flex-shrink: 0;
|
|
padding: 14px 14px 2px;
|
|
font:
|
|
11px/1.6 ui-monospace,
|
|
monospace;
|
|
color: var(--app-muted);
|
|
}
|
|
.directory-group-heading:first-child {
|
|
padding-top: 2px;
|
|
}
|
|
.n-button.directory-item {
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
width: 100%;
|
|
height: auto;
|
|
min-height: 88px;
|
|
padding: 12px 14px;
|
|
border-radius: 0;
|
|
white-space: normal;
|
|
text-align: left;
|
|
}
|
|
.n-button.directory-item .n-button__content {
|
|
display: block;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
.directory-item-body {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 7px;
|
|
min-width: 0;
|
|
}
|
|
.directory-item-eyebrow {
|
|
font:
|
|
11px/1.5 ui-monospace,
|
|
monospace;
|
|
color: var(--app-muted);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.directory-item-title {
|
|
font-size: 13px;
|
|
line-height: 1.7;
|
|
font-weight: 500;
|
|
color: var(--app-ink);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.directory-item-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 6px 8px;
|
|
color: var(--app-muted);
|
|
font-size: 11px;
|
|
line-height: 1.7;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.directory-status {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
padding: 1px 5px;
|
|
border: 1px solid var(--app-border);
|
|
border-radius: 3px;
|
|
}
|
|
.directory-status svg {
|
|
flex-shrink: 0;
|
|
}
|
|
.n-button.directory-item.selected {
|
|
background: var(--app-selected);
|
|
box-shadow: inset 3px 0 var(--app-accent);
|
|
}
|
|
.n-button.directory-item:focus-visible {
|
|
outline: 2px solid var(--app-accent);
|
|
outline-offset: -2px;
|
|
}
|
|
/* Tabs 的默认整行宽度限制在左侧网格内,导出按钮始终处于同一行右端。 */
|
|
.result-toolbar {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 16px;
|
|
}
|
|
.result-toolbar > .n-tabs {
|
|
min-width: 0;
|
|
}
|
|
.result-toolbar > .n-button {
|
|
justify-self: end;
|
|
white-space: nowrap;
|
|
}
|
|
.result-toolbar .n-tabs-tab__label {
|
|
display: inline-flex;
|
|
gap: 6px;
|
|
}
|
|
/* 筛选按内容区的实际宽度换行,避免侧栏展开后下拉框把其他控件挤到下一行。 */
|
|
.form-image-filter-region {
|
|
container-type: inline-size;
|
|
margin-block: 16px;
|
|
}
|
|
.form-image-filters {
|
|
display: grid;
|
|
grid-template-columns: minmax(200px, 360px) 152px minmax(260px, 1fr) auto;
|
|
align-items: center;
|
|
gap: 12px 16px;
|
|
}
|
|
.form-image-filters > * {
|
|
min-width: 0;
|
|
}
|
|
.filter-toggles {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 10px 16px;
|
|
font-size: 12px;
|
|
}
|
|
.filter-toggles .n-checkbox__label {
|
|
white-space: nowrap;
|
|
}
|
|
.filter-result-count {
|
|
justify-self: end;
|
|
color: var(--app-muted);
|
|
font-size: 12px;
|
|
white-space: nowrap;
|
|
}
|
|
@container (max-width: 900px) {
|
|
.form-image-filters {
|
|
grid-template-columns: minmax(0, 1fr) 152px;
|
|
}
|
|
}
|
|
@container (max-width: 460px) {
|
|
.form-image-filters {
|
|
grid-template-columns: minmax(0, 1fr) 120px;
|
|
column-gap: 10px;
|
|
}
|
|
}
|
|
.content-with-history {
|
|
height: clamp(360px, 66dvh, 850px);
|
|
min-height: 0;
|
|
grid-template-columns: minmax(0, 1fr) 207px;
|
|
}
|
|
.content-with-history > main,
|
|
.content-with-history > aside {
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
overscroll-behavior: contain;
|
|
}
|
|
/* 拆解结果使用剩余高度,不能再用视口比例定高后隐藏长列表。 */
|
|
.breakdown-results-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
gap: 8px;
|
|
}
|
|
.breakdown-results-section > .result-toolbar {
|
|
flex-shrink: 0;
|
|
}
|
|
.breakdown-results-section > .content-with-history {
|
|
flex: 1;
|
|
height: auto;
|
|
min-height: 0;
|
|
grid-template-rows: minmax(0, 1fr);
|
|
}
|
|
.breakdown-results-scroll .n-scrollbar-content {
|
|
overflow-wrap: anywhere;
|
|
}
|
|
/* 连续阅读区保留双栏,执行记录按需展开,不挤占默认阅读宽度。 */
|
|
.script-section .n-tabs-tab__label {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
.script-section .content-with-history.history-hidden {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: minmax(0, 1fr);
|
|
}
|
|
.episode-reader {
|
|
display: grid;
|
|
grid-template-columns: clamp(190px, 22%, 240px) minmax(0, 1fr);
|
|
height: 100%;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
container-type: inline-size;
|
|
}
|
|
.reader-directory {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
background: var(--app-subtle);
|
|
border-right: 1px solid var(--app-border);
|
|
}
|
|
.reader-directory-heading {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
flex-shrink: 0;
|
|
gap: 8px;
|
|
padding: 22px 20px 14px;
|
|
font-size: 13px;
|
|
}
|
|
.reader-directory-heading h3 {
|
|
font-weight: 600;
|
|
}
|
|
.reader-directory-heading span {
|
|
font-size: 11px;
|
|
color: var(--app-muted);
|
|
white-space: nowrap;
|
|
}
|
|
.reader-directory-scroll {
|
|
flex: 1;
|
|
}
|
|
.reader-directory-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
padding: 4px 0 18px;
|
|
}
|
|
.n-button.reader-episode-link {
|
|
flex-shrink: 0;
|
|
width: 100%;
|
|
height: auto;
|
|
min-height: 64px;
|
|
padding: 12px 14px;
|
|
border-radius: 0;
|
|
color: var(--app-muted);
|
|
white-space: normal;
|
|
text-align: left;
|
|
}
|
|
.n-button.reader-episode-link .n-button__content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 5px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
}
|
|
.reader-episode-label {
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
line-height: 1.5;
|
|
}
|
|
.reader-episode-title {
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.n-button.reader-episode-link.active {
|
|
background: var(--app-selected);
|
|
color: var(--app-accent-text);
|
|
box-shadow: inset 3px 0 var(--app-accent);
|
|
}
|
|
.reader-page {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
background: var(--app-surface);
|
|
}
|
|
.reader-scroll .n-scrollbar-container:focus-visible {
|
|
outline: 2px solid var(--app-accent);
|
|
outline-offset: -3px;
|
|
}
|
|
.reader-content {
|
|
/* 正文紧邻目录左对齐,保留阅读行宽,不在宽屏内容区居中。 */
|
|
max-width: 900px;
|
|
margin-inline: 0;
|
|
padding: 32px;
|
|
text-align: left;
|
|
}
|
|
.reader-chapter + .reader-chapter {
|
|
margin-top: 48px;
|
|
border-top: 1px solid var(--app-border);
|
|
padding-top: 36px;
|
|
}
|
|
.reader-chapter:last-child {
|
|
/* 末集较短时仍可定位到阅读线,不必把倒数第二集误认为当前集。 */
|
|
min-height: max(160px, calc(var(--reader-height) - 64px));
|
|
}
|
|
.reader-chapter-heading {
|
|
margin-bottom: 24px;
|
|
}
|
|
.reader-chapter-heading p {
|
|
color: var(--app-muted);
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
margin-bottom: 10px;
|
|
}
|
|
.reader-chapter-heading h2 {
|
|
font-size: clamp(18px, 2cqw, 24px);
|
|
font-weight: 600;
|
|
line-height: 1.6;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
@media (max-width: 1000px) {
|
|
.episode-reader {
|
|
grid-template-columns: 180px minmax(0, 1fr);
|
|
}
|
|
}
|
|
@media (max-width: 600px) {
|
|
.episode-reader {
|
|
grid-template-columns: 112px minmax(0, 1fr);
|
|
}
|
|
.reader-directory-heading {
|
|
padding: 16px 12px 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.n-button.reader-episode-link {
|
|
padding: 12px 10px;
|
|
}
|
|
.reader-content {
|
|
padding-inline: 18px;
|
|
}
|
|
}
|
|
/* 面板只负责尺寸与裁切;滚动和深浅主题滚动条统一交给 Naive UI。 */
|
|
.panel-scroll.n-scrollbar {
|
|
height: 100%;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
}
|
|
.n-scrollbar > .n-scrollbar-container {
|
|
overscroll-behavior: contain;
|
|
}
|
|
.production-shot-list,
|
|
.production-detail,
|
|
.storyboard-detail,
|
|
.shot-list,
|
|
.content-with-history > main {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
}
|
|
.history-panel,
|
|
.production-shot-list,
|
|
.shot-list {
|
|
padding: 0;
|
|
}
|
|
.history-content {
|
|
padding: 23px 21px;
|
|
}
|
|
.image-history.n-scrollbar,
|
|
.table-scroll.n-scrollbar {
|
|
height: auto;
|
|
overflow: hidden;
|
|
}
|
|
.image-history.n-scrollbar {
|
|
width: 100%;
|
|
max-width: 100%;
|
|
min-width: 0;
|
|
}
|
|
.image-history-heading {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 6px 16px;
|
|
margin-block: 16px 8px;
|
|
font-size: 12px;
|
|
}
|
|
.image-history-content {
|
|
display: flex;
|
|
gap: 12px;
|
|
padding: 4px 4px 12px;
|
|
width: max-content;
|
|
}
|
|
.code-scroll.n-scrollbar {
|
|
height: auto;
|
|
max-height: 420px;
|
|
overflow: hidden;
|
|
}
|
|
.code-scroll .json-view,
|
|
.code-scroll .storyboard-json {
|
|
max-height: none;
|
|
overflow: visible;
|
|
}
|
|
.project-table-area {
|
|
flex: 1;
|
|
min-height: 0;
|
|
}
|
|
.project-data-table {
|
|
height: 100%;
|
|
}
|
|
.project-data-table .n-data-table-base-table {
|
|
flex: 1;
|
|
min-height: 0;
|
|
}
|
|
.project-index-heading {
|
|
margin: 0;
|
|
}
|
|
.project-index-heading h1 {
|
|
font-size: 22px;
|
|
font-weight: 600;
|
|
}
|
|
.project-index-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap;
|
|
gap: 12px;
|
|
margin-bottom: 4px;
|
|
}
|
|
.project-search {
|
|
width: 240px;
|
|
}
|
|
.project-name-cell {
|
|
display: block;
|
|
min-width: 0;
|
|
}
|
|
.project-name-cell strong,
|
|
.project-name-cell small {
|
|
display: block;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
.project-name-cell small {
|
|
color: var(--app-muted);
|
|
margin-top: 4px;
|
|
font-size: 11px;
|
|
}
|
|
.app-dialog {
|
|
max-width: calc(100vw - 32px);
|
|
max-height: calc(100dvh - 32px);
|
|
}
|
|
.app-dialog .n-card-header {
|
|
flex-shrink: 0;
|
|
}
|
|
.dialog-body-scroll {
|
|
max-height: calc(100dvh - 154px);
|
|
}
|
|
.app-dialog .n-card__content {
|
|
min-height: 0;
|
|
}
|
|
.dialog-footer {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
padding-top: 16px;
|
|
}
|
|
.asset-image .n-image {
|
|
width: 100%;
|
|
height: 100%;
|
|
min-height: 0;
|
|
min-width: 0;
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
.asset-image .n-image img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
/* 预览尺寸不随原图分辨率增长,历史缩略图也不能被按钮默认宽度覆盖。 */
|
|
.asset-image.asset-image-preview {
|
|
height: min(42dvh, 420px);
|
|
min-height: 0;
|
|
aspect-ratio: auto;
|
|
}
|
|
.n-button__content {
|
|
gap: 6px;
|
|
}
|
|
.n-button:disabled {
|
|
opacity: 1;
|
|
}
|
|
.n-button.image-history-item {
|
|
width: 128px;
|
|
min-width: 128px;
|
|
max-width: 128px;
|
|
flex: 0 0 128px;
|
|
height: auto;
|
|
padding: 6px;
|
|
white-space: normal;
|
|
}
|
|
.n-button.image-history-item.selected {
|
|
background: var(--app-selected);
|
|
box-shadow: inset 0 0 0 2px var(--app-accent);
|
|
}
|
|
.n-button.image-history-item .n-button__content {
|
|
display: block;
|
|
width: 100%;
|
|
text-align: left;
|
|
overflow: hidden;
|
|
}
|
|
.image-history-item .asset-image {
|
|
height: 88px;
|
|
min-height: 0;
|
|
aspect-ratio: auto;
|
|
}
|
|
.image-history-label {
|
|
display: block;
|
|
margin-top: 6px;
|
|
font-size: 11px;
|
|
line-height: 1.5;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.image-history-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 4px;
|
|
margin-top: 6px;
|
|
color: var(--app-muted);
|
|
font-size: 10px;
|
|
line-height: 1.5;
|
|
}
|
|
/* 选角进度按抽屉实际宽度排列;按钮尺寸显式覆盖组件默认值。 */
|
|
.casting-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
|
|
gap: 12px;
|
|
margin-top: 24px;
|
|
padding-top: 20px;
|
|
border-top: 1px solid var(--app-border);
|
|
}
|
|
.n-button.casting-item {
|
|
width: 100%;
|
|
min-width: 0;
|
|
height: auto;
|
|
min-height: 76px;
|
|
padding: 12px 14px;
|
|
white-space: normal;
|
|
text-align: left;
|
|
background: var(--app-surface);
|
|
}
|
|
.n-button.casting-item.selected {
|
|
background: var(--app-selected);
|
|
box-shadow: inset 3px 0 0 var(--app-accent);
|
|
}
|
|
.n-button.casting-item .n-button__content {
|
|
display: flex;
|
|
width: 100%;
|
|
min-width: 0;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
text-align: left;
|
|
}
|
|
.casting-item-identity {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 5px;
|
|
min-width: 0;
|
|
}
|
|
.casting-item-name {
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
line-height: 1.5;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.casting-item-ref {
|
|
color: var(--app-muted);
|
|
font-family: ui-monospace, monospace;
|
|
font-size: 11px;
|
|
line-height: 1.5;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.casting-item-status {
|
|
flex-shrink: 0;
|
|
}
|
|
.search-field {
|
|
padding: 0;
|
|
border: 0;
|
|
background: transparent;
|
|
min-width: 180px;
|
|
}
|
|
.search-field input {
|
|
width: 100%;
|
|
font-size: inherit;
|
|
}
|
|
.select-control {
|
|
min-width: 130px;
|
|
}
|
|
.n-checkbox {
|
|
align-items: flex-start;
|
|
}
|
|
.n-checkbox .n-checkbox__label {
|
|
white-space: normal;
|
|
}
|
|
.n-alert {
|
|
line-height: 1.8;
|
|
}
|
|
.n-collapse.panel {
|
|
padding: 16px;
|
|
}
|
|
.n-table.project-table th {
|
|
background: var(--app-subtle);
|
|
}
|
|
.empty-state {
|
|
min-height: 200px;
|
|
padding: 40px 20px;
|
|
}
|
|
.production-video {
|
|
background: #080808;
|
|
}
|
|
.button-primary {
|
|
color: var(--app-on-accent);
|
|
}
|
|
.skip-link:focus {
|
|
z-index: 3000;
|
|
}
|
|
@media (max-width: 1000px) {
|
|
.project-title {
|
|
max-width: 44vw;
|
|
}
|
|
.production-controls {
|
|
grid-template-columns: minmax(130px, 1fr) 90px;
|
|
}
|
|
.content-with-history {
|
|
grid-template-columns: minmax(0, 1fr) 180px;
|
|
}
|
|
}
|
|
@media (max-width: 760px) {
|
|
.admin-topbar {
|
|
padding: 0 10px;
|
|
}
|
|
.admin-sider:not(.n-layout-sider--collapsed) {
|
|
position: absolute;
|
|
top: 44px;
|
|
bottom: 0;
|
|
z-index: 20;
|
|
box-shadow: 6px 0 24px var(--app-shadow);
|
|
}
|
|
.project-header {
|
|
padding: 8px 12px;
|
|
}
|
|
.project-title {
|
|
max-width: 37vw;
|
|
font-size: 14px;
|
|
}
|
|
.project-header .n-page-header__extra {
|
|
margin-left: 6px;
|
|
}
|
|
.project-header .n-tag {
|
|
display: none;
|
|
}
|
|
.workspace-heading {
|
|
padding: 12px;
|
|
}
|
|
.content-first-workspace .workspace-heading {
|
|
padding: 8px 12px;
|
|
}
|
|
.content-first-workspace .workspace-split,
|
|
.content-first-workspace .workspace-scroll-content {
|
|
padding: 0 12px 12px;
|
|
}
|
|
.toolbar-episode {
|
|
flex: 1;
|
|
}
|
|
.toolbar-actions {
|
|
gap: 8px;
|
|
}
|
|
.workspace-tools-body {
|
|
padding: 14px;
|
|
}
|
|
.workspace-scroll-content,
|
|
.workspace-split {
|
|
padding: 0 12px 12px;
|
|
}
|
|
.workspace-heading .production-controls {
|
|
grid-template-columns: minmax(100px, 1fr) 80px;
|
|
}
|
|
.production-workspace,
|
|
.storyboard-workspace {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: 184px minmax(0, 1fr);
|
|
}
|
|
.directory-panel {
|
|
height: 100%;
|
|
border-right: 0;
|
|
border-bottom: 1px solid var(--app-border);
|
|
}
|
|
.directory-heading {
|
|
padding: 12px 14px 8px;
|
|
}
|
|
.directory-list-content {
|
|
flex-direction: row;
|
|
width: max-content;
|
|
align-items: stretch;
|
|
padding-bottom: 12px;
|
|
}
|
|
.n-button.directory-item {
|
|
width: 228px;
|
|
min-height: 104px;
|
|
}
|
|
.directory-group-heading {
|
|
display: none;
|
|
}
|
|
.identity-workspace {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: 250px minmax(0, 1fr);
|
|
gap: 10px;
|
|
}
|
|
.directory-filters {
|
|
grid-template-columns: minmax(0, 1fr) 120px;
|
|
}
|
|
.storyboard-controls {
|
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
}
|
|
.content-with-history {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: minmax(0, 1fr) 130px;
|
|
}
|
|
.breakdown-results-section > .content-with-history {
|
|
grid-template-rows: minmax(0, 1fr) min(25%, 130px);
|
|
}
|
|
.history-panel {
|
|
overflow: hidden;
|
|
min-height: 0;
|
|
}
|
|
.project-search {
|
|
width: 100%;
|
|
}
|
|
.project-index-toolbar .n-radio-group {
|
|
width: 100%;
|
|
}
|
|
.production-pipeline {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|