:root {
 --bg-primary: #000000;
 --bg-secondary: #1c1c1e;
 --bg-tertiary: #2c2c2e;
 --bg-elevated: #3a3a3c;
 --bg-card: #1c1c1e;
 --border: rgba(255,255,255,0.08);
 --border-light: rgba(255,255,255,0.12);
 --accent: #0a84ff;
 --accent2: #5e5ce6;
 --accent3: #30d158;
 --accent4: #ff9f0a;
 --accent5: #ff453a;
 --accent6: #ff375f;
 --text-primary: #f5f5f7;
 --text-secondary: #98989d;
 --text-muted: #636366;
 --glass: rgba(28,28,30,0.72);
 --glass-border: rgba(255,255,255,0.08);
 --sidebar-bg: rgba(0,0,0,0.85);
 --header-bg: rgba(0,0,0,0.72);
 --input-bg: rgba(255,255,255,0.04);
 --inset-bg: rgba(0,0,0,0.3);
 --negative-bg: rgba(255,69,58,0.04);
 --negative-border: rgba(255,69,58,0.12);
 --panel-bg: rgba(28,28,30,0.96);
 --control-hover-border: rgba(255,255,255,0.24);
 --focus-ring: rgba(10,132,255,0.12);
 --active-card-bg: linear-gradient(135deg, rgba(10,132,255,0.15), rgba(94,92,230,0.1));
 --toast-bg: rgba(28,28,30,0.92);
 --toast-text: #f5f5f7;
 --toast-border: rgba(255,255,255,0.08);
 --radius-sm: 12px;
 --radius: 16px;
 --radius-lg: 20px;
 --radius-xl: 24px;
 --shadow: 0 4px 30px rgba(0,0,0,0.5);
 --font: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', 'PingFang SC', sans-serif;
 --transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
 --sidebar-w: 420px;
 }
 body.day-theme {
 --bg-primary: #f5f7fa;
 --bg-secondary: #ffffff;
 --bg-tertiary: #eef1f5;
 --bg-elevated: #e1e6ed;
 --bg-card: #ffffff;
 --border: rgba(17,24,39,0.1);
 --border-light: rgba(17,24,39,0.16);
 --accent: #006edc;
 --accent2: #514ed8;
 --accent3: #168a3f;
 --accent4: #c96f00;
 --accent5: #d92d20;
 --accent6: #d92f72;
 --text-primary: #17191c;
 --text-secondary: #555b66;
 --text-muted: #7a818c;
 --glass: rgba(255,255,255,0.82);
 --glass-border: rgba(17,24,39,0.1);
 --sidebar-bg: rgba(255,255,255,0.92);
 --header-bg: rgba(255,255,255,0.86);
 --input-bg: #f7f8fa;
 --inset-bg: #f0f2f5;
 --negative-bg: rgba(217,45,32,0.05);
 --negative-border: rgba(217,45,32,0.18);
 --panel-bg: rgba(255,255,255,0.98);
 --control-hover-border: rgba(17,24,39,0.28);
 --focus-ring: rgba(0,110,220,0.14);
 --active-card-bg: linear-gradient(135deg, rgba(0,110,220,0.1), rgba(81,78,216,0.07));
 --toast-bg: rgba(255,255,255,0.96);
 --toast-text: #17191c;
 --toast-border: rgba(17,24,39,0.12);
 --shadow: 0 8px 30px rgba(17,24,39,0.12);
 color-scheme: light;
 }
 * { margin:0; padding:0; box-sizing:border-box; }
 html { scroll-behavior: smooth; }
 body { font-family: var(--font); background: var(--bg-primary); color: var(--text-primary); color-scheme: dark; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; transition: background-color 0.25s ease, color 0.25s ease; }
 body.day-theme { color-scheme: light; }
 input::placeholder, textarea::placeholder { color: var(--text-muted); opacity: 1; }
 .app-layout { display: flex; min-height: 100vh; }
 .sidebar {
 width: var(--sidebar-w); min-width: var(--sidebar-w);
 position: fixed; top: 0; left: 0; bottom: 0;
 background: var(--sidebar-bg); backdrop-filter: saturate(180%) blur(30px);
 -webkit-backdrop-filter: saturate(180%) blur(30px);
 border-right: 1px solid var(--glass-border);
 overflow-y: auto; z-index: 50; display: flex; flex-direction: column;
 }
 .sidebar-header { padding: 20px 20px 16px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
 .sidebar-logo { font-size: 1.05em; font-weight: 700; display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
 .sidebar-logo .gradient { background: linear-gradient(135deg, var(--accent), var(--accent2)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
 .sidebar-body { flex: 1; overflow-y: auto; padding: 16px 20px; }
 .main-content { flex: 1; margin-left: var(--sidebar-w); }
 .output-section { margin-bottom: 16px; }
 .output-label { font-size: 0.75em; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
 .output-textarea { width: 100%; min-height: 260px; background: var(--input-bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 14px; color: var(--text-primary); font-size: 0.78em; font-family: 'SF Mono', Menlo, Consolas, monospace; line-height: 1.7; resize: vertical; outline: none; transition: var(--transition); }
 .output-textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring); }
 .output-btns { display: flex; gap: 6px; margin-top: 8px; }
 .btn-s { flex: 1; padding: 8px 0; border: none; border-radius: 8px; font-size: 0.76em; font-weight: 600; cursor: pointer; font-family: var(--font); transition: var(--transition); text-align: center; }
 .btn-s-primary { background: linear-gradient(135deg, var(--accent), var(--accent2)); color: #fff; }
 .btn-s-primary:hover { opacity: 0.85; }
 .btn-s-ghost { background: var(--bg-tertiary); color: var(--text-secondary); }
 .btn-s-ghost:hover { background: var(--bg-elevated); color: var(--text-primary); }
 .negative-section { padding-top: 14px; margin-top: 14px; border-top: 1px solid var(--border); }
 .negative-toggle { display: flex; align-items: center; justify-content: space-between; cursor: pointer; user-select: none; }
 .negative-title { font-size: 0.82em; font-weight: 700; color: var(--accent5); }
 .negative-content { display: none; margin-top: 12px; }
 .negative-content.show { display: block; }
 .negative-textarea { width: 100%; min-height: 100px; background: var(--negative-bg); border: 1px solid var(--negative-border); border-radius: var(--radius-sm); padding: 12px; color: var(--text-primary); font-size: 0.76em; font-family: var(--font); line-height: 1.7; resize: vertical; outline: none; }
 .sidebar-welfare { padding: 14px 20px; border-top: 1px solid var(--border); flex-shrink: 0; }
 .sidebar-welfare-row { display: flex; align-items: center; gap: 8px; background: rgba(255,159,10,0.08); border: 1px solid rgba(255,159,10,0.15); border-radius: 10px; padding: 10px 12px; }
 .sidebar-welfare-row code { color: var(--accent4); font-family: 'SF Mono', monospace; font-size: 0.9em; font-weight: 600; letter-spacing: 1px; }
 .sidebar-welfare-row button { background: var(--accent); color: #fff; border: none; padding: 5px 10px; border-radius: 6px; cursor: pointer; font-size: 0.7em; font-family: var(--font); font-weight: 600; margin-left: auto; }
 .main-header { position: sticky; top: 0; z-index: 40; background: var(--header-bg); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); border-bottom: 1px solid var(--glass-border); padding: 0 32px; }
 .main-header-inner { max-width: 1000px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; height: 48px; }
 .main-nav { display: flex; gap: 4px; }
 .main-nav button { background: none; border: none; color: var(--text-secondary); padding: 6px 12px; border-radius: 8px; cursor: pointer; font-size: 0.8em; font-family: var(--font); transition: var(--transition); }
 .main-nav button:hover { background: var(--bg-tertiary); color: var(--text-primary); }
 .theme-toggle { width: 58px; height: 30px; padding: 3px; border: 1px solid var(--border-light); border-radius: 15px; background: var(--bg-secondary); display: flex; align-items: center; justify-content: space-between; cursor: pointer; font-family: var(--font); transition: var(--transition); flex-shrink: 0; }
 .theme-toggle:hover { border-color: var(--control-hover-border); background: var(--bg-tertiary); }
 .theme-toggle-icon { width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 0.75em; line-height: 1; transition: var(--transition); }
 .theme-toggle-icon.moon { background: var(--accent); color: #fff; }
 .theme-toggle.day-selected .theme-toggle-icon.moon { background: transparent; color: var(--text-muted); }
 .theme-toggle.day-selected .theme-toggle-icon.sun { background: var(--accent4); color: #000; }
 .theme-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
 .container { max-width: 1000px; margin: 0 auto; padding: 0 32px; }
 .hero { text-align: center; padding: 56px 0 40px; }
 .hero h1 { font-size: clamp(1.8em, 4vw, 2.8em); font-weight: 700; letter-spacing: -0.03em; line-height: 1.15; margin-bottom: 12px; }
 .hero h1 .gradient { background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 50%, var(--accent6) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
 .hero p { font-size: 1.05em; color: var(--text-secondary); max-width: 560px; margin: 0 auto; line-height: 1.7; }
 .section { margin-bottom: 40px; }
 .section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
 .section-title { font-size: 1.2em; font-weight: 700; letter-spacing: -0.02em; display: flex; align-items: center; gap: 10px; }
 .section-title .icon { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 1em; }
 .section-desc { color: var(--text-secondary); font-size: 0.82em; }
 .scenes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
 .scene-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 14px; cursor: pointer; transition: var(--transition); text-align: center; position: relative; }
 .scene-card:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(10,132,255,0.1); }
 .scene-card.active { background: var(--active-card-bg); border-color: var(--accent); }
 .scene-card.active::after { content: '✓'; position: absolute; top: 6px; right: 10px; font-size: 0.7em; color: var(--accent3); font-weight: 700; }
 .scene-icon { font-size: 1.8em; margin-bottom: 8px; }
 .scene-name { font-weight: 600; font-size: 0.88em; }
 .scene-sub { color: var(--text-muted); font-size: 0.72em; margin-top: 3px; }
 .default-prompt-box { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; margin-top: 14px; }
 .default-prompt-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
 .default-prompt-label { font-size: 0.82em; font-weight: 600; color: var(--accent3); }
 .default-prompt-toggle { background: none; border: none; color: var(--text-muted); font-size: 0.72em; cursor: pointer; font-family: var(--font); }
 .default-prompt-text { font-size: 0.78em; color: var(--text-secondary); line-height: 1.8; white-space: pre-wrap; max-height: 180px; overflow-y: auto; padding: 14px; background: var(--inset-bg); border-radius: var(--radius-sm); }
 .param-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
 .param-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px; }
 .param-label { font-size: 0.72em; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px; }
 .param-select, .param-input { width: 100%; background: var(--bg-tertiary); border: 1px solid var(--border); border-radius: 10px; color: var(--text-primary); font-size: 0.88em; padding: 10px 14px; outline: none; font-family: var(--font); transition: var(--transition); appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2398989d' d='M6 8.5L1 3.5h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
 .param-select:focus, .param-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring); }
 .param-select option { background: var(--bg-tertiary); }
 .chips { display: flex; flex-wrap: wrap; gap: 7px; }
 .chip { background: var(--bg-tertiary); border: 1px solid var(--border); border-radius: 20px; padding: 7px 14px; font-size: 0.8em; color: var(--text-secondary); cursor: pointer; transition: var(--transition); }
 .chip:hover { border-color: var(--accent); color: var(--text-primary); }
 .chip.active { background: var(--accent); border-color: var(--accent); color: #fff; }
 .toggle-row { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--border); }
 .toggle-row:last-child { border-bottom: none; }
 .toggle-info { display: flex; flex-direction: column; gap: 2px; }
 .toggle-name { font-size: 0.88em; font-weight: 500; }
 .toggle-desc { font-size: 0.72em; color: var(--text-muted); }
 .toggle-switch { width: 49px; height: 29px; border-radius: 15px; background: var(--bg-elevated); position: relative; cursor: pointer; transition: var(--transition); flex-shrink: 0; }
 .toggle-switch::before { content: ''; position: absolute; width: 25px; height: 25px; border-radius: 50%; background: #fff; top: 2px; left: 2px; transition: var(--transition); box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
 .toggle-switch.active { background: var(--accent3); }
 .toggle-switch.active::before { left: 22px; }
 .custom-form { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; }
 .form-row { margin-bottom: 14px; }
 .form-row label { display: block; font-size: 0.75em; font-weight: 600; color: var(--text-muted); margin-bottom: 5px; text-transform: uppercase; letter-spacing: 0.5px; }
 .form-row textarea, .form-row input { width: 100%; background: var(--bg-tertiary); border: 1px solid var(--border); border-radius: 10px; color: var(--text-primary); font-size: 0.86em; padding: 10px 14px; outline: none; font-family: var(--font); transition: var(--transition); resize: vertical; }
 .form-row textarea:focus, .form-row input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring); }
 .form-row textarea { min-height: 90px; }
 .btn { padding: 11px 22px; border: none; border-radius: 10px; font-size: 0.86em; font-weight: 600; cursor: pointer; font-family: var(--font); transition: var(--transition); }
 .btn-primary { background: linear-gradient(135deg, var(--accent), var(--accent2)); color: #fff; }
 .btn-primary:hover { opacity: 0.9; transform: translateY(-1px); }
 .btn-secondary { background: var(--bg-tertiary); color: var(--text-secondary); }
 .storyboard-grid-options { display: flex; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
 .storyboard-option { flex: 1; min-width: 100px; background: var(--bg-card); border: 2px solid var(--border); border-radius: var(--radius); padding: 16px; text-align: center; cursor: pointer; transition: var(--transition); }
 .storyboard-option:hover { border-color: var(--accent); }
 .storyboard-option.active { border-color: var(--accent); background: rgba(10,132,255,0.08); }
 .storyboard-option-label { font-weight: 600; font-size: 0.92em; }
 .storyboard-option-desc { color: var(--text-muted); font-size: 0.72em; margin-top: 3px; }
 .storyboard-preview { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; display: none; }
 .aspect-ratios { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
 .aspect-ratios .label { font-size: 0.72em; font-weight: 600; color: var(--text-muted); margin-bottom: 3px; width: 100%; }
 .storyboard-images-area { margin-top: 16px; }
 .storyboard-drop { border: 2px dashed var(--border-light); border-radius: var(--radius); padding: 30px 16px; cursor: pointer; transition: var(--transition); text-align: center; }
 .storyboard-drop:hover { border-color: var(--accent); }
 .storyboard-images-preview { display: grid; gap: 8px; margin-top: 12px; }
 .storyboard-img-item { position: relative; border-radius: 10px; overflow: hidden; aspect-ratio: 16/9; background: var(--bg-tertiary); }
 .storyboard-img-item img { width: 100%; height: 100%; object-fit: cover; }
 .storyboard-img-item .remove-img { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,0.7); color: #fff; border: none; font-size: 0.7em; cursor: pointer; display: flex; align-items: center; justify-content: center; }
 .storyboard-output { margin-top: 20px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; display: none; }
 .storyboard-output-label { font-size: 0.78em; font-weight: 700; color: var(--accent3); margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }
 .storyboard-output textarea { width: 100%; min-height: 200px; background: var(--inset-bg); border: 1px solid var(--border); border-radius: 10px; padding: 14px; color: var(--text-primary); font-size: 0.78em; font-family: 'SF Mono', Menlo, monospace; line-height: 1.7; resize: vertical; outline: none; }
 #storyboardInput { display: none; }
 .storyboard-flow { }
 .storyboard-steps { display: flex; align-items: center; justify-content: center; gap: 0; flex-wrap: wrap; padding: 0 20px; }
 .sb-step { display: flex; align-items: center; gap: 12px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 18px; min-width: 140px; }
 .sb-step-num { width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg, var(--accent), var(--accent2)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 0.8em; font-weight: 700; flex-shrink: 0; }
 .sb-step-title { font-size: 0.82em; font-weight: 600; }
 .sb-step-desc { font-size: 0.7em; color: var(--text-muted); margin-top: 1px; }
 .sb-step-arrow { color: var(--text-muted); font-size: 1.2em; padding: 0 6px; }
 .wechat-bar { background: linear-gradient(135deg, rgba(48,209,88,0.1), rgba(10,132,255,0.08)); border: 1px solid rgba(48,209,88,0.2); border-radius: var(--radius); padding: 18px 24px; margin-top: 20px; display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; }
 .wechat-id { background: var(--bg-tertiary); border-radius: var(--radius); padding: 10px 20px; }
 .wechat-id-label { font-size: 0.68em; color: var(--text-muted); }
 .wechat-id-value { font-size: 1.2em; font-weight: 700; color: var(--accent3); font-family: 'SF Mono', monospace; letter-spacing: 2px; }
 .footer { text-align: center; padding: 40px 0 28px; color: var(--text-muted); font-size: 0.78em; border-top: 1px solid var(--border); margin-top: 40px; }
 .footer a { color: var(--accent); text-decoration: none; }
 ::-webkit-scrollbar { width: 5px; }
 ::-webkit-scrollbar-track { background: transparent; }
 ::-webkit-scrollbar-thumb { background: var(--bg-elevated); border-radius: 3px; }
 @media (max-width: 1100px) {
 .app-layout { flex-direction: column-reverse; }
 .sidebar { width: 100%; min-width: 100%; position: relative; border-right: none; border-bottom: 1px solid var(--glass-border); max-height: 50vh; }
 .main-content { margin-left: 0; }
 }
@media (max-width: 768px) {
 .param-grid { grid-template-columns: 1fr; }
 .scenes-grid { grid-template-columns: repeat(2, 1fr); }
 .main-nav { display: none; }
 .theme-toggle { display: none; }
 .main-header-inner { height: auto; min-height: 48px; flex-wrap: wrap; gap: 8px; padding: 8px 0; }
 .header-brand { width: 100%; text-align: center; }
 .header-meta { width: 100%; justify-content: center; flex-wrap: wrap; gap: 8px !important; }
 .container { padding: 0 16px; }
 .main-header { padding: 0 16px; }
 .changelog-panel { right:8px; left:8px; width:auto; max-height:60vh; }
 .wash-hero-btn { padding: 12px 22px; font-size: 0.95em; }
 .wash-hero-arrow { font-size: 0.68em; }
 }
 .app-locked { display:none !important; }

 .changelog-btn { background:rgba(10,132,255,0.12); border:1px solid rgba(10,132,255,0.25); color:var(--accent); font-size:0.72em; font-weight:600; padding:4px 10px; border-radius:6px; cursor:pointer; font-family:var(--font); position:relative; }
 .changelog-btn:hover { background:rgba(10,132,255,0.2); }
 .changelog-dot { position:absolute; top:-2px; right:-2px; width:7px; height:7px; background:var(--accent5); border-radius:50%; border:1.5px solid var(--bg-primary); }
 .changelog-panel { position:fixed; top:52px; right:16px; width:360px; max-height:70vh; background:var(--panel-bg); backdrop-filter:saturate(180%) blur(30px); -webkit-backdrop-filter:saturate(180%) blur(30px); border:1px solid var(--glass-border); border-radius:var(--radius); z-index:100; display:none; flex-direction:column; box-shadow:var(--shadow); overflow:hidden; }
 .changelog-panel.show { display:flex; }
 .changelog-header { padding:14px 16px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
 .changelog-header-title { font-size:0.88em; font-weight:700; color:var(--accent); }
 .changelog-close { background:none; border:none; color:var(--text-muted); font-size:1.1em; cursor:pointer; padding:2px 6px; border-radius:6px; }
 .changelog-close:hover { background:var(--bg-tertiary); color:var(--text-primary); }
 .changelog-body { overflow-y:auto; padding:12px 16px; flex:1; }
 .changelog-ver { margin-bottom:14px; }
 .changelog-ver:last-child { margin-bottom:0; }
 .changelog-ver-title { font-size:0.78em; font-weight:700; color:var(--accent4); margin-bottom:6px; }
 .changelog-ver ul { list-style:none; padding:0; margin:0; }
 .changelog-ver li { font-size:0.72em; color:var(--text-secondary); line-height:1.7; padding-left:12px; position:relative; }
 .changelog-ver li::before { content:'•'; position:absolute; left:0; color:var(--accent); }
 /* 白刻AI洗图2.0 醒目按钮 */
 .wash-hero-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #ff6723 0%, #ff9f0a 50%, #ff6723 100%);
  background-size: 200% 200%;
  color: #fff;
  padding: 14px 32px;
  border-radius: 16px;
  text-decoration: none;
  font-size: 1.05em;
  font-weight: 800;
  font-family: var(--font);
  transition: var(--transition);
  margin-bottom: 16px;
  box-shadow: 0 4px 24px rgba(255,103,35,0.4), 0 0 0 0 rgba(255,103,35,0.3);
  animation: washBtnGradient 3s ease infinite, washBtnPulse 2s ease-in-out infinite;
  position: relative;
  overflow: hidden;
 }
 .wash-hero-btn::before {
  content: '';
  position: absolute;
  top: 0; left: -100%; width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  animation: washBtnShine 2.5s ease-in-out infinite;
 }
 .wash-hero-btn:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 8px 32px rgba(255,103,35,0.5), 0 0 0 4px rgba(255,103,35,0.15);
 }
 .wash-hero-icon { font-size: 1.3em; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3)); }
 .wash-hero-text { letter-spacing: 1px; text-shadow: 0 1px 4px rgba(0,0,0,0.2); }
 .wash-hero-arrow {
  font-size: 0.72em;
  font-weight: 600;
  background: rgba(255,255,255,0.2);
  padding: 3px 10px;
  border-radius: 8px;
  letter-spacing: 0.5px;
  animation: washArrowBounce 1.5s ease-in-out infinite;
 }
 @keyframes washBtnGradient {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
 }
 @keyframes washBtnPulse {
  0%, 100% { box-shadow: 0 4px 24px rgba(255,103,35,0.4), 0 0 0 0 rgba(255,103,35,0.3); }
  50% { box-shadow: 0 4px 24px rgba(255,103,35,0.4), 0 0 0 8px rgba(255,103,35,0); }
 }
 @keyframes washBtnShine {
  0% { left: -100%; }
  50%, 100% { left: 100%; }
 }
 @keyframes washArrowBounce {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
 }
/* Component and layout helpers */
.copy-options-row { display:flex;align-items:center;gap:8px;margin-top:8px; }
.toggle-switch-compact { transform:scale(0.65); }
.copy-options-label { font-size:0.7em;color:var(--text-muted); }
.block-gap-md { margin-bottom:14px; }
.negative-chevron { color:var(--text-muted); font-size:0.75em; }
.negative-chips { margin-bottom:10px; }
.negative-actions { margin-top:6px; }
.header-brand-text { font-weight:600; font-size:0.9em; }
.header-meta-layout { display:flex;align-items:center;gap:12px; }
.toolbar-link { display:flex;align-items:center;gap:5px;background:linear-gradient(135deg,#ff6723,var(--accent4));color:#000;font-size:0.72em;font-weight:700;padding:4px 12px;border-radius:6px;text-decoration:none;font-family:var(--font); }
.hero-layout { display:flex;flex-direction:column;align-items:center;justify-content:center; }
.section-icon-scenes { background:rgba(10,132,255,0.15); }
.initially-hidden { display:none; }
.section-icon-params { background:rgba(94,92,230,0.15); }
.param-grid-compact { gap:10px; }
.select-gap { margin-bottom:8px; }
.chips-compact { gap:6px; }
.control-enabled { opacity: 1; pointer-events: auto; }
.control-disabled { opacity:0.35;pointer-events:none; }
.sun-angle-area { display:none; padding:8px 0 0; }
.label-compact { margin-bottom:6px; }
.toggle-row-compact-end { border-bottom:none; padding:6px 0 0; }
.city-select-area { display:none; padding:10px 0 0; }
.ceiling-strip-area { display:none; padding-left:18px; }
.toggle-row-tight { border-bottom:none; padding:4px 0; }
.toggle-name-small { font-size:0.82em; }
.toggle-switch-small { transform:scale(0.85); }
.color-temp-area { display:none; padding:8px 0; }
.color-temp-controls { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.color-temp-slider { flex:1; -webkit-appearance:none; height:4px; border-radius:2px; background:var(--bg-elevated); outline:none; cursor:pointer; }
.color-temp-value { font-size:0.9em; font-weight:600; color:var(--accent4); min-width:65px; text-align:right; font-family:'SF Mono',monospace; }
.chips-tight { gap:5px; }
.toggle-row-borderless { border-bottom:none; }
.color-grade-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:6px; }
.helper-text { font-size:0.72em;color:var(--text-muted); }
.toggle-switch-mini { transform:scale(0.75); }
.weather-card { display:none;border-top:1px solid var(--border);padding-top:8px; }
.weather-hint { font-size:0.7em;color:var(--text-muted);margin-bottom:6px; }
.accent-text { color:var(--accent); }
.bordered-subsection { margin-top:8px;border-top:1px solid var(--border);padding-top:8px; }
.toggle-name-medium { font-size:0.84em; }
.section-icon-custom { background:rgba(255,159,10,0.15); }
.required-mark { color:var(--accent5); font-size:0.85em; }
.native-select { appearance:auto; background-image:none; }
.optional-mark { color:var(--text-muted); font-size:0.85em; }
.button-spaced { margin-left:8px; }
.favorites-section { display:none; margin-top:16px; }
.favorites-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.favorites-title { font-size:0.82em; font-weight:700; color:var(--accent4); }
.button-small { padding:5px 12px; font-size:0.72em; }
.favorites-list { display:flex; flex-direction:column; gap:8px; }
.section-icon-decompile { background:rgba(255,55,95,0.15); }
.tool-panel { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:24px; }
.ai-info-banner { display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:14px 18px;background:linear-gradient(135deg,rgba(10,132,255,0.08),rgba(94,92,230,0.06));border:1px solid rgba(10,132,255,0.15);border-radius:var(--radius); }
.ai-info-icon { font-size:1.4em; }
.ai-info-title { font-weight:600;font-size:0.88em;color:var(--accent); }
.ai-info-description { color:var(--text-secondary);font-size:0.76em;margin-top:2px; }
.primary-action-row { display:flex;gap:8px;margin-bottom:16px; }
.flex-fill { flex:1; }
.template-panel { background:var(--inset-bg);border-radius:var(--radius-sm);padding:14px;margin-bottom:14px; }
.template-label { font-size:0.75em;font-weight:600;color:var(--text-muted);margin-bottom:8px; }
.template-output { width:100%;min-height:300px;background:var(--input-bg);border:1px solid var(--border);border-radius:10px;padding:14px;color:var(--text-primary);font-size:0.78em;font-family:'SF Mono',Menlo,Consolas,monospace;line-height:1.7;resize:vertical;outline:none; }
.template-actions { display:flex;gap:6px;margin-top:8px; }
.doubao-button { background:linear-gradient(135deg,var(--accent4),#ff6723);color:#000;font-weight:600; }
.steps-panel { background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:14px; }
.steps-title { font-size:0.82em;font-weight:600;color:var(--accent3);margin-bottom:10px; }
.steps-list { display:flex;align-items:center;gap:0;flex-wrap:wrap;justify-content:center; }
.step-card { display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:10px 14px; }
.step-number { width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:0.75em;font-weight:700; }
.step-title { font-size:0.78em;font-weight:600; }
.step-description { font-size:0.68em;color:var(--text-muted); }
.step-arrow { color:var(--text-muted);padding:0 6px; }
.storyboard-prompt { min-height:80px; font-family:var(--font); }
.upload-icon { font-size:2em; margin-bottom:6px; }
.upload-title { color:var(--text-secondary); font-size:0.86em; }
.upload-description { color:var(--text-muted); font-size:0.72em; margin-top:4px; }
.storyboard-generate { margin-top:14px; }
.storyboard-flow-hidden { display:none; margin-top:20px; }
.storyboard-status { display:flex; align-items:center; gap:12px; padding:16px 20px; background:linear-gradient(135deg, rgba(10,132,255,0.08), rgba(94,92,230,0.06)); border:1px solid rgba(10,132,255,0.15); border-radius:var(--radius); margin-bottom:16px; }
.storyboard-status-title { font-weight:600; font-size:0.9em; color:var(--accent); }
.storyboard-status-description { color:var(--text-secondary); font-size:0.78em; margin-top:2px; }
.storyboard-retry { margin-top:16px; text-align:center; }
.storyboard-retry-button { font-size:0.82em; padding:9px 20px; }
.storyboard-actions { margin-top:8px; }
.wechat-icon { font-size:1.5em; }
.wechat-title { font-weight:600; font-size:0.88em; }
.wechat-subtitle { color:var(--text-secondary); font-size:0.75em; }
.scene-card-effect { border-color:rgba(255,55,95,0.4); }
.scene-name-effect { color:var(--accent5); }
.scene-card-layout { border-color:rgba(255,159,10,0.4); }
.scene-name-highlight { color:var(--accent4); }
.scene-card-mark { border-color:rgba(94,92,230,0.4); }
.scene-name-mark { color:var(--accent2); }
.scene-card-custom { border-style:dashed;opacity:0.75; }
.favorite-item { background:var(--bg-tertiary); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; display:flex; align-items:center; gap:10px; }
.favorite-content { flex:1; min-width:0; }
.favorite-name { font-size:0.85em; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.favorite-meta { font-size:0.7em; color:var(--text-muted); margin-top:2px; }
.favorite-load { background:var(--accent); color:#fff; border:none; padding:4px 10px; border-radius:6px; font-size:0.7em; cursor:pointer; font-family:var(--font); font-weight:600; white-space:nowrap; }
.favorite-remove { background:rgba(255,69,58,0.15); color:var(--accent5); border:none; padding:4px 8px; border-radius:6px; font-size:0.7em; cursor:pointer; font-family:var(--font); }
