/* Page structures of the black workspace (Figma v1 pages, 2026-09-29). Colours come from theme-dark.css tokens. */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sc-green{color:var(--green)}.sc-blue{color:var(--blue)}.sc-red{color:var(--danger)}.sc-orange{color:var(--amber)}.sc-muted{color:var(--muted)}

/* style library: controls */
.lib-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.lib-toolbar .search-label{flex:1 1 360px;max-width:480px}.lib-toolbar .search-label input{width:100%;min-height:38px}
.lib-toolbar .btn[type=submit]{min-width:120px}
.lib-toolbar .page-size-label{margin-left:auto}
.lib-select-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 14px;margin:12px 0 16px;border-radius:6px}
.lib-select-bar .select-page{display:flex;align-items:center;gap:8px;font-weight:500;cursor:pointer}
.lib-select-bar #selection-hint{border-left:1px solid var(--line);padding-left:16px}
.lib-select-bar .row{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.lib-select-bar>*{flex:0 0 auto;width:auto;margin-top:0;margin-bottom:0}
.lib-select-bar #selection-hint{flex:0 1 auto;min-width:0}
.sc-expand,.sc-expand:hover{background:transparent;border-color:transparent;color:var(--text)}.sc-expand:hover{text-decoration:underline}

/* style library: cards */
.series-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;align-items:start}
.series-card{background:var(--subtle);border:1px solid var(--line);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.series-card:hover{border-color:#4a4f58}
.sc-top{display:grid;grid-template-columns:18px 78px minmax(0,1fr);gap:10px;align-items:start}
.sc-top input{margin-top:2px}
.sc-picture{width:78px;height:78px;border-radius:4px;overflow:hidden;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}
.sc-picture img{width:100%;height:100%;object-fit:contain}
.sc-info{display:flex;flex-direction:column;gap:1px;min-width:0;font-size:13px;line-height:19px}
.sc-name{font-size:16px;font-weight:600;line-height:22px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}
.sc-name:hover{text-decoration:underline}
.sc-variants{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:13px}
.sc-thumbs{display:flex;gap:6px}
.sc-thumbs .variant-thumb,.sc-thumbs .variant-empty{width:36px;height:36px;flex:0 0 36px;border-radius:3px;overflow:hidden;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.sc-thumbs .variant-thumb img{width:100%;height:100%;object-fit:contain}
.sc-expand{min-height:30px;height:30px;padding:0 6px;white-space:nowrap}
.sc-downloads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sc-downloads .btn{min-width:0;padding:0 8px;justify-content:flex-start;font-weight:400}
.sc-downloads .btn.unavailable{opacity:.45}
.series-grid>.series-expanded{grid-column:1/-1;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:14px}
.series-grid>.series-expanded .expanded-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.series-grid>.series-expanded .row{display:flex;gap:8px;flex-wrap:wrap}
.series-grid>.card.empty{grid-column:1/-1}
/* task center */
.task-overview{display:grid;grid-template-columns:160px repeat(4,minmax(0,1fr));align-items:center;background:var(--subtle);border:1px solid var(--line);border-radius:6px;padding:12px 18px;margin-bottom:16px}
.task-overview>div{border-left:1px solid var(--line);padding-left:18px;display:flex;flex-direction:column;font-size:13px}
.task-overview>div span{color:var(--muted);font-size:12px}.task-overview b{font-size:16px;font-weight:500}
.task-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.task-toolbar .search{flex:1 1 360px;max-width:490px;min-height:38px}
.task-toolbar label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.task-toolbar select{min-width:120px}
.task-toolbar .caption{margin-left:auto}
.task-tabs{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.task-tabs .filter-tabs{display:flex;gap:8px;flex-wrap:wrap}
.task-table-wrap{border:1px solid var(--line);border-radius:6px;overflow:hidden}
.task-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}
.task-table th{text-align:left;font-weight:400;color:var(--muted);background:var(--bg);padding:12px 16px}
.task-table th:nth-child(1){width:28%}.task-table th:nth-child(2){width:20%}.task-table th:nth-child(3){width:15%}.task-table th:nth-child(4){width:12%}.task-table th:nth-child(5){width:12%}.task-table th:nth-child(6){width:13%}
.task-table td{padding:8px 16px;border-top:1px solid var(--line);vertical-align:middle;overflow:hidden}
.task-table tbody tr:nth-child(odd){background:var(--subtle)}.task-table tbody tr:nth-child(even){background:#17191d}
.task-table tbody tr:hover{background:#22252a}
.task-item{display:flex;align-items:center;gap:12px;min-width:0;color:var(--text)}
.task-item>span{display:flex;flex-direction:column;min-width:0}
.task-item strong{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-item small,.task-stage{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.task-thumb{width:46px;height:46px;flex:0 0 46px;object-fit:contain;border-radius:4px;background:var(--bg);display:block}
.task-open{color:var(--text)}.task-open:hover,.task-item:hover strong{text-decoration:underline}
.task-empty{text-align:center;color:var(--muted);padding:40px!important}
/* task center: two-level list + selection (2026-09-29) */
.task-tree th.task-check,.task-tree td.task-check{width:44px;padding-right:0;text-align:center}
.task-tree th:nth-child(2){width:30%}.task-tree th:nth-child(3){width:18%}.task-tree th:nth-child(4){width:13%}.task-tree th:nth-child(5){width:11%}.task-tree th:nth-child(6){width:11%}.task-tree th:nth-child(7){width:10%}
.task-tree .task-thumb{width:64px;height:64px;flex-basis:64px}
.task-cell{display:flex;align-items:center;gap:8px;min-width:0}.task-cell .task-item{flex:1;min-width:0}
.task-tree tr.task-head td{border-top:1px solid var(--border)}
.task-tree tr.task-kid{background:#141619!important}.task-tree tr.task-kid:hover{background:#1f2227!important}
.task-tree tr.task-kid td{border-top:1px dashed var(--line)}
.task-branch{width:22px;height:40px;flex:none;margin-left:14px;border-left:1px solid #5a616c;border-bottom:1px solid #5a616c;border-bottom-left-radius:4px;transform:translateY(-12px)}
.task-tree tr.task-kid .task-thumb{width:56px;height:56px;flex-basis:56px}
.task-tree tr.task-kid strong{font-weight:400}
.task-fold{flex:none;min-height:28px;height:28px;padding:0 8px;font-size:12px;color:var(--blue)!important;background:transparent!important;border-color:transparent!important}
.task-select-bar{margin:0 0 12px}
.task-tree tbody tr{cursor:pointer}
.task-table-wrap.task-scroll{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#3a3f46 transparent}
.task-tree thead th{position:sticky;top:0;z-index:2;background:var(--bg);box-shadow:inset 0 -1px 0 var(--line)}
.task-scroll+.pagination{margin-top:12px}
@media(max-width:900px){.task-table-wrap.task-scroll{max-height:none!important;overflow:visible}}
@media(max-width:900px){.task-tree th:nth-child(3),.task-tree td:nth-child(3){display:table-cell}.task-tree th.task-check,.task-tree td.task-check{width:34px}.task-tree th:nth-child(n+4),.task-tree td:nth-child(n+4){display:none}.task-tree th:nth-child(2){width:62%}.task-tree th:nth-child(3){width:38%}.task-branch{margin-left:0;width:12px}.task-fold{display:none}.task-tree .task-thumb{width:48px;height:48px;flex-basis:48px}}
@media(max-width:900px){.task-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.task-overview>strong{grid-column:1/-1}.task-overview>div{border:0;padding:0}
 .task-toolbar .caption{margin-left:0}.task-table th:nth-child(n+3),.task-table td:nth-child(n+3){display:none}.task-table th:nth-child(1){width:58%}.task-table th:nth-child(2){width:42%}.task-table td,.task-table th{padding:8px 10px}}
/* style detail */
.detail-meta{margin:-4px 0 12px}
.detail-sub{margin:0 0 8px;color:var(--muted);font-size:13px}
.detail-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chip-line{display:inline-flex;align-items:center;height:26px;padding:0 10px;border:1px solid currentColor;border-radius:4px;font-size:13px}
.detail-chips .caption{margin-left:6px}
.detail-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--subtle);border:1px solid var(--line);border-radius:6px;padding:10px 18px;margin-bottom:14px}
.detail-steps>div{display:flex;gap:12px;align-items:center;padding:0 16px;border-left:1px solid var(--line)}
.detail-steps>div:first-child{border:0;padding-left:0}
.detail-steps .step-no{color:var(--muted);font-size:12px}
.detail-steps strong{display:block;font-weight:500;font-size:14px}.detail-steps span:not(.step-no){font-size:13px}
.detail-family-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:4px 0 8px}
.detail-family-head h2{font-size:16px;margin:0}
.review-grid.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.delivery-checklist{background:var(--subtle);border:1px solid var(--line);border-radius:6px;padding:16px;display:flex;flex-direction:column;gap:10px;position:sticky;top:12px}
.delivery-checklist h3{font-size:16px;margin:0}.delivery-checklist h4{font-size:15px;margin:0 0 6px}
.checklist-item{border:1px solid var(--line);background:var(--bg);border-radius:4px;padding:10px 12px}
.checklist-item>div{display:flex;justify-content:space-between;gap:8px;font-size:14px}.checklist-item strong{font-weight:500}
.checklist-item small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.checklist-block{border-top:1px solid var(--line);padding-top:12px}.checklist-block p{margin:0 0 8px;font-size:13px}
.checklist-block .btn.full{width:100%}
.checklist-note{margin:0;font-size:13px;border-top:1px solid var(--line);padding-top:10px}
@media(max-width:1100px){.review-grid.with-aside{grid-template-columns:1fr}.delivery-checklist{position:static}}
@media(max-width:750px){.detail-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detail-steps>div{border:0;padding:0}}
.storage-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.storage-overview>div:first-child{border:0;padding-left:0}.storage-overview small{color:var(--muted);font-size:12px}
/* sidebar v2 (2026-09-29 owner: text too small and crowded; customer-facing, 4 entries + admin 用户管理) */
.sidebar{width:220px;padding:24px 14px 16px;display:flex;flex-direction:column}
main{margin-left:220px}
.sidebar .brand{font-size:21px;font-weight:700;line-height:28px}.sidebar .brand small{display:block;font-size:13px;font-weight:400;margin-top:6px;color:var(--muted)}
.sidebar .new-button{margin:24px 0 20px;height:44px;min-height:44px;font-size:15px;font-weight:600;border-radius:8px}
.sidebar nav{display:flex;flex-direction:column;gap:6px;margin:0}
.sidebar nav a{display:flex;align-items:center;min-height:46px;padding:0 16px;border-radius:8px;font-size:15px;letter-spacing:.02em}
.sidebar nav a.active{font-weight:600;box-shadow:inset 3px 0 0 var(--blue)}
.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}
.sidebar .profile{display:flex;align-items:center;gap:10px;min-width:0}
.sidebar .profile>span{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:700;background:#25282e;color:var(--text)}
.sidebar .profile strong{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar .profile small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.sidebar .foot-actions{display:flex;gap:8px;margin-top:12px}
.sidebar .foot-actions .btn{flex:1;min-height:34px;height:34px;font-size:13px;padding:0 6px;margin:0!important;background:var(--subtle);border:1px solid var(--line);display:inline-flex}
.sidebar-foot .profile{border:0!important;padding:0!important;margin:0}
.home-view .sidebar{width:220px}.home-view main{margin-left:220px}
@media(max-width:1250px){.sidebar,.home-view .sidebar{width:200px;padding:20px 12px}main,.home-view main{margin-left:200px}}
@media(max-width:750px){.sidebar,.home-view .sidebar{width:100%;padding:12px 16px;position:relative}main,.home-view main{margin-left:0}.sidebar .new-button{display:none}.sidebar nav{flex-direction:row;overflow-x:auto;gap:4px}.sidebar nav a{min-height:38px;padding:0 12px;white-space:nowrap;font-size:14px}.sidebar nav a.active{box-shadow:inset 0 -2px 0 var(--blue)}
 /* phones keep sign-out and change-password (2026-09-29 review): compact row at the top right */
 .sidebar-foot,.home-view .sidebar-foot{display:block;position:absolute;top:10px;right:12px;margin:0;padding:0;border:0}.sidebar-foot .profile{display:none!important}.sidebar .foot-actions{margin:0;gap:6px}.sidebar .foot-actions .btn{flex:none;height:30px;min-height:30px;padding:0 10px;font-size:12px}}
/* signed out: a centred login page without the workspace frame */
body.signed-out .sidebar,body.signed-out main>header,body.signed-out main>footer{display:none}
body.signed-out main{margin-left:0}body.signed-out .content{padding:0;max-width:none}
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 50% 0%,#1d2230 0%,var(--bg) 60%)}
.login-card{width:100%;max-width:400px;background:var(--subtle);border:1px solid var(--line);border-radius:12px;padding:32px 30px 26px;box-shadow:0 30px 80px #0008}
.login-brand{font-size:20px;font-weight:700;margin-bottom:28px}.login-brand small{display:block;font-size:13px;font-weight:400;color:var(--muted);margin-top:4px}
.login-card h1{font-size:24px;margin:0 0 6px}.login-card>.caption{margin:0 0 22px}
.login-card .field{margin-bottom:16px}.login-card .field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.login-card input{width:100%;height:44px;min-height:44px;font-size:15px}
.login-card .btn.full{width:100%;height:44px;min-height:44px;font-size:15px;margin-top:4px}
.login-card #enter{margin-top:10px;color:var(--muted);background:transparent;border-color:transparent}
.login-foot{text-align:center;color:var(--muted);font-size:13px;margin:18px 0 0}
.pw-wrap{position:relative;display:flex;gap:6px;align-items:center}.pw-wrap input{flex:1;padding-right:60px}
.pw-wrap .pw-toggle{position:absolute;right:4px;height:32px;min-height:32px;padding:0 10px;font-size:12px;background:transparent;border-color:transparent;color:var(--muted)}
.pw-wrap [data-gen]{flex:none;height:36px;min-height:36px}
.pw-wrap:has([data-gen]) .pw-toggle{right:64px}
/* admin nav group + admin pages (2026-09-29) */
.sidebar .nav-admin{display:flex;flex-direction:column;gap:4px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.sidebar .nav-admin[hidden]{display:none}
.sidebar .nav-label{font-size:12px;color:#737b86;letter-spacing:.08em;padding:0 16px 4px}
.sidebar .nav-admin a{min-height:40px;font-size:14px}
/* 2026-10-04 owner: tools grouped by feature (裁片提取 / 一键抠图 / later tools), each group under a small label */
.sidebar .nav-group{display:flex;flex-direction:column;gap:2px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.sidebar .nav-group a{min-height:40px;font-size:14px}
.sidebar>nav:first-of-type{margin-top:22px}
.admin-overview{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-overview>div:first-child{border:0;padding-left:0}.admin-overview small{color:var(--muted);font-size:12px}
.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.admin-grid .card h2{font-size:16px;margin:0 0 12px}
.admin-line{display:flex;justify-content:space-between;gap:12px;margin:0;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}.admin-line span{color:var(--muted)}.admin-line b{font-weight:500}
.admin-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.events-table th:nth-child(1){width:17%}.events-table th:nth-child(6){width:24%}.ev-detail{color:var(--muted)}
.user-created{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.user-note{color:var(--text)}.user-note .btn{min-height:24px;height:24px;padding:0 6px;color:var(--blue);background:transparent;border-color:transparent}
.users-table td .btn.text.small{padding:0 4px;background:transparent;border-color:transparent;color:var(--blue)}
.user-jobs td,.user-jobs th{padding:8px 12px}
@media(max-width:1100px){.admin-grid{grid-template-columns:1fr}.admin-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){.sidebar .nav-admin,.sidebar .nav-group{flex-direction:row;overflow-x:auto;margin-top:6px;padding-top:6px}.sidebar>nav:first-of-type{margin-top:8px}.sidebar .nav-label{display:none}.events-table th:nth-child(n+5),.events-table td:nth-child(n+5){display:none}}
/* user management */
.users-table th:nth-child(1){width:17%}.users-table th:nth-child(2){width:17%}.users-table th:nth-child(7){width:34%}
.users-table td{padding:12px 16px}
.user-actions{display:flex;gap:8px;flex-wrap:wrap}
.users-note{margin-top:12px}
.account-form{display:flex;flex-direction:column;gap:4px;min-width:min(420px,80vw)}
.account-form .field{margin-bottom:12px}.account-form .field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.account-form input,.account-form select{width:100%}
.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
@media(max-width:900px){.users-table th,.users-table td{display:none}.users-table th:nth-child(1),.users-table td:nth-child(1),.users-table th:nth-child(5),.users-table td:nth-child(5),.users-table th:last-child,.users-table td:last-child{display:table-cell}.users-table th:nth-child(1){width:34%}.users-table th:nth-child(5){width:22%}.users-table th:last-child{width:44%}}
/* pagination v2 (2026-09-29 owner: redesign): one segmented group, soft blue current page, jump box; text only */
.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;color:var(--muted);font-size:13px}
.pagination .pg-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pagination .row{display:inline-flex;align-items:center;gap:2px;padding:3px;background:#16181b;border:1px solid var(--line);border-radius:9px;margin:0}
.pagination .row .btn{height:30px;min-height:30px;min-width:32px;padding:0 9px;border:0;border-radius:6px;background:transparent;color:#b8bec7;font-weight:400;font-size:13px;box-shadow:none}
.pagination .row .btn:hover:not(:disabled){background:#24272c;color:var(--text)}
.pagination .row .btn.active,.pagination .row .btn[aria-current=page]{background:#23334d;color:#dce9ff;font-weight:600;box-shadow:inset 0 0 0 1px #3f5f8f}
.pagination .row .btn:disabled{opacity:.32;cursor:default}
.pagination .row .pg-edge{padding:0 12px;color:var(--text)}
.pagination .row .pg-edge:first-child{margin-right:4px;border-right:1px solid var(--line);border-radius:6px 0 0 6px}
.pagination .row .pg-edge:last-child{margin-left:4px;border-left:1px solid var(--line);border-radius:0 6px 6px 0}
.pagination .row>span{min-width:22px;text-align:center;color:#5b616b;letter-spacing:1px;user-select:none}
.pg-jump{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.pg-jump input{width:54px;height:32px;min-height:32px;padding:0 8px;text-align:center;border-radius:6px;background:#16181b;border:1px solid var(--line);color:var(--text);-moz-appearance:textfield}
.pg-jump input::-webkit-outer-spin-button,.pg-jump input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pg-jump input:focus{border-color:var(--blue);outline:none}
@media(max-width:750px){.pagination{justify-content:center}.pagination>span{width:100%;text-align:center}.pg-jump{display:none}.pagination .row .pg-edge{padding:0 10px}}
/* new style: delivery scope */
.new-style-v1 .scope-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin:4px 0 10px}
.new-style-v1 .scope-head h2{font-size:16px;margin:0}
.scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.scope-card{display:flex;flex-direction:column;gap:6px;padding:16px;background:var(--subtle);border:1px solid var(--border);border-radius:6px;cursor:pointer}
.scope-card:hover{border-color:#737a85}.scope-card.active{border-color:var(--blue);background:#1d2128}
.scope-title{font-size:16px;font-weight:500;display:flex;align-items:center;gap:10px}
.scope-card input[type=radio]{appearance:none;width:18px;height:18px;margin:0;border:1px solid #5a626d;border-radius:50%;flex:none}
.scope-card input[type=radio]:checked{border:5px solid var(--blue);background:var(--bg)}
.scope-card ul{margin:4px 0;padding-left:18px;font-size:13px;line-height:1.9}
.scope-foot{border-top:1px solid var(--line);padding-top:10px;margin-top:auto;font-size:13px;color:var(--muted)}.scope-card.active .scope-foot{color:var(--blue)}
.dropzone-v1{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;border:1px dashed #4a4f58;border-radius:6px;background:#141619;cursor:pointer;text-align:center;padding:12px}
.dropzone-v1:hover,.dropzone-v1.over{border-color:var(--blue)}
.dropzone-v1 input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.dropzone-v1 .drop-plus{width:56px;height:44px;line-height:42px;font-size:24px;border:1px solid var(--border);border-radius:5px;background:var(--subtle);color:var(--muted)}
.dropzone-v1 small{color:var(--muted)}
.dropzone-v1:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.drop-view img{max-height:160px;margin-top:8px}
.scope-summary .scope-steps{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column;gap:14px}
.scope-steps li{display:flex;gap:12px}.scope-steps li>span{width:30px;height:30px;flex:none;border:1px solid var(--border);border-radius:4px;display:grid;place-items:center;font-size:12px;color:var(--muted)}
.scope-steps strong{display:block;font-weight:500}.scope-steps small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
@media(max-width:900px){.scope-grid{grid-template-columns:1fr}}
/* Batch entry only; each image still uses the existing single-job API and worker queue. */
.new-style-v1 .split-form[hidden],.new-style-v1 .batch-panel[hidden]{display:none}
.batch-switch{display:flex;gap:8px;margin:-4px 0 18px}
.batch-switch .btn.active{border-color:var(--blue);background:#23334d;color:var(--text)}
.batch-panel{display:grid;gap:16px}
.batch-panel .card{min-width:0}
.batch-drop{min-height:136px}
.batch-list{display:grid;gap:10px;margin-top:12px;max-height:440px;overflow:auto;overscroll-behavior:contain}
.batch-list[hidden],.batch-upload-actions [hidden]{display:none}
.batch-upload-summary{min-height:54px;display:flex;align-items:center;justify-content:center}
.batch-preview-strip{display:flex;align-items:center;gap:6px;padding:6px 10px 6px 6px;border:1px solid var(--line);background:var(--subtle);border-radius:6px}
.batch-preview-strip img{width:42px;height:42px;object-fit:cover;border:1px solid #59616b;border-radius:4px;background:#141619}
.batch-preview-strip strong{font-size:13px;font-weight:500;padding-left:4px;white-space:nowrap}
.batch-upload-actions{display:flex;justify-content:center;gap:12px;margin:6px 0}
.batch-upload-actions .btn{min-width:150px}
.batch-row{display:flex;gap:14px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--subtle);min-width:0}
.batch-thumb{width:92px;height:92px;object-fit:contain;background:#141619;border-radius:4px;flex:none}
.batch-row-main{flex:1;min-width:0}
.batch-row-top,.batch-row-foot,.batch-submit-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.batch-row-top strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.batch-row-top>span{white-space:nowrap;font-size:12px}
.batch-row-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.batch-row-fields label{display:grid;gap:5px;font-size:12px;color:var(--muted)}
.batch-row-fields input{width:100%;min-width:0}
.batch-row-foot{justify-content:flex-start;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.batch-row-foot label{position:relative;overflow:hidden;cursor:pointer}
.batch-row-foot input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.batch-row-foot a{color:var(--blue)}
.batch-row-foot [data-remove]{margin-left:auto}
.batch-submit-bar{border-top:1px solid var(--line);padding-top:16px;margin-top:18px;align-items:flex-start}
.batch-submit-bar p{margin:5px 0 0}
@media(max-width:750px){.batch-row{gap:8px}.batch-thumb{width:64px;height:64px}.batch-row-fields{grid-template-columns:1fr}.batch-submit-bar{flex-direction:column}.batch-submit-bar .btn{width:100%}.batch-upload-actions{gap:8px;width:100%}.batch-upload-actions .btn{min-width:0;flex:1;padding:0 8px}.batch-list{max-height:380px}}
/* guide */
.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.guide-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.guide-card{background:var(--subtle);border:1px solid var(--line);border-radius:6px;padding:20px;min-height:120px}
.guide-card h3{font-size:16px;margin:0 0 12px;font-weight:500}.guide-card p{margin:0;color:var(--muted);line-height:1.75;font-size:14px}
.guide-card.wide{margin-top:20px}.guide-card.wide p{color:var(--text)}
.guide-section{font-size:16px;font-weight:500;margin:32px 0 12px}
@media(max-width:900px){.guide-grid,.guide-grid.three{grid-template-columns:1fr}}
/* download center */
.dl-notice{border:1px solid var(--line);background:var(--subtle);color:var(--amber);border-radius:6px;padding:14px 16px;margin:0 0 20px;font-size:13px}
.dl-table th:nth-child(1){width:26%}.dl-table th:nth-child(2){width:8%}.dl-table th:nth-child(3){width:10%}.dl-table th:nth-child(4){width:22%}.dl-table th:nth-child(5){width:17%}.dl-table th:nth-child(6){width:17%}
.dl-table td{padding:14px 16px}.dl-kind{font-weight:500;display:block;margin-bottom:4px}
.dl-table .pack-details summary{border:0;background:transparent;padding:0;color:var(--muted);font-size:12px;min-height:0}
.dl-table .pack-details p{margin:4px 0 0;color:var(--muted);font-size:12px;white-space:normal}
.dl-styles{color:var(--muted);white-space:nowrap;text-overflow:ellipsis}
.dl-state i{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:8px;vertical-align:1px}
.dl-table td:last-child .btn{min-width:120px}
.dl-rules{margin-top:20px;background:var(--subtle);border:1px solid var(--line);border-radius:6px;padding:18px 20px}
.dl-rules h2{font-size:16px;margin:0 0 10px}.dl-rules p{margin:8px 0 0;font-size:14px}
@media(max-width:900px){.dl-table th:nth-child(n+2),.dl-table td:nth-child(n+2){display:table-cell}.dl-table th:nth-child(2),.dl-table td:nth-child(2),.dl-table th:nth-child(3),.dl-table td:nth-child(3),.dl-table th:nth-child(4),.dl-table td:nth-child(4){display:none}.dl-table th:nth-child(1){width:44%}.dl-table th:nth-child(5){width:28%}.dl-table th:nth-child(6){width:28%}.dl-table td:last-child .btn{min-width:0;width:100%}}
@media(max-width:750px){.series-grid{grid-template-columns:1fr}.filter-tabs{flex-wrap:wrap;overflow:visible}.filter-tabs .btn{flex:1 1 30%;min-width:0;padding:0 6px}
 .lib-select-bar .row{width:100%}.lib-select-bar .row .btn{flex:1 1 30%;min-width:0;padding:0 6px;font-size:12px}.lib-select-bar .row .btn img{display:none}
 .lib-toolbar .search-label{flex-basis:100%;max-width:none}.lib-toolbar .page-size-label{margin-left:0}.lib-select-bar .row{margin-left:0}.lib-select-bar #selection-hint{border:0;padding:0}}

/* 2026-09-30 fixed Thai listing copy under the listing preview */
.listing-copy{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}
.listing-copy .copy-row{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;padding:10px 0;border-bottom:1px dashed var(--line)}
.listing-copy .copy-row b{font-size:13px;color:var(--muted);font-weight:600}
.listing-copy .copy-row p{margin:4px 0 0;color:var(--text);line-height:1.6}
.listing-copy .copy-row .btn{flex:none}


.task-tree .task-mobile-change{display:none!important}
.batch-thumb-placeholder{display:inline-flex;align-items:center;justify-content:center;background:#252a30;color:var(--muted);font-size:11px;min-width:42px;min-height:42px}
@media(max-width:900px){.task-tree .task-mobile-change{display:inline-flex!important;margin-left:auto}.task-cell{flex-wrap:nowrap}.task-select-bar .row{flex-wrap:wrap}
 .task-tree th.task-check,.task-tree td.task-check{width:34px}.task-tree th:nth-child(2){width:calc(100% - 34px)}
 .task-tree th:nth-child(n+3),.task-tree td:nth-child(n+3){display:none}.task-tree .task-fold{display:none!important}
 .task-tree tr.task-kid .task-thumb{width:48px;height:48px;flex-basis:48px}}

/* 2026-10-01 upload source: 商品图片 (extract) / 图案原图 (use as it is) */
.source-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 14px}
.source-opt{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;background:var(--subtle);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:border-color .15s}
.source-opt:hover{border-color:var(--muted)}
.source-opt:has(input:checked){border-color:var(--blue)}
.source-opt input{margin-top:3px}
.source-opt span{display:flex;flex-direction:column;gap:2px}
.source-opt small{color:var(--muted);font-size:12px}
@media (max-width:640px){.source-pick{grid-template-columns:1fr}}.source-opt input[type=radio]{appearance:none;width:18px;height:18px;margin:2px 0 0;border:1px solid #5a626d;border-radius:50%;flex:none}
.source-opt input[type=radio]:checked{border:5px solid var(--blue);background:var(--bg)}
