:root {
  --bg: #08101d;
  --bg-soft: #0c1524;
  --panel: #101b2d;
  --panel-strong: #142137;
  --panel-hover: #182842;
  --line: #25344d;
  --line-soft: #1d2a40;
  --text: #f4f7fb;
  --muted: #92a0b8;
  --muted-2: #66758d;
  --primary: #6d8cff;
  --primary-strong: #8aa3ff;
  --accent: #5eead4;
  --success: #45d6a0;
  --warning: #f4ba61;
  --danger: #ff7588;
  --shadow: 0 18px 48px rgba(0, 0, 0, .24);
  --radius: 16px;
  --sidebar: 244px;
  --bg-widget: var(--panel);
  --input-bg: #0c1728;
  --border-color: var(--line);
  --text-main: var(--text);
  --text-secondary: var(--muted);
  --highlight-color: rgba(94,234,212,.10);
  --primary-purple: var(--accent);
  --harmony-500: var(--accent);
  --harmony-600: #42cdb9;
  font-family: Inter, "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;
}

:root[data-theme="light"] {
  --bg: #edf2f8; --bg-soft: #e8eef6; --panel: #ffffff; --panel-strong: #f3f6fb;
  --panel-hover: #f0f4fa; --line: #cdd7e6; --line-soft: #dfe6f0; --text: #142035;
  --muted: #5f6f86; --muted-2: #8290a4; --shadow: 0 18px 48px rgba(47, 67, 98, .12);
}
:root[data-theme="light"] .sidebar { background: #f7f9fc; }
:root[data-theme="light"] .workspace { background: radial-gradient(circle at 88% -10%, rgba(109,140,255,.12), transparent 30%), var(--bg); }
:root[data-theme="light"] .topbar { background: rgba(237,242,248,.9); }
:root[data-theme="light"] .hero-main,
:root[data-theme="light"] .hero-side,
:root[data-theme="light"] .stat-card,
:root[data-theme="light"] .module-card { background: #fff; }
:root[data-theme="light"] .nav-item:hover,
:root[data-theme="light"] .nav-item.active { background: #e7edf7; color: #17243a; }
:root[data-theme="light"] .api-status { background: #fff; }
:root[data-theme="light"] input,
:root[data-theme="light"] textarea,
:root[data-theme="light"] select { background: #f8fafc; color: var(--text); }

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; color: var(--text); background: var(--bg); font-size: 16px; overflow-x: hidden; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid var(--primary); outline-offset: 2px;
}

.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) 1fr; }
.sidebar {
  position: fixed; inset: 0 auto 0 0; width: var(--sidebar); z-index: 20;
  display: flex; flex-direction: column; padding: 24px 16px 16px;
  background: #0b1422; border-right: 1px solid var(--line-soft);
}
.brand { display: flex; align-items: center; gap: 12px; padding: 0 10px 24px; }
.brand strong { display: block; font-size: 1.15rem; letter-spacing: .08em; }
.brand small { display: block; color: var(--muted-2); font-size: .65rem; margin-top: 3px; letter-spacing: .12em; }
.brand-mark { position: relative; width: 38px; height: 38px; border-radius: 12px; background: #172843; border: 1px solid #294267; overflow: hidden; }
.brand-mark span { position: absolute; width: 19px; height: 19px; left: 8px; top: 11px; transform: rotate(45deg); border: 5px solid var(--accent); border-right-color: transparent; border-bottom-color: transparent; border-radius: 4px; }
.brand-mark i { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: var(--primary); top: 8px; right: 7px; }
.nav-list { display: flex; flex-direction: column; gap: 4px; overflow-y: auto; padding-right: 2px; }
.nav-section-label { color: var(--muted-2); padding: 18px 12px 7px; font-size: .7rem; letter-spacing: .12em; }
.nav-item { width: 100%; border: 0; background: transparent; display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 11px; color: var(--muted); cursor: pointer; text-align: left; font-size: .88rem; transition: .18s ease; }
.nav-item:hover { background: #121f34; color: var(--text); }
.nav-item.active { background: #192942; color: #fff; box-shadow: inset 3px 0 0 var(--accent); }
.nav-item svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.8; flex: 0 0 auto; }
.sidebar-footer { margin-top: auto; padding-top: 18px; }
.api-status { width: 100%; display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 12px; padding: 11px; background: #101c2e; text-align: left; cursor: pointer; }
.api-status:hover { background: #142239; }
.api-status b, .api-status small { display: block; }
.api-status b { font-size: .78rem; }
.api-status small { color: var(--muted-2); font-size: .68rem; margin-top: 2px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--warning); box-shadow: 0 0 0 4px rgba(244,186,97,.1); }
.status-dot.ready { background: var(--success); box-shadow: 0 0 0 4px rgba(69,214,160,.1); }
.version { text-align: center; color: #40506a; font-size: .6rem; letter-spacing: .09em; margin-top: 14px; }

.workspace { grid-column: 2; min-width: 0; min-height: 100vh; background: radial-gradient(circle at 88% -10%, rgba(109,140,255,.09), transparent 30%), var(--bg); }
.topbar { position: sticky; top: 0; z-index: 10; min-height: 88px; padding: 20px 30px; display: flex; align-items: center; justify-content: space-between; background: rgba(8,16,29,.9); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line-soft); }
.eyebrow { margin: 0 0 3px; color: var(--accent); font-size: .66rem; letter-spacing: .16em; font-weight: 700; }
.topbar h1 { margin: 0; font-size: 1.4rem; font-weight: 650; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.task-pill, .icon-button { border: 1px solid var(--line); background: var(--panel); cursor: pointer; }
.task-pill { border-radius: 999px; padding: 9px 14px; color: var(--muted); font-size: .78rem; }
.task-pill b { color: var(--text); }
.pulse { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); margin-right: 7px; }
.icon-button { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; }
.icon-button svg { width: 18px; fill: none; stroke: var(--muted); stroke-width: 1.7; }
.page { padding: 30px; max-width: 1540px; margin: 0 auto; }
.persistent-canvas-host { display: none; }
.persistent-canvas-host.active { display: block; width: 100%; height: calc(100vh - var(--global-nav-h, 0px) - 64px); padding: 22px 28px; margin: 0; }
.persistent-canvas-host.parked { display: block; position: fixed; left: -200vw; top: 0; width: 100vw; height: 100vh; padding: 0; visibility: hidden; pointer-events: none; }
.persistent-canvas-host.parked .infinite-canvas-shell { height: 100vh; min-height: 0; }

.hero { display: grid; grid-template-columns: 1.45fr .75fr; gap: 18px; margin-bottom: 26px; }
.hero-main, .hero-side, .stat-card, .module-card { border: 1px solid var(--line-soft); background: linear-gradient(145deg, rgba(20,33,55,.96), rgba(13,24,41,.96)); box-shadow: var(--shadow); }
.hero-main { min-height: 270px; border-radius: 22px; padding: 34px; position: relative; overflow: hidden; }
.hero-main::after { content: ""; position: absolute; width: 260px; height: 260px; right: -70px; top: -75px; border-radius: 50%; border: 50px solid rgba(94,234,212,.045); box-shadow: 0 0 0 35px rgba(109,140,255,.025); }
.hero-kicker { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #2d4467; background: #102039; border-radius: 999px; padding: 7px 11px; color: #b8c8e4; font-size: .75rem; }
.hero-kicker span { width: 6px; height: 6px; background: var(--accent); border-radius: 50%; }
.hero h2 { position: relative; z-index: 1; margin: 26px 0 12px; max-width: 650px; font-size: clamp(2rem, 4vw, 3.45rem); line-height: 1.08; letter-spacing: -.04em; }
.hero h2 em { font-style: normal; color: var(--accent); }
.hero p { position: relative; z-index: 1; color: var(--muted); margin: 0; max-width: 590px; line-height: 1.75; }
.hero-actions { position: relative; z-index: 1; display: flex; gap: 10px; margin-top: 24px; }
.btn { border: 1px solid var(--line); border-radius: 11px; min-height: 42px; padding: 0 16px; cursor: pointer; background: var(--panel-strong); font-weight: 600; font-size: .86rem; }
.btn:hover { background: var(--panel-hover); }
.btn.primary { color: #07111f; border-color: var(--accent); background: var(--accent); }
.btn.primary:hover { background: #7cf4e1; }
.btn.ghost { color: var(--muted); }
.hero-side { border-radius: 22px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; }
.hero-side header { display: flex; align-items: center; justify-content: space-between; }
.hero-side h3 { margin: 0; font-size: .92rem; }
.live-tag { color: var(--success); font-size: .68rem; letter-spacing: .09em; }
.queue-empty { text-align: center; padding: 25px 0; color: var(--muted-2); }
.queue-orbit { width: 74px; height: 74px; margin: 0 auto 16px; border-radius: 50%; border: 1px solid #2e4160; position: relative; }
.queue-orbit::before { content: ""; position: absolute; width: 32px; height: 32px; border-radius: 10px; background: #1b3150; top: 20px; left: 20px; box-shadow: inset 0 0 0 1px #355175; }
.queue-empty b { display: block; color: #c4cee0; font-size: .85rem; margin-bottom: 6px; }
.queue-empty span { font-size: .75rem; }
.queue-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.queue-meta div { background: #0c1728; border: 1px solid var(--line-soft); border-radius: 11px; padding: 11px; }
.queue-meta small, .queue-meta b { display: block; }
.queue-meta small { color: var(--muted-2); font-size: .68rem; }
.queue-meta b { margin-top: 5px; font-size: .82rem; }

.section-head { display: flex; align-items: end; justify-content: space-between; margin: 0 0 14px; }
.section-head h2 { margin: 0 0 5px; font-size: 1.08rem; }
.section-head p { margin: 0; color: var(--muted-2); font-size: .78rem; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 27px; }
.stat-card { border-radius: 15px; padding: 17px 18px; box-shadow: none; }
.stat-card span { color: var(--muted); font-size: .74rem; }
.stat-card strong { display: block; font-size: 1.65rem; margin-top: 9px; letter-spacing: -.03em; }
.stat-card small { color: var(--muted-2); font-size: .7rem; }
.modules-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.module-card { position: relative; border-radius: 16px; padding: 20px; box-shadow: none; cursor: pointer; transition: transform .2s ease, border-color .2s ease, background .2s ease; overflow: hidden; }
.module-card:hover { transform: translateY(-2px); border-color: #3a5277; background: var(--panel-hover); }
.module-card .module-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: #192c49; color: var(--accent); margin-bottom: 18px; }
.module-card svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.module-card h3 { margin: 0 0 7px; font-size: .95rem; }
.module-card p { color: var(--muted); font-size: .76rem; line-height: 1.65; margin: 0; min-height: 40px; }
.module-card footer { display: flex; align-items: center; justify-content: space-between; margin-top: 18px; color: var(--muted-2); font-size: .7rem; }
.module-card footer b { color: #b5c2d8; font-size: 1rem; }

.nav-item { position: relative; }
.nav-badge { margin-left: auto; min-width: 20px; height: 20px; display: grid; place-items: center; padding: 0 5px; border-radius: 999px; background: var(--accent); color: #07111f; font-size: .65rem; font-style: normal; font-weight: 800; }
.mini-task-list { display: grid; gap: 9px; margin: 15px 0; }
.mini-task { padding: 11px; border-radius: 11px; border: 1px solid var(--line-soft); background: rgba(8,16,29,.34); }
.mini-task span, .mini-task b { display: block; }
.mini-task span { color: var(--muted); font-size: .7rem; }
.mini-task b { font-size: .75rem; margin: 4px 0 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-task i, .progress { display: block; height: 4px; border-radius: 999px; background: var(--line-soft); overflow: hidden; }
.mini-task u, .progress i { display: block; height: 100%; border-radius: inherit; background: var(--accent); text-decoration: none; transition: width .3s ease; }

.panel { background: var(--panel); border: 1px solid var(--line-soft); border-radius: var(--radius); box-shadow: 0 12px 35px rgba(0,0,0,.12); }
.page-intro { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 22px; }
.page-intro h2 { font-size: clamp(1.7rem,3vw,2.6rem); letter-spacing: -.035em; margin: 10px 0 7px; }
.page-intro p { margin: 0; color: var(--muted); line-height: 1.65; max-width: 680px; }
.section-kicker { color: var(--accent); font-size: .68rem; letter-spacing: .14em; font-weight: 750; display: inline-flex; align-items: center; gap: 7px; }
.section-kicker svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.step-line { display: flex; align-items: center; gap: 8px; color: var(--muted-2); font-size: .73rem; white-space: nowrap; }
.step-line span { display: flex; align-items: center; gap: 6px; }
.step-line b { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); color: var(--muted); font-size: .65rem; }
.step-line i { font-style: normal; color: #41516a; }

.creator-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 18px; align-items: start; }
.creator-main { padding: 23px; display: grid; gap: 24px; }
.creator-settings { padding: 22px; position: sticky; top: 108px; }
.creator-settings h3 { margin: 0 0 18px; font-size: .95rem; }
.field { display: grid; gap: 8px; }
.field > span, .field-label > span, .model-controls label > span, .settings-form label > span { color: #d8e0ee; font-size: .78rem; font-weight: 650; }
:root[data-theme="light"] .field > span,
:root[data-theme="light"] .field-label > span,
:root[data-theme="light"] .model-controls label > span,
:root[data-theme="light"] .settings-form label > span { color: #324057; }
.field small, .field-label small { color: var(--muted-2); font-size: .7rem; }
.field-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
input, textarea, select { width: 100%; border: 1px solid var(--line); color: var(--text); background: #0c1728; border-radius: 10px; padding: 11px 12px; transition: border-color .15s, background .15s; }
textarea { resize: vertical; min-height: 92px; line-height: 1.65; }
input:hover, textarea:hover, select:hover { border-color: #3a4d6c; }
input:focus, textarea:focus, select:focus { border-color: var(--primary); }
.upload-zone { min-height: 145px; border: 1px dashed #385170; background: #0c1727; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; color: var(--muted); transition: .18s ease; }
:root[data-theme="light"] .upload-zone { background: #f5f8fc; }
.upload-zone:hover { border-color: var(--accent); background: #101f33; }
:root[data-theme="light"] .upload-zone:hover { background: #eef8f7; }
.upload-zone svg { width: 27px; height: 27px; fill: none; stroke: var(--accent); stroke-width: 1.7; margin-bottom: 10px; }
.upload-zone b { font-size: .82rem; color: #dbe4f2; }
:root[data-theme="light"] .upload-zone b { color: #324057; }
.upload-zone span { font-size: .7rem; margin-top: 4px; }
.upload-zone input, .hidden-input, .attach-button input, .mini-upload input { display: none; }
.upload-previews, .composer-uploads { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 12px; }
.upload-previews figure, .composer-uploads figure { width: 82px; margin: 0; position: relative; }
.upload-previews img, .composer-uploads img { width: 82px; height: 72px; object-fit: cover; border-radius: 9px; border: 1px solid var(--line); }
.upload-previews button, .composer-uploads button, .mini-upload figure button { position: absolute; top: -6px; right: -6px; width: 20px; height: 20px; border: 0; border-radius: 50%; background: #253651; cursor: pointer; }
.upload-previews figcaption { color: var(--muted-2); font-size: .62rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 4px; }
.template-tools { display: grid; grid-template-columns: minmax(160px,1fr) auto auto auto; gap: 7px; margin-bottom: 9px; }
.builtin-prompt { margin: 0 0 9px; border: 1px solid rgba(94,234,212,.2); border-radius: 10px; background: rgba(94,234,212,.045); overflow: hidden; }
.builtin-prompt summary { min-height: 42px; padding: 9px 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.builtin-prompt summary::-webkit-details-marker { display: none; }
.builtin-prompt summary > span { display: inline-flex; align-items: center; gap: 7px; color: var(--accent); font-size: .74rem; }
.builtin-prompt summary svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.builtin-prompt summary small { color: var(--muted); font-size: .67rem; }
.builtin-prompt pre { max-height: 280px; margin: 0; padding: 12px; overflow: auto; border-top: 1px solid var(--line-soft); color: var(--muted); background: rgba(5,12,22,.28); font: inherit; font-size: .7rem; line-height: 1.65; white-space: pre-wrap; word-break: break-word; }
:root[data-theme="light"] .builtin-prompt { background: #effaf8; }
:root[data-theme="light"] .builtin-prompt pre { background: rgba(255,255,255,.55); }
.btn.small { min-height: 36px; padding: 0 11px; font-size: .73rem; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.btn.wide { width: 100%; margin-top: 18px; }
.btn.danger { border-color: rgba(255,117,136,.3); color: var(--danger); }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.model-controls { display: grid; gap: 13px; }
.model-controls label, .settings-form label { display: grid; gap: 7px; }
.model-controls.compact { display: flex; align-items: end; gap: 8px; }
.model-controls.compact label { min-width: 105px; }
.model-controls.compact label:first-child { min-width: 165px; }
.model-controls.compact label > span { display: none; }
.model-controls.compact select { padding: 9px 10px; font-size: .72rem; }
.setting-note, .compat-note { margin-top: 17px; padding: 13px; border-radius: 11px; background: #0c1728; border: 1px solid var(--line-soft); }
:root[data-theme="light"] .setting-note, :root[data-theme="light"] .compat-note { background: #f7f9fc; }
.setting-note b, .setting-note span { display: block; }
.setting-note b, .compat-note b { font-size: .73rem; }
.setting-note span, .compat-note p { color: var(--muted); font-size: .7rem; line-height: 1.55; margin: 5px 0 0; }
.submit-tip { margin: 9px 0 0; text-align: center; color: var(--muted-2); font-size: .68rem; line-height: 1.5; }
.three-fields { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.multiview-mode-switch { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.multiview-mode-switch label { cursor: pointer; }
.multiview-mode-switch input { position: absolute; opacity: 0; pointer-events: none; }
.multiview-mode-switch label > span { min-height: 72px; display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #0c1728; transition: .18s ease; }
.multiview-mode-switch label:hover > span { border-color: #3a5277; background: #101f33; }
.multiview-mode-switch label.active > span { border-color: rgba(94,234,212,.65); background: rgba(94,234,212,.07); box-shadow: inset 3px 0 0 var(--accent); }
.multiview-mode-switch b { font-size: .82rem; }
.multiview-mode-switch small { color: var(--muted); font-size: .7rem; }
:root[data-theme="light"] .multiview-mode-switch label > span { background: #f7f9fc; }
:root[data-theme="light"] .multiview-mode-switch label.active > span { background: #effaf8; }
.creation-mode-tabs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin-bottom: 18px; }
.creation-mode-tabs button { min-width: 0; min-height: 72px; display: flex; align-items: center; gap: 10px; padding: 12px 13px; border: 1px solid var(--line-soft); border-radius: 12px; color: var(--muted); background: var(--panel); text-align: left; cursor: pointer; transition: border-color .18s,background .18s,transform .18s; }
.creation-mode-tabs button:hover { transform: translateY(-1px); border-color: var(--line); background: var(--panel-strong); }
.creation-mode-tabs button.active { border-color: rgba(94,234,212,.58); color: var(--text); background: rgba(94,234,212,.08); box-shadow: inset 0 -3px 0 var(--accent); }
.creation-mode-tabs svg { width: 21px; height: 21px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; }
.creation-mode-tabs button:first-child svg { stroke: currentColor; }
.creation-mode-tabs span { min-width: 0; display: grid; gap: 4px; }
.creation-mode-tabs b { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.creation-mode-tabs small { overflow: hidden; color: var(--muted-2); font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
.creation-content { min-width: 0; }
.creation-placeholder { min-height: 430px; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 48px 24px; text-align: center; }
.creation-placeholder > div { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: 15px; border: 1px solid rgba(94,234,212,.26); border-radius: 15px; color: var(--accent); background: rgba(94,234,212,.08); }
.creation-placeholder > div svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.creation-placeholder h2 { margin: 8px 0 7px; font-size: 1.35rem; }
.creation-placeholder p { max-width: 580px; margin: 0 0 18px; color: var(--muted); font-size: .76rem; line-height: 1.75; }
.creation-section-head { margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid var(--line-soft); }
.creation-section-head h2 { margin: 7px 0 6px; font-size: 1.4rem; }
.creation-section-head p { max-width: 720px; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.7; }
.model-card-fields { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.model-card-fields input { min-height: 44px; }
.creation-guide { margin-top: 18px; }
.creation-reference-upload .upload-zone { min-height: 180px; }
.creation-upload-empty { padding: 18px 0 2px; color: var(--muted-2); font-size: .7rem; text-align: center; }
.creation-reference-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(116px,1fr)); gap: 10px; margin-top: 14px; }
.creation-reference-grid figure { position: relative; min-width: 0; margin: 0; padding: 7px; border: 1px solid var(--line-soft); border-radius: 11px; background: rgba(7,15,27,.38); }
.creation-reference-grid figure > span { position: absolute; z-index: 2; top: 12px; left: 12px; min-width: 22px; height: 22px; display: grid; place-items: center; padding: 0 5px; border-radius: 7px; color: #08221e; background: var(--accent); font-size: .64rem; font-weight: 800; }
.creation-reference-grid img { width: 100%; height: 112px; display: block; object-fit: cover; border-radius: 8px; background: #091322; }
.creation-reference-grid button { position: absolute; z-index: 2; top: 11px; right: 11px; width: 24px; height: 24px; border: 0; border-radius: 50%; color: #fff; background: rgba(5,10,18,.78); cursor: pointer; }
.creation-reference-grid figcaption { overflow: hidden; padding: 7px 2px 1px; color: var(--muted); font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.creation-count-summary { display: grid; gap: 6px; margin-top: 16px; padding: 14px; border: 1px solid rgba(94,234,212,.22); border-radius: 12px; background: rgba(94,234,212,.055); }
.creation-count-summary span { color: var(--muted); font-size: .68rem; }
.creation-count-summary strong { color: var(--accent); font-size: .98rem; }
.creation-count-summary small { color: var(--muted-2); font-size: .66rem; line-height: 1.55; }
.creation-count-summary.warning { border-color: rgba(245,158,11,.42); background: rgba(245,158,11,.08); }
.creation-count-summary.warning strong { color: #fbbf24; }
:root[data-theme="light"] .creation-reference-grid figure { background: #f8fafc; }
.multiview-input-panel { padding: 16px; border: 1px solid var(--line-soft); border-radius: 14px; background: rgba(7,15,27,.26); }
:root[data-theme="light"] .multiview-input-panel { background: #f8fafc; }
.studio-panel { margin: 18px 0; padding: 16px; border: 1px solid rgba(94,234,212,.2); border-radius: 14px; background: linear-gradient(145deg,rgba(94,234,212,.045),rgba(7,15,27,.2)); }
.studio-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.studio-panel-head h3 { margin: 4px 0 0; font-size: 1rem; }
.studio-panel-head > small { color: var(--muted); font-size: .72rem; }
.studio-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.studio-section { min-width: 0; padding: 11px; border: 1px solid var(--line-soft); border-radius: 11px; background: rgba(10,20,35,.48); }
.studio-section > header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.studio-section > header b { font-size: .78rem; }
.studio-section > header small { color: var(--muted); font-size: .64rem; text-align: right; }
.studio-section textarea { min-height: 55px; margin-bottom: 8px; font-size: .74rem; }
.studio-image-pick { display: inline-flex; align-items: center; gap: 6px; min-height: 29px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); font-size: .68rem; cursor: pointer; }
.studio-image-pick svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.studio-image-pick:hover { border-color: var(--accent); color: var(--accent); }
.studio-image-pick input { display: none; }
.studio-preview { position: relative; display: inline-flex; align-items: center; gap: 8px; max-width: 100%; margin: 0; }
.studio-preview img { width: 45px; height: 45px; object-fit: cover; border-radius: 7px; }
.studio-preview figcaption { max-width: 120px; overflow: hidden; color: var(--muted); font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.studio-preview button { align-self: flex-start; border: 0; color: var(--muted); background: transparent; cursor: pointer; }
:root[data-theme="light"] .studio-section { background: #fff; }
.mode-panel-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 13px; }
.mode-panel-title b { font-size: .8rem; }
.mode-panel-title span { color: var(--muted-2); font-size: .69rem; }
.multi-angle-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.angle-upload-card { min-width: 0; padding: 11px; border: 1px solid var(--line-soft); border-radius: 12px; background: #0c1728; }
:root[data-theme="light"] .angle-upload-card { background: #fff; }
.angle-upload-card > header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.angle-upload-card > header b { font-size: .74rem; }
.angle-upload-card > header span { color: var(--muted-2); font-size: .61rem; white-space: nowrap; }
.angle-upload-zone { min-height: 112px; border: 1px dashed #385170; border-radius: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; color: var(--muted); transition: .18s ease; }
.angle-upload-zone:hover { border-color: var(--accent); background: rgba(94,234,212,.04); }
.angle-upload-zone svg { width: 23px; height: 23px; fill: none; stroke: var(--accent); stroke-width: 1.7; margin-bottom: 7px; }
.angle-upload-zone b { color: #dbe4f2; font-size: .7rem; }
:root[data-theme="light"] .angle-upload-zone b { color: #324057; }
.angle-upload-zone span { margin-top: 3px; font-size: .62rem; }
.angle-upload-zone input { display: none; }
.angle-upload-card figure { position: relative; margin: 0; }
.angle-upload-card figure img { width: 100%; height: 112px; display: block; object-fit: cover; border: 1px solid var(--line); border-radius: 9px; }
.angle-upload-card figure button { position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(8,16,29,.85); cursor: pointer; }
.angle-upload-card figcaption { margin-top: 6px; overflow: hidden; color: var(--muted-2); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }

.chat-layout { height: calc(100vh - 148px); min-height: 610px; min-width: 0; display: grid; grid-template-columns: 235px minmax(0,1fr); gap: 14px; }
.conversation-list { overflow: hidden; display: flex; flex-direction: column; }
.conversation-head { display: flex; justify-content: space-between; align-items: center; padding: 16px; border-bottom: 1px solid var(--line-soft); font-size: .82rem; }
.conversation-head .icon-button { width: 31px; height: 31px; }
.conversation-items { padding: 8px; overflow: auto; }
.conversation-item { width: 100%; border: 0; background: transparent; border-radius: 9px; padding: 10px; color: var(--muted); text-align: left; cursor: pointer; }
.conversation-item:hover, .conversation-item.active { background: var(--panel-hover); color: var(--text); }
.conversation-item span, .conversation-item small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.conversation-item span { font-size: .78rem; }
.conversation-item small { font-size: .63rem; color: var(--muted-2); margin-top: 4px; }
.chat-room { min-width: 0; display: grid; grid-template-rows: auto minmax(0,1fr) auto; overflow: hidden; }
.chat-toolbar { min-height: 62px; display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; border-bottom: 1px solid var(--line-soft); }
.chat-toolbar b, .chat-toolbar small { display: block; }
.chat-toolbar b { font-size: .86rem; }
.chat-toolbar small { color: var(--muted-2); font-size: .65rem; margin-top: 3px; }
.messages { overflow-y: auto; padding: 24px; display: flex; flex-direction: column; gap: 18px; }
.message { display: flex; gap: 10px; max-width: 85%; }
.message.user { align-self: flex-end; flex-direction: row-reverse; }
.avatar { width: 30px; height: 30px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; background: #1d3150; color: var(--accent); font-size: .66rem; font-weight: 750; }
.message.user .avatar { background: var(--primary); color: #fff; }
.bubble { border: 1px solid var(--line-soft); background: var(--panel-strong); border-radius: 4px 15px 15px 15px; padding: 12px 14px; min-width: 90px; }
.message.user .bubble { border-radius: 15px 4px 15px 15px; background: #263e68; }
.bubble p { margin: 0; white-space: pre-wrap; line-height: 1.65; font-size: .82rem; }
.message-images { display: grid; grid-template-columns: repeat(3,minmax(0,180px)); gap: 7px; margin-top: 9px; }
.message-images img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 9px; }
.message-images button { padding: 0; border: 0; background: none; cursor: zoom-in; }
.message-status { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .72rem; }
.message-status span { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); animation: blink 1s infinite alternate; }
.inline-error { color: var(--danger); }
.inline-error b, .inline-error small { display: block; }
.inline-error b { font-size: .76rem; }.inline-error small { margin-top: 5px; color: var(--muted); font-size: .68rem; }
.chat-empty { margin: auto; max-width: 450px; text-align: center; color: var(--muted); }
.chat-empty svg { width: 34px; fill: none; stroke: var(--accent); stroke-width: 1.5; }
.chat-empty h3 { color: var(--text); margin: 13px 0 7px; }.chat-empty p { margin: 0; line-height: 1.6; font-size: .78rem; }
.chat-composer { width: calc(100% - 32px); min-width: 0; box-sizing: border-box; margin: 0 16px 16px; border: 1px solid var(--line); border-radius: 14px; background: #0c1728; padding: 10px; }
:root[data-theme="light"] .chat-composer { background: #f8fafc; }
.chat-template-bar { min-width: 0; display: grid; grid-template-columns: auto minmax(170px,1fr) auto auto; gap: 7px; align-items: center; padding: 0 0 9px; border-bottom: 1px solid var(--line-soft); }
.chat-template-bar > span { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: .7rem; font-weight: 650; white-space: nowrap; }
.chat-template-bar > span svg { width: 16px; height: 16px; fill: none; stroke: var(--accent); stroke-width: 1.7; }
.chat-template-bar select { min-width: 0; padding: 8px 10px; font-size: .72rem; }
.selected-chat-template { display: flex; align-items: center; gap: 9px; margin-top: 9px; padding: 8px 10px; border: 1px solid rgba(94,234,212,.24); border-radius: 9px; background: rgba(94,234,212,.055); }
.selected-chat-template > span { display: inline-flex; align-items: center; gap: 7px; min-width: 0; color: var(--accent); font-size: .72rem; }
.selected-chat-template svg, .message-template svg { width: 15px; height: 15px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; }
.selected-chat-template b { overflow: hidden; color: var(--text); text-overflow: ellipsis; white-space: nowrap; }
.selected-chat-template small { flex: 1; color: var(--muted-2); font-size: .63rem; }
.selected-chat-template button { width: 22px; height: 22px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); cursor: pointer; }
.selected-chat-template button:hover { background: rgba(255,255,255,.07); color: var(--text); }
.chat-composer textarea { border: 0; background: transparent; padding: 5px; min-height: 54px; resize: none; }
.chat-composer textarea:focus { outline: none; }
.composer-footer { display: flex; align-items: center; gap: 8px; border-top: 1px solid var(--line-soft); padding-top: 9px; }
.composer-footer .model-controls { flex: 1; min-width: 0; }
.chat-model-controls { max-width: 100%; }
.chat-model-controls [hidden] { display: none !important; }
.chat-model-controls .unified-model { min-width: 225px !important; }
.model-mode-tip { margin: 7px 0 0 46px; color: var(--muted-2); font-size: .62rem; line-height: 1.45; }
.attach-button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; }
.attach-button svg { width: 18px; fill: none; stroke: var(--muted); stroke-width: 1.8; }
.composer-uploads { margin: 0 0 8px; align-items: stretch; }
.composer-uploads figure,.composer-uploads figure img { width: 58px; }
.composer-uploads figure img { height: 50px; }
.composer-uploads figcaption { max-width: 58px; margin-top: 3px; overflow: hidden; color: var(--muted-2); font-size: .56rem; text-overflow: ellipsis; white-space: nowrap; }
.attachment-file { position: relative; min-width: 180px; max-width: 260px; display: flex; align-items: center; gap: 9px; padding: 8px 30px 8px 9px; border: 1px solid var(--line); border-radius: 10px; background: #101d31; }
:root[data-theme="light"] .attachment-file { background: #fff; }
.attachment-file > span { min-width: 40px; padding: 5px 6px; border-radius: 7px; background: rgba(109,140,255,.14); color: #aebfff; font-size: .58rem; font-weight: 750; text-align: center; }
.attachment-file div { min-width: 0; }
.attachment-file b, .attachment-file small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attachment-file b { color: var(--text); font-size: .67rem; }
.attachment-file small { margin-top: 3px; color: var(--muted-2); font-size: .57rem; }
.attachment-file > button { position: absolute; top: 7px; right: 7px; width: 18px; height: 18px; border: 0; border-radius: 50%; background: #253651; color: var(--text); cursor: pointer; }
.message-template { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; padding: 7px 9px; border: 1px solid rgba(94,234,212,.2); border-radius: 8px; background: rgba(94,234,212,.06); color: var(--accent); font-size: .66rem; }
.message-template b { color: var(--text); font-size: .72rem; }
.message-attachments { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.message-attachments .attachment-image { width: 92px; margin: 0; }
.message-attachments .attachment-image img { width: 92px; aspect-ratio: 1; object-fit: cover; border-radius: 9px; }
.message-attachments .attachment-image figcaption { margin-top: 4px; overflow: hidden; color: var(--muted-2); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }

.canvas-toolbar { padding: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.canvas-toolbar > div { display: flex; gap: 7px; }
.infinite-canvas-shell { height: calc(100vh - 148px); min-height: 620px; display: grid; grid-template-rows: auto minmax(0,1fr); overflow: hidden; }
.infinite-canvas-head { min-height: 58px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line-soft); }
.infinite-canvas-head > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
.infinite-canvas-head b { font-size: .82rem; white-space: nowrap; }
.infinite-canvas-head span { color: var(--muted); font-size: .68rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.infinite-canvas-head .canvas-sync-badge { padding: 5px 8px; border: 1px solid rgba(94,234,212,.24); border-radius: 999px; color: var(--accent); background: rgba(94,234,212,.055); }
.infinite-canvas-head .canvas-head-actions { flex: 0 0 auto; }
.canvas-head-button, .canvas-fullscreen-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.canvas-head-button svg, .canvas-fullscreen-button svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.canvas-fullscreen-button { color: #07111f; border-color: var(--accent); background: var(--accent); }
.canvas-fullscreen-button:hover { background: #7cf4e1; }
.infinite-canvas-shell iframe { width: 100%; height: 100%; min-height: 0; border: 0; background: var(--bg-soft); }
.infinite-canvas-shell:fullscreen, .infinite-canvas-shell.is-fullscreen-fallback { height: 100vh; min-height: 0; border: 0; border-radius: 0; background: var(--bg); }
.infinite-canvas-shell.is-fullscreen-fallback { position: fixed; inset: 0; z-index: 1000; }
body.canvas-fullscreen-open { overflow: hidden; }
.canvas-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.canvas-card { padding: 14px; }
.canvas-card header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 11px; }
.canvas-card header label { display: flex; align-items: center; gap: 7px; font-size: .78rem; }
.canvas-card header input { width: auto; }
.canvas-card header button { background: none; border: 0; color: var(--muted); font-size: .68rem; cursor: pointer; }
.canvas-card textarea { min-height: 135px; }
.mini-upload { min-height: 88px; display: flex; gap: 7px; margin-bottom: 10px; overflow-x: auto; }
.mini-upload > label { width: 100%; min-height: 88px; border: 1px dashed var(--line); border-radius: 10px; display: grid; place-items: center; align-content: center; gap: 5px; color: var(--muted-2); cursor: pointer; font-size: .7rem; }
.mini-upload svg { width: 20px; fill: none; stroke: currentColor; }
.mini-upload figure { position: relative; margin: 0; flex: 0 0 82px; }.mini-upload img { width: 82px; height: 82px; object-fit: cover; border-radius: 9px; }

.history-toolbar { display: flex; justify-content: space-between; gap: 15px; padding: 13px; margin-bottom: 14px; position: sticky; top: 92px; z-index: 5; }
.filters, .bulk-actions { display: flex; align-items: center; gap: 8px; }
.filters input { min-width: 220px; }.filters select { width: auto; min-width: 120px; }
.filters input, .filters select { padding: 9px 10px; font-size: .72rem; }
.bulk-actions span { color: var(--muted); font-size: .7rem; }
.history-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.history-card { overflow: hidden; position: relative; }
.record-check { position: absolute; z-index: 3; top: 9px; left: 9px; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: rgba(8,16,29,.82); }
.record-check input { width: auto; }
.record-media { aspect-ratio: 16/10; background: #091321; overflow: hidden; }
.record-media > button { width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; position: relative; }
.record-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.record-media button span { position: absolute; bottom: 9px; right: 9px; background: rgba(8,16,29,.82); border-radius: 999px; padding: 5px 8px; font-size: .68rem; }
.record-gallery { display: grid; gap: 2px; }
.record-gallery.count-2 { grid-template-columns: repeat(2,1fr); }
.record-gallery.count-3, .record-gallery.count-4 { grid-template-columns: repeat(2,1fr); grid-template-rows: repeat(2,1fr); }
.record-gallery.count-3 > button:first-child { grid-row: 1 / 3; }
.record-gallery > button { min-width: 0; min-height: 0; overflow: hidden; }
.record-gallery > button:hover img { transform: scale(1.025); filter: brightness(1.06); }
.record-gallery img { transition: transform .18s ease, filter .18s ease; }
.record-placeholder { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: var(--muted-2); font-size: .72rem; }
.record-placeholder svg { width: 28px; fill: none; stroke: currentColor; }.record-placeholder.failed { color: var(--danger); }.record-placeholder.success { color: var(--success); }
.spinner { width: 25px; height: 25px; border: 2px solid var(--line); border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; }
.record-body { padding: 14px; }.record-body header { display: flex; align-items: center; justify-content: space-between; }.record-body header small { color: var(--muted-2); font-size: .65rem; }
.status-tag { border-radius: 999px; padding: 4px 7px; font-size: .62rem; background: var(--line-soft); }.status-tag.success { color: var(--success); background: rgba(69,214,160,.1); }.status-tag.running { color: var(--accent); background: rgba(94,234,212,.1); }.status-tag.failed { color: var(--danger); background: rgba(255,117,136,.1); }.status-tag.warning { color: var(--warning); background: rgba(244,186,97,.1); }
.record-body h3 { margin: 11px 0 6px; font-size: .86rem; }.record-body p { color: var(--muted); font-size: .72rem; line-height: 1.55; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 34px; }
.record-body dl { display: grid; grid-template-columns: 1.5fr 1fr .7fr; gap: 7px; margin: 12px 0; }.record-body dl div { min-width: 0; }.record-body dt { color: var(--muted-2); font-size: .6rem; }.record-body dd { margin: 4px 0 0; font-size: .66rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.error-link { width: 100%; text-align: left; background: rgba(255,117,136,.07); color: var(--danger); border: 1px solid rgba(255,117,136,.18); border-radius: 8px; padding: 8px; font-size: .67rem; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.record-actions { display: flex; gap: 7px; margin-top: 10px; }
.record-actions .btn { flex: 1; }
.empty-state { min-height: 430px; display: grid; place-items: center; align-content: center; text-align: center; color: var(--muted); }.empty-state svg { width: 36px; fill: none; stroke: var(--muted-2); }.empty-state h3 { color: var(--text); margin: 14px 0 6px; }.empty-state p { margin: 0; font-size: .75rem; }

.settings-grid { display: grid; grid-template-columns: 1.1fr 1fr .65fr; gap: 14px; align-items: start; }
.settings-card { padding: 21px; }.card-title { display: flex; align-items: center; gap: 11px; margin-bottom: 20px; }.card-title > div { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 11px; color: var(--accent); background: #192c49; }.card-title svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }.card-title h2,.card-title p { margin: 0; }.card-title h2 { font-size: .92rem; }.card-title p { color: var(--muted-2); font-size: .68rem; margin-top: 4px; }
.settings-card form, .settings-form { display: grid; gap: 14px; }.password-field { display: grid; grid-template-columns: 1fr auto; }.password-field input { border-radius: 10px 0 0 10px; }.password-field button { border: 1px solid var(--line); border-left: 0; border-radius: 0 10px 10px 0; background: var(--panel-strong); color: var(--muted); cursor: pointer; padding: 0 12px; }
.switch-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; }.switch-row b,.switch-row small { display: block; }.switch-row b { font-size: .76rem; }.switch-row small { color: var(--muted-2); font-size: .65rem; margin-top: 3px; }.switch-row input { width: 18px; height: 18px; }
.form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 5px; }.data-card strong { display: block; font-size: 2rem; margin: 18px 0 5px; }.data-card > span { color: var(--muted); font-size: .7rem; }.data-card > .btn { width: 100%; margin-top: 25px; }

.image-viewer { width: min(94vw,1400px); height: 90vh; padding: 0; border: 1px solid #334764; border-radius: 16px; background: #060b13; color: #fff; overflow: hidden; }
.image-viewer::backdrop, .detail-dialog::backdrop, .template-dialog::backdrop { background: rgba(2,6,12,.84); backdrop-filter: blur(5px); }
.viewer-bar { height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 14px 0 20px; border-bottom: 1px solid #1e2c42; background: #0c1524; font-size: .8rem; }.viewer-bar > div { display: flex; align-items: center; gap: 7px; }.viewer-counter { min-width: 48px; color: var(--muted); text-align: center; font-size: .72rem; }.viewer-stage { position: relative; height: calc(100% - 88px); display: grid; place-items: center; overflow: hidden; cursor: grab; touch-action: none; }.viewer-stage:active { cursor: grabbing; }.viewer-stage img { max-width: 86%; max-height: 86%; object-fit: contain; user-select: none; pointer-events: none; transform-origin: center; will-change: transform; }.viewer-nav { position: absolute; z-index: 3; top: 50%; width: 46px; height: 64px; margin-top: -32px; border: 1px solid #31435f; border-radius: 12px; background: rgba(12,21,36,.86); color: #fff; cursor: pointer; font-size: 2rem; line-height: 1; }.viewer-nav:hover { border-color: var(--accent); background: #14233a; }.viewer-nav.previous { left: 18px; }.viewer-nav.next { right: 18px; }.viewer-nav[hidden] { display: none; }.viewer-tip { height: 30px; margin: 0; text-align: center; color: #61718b; font-size: .65rem; }
.detail-dialog { width: min(650px,90vw); border: 1px solid var(--line); border-radius: 15px; background: var(--panel); color: var(--text); padding: 0; }.detail-dialog header { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--line-soft); }.detail-dialog h2 { font-size: .95rem; margin: 0; }.error-panel { padding: 20px; }.error-panel > span { color: var(--danger); font-size: .68rem; }.error-panel h3 { margin: 8px 0; font-size: .9rem; }.error-panel p { color: var(--muted); line-height: 1.6; font-size: .75rem; }.error-panel pre { white-space: pre-wrap; word-break: break-all; max-height: 230px; overflow: auto; color: var(--muted); font-size: .65rem; background: #08111f; border-radius: 9px; padding: 10px; }
.template-dialog { width: min(590px, calc(100vw - 28px)); border: 1px solid var(--line); border-radius: 16px; background: var(--panel); color: var(--text); padding: 0; }
.template-dialog form { display: grid; gap: 16px; padding: 20px; }
.template-dialog header { display: flex; align-items: center; justify-content: space-between; }
.template-dialog header small { display: block; color: var(--accent); font-size: .62rem; font-weight: 750; letter-spacing: .13em; }
.template-dialog h2 { margin: 4px 0 0; font-size: 1rem; }
.template-dialog textarea { min-height: 170px; resize: vertical; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; }
.toast.success { border-color: rgba(69,214,160,.45); }.toast.error { border-color: rgba(255,117,136,.5); color: #ffd5db; }
@keyframes spin { to { transform: rotate(360deg); } } @keyframes blink { to { opacity: .25; } }

.placeholder-page { min-height: 600px; display: grid; place-items: center; color: var(--muted); }
.toast-region { position: fixed; right: 22px; bottom: 22px; z-index: 80; display: grid; gap: 10px; }
.toast { padding: 12px 15px; border-radius: 11px; background: #17263d; border: 1px solid #334968; box-shadow: var(--shadow); font-size: .82rem; }

@media (max-width: 1050px) {
  :root { --sidebar: 210px; }
  .hero { grid-template-columns: 1fr; }
  .hero-side { min-height: 230px; }
  .modules-grid { grid-template-columns: repeat(2,1fr); }
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .creator-layout { grid-template-columns: 1fr; }.creator-settings { position: static; }.three-fields,.model-card-fields { grid-template-columns: 1fr; }
  .canvas-grid,.history-grid { grid-template-columns: repeat(2,1fr); }.settings-grid { grid-template-columns: 1fr 1fr; }.data-card { grid-column: 1 / -1; }
  .canvas-toolbar { align-items: stretch; flex-wrap: wrap; }.history-toolbar { align-items: stretch; flex-direction: column; }
}
@media (max-width: 760px) {
  :root { --sidebar: 72px; }
  .sidebar { padding: 18px 10px; }
  .brand { padding: 0 7px 20px; }
  .brand > div:last-child, .nav-item span, .nav-section-label, .api-status span:not(.status-dot), .version { display: none; }
  .nav-item { justify-content: center; padding: 11px; }
  .api-status { justify-content: center; }
  .topbar { padding: 16px 18px; }
  .page { padding: 20px 16px; }
  .task-pill { display: none; }
  .hero-main { padding: 26px 22px; }
  .modules-grid, .stats-grid { grid-template-columns: 1fr; }
  .page-intro { align-items: start; flex-direction: column; }.step-line { display: none; }.template-tools { grid-template-columns: 1fr 1fr; }.template-tools select { grid-column: 1 / -1; }
  .builtin-prompt summary { align-items: flex-start; flex-direction: column; gap: 4px; }
  .multi-angle-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.chat-layout { height: auto; min-height: 700px; grid-template-columns: 1fr; }.conversation-list { max-height: 150px; }.chat-room { min-height: 650px; }
  .chat-composer { width: calc(100% - 16px); margin-inline: 8px; }
  .chat-template-bar { grid-template-columns: 1fr 1fr; }.chat-template-bar > span,.chat-template-bar select { grid-column: 1 / -1; }.chat-template-bar select { min-width: 0; }.chat-template-bar .btn { padding-inline: 9px; }
  .composer-footer { flex-wrap: wrap; }.composer-footer .model-controls { order: 3; flex-basis: 100%; width: 100%; overflow-x: auto; }.model-controls.compact label { min-width: 110px; }.model-controls.compact label:first-child { min-width: 150px; }.chat-model-controls .unified-model { min-width: 220px !important; }.model-mode-tip { margin-left: 0; }
  .infinite-canvas-shell { height: calc(100vh - 126px); min-height: 620px; }.infinite-canvas-head { align-items: flex-start; flex-direction: column; }.infinite-canvas-head > div { width: 100%; justify-content: space-between; }.infinite-canvas-head > div:first-child span { display: none; }.infinite-canvas-head .canvas-head-actions { overflow-x: auto; }.canvas-sync-badge { flex: 0 0 auto; }
  .canvas-grid,.history-grid,.settings-grid,.studio-grid { grid-template-columns: 1fr; }.studio-panel-head { align-items: flex-start; flex-direction: column; }.canvas-toolbar .model-controls { order: 3; width: 100%; overflow-x: auto; }.filters { flex-wrap: wrap; }.filters input { width: 100%; }.bulk-actions { justify-content: flex-end; }
}

/* 视觉标准库 */
.studio-library-tabs { display: inline-flex; gap: 5px; padding: 5px; margin: -7px 0 18px; border: 1px solid var(--line-soft); border-radius: 12px; background: var(--panel); }
.studio-library-tabs button { min-width: 130px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; cursor: pointer; font-size: .76rem; font-weight: 700; }
.studio-library-tabs button.active { color: var(--accent); background: rgba(94,234,212,.09); box-shadow: inset 0 0 0 1px rgba(94,234,212,.22); }
.studio-library-tabs svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.library-upload { padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 18px; }
.library-upload h3,.library-browser h3 { margin: 5px 0; font-size: .98rem; }
.library-upload p { color: var(--muted); font-size: .73rem; margin: 0; }
.library-upload-controls { display: flex; align-items: end; gap: 10px; min-width: min(100%, 440px); }
.library-upload-controls .field { min-width: 160px; flex: 1; }
.library-upload-button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.library-upload-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.library-upload-button input { display: none; }
.library-workspace { display: block; }
.library-browser { min-width: 0; }
.library-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 12px; }
.library-toolbar > div { display: flex; align-items: baseline; gap: 10px; }
.library-toolbar > div > span { color: var(--muted-2); font-size: .7rem; }
.library-toolbar input { max-width: 260px; padding-block: 9px; }
.library-categories { display: flex; gap: 7px; overflow-x: auto; padding: 2px 1px 12px; }
.library-categories button { flex: 0 0 auto; border: 1px solid var(--line-soft); border-radius: 999px; background: var(--panel); padding: 8px 12px; color: var(--muted); cursor: pointer; font-size: .72rem; }
.library-categories button.active { border-color: rgba(94,234,212,.45); background: rgba(94,234,212,.09); color: var(--accent); }
.library-categories small { margin-left: 5px; opacity: .7; }
.library-folders { margin: 2px 0 16px; padding: 14px; border: 1px solid var(--line-soft); border-radius: 14px; background: color-mix(in srgb,var(--panel) 72%,transparent); }
.library-folders > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.library-folders h4 { margin: 3px 0 0; font-size: .83rem; }
.library-folder-list { display: grid; grid-template-columns: repeat(auto-fill,minmax(155px,1fr)); gap: 9px; }
.library-folder { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; border: 1px solid var(--line-soft); border-radius: 11px; background: var(--panel); overflow: hidden; }
.library-folder.active { border-color: rgba(94,234,212,.55); background: rgba(94,234,212,.08); box-shadow: inset 0 0 0 1px rgba(94,234,212,.08); }
.library-folder > button { min-width: 0; display: grid; grid-template-columns: 27px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; gap: 1px 7px; padding: 10px; border: 0; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.library-folder > button span { grid-row: 1/3; display: grid; place-items: center; color: var(--accent); }
.library-folder > button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.library-folder > button b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }
.library-folder > button small { color: var(--muted-2); font-size: .61rem; }
.library-folder > div { display: grid; gap: 2px; padding-right: 7px; }
.library-folder > div button { border: 0; background: transparent; color: var(--muted-2); font-size: .58rem; cursor: pointer; padding: 2px 4px; }
.library-folder > div button:hover { color: var(--accent); }
.library-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(170px,1fr)); gap: 12px; }
.library-asset { min-width: 0; overflow: hidden; position: relative; border: 1px solid var(--line-soft); border-radius: 13px; background: var(--panel); transition: border-color .16s,transform .16s; }
.library-asset.selected { border-color: var(--accent); box-shadow: 0 0 0 1px rgba(94,234,212,.18); }
.library-select { position: absolute; z-index: 2; top: 9px; left: 9px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: rgba(8,16,29,.78); }
.library-select input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
.library-preview { display: block; width: 100%; height: 155px; padding: 0; border: 0; background: #0c1727; cursor: zoom-in; }
.library-preview img { display: block; width: 100%; height: 100%; object-fit: cover; }
.library-asset-meta { display: grid; gap: 7px; padding: 10px; }
.library-asset-meta input,.library-asset-meta select { padding: 7px 9px; border-radius: 8px; font-size: .71rem; }
.library-asset-meta > small { color: var(--muted-2); font-size: .62rem; }
.library-asset-meta .btn { justify-self: start; min-height: 30px; }
.library-composer { padding: 17px; position: sticky; top: 100px; }
.library-composer .card-title { margin-bottom: 15px; }
.library-composer .card-title h3 { margin: 0; font-size: .95rem; }
.library-composer .card-title p { margin: 4px 0 0; color: var(--muted); font-size: .7rem; }
.composer-selected { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font-size: .75rem; }
.composer-selected-list { display: grid; gap: 5px; max-height: 146px; overflow: auto; margin-bottom: 13px; }
.composer-selected-list span,.composer-selected-list small { overflow: hidden; padding: 6px 8px; border-radius: 7px; background: var(--panel-strong); color: var(--muted); font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.library-selection-hint { padding: 12px; color: var(--muted-2); background: var(--panel-strong); border-radius: 9px; font-size: .68rem; line-height: 1.6; }
.library-prompt { margin: 12px 0; }
.library-prompt textarea { min-height: 95px; font-size: .73rem; }
.library-composer .model-controls { gap: 9px; }
.library-composer .model-controls label { min-width: 0; }
.library-composer .btn.wide { margin-top: 14px; }
.library-composer .btn.wide svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; vertical-align: middle; }
.library-empty { margin-top: 4px; }
.visual-group-upload { align-items: flex-start; }
.visual-group-upload-form { width: min(100%,920px); display: grid; grid-template-columns: 150px minmax(180px,1fr) minmax(220px,1.4fr) auto; align-items: end; gap: 10px; }
.visual-group-upload-form .field { min-width: 0; }.visual-group-upload-form .field input,.visual-group-upload-form .field select { width: 100%; }
.visual-group-grid { display: grid; gap: 14px; }
.visual-group-card { overflow: hidden; border: 1px solid var(--line-soft); border-radius: 15px; background: var(--panel); }
.visual-group-card[open] { border-color: rgba(94,234,212,.34); box-shadow: 0 0 0 1px rgba(94,234,212,.06); }
.visual-group-card > summary { min-height: 176px; display: grid; grid-template-columns: 250px minmax(0,1fr) auto; align-items: center; gap: 18px; padding: 14px; cursor: pointer; list-style: none; }
.visual-group-card > summary::-webkit-details-marker { display: none; }
.visual-group-cover { height: 148px; display: grid; grid-template-columns: repeat(2,1fr); grid-template-rows: repeat(2,1fr); gap: 3px; overflow: hidden; border-radius: 11px; background: #07101e; }
.visual-group-cover.count-1 { display: block; }.visual-group-cover.count-2 { grid-template-rows: 1fr; }.visual-group-cover.count-3 button:first-child { grid-row: 1/3; }
.visual-group-cover button { min-width: 0; min-height: 0; padding: 0; border: 0; background: transparent; cursor: zoom-in; overflow: hidden; }.visual-group-cover img { width: 100%; height: 100%; display: block; object-fit: cover; }.visual-group-cover > span { grid-column: 1/3; grid-row: 1/3; display: grid; place-items: center; color: var(--muted-2); font-size: .72rem; }
.visual-group-summary { min-width: 0; }.visual-group-summary h4 { margin: 7px 0 5px; font-size: 1rem; }.visual-group-summary p { max-width: 680px; margin: 0 0 12px; color: var(--muted); font-size: .7rem; line-height: 1.55; }.visual-group-summary small { color: var(--muted-2); font-size: .64rem; }
.visual-group-type { display: inline-flex; padding: 5px 9px; border: 1px solid rgba(94,234,212,.24); border-radius: 999px; color: var(--accent); background: rgba(94,234,212,.07); font-size: .64rem; font-weight: 800; }
.visual-group-manage { padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); font-size: .68rem; }
.visual-group-editor { padding: 16px; border-top: 1px solid var(--line-soft); background: rgba(5,12,22,.22); }
.visual-group-fields { display: grid; grid-template-columns: minmax(180px,1fr) 150px minmax(240px,1.5fr); gap: 10px; margin-bottom: 14px; }.visual-group-fields .field { min-width: 0; }
.visual-group-items { display: grid; grid-template-columns: repeat(auto-fill,minmax(210px,1fr)); gap: 10px; }
.visual-group-items article { overflow: hidden; border: 1px solid var(--line-soft); border-radius: 11px; background: var(--panel-strong); }.visual-group-items article > button { width: 100%; height: 145px; padding: 0; border: 0; background: #07101e; cursor: zoom-in; }.visual-group-items article img { width: 100%; height: 100%; display: block; object-fit: cover; }
.visual-group-items article > div { display: grid; gap: 7px; padding: 9px; }.visual-group-items article input { width: 100%; min-width: 0; padding: 7px 8px; font-size: .69rem; }.visual-group-items article small { color: var(--muted-2); font-size: .61rem; }.visual-group-items article span { display: flex; flex-wrap: wrap; gap: 5px; }
.visual-group-editor > footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; }.visual-group-add { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; }.visual-group-add input { display: none; }.visual-group-add svg { width: 15px; height: 15px; fill: none; stroke: currentColor; }
.visual-sku-grid { margin-top: 14px; }
.decompose-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 18px; align-items: start; }
.decompose-card,.decompose-settings,.decompose-result { padding: 20px; }
.decompose-card-head,.decompose-result-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.decompose-card-head h3,.decompose-settings h3,.decompose-result h3 { margin: 5px 0 4px; font-size: 1rem; }
.decompose-card-head p { max-width: 650px; margin: 0; color: var(--muted); font-size: .73rem; line-height: 1.6; }
.decompose-fixed-tag { flex: 0 0 auto; padding: 6px 9px; border-radius: 999px; color: var(--accent); background: rgba(94,234,212,.08); border: 1px solid rgba(94,234,212,.2); font-size: .64rem; }
.decompose-upload { min-height: 230px; }
.decompose-source { position: relative; margin: 0; padding: 12px; border: 1px solid var(--line-soft); border-radius: 13px; background: var(--panel-strong); }
.decompose-source img { display: block; width: 100%; max-height: 430px; object-fit: contain; border-radius: 9px; background: #08101d; }
.decompose-source button { position: absolute; top: 20px; right: 20px; width: 30px; height: 30px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: rgba(8,16,29,.88); cursor: pointer; }
.decompose-source figcaption { padding: 9px 2px 0; color: var(--muted); font-size: .67rem; }
.decompose-prompt { margin-top: 14px; }
.decompose-settings { position: sticky; top: 100px; }
.decompose-settings .field { margin-top: 13px; }
.decompose-result { margin-top: 18px; }
.decompose-result-head { align-items: center; margin-bottom: 12px; }
.decompose-result-head > div { display: flex; align-items: center; gap: 10px; }
.decompose-result-head h3 { margin: 0; }
.decompose-result-head > span { color: var(--accent); font-size: .78rem; font-weight: 700; }
.decompose-error { padding: 13px; border: 1px solid rgba(255,117,136,.28); border-radius: 10px; background: rgba(255,117,136,.06); }
.decompose-error b { color: var(--danger); font-size: .75rem; }.decompose-error p { margin: 5px 0 0; color: var(--muted); font-size: .68rem; }
.decompose-output { display: grid; justify-items: center; gap: 14px; padding-top: 8px; }
.decompose-output img { display: block; width: min(100%,760px); max-height: 780px; object-fit: contain; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.decompose-output > div { display: flex; gap: 9px; }
.decompose-batch-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 16px 0 14px; padding: 13px 14px; border: 1px solid var(--line-soft); border-radius: 12px; background: var(--panel-strong); }
.decompose-batch-toolbar > div { display: flex; align-items: center; gap: 9px; }.decompose-batch-toolbar > div:first-child { align-items: flex-start; flex-direction: column; gap: 3px; }
.decompose-batch-toolbar b { font-size: .78rem; }.decompose-batch-toolbar span { color: var(--muted); font-size: .66rem; }
.decompose-items-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(210px,1fr)); gap: 13px; }
.decompose-item { min-width: 0; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 13px; background: var(--panel-strong); transition: border-color .18s,transform .18s; }
.decompose-item:hover { transform: translateY(-1px); border-color: var(--line); }.decompose-item.selected { border-color: rgba(94,234,212,.65); box-shadow: 0 0 0 1px rgba(94,234,212,.14); }
.decompose-item-media { position: relative; height: 210px; display: grid; place-items: center; overflow: hidden; background: #f4f5f7; }
.decompose-item-media > img { width: 100%; height: 100%; object-fit: contain; }.decompose-item-media > label { position: absolute; top: 9px; left: 9px; display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; border-radius: 8px; color: #fff; background: rgba(5,12,22,.78); font-size: .64rem; cursor: pointer; }
.decompose-item-media > button { position: absolute; right: 9px; bottom: 9px; padding: 6px 8px; border: 1px solid rgba(255,255,255,.24); border-radius: 8px; color: #fff; background: rgba(5,12,22,.78); font-size: .62rem; cursor: pointer; }
.decompose-item-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; padding: 18px; color: #56657b; text-align: center; }.decompose-item-placeholder b { font-size: .72rem; }.decompose-item-placeholder small { max-width: 180px; font-size: .62rem; line-height: 1.45; }
.mini-spinner { width: 24px; height: 24px; border: 2px solid rgba(94,234,212,.2); border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; }
.decompose-item-info { display: grid; gap: 8px; padding: 11px; }.decompose-item-info input,.decompose-item-info select { width: 100%; min-width: 0; min-height: 36px; padding: 7px 9px; border: 1px solid var(--line-soft); border-radius: 8px; color: var(--text); background: var(--field); font-size: .69rem; }
.decompose-item-info > div { min-height: 30px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }.decompose-item-info small { color: var(--muted); font-size: .62rem; }
.decompose-preparing { min-height: 150px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 9px; color: var(--muted); }.decompose-preparing b { color: var(--text); font-size: .78rem; }.decompose-preparing p { margin: 0; font-size: .66rem; }
@keyframes spin { to { transform: rotate(360deg); } }
.studio-crop-dialog { width: min(96vw,1450px); max-width: none; height: min(92vh,940px); padding: 0; border: 1px solid var(--line); border-radius: 16px; color: var(--text); background: var(--bg); overflow: hidden; }
.studio-crop-dialog::backdrop { background: rgba(2,7,14,.82); backdrop-filter: blur(5px); }
.crop-dialog-shell { height: 100%; display: grid; grid-template-rows: auto minmax(0,1fr); }
.crop-dialog-shell > header { min-height: 68px; padding: 13px 17px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line-soft); background: var(--panel); }
.crop-dialog-shell > header small { color: var(--accent); font-size: .6rem; letter-spacing: .12em; }.crop-dialog-shell > header h2 { margin: 4px 0 0; font-size: 1rem; }
.crop-layout { min-height: 0; display: grid; grid-template-columns: minmax(0,1fr) 300px; }
.crop-editor { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr); background: #060d18; }
.crop-toolbar { min-height: 52px; padding: 9px 13px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line-soft); background: #0c1728; color: var(--muted); font-size: .7rem; }
.crop-toolbar label { display: inline-flex; align-items: center; gap: 8px; }.crop-toolbar input { width: 150px; padding: 0; accent-color: var(--accent); }.crop-toolbar > span { margin-left: auto; }
.crop-scroll { min-width: 0; min-height: 0; overflow: auto; padding: 18px; }
.crop-canvas-wrap { position: relative; margin: 0 auto; touch-action: none; cursor: crosshair; box-shadow: 0 8px 30px rgba(0,0,0,.35); }
.crop-canvas-wrap canvas { display: block; max-width: none; background: #fff; }
.crop-selection { position: absolute; border: 2px solid var(--accent); background: rgba(94,234,212,.12); box-shadow: 0 0 0 9999px rgba(2,7,14,.38); pointer-events: none; }
.crop-save-panel { min-height: 0; overflow-y: auto; padding: 17px; border-left: 1px solid var(--line-soft); background: var(--panel); }
.crop-preview { min-height: 210px; display: grid; place-items: center; margin-bottom: 15px; padding: 10px; border: 1px dashed var(--line); border-radius: 12px; background: #08101d; overflow: hidden; }
.crop-preview canvas { display: block; max-width: 100%; max-height: 300px; object-fit: contain; }.crop-preview span { color: var(--muted-2); font-size: .68rem; }
.crop-save-panel .field { margin-top: 12px; }.crop-save-panel > p { color: var(--muted-2); font-size: .65rem; line-height: 1.55; }
:root[data-theme="light"] .studio-crop-dialog { background: var(--bg); }.studio-crop-dialog .icon-button { background: var(--panel-strong); }
@media (max-width: 1050px) { .library-grid { grid-template-columns: repeat(auto-fill,minmax(145px,1fr)); }.visual-group-upload-form { grid-template-columns: 1fr 1fr; }.visual-group-card > summary { grid-template-columns: 210px minmax(0,1fr); }.visual-group-manage { display: none; }.visual-group-fields { grid-template-columns: 1fr 1fr; }.visual-group-fields .visual-group-description { grid-column: 1/-1; } }
@media (max-width: 1050px) { .creation-mode-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) { .creation-mode-tabs { display: flex; overflow-x: auto; padding-bottom: 4px; }.creation-mode-tabs button { flex: 0 0 170px; }.library-upload { align-items: stretch; flex-direction: column; }.library-upload-controls { min-width: 0; flex-wrap: wrap; }.library-upload-controls .field { min-width: calc(50% - 5px); }.library-folder-list { grid-template-columns: repeat(2,minmax(0,1fr)); }.library-workspace,.decompose-layout { grid-template-columns: 1fr; }.library-composer,.decompose-settings { position: static; grid-row: 1; }.library-toolbar { align-items: stretch; flex-direction: column; }.library-toolbar input { max-width: none; }.library-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.library-preview { height: 135px; }.studio-library-tabs { display: flex; }.studio-library-tabs button { min-width: 0; flex: 1; }.decompose-batch-toolbar { align-items: stretch; flex-direction: column; }.decompose-batch-toolbar > div:last-child { flex-wrap: wrap; }.decompose-items-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.decompose-item-media { height: 160px; }.crop-layout { grid-template-columns: 1fr; }.crop-save-panel { border-left: 0; border-top: 1px solid var(--line-soft); }.studio-crop-dialog { height: 96vh; }.crop-toolbar { flex-wrap: wrap; }.crop-toolbar > span { margin-left: 0; }.visual-group-upload-form,.visual-group-fields { grid-template-columns: 1fr; }.visual-group-fields .visual-group-description { grid-column: auto; }.visual-group-card > summary { min-height: 0; grid-template-columns: 110px minmax(0,1fr); gap: 11px; padding: 10px; }.visual-group-cover { height: 100px; }.visual-group-summary p { display: none; }.visual-group-items { grid-template-columns: repeat(2,minmax(0,1fr)); }.visual-group-editor > footer { align-items: stretch; flex-direction: column; } }

/* ===== 智能视觉生成 ===== */
.smart-visual-tabs { display:flex; gap:8px; margin-bottom:18px; padding:5px; width:max-content; background:var(--panel); border:1px solid var(--line); border-radius:14px; }
.smart-visual-tabs button { display:flex; align-items:center; gap:10px; min-width:170px; padding:12px 18px; color:var(--muted); background:transparent; border:0; border-radius:10px; font-weight:800; cursor:pointer; }
.smart-visual-tabs button span { display:grid; place-items:center; width:25px; height:25px; border:1px solid var(--line); border-radius:8px; font-size:.68rem; }
.smart-visual-tabs button.active { color:var(--text); background:var(--panel-2); box-shadow:inset 0 -2px 0 var(--accent); }
.visual-plan-builder { display:grid; gap:18px; }
.visual-plan-flow { display:flex; align-items:stretch; gap:8px; width:100%; padding:12px; overflow-x:auto; background:var(--panel); border:1px solid var(--line); border-radius:16px; scrollbar-width:thin; }
.visual-plan-flow>button { flex:1 0 150px; min-width:0; min-height:82px; display:grid; grid-template-columns:30px minmax(0,1fr); grid-template-rows:auto auto; gap:3px 9px; align-content:center; padding:12px; color:var(--muted); text-align:left; background:rgba(7,15,28,.32); border:1px solid var(--line); border-radius:12px; cursor:pointer; transition:.18s ease; }
.visual-plan-flow>button:hover { color:var(--text); border-color:#355174; transform:translateY(-1px); }.visual-plan-flow>button.complete { border-color:rgba(94,234,212,.28); background:rgba(94,234,212,.055); }.visual-plan-flow>button.generate-step { color:#07111f; border-color:var(--accent); background:var(--accent); }
.visual-plan-flow>button span { grid-row:1/3; align-self:center; display:grid; place-items:center; width:30px; height:30px; color:var(--accent); background:rgba(94,234,212,.09); border:1px solid rgba(94,234,212,.22); border-radius:9px; font-size:.68rem; font-weight:900; }.visual-plan-flow>button.generate-step span { color:#07111f; background:rgba(7,17,31,.1); border-color:rgba(7,17,31,.18); }
.visual-plan-flow>button b { align-self:end; color:inherit; font-size:.82rem; }.visual-plan-flow>button small { align-self:start; overflow:hidden; color:var(--muted-2); font-size:.63rem; text-overflow:ellipsis; white-space:nowrap; }.visual-plan-flow>button.generate-step small { color:rgba(7,17,31,.65); }.visual-plan-flow>i { align-self:center; color:var(--muted-2); font-style:normal; }
.visual-foundation-grid,.visual-final-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:stretch; }.visual-step-panel { scroll-margin-top:96px; }.visual-foundation-grid>.panel,.visual-final-grid>.panel { height:100%; }
.smart-visual-grid,.smart-batch-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:start; }
.smart-batch-layout { grid-template-columns:minmax(0,1fr) 360px; }
.smart-input-panel,.smart-batch-main,.smart-batch-settings { padding:22px; }
.smart-batch-settings { position:sticky; top:154px; }
.smart-panel-title { display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; }
.smart-panel-title>span { display:grid; place-items:center; flex:0 0 34px; height:34px; color:var(--accent); background:rgba(94,234,212,.08); border:1px solid rgba(94,234,212,.25); border-radius:10px; font:800 .72rem/1 system-ui; }
.smart-panel-title h3 { margin:0 0 4px; font-size:1.02rem; }.smart-panel-title p { margin:0; color:var(--muted); font-size:.78rem; line-height:1.55; }
.smart-file-button { display:inline-flex; width:auto; margin-top:10px; }.smart-file-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.smart-file-list>span { display:flex; align-items:center; gap:8px; max-width:100%; padding:8px 10px; background:var(--panel-2); border:1px solid var(--line); border-radius:10px; }
.smart-file-list b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.76rem; }.smart-file-list small { color:var(--muted); }.smart-file-list button { color:var(--muted); background:none; border:0; cursor:pointer; }
.visual-asset-picker { margin:14px 0; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:rgba(7,15,28,.22); }
.visual-asset-picker summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px; cursor:pointer; list-style:none; }
.visual-asset-picker summary span { display:flex; align-items:center; gap:8px; }.visual-asset-picker summary svg { width:17px; color:var(--accent); }.visual-asset-picker summary small { color:var(--muted); }
.visual-asset-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(108px,132px)); justify-content:start; gap:8px; padding:0 12px 12px; max-height:286px; overflow:auto; }
.visual-asset-card { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:var(--panel-2); cursor:pointer; }
.visual-asset-card input { position:absolute; top:6px; left:6px; z-index:2; accent-color:var(--accent); }.visual-asset-card img { display:block; width:100%; height:88px; object-fit:cover; }
.visual-asset-card span { display:block; padding:6px 7px; }.visual-asset-card b,.visual-asset-card small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.visual-asset-card b { font-size:.68rem; }.visual-asset-card small { margin-top:2px; color:var(--muted); font-size:.6rem; }
.visual-asset-card.selected { border-color:var(--accent); box-shadow:0 0 0 2px rgba(94,234,212,.12); }.visual-assets-empty { padding:24px; color:var(--muted); text-align:center; }
.visual-asset-category-tabs { display:flex; gap:7px; padding:0 12px 12px; overflow-x:auto; scrollbar-width:thin; }
.visual-asset-category-tabs button { display:flex; align-items:center; gap:7px; flex:0 0 auto; padding:8px 11px; color:var(--muted); background:var(--panel-2); border:1px solid var(--line); border-radius:999px; cursor:pointer; }
.visual-asset-category-tabs button.active { color:var(--accent); border-color:rgba(94,234,212,.5); background:rgba(94,234,212,.08); }.visual-asset-category-tabs small { color:inherit; }
.visual-selected-assets { margin:0 12px 12px; padding:12px; background:rgba(94,234,212,.045); border:1px solid rgba(94,234,212,.2); border-radius:12px; }
.visual-selected-assets>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }.visual-selected-assets>div:first-child small { color:var(--muted); }
.visual-selected-assets>div:last-child { display:flex; flex-wrap:wrap; gap:7px; }.visual-selected-assets button { display:flex; align-items:center; gap:7px; max-width:240px; padding:5px 8px 5px 5px; color:var(--text); background:var(--panel-2); border:1px solid var(--line); border-radius:9px; cursor:pointer; }
.visual-selected-assets button img { width:30px; height:30px; border-radius:6px; object-fit:cover; }.visual-selected-assets button span { overflow:hidden; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }.visual-selected-assets button b { color:var(--muted); font-size:.9rem; }
.visual-types-panel { padding:22px; }.visual-template-types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:start; margin:14px 0 0; }
.visual-type-card { min-width:0; overflow:hidden; background:var(--panel-2); border:1px solid var(--line); border-radius:14px; }.visual-type-card.enabled { border-color:rgba(94,234,212,.3); box-shadow:0 0 0 1px rgba(94,234,212,.05); }.visual-type-card summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; padding:14px; cursor:pointer; list-style:none; }.visual-type-card summary::-webkit-details-marker { display:none; }.visual-type-card summary small { overflow:hidden; color:var(--muted); font-size:.67rem; text-overflow:ellipsis; white-space:nowrap; }.visual-type-card summary>b { color:var(--accent); font-size:.68rem; }.visual-type-card[open] summary { border-bottom:1px solid var(--line-soft); }.visual-type-card[open] summary>b { font-size:0; }.visual-type-card[open] summary>b::after { content:'收起'; font-size:.68rem; }.visual-type-body { padding:14px; }
.visual-template-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }.visual-output-switch { display:inline-flex !important; width:auto !important; align-items:center; justify-content:flex-start; gap:8px; margin:0; color:var(--text); font-weight:800; }.visual-output-switch span { display:inline; writing-mode:horizontal-tb; white-space:nowrap; }.visual-output-switch input { width:auto; margin:0; accent-color:var(--accent); }
.visual-template-prompt { margin-top:11px; }.visual-template-prompt textarea { min-height:104px; line-height:1.6; resize:vertical; }
.visual-template-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:11px; }.visual-template-actions .btn { min-height:36px; padding:0 11px; font-size:.72rem; }.visual-template-actions .btn:disabled { opacity:.42; cursor:not-allowed; }
.visual-planner-controls { margin:16px 0; padding:16px; background:linear-gradient(145deg,rgba(94,234,212,.07),rgba(124,156,255,.04)); border:1px solid rgba(94,234,212,.24); border-radius:14px; }.visual-planner-head { display:flex; align-items:flex-start; gap:11px; margin-bottom:14px; }.visual-planner-head>span { display:grid; place-items:center; flex:0 0 34px; height:34px; color:var(--accent); background:rgba(94,234,212,.1); border-radius:10px; }.visual-planner-head svg { width:18px; }.visual-planner-head h4 { margin:0 0 3px; }.visual-planner-head p { margin:0; color:var(--muted); font-size:.74rem; line-height:1.5; }.visual-planner-controls .field + .field { margin-top:12px; }.visual-planner-controls textarea { min-height:144px; line-height:1.65; resize:vertical; }
.visual-submit-panel { display:flex; flex-direction:column; }.visual-submit-summary { display:flex; gap:10px; margin:16px 0; }.visual-submit-summary span { flex:1; padding:12px; color:var(--muted); background:var(--panel-2); border:1px solid var(--line); border-radius:11px; font-size:.72rem; }.visual-submit-summary b { color:var(--accent); font-size:.95rem; }.visual-submit-panel .btn.primary { margin-top:auto; }
.visual-plan-empty { margin-top:18px; padding:54px; text-align:center; }.visual-plan-empty>div { margin:auto; width:42px; color:var(--accent); }.visual-plan-empty svg { width:42px; }.visual-plan-empty p { color:var(--muted); }
.visual-plan-result { margin-top:18px; padding:22px; }.visual-plan-toolbar { display:flex; align-items:center; gap:10px; }.visual-plan-toolbar>div { margin-right:auto; }.visual-plan-toolbar h3 { margin:3px 0 0; }.visual-plan-toolbar select { max-width:390px; }
.visual-planning { display:flex; align-items:center; justify-content:center; gap:14px; min-height:170px; color:var(--muted); }.visual-planning b { color:var(--text); }.visual-planning p { margin:4px 0 0; }
.visual-document-panel { max-width:1180px; margin-right:auto; margin-left:auto; }
.visual-document-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin:22px 0 0; padding:22px 26px; background:linear-gradient(145deg,rgba(94,234,212,.07),rgba(124,156,255,.035)); border:1px solid rgba(94,234,212,.2); border-bottom:0; border-radius:15px 15px 0 0; }
.visual-document-header>div:first-child span { color:var(--accent); font-size:.66rem; font-weight:900; letter-spacing:.12em; }.visual-document-header h2 { margin:6px 0; font-size:1.35rem; }.visual-document-header small { color:var(--muted); }.visual-document-header>div:last-child { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.visual-document-content { min-height:360px; padding:40px 48px 54px; color:#dbe6f5; background:#0d1929; border:1px solid rgba(94,234,212,.2); border-radius:0 0 15px 15px; line-height:1.85; overflow-wrap:anywhere; }
.visual-document-content h2,.visual-document-content h3,.visual-document-content h4,.visual-document-content h5 { margin:1.55em 0 .65em; color:var(--text); line-height:1.35; }.visual-document-content h2:first-child,.visual-document-content h3:first-child { margin-top:0; }.visual-document-content h2 { padding-bottom:12px; border-bottom:1px solid var(--line); font-size:1.55rem; }.visual-document-content h3 { color:#eef6ff; font-size:1.18rem; }.visual-document-content h4,.visual-document-content h5 { font-size:1rem; }
.visual-document-content p { margin:.6em 0; }.visual-document-content ul,.visual-document-content ol { margin:.65em 0; padding-left:1.55em; }.visual-document-content li { margin:.32em 0; }.visual-document-content blockquote { margin:1em 0; padding:11px 16px; color:var(--muted); background:rgba(94,234,212,.055); border-left:3px solid var(--accent); border-radius:0 9px 9px 0; }.visual-document-content pre { padding:16px; overflow:auto; background:#081321; border:1px solid var(--line); border-radius:10px; }.visual-document-content code { color:#9ff3e5; font-family:Consolas,monospace; }.visual-document-space { height:.45em; }
.visual-document-editor { margin-top:22px; padding:24px; background:var(--panel-2); border:1px solid var(--line); border-radius:14px; }.visual-document-editor .field+.field { margin-top:15px; }.visual-document-editor textarea { min-height:560px; padding:20px; line-height:1.7; resize:vertical; }.visual-document-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
.visual-document-split-grid,.visual-document-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px}.visual-document-volume{min-width:0;overflow:hidden;background:rgba(7,15,28,.34);border:1px solid var(--line);border-radius:14px}.visual-document-volume>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.visual-document-volume>header>div{display:flex;align-items:center;gap:8px}.visual-document-volume>header>div:last-child{flex-wrap:wrap;justify-content:flex-end}.visual-document-volume>header span{display:grid;place-items:center;width:28px;height:28px;color:var(--accent);background:rgba(94,234,212,.09);border-radius:8px;font-size:.67rem;font-weight:800}.visual-document-volume h3{margin:0}.visual-document-volume .visual-document-content{max-height:680px;min-height:420px;overflow:auto;padding:22px;border:0;border-radius:0}.visual-document-empty{color:var(--muted)}.visual-document-legacy-tip{margin:16px 16px 0;padding:11px 13px;color:#d7b679;background:rgba(245,180,70,.07);border:1px solid rgba(245,180,70,.25);border-radius:10px;font-size:.72rem}.visual-document-edit-grid{padding:0;margin-top:16px}.visual-document-edit-grid textarea{min-height:520px}
.visual-strategy { display:flex; justify-content:space-between; gap:18px; margin:18px 0; padding:15px; background:rgba(94,234,212,.06); border:1px solid rgba(94,234,212,.2); border-radius:13px; }.visual-strategy b,.visual-strategy span { display:block; }.visual-strategy span { margin-top:4px; color:var(--accent); font-size:.74rem; }.visual-strategy p { max-width:720px; margin:0; color:var(--muted); }
.visual-shot-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.visual-shot-card { padding:14px; background:var(--panel-2); border:1px solid var(--line); border-radius:14px; }
.visual-shot-card header { display:flex; align-items:center; gap:8px; margin-bottom:12px; }.visual-shot-card header>span { color:var(--accent); font-weight:900; }.visual-shot-card header select { width:auto; flex:1; }.visual-shot-card header button { color:var(--muted); background:none; border:0; cursor:pointer; font-size:1.2rem; }
.visual-shot-card label { display:block; margin-top:9px; color:var(--muted); font-size:.7rem; }.visual-shot-card input,.visual-shot-card textarea,.visual-shot-card select { width:100%; margin-top:5px; }.visual-shot-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.visual-plan-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }.batch-plan-summary { padding:14px; margin-bottom:16px; background:rgba(124,156,255,.07); border:1px solid rgba(124,156,255,.22); border-radius:13px; }.batch-plan-summary>b,.batch-plan-summary>span { display:block; }.batch-plan-summary>span { margin-top:4px; color:var(--accent); font-size:.76rem; }.batch-plan-summary>div { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }.batch-plan-summary i { padding:5px 8px; color:var(--muted); background:var(--panel-2); border-radius:7px; font-style:normal; font-size:.68rem; }
.visual-shot-generate { width:100%; margin-top:10px; }.visual-generation-panel { display:grid; grid-template-columns:minmax(260px,1fr) minmax(170px,240px) minmax(130px,180px) auto; align-items:end; gap:12px; margin-top:18px; padding:16px; background:rgba(94,234,212,.055); border:1px solid rgba(94,234,212,.24); border-radius:14px; }
.visual-generation-panel>div b,.visual-generation-panel>div span { display:block; }.visual-generation-panel>div span { margin-top:5px; color:var(--muted); font-size:.72rem; }.visual-generation-panel label { display:grid; gap:6px; color:var(--muted); font-size:.69rem; font-weight:800; }.visual-generation-panel select { min-width:0; }
.selected-suite-prompt { margin:8px 0 16px; padding:12px; color:var(--muted); background:var(--panel-2); border:1px solid var(--line); border-radius:11px; font-size:.75rem; line-height:1.55; }.visual-batch-progress { margin-top:16px; padding-top:15px; border-top:1px solid var(--line); }.visual-batch-progress>b,.visual-batch-progress>span { display:block; }.visual-batch-progress>span { margin:5px 0 9px; color:var(--muted); font-size:.72rem; }
@media(max-width:1200px){.smart-visual-grid,.smart-batch-layout{grid-template-columns:1fr}.smart-batch-settings{position:static}.visual-shot-list{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-template-types{grid-template-columns:1fr}.visual-generation-panel{grid-template-columns:1fr 1fr}.visual-generation-panel>div{grid-column:1/-1}.visual-document-split-grid,.visual-document-edit-grid{grid-template-columns:1fr}}
@media(max-width:760px){.smart-visual-tabs{width:100%}.smart-visual-tabs button{flex:1;min-width:0}.visual-asset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.visual-shot-list{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-plan-toolbar,.visual-plan-actions,.visual-strategy{align-items:stretch;flex-direction:column}.visual-plan-toolbar select{max-width:none}.visual-foundation-grid,.visual-final-grid{grid-template-columns:1fr}.visual-plan-flow>button{flex-basis:145px}.visual-plan-flow>i{display:none}.visual-submit-summary{flex-direction:column}.visual-generation-panel{grid-template-columns:1fr}.visual-generation-panel>div{grid-column:auto}.visual-selected-assets>div:first-child{align-items:flex-start;flex-direction:column}.visual-document-header{flex-direction:column;padding:18px}.visual-document-header>div:last-child{justify-content:flex-start}.visual-document-content{padding:26px 20px 36px}.visual-document-editor{padding:16px}.visual-document-editor textarea{min-height:440px}}

/* ===== 顶部全局导航布局（替代左侧栏） ===== */
:root { --global-nav-h: 72px; }
.app-shell { display: block; min-height: 100vh; }
.sidebar {
  position: sticky;
  inset: auto;
  top: 0;
  width: 100%;
  height: var(--global-nav-h);
  z-index: 30;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 18px;
  padding: 10px 22px;
  background: rgba(11,20,34,.96);
  border-right: 0;
  border-bottom: 1px solid var(--line-soft);
  backdrop-filter: blur(18px);
}
.brand { flex: 0 0 auto; padding: 0; }
.brand-mark { width: 38px; height: 38px; }
.nav-list {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 3px;
  padding: 2px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}
.nav-list::-webkit-scrollbar { display: none; }
.nav-section-label { display: none; }
.nav-item {
  flex: 0 0 auto;
  width: auto;
  min-height: 42px;
  padding: 9px 10px;
  gap: 7px;
  white-space: nowrap;
  font-size: .78rem;
  text-align: center;
}
.nav-item svg { width: 17px; height: 17px; }
.nav-item.active { box-shadow: inset 0 -3px 0 var(--accent); }
.sidebar-footer {
  flex: 0 0 auto;
  margin-top: 0;
  margin-left: auto;
  padding-top: 0;
}
.api-status { width: auto; min-width: 142px; padding: 8px 10px; }
.version { display: none; }
.workspace { grid-column: auto; min-height: calc(100vh - var(--global-nav-h)); }
.topbar {
  top: var(--global-nav-h);
  min-height: 64px;
  padding: 11px 28px;
}
.topbar h1 { font-size: 1.12rem; }
.eyebrow { font-size: .6rem; }
.page { max-width: 1440px; padding: 28px 34px 42px; }
.infinite-canvas-shell { height: calc(100vh - 180px); min-height: 560px; }

@media (max-width: 1280px) {
  .sidebar { gap: 10px; padding-inline: 14px; }
  .brand small { display: none; }
  .nav-item { padding-inline: 8px; }
  .api-status { min-width: 42px; }
  .api-status small { display: none; }
}

@media (max-width: 900px) {
  .brand strong { display: none; }
  .nav-item span { display: none; }
  .nav-item { width: 40px; padding: 9px; justify-content: center; }
  .api-status span:not(.status-dot) { display: none; }
  .api-status { width: 40px; min-width: 40px; height: 40px; padding: 0; justify-content: center; }
}

@media (max-width: 760px) {
  :root { --global-nav-h: 60px; }
  .sidebar { height: var(--global-nav-h); padding: 8px 10px; gap: 7px; }
  .brand { padding: 0; }
  .brand-mark { width: 36px; height: 36px; }
  .nav-item { min-height: 38px; width: 38px; padding: 8px; }
  .topbar { top: var(--global-nav-h); min-height: 60px; padding: 9px 14px; }
  .persistent-canvas-host.active { height: calc(100vh - var(--global-nav-h) - 60px); padding: 14px; }
  .page { padding: 14px; }
  .infinite-canvas-shell { height: calc(100vh - 148px); min-height: 540px; }
}
/* 套版模式 */
.template-intro{align-items:flex-end}.template-source-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:18px}.template-source-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.template-source-card>header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.template-source-card>header>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:var(--accent);background:rgba(83,226,207,.1)}.template-source-card>header svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8}.template-source-card>header div{min-width:0;flex:1}.template-source-card h3{margin:0 0 4px;font-size:17px}.template-source-card p,.template-source-card small{margin:0;color:var(--muted);font-size:12px}.template-source-card>header>b{white-space:nowrap;color:var(--accent);font-size:12px}.template-dropzone{display:grid;place-items:center;gap:5px;min-height:104px;border:1px dashed rgba(83,226,207,.38);border-radius:14px;background:rgba(4,17,33,.24);cursor:pointer;text-align:center}.template-dropzone:hover{border-color:var(--accent);background:rgba(83,226,207,.06)}.template-dropzone input,.template-copy-upload input{display:none}.template-dropzone span{font-weight:700}.template-dropzone small{max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-file-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;max-height:220px;overflow:auto}.template-file-list article{position:relative;min-width:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel-2)}.template-file-list article.invalid{border-color:rgba(255,97,97,.7)}.template-file-list img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}.template-file-list article>span{display:flex;gap:5px;padding:6px}.template-file-list article>span>b{color:var(--accent)}.template-file-list article>span small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-file-list button{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:50%;color:#fff;background:rgba(4,10,20,.82);cursor:pointer}.template-copy-card textarea{box-sizing:border-box;width:100%;min-height:152px;padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:var(--field);resize:vertical}.template-copy-upload{display:inline-flex;margin:10px 8px 6px 0}.template-match-panel,.template-run-panel,.template-results{margin-top:18px;padding:22px}.template-section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.template-section-head h3,.template-run-panel h3{margin:4px 0}.template-section-head p,.template-run-panel p{margin:0;color:var(--muted)}.template-match-table{display:grid;gap:8px}.template-match-row{display:grid;grid-template-columns:70px minmax(130px,1fr) minmax(180px,1.3fr) minmax(130px,1fr) 105px 76px;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.template-match-row.heading{border:0;background:transparent;color:var(--muted);font-size:12px}.template-match-row.incomplete{border-color:rgba(255,181,71,.35)}.template-match-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.template-match-row>span i{color:#f1b766;font-style:normal}.template-match-row>details{grid-column:1/-1;padding-top:10px;border-top:1px solid var(--line)}.template-match-row summary{color:var(--accent);cursor:pointer;font-size:13px}.template-match-row details textarea{box-sizing:border-box;width:100%;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--field);font-family:ui-monospace,Consolas,monospace}.template-confirm{display:flex;align-items:center;gap:6px;font-size:13px}.template-empty{display:grid;place-items:center;min-height:130px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.template-run-panel{display:flex;align-items:center;justify-content:space-between;gap:24px}.template-run-settings{display:flex;align-items:flex-end;gap:14px}.template-run-settings .model-controls{margin:0}.template-results{margin-bottom:30px}.template-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.template-result-grid article{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}.template-result-grid button{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer}.template-result-grid img,.template-result-wait{width:100%;aspect-ratio:1/1;object-fit:cover}.template-result-wait{display:grid;place-items:center;color:var(--muted);background:var(--field)}.template-result-grid article>span{display:flex;justify-content:space-between;gap:8px;padding:10px}.template-result-grid small{color:var(--muted)}
@media(max-width:1180px){.template-source-grid{grid-template-columns:1fr}.template-run-panel,.template-run-settings{align-items:stretch;flex-direction:column}.template-match-row{grid-template-columns:56px 1fr 1fr}.template-match-row.heading{display:none}.template-match-row>span:nth-of-type(4),.template-match-row>label{justify-self:start}}

/* v3.0 统一模块层级与当前页生图结果 */
.product-creation-tabs{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}
.creation-content,.creator-layout,.creator-main{min-width:0}.creation-content{margin-top:18px}
.module-results{margin-top:22px;padding:22px;border-radius:20px}
.module-results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}
.module-results-head h3{margin:6px 0 4px;font-size:1.08rem}.module-results-head p{margin:0;color:var(--muted);font-size:.76rem}
.module-results-empty{display:grid;place-items:center;min-height:116px;border:1px dashed var(--line);border-radius:14px;color:var(--muted-2)}
.module-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.module-result-grid>article{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--panel-strong)}
.module-result-media{position:relative;display:grid;grid-template-columns:repeat(2,1fr);height:210px;background:#07101e}
.module-result-media>button{min-width:0;padding:0;border:0;background:#07101e;cursor:zoom-in}.module-result-media img{width:100%;height:100%;display:block;object-fit:cover}
.module-result-media>.record-placeholder{grid-column:1/-1;height:100%;border-radius:0}.module-result-media>b{position:absolute;right:9px;bottom:9px;padding:5px 8px;border-radius:999px;background:rgba(4,10,20,.82);font-size:.7rem}
.module-result-body{padding:14px}.module-result-body h4{margin:9px 0 5px;font-size:.9rem}.module-result-body p{margin:0 0 12px;color:var(--muted);font-size:.72rem}.module-result-body>div{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.history-card .record-actions button{flex:1}.history-card .record-body h3{min-height:0}

.studio-import-dialog{width:min(980px,calc(100vw - 32px));max-width:none;max-height:min(88vh,860px);padding:0;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);overflow:hidden}
.studio-import-dialog::backdrop{background:rgba(2,7,14,.82);backdrop-filter:blur(5px)}
.studio-import-dialog>div{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:min(88vh,860px)}
.studio-import-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line-soft)}
.studio-import-dialog header>div>small{color:var(--accent);font-size:.62rem;font-weight:800;letter-spacing:.14em}.studio-import-dialog header h2{margin:5px 0 4px;font-size:1.15rem}.studio-import-dialog header p{margin:0;color:var(--muted);font-size:.75rem}
.studio-import-body{min-height:0;overflow:auto;padding:20px 22px}.studio-import-toolbar{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(420px,1.3fr);gap:18px;align-items:end;margin-bottom:18px}.studio-import-toolbar>div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.studio-import-toolbar>div:first-child small{color:var(--muted)}
.studio-import-fields{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(240px,1fr);gap:12px}.studio-import-fields .field{margin:0}
.studio-import-progress{flex:1 1 150px;height:7px;overflow:hidden;border-radius:999px;background:var(--panel-strong)}.studio-import-progress i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .2s ease}
.studio-import-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.studio-import-item{position:relative;display:grid;grid-template-rows:160px auto;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--panel-strong);cursor:pointer;transition:border-color .16s ease,transform .16s ease}.studio-import-item:hover{transform:translateY(-1px);border-color:var(--muted-2)}.studio-import-item.selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 38%,transparent)}
.studio-import-item>input{position:absolute;z-index:2;top:10px;left:10px;width:18px;height:18px;accent-color:var(--accent)}.studio-import-item img{width:100%;height:100%;display:block;object-fit:contain;background:#07101e}.studio-import-item>span{display:flex;justify-content:space-between;gap:8px;padding:10px 11px}.studio-import-item b{font-size:.76rem}.studio-import-item small{overflow:hidden;color:var(--muted);font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}
.studio-import-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 22px;border-top:1px solid var(--line-soft)}.studio-import-dialog footer>span{color:var(--muted);font-size:.7rem}.studio-import-dialog footer>div{display:flex;gap:9px}
.storage-cleanup-trigger{display:block;margin-top:9px;padding:6px 9px;font-size:.66rem}
.visual-group-summary-actions{display:grid;justify-items:end;gap:8px}.visual-group-summary-actions .btn{font-size:.65rem;padding:7px 9px}
@media(max-width:1050px){.visual-group-summary-actions{grid-column:2;display:flex;align-items:center;justify-content:flex-start;justify-items:start;gap:8px}}
.storage-cleanup-dialog{width:min(650px,calc(100vw - 28px));max-width:none;padding:0;border:1px solid var(--line);border-radius:17px;background:var(--panel);color:var(--text)}
.storage-cleanup-dialog::backdrop{background:rgba(2,7,14,.78);backdrop-filter:blur(4px)}
.storage-cleanup-dialog>div{padding:21px}.storage-cleanup-dialog header{display:flex;justify-content:space-between;gap:16px;margin-bottom:17px}.storage-cleanup-dialog header small,.single-studio-save-dialog small{color:var(--accent);font-size:.62rem;font-weight:800;letter-spacing:.14em}.storage-cleanup-dialog header h2{margin:5px 0;font-size:1.1rem}.storage-cleanup-dialog header p{margin:0;color:var(--muted);font-size:.74rem}
.storage-cleanup-loading{display:flex;align-items:center;gap:10px;padding:25px 5px;color:var(--muted);font-size:.8rem}.storage-cleanup-options{display:grid;gap:9px}.storage-cleanup-option{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel-strong);cursor:pointer}.storage-cleanup-option input{width:17px;height:17px;accent-color:var(--accent)}.storage-cleanup-option span{display:grid;gap:5px}.storage-cleanup-option b{font-size:.78rem}.storage-cleanup-option small{color:var(--muted);font-size:.66rem;line-height:1.5}.storage-cleanup-option strong{font-size:.72rem;white-space:nowrap}.storage-cleanup-summary{display:flex;justify-content:space-between;gap:12px;margin:16px 0 7px;padding:12px 14px;border-radius:10px;background:rgba(94,234,212,.06);font-size:.72rem;color:var(--muted)}.storage-cleanup-summary b{color:var(--text)}.storage-cleanup-note{margin:0;color:var(--muted-2);font-size:.66rem;line-height:1.55}.storage-cleanup-dialog footer{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.single-studio-save-dialog form{display:grid;gap:13px}.single-studio-save-dialog header{display:flex;justify-content:space-between;gap:16px}.single-studio-save-dialog header h2{margin:5px 0;font-size:1.05rem}.single-studio-save-dialog header p{margin:0;color:var(--muted);font-size:.72rem}.single-studio-save-dialog .field{margin:0}.single-studio-save-dialog .dialog-actions{margin-top:4px}
@media(max-width:760px){.visual-group-summary-actions{justify-items:start;grid-column:2}.visual-group-summary-actions .visual-group-manage{display:none}.storage-cleanup-dialog>div{padding:16px}.storage-cleanup-option{grid-template-columns:18px minmax(0,1fr)}.storage-cleanup-option>strong{grid-column:2}.storage-cleanup-summary{flex-direction:column}.viewer-bar{height:auto;min-height:58px;align-items:flex-start;padding-top:10px;padding-bottom:10px}.viewer-bar>div{flex-wrap:wrap;justify-content:flex-end}.viewer-counter{align-self:center}}

.ai-image-edit-dialog { width: min(94vw, 1360px); height: min(90vh, 900px); padding: 0; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); color: var(--text); overflow: hidden; }
.ai-image-edit-dialog::backdrop { background: rgba(2,6,12,.86); backdrop-filter: blur(6px); }
.ai-image-edit-dialog form { height: 100%; display: flex; flex-direction: column; }
.ai-image-edit-dialog header { min-height: 76px; padding: 15px 20px; border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; justify-content: space-between; background: #0c1524; }
.ai-image-edit-dialog header small { color: var(--accent); font-size: .64rem; font-weight: 800; letter-spacing: .14em; }
.ai-image-edit-dialog header h2 { margin: 4px 0 2px; font-size: 1.05rem; }
.ai-image-edit-dialog header p { margin: 0; color: var(--muted); font-size: .72rem; }
.ai-edit-layout { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0,1fr) 330px; }
.ai-edit-stage { min-width: 0; min-height: 0; padding: 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; background: #070d17; overflow: hidden; }
.ai-edit-image-frame { position: relative; display: inline-block; max-width: 100%; max-height: calc(100% - 52px); cursor: crosshair; touch-action: none; user-select: none; box-shadow: 0 18px 55px rgba(0,0,0,.38); }
.ai-edit-image-frame img { display: block; max-width: 100%; max-height: calc(90vh - 190px); object-fit: contain; pointer-events: none; user-select: none; }
.ai-edit-selection { position: absolute; border: 2px solid var(--accent); background: rgba(94,234,212,.13); box-shadow: 0 0 0 9999px rgba(3,8,15,.28), inset 0 0 0 1px rgba(255,255,255,.42); pointer-events: none; }
.ai-edit-selection::before,.ai-edit-selection::after { content:""; position:absolute; width:8px; height:8px; border-radius:50%; background:var(--accent); border:2px solid #07111f; }
.ai-edit-selection::before { left:-5px; top:-5px; }.ai-edit-selection::after { right:-5px; bottom:-5px; }
.ai-edit-stage-tools { width: min(100%, 760px); display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: .72rem; }
.ai-edit-controls { padding: 22px; border-left: 1px solid var(--line); background: #101b2d; display: flex; flex-direction: column; gap: 15px; overflow-y: auto; }
.ai-edit-upload { display: grid; gap: 8px; }
.ai-edit-upload > span { color: var(--text); font-size: .76rem; font-weight: 700; }
.ai-edit-upload label { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; cursor: pointer; }
.ai-edit-upload label svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.ai-edit-upload label input { display: none; }
.ai-edit-upload > small { overflow: hidden; color: var(--muted); font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.ai-edit-controls textarea { min-height: 190px; }
.ai-edit-note { padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #0c1728; display: grid; gap: 6px; }
.ai-edit-note b { font-size: .76rem; }.ai-edit-note span { color: var(--muted); font-size: .7rem; line-height: 1.65; }

.ie-container { width: 96vw; max-width: none; height: 94vh; max-height: none; background: var(--panel); border-color: var(--line); border-radius: 18px; }
.ie-header,.ie-toolbar,.ie-layer-panel { background: #0c1524; border-color: var(--line); }
.ie-canvas-wrap { background: #070d17; }
.ie-tool.active { background: var(--accent); color: #07111f; }
.ie-tool:hover { background: rgba(94,234,212,.1); color: var(--accent); }
.ie-tool-options-popover { background: #101b2d; border-color: var(--line); box-shadow: 10px 0 28px rgba(0,0,0,.28); }
.ie-confirm-btn { background: var(--accent) !important; color: #07111f !important; }
.ie-layer-item.active { border-color: var(--accent) !important; background: rgba(94,234,212,.08) !important; }

@media(max-width:900px){.ai-edit-layout{grid-template-columns:1fr}.ai-edit-controls{border-left:0;border-top:1px solid var(--line);max-height:42vh}.ai-edit-stage{min-height:42vh}.viewer-bar>div{flex-wrap:wrap;justify-content:flex-end}}
.panel,.module-card,.history-card{border-color:rgba(124,156,255,.16)}
.creation-mode-tabs,.studio-library-tabs,.smart-visual-tabs{border-radius:16px;padding:6px}
@media(max-width:1100px){.module-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page{padding-inline:24px}}
@media(max-width:760px){.module-results-head{align-items:stretch;flex-direction:column}.module-result-grid{grid-template-columns:1fr}.module-result-media{height:240px}.page{padding:14px}}
@media(max-width:760px){.studio-import-toolbar{grid-template-columns:1fr}.studio-import-fields{grid-template-columns:1fr}.studio-import-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-import-item{grid-template-rows:130px auto}.studio-import-dialog footer{align-items:stretch;flex-direction:column}.studio-import-dialog footer>div{display:grid;grid-template-columns:1fr 1fr}}

/* v3.1 套版模式逐行生产流水线 */
.template-batch-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px;margin-bottom:16px;border-radius:20px}
.template-batch-upload{display:flex;align-items:center;gap:12px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--panel-strong)}
.template-batch-upload>header{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.template-batch-upload>header>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:11px;color:var(--accent);background:rgba(94,234,212,.09)}.template-batch-upload svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}.template-batch-upload header div{min-width:0}.template-batch-upload h3{margin:0 0 4px;font-size:.88rem}.template-batch-upload p{margin:0;color:var(--muted);font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-batch-upload header>b{color:var(--accent);font-size:.68rem;white-space:nowrap}.template-batch-upload>label{display:grid;gap:3px;flex:0 0 auto;padding:9px 11px;border:1px solid rgba(94,234,212,.28);border-radius:10px;cursor:pointer;background:rgba(94,234,212,.06)}.template-batch-upload>label:hover{border-color:var(--accent)}.template-batch-upload input{display:none}.template-batch-upload label span{font-size:.72rem;font-weight:800}.template-batch-upload label small{color:var(--muted-2);font-size:.58rem}
.template-line-toolbar{position:sticky;top:152px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin-bottom:12px;border-radius:17px}.template-line-toolbar>div:first-child b,.template-line-toolbar>div:first-child span{display:block}.template-line-toolbar>div:first-child span{margin-top:4px;color:var(--muted);font-size:.7rem}.template-line-toolbar>div:last-child{display:flex;align-items:flex-end;gap:8px}.template-line-toolbar .model-controls{margin:0}.template-line-toolbar .model-controls label:not(:first-child){display:none}
.template-pipeline{display:grid;gap:10px;min-width:1120px;padding-bottom:28px}.template-pipeline-head,.template-pipeline-row{display:grid;grid-template-columns:74px minmax(150px,.8fr) minmax(230px,1.15fr) minmax(330px,1.65fr) minmax(210px,1fr);gap:10px}.template-pipeline-head{position:sticky;top:222px;z-index:5;padding:8px 13px;color:var(--muted);font-size:.68rem;font-weight:800;background:var(--bg)}.template-pipeline-row{align-items:stretch;padding:12px;border:1px solid var(--line-soft);border-radius:18px;background:var(--panel);box-shadow:0 10px 28px rgba(0,0,0,.1)}.template-pipeline-row.incomplete{border-color:rgba(244,186,97,.28)}
.template-sequence{display:flex;align-items:center;flex-direction:column;gap:9px;padding-top:4px}.template-sequence>b{font-size:1.1rem}.template-sequence>button{margin-top:auto;padding:0;border:0;color:var(--danger);background:none;cursor:pointer;font-size:.62rem}
.template-product-cell,.template-copy-cell,.template-layout-cell,.template-result-cell{min-width:0;padding:9px;border:1px solid var(--line-soft);border-radius:13px;background:var(--panel-strong)}.template-product-cell figure,.template-layout-cell figure{margin:0}.template-product-cell img,.template-layout-cell figure img{width:100%;height:150px;display:block;object-fit:contain;border-radius:9px;background:#07101e}.template-product-cell figcaption,.template-layout-cell figcaption{padding:7px 2px 1px;color:var(--muted);font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-cell-empty{display:grid;place-items:center;height:150px;border:1px dashed var(--line);border-radius:9px;color:var(--warning);font-size:.7rem}
.template-copy-cell>img{width:100%;height:72px;display:block;object-fit:cover;margin-bottom:7px;border-radius:8px}.template-copy-cell textarea,.template-layout-cell textarea{width:100%;padding:9px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--field);font-size:.7rem;line-height:1.55;resize:vertical}.template-copy-cell>small{display:block;margin-top:6px;color:var(--muted-2);font-size:.6rem}.template-layout-cell>textarea{margin-top:8px}.template-layout-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;margin-top:7px}.template-layout-actions select{min-width:0;height:34px}.template-layout-cell details{margin-top:8px}.template-layout-cell summary{color:var(--accent);cursor:pointer;font-size:.65rem}
.template-result-cell{display:flex;flex-direction:column;gap:8px}.template-result-cell>button{width:100%;height:180px;padding:0;border:0;border-radius:9px;overflow:hidden;background:#07101e;cursor:zoom-in}.template-result-cell>button img{width:100%;height:100%;object-fit:contain}.template-result-state{display:grid;place-items:center;align-content:center;gap:7px;min-height:180px;border:1px dashed var(--line);border-radius:9px;color:var(--muted)}.template-result-state svg{width:26px;height:26px;fill:none;stroke:var(--accent);stroke-width:1.6}.template-result-state b{font-size:.76rem}.template-result-state small{max-width:180px;color:var(--muted-2);font-size:.6rem;text-align:center}.template-row-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.template-row-actions .btn{flex:1;min-width:70px}.template-empty.panel{margin-top:12px}
@media(max-width:1200px){.template-batch-bar{grid-template-columns:1fr}.template-batch-upload{align-items:center}.template-line-toolbar{position:static;align-items:stretch;flex-direction:column}.template-line-toolbar>div:last-child{flex-wrap:wrap}.template-pipeline{overflow-x:auto}.template-pipeline-head{position:static}}
@media(max-width:760px){.template-batch-upload{align-items:stretch;flex-direction:column}.template-batch-upload>label{text-align:center}.template-line-toolbar>div:last-child{align-items:stretch;flex-direction:column}.template-line-toolbar .model-controls{overflow-x:auto}.template-pipeline{min-width:980px}}

/* v3.1 套版流水线：只让表格本身横向滚动，避免撑开或裁切整页。 */
.template-pipeline{min-width:0;overflow-x:auto}
.template-pipeline-head,.template-pipeline-row{min-width:1120px}
@media(max-width:760px){.template-pipeline{min-width:0}.template-pipeline-head,.template-pipeline-row{min-width:980px}}

/* v3.1.1 套版任务卡片：降低横向密度，给版式提示词独立编辑空间。 */
.template-batch-upload{align-items:stretch;flex-direction:column}
.template-batch-upload>label{width:100%;text-align:center}
.template-batch-upload>header{width:100%}
.template-job-list{display:grid;gap:20px;padding-bottom:30px}
.template-job-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:0 14px 38px rgba(0,0,0,.12)}
.template-job-card.incomplete{border-color:rgba(244,186,97,.32)}
.template-job-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid var(--line-soft);background:rgba(255,255,255,.018)}
.template-job-head>div{display:flex;align-items:center;gap:10px;min-width:0}
.template-job-head>div:last-child{justify-content:flex-end;flex-wrap:wrap}
.template-job-head small{color:var(--muted)}
.template-job-number{font-size:1rem;font-weight:900;color:var(--text)}
.template-job-sources{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(280px,1.15fr) minmax(250px,1fr);gap:14px;padding:18px}
.template-job-source{display:flex;min-width:0;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line-soft);border-radius:16px;background:var(--panel-2)}
.template-job-source>label,.template-job-result>label,.template-row-prompt label{font-size:.8rem;font-weight:900;color:var(--text)}
.template-job-source figure{display:flex;min-height:230px;margin:0;flex-direction:column;overflow:hidden;border:1px solid var(--line-soft);border-radius:13px;background:var(--bg)}
.template-job-source figure img{width:100%;height:200px;object-fit:contain;background:#07111f}
.template-job-source figure figcaption{overflow:hidden;padding:9px 11px;color:var(--muted);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}
.template-job-copy>img{width:100%;height:92px;object-fit:contain;border-radius:10px;background:var(--bg)}
.template-job-copy textarea{min-height:185px;resize:vertical}
.template-job-copy small{color:var(--muted);line-height:1.5}
.template-job-layout .template-layout-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px}
.template-job-layout select{width:100%;min-width:0}
.template-row-prompt{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;padding:0 18px 18px}
.template-row-prompt>div{display:flex;flex-direction:column;gap:5px;padding-top:13px}
.template-row-prompt small{color:var(--muted)}
.template-row-prompt textarea{min-height:118px;resize:vertical;border-color:rgba(83,224,207,.24);background:rgba(83,224,207,.025)}
.template-analysis-details{margin:0 18px 18px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:14px;background:var(--panel-2)}
.template-analysis-details summary{cursor:pointer;color:var(--accent);font-weight:800}
.template-analysis-details textarea{width:100%;min-height:150px;margin-top:12px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}
.template-job-result{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:18px;padding:16px 18px;border-top:1px solid var(--line-soft);background:rgba(4,13,25,.22)}
.template-result-preview{min-height:106px}
.template-result-preview>button{display:block;overflow:hidden;width:150px;height:106px;padding:0;border:1px solid var(--line-soft);border-radius:12px;background:var(--bg)}
.template-result-preview img{width:100%;height:100%;object-fit:contain}
.template-result-preview .template-result-state{display:flex;min-height:106px;align-items:center;justify-content:center;gap:14px;border:1px dashed var(--line);border-radius:13px;color:var(--muted)}
.template-result-preview .template-result-state svg{width:24px;height:24px;color:var(--accent)}
.template-result-preview .template-result-state span{display:flex;flex-direction:column;gap:4px}
.template-cell-empty{display:grid;min-height:230px;place-items:center;border:1px dashed var(--line);border-radius:13px;color:#f4ba61;background:rgba(244,186,97,.025)}
@media(max-width:1180px){.template-job-sources{grid-template-columns:1fr 1fr}.template-job-layout{grid-column:1/-1}.template-job-layout figure{min-height:260px}.template-job-layout figure img{height:230px}}
@media(max-width:780px){.template-job-head{align-items:flex-start;flex-direction:column}.template-job-head>div:last-child{justify-content:flex-start}.template-job-sources{grid-template-columns:1fr}.template-job-layout{grid-column:auto}.template-row-prompt,.template-job-result{grid-template-columns:1fr;gap:9px}.template-row-prompt>div{padding-top:0}.template-result-preview>button{width:100%;height:190px}}

/* v3.2 套版模式：三类批量输入、一个全局提示词、四段式结果矩阵。 */
.template-global-panel{display:grid;gap:16px;margin-bottom:18px;padding:20px;border-radius:20px}
.template-global-copy h3{margin:4px 0 6px;font-size:1.05rem}.template-global-copy p{margin:0;color:var(--muted);font-size:.74rem}
.template-global-panel>textarea{box-sizing:border-box;width:100%;min-height:126px;padding:14px 16px;border:1px solid rgba(83,224,207,.28);border-radius:14px;color:var(--text);background:rgba(83,224,207,.025);line-height:1.65;resize:vertical}
.template-global-panel>textarea:focus{outline:2px solid rgba(83,224,207,.18);border-color:var(--accent)}
.template-library-picker{overflow:hidden;border:1px solid rgba(83,226,207,.28);border-radius:11px;background:rgba(83,226,207,.04)}
.template-library-picker>summary{display:grid;gap:3px;padding:9px 11px;cursor:pointer;list-style:none;text-align:center}.template-library-picker>summary::-webkit-details-marker{display:none}.template-library-picker>summary span{font-size:.72rem;font-weight:800}.template-library-picker>summary small{color:var(--muted-2);font-size:.58rem}
.template-standard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;padding:10px;overflow:auto;border-top:1px solid var(--line-soft)}
.template-standard-card{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:7px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel-2);cursor:pointer}.template-standard-card:hover,.template-standard-card.selected{border-color:rgba(83,226,207,.55);background:rgba(83,226,207,.08)}
.template-standard-card>input{position:absolute;top:6px;right:6px;z-index:1}.template-standard-card>img,.template-standard-empty{width:54px;height:54px;border-radius:7px;object-fit:cover;background:#07111f}.template-standard-empty{display:grid;place-items:center;color:var(--muted-2);font-size:.55rem}.template-standard-card>span:last-child{display:grid;gap:4px;min-width:0}.template-standard-card b,.template-standard-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-standard-card b{font-size:.68rem}.template-standard-card small{color:var(--muted);font-size:.58rem}
.template-library-empty{display:grid;place-items:center;gap:8px;padding:18px;border-top:1px solid var(--line-soft);text-align:center}.template-library-empty p{margin:0;color:var(--muted);font-size:.68rem}
.template-global-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-top:14px;border-top:1px solid var(--line-soft)}
.template-global-actions>div:first-child b,.template-global-actions>div:first-child span{display:block}.template-global-actions>div:first-child span{margin-top:5px;color:var(--muted);font-size:.7rem}.template-global-actions>div:last-child{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.template-global-actions .model-controls{margin:0}.template-global-actions .model-controls label:not(:first-child){display:none}
.template-matrix{display:grid;gap:12px;padding-bottom:30px}
.template-matrix-head,.template-matrix-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.template-matrix-head{padding:0 18px;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.04em}
.template-matrix-row{position:relative;padding:62px 16px 16px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:0 14px 38px rgba(0,0,0,.1)}
.template-matrix-row.incomplete{border-color:rgba(244,186,97,.3)}
.template-matrix-row>header{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;height:50px;padding:0 16px;border-bottom:1px solid var(--line-soft);background:rgba(255,255,255,.018)}
.template-matrix-row>header>div{display:flex;align-items:center;gap:9px;min-width:0}.template-matrix-row>header small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.template-matrix-cell{display:flex;min-width:0;min-height:320px;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line-soft);border-radius:15px;background:var(--panel-2)}
.template-matrix-cell>label{font-size:.78rem;font-weight:900}.template-matrix-cell figure{display:flex;min-height:254px;margin:0;flex:1;flex-direction:column;overflow:hidden;border:1px solid var(--line-soft);border-radius:12px;background:var(--bg)}
.template-matrix-cell figure img{width:100%;min-height:220px;flex:1;object-fit:contain;background:#07111f}.template-matrix-cell figure figcaption{overflow:hidden;padding:8px 10px;color:var(--muted);font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}
.template-matrix-cell .template-cell-empty{min-height:254px;flex:1}.template-copy-cell>img{height:86px;object-fit:contain}.template-copy-cell textarea{min-height:185px;flex:1;resize:vertical}.template-copy-cell>small{color:var(--muted);font-size:.65rem;line-height:1.5}
.template-output-cell .template-result-state{min-height:254px;flex:1}.template-output-preview{display:block;overflow:hidden;width:100%;min-height:254px;flex:1;padding:0;border:1px solid var(--line-soft);border-radius:12px;background:var(--bg);cursor:zoom-in}.template-output-preview img{width:100%;height:100%;min-height:254px;object-fit:contain}.template-output-cell .template-row-actions{margin-top:0}
@media(max-width:1250px){.template-matrix-head{display:none}.template-matrix-row{grid-template-columns:1fr 1fr}.template-global-actions{align-items:stretch;flex-direction:column}.template-global-actions>div:last-child{justify-content:flex-start}}
@media(max-width:760px){.template-matrix-row{grid-template-columns:1fr;padding-inline:12px}.template-matrix-row>header{align-items:flex-start;height:auto;min-height:50px;padding-block:9px}.template-matrix-row{padding-top:76px}.template-matrix-cell{min-height:0}.template-global-actions>div:last-child{align-items:stretch;flex-direction:column}.template-global-actions .model-controls{overflow-x:auto}.template-standard-grid{grid-template-columns:1fr}}

/* v3.3 无限生图：画布工具模板目录与无节点运行页。 */
.infinite-image-intro{align-items:flex-end}.infinite-image-intro .text-button{display:block;margin:0 0 14px;padding:0;border:0;color:var(--accent);background:none;cursor:pointer;font-weight:800}.infinite-image-intro>.btn svg,.infinite-tool-runner .btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.infinite-tool-version{display:flex;align-items:center;gap:10px}.infinite-tool-version span,.infinite-tool-version b{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.infinite-tool-version span{color:var(--accent)}
.infinite-tool-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px;padding:14px 16px}.infinite-tool-toolbar .category-tabs{margin:0}.infinite-tool-toolbar .search-box{min-width:300px}.infinite-tool-toolbar .search-box svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:var(--muted);stroke-width:1.7}.infinite-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-bottom:36px}.infinite-tool-card{overflow:hidden;padding:0}.infinite-tool-cover{position:relative;display:grid;height:170px;place-items:center;background:radial-gradient(circle at 35% 30%,rgba(83,226,207,.18),transparent 42%),linear-gradient(145deg,#122239,#091322)}.infinite-tool-cover>svg{width:54px;height:54px;fill:none;stroke:var(--accent);stroke-width:1.25}.infinite-tool-cover>img{width:100%;height:100%;object-fit:cover}.infinite-tool-cover>span{position:absolute;right:12px;bottom:12px;padding:5px 9px;border:1px solid rgba(83,226,207,.32);border-radius:999px;color:var(--accent);background:rgba(5,15,27,.84);font-size:.65rem;font-weight:800}.infinite-tool-card-body{display:grid;gap:10px;padding:17px}.infinite-tool-card-body>small{color:var(--accent);font-size:.62rem;letter-spacing:.05em}.infinite-tool-card-body h3{margin:0;font-size:1.02rem}.infinite-tool-card-body p{min-height:42px;margin:0;color:var(--muted);font-size:.72rem;line-height:1.55}.infinite-tool-meta{display:flex;gap:7px;flex-wrap:wrap}.infinite-tool-meta span{padding:5px 8px;border:1px solid var(--line-soft);border-radius:999px;color:var(--muted);font-size:.62rem}.infinite-tool-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding-top:5px}.infinite-tool-actions .danger{color:var(--danger)}.infinite-tools-empty{display:grid;min-height:360px;place-items:center;align-content:center;gap:12px;text-align:center}.infinite-tools-empty>svg,.infinite-result-empty>svg{width:48px;height:48px;fill:none;stroke:var(--accent);stroke-width:1.4}.infinite-tools-empty h3,.infinite-result-empty h3{margin:0}.infinite-tools-empty p,.infinite-result-empty p{max-width:520px;margin:0;color:var(--muted)}
.infinite-tool-runner{margin-bottom:18px;padding:22px}.infinite-tool-runner>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--line-soft)}.infinite-tool-runner>header>div{display:flex;align-items:center;gap:12px}.infinite-tool-runner h3{margin:0 0 4px}.infinite-tool-runner p{margin:0;color:var(--muted);font-size:.72rem}.infinite-tool-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px 0}.infinite-tool-field{display:grid;gap:8px}.infinite-tool-field>span{font-size:.76rem;font-weight:900}.infinite-tool-field i{margin-left:4px;color:var(--danger);font-style:normal}.infinite-tool-field textarea{min-height:130px;resize:vertical}.infinite-tool-upload{position:relative;display:grid;min-height:150px;place-items:center;align-content:center;gap:6px;overflow:hidden;border:1px dashed var(--line);border-radius:16px;background:var(--panel-2);cursor:pointer}.infinite-tool-upload:hover{border-color:var(--accent);background:rgba(83,226,207,.04)}.infinite-tool-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.infinite-tool-upload>span svg{width:27px;height:27px;fill:none;stroke:var(--accent);stroke-width:1.6}.infinite-tool-upload small{color:var(--muted)}.infinite-tool-upload>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.22;pointer-events:none}.infinite-tool-upload b,.infinite-tool-upload small,.infinite-tool-upload>span{position:relative;z-index:1}.infinite-no-input{grid-column:1/-1;padding:34px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);text-align:center}.infinite-tool-runner>footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:18px;border-top:1px solid var(--line-soft)}.infinite-tool-runner>footer>div{display:grid;gap:4px}.infinite-tool-runner>footer span{color:var(--muted);font-size:.68rem}.infinite-run-button{min-width:210px}.infinite-run-status{margin-bottom:18px;padding:20px}.infinite-progress-head{display:flex;align-items:center;gap:13px}.infinite-progress-head>div{display:grid;gap:4px;flex:1}.infinite-progress-head small{color:var(--muted)}.infinite-progress-head>strong{color:var(--accent)}.infinite-progress-track{height:6px;margin-top:15px;overflow:hidden;border-radius:999px;background:var(--field)}.infinite-progress-track i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .25s}.infinite-result-empty{display:grid;min-height:240px;place-items:center;align-content:center;gap:10px;text-align:center}.infinite-results{padding:20px}.infinite-results>header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.infinite-results h3{margin:4px 0}.infinite-results p{margin:0;color:var(--muted);font-size:.68rem}.infinite-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.infinite-result-grid article{overflow:hidden;border:1px solid var(--line-soft);border-radius:14px;background:var(--panel-2)}.infinite-result-grid article>button{display:block;width:100%;height:230px;padding:0;border:0;background:#07111f;cursor:zoom-in}.infinite-result-grid img{width:100%;height:100%;object-fit:contain}.infinite-result-grid footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px}.infinite-result-grid footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.infinite-text-results{display:grid;gap:12px;margin-top:14px}.infinite-text-results article{padding:14px;border:1px solid var(--line-soft);border-radius:13px;background:var(--panel-2)}.infinite-text-results pre{margin:9px 0 0;white-space:pre-wrap;color:var(--muted);font:inherit;line-height:1.65}
.infinite-workflow-panel{margin-bottom:18px;padding:22px}.infinite-workflow-panel>header,.infinite-expected-results>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--line-soft)}.infinite-workflow-panel>header>div,.infinite-expected-results>header>div{display:flex;align-items:center;gap:12px}.infinite-workflow-panel h3,.infinite-expected-results h3{margin:0 0 4px}.infinite-workflow-panel p,.infinite-expected-results p{margin:0;color:var(--muted);font-size:.72rem}.infinite-workflow-stats{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.infinite-workflow-stats span,.infinite-expected-results>header>span{padding:6px 9px;border:1px solid var(--line-soft);border-radius:999px;color:var(--muted);font-size:.64rem}.infinite-workflow-map{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding:20px 2px 14px;scrollbar-width:thin}.infinite-workflow-map>em{align-self:center;color:#466077;font-style:normal}.infinite-flow-step{display:flex;align-items:center;gap:9px;min-width:180px;padding:11px;border:1px solid var(--line-soft);border-radius:13px;background:var(--panel-2)}.infinite-flow-step>span{display:grid;width:28px;height:28px;place-items:center;flex:0 0 auto;border-radius:9px;background:#162940;color:var(--muted);font-size:.61rem;font-weight:900}.infinite-flow-step>div{display:grid;min-width:0;gap:3px}.infinite-flow-step b,.infinite-flow-step small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.infinite-flow-step b{font-size:.72rem}.infinite-flow-step small{color:var(--muted);font-size:.59rem}.infinite-flow-step>i{margin-left:auto;color:var(--accent);font-size:.55rem;font-style:normal;white-space:nowrap}.infinite-flow-step.input{border-color:rgba(83,226,207,.3)}.infinite-flow-step.input>span{color:var(--accent);background:rgba(83,226,207,.1)}.infinite-flow-step.process{border-color:rgba(93,144,255,.34)}.infinite-flow-step.process>span{color:#8db2ff;background:rgba(93,144,255,.12)}.infinite-flow-step.output{border-color:rgba(246,187,67,.34)}.infinite-flow-step.output>span{color:#f6bb43;background:rgba(246,187,67,.1)}.infinite-process-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:8px}.infinite-process-list article{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line-soft);border-radius:12px;background:rgba(6,16,29,.44)}.infinite-process-list article>span{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:rgba(93,144,255,.13);color:#8db2ff;font-size:.64rem;font-weight:900}.infinite-process-list article>div{display:grid;min-width:0;gap:3px;flex:1}.infinite-process-list article b,.infinite-process-list article small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.infinite-process-list article small{color:var(--muted);font-size:.6rem}.infinite-process-list article>strong{color:var(--accent);font-size:.58rem;white-space:nowrap}.infinite-expected-results{margin-bottom:18px;padding:22px}.infinite-output-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding-top:18px}.infinite-output-slots article{display:grid;min-height:150px;place-items:center;align-content:center;gap:7px;border:1px dashed var(--line);border-radius:14px;background:var(--panel-2);text-align:center}.infinite-output-slots article>span{color:#f6bb43;font-size:.62rem;font-weight:900}.infinite-output-slots article>svg{width:30px;height:30px;fill:none;stroke:var(--muted);stroke-width:1.5}.infinite-output-slots article small{color:var(--muted);font-size:.61rem}.infinite-output-result-list{display:grid;gap:14px}.infinite-output-result{padding:15px;border:1px solid var(--line-soft);border-radius:15px;background:var(--panel-2)}.infinite-output-result>header{display:flex;align-items:center;gap:10px;margin-bottom:13px}.infinite-output-result>header>span{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:rgba(246,187,67,.1);color:#f6bb43;font-size:.62rem;font-weight:900}.infinite-output-result>header>div{display:grid;gap:3px;flex:1}.infinite-output-result>header small{color:var(--muted);font-size:.61rem}.infinite-output-result>header i{font-size:.62rem;font-style:normal}.infinite-output-result>header i.success{color:var(--success)}.infinite-output-result>header i.error{color:var(--danger)}.infinite-output-empty{padding:20px!important;text-align:center}.infinite-output-result .infinite-result-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.infinite-sheet{overflow:hidden;margin-bottom:30px;padding:0}.infinite-sheet-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line-soft);background:var(--panel-2)}.infinite-sheet-toolbar>div{display:flex;align-items:center;gap:10px}.infinite-sheet-toolbar>div:first-child{display:grid;gap:2px}.infinite-sheet-toolbar span{color:var(--muted);font-size:.63rem}.infinite-sheet-toolbar .btn svg,.infinite-sheet-module header svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}.infinite-sheet-grid{display:grid;grid-template-columns:180px minmax(260px,1.15fr) minmax(260px,1fr) minmax(230px,.9fr) minmax(320px,1.25fr);min-height:540px}.infinite-sheet-control,.infinite-sheet-module{min-width:0;padding:16px;border-right:1px solid var(--line-soft)}.infinite-sheet-control{display:flex;flex-direction:column;gap:10px}.infinite-sheet-control>span{color:var(--accent);font-size:1.15rem;font-weight:950}.infinite-sheet-control>small{color:var(--muted);font-size:.65rem;line-height:1.55}.infinite-sheet-control>.btn.primary{margin-top:6px}.infinite-sheet-module>header{display:flex;align-items:center;gap:9px;margin-bottom:13px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}.infinite-sheet-module>header>div{display:grid;gap:2px}.infinite-sheet-module>header small{color:var(--muted);font-size:.59rem}.infinite-sheet-upload-list{display:grid;gap:11px;max-height:455px;overflow:auto}.infinite-sheet-upload .infinite-tool-upload{min-height:180px}.infinite-sheet-upload .infinite-tool-upload small{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.infinite-prompt-scroll,.infinite-model-scroll,.infinite-compact-results{display:grid;gap:10px;max-height:430px;overflow:auto;padding-right:3px}.infinite-prompt-scroll article{padding:11px;border:1px solid var(--line-soft);border-radius:11px;background:rgba(6,16,29,.38)}.infinite-prompt-scroll article b{font-size:.68rem}.infinite-prompt-scroll article p{margin:7px 0 0;color:var(--muted);font-size:.65rem;line-height:1.6;white-space:pre-wrap}.infinite-sheet-module>footer{margin-top:12px;color:var(--muted);font-size:.58rem}.infinite-model-scroll article{display:flex;gap:9px;padding:11px;border:1px solid var(--line-soft);border-radius:11px}.infinite-model-scroll article>span{display:grid;width:25px;height:25px;place-items:center;flex:0 0 auto;border-radius:8px;background:rgba(93,144,255,.13);color:#8db2ff;font-size:.59rem;font-weight:900}.infinite-model-scroll article>div{min-width:0;flex:1}.infinite-model-scroll article small{display:block;margin-top:3px;overflow:hidden;color:var(--muted);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.infinite-model-scroll dl{display:grid;gap:5px;margin:10px 0 0}.infinite-model-scroll dl>div{display:flex;justify-content:space-between;gap:10px}.infinite-model-scroll dt,.infinite-model-scroll dd{margin:0;font-size:.6rem}.infinite-model-scroll dt{color:var(--muted)}.infinite-compact-results>article{padding:10px;border:1px solid var(--line-soft);border-radius:11px;background:rgba(6,16,29,.38)}.infinite-compact-result-head{display:flex;align-items:center;gap:7px;margin-bottom:8px}.infinite-compact-result-head span{color:#f6bb43;font-size:.57rem;font-weight:900}.infinite-compact-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.infinite-compact-images figure{position:relative;overflow:hidden;margin:0;border-radius:8px;background:#07111f}.infinite-compact-images button{display:block;width:100%;height:120px;padding:0;border:0;background:none;cursor:zoom-in}.infinite-compact-images img{width:100%;height:100%;object-fit:contain}.infinite-compact-images a{position:absolute;right:5px;bottom:5px;padding:3px 6px;border-radius:6px;color:#fff;background:rgba(4,12,22,.78);font-size:.53rem}.infinite-result-placeholder{display:grid;height:150px;place-items:center;align-content:center;gap:7px;border:1px dashed var(--line);border-radius:9px}.infinite-result-placeholder svg{width:28px;height:28px;fill:none;stroke:var(--muted);stroke-width:1.5}.infinite-result-placeholder small,.infinite-module-empty{color:var(--muted);font-size:.62rem}.infinite-compact-results pre{max-height:160px;margin:0;overflow:auto;white-space:pre-wrap;color:var(--muted);font:inherit;font-size:.62rem}.infinite-sheet-progress{padding:14px 16px;border-top:1px solid var(--line-soft)}.infinite-sheet-progress>div{display:flex;align-items:center;gap:10px}.infinite-sheet-progress strong{margin-left:auto;color:var(--accent)}.infinite-sheet-progress>i{display:block;height:5px;margin-top:10px;overflow:hidden;border-radius:999px;background:var(--field)}.infinite-sheet-progress>i>em{display:block;height:100%;border-radius:inherit;background:var(--accent)}
@media(max-width:1380px){.infinite-sheet{overflow-x:auto}.infinite-sheet-grid,.infinite-sheet-toolbar{min-width:1180px}}@media(max-width:1180px){.infinite-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.infinite-result-grid,.infinite-output-slots,.infinite-output-result .infinite-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.infinite-process-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.infinite-image-intro,.infinite-tool-toolbar,.infinite-tool-runner>header,.infinite-tool-runner>footer,.infinite-results>header,.infinite-workflow-panel>header,.infinite-expected-results>header{align-items:stretch;flex-direction:column}.infinite-tool-toolbar .search-box{min-width:0;width:100%}.infinite-tool-grid,.infinite-tool-inputs,.infinite-result-grid,.infinite-output-slots,.infinite-output-result .infinite-result-grid,.infinite-process-list{grid-template-columns:1fr}.infinite-run-button{width:100%}.infinite-workflow-stats{justify-content:flex-start}}

/* v3.8 竞品视觉蒸馏：整组上传、语义去重、批量生成与独立素材库。 */
.distill-workbench{display:grid;gap:16px}.distill-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:22px}.distill-intro h2{margin:5px 0 7px}.distill-intro p{margin:0;color:var(--muted)}.distill-intro>.field{width:min(360px,100%)}
.distill-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.distill-upload-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.distill-upload-card>header{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--line-soft)}.distill-upload-card>header>span{display:grid;width:36px;height:36px;place-items:center;flex:0 0 auto;border-radius:10px;color:var(--accent);background:rgba(83,226,207,.09)}.distill-upload-card>header svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.distill-upload-card>header div{display:grid;gap:3px;min-width:0;flex:1}.distill-upload-card>header small{color:var(--muted);font-size:.62rem}.distill-upload-card>header em{color:var(--accent);font-size:.64rem;font-style:normal;font-weight:900}.distill-upload-zone{position:relative;display:grid;min-height:108px;place-items:center;align-content:center;gap:5px;margin:13px;border:1px dashed var(--line);border-radius:13px;background:var(--panel-2);cursor:pointer}.distill-upload-zone:hover{border-color:var(--accent);background:rgba(83,226,207,.04)}.distill-upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}.distill-upload-zone span{font-size:.75rem;font-weight:900}.distill-upload-zone small{color:var(--muted);font-size:.62rem}.distill-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:0 13px 13px}.distill-source-grid figure{position:relative;min-width:0;margin:0;overflow:hidden;border:1px solid var(--line-soft);border-radius:10px;background:var(--bg)}.distill-source-grid img{display:block;width:100%;height:94px;object-fit:cover}.distill-source-grid button{position:absolute;top:4px;right:4px;width:22px;height:22px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:50%;color:#fff;background:rgba(3,9,17,.78);cursor:pointer}.distill-source-grid figcaption{overflow:hidden;padding:6px 7px;color:var(--muted);font-size:.55rem;text-overflow:ellipsis;white-space:nowrap}.distill-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 20px}.distill-submit>div{display:grid;gap:4px}.distill-submit span{color:var(--muted);font-size:.68rem}
.distill-analysis-state{display:flex;align-items:center;gap:14px;margin-top:18px;padding:20px}.distill-analysis-state>div{display:grid;gap:5px;flex:1}.distill-analysis-state p{margin:0;color:var(--muted);font-size:.7rem}.distill-analysis-state>strong{color:var(--accent)}.distill-analysis-state.error{border-color:rgba(255,100,116,.34)}.distill-review-head,.distill-results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-top:20px;padding:20px}.distill-review-head h3,.distill-results-head h3{margin:4px 0 6px}.distill-review-head p,.distill-results-head p{margin:0;color:var(--muted);font-size:.72rem}.distill-review-head>div:last-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.distill-review-head>div:last-child>span{padding:6px 9px;border:1px solid var(--line-soft);border-radius:999px;color:var(--muted);font-size:.62rem}
.distill-category{margin-top:16px}.distill-category>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px;padding:0 2px}.distill-category>header>div{display:flex;align-items:center;gap:9px}.distill-category>header span{font-size:.9rem;font-weight:950}.distill-category>header b{padding:5px 8px;border-radius:999px;color:var(--accent);background:rgba(83,226,207,.08);font-size:.58rem}.distill-category>header small{color:var(--muted)}.distill-cluster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.distill-cluster{position:relative;display:grid;gap:11px;padding:14px;border:1px solid var(--line);border-radius:17px;background:var(--panel);transition:.16s ease}.distill-cluster.selected{border-color:rgba(83,226,207,.55);box-shadow:inset 0 0 0 1px rgba(83,226,207,.12)}.distill-cluster-check{display:flex;align-items:center;gap:7px;font-size:.68rem;font-weight:800}.distill-cluster-check input{accent-color:var(--accent)}.distill-cluster-sources{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;min-height:112px}.distill-cluster-sources button{height:112px;padding:0;overflow:hidden;border:0;border-radius:10px;background:var(--bg);cursor:zoom-in}.distill-cluster-sources img{width:100%;height:100%;object-fit:cover}.distill-cluster-sources strong{position:absolute;right:7px;bottom:7px;padding:4px 7px;border-radius:999px;color:#fff;background:rgba(4,12,22,.82);font-size:.56rem}.distill-cluster>label:not(.distill-cluster-check){display:grid;gap:6px}.distill-cluster>label>span{color:var(--muted);font-size:.62rem;font-weight:800}.distill-cluster input,.distill-cluster textarea{width:100%;box-sizing:border-box}.distill-cluster textarea{min-height:112px;resize:vertical}.distill-cluster>p{margin:0;color:var(--muted);font-size:.67rem;line-height:1.55}.distill-generate-bar{position:sticky;bottom:16px;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0;padding:15px 18px;box-shadow:0 18px 42px rgba(0,0,0,.28)}.distill-generate-bar>div{display:grid;gap:4px}.distill-generate-bar>div span{color:var(--muted);font-size:.65rem}.distill-generate-bar>label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.68rem}.distill-generate-bar select{min-width:88px}
.distill-result-category{margin:16px 0}.distill-result-category>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.distill-result-category h3{margin:0}.distill-result-category>header span{color:var(--muted);font-size:.65rem}.distill-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.distill-result-grid article{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.distill-result-grid article>button{display:block;width:100%;height:220px;padding:0;border:0;background:var(--bg);cursor:zoom-in}.distill-result-grid img{width:100%;height:100%;object-fit:contain}.distill-result-grid article>div{display:grid;gap:3px;padding:10px}.distill-result-grid small{color:var(--muted);font-size:.6rem}.distill-library-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:20px}.distill-library-banner h3{margin:4px 0 6px}.distill-library-banner p{margin:0;color:var(--muted);font-size:.72rem}.distill-library-asset .library-preview{position:relative}.distill-library-asset .library-preview>span{position:absolute;top:9px;left:9px;padding:5px 8px;border:1px solid rgba(83,226,207,.32);border-radius:999px;color:var(--accent);background:rgba(4,13,24,.86);font-size:.58rem;font-weight:900}
@media(max-width:1180px){.distill-upload-grid,.distill-cluster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.distill-result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.distill-intro,.distill-submit,.distill-review-head,.distill-results-head,.distill-library-banner,.distill-generate-bar{align-items:stretch;flex-direction:column}.distill-intro>.field{width:100%}.distill-upload-grid,.distill-cluster-grid,.distill-result-grid{grid-template-columns:1fr}.distill-review-head>div:last-child{justify-content:flex-start}.distill-generate-bar{position:static}.distill-result-grid article>button{height:270px}}

/* v3.8.1 蒸馏卡片直接使用系统内置规则，不再显示或编辑AI生成提示词。 */
.distill-cluster-check em{margin-left:auto;padding:4px 7px;border:1px solid rgba(94,234,212,.24);border-radius:999px;color:var(--accent);background:rgba(94,234,212,.06);font-size:.55rem;font-style:normal;font-weight:800}
.distill-cluster>p{padding:9px 10px;border:1px solid var(--line-soft);border-radius:10px;background:rgba(7,17,31,.34)}
/* 账号登录与团队管理 */
.account-pill[hidden]{display:none!important}
.auth-gate{position:fixed;inset:0;z-index:9999;display:grid;grid-template-columns:minmax(420px,1fr) minmax(520px,.9fr);background:#08101d;color:#edf5ff}.auth-gate[hidden]{display:none}.auth-brand-panel{position:relative;display:flex;min-height:100vh;flex-direction:column;padding:42px 7vw 56px;overflow:hidden;background:radial-gradient(circle at 20% 90%,rgba(73,221,202,.14),transparent 34%),linear-gradient(145deg,#0b1628,#08101d 65%)}.auth-brand-panel:after{content:"";position:absolute;right:-180px;bottom:-220px;width:600px;height:600px;border:1px solid rgba(94,234,212,.16);border-radius:50%;box-shadow:0 0 0 70px rgba(94,234,212,.025),0 0 0 140px rgba(94,234,212,.018)}.auth-brand{position:relative;z-index:1;margin:0}.auth-brand-copy{position:relative;z-index:1;margin:auto 0}.auth-brand-copy>span{color:#5eead4;font-size:.72rem;font-weight:800;letter-spacing:.18em}.auth-brand-copy h1{max-width:720px;margin:18px 0 18px;font-size:clamp(2.5rem,4vw,4.8rem);line-height:1.08;letter-spacing:-.045em}.auth-brand-copy p{max-width:580px;margin:0;color:#8ea3bf;font-size:1rem;line-height:1.8}.auth-feature-list{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.auth-feature-list div{padding:18px;border:1px solid #1d314b;border-radius:14px;background:rgba(15,28,48,.7)}.auth-feature-list b{display:block;color:#5eead4;font-size:1.35rem}.auth-feature-list span{display:block;margin-top:6px;color:#7186a3;font-size:.72rem}.auth-form-panel{display:grid;place-items:center;padding:42px;background:#0b1422}.auth-card{width:min(100%,540px);padding:36px;border:1px solid #20314a;border-radius:22px;background:#101d30;box-shadow:0 28px 80px rgba(0,0,0,.28)}.auth-card header small{color:#5eead4;font-weight:800;letter-spacing:.15em}.auth-card header h2{margin:9px 0 8px;font-size:1.8rem}.auth-card header p{margin:0 0 25px;color:#7f93ae;line-height:1.65}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;padding:4px;margin-bottom:22px;border:1px solid #21334d;border-radius:12px;background:#0c1728}.auth-tabs button{padding:10px;border:0;border-radius:9px;background:transparent;color:#7186a3;cursor:pointer}.auth-tabs button.active{background:#1a3047;color:#5eead4}.auth-form{display:grid;gap:15px}.auth-form .field{margin:0}.auth-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-inline{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.auth-inline .btn{height:44px}.auth-form .btn.primary{height:48px;margin-top:4px}.auth-help{margin:16px 0 0;color:#617590;font-size:.72rem;line-height:1.6}.auth-dev-code{padding:11px 13px;border:1px solid #6a5527;border-radius:10px;background:#241f13;color:#f3cc68;font-size:.76rem}.auth-error{padding:11px 13px;border:1px solid #6a2732;border-radius:10px;background:#2a1720;color:#ff94a3;font-size:.76rem}.auth-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:220px;color:#8da0ba}.auth-loading span{width:22px;height:22px;border:2px solid #263a53;border-top-color:#5eead4;border-radius:50%;animation:spin .8s linear infinite}.account-pill{display:grid;grid-template-columns:32px auto;grid-template-rows:16px 14px;column-gap:9px;align-items:center;min-width:145px;padding:7px 12px;border:1px solid #20324a;border-radius:12px;background:#111f33;color:#e8f1fb;cursor:pointer;text-align:left}.account-pill>span{grid-row:1/3;display:grid;width:32px;height:32px;place-items:center;border-radius:9px;background:#153e45;color:#5eead4;font-weight:800}.account-pill b{font-size:.76rem}.account-pill small{color:#6f849f;font-size:.62rem}.account-dialog{width:min(1050px,92vw);max-height:88vh;padding:0;border:1px solid #243752;border-radius:20px;background:#0e1a2c;color:#eaf3fc}.account-dialog::backdrop{background:rgba(3,8,16,.78)}.account-shell{padding:28px}.account-shell>header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid #20314a}.account-shell>header h2{margin:5px 0}.account-shell>header p{margin:0;color:#7489a5}.account-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.account-summary article{padding:17px;border:1px solid #20324a;border-radius:14px;background:#111f33}.account-summary small{display:block;color:#7186a3}.account-summary b{display:block;margin-top:7px;font-size:1.15rem}.member-create{padding:20px;margin-bottom:20px;border:1px solid #24405a;border-radius:15px;background:#102238}.member-create h3{margin:0 0 15px}.member-create-grid{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:10px;align-items:end}.member-list{display:grid;gap:10px}.member-row{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(140px,1fr) 110px 100px 90px auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid #20324a;border-radius:13px;background:#101d30}.member-identity{display:flex;align-items:center;gap:10px}.member-identity i{display:grid;width:36px;height:36px;place-items:center;border-radius:10px;background:#183449;color:#5eead4;font-style:normal;font-weight:800}.member-row small{display:block;color:#6f849f}.member-status{color:#63e6be;font-size:.72rem}.member-status.disabled{color:#ff8292}.member-devices{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px solid #1b2b41}.device-chip{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #263b57;border-radius:9px;color:#8fa3bd;font-size:.68rem}.device-chip button{border:0;background:transparent;color:#ff8493;cursor:pointer}.account-footer{display:flex;justify-content:flex-end;margin-top:20px}.local-auth-warning{padding:11px 13px;margin:0 0 18px;border:1px solid #604f27;border-radius:10px;background:#242012;color:#e8c86c;font-size:.72rem;line-height:1.6}
@media(max-width:980px){.auth-gate{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{min-height:100vh}.member-create-grid{grid-template-columns:1fr 1fr}.member-row{grid-template-columns:1fr 1fr}.account-summary{grid-template-columns:1fr}.member-devices{grid-column:1/-1}}

/* v4.1 智能生图：资料识别、逐图策划与模板对应生成。 */
.smart-image-builder{display:grid;gap:16px}.smart-source-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.smart-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.smart-template-column{min-width:0;padding:13px;border:1px solid var(--line-soft);border-radius:15px;background:rgba(5,15,28,.28)}.smart-template-column.enabled{border-color:rgba(83,226,207,.28)}.smart-template-column>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.smart-template-column>header label{display:flex;align-items:center;gap:8px}.smart-template-column>header input{accent-color:var(--accent)}.smart-template-column>header span{color:var(--muted);font-size:.6rem}.smart-template-column .upload-zone{min-height:98px}.smart-template-column .upload-previews{grid-template-columns:repeat(2,minmax(0,1fr))}.smart-template-column .upload-previews img{height:115px}.smart-template-disabled{display:grid;min-height:120px;place-items:center;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.66rem}.smart-run-panel{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:26px;align-items:end;padding:22px}.smart-run-panel h3{margin:5px 0 7px}.smart-run-panel p{max-width:760px;margin:0;color:var(--muted);font-size:.7rem;line-height:1.65}.smart-run-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.smart-run-stats span{padding:7px 10px;border:1px solid var(--line-soft);border-radius:999px;color:var(--muted);font-size:.62rem}.smart-run-stats b{color:var(--text)}.smart-stage-badge{padding:7px 10px;border:1px solid rgba(83,226,207,.3);border-radius:999px;color:var(--accent);background:rgba(83,226,207,.06);font-size:.62rem;font-weight:800;white-space:nowrap}.smart-recognition{padding:22px}.smart-recognition>header,.smart-plan-review>header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.smart-recognition h3,.smart-plan-review h3{margin:5px 0}.smart-recognition pre{max-height:520px;margin:18px 0 10px;padding:18px;overflow:auto;border:1px solid var(--line-soft);border-radius:13px;background:var(--panel-2);white-space:pre-wrap;color:var(--text);font:inherit;font-size:.7rem;line-height:1.75}.smart-recognition>p,.smart-plan-review>header p{margin:0;color:var(--muted);font-size:.68rem}.smart-plan-review{padding:20px}.smart-plan-review>header>div:last-child{display:flex;gap:8px}.smart-plan-grid{display:grid;gap:14px;margin-top:18px}.smart-plan-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:rgba(8,20,36,.5)}.smart-plan-card>header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}.smart-plan-card>header>span{display:grid;width:31px;height:31px;place-items:center;border-radius:9px;color:var(--accent);background:rgba(83,226,207,.09);font-size:.62rem;font-weight:900}.smart-plan-card>header>div{display:grid;gap:2px;min-width:0;flex:1}.smart-plan-card>header small{color:var(--muted);font-size:.58rem}.smart-status{padding:5px 8px;border-radius:999px;color:var(--muted);background:var(--field);font-size:.56rem;font-style:normal}.smart-status.completed{color:#67e8ba;background:rgba(52,211,153,.1)}.smart-status.failed{color:#ff8494;background:rgba(255,89,113,.1)}.smart-status.running,.smart-status.queued{color:#7db7ff;background:rgba(93,144,255,.1)}.smart-plan-card-body{display:grid;grid-template-columns:210px minmax(0,1fr);gap:15px;padding:14px}.smart-template-placeholder,.smart-result-preview{display:grid;width:100%;min-height:250px;place-items:center;align-content:center;gap:8px;overflow:hidden;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:var(--bg)}.smart-template-placeholder svg{width:28px;height:28px;fill:none;stroke:currentColor}.smart-result-preview{padding:0;border-style:solid;cursor:zoom-in}.smart-result-preview img{width:100%;height:100%;max-height:360px;object-fit:contain}.smart-plan-fields{display:grid;gap:10px}.smart-plan-fields>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.smart-plan-fields label{display:grid;gap:5px}.smart-plan-fields label>span{color:var(--muted);font-size:.59rem;font-weight:800}.smart-plan-fields input,.smart-plan-fields textarea,.smart-plan-fields select{width:100%;box-sizing:border-box}.smart-plan-fields textarea{resize:vertical}.smart-plan-card-actions{display:flex!important;grid-template-columns:none!important;align-items:end;justify-content:flex-end;gap:8px}.smart-plan-card-actions label{margin-right:auto}.smart-plan-card-actions select{min-width:105px}.smart-item-error{margin:0;padding:9px 14px;border-top:1px solid rgba(255,89,113,.22);color:#ff8b9b;background:rgba(255,89,113,.06);font-size:.64rem}.smart-plan-review>footer{display:flex;justify-content:flex-end;margin-top:15px}
@media(max-width:1100px){.smart-source-grid,.smart-run-panel{grid-template-columns:1fr}.smart-template-grid{grid-template-columns:1fr 1fr}.smart-plan-card-body{grid-template-columns:170px minmax(0,1fr)}}
@media(max-width:760px){.smart-template-grid,.smart-plan-card-body,.smart-plan-fields>div{grid-template-columns:1fr}.smart-recognition>header,.smart-plan-review>header{align-items:stretch;flex-direction:column}.smart-plan-review>header>div:last-child{width:100%}.smart-plan-review>header .btn{flex:1}.smart-plan-card-actions{align-items:stretch;flex-direction:column}.smart-plan-card-actions label{width:100%}}
