:root{--bg: #ffffff;--surface: #ffffff;--surface-soft: #f6f9ff;--line: #dbe7f5;--line-strong: #bfd3eb;--text: #111827;--muted: #5b6472;--primary: #58a8ff;--primary-dark: #1f75d6;--primary-soft: #eaf4ff;--success: #287b52;--warning: #a36d12;--danger: #b6413b;--shadow: 0 12px 28px rgba(28, 45, 68, .08);--radius: 8px;--menu-bg: #ffffff;--menu-hover: rgba(88, 168, 255, .14);--menu-shadow: 0 14px 32px rgba(28, 45, 68, .14);--dialog-backdrop: rgba(23, 32, 51, .32);font-family:Microsoft YaHei,PingFang SC,Noto Sans SC,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:1180px;background:var(--bg);color:var(--text);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 460px;background:#fff}.login-brand{padding:84px 76px;display:flex;flex-direction:column;justify-content:center}.brand-mark{width:48px;height:48px;border-radius:8px;display:inline-grid;place-items:center;color:#fff;background:var(--primary);font-weight:800;box-shadow:var(--shadow)}.brand-logo{width:48px;height:48px;max-width:48px;max-height:48px;border-radius:12px;object-fit:cover;display:block;box-shadow:var(--shadow)}.login-logo{width:72px;height:72px;border-radius:16px}.login-brand h1{margin:24px 0 12px;font-size:34px;line-height:1.2}.login-brand p{width:680px;max-width:88%;margin:0;color:var(--muted);font-size:16px;line-height:1.8}.login-panel{align-self:center;margin-right:76px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px}.login-panel h2{margin:0 0 8px;font-size:22px}.login-panel .hint{margin:0 0 28px;color:var(--muted)}.auth-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:22px;padding:5px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.auth-mode-tabs button{height:34px;border:0;border-radius:6px;color:#344156;background:transparent;font-weight:800}.auth-mode-tabs button.active,.auth-mode-tabs button:hover{color:var(--primary-dark);background:var(--surface);box-shadow:0 5px 14px #1c2d440f}.auth-portal-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.auth-portal-tabs button{min-height:46px;border:1px solid var(--line-strong);border-radius:8px;color:#344156;background:var(--surface);font-weight:800}.auth-portal-tabs button.active,.auth-portal-tabs button:hover{color:var(--primary-dark);border-color:#58a8ff8c;background:var(--primary-soft)}.form-row{display:grid;gap:8px;margin-bottom:18px}.form-row label{color:#344156;font-weight:600}.input,.select,.textarea{width:100%;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--text);outline:none;transition:border-color .16s,box-shadow .16s}.input,.select{height:40px;padding:0 12px}.textarea{resize:none;padding:14px;line-height:1.8}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #58a8ff2e}.error-tip{min-height:22px;color:var(--danger)}.success-tip{min-height:22px;color:var(--success)}.success-tip.inline,.error-tip.inline{min-height:0;margin:0;font-size:13px}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.app-content,.app-main{min-width:0}.app-topbar{position:sticky;top:0;z-index:15;height:54px;padding:0 24px;border-bottom:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.topbar-user,.topbar-link{height:32px;border:0;border-radius:999px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;color:#344156;background:transparent;font-weight:700;white-space:nowrap}.topbar-user{color:var(--primary-dark);background:var(--primary-soft)}.topbar-user-entry{margin-left:8px;padding-left:10px;border-left:1px solid rgba(31,117,214,.22);color:#243246}.topbar-link:hover,.topbar-user:hover{color:var(--primary-dark);background:var(--primary-soft)}.sidebar{position:sticky;top:0;height:100vh;z-index:20;display:flex;flex-direction:column;gap:28px;padding:24px 16px;background:linear-gradient(180deg,#fff,#f8fbff);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-brand{display:flex;align-items:center;gap:14px;color:var(--text);text-decoration:none;padding:4px 6px}.topbar-brand:hover{color:var(--primary-dark)}.topbar-brand .brand-mark,.topbar-brand .brand-logo{width:44px;height:44px;max-width:44px;max-height:44px;font-size:16px;font-weight:900;flex:0 0 auto;border-radius:12px;box-shadow:0 4px 14px #58a8ff59}.topbar-brand .brand-name{font-size:20px;font-weight:900;letter-spacing:-.3px;background:linear-gradient(135deg,#1a2332,#2d4a6f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-button{width:100%;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.side-nav{display:grid;gap:4px}.side-nav-main{min-height:48px;border-radius:10px;color:#4a5568;display:flex;align-items:center;gap:12px;text-decoration:none;padding:0 14px;font-weight:700;font-size:15px;transition:all .18s ease}.side-nav-main span{font-size:15px}.side-nav-main.muted{color:var(--muted)}.side-nav-main.active,.side-nav-main:not(.muted):hover{color:var(--primary-dark);background:var(--primary-soft);box-shadow:0 2px 8px #58a8ff1f}.user-area{margin-top:auto;display:grid;gap:10px}.user-link{border:0;background:transparent;color:var(--primary-dark);font-weight:700;display:inline-flex;align-items:center;gap:6px}.page{width:min(1480px,calc(100vw - 56px));margin:0 auto;padding:26px 0 42px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.page-title h1{margin:0 0 8px;font-size:24px}.page-title p{margin:0;color:var(--muted)}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.ranking-page{padding-top:20px}.ranking-source-bar{display:flex;justify-content:flex-start;margin-bottom:18px}.ranking-heading{margin:0 0 20px;text-align:center}.ranking-heading h1{margin:0;font-size:28px;line-height:1.25}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 5px 18px #1c2d440a}.filter-panel{padding:18px;margin-bottom:18px}.filter-top{display:grid;grid-template-columns:auto 1fr 190px;gap:16px;align-items:center}.filter-row+.filter-row{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}.filter-sort{width:190px}.ranking-start-error{margin:-6px 0 14px}.segmented,.tags,.actions{display:flex;flex-wrap:wrap;gap:8px}.segment,.tag-filter{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 14px;background:#fff;color:#415064}.segment.active,.tag-filter.active{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-soft);font-weight:700}.search-box{height:40px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;padding:0 12px;display:flex;align-items:center;gap:8px}.search-box.fixed{width:360px}.search-box input{flex:1;border:0;outline:0;min-width:0}.filter-bottom{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.book-card{display:grid;grid-template-columns:112px 1fr;gap:16px;padding:16px}.ranking-list{display:grid;gap:16px}.ranking-item{display:grid;grid-template-columns:76px minmax(0,1fr) 210px;gap:16px;align-items:center;padding:16px}.ranking-main{min-width:0}.ranking-rank{width:56px;height:56px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:4px;color:#b52420;background:#fff1f0;font-weight:800}.ranking-title-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.ranking-title-row h3{margin:0;font-size:18px}.ranking-title-link{color:var(--text);font-size:18px;font-weight:800;text-decoration:none}.ranking-title-link:hover{color:var(--primary-dark)}.ranking-action{display:flex;justify-content:flex-end}.ranking-action .btn{width:190px;white-space:nowrap}.rank-badge{height:28px;min-width:54px;padding:0 10px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#b52420;background:#fff1f0;font-weight:800}.ranking-item .meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px}.ranking-source-tabs{display:inline-flex;gap:8px;padding:5px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.ranking-source-tabs button{height:34px;border:0;border-radius:6px;padding:0 13px;color:#344156;background:transparent;font-weight:700}.ranking-source-tabs button.active,.ranking-source-tabs button:hover{color:var(--primary-dark);background:var(--primary-soft)}.ranking-table-panel{overflow:hidden}.ranking-count{padding:14px 18px;color:#344156;border-bottom:1px solid var(--line)}.ranking-count strong{color:var(--danger)}.ranking-table{width:100%;border-collapse:collapse;table-layout:fixed}.ranking-table th,.ranking-table td{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.ranking-table th{height:44px;color:#243246;background:#fbfcfe;font-weight:800}.ranking-sort-header{min-height:28px;border:0;padding:0;display:inline-flex;align-items:center;gap:5px;color:inherit;background:transparent;font:inherit;font-weight:800;cursor:pointer}.ranking-sort-header svg{color:var(--muted)}.ranking-sort-header:hover,.ranking-sort-header.active .sort-direction-icons .lit{color:var(--primary-dark)}.sort-direction-icons{display:inline-grid;grid-template-columns:repeat(2,13px);gap:2px;align-items:center}.sort-direction-icons svg{opacity:.42}.sort-direction-icons svg.lit{opacity:1;filter:drop-shadow(0 1px 3px rgba(31,117,214,.28))}.ranking-table th:nth-child(1),.ranking-table td:nth-child(1){width:64px;text-align:center}.ranking-table th:nth-child(2),.ranking-table td:nth-child(2){width:270px}.ranking-table th:nth-child(3),.ranking-table td:nth-child(3){width:280px}.ranking-table th:nth-child(4),.ranking-table td:nth-child(4),.ranking-table th:nth-child(5),.ranking-table td:nth-child(5),.ranking-table th:nth-child(6),.ranking-table td:nth-child(6){width:120px}.ranking-table th:nth-child(7),.ranking-table td:nth-child(7),.ranking-table th:nth-child(8),.ranking-table td:nth-child(8){width:125px}.ranking-table th:nth-child(9),.ranking-table td:nth-child(9){width:190px}.ranking-table tbody tr:hover{background:#fbfdff}.ranking-table .ranking-title-link{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.ranking-title-meta{margin-top:6px;color:var(--muted);font-size:12px}.ranking-table .biz-tags{margin:0}.ranking-medal{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;position:relative;color:#fff;font-size:12px;font-weight:900}.ranking-medal svg{position:absolute;inset:0;width:30px;height:30px;color:#f6c449;filter:drop-shadow(0 2px 4px rgba(113,74,5,.15))}.ranking-medal.rank-2 svg{color:#b9c1cb}.ranking-medal.rank-3 svg{color:#d58a42}.ranking-medal.rank-1,.ranking-medal.rank-2,.ranking-medal.rank-3{text-shadow:0 1px 1px rgba(0,0,0,.24)}.ranking-number{color:#344156;font-weight:700}.ranking-generate-btn{width:170px;white-space:nowrap}.ranking-heading p{margin:8px 0 0;color:var(--muted);font-size:15px;font-weight:700}.ranking-filter-main{display:grid;grid-template-columns:minmax(240px,1fr) 220px;gap:14px;align-items:end}.ranking-sort-select span{display:block;margin-bottom:7px;color:var(--muted);font-size:12px;font-weight:800}.ranking-sort-select select{width:100%;height:40px;border:1px solid var(--line-strong);border-radius:6px;padding:0 12px;color:#344156;background:#fff}.changdu-ranking-table{min-width:850px}.changdu-ranking-table th:nth-child(1),.changdu-ranking-table td:nth-child(1){width:64px;text-align:center}.changdu-ranking-table th:nth-child(2),.changdu-ranking-table td:nth-child(2){width:82px}.changdu-ranking-table th:nth-child(3),.changdu-ranking-table td:nth-child(3){width:260px}.changdu-ranking-table th:nth-child(4),.changdu-ranking-table td:nth-child(4){width:280px}.changdu-ranking-table th:nth-child(5),.changdu-ranking-table td:nth-child(5){width:76px}.changdu-ranking-table th:nth-child(6),.changdu-ranking-table td:nth-child(6){width:88px}.changdu-ranking-table th:nth-child(7),.changdu-ranking-table td:nth-child(7){width:118px}.ranking-cover-image,.ranking-cover-placeholder{width:48px;height:64px;border-radius:6px}.ranking-cover-image{object-fit:cover;display:block;border:1px solid var(--line);background:var(--surface-soft)}.ranking-cover-placeholder{display:grid;place-items:center;padding:6px;color:#fff;background:linear-gradient(135deg,#58a8ff,#d8ebff);font-size:12px;font-weight:800;line-height:1.2}.ranking-pagination{display:flex;justify-content:flex-end;gap:6px;padding:14px 18px;border-top:1px solid var(--line)}.ranking-pagination button{min-width:34px;height:32px;border:1px solid var(--line);border-radius:6px;color:#344156;background:#fff;font-weight:800}.ranking-pagination button.active{color:#fff;border-color:var(--primary);background:var(--primary)}.ranking-pagination button:disabled{cursor:not-allowed;opacity:.5}.user-management-page{padding-top:22px}.user-management-panel{overflow:hidden}.user-management-table{width:100%;border-collapse:collapse}.user-management-table th,.user-management-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.user-management-table th{background:#fbfcfe;color:#243246;font-weight:800}.user-management-table .select,.table-input{width:100%;min-height:36px}.table-input{border:1px solid var(--line-strong);border-radius:6px;padding:0 10px;color:var(--text);background:#fff}.saving-dot{margin-left:8px;color:var(--muted);font-size:12px}.user-management-error{margin-bottom:14px}.permission-note{margin-top:14px;min-height:48px;padding:0 14px;display:flex;align-items:center;gap:8px;color:var(--muted)}.manager-dashboard{display:grid;gap:18px}.manager-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.manager-stat{display:grid;gap:8px;padding:18px}.manager-stat svg{color:var(--primary-dark)}.manager-stat span{color:var(--muted);font-weight:700}.manager-stat strong{color:var(--text);font-size:28px}.manager-table-panel{padding:0;overflow:hidden}.manager-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.manager-section-head h2{margin:0;font-size:18px}.manager-table{width:100%;border-collapse:collapse}.manager-table th,.manager-table td{padding:14px 18px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.manager-table th{color:var(--muted);background:#f8fbff;font-weight:800}.manager-table td strong,.manager-table td small{display:block}.manager-table td small{margin-top:4px;color:var(--muted)}.manager-denied{display:flex;align-items:flex-start;gap:12px;padding:22px}.manager-denied h1{margin-bottom:6px;font-size:22px}.manager-denied p{margin:0;color:var(--muted)}.heat-value{display:inline-flex;align-items:center;gap:4px;color:var(--primary-dark);font-weight:700}.cover{height:154px;border-radius:6px;display:flex;align-items:flex-end;padding:12px;color:#fff;font-weight:800;line-height:1.25;background:linear-gradient(180deg,#0000 20%,#0000007a),linear-gradient(135deg,#58a8ff,#9ed0ff 55%,#d8ebff)}.cover.large{width:236px;height:318px;font-size:22px}.detail-cover-image{width:236px;height:318px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:var(--surface-soft);box-shadow:0 12px 28px #1c2d4414}.book-card h3,.script-name{margin:0;font-size:17px}.meta{color:var(--muted);line-height:1.8}.desc{margin:8px 0 10px;color:#344156;line-height:1.7}.biz-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.biz-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:5px;color:#415064;background:var(--surface-soft);border:1px solid var(--line)}.btn{height:36px;border-radius:6px;border:1px solid var(--line-strong);padding:0 14px;color:#344156;background:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}.btn.primary{color:#fff;border-color:var(--primary);background:var(--primary)}.btn.primary:hover{background:var(--primary-dark)}.btn.full{width:100%;height:42px}.btn:disabled{cursor:not-allowed;opacity:.6}.detail-layout{display:grid;grid-template-columns:270px 1fr;gap:24px;padding:22px}.detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.detail-main h1{margin:0 0 10px;font-size:26px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.stat{padding:13px;background:var(--surface-soft);border:1px solid var(--line);border-radius:6px}.stat span{display:block;color:var(--muted);margin-bottom:5px}.stat strong{font-size:18px}.section-title{margin:22px 0 12px;font-size:17px}.section-title.no-top{margin-top:0}.chapter-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.chapter-link,.chapter-mini{border:1px solid var(--line);border-radius:6px;background:#fff;min-height:40px;padding:0 12px;text-align:left;color:#344156}.detail-generate-panel{margin:16px 0 20px;padding:10px;display:inline-flex;gap:10px;align-items:center;width:fit-content;max-width:100%;background:linear-gradient(180deg,#fffffff5,#f7f9fceb);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 30px #1c2d440f}.detail-download-row{margin:18px 0 4px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.detail-download-row .btn{min-width:128px}.detail-generate-panel .select{width:250px;height:38px;border-radius:10px;background:#ffffffe6}.detail-generate-panel .skeleton-mode-select{width:190px}.detail-generate-panel .btn{height:38px;min-width:190px;border-radius:10px;padding:0 18px;white-space:nowrap}.detail-workflow-panel,.detail-script-result-panel{margin-top:16px;padding:18px}.detail-workflow-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.detail-progress{margin-top:12px}.detail-script-result-panel .script-output.preview{min-height:420px;max-height:none}.chapter-page{display:grid;grid-template-columns:1fr 320px;gap:18px}.reader{padding:24px}.reader h1{margin:18px 0 12px;font-size:24px}.reader-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}.reader-body{margin-top:18px;padding:20px;min-height:520px;background:#fffdf8;border:1px solid #eadfcd;border-radius:var(--radius);color:#2a2f37;line-height:2.05;white-space:pre-wrap}.directory-panel{padding:18px;align-self:start}.directory-list{display:grid;gap:8px;max-height:640px;overflow:auto}.chapter-mini{padding:10px}.chapter-mini.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark);font-weight:700}.generator-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px}.side-panel,.script-panel,.profile-panel,.help-panel{padding:20px}.script-panel{min-width:0;overflow:hidden}.script-detail-page .generator-layout{align-items:stretch}.script-detail-page .generator-layout>.side-panel,.script-detail-page .generator-layout>.script-panel{min-height:790px}.script-detail-page .generator-layout>.side-panel{display:flex;flex-direction:column}.script-detail-page .side-panel .version-manager{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.script-detail-page .side-panel .version-list{flex:1 1 auto;min-height:0;max-height:none}.generate-page{max-width:1180px}.generate-header{align-items:center;margin-bottom:26px}.generate-title-row{display:flex;align-items:center;gap:16px}.generate-title-row h1{margin:0}.generate-workspace{display:grid;gap:16px;min-height:calc(100vh - 112px)}.generate-workspace.idle{grid-template-rows:1fr;align-items:center;padding-bottom:54px}.generate-workspace.with-panels{align-content:start}.generation-flow-panel{width:min(1012px,100%);margin:-8px auto 0;padding:18px;border:1px solid rgba(88,168,255,.24);border-radius:8px;background:linear-gradient(135deg,#58a8ff14,#287b5214),var(--surface);box-shadow:0 12px 28px #1c2d4412}.generation-flow-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px}.generation-flow-head h2{margin:0 0 5px;font-size:18px}.generation-flow-head p{margin:0;color:var(--muted);line-height:1.6}.generation-flow-map{counter-reset:flow;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.generation-flow-node:nth-child(1){grid-column:1;grid-row:1}.generation-flow-node:nth-child(2){grid-column:2;grid-row:1}.generation-flow-node:nth-child(3){grid-column:3;grid-row:1}.generation-flow-node:nth-child(4){grid-column:3;grid-row:2}.generation-flow-node:nth-child(5){grid-column:2;grid-row:2}.generation-flow-node:nth-child(6){grid-column:1;grid-row:2}.generation-flow-node:nth-child(7){grid-column:1;grid-row:3}.generation-flow-node:nth-child(8){grid-column:2;grid-row:3}.generation-flow-node:nth-child(9){grid-column:3;grid-row:3}.generation-flow-node{position:relative;min-height:84px;padding:12px 12px 10px;border:1px solid rgba(191,211,235,.78);border-radius:8px;background:#ffffffdb;box-shadow:0 6px 16px #1c2d440d}.generation-flow-node:before{content:"";position:absolute;top:50%;right:-12px;width:12px;border-top:2px solid rgba(88,168,255,.42)}.generation-flow-node:after{content:"";position:absolute;top:calc(50% - 4px);right:-13px;width:8px;height:8px;border-top:2px solid rgba(88,168,255,.42);border-right:2px solid rgba(88,168,255,.42);transform:rotate(45deg)}.generation-flow-node:nth-child(4):before,.generation-flow-node:nth-child(5):before{right:auto;left:-12px}.generation-flow-node:nth-child(4):after,.generation-flow-node:nth-child(5):after{right:auto;left:-13px;border-top:0;border-right:0;border-left:2px solid rgba(88,168,255,.42);border-bottom:2px solid rgba(88,168,255,.42);transform:rotate(45deg)}.generation-flow-node:nth-child(3):before,.generation-flow-node:nth-child(6):before{top:auto;right:50%;bottom:-12px;width:0;height:12px;border-top:0;border-left:2px solid rgba(88,168,255,.42)}.generation-flow-node:nth-child(3):after,.generation-flow-node:nth-child(6):after{top:auto;right:calc(50% - 4px);bottom:-12px;border-top:0;border-left:0;border-right:2px solid rgba(88,168,255,.42);border-bottom:2px solid rgba(88,168,255,.42);transform:rotate(45deg)}.generation-flow-node:last-child:before,.generation-flow-node:last-child:after{display:none}.generation-flow-node:nth-child(9):before,.generation-flow-node:nth-child(9):after{display:none}.generation-flow-index{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:22px;padding:0 9px;margin-bottom:9px;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--success));font-size:11px;font-weight:900}.generation-flow-node strong{display:block;color:#1f2d3d;font-size:13px;line-height:1.35}.generation-flow-node small{display:block;margin-top:5px;color:var(--muted);line-height:1.45}.upload-generate-area{display:grid;justify-items:center;gap:18px;min-height:auto;align-content:center;padding:0 0 28px}.upload-generate-area h2{margin:0;font-size:26px;line-height:1.25;text-align:center}.upload-generate-bar{display:grid;grid-template-columns:148px minmax(420px,650px) 190px 148px;gap:12px;align-items:center;width:min(1160px,100%)}.upload-picker{height:58px;border:1px dashed var(--line-strong);border-radius:8px;padding:0 52px 0 18px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--primary-dark);background:var(--surface);font-weight:800;cursor:pointer;position:relative}.upload-picker.disabled{cursor:not-allowed;opacity:.6}.upload-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-picker span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-picker-clear{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);background:var(--surface);cursor:pointer}.upload-picker-clear:hover:not(:disabled){color:var(--danger);border-color:#d53f3f59;background:#d53f3f14}.upload-picker-clear:disabled{opacity:.45;cursor:not-allowed}.generate-action{height:58px;font-size:16px;font-weight:800}.generate-meta-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.compact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.model-picker{position:relative}.model-chip{width:148px;min-width:0;height:58px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:7px;color:#2f3d50;background:var(--surface);box-shadow:0 6px 16px #1c2d440f;font-weight:800}.model-chip strong{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-chip svg{color:var(--muted);flex:0 0 auto}.model-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:254px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#242424f5;box-shadow:0 18px 46px #00000047;color:#fff}.model-popover-title{padding:2px 2px 8px;color:#ffffff73;font-weight:800}.model-popover-title.separated{margin-top:8px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.model-popover button{width:100%;min-height:34px;border:0;border-radius:8px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:transparent;text-align:left}.model-popover button.active,.model-popover button:hover{background:#ffffff1f}.uploaded-file-strip{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 13px;display:flex;align-items:center;gap:12px;background:var(--surface)}.uploaded-file-strip strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-file-strip span{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-live-panel,.result-preview-panel{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 5px 18px #1c2d440a}.workflow-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.workflow-head h2{margin:0 0 4px;font-size:18px}.workflow-head p{margin:0;color:var(--muted)}.workflow-status-line{display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:var(--muted);font-size:12px}.workflow-status-line span{overflow-wrap:anywhere}.toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.toolbar-estimate{color:var(--muted);font-size:12px;line-height:34px;white-space:nowrap}.script-detail-tabs{display:inline-flex;gap:8px;padding:5px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.script-detail-tabs button{height:34px;border:0;border-radius:6px;padding:0 13px;color:#344156;background:transparent;font-weight:700}.script-detail-tabs button.active{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-soft)}.script-detail-tabs button:disabled{color:#9aa6b2;background:transparent;cursor:not-allowed}.script-detail-header{justify-content:flex-start;align-items:center}.script-detail-header-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.script-progress-current{display:inline-flex;align-items:center;gap:6px;color:var(--primary-dark);font-weight:800}.evaluation-status-line{margin-top:12px;color:var(--muted);font-size:13px}.evaluation-status-line button{border:0;padding:0;background:transparent;color:var(--primary-dark);font:inherit;font-weight:700;cursor:pointer}.evaluation-page{padding-top:22px}.evaluation-page-header{align-items:center}.evaluation-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}.evaluation-side-panel{position:sticky;top:76px;padding:22px}.evaluation-content-panel{min-height:620px;padding:0;overflow:hidden}.evaluation-summary{display:grid;gap:12px}.evaluation-kicker{color:var(--primary-dark);font-size:13px;font-weight:800}.evaluation-summary h1{margin:0;font-size:20px;line-height:1.35;color:#0f172a}.evaluation-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0 6px}.evaluation-stats div{min-height:72px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#f8fbff}.evaluation-stats span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.evaluation-stats strong{font-size:22px}.evaluation-action{width:100%;margin-top:12px;justify-content:center}.evaluation-error{margin-top:14px;line-height:1.6}.evaluation-content-head{min-height:76px;padding:20px 24px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fbfdff}.evaluation-content-head h1{margin:0 0 6px;font-size:24px}.evaluation-running{margin:18px 24px 0;min-height:44px;border:1px solid #cfe0f6;border-radius:8px;padding:0 14px;display:flex;align-items:center;gap:8px;color:var(--primary-dark);background:#f6f9fe;font-weight:700}.evaluation-list{display:grid;gap:16px;padding:20px 24px 24px}.evaluation-card{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden;box-shadow:0 8px 24px #1c2d440d}.evaluation-card header{min-height:46px;padding:0 16px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:#f8fbff}.evaluation-card pre{margin:0;padding:18px;white-space:pre-wrap;word-break:break-word;line-height:1.85;font:inherit;color:#0f172a}.evaluation-empty{min-height:360px;margin:20px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);border:1px dashed #cfe0f6;border-radius:8px;background:#fbfdff}.evaluation-empty svg{color:var(--primary)}.evaluation-empty strong{color:#0f172a;font-size:18px}.workflow-current-estimate{flex:0 0 auto;color:var(--muted);white-space:nowrap}.workflow-current-node{display:inline-flex;align-items:center;gap:6px;color:var(--primary-dark);font-weight:700;min-width:0}.workflow-current-node svg{color:var(--primary);animation:spin 1.1s linear infinite;flex:0 0 auto}.workflow-steps.live{grid-template-columns:repeat(2,minmax(0,1fr));max-height:420px}.workflow-steps.compact{margin-top:0;max-height:260px}.script-output.preview{min-height:280px;max-height:420px}.script-output.placeholder,.script-output.preview.placeholder{color:var(--muted)}.info-list{display:grid;gap:12px}.info-item{display:grid;grid-template-columns:86px 1fr;gap:10px;line-height:1.7}.info-item span{color:var(--muted)}.progress{height:10px;overflow:hidden;background:#e8eef3;border-radius:999px}.progress i{display:block;height:100%;width:var(--value, 0%);background:linear-gradient(90deg,#8ec7ff,var(--primary));transition:width .25s}.progress.large{height:12px}.workflow-run-id{margin:8px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.workflow-progress-meta{margin:7px 0 0;color:var(--muted);font-size:12px}.workflow-current{margin-top:10px;display:flex;align-items:center;gap:6px;color:var(--primary-dark);font-weight:700}.workflow-current svg{animation:spin 1.1s linear infinite}.workflow-steps{margin-top:10px;display:grid;gap:8px;max-height:260px;overflow:auto}.workflow-step{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:6px;align-items:center;min-height:36px;padding:8px 10px;border:1px solid #cfe0f6;border-radius:6px;background:#f6f9fe;color:#123456}.workflow-step span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-step em{color:#1f3550;font-style:normal;font-size:12px;white-space:nowrap}.workflow-step small{grid-column:2 / 4;color:var(--danger);overflow-wrap:anywhere}.workflow-step.running{border-color:#58a8ffb8}.workflow-step.running svg{animation:spin 1.1s linear infinite;color:var(--primary)}.workflow-step.succeeded svg{color:var(--success)}.workflow-step.failed{border-color:#c43c3c73}.workflow-step.failed svg{color:var(--danger)}.workflow-step.waiting svg{color:var(--muted)}.workflow-history-row td{padding:12px 16px 18px;background:#fbfdff;border-top:0}.workflow-inline-progress{width:160px;height:8px;margin-top:8px;overflow:hidden;border-radius:999px;background:#e8eef3}.workflow-inline-progress.detail{width:100%;margin:10px 0 12px}.workflow-inline-progress i{display:block;width:42%;min-width:54px;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8ec7ff,var(--primary));animation:workflow-slide 1.15s ease-in-out infinite}.spin-icon{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes workflow-slide{0%{transform:translate(-115%)}to{transform:translate(255%)}}.script-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.script-toolbar-main{min-width:0;flex:1 1 auto}.script-toolbar h1{margin:0 0 6px;font-size:22px}.script-output{height:700px;min-height:700px;width:100%;max-width:100%;background:#fbfcfd}.adaptation-comparison{display:block;min-width:0;width:100%;max-width:100%;border:1px solid var(--line-strong);border-radius:6px;padding:16px;overflow-y:auto;overflow-x:hidden}.adaptation-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.adaptation-head>div:first-child{display:grid;gap:4px;min-width:0}.adaptation-head strong{color:var(--text);font-size:17px}.adaptation-head span,.adaptation-meta-grid span,.adaptation-section-title span,.adaptation-conclusion span{color:var(--muted);font-size:12px}.adaptation-total{display:grid;justify-items:end;gap:2px;flex:0 0 auto}.adaptation-total strong{color:var(--primary-dark);font-size:24px}.adaptation-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.adaptation-meta-grid div{display:grid;gap:6px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#fff}.adaptation-meta-grid strong{min-width:0;overflow-wrap:anywhere;color:var(--text);font-size:13px}.adaptation-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:16px 0 8px}.adaptation-section-title strong{color:var(--text);font-size:15px}.adaptation-table-wrap{width:100%;max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:#fff}.adaptation-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed}.adaptation-table th,.adaptation-table td{padding:12px;border-bottom:1px solid var(--line);color:var(--text);text-align:left;vertical-align:top;overflow-wrap:anywhere}.adaptation-table th{color:var(--muted);background:#f4f7fb;font-size:12px;font-weight:800}.adaptation-table-summary th:nth-child(1),.adaptation-table-summary td:nth-child(1){width:15%}.adaptation-table-summary th:nth-child(4),.adaptation-table-summary td:nth-child(4){width:16%}.adaptation-table-summary th:nth-child(5),.adaptation-table-summary td:nth-child(5){width:11%}.adaptation-table-skeleton{min-width:900px}.adaptation-table-skeleton th:nth-child(1),.adaptation-table-skeleton td:nth-child(1){width:10%}.adaptation-table-skeleton th:nth-child(2),.adaptation-table-skeleton td:nth-child(2){width:10%}.adaptation-table-skeleton th:nth-child(5),.adaptation-table-skeleton td:nth-child(5){width:16%}.adaptation-table-skeleton th:nth-child(6),.adaptation-table-skeleton td:nth-child(6){width:18%}.adaptation-table-beats{min-width:820px}.adaptation-table-beats th:nth-child(1),.adaptation-table-beats td:nth-child(1){width:12%}.adaptation-table-beats th:nth-child(4),.adaptation-table-beats td:nth-child(4){width:12%}.adaptation-table tbody tr:last-child td{border-bottom:0}.adaptation-score{display:grid;gap:7px}.adaptation-score span{color:var(--primary-dark);font-weight:800}.adaptation-score-track{height:8px;overflow:hidden;border-radius:999px;background:#e8edf5}.adaptation-score-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#7cc4ff)}.adaptation-verdict{display:block;max-width:100%;padding:0;border:0;border-radius:0;color:var(--text);background:transparent;font-weight:600;line-height:1.65;white-space:normal;overflow-wrap:anywhere}.adaptation-conclusion{display:grid;gap:6px;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:#fff}.adaptation-conclusion p{margin:0;color:var(--text);line-height:1.75}@media(max-width:860px){.adaptation-head{align-items:flex-start;flex-direction:column}.adaptation-total{justify-items:start}.adaptation-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.adaptation-section-title{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.adaptation-meta-grid{grid-template-columns:1fr}}.history-list-surface{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.history-control-bar{min-height:54px;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#fbfdff}.history-control-left{display:flex;align-items:center;gap:10px}.history-control-right{display:flex;align-items:center;gap:14px}.history-period-select{width:116px}.history-total{color:var(--muted);font-weight:700}.selected-count{color:var(--primary-dark);font-weight:700;font-size:13px;padding:4px 10px;background:var(--primary-soft);border-radius:6px}.more-btn{width:34px;height:34px;border-radius:8px}.history-error{margin:12px 16px 0}.script-table{width:100%;border-collapse:collapse}.script-table th,.script-table td{padding:16px 18px;border-bottom:1px solid #e8eef7;text-align:left;vertical-align:middle}.script-table th{color:var(--muted);background:#f8fbff;font-weight:700}.script-table tbody tr:hover{background:#fbfdff}.script-table .actions-col,.script-table .actions-cell{width:360px}.script-table .actions-cell .actions{flex-wrap:nowrap;min-width:330px}.script-table .actions-cell .btn{white-space:nowrap}.skeleton-mode-select{min-width:178px;height:38px;border-radius:10px;background:#fffffff2}.table-skeleton-select,.compact-skeleton-select{width:190px}.script-table .select-col{width:46px;min-width:46px;text-align:center}.script-table .select-col input{width:16px;height:16px;padding:0}.script-table .index-col{width:70px;min-width:70px;text-align:center;color:var(--muted);font-weight:700}.script-table .row-select-inline{display:inline-flex;align-items:center;justify-content:center}.script-table .actions-header-inner{display:flex;align-items:center;justify-content:flex-end;gap:10px}.script-table .row-menu-header,.script-table .row-menu-cell{width:56px;min-width:56px;padding:14px 10px;text-align:center}.row-menu-cell .more-menu{display:inline-flex;align-items:center;justify-content:center}.script-name-row{display:flex;align-items:center}.more-menu{position:relative;flex:0 0 auto}.icon-btn{width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:#6c7a8f;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease,transform .15s ease}.icon-btn:hover{background:var(--menu-hover);color:var(--primary-dark);transform:scale(1.06)}.more-popover{white-space:nowrap;position:absolute;right:0;top:calc(100% + 8px);z-index:70;min-width:96px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--menu-bg);box-shadow:var(--menu-shadow);transform-origin:top right;animation:menu-in .15s ease both}.version-popover{z-index:9999}.smart-popover{position:fixed;right:auto;top:auto}.more-popover[data-state=closing]{pointer-events:none;animation:menu-out .15s ease both}.danger-action{width:100%;min-height:34px;border:0;border-radius:8px;background:transparent;color:#c0392b;display:flex;align-items:center;gap:8px;padding:0 10px;text-align:left;transition:background-color .15s ease}.danger-action:hover{background:#fff1f0}.danger-action:active{transform:translateY(1px)}.confirm-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:var(--dialog-backdrop);animation:fade-in .15s ease both}.confirm-dialog{width:min(360px,calc(100vw - 40px));padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--menu-bg);box-shadow:var(--menu-shadow);animation:dialog-in .15s ease both}.confirm-dialog h3{margin:0 0 8px;font-size:18px}.confirm-dialog p{margin:0;color:var(--muted);line-height:1.7}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.btn.danger{color:#fff;border-color:var(--danger);background:var(--danger)}.btn.danger:hover{filter:brightness(.95)}.btn.danger:disabled{opacity:.7}.status{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:5px;font-weight:700}.status.success{color:var(--success);background:#e8f5ee}.status.running{color:var(--warning);background:#fff4d9}.status.failed{color:var(--danger);background:#fff1f0}.status.stopped{color:#6c7a8f;background:#edf1f5}.script-error-text{margin-top:6px;max-width:260px;color:var(--danger);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.script-title-stack{display:grid;gap:5px}.script-title-stack span{color:var(--muted);font-size:12px}.history-box{margin-top:6px;padding:0;border-radius:0;background:transparent;color:var(--muted);line-height:1.7}.history-pagination{min-height:58px;padding:12px 16px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.page-button{min-width:34px;height:34px;border:1px solid var(--line-strong);border-radius:6px;color:#344156;background:#fff;font-weight:700}.page-button.active{color:#fff;border-color:var(--primary);background:var(--primary)}.pagination-ellipsis{color:var(--muted);padding:0 4px}.version-manager{margin-top:22px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px #1c2d440d}.version-manager-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.version-manager-head h2{margin:0;font-size:17px}.version-manager-head span{flex:0 0 auto;min-height:24px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;color:var(--muted);background:var(--surface-soft);font-size:12px}.version-list{display:grid;gap:8px;max-height:clamp(220px,32vh,380px);overflow-y:auto;padding:2px 4px 2px 2px;overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(88,168,255,.34) transparent}.version-list::-webkit-scrollbar{width:6px}.version-list::-webkit-scrollbar-track{background:transparent}.version-list::-webkit-scrollbar-thumb{border-radius:999px;background:#58a8ff47}.version-list::-webkit-scrollbar-thumb:hover{background:#58a8ff7a}.version-card{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 4px 12px #1c2d440a;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background-color .15s ease}.version-card:hover{box-shadow:0 12px 26px #1c2d441a}.version-card.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 10px 24px #58a8ff29}.version-card.active:before{content:"";position:absolute;inset:10px auto 10px 0;width:3px;border-radius:999px;background:var(--primary)}.version-card-main{min-width:0;border:0;background:transparent;color:inherit;text-align:left;display:grid;gap:6px;padding:0;cursor:pointer}.version-card-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.version-card-main span{color:var(--muted);font-size:12px}.version-card-main small{color:var(--muted);font-size:12px;line-height:1.4}.version-card.improved{padding-bottom:32px}.version-card.improved.active{border-color:#bfff00b3}.version-card.generating{border-color:#58a8ff94;background:#58a8ff1a}.version-badge{position:absolute;right:12px;bottom:10px;border:1px solid rgba(191,255,0,.5);border-radius:999px;padding:2px 8px;background:#bfff0024;color:var(--primary-dark);font-size:11px;font-weight:800;line-height:1.3}.version-badge.running{display:inline-flex;align-items:center;gap:4px;border-color:#58a8ff80;background:#58a8ff24}.version-empty{min-height:132px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:var(--surface-soft);display:grid;place-items:center;gap:8px;text-align:center}.version-empty span{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;color:var(--primary-dark);background:var(--primary-soft);font-weight:800}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes menu-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.98)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.upload-box{min-height:96px;border:1px dashed var(--line-strong);border-radius:var(--radius);display:grid;place-items:center;gap:8px;padding:18px;color:var(--primary-dark);background:var(--surface-soft);cursor:pointer;text-align:center}.upload-box input{display:none}.upload-preview{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff}.upload-preview p{margin:8px 0 0;color:var(--muted);line-height:1.7}.upload-empty{margin-top:12px;min-height:84px;border:1px dashed var(--line);border-radius:6px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:8px}.profile-grid,.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.span-all{grid-column:1 / -1}.permission-list,.help-list{margin:0;padding-left:18px;color:#344156;line-height:1.9}.help-panel p{margin:0 0 12px;color:var(--muted);line-height:1.8}.flow-chart{display:grid;gap:12px}.flow-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}.flow-step{min-height:86px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.flow-step strong{display:block;margin-bottom:6px;color:var(--primary-dark)}.flow-step span{color:#344156;line-height:1.6}.flow-arrow{display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:900}.empty{padding:50px;text-align:center;color:var(--muted);grid-column:1 / -1}.theme-toggle-btn{height:30px;border:1px solid var(--line-strong);border-radius:999px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;color:#344156;background:var(--surface);font-weight:800;white-space:nowrap;box-shadow:0 6px 16px #1c2d440f;transition:border-color .15s ease,background-color .15s ease,color .15s ease,transform .15s ease}.theme-toggle-btn:hover,.theme-toggle-btn[aria-pressed=true]{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-soft);transform:translateY(-1px)}body.theme-lime{--bg: #171717;--surface: #222222;--surface-soft: #2b2b28;--line: #3a3a35;--line-strong: #55554d;--text: #f2f4ed;--muted: #b8bdae;--primary: #bfff00;--primary-dark: #d7ff52;--primary-soft: rgba(191, 255, 0, .13);--success: #bfff00;--warning: #ffd166;--danger: #ff756b;--shadow: 0 18px 42px rgba(0, 0, 0, .28);--menu-bg: #252522;--menu-hover: rgba(191, 255, 0, .12);--menu-shadow: 0 20px 48px rgba(0, 0, 0, .42);--dialog-backdrop: rgba(0, 0, 0, .58);background:radial-gradient(circle at 14% 8%,rgba(191,255,0,.1),transparent 28%),linear-gradient(180deg,#171717,#1d1d1b);color:var(--text)}body.theme-lime .app-topbar{border-bottom-color:var(--line);background:#222222f0;box-shadow:0 10px 28px #0000003d}body.theme-lime .sidebar{border-right-color:var(--line);background:linear-gradient(180deg,#222,#1b1b19)}body.theme-lime .brand-mark,body.theme-lime .topbar-brand .brand-mark,body.theme-lime .brand-logo{color:#222;background:#bfff00;box-shadow:0 10px 26px #bfff0038}body.theme-lime .topbar-brand,body.theme-lime .topbar-brand:hover,body.theme-lime .topbar-brand .brand-name{color:var(--text);background:none;-webkit-text-fill-color:currentColor}body.theme-lime .side-nav-main,body.theme-lime .topbar-link,body.theme-lime .theme-toggle-btn,body.theme-lime .ranking-source-tabs button,body.theme-lime .script-detail-tabs button,body.theme-lime .segment,body.theme-lime .tag-filter,body.theme-lime .btn,body.theme-lime .page-button,body.theme-lime .chapter-link,body.theme-lime .chapter-mini,body.theme-lime .model-chip,body.theme-lime .danger-action{color:var(--text)}body.theme-lime .topbar-user,body.theme-lime .theme-toggle-btn[aria-pressed=true],body.theme-lime .side-nav-main.active,body.theme-lime .side-nav-main:not(.muted):hover,body.theme-lime .ranking-source-tabs button.active,body.theme-lime .ranking-source-tabs button:hover,body.theme-lime .script-detail-tabs button.active,body.theme-lime .script-detail-tabs button:hover,body.theme-lime .segment.active,body.theme-lime .tag-filter.active,body.theme-lime .chapter-mini.active,body.theme-lime .version-card.active{color:var(--primary-dark);background:var(--primary-soft);border-color:#bfff0075}body.theme-lime .topbar-user-entry{color:#e7eadf;border-left-color:#bfff0047}body.theme-lime .panel,body.theme-lime .login-panel,body.theme-lime .history-list-surface,body.theme-lime .workflow-live-panel,body.theme-lime .result-preview-panel,body.theme-lime .evaluation-side-panel,body.theme-lime .evaluation-content-panel,body.theme-lime .version-manager,body.theme-lime .version-card,body.theme-lime .uploaded-file-strip,body.theme-lime .upload-preview,body.theme-lime .confirm-dialog,body.theme-lime .more-popover{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}body.theme-lime .filter-panel,body.theme-lime .stat,body.theme-lime .evaluation-stats div,body.theme-lime .flow-step,body.theme-lime .evaluation-card,body.theme-lime .evaluation-card header,body.theme-lime .evaluation-content-head,body.theme-lime .history-control-bar,body.theme-lime .workflow-history-row td,body.theme-lime .reader-body,body.theme-lime .upload-empty,body.theme-lime .version-empty,body.theme-lime .script-output,body.theme-lime .script-output.preview,body.theme-lime .adaptation-comparison,body.theme-lime .adaptation-meta-grid div,body.theme-lime .adaptation-table-wrap,body.theme-lime .adaptation-conclusion,body.theme-lime .search-box,body.theme-lime .upload-picker,body.theme-lime .upload-box,body.theme-lime .chapter-link,body.theme-lime .chapter-mini,body.theme-lime .detail-generate-panel,body.theme-lime .model-chip{background:var(--surface-soft);border-color:var(--line);color:var(--text)}body.theme-lime .adaptation-table th{color:#f2f4ed9e;background:#1c1c1a}body.theme-lime .adaptation-table th,body.theme-lime .adaptation-table td{border-bottom-color:var(--line)}body.theme-lime .adaptation-score-track{background:#2a2a26}body.theme-lime .adaptation-score-track i{background:linear-gradient(90deg,#bfff00,#ecff8d)}body.theme-lime .adaptation-verdict{color:var(--text);border-color:transparent;background:transparent}body.theme-lime .detail-generate-panel{background:linear-gradient(180deg,#2b2b28fa,#222222f0)}body.theme-lime .input,body.theme-lime .select,body.theme-lime .textarea,body.theme-lime .search-box input,body.theme-lime .table-input,body.theme-lime .detail-generate-panel .select{border-color:var(--line-strong);background:#1c1c1a;color:var(--text)}body.theme-lime .input:focus,body.theme-lime .select:focus,body.theme-lime .textarea:focus,body.theme-lime .table-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #bfff002e}body.theme-lime .auth-portal-tabs button{color:var(--text);background:#1c1c1a;border-color:var(--line-strong)}body.theme-lime .auth-portal-tabs button.active,body.theme-lime .auth-portal-tabs button:hover{color:#222;background:#bfff00;border-color:#bfff00}body.theme-lime input::placeholder,body.theme-lime textarea::placeholder{color:#f2f4ed7a}body.theme-lime .page-title p,body.theme-lime .meta,body.theme-lime .history-total,body.theme-lime .script-title-stack span,body.theme-lime .workflow-head p,body.theme-lime .workflow-status-line,body.theme-lime .workflow-run-id,body.theme-lime .workflow-progress-meta,body.theme-lime .workflow-current-estimate,body.theme-lime .evaluation-status-line,body.theme-lime .evaluation-stats span,body.theme-lime .evaluation-empty,body.theme-lime .version-card-main span,body.theme-lime .version-card-main small,body.theme-lime .version-manager-head span,body.theme-lime .history-box,body.theme-lime .pagination-ellipsis,body.theme-lime .info-item span,body.theme-lime .form-row label,body.theme-lime .login-panel .hint,body.theme-lime .saving-dot,body.theme-lime .permission-note{color:var(--muted)}body.theme-lime .desc,body.theme-lime .permission-list,body.theme-lime .help-list,body.theme-lime .flow-step span,body.theme-lime .ranking-count,body.theme-lime .ranking-number,body.theme-lime .workflow-step,body.theme-lime .workflow-step em,body.theme-lime .reader-body,body.theme-lime .evaluation-summary h1,body.theme-lime .evaluation-content-head h1,body.theme-lime .evaluation-card pre,body.theme-lime .evaluation-empty strong,body.theme-lime .ranking-title-link{color:var(--text)}body.theme-lime .btn,body.theme-lime .theme-toggle-btn,body.theme-lime .segment,body.theme-lime .tag-filter,body.theme-lime .page-button,body.theme-lime .ranking-source-tabs,body.theme-lime .ranking-source-tabs button{background:#262623;border-color:var(--line-strong)}body.theme-lime .btn.primary,body.theme-lime .page-button.active{color:#222;border-color:#bfff00;background:#bfff00}body.theme-lime .btn.primary:hover,body.theme-lime .generate-action:hover{background:#d7ff52}body.theme-lime .btn.danger{color:#2a0d0b;border-color:var(--danger);background:var(--danger)}body.theme-lime .script-table th,body.theme-lime .ranking-table th,body.theme-lime .manager-table th,body.theme-lime .user-management-table th{color:var(--muted);background:#262623;border-bottom-color:var(--line)}body.theme-lime .script-table td,body.theme-lime .ranking-table td,body.theme-lime .script-table th,body.theme-lime .ranking-table th,body.theme-lime .manager-table td,body.theme-lime .manager-table th,body.theme-lime .user-management-table td,body.theme-lime .user-management-table th{border-bottom-color:var(--line)}body.theme-lime .script-table tbody tr:hover,body.theme-lime .ranking-table tbody tr:hover,body.theme-lime .manager-table tbody tr:hover,body.theme-lime .user-management-table tbody tr:hover{background:#bfff000f}body.theme-lime .biz-tag,body.theme-lime .selected-count,body.theme-lime .version-empty span{color:var(--primary-dark);background:var(--primary-soft);border-color:#bfff0047}body.theme-lime .ranking-rank,body.theme-lime .rank-badge{color:#222;background:#bfff00}body.theme-lime .heat-value,body.theme-lime .workflow-current,body.theme-lime .workflow-current-node,body.theme-lime .evaluation-kicker,body.theme-lime .evaluation-status-line button,body.theme-lime .upload-picker,body.theme-lime .upload-box,body.theme-lime .user-link{color:var(--primary-dark)}body.theme-lime .workflow-step{background:#bfff0014;border-color:#bfff0038}body.theme-lime .workflow-step.running{border-color:#bfff00a3}body.theme-lime .progress,body.theme-lime .workflow-inline-progress{background:#343430}body.theme-lime .progress i,body.theme-lime .workflow-inline-progress i{background:linear-gradient(90deg,#bfff0073,#bfff00)}body.theme-lime .evaluation-running{color:var(--primary-dark);background:#bfff001a;border-color:#bfff0052}body.theme-lime .evaluation-empty{border-color:#bfff0047}body.theme-lime .status.success{color:#222;background:#bfff00}body.theme-lime .status.running{color:#302100;background:#ffd166}body.theme-lime .status.failed{color:#2a0d0b;background:#ff756b}body.theme-lime .status.stopped{color:#d9dccf;background:#353532}body.theme-lime .model-popover{color:var(--text);background:#222222fa;border-color:var(--line)}body.theme-lime .model-popover button{color:var(--text)}body.theme-lime .model-popover button.active,body.theme-lime .model-popover button:hover{background:var(--primary-soft)}body.theme-lime .danger-action:hover{background:#ff756b24}body.theme-lime .generation-flow-panel{border-color:#bfff003d;background:linear-gradient(135deg,#bfff0017,#58a8ff0f),var(--surface)}body.theme-lime .generation-flow-node{border-color:#bfff0033;background:#222222e6}body.theme-lime .generation-flow-node:before{border-color:#bfff0070}body.theme-lime .generation-flow-node:after{border-color:#bfff0047}body.theme-lime .generation-flow-node strong{color:var(--text)}body.theme-lime .generation-flow-index{color:#222;background:#bfff00}body.theme-lime .cover{color:#f2f4ed;background:linear-gradient(180deg,#0000 20%,#0000009e),linear-gradient(135deg,#222,#4b5f14 56%,#bfff00)}@media(max-width:1280px){body{min-width:1060px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{grid-template-columns:220px minmax(0,1fr)}.workflow-steps.live,.generate-meta-row{grid-template-columns:1fr}.model-picker{width:fit-content}.evaluation-layout{grid-template-columns:280px minmax(0,1fr)}}.novel-downloader-page{display:grid;gap:18px;padding:24px}.page-heading-row,.panel-title-row,.inline-action-row,.button-row,.download-control-row{display:flex;align-items:center}.page-heading-row{justify-content:space-between;gap:16px}.page-heading-row h1{margin:0 0 8px;font-size:24px}.page-heading-row p{margin:0;color:var(--muted)}.novel-downloader-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:16px}.novel-tool-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:18px}.panel-title-row{justify-content:space-between;gap:12px;margin-bottom:18px}.panel-title-row h2{margin:0;font-size:17px}.panel-title-row span{color:var(--muted);font-size:12px}.inline-action-row{gap:8px}.button-row,.download-control-row{gap:10px;flex-wrap:wrap;margin-bottom:16px}.primary-button,.ghost-button{min-height:38px;border-radius:6px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;border:1px solid transparent}.primary-button{color:#fff;background:var(--primary-dark)}.ghost-button{color:#253247;background:var(--surface);border-color:var(--line-strong)}.primary-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.55}.icon-action{width:40px;padding:0;flex:0 0 auto}.format-option{min-height:38px;padding:0 12px;border:1px solid var(--line-strong);border-radius:6px;display:inline-flex;align-items:center;gap:8px;color:#253247;background:#fff;font-weight:800}.job-status-box{display:grid;gap:12px}.job-status-box strong{font-size:18px}.job-status-box span{color:var(--muted)}.progress-track{height:8px;border-radius:999px;overflow:hidden;background:var(--surface-soft)}.progress-track i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.search-result-list{display:grid;gap:8px;max-height:360px;overflow:auto}.search-result-list button{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;padding:12px;display:grid;gap:5px;text-align:left}.search-result-list button:hover{border-color:var(--primary);background:var(--primary-soft)}.search-result-list span,.search-result-list small,.empty-state{color:var(--muted)}.search-result-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{min-height:120px;border:1px dashed var(--line-strong);border-radius:6px;display:grid;place-items:center;padding:18px;text-align:center;background:var(--surface-soft)}.preview-json{min-height:120px;max-height:360px;overflow:auto;margin:0;padding:14px;border:1px solid var(--line);border-radius:6px;background:#0f172a;color:#dce9ff;font-size:12px;line-height:1.65;white-space:pre-wrap}@media(max-width:860px){.ranking-filter-main,.detail-layout{grid-template-columns:1fr}.detail-cover-image,.cover.large{width:min(236px,100%)}}
