.fenjing-shell { width: min(1480px, calc(100% - 40px)); margin: 28px auto 56px; color: var(--text, #182538); }
.fenjing-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 0 0 22px; }
.fenjing-head h1 { margin: 4px 0 6px; font-size: 26px; line-height: 1.2; }
.fenjing-head p:last-child { margin: 0; color: var(--muted, #748197); font-size: 13px; }
.fenjing-layout { display: grid; grid-template-columns: minmax(310px, 390px) minmax(0, 1fr); align-items: start; gap: 18px; }
.fenjing-sidebar, .fenjing-main { display: grid; min-width: 0; gap: 14px; }
.fenjing-panel { min-width: 0; padding: 17px; border: 1px solid var(--line, #e0e7f0); border-radius: 8px; background: var(--surface, #fff); }
.fenjing-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.fenjing-panel-head > div > span { color: var(--muted, #78869a); font-size: 9px; font-weight: 700; }
.fenjing-panel-head h2 { margin: 4px 0 0; font-size: 15px; }
.fenjing-panel-head small { color: var(--muted, #748197); font-size: 11px; }
.fenjing-field { display: grid; min-width: 0; gap: 6px; margin-top: 11px; }
.fenjing-field > span, .fenjing-shot-fields label { color: var(--muted, #64748b); font-size: 11px; font-weight: 600; }
.fenjing-field input, .fenjing-field select, .fenjing-field textarea, .fenjing-shot-fields input, .fenjing-shot-fields textarea { width: 100%; min-width: 0; min-height: 36px; padding: 8px 10px; border: 1px solid var(--line, #dce4ee); border-radius: 6px; background: var(--surface, #fff); color: var(--text, #182538); font: inherit; font-size: 12px; }
.fenjing-field textarea, .fenjing-shot-fields textarea { min-height: 74px; resize: vertical; line-height: 1.55; }
.fenjing-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
.fenjing-upload { display: grid; width: 100%; min-height: 74px; place-content: center; gap: 5px; border: 1px dashed #9fb3ce; border-radius: 7px; background: color-mix(in srgb, var(--surface, #fff) 92%, #e9f1fa); color: var(--text, #34475f); font: inherit; font-size: 12px; cursor: pointer; }
.fenjing-upload:hover { border-color: #4278ce; background: #edf4ff; }
.fenjing-upload-secondary { min-height: 38px; margin-top: 10px; border-style: solid; }
.fenjing-upload-empty, .fenjing-empty { display: grid; min-height: 76px; place-items: center; color: var(--muted, #8491a3); font-size: 11px; }
.fenjing-image-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.fenjing-image-list figure { position: relative; min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--line, #e0e7f0); border-radius: 6px; background: #f7f9fc; }
.fenjing-image-list img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.fenjing-image-list figcaption { overflow: hidden; padding: 5px 7px; color: var(--muted, #64748b); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.fenjing-image-list button, .fenjing-model-ref button { position: absolute; top: 4px; right: 4px; display: grid; width: 23px; height: 23px; place-items: center; border: 0; border-radius: 50%; background: #142033c9; color: white; font-size: 17px; cursor: pointer; }
.fenjing-model-ref { position: relative; display: flex; align-items: center; gap: 9px; margin-top: 9px; padding: 7px 34px 7px 7px; border: 1px solid var(--line, #e0e7f0); border-radius: 6px; color: var(--muted, #64748b); font-size: 10px; }
.fenjing-model-ref img { width: 48px; height: 48px; border-radius: 4px; object-fit: cover; }
.fenjing-model-ref button { top: 50%; transform: translateY(-50%); }
.fenjing-design-button { width: 100%; margin-top: 14px; }
.fenjing-error { min-height: 16px; margin: 8px 0 0; color: #bd4653; font-size: 11px; }
.fenjing-shot-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.fenjing-frame-mode { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding: 10px 12px; border: 1px solid var(--line, #e0e7f0); border-radius: 7px; background: color-mix(in srgb, var(--surface, #fff) 94%, var(--blue, #2d6cdf)); }
.fenjing-frame-mode > span { color: var(--text, #182538); font-size: 11px; font-weight: 650; }
.fenjing-frame-mode > div { display: flex; flex-wrap: wrap; gap: 6px; }
.fenjing-mode-hint { margin: 8px 0 0; color: var(--muted, #748197); font-size: 10px; }
.fenjing-frame-mode [aria-pressed="true"] { box-shadow: 0 0 0 2px color-mix(in srgb, var(--blue, #2d6cdf) 20%, transparent); }
.fenjing-actions [hidden] { display: none !important; }
.fenjing-shot { min-width: 0; padding: 11px; border: 1px solid var(--line, #e0e7f0); border-radius: 7px; background: var(--surface, #fff); }
.fenjing-shot-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.fenjing-shot-head strong { font-size: 12px; }
.fenjing-shot-head strong small { margin-left: 5px; color: var(--muted, #748197); font-size: 10px; font-weight: 400; }
.fenjing-shot-head > span { color: var(--muted, #748197); font-size: 9px; }
.fenjing-shot-head > span.done { color: #268257; }
.fenjing-shot-head > span.queued { color: var(--blue, #2d6cdf); }
.fenjing-shot-head > span.error { color: #bd4653; }
.fenjing-shot-image { display: block; width: 100%; aspect-ratio: 4 / 3; margin-bottom: 9px; border-radius: 5px; background: #eef2f7; object-fit: contain; }
.fenjing-shot-fields { display: grid; gap: 8px; }
.fenjing-shot-fields label { display: grid; gap: 5px; }
.fenjing-shot-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.fenjing-shot-grid input { min-height: 32px; padding: 6px 8px; font-size: 10px; }
.fenjing-shot-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 9px; }
.fenjing-shot-actions .error { font-size: 10px; }
.fenjing-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.fenjing-actions > span { margin-left: auto; color: var(--muted, #748197); font-size: 10px; }
.fenjing-contact-sheet { display: block; width: min(100%, 760px); max-height: 520px; margin: 14px auto 0; border: 1px solid var(--line, #e0e7f0); border-radius: 6px; object-fit: contain; }
.storyboard-admin-section { margin: 14px 0; }
.storyboard-admin-section h2 { margin: 0; font-size: 19px; }
.storyboard-admin-models { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 16px 0; }
.storyboard-model-options { display: grid; gap: 6px; max-height: 210px; overflow: auto; padding: 8px; border: 1px solid var(--line, #e0e7f0); border-radius: 6px; }
.storyboard-model-option { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 6px; border-radius: 4px; background: var(--surface, #fff); }
.storyboard-model-option span { display: grid; min-width: 0; gap: 2px; }
.storyboard-model-option strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.storyboard-model-option small { overflow: hidden; color: var(--muted, #748197); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.fenjing-shell { width: auto; max-width: 1440px; color: var(--ink, #17253d); }
.fenjing-head { margin-bottom: 24px; }
.fenjing-head h1 { margin: 0; font-size: 30px; line-height: 1.2; letter-spacing: 0; }
.fenjing-head p:last-child { font-size: 13px; }
.fenjing-layout { grid-template-columns: minmax(300px, 370px) minmax(0, 1fr); gap: 18px; }
.fenjing-sidebar { gap: 10px; }
.fenjing-panel { padding: 16px; border-color: var(--line, #e0e7f0); border-radius: 10px; }
.fenjing-panel-head h2 { font-size: 14px; }
.fenjing-panel-head > div > span { color: var(--blue, #2d6cdf); }
.fenjing-sidebar .fenjing-panel { padding: 12px; }
.fenjing-sidebar .fenjing-panel-head { margin-bottom: 9px; }
.fenjing-sidebar .fenjing-panel-head h2 { font-size: 13px; }
.fenjing-dynamic-fields .batch-field { margin-bottom: 7px; }
.fenjing-dynamic-fields .batch-field label { margin-bottom: 3px; font-size: 9px; }
.fenjing-dynamic-fields .batch-field input, .fenjing-dynamic-fields .batch-field textarea, .fenjing-dynamic-fields .batch-field select { padding: 6px 8px; font-size: 10px; }
.fenjing-dynamic-fields .batch-field textarea { min-height: 46px; }
.fenjing-model-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 8px; }
.fenjing-model-fields .batch-field { min-width: 0; }
.fenjing-design-button { min-height: 38px; }
.fenjing-error:not(:empty) { padding: 8px 10px; border: 1px solid color-mix(in srgb, var(--danger, #c44755) 22%, transparent); border-radius: 6px; background: color-mix(in srgb, var(--danger, #c44755) 6%, var(--surface, #fff)); }
.fenjing-upload { color: var(--muted, #60718b); }
.fenjing-upload:hover { border-color: var(--blue, #2d6cdf); background: var(--blue-soft, #edf4ff); }
[data-theme="dark"] .fenjing-upload:hover { background: #1f3553; }
@media (max-width: 700px) {
  .fenjing-shell { width: min(100% - 24px, 620px); padding: 18px 0 36px; }
  .fenjing-head h1 { font-size: 23px; }
  .fenjing-layout { grid-template-columns: 1fr; }
  .fenjing-sidebar .fenjing-panel { padding: 13px; }
  .fenjing-model-fields { grid-template-columns: 1fr; }
}
[data-theme="dark"] .fenjing-upload:hover { background: #1f3553; }
[data-theme="dark"] .fenjing-shot, [data-theme="dark"] .fenjing-image-list figure { background: #171f2d; }
.fenjing-shot { padding: 9px; }
.fenjing-shot-head { margin-bottom: 5px; }
.fenjing-shot-summary { display: -webkit-box; overflow: hidden; margin: 0; color: var(--muted, #748197); font-size: 10px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.fenjing-shot-media { display: flex; align-items: center; gap: 8px; margin-top: 7px; }
.fenjing-shot-image { flex: 0 0 96px; width: 96px; height: 68px; aspect-ratio: auto; margin: 0; cursor: zoom-in; }
.fenjing-shot-image-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.fenjing-shot-image-actions .btn { min-height: 28px; padding: 4px 7px; font-size: 10px; }
.fenjing-shot-details { margin-top: 6px; border-top: 1px solid var(--line, #e0e7f0); }
.fenjing-shot-details > summary { padding: 6px 0 2px; color: var(--blue, #2d6cdf); font-size: 10px; cursor: pointer; }
.fenjing-shot-details .fenjing-shot-fields { gap: 6px; padding-top: 5px; }
.fenjing-shot-fields textarea { min-height: 58px; }
.fenjing-shot-actions { margin-top: 7px; }
.fenjing-contact-sheet { cursor: zoom-in; }
.fenjing-contact-sheet-actions { display: flex; justify-content: center; gap: 6px; margin-top: 6px; }
@media (max-width: 520px) {
  .fenjing-shot-list { grid-template-columns: 1fr; }
  .fenjing-shot-media { align-items: flex-start; }
  .fenjing-shot-image { flex-basis: 84px; width: 84px; height: 62px; }
}
@media (max-width: 900px) { .fenjing-layout { grid-template-columns: minmax(270px, 340px) minmax(0, 1fr); } .fenjing-shot-list { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .fenjing-shell { width: min(100% - 24px, 620px); margin: 18px auto 36px; } .fenjing-head { align-items: flex-start; flex-direction: column; margin-bottom: 15px; } .fenjing-head h1 { font-size: 21px; } .fenjing-layout { grid-template-columns: 1fr; gap: 12px; } .fenjing-sidebar, .fenjing-main { gap: 11px; } .fenjing-panel { padding: 13px; } .fenjing-field-grid, .fenjing-shot-list, .storyboard-admin-models { grid-template-columns: 1fr; } .fenjing-image-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } .fenjing-actions > span { width: 100%; margin-left: 0; } }
@media (max-width: 520px) { .fenjing-frame-mode { align-items: flex-start; flex-direction: column; } .fenjing-frame-mode > div { width: 100%; } .fenjing-frame-mode .btn { flex: 1; } }
.fenjing-reset-actions { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.fenjing-resetbar.batch-actionbar > div.fenjing-reset-actions { display:flex; width:auto; flex-wrap:nowrap; }
.fenjing-reset-actions .btn { min-height:36px; }
.fenjing-start-button { min-width:190px; }
.fenjing-derived-count-value { display:flex; align-items:center; min-height:36px; padding:7px 10px; border:1px solid var(--line, #dce4ee); border-radius:6px; background:var(--surface, #fff); color:var(--text, #182538); font-size:12px; font-weight:650; }
.fenjing-derived-count-hint, .fenjing-derived-count-error { display:block; margin-top:5px; color:var(--muted, #748197); font-size:10px; line-height:1.45; }
.fenjing-derived-count-error { color:var(--danger, #bd4653); }
[data-theme="dark"] .fenjing-derived-count-value { background:#101a29; }
@media (max-width:700px) {
  .fenjing-resetbar.batch-actionbar > div.fenjing-reset-actions { width:100%; }
  .fenjing-reset-actions .btn { flex:1 1 0; min-width:0; padding-inline:8px; white-space:normal; }
  .fenjing-start-button { min-width:0; }
}
