
/* 照片主导，表单退后；仅提示条使用一次有目的的透明度过渡。 */
:root{--ink:#202723;--muted:#626c66;--green:#2f6456;--green-dark:#244d42;--green-wash:#eaf1ed;--page:#f5f6f4;--line:#dce1dc;--white:#fff;--error:#a13e32;--rail:148px}
*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font:15px/1.6 "PingFang SC","Microsoft YaHei UI","Microsoft YaHei",sans-serif}button,input,textarea,select{font:inherit;color:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;color:#737b75;background:#e5e9e4;border-color:#e5e9e4}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:4px}::selection{background:#d5e4da;color:#183d31}textarea,input{caret-color:var(--green)}::placeholder{color:#6d766f;opacity:1}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#c5ccc5;border:2px solid var(--page);border-radius:9px}::-webkit-scrollbar-track{background:var(--page)}[hidden]{display:none!important}svg{display:block;flex-shrink:0;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.3;font-weight:650;letter-spacing:-.035em}h2{font-size:18px;line-height:1.45;font-weight:650;letter-spacing:-.02em}h3{font-size:15px;font-weight:650}.small{font-size:13px}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 16px;border:1px solid var(--line);border-radius:8px;background:var(--white);font-size:14px;font-weight:550;line-height:1.4}.btn:hover{background:#eef1ed}.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark);border-color:var(--green-dark)}.btn-soft{background:var(--green-wash);border-color:transparent;color:var(--green-dark)}.btn-quiet{padding:6px 0;min-height:32px;border:0;background:none;color:var(--green);font-size:14px}.btn-quiet:hover{background:none;text-decoration:underline;text-underline-offset:4px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:6px;border:0;border-radius:6px;background:transparent;color:var(--muted)}.icon-btn:hover{background:#e7ece6;color:var(--ink)}.pill{display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:3px 9px;border-radius:5px;background:#e9eee8;color:#3c5146;font-size:12px;font-weight:550;line-height:1.5}.status-dot{width:6px;height:6px;flex-shrink:0;background:#52705f;border-radius:50%}
/* 148px 窄导航，把屏幕留给素材和摄影预览。 */
.rail{position:fixed;inset:0 auto 0 0;z-index:10;display:flex;flex-direction:column;width:var(--rail);padding:30px 16px 20px;background:#fff;border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;margin:0 8px 48px;font-size:17px;font-weight:650;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--ink);color:#fff}.brand-mark svg{width:22px;height:22px}.rail nav{display:grid;gap:8px}.nav-link{display:flex;align-items:center;gap:10px;min-height:46px;padding:11px 12px;border-radius:8px;font-size:14px;font-weight:550;white-space:nowrap}.nav-link svg{width:18px;height:18px}.nav-link:hover{background:#f2f4f0}.nav-link[aria-current="page"]{background:var(--green-wash);color:var(--green-dark)}.rail-foot{margin-top:auto;padding:0 10px;color:var(--muted);font-size:12px;line-height:1.7}.rail-foot svg{margin-bottom:10px;width:18px;height:18px}.main{margin-left:var(--rail);min-width:0}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 38px;background:#fff;border-bottom:1px solid var(--line);font-size:14px}.demo-badge{display:inline-flex;align-items:center;gap:8px;color:#505e53;font-size:13px;white-space:nowrap}.demo-badge svg{width:16px;height:16px}.workspace{max-width:1510px;margin:auto;padding:30px 38px 115px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading p{margin-top:8px;color:var(--muted);font-size:14px}.page-heading .btn-quiet{white-space:nowrap}.workbench{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:start;gap:38px}.editor{min-width:0}.section{margin-bottom:24px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title .muted{font-size:13px}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:9px;background:#e8ece6}.mode-switch button{min-height:36px;border:0;border-radius:6px;background:transparent;font-size:14px;color:var(--muted)}.mode-switch button[aria-pressed="true"]{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 2px 4px #1f2f2010}.mode-caption{margin-top:7px;color:var(--muted);font-size:13px}.identity-box{display:flex;align-items:center;gap:15px;min-height:104px;padding:15px 16px;border:1px dashed #b8c6b9;border-radius:12px;background:#fff}.identity-thumb{display:grid;place-items:center;width:66px;height:72px;flex-shrink:0;overflow:hidden;border-radius:7px;background:#f0f3ed;color:#708271}.identity-thumb svg{width:26px;height:26px}.identity-thumb img{width:100%;height:100%;object-fit:cover}.identity-text{flex:1;min-width:0}.identity-text strong{display:block;font-size:15px;font-weight:550;overflow-wrap:anywhere}.identity-text p{margin-top:4px;color:var(--muted);font-size:12px}.identity-text .filename{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-actions{display:flex;align-items:center;gap:3px}.identity-actions .btn{padding:9px 12px;min-height:38px}.required{color:var(--green);font-size:12px;font-weight:550}.upload-rules{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--muted);font-size:12px}.upload-rules svg{width:14px;height:14px}.reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ref-card{min-width:0;padding:11px 11px 9px;border:1px solid #dbe1d9;border-radius:10px;background:#fff}.ref-card.has-file{border-color:#a5bdaa}.ref-top{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:25px;margin-bottom:7px}.ref-number{color:var(--green);font-size:12px;font-weight:600;white-space:nowrap}.ref-photo{position:relative;display:flex;align-items:center;justify-content:center;height:88px;overflow:hidden;border-radius:6px;background:#f0f2ed}.ref-photo img{width:100%;height:100%;object-fit:contain}.ref-photo.example-thumb img{object-position:50% 42%;object-fit:cover;opacity:.88}.example-thumb:after{content:"示例 · 未选用";position:absolute;left:4px;bottom:4px;max-width:calc(100% - 8px);padding:1px 5px;background:#ffffffed;border-radius:3px;color:#3b4b40;font-size:11px}.ref-photo .empty-ref{display:grid;justify-items:center;gap:6px;color:#63715f;font-size:12px}.empty-ref svg{width:24px;height:24px}.ref-upload-row{display:flex;align-items:center;justify-content:space-between;gap:2px;margin-top:7px}.ref-upload{display:flex;align-items:center;gap:4px;min-height:31px;padding:2px 0;border:0;background:none;font-size:14px;font-weight:550;color:var(--green)}.ref-upload:hover{text-decoration:underline;text-underline-offset:4px}.ref-upload svg{width:15px;height:15px}.ref-card .icon-btn{width:27px;height:29px;padding:5px}.ref-rule{margin-top:2px;color:var(--muted);font-size:12px;line-height:1.5}.sample-use{display:block;padding:4px 0 0;min-height:27px;border:0;background:none;color:var(--green);font-size:12px;text-decoration:underline;text-underline-offset:3px}.ref-filename{margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.face-action{display:inline-flex;padding:2px 0;min-height:27px;border:0;background:none;color:var(--green);font-size:12px}.face-action:hover{text-decoration:underline;text-underline-offset:3px}.more-references{margin-top:11px}.more-references summary{display:flex;align-items:center;gap:7px;width:fit-content;min-height:32px;cursor:pointer;color:var(--green);font-size:14px;list-style:none}.more-references summary::-webkit-details-marker{display:none}.more-references summary svg{width:16px;height:16px}.more-references[open] summary{margin-bottom:10px}.more-references[open] summary .plus-line{display:none}.binding-line{display:flex;flex-wrap:wrap;gap:6px;min-height:22px;margin-top:12px;color:var(--muted);font-size:12px}.binding-chip{display:inline-flex;gap:4px;padding:3px 7px;border-radius:4px;background:#e9eee7;color:#3c5547}.note-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.note-label label{font-size:18px;font-weight:650}.note-label span{font-size:12px;color:var(--muted)}textarea{display:block;width:100%;min-height:105px;resize:vertical;padding:13px 15px;border:1px solid #d5ddd2;border-radius:9px;background:#fff;font-size:14px;line-height:1.7}textarea:hover{border-color:#9aae9d}.preserve-makeup{display:flex;align-items:center;gap:9px;margin:13px 0 0;font-size:14px}.fixed-switch{position:relative;width:29px;height:17px;border-radius:20px;background:var(--green);flex-shrink:0}.fixed-switch:after{content:"";position:absolute;top:3px;right:3px;width:11px;height:11px;border-radius:50%;background:white}.fixed-note{display:flex;align-items:center;gap:4px;margin-left:auto;color:var(--muted);font-size:12px}.fixed-note svg{width:13px;height:13px}.settings{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.65fr);gap:16px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.setting-label{display:block;margin-bottom:8px;font-size:13px;color:var(--muted)}.crop-control{display:flex;gap:6px}.crop-control label{position:relative;display:flex;align-items:center;justify-content:center;min-height:36px;min-width:54px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:14px;cursor:pointer}.crop-control label:has(input:checked){border-color:#85a48e;background:var(--green-wash);color:var(--green-dark)}.crop-control label:has(input:focus-visible){outline:3px solid var(--green);outline-offset:3px}.settings select{width:100%;min-height:36px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:14px}.prompt-fold{margin-top:18px}.prompt-fold summary{display:flex;align-items:center;gap:8px;width:fit-content;min-height:36px;list-style:none;cursor:pointer;font-size:14px}.prompt-fold summary::-webkit-details-marker{display:none}.prompt-fold summary svg{width:15px;height:15px}.prompt-fold[open] summary svg{transform:rotate(90deg)}.prompt-fold summary span:last-child{color:var(--muted);font-size:12px;font-weight:400}.prompt-text{margin:8px 0 0;padding:15px;border-radius:8px;background:#eaf0e7;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.9 "PingFang SC","Microsoft YaHei",sans-serif;color:#3d5142}.form-error{margin:10px 0 0;padding:10px 12px;border-radius:6px;background:#fff3f0;color:var(--error);font-size:14px}
/* 所有预览说明来源，生成结果有独立空态，不能用参考图填充。 */
.preview{position:sticky;top:26px;min-width:0}.preview-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.preview-tabs{display:flex;gap:17px}.preview-tabs button{position:relative;min-height:32px;padding:0 0 7px;border:0;background:none;color:var(--muted);font-size:13px;white-space:nowrap}.preview-tabs button[aria-selected="true"]{color:var(--ink);font-weight:600}.preview-tabs button[aria-selected="true"]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;border-radius:2px;background:var(--green)}.photo-stage{position:relative;display:grid;place-items:center;min-height:360px;aspect-ratio:3/4;max-height:650px;overflow:hidden;background:#e7e9e2;border-radius:10px}.photo-stage>img{width:100%;height:100%;object-fit:contain}.photo-label{position:absolute;top:14px;left:14px;right:14px;width:fit-content;max-width:calc(100% - 28px);padding:5px 9px;border-radius:4px;background:#fffffff2;font-size:12px;font-weight:550;line-height:1.6;color:#34483b}.preview-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:13px}.preview-caption h3{font-weight:600}.preview-caption p{margin-top:3px;font-size:12px;color:var(--muted)}.preview-number{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.sample-tools{display:flex;align-items:center;gap:8px;margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}.sample-tools select{flex:1;min-width:0;min-height:36px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px}.sample-tools .btn{min-height:36px;font-size:13px;padding:8px 12px}.sample-help{margin-top:7px;color:var(--muted);font-size:12px}.preview-strip{display:flex;gap:8px;overflow:auto;padding:2px 2px 6px;margin-top:12px}.preview-thumb{position:relative;width:42px;height:50px;flex-shrink:0;padding:2px;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:#fff}.preview-thumb[aria-pressed="true"]{border:2px solid var(--green)}.preview-thumb img{width:100%;height:100%;object-fit:cover}.no-result{display:grid;align-content:center;justify-items:center;gap:13px;min-height:360px;padding:35px 28px;text-align:center;background:#ecefe8}.no-result>svg{width:35px;height:35px;color:#71816d}.no-result h3{font-size:19px;font-weight:550}.no-result p{max-width:27ch;color:var(--muted);font-size:14px;line-height:1.8}.no-result .pill{margin-top:5px}.action-bar{position:fixed;z-index:9;bottom:0;left:var(--rail);right:0;display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:82px;padding:15px 38px;background:#fffffff9;border-top:1px solid var(--line)}.action-info strong{font-size:14px;font-weight:550}.action-info p{margin-top:2px;color:var(--muted);font-size:12px}.action-bar .btn-primary{min-height:46px;min-width:210px;padding:12px 23px;font-size:15px}.action-bar .btn svg{width:17px;height:17px}.toast{position:fixed;z-index:30;right:28px;bottom:98px;max-width:min(480px,calc(100vw - 36px));padding:13px 17px;border:1px solid #cad8ca;border-radius:9px;background:#fff;color:#294d37;box-shadow:0 8px 28px #18351c15;font-size:14px;opacity:0;pointer-events:none;transition:opacity .16s ease-out}.toast.is-visible{opacity:1}
/* 记录与详情继承照片、字级和留白，不退回设置表。 */
.records-heading{align-items:center}.record-filters{display:flex;gap:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.record-filters button{position:relative;min-height:46px;padding:0 0 12px;border:0;background:none;color:var(--muted);font-size:14px}.record-filters button[aria-pressed="true"]{color:var(--green-dark);font-weight:600}.record-filters button[aria-pressed="true"]:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--green)}.record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.record-card{min-width:0}.record-image{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:#e8ece5}.record-image>img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.record-image .photo-label{font-size:11px;top:11px;left:11px}.record-empty{display:grid;justify-items:center;gap:10px;color:#5e705a;font-size:14px}.record-empty svg{width:31px;height:31px}.record-card h2{margin-top:15px;font-size:18px}.record-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:7px;color:var(--muted);font-size:13px}.record-note{margin-top:10px;color:var(--muted);font-size:14px}.record-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;color:var(--green);font-size:14px}.record-link svg{width:16px;height:16px}.gallery-note{margin-top:32px;color:var(--muted);font-size:13px}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);align-items:start;gap:45px;max-width:1100px}.detail-media .photo-stage{max-height:none}.detail-info{padding-top:3px;min-width:0}.detail-info>.pill{margin-bottom:19px}.detail-section{padding:22px 0;border-bottom:1px solid var(--line)}.detail-section:first-of-type{padding-top:0}.detail-section h2{margin-bottom:12px}.detail-section p{font-size:14px;overflow-wrap:anywhere;color:#465348;line-height:1.9;white-space:pre-wrap}.material-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:9px 0;font-size:14px}.material-row span:last-child{color:var(--muted);text-align:right;overflow-wrap:anywhere}.detail-settings{display:flex;flex-wrap:wrap;gap:8px}.detail-actions{display:flex;gap:10px;margin-top:24px}.crumb{display:inline-flex;align-items:center;gap:8px;margin-bottom:22px;color:var(--muted);font-size:14px}.crumb svg{width:15px;height:15px}.state-panel{display:grid;justify-items:center;align-content:center;min-height:470px;padding:60px 24px;text-align:center}.state-icon{display:grid;place-items:center;width:64px;height:64px;margin-bottom:23px;border-radius:18px;background:#e6ece1;color:#60775b}.state-icon svg{width:29px;height:29px}.state-panel h2{font-size:24px;font-weight:550}.state-panel p{max-width:45ch;margin-top:12px;color:var(--muted);font-size:14px;line-height:1.9}.state-panel .btn{margin-top:25px}.state-panel.is-error .state-icon{background:#f9e8e2;color:var(--error)}.state-note{margin-top:14px!important;font-size:12px!important}.skip-link{position:fixed;left:160px;top:-80px;z-index:50;padding:10px 16px;background:#fff;color:var(--green);border:1px solid var(--green);border-radius:7px}.skip-link:focus{top:10px}
@media(min-width:1600px){.workspace{padding-top:37px}.workbench{gap:55px}.photo-stage{max-height:720px}}
@media(max-width:1150px){:root{--rail:68px}.rail{padding:28px 10px 20px}.brand{margin:0 auto 48px}.brand-name,.nav-text,.rail-foot{display:none}.nav-link{justify-content:center;padding:11px}.nav-link svg{width:21px;height:21px}.topbar{padding:0 28px}.workspace{padding:28px 28px 110px}.workbench{gap:26px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.action-bar{padding:15px 28px}.photo-stage{min-height:300px}.preview-head{flex-wrap:wrap;gap:8px}.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ref-card{padding:10px 8px}.ref-top{flex-wrap:wrap}.settings{gap:11px}.identity-box{gap:10px;padding:13px}.identity-thumb{width:53px;height:65px}.identity-actions .btn{padding:8px}}
@media(max-width:900px) and (min-width:701px){.workbench{grid-template-columns:1fr}.preview{position:static;max-width:520px}.photo-stage{max-height:600px}.preview-head{flex-wrap:nowrap}.detail-grid{gap:25px}}
@media(max-width:700px){:root{--rail:0px}.rail{position:relative;inset:auto;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:64px;padding:0 18px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0;gap:9px;font-size:17px}.brand-name{display:block}.brand-mark{width:29px;height:29px}.brand-mark svg{width:20px;height:20px}.rail nav{display:flex;gap:6px}.nav-link{min-height:38px;padding:8px 10px;gap:6px}.nav-link svg{width:17px;height:17px}.nav-text{display:block;font-size:13px}.main{margin:0}.topbar{height:47px;padding:0 18px;font-size:12px}.demo-badge{font-size:11px;gap:5px}.demo-badge svg{width:14px;height:14px}.workspace{padding:23px 18px 115px}.page-heading{align-items:center;gap:10px;margin-bottom:21px}.page-heading h1{font-size:27px}.page-heading p{font-size:13px;max-width:28ch;line-height:1.8}.page-heading .btn-quiet{font-size:12px;white-space:normal;text-align:right;max-width:75px;line-height:1.6}.workbench{display:flex;flex-direction:column;gap:28px}.editor,.preview{width:100%}.preview{position:static}.preview-head{flex-wrap:nowrap;margin-bottom:10px}.preview-head h2{font-size:16px}.preview-tabs button{font-size:12px}.photo-stage{height:295px;min-height:0;max-height:none;aspect-ratio:auto}.photo-stage>img{height:295px;width:100%;object-fit:contain}.photo-label{top:10px;left:10px;font-size:11px;max-width:calc(100% - 20px)}.preview-caption{margin-top:10px}.preview-caption h3{font-size:14px}.preview-caption p{font-size:11px}.sample-tools{padding-top:10px;margin-top:10px}.sample-help{font-size:11px}.no-result{min-height:295px;padding:25px}.section{margin-bottom:23px}.identity-box{padding:14px 12px;gap:11px}.identity-text strong{font-size:14px}.identity-text p{font-size:12px}.identity-thumb{width:48px;height:61px}.identity-actions .btn{font-size:14px;padding:8px 10px}.identity-actions{flex-direction:column;gap:0}.identity-actions .icon-btn{height:27px}.section-title h2,.note-label label{font-size:17px}.section-title .muted{font-size:12px}.ref-card{padding:10px 8px 8px}.ref-top h3{font-size:14px}.ref-number{font-size:11px}.reference-grid{gap:8px}.ref-photo{height:80px}.ref-rule{font-size:11px}.ref-upload{font-size:14px}.ref-upload svg{width:13px}.sample-use,.face-action{font-size:12px}.ref-card .icon-btn{width:23px;padding:4px}.settings{gap:12px;grid-template-columns:1.2fr 1fr .75fr}.crop-control{gap:4px}.crop-control label{min-width:0;flex:1;padding:6px 7px;font-size:14px}.settings select{padding:5px 6px;font-size:14px}.setting-label{font-size:12px}.prompt-fold summary{font-size:14px}.prompt-fold summary span:last-child{font-size:11px}.fixed-note{font-size:11px}.action-bar{min-height:80px;left:0;padding:13px 18px;gap:12px}.action-info strong{font-size:12px}.action-info p{max-width:14ch;font-size:11px;line-height:1.7}.action-bar .btn-primary{min-width:0;min-height:44px;padding:11px 15px;font-size:14px}.action-bar .btn-primary svg{width:15px}.toast{right:18px;bottom:96px;font-size:13px}.record-grid{grid-template-columns:1fr;gap:29px}.record-image{aspect-ratio:4/3}.record-card h2{font-size:19px}.record-filters{gap:22px}.records-heading .btn{font-size:13px;padding:8px 12px}.detail-grid{display:flex;flex-direction:column;gap:25px}.detail-media,.detail-info{width:100%}.detail-media .photo-stage{height:auto;aspect-ratio:3/4}.detail-media .photo-stage>img{width:100%;height:100%}.detail-info>.pill{margin-bottom:20px}.detail-section{padding:19px 0}.detail-actions .btn{flex:1;padding:9px 10px}.state-panel{min-height:430px;padding:45px 12px}.state-panel h2{font-size:22px}.skip-link{left:18px}.gallery-note{font-size:12px}}
@media(prefers-reduced-motion:reduce){.toast{transition:none}}

/* 拍摄维度独立：保持已认可的绿色工作台，方法和角度各占一行，景别与画幅分开。 */
.settings.settings-shooting{grid-template-columns:repeat(2,minmax(0,1fr))}.shooting-method,.shooting-angle{grid-column:1/-1;min-width:0}.shooting-segments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;border-radius:7px;background:#eaf0e9}.shooting-segments button{min-width:0;min-height:38px;padding:6px 3px;border:1px solid transparent;border-radius:5px;background:transparent;font-size:12px;color:var(--muted)}.shooting-segments button[aria-pressed=true]{border-color:#cbd7cc;background:#fff;color:var(--green);box-shadow:0 1px 3px #20372608}.shooting-method p{margin-top:7px}.shooting-angle{border-top:1px solid var(--line);padding-top:14px}.shooting-angle summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;font-size:13px;list-style:none}.shooting-angle summary span{font-size:11px;color:var(--muted)}.shooting-angle summary:after{content:"＋";color:var(--green)}.shooting-angle[open] summary:after{content:"−"}.shooting-angle .shooting-segments{margin-top:12px}#shot-size[aria-invalid=true]{border-color:#b97549}#shooting-conflict{font-size:12px;line-height:1.8;margin-top:12px}button[data-action="shooting-setting"]:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media(max-width:600px){.shooting-segments button{font-size:11px;min-height:40px}.shooting-angle summary{font-size:12px}}



/* 公开说明由新实例注入；窄屏分两行，避免四个入口挤压品牌与点击区域。 */
body[data-public-content="1"] .public-info-nav:first-of-type{margin-top:18px}
@media(max-width:700px){body[data-public-content="1"]>.rail{height:auto;min-height:116px;flex-wrap:wrap;padding:14px 18px 8px;gap:10px}body[data-public-content="1"]>.rail>.brand{width:100%;margin:0}body[data-public-content="1"]>.rail>nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:3px}body[data-public-content="1"]>.rail .nav-link{flex-direction:column;gap:4px;padding:7px 2px;margin:0;min-height:50px}body[data-public-content="1"]>.rail .nav-text{font-size:10px}}

/* 账号实例增加第五项账户导航，窄屏保持每个入口足够点击高度。 */
@media(max-width:700px){body[data-account-center="1"]>.rail>nav{grid-template-columns:repeat(5,minmax(0,1fr))}body[data-account-center="1"]>.rail .nav-text{font-size:9px}}

/* 成象已批准的品牌视觉：字形标识、宋体标题和浅灰绿纸面；控件行为保持。 */
:root{--green:#294e42;--green-dark:#213d34;--green-wash:#ecf0eb;--ink:#1e2e28;--line:#dfe5de}
body{background:#f5f6f2}.cx-logo{display:block;width:170px;height:65px;object-fit:contain}.rail{background:#fcfdf9}.rail>.brand{height:70px;margin-bottom:28px}.rail .cx-logo{width:138px;height:61px}
.page-heading h1{font-family:"SimSun","Songti SC",serif;font-weight:500;font-size:35px;letter-spacing:.04em}.section-title h2,.preview-head h2{font-family:"SimSun","Songti SC",serif;font-weight:600;font-size:20px}.identity-box,.ref-card{background:#fcfdf9}.ref-card{border-radius:9px}.ref-photo img{object-fit:cover}.preview .cx-showcase{background:#e7ebe3}.cx-showcase img{object-fit:cover;object-position:center 35%}.cx-chain{margin-top:17px;padding-top:14px;border-top:1px solid var(--line)}.cx-chain summary{cursor:pointer;font-size:13px;color:#294e42}.cx-chain-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.cx-chain-grid a{min-width:0}.cx-chain-grid img{display:block;width:100%;height:76px;object-fit:cover;border-radius:5px;background:#e5e9e1}.cx-chain-grid span{display:block;margin-top:6px;font-size:10px;line-height:1.5;color:#607063}.cx-chain p{font-size:11px;color:#758077;margin-top:10px;line-height:1.8}.cx-chain p a{color:#294e42;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1150px) and (min-width:701px){.rail .cx-logo{width:44px;object-fit:cover;object-position:left}.rail>.brand{width:44px}}
@media(max-width:700px){.rail>.brand{height:auto;margin:0}.rail .cx-logo{width:108px;height:42px}.page-heading h1{font-size:29px}.cx-chain-grid img{height:66px}.cx-chain{margin-bottom:14px}}

/* 四种参考用途等权展示，窄屏改为两列，避免缩略图和按钮相互挤压。 */
.reference-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ref-card .sample-use{font-size:11px}@media(max-width:700px){.reference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 分析区包含状态、长警告和草稿，独立恢复上下文流，避免共用操作栏的横向 flex 挤成竖条。 */
#draft-actions {
  display: block;
  overflow-wrap: anywhere;
}
/* 按操作匹配底部按钮，兼容采用区新增的纵向包裹层。 */
#draft-actions [data-action="adopt-draft"],
#draft-actions [data-action="accept-current"] {
  margin-top: 12px;
}
@media (max-width: 700px) {
  #draft-actions [data-action="adopt-draft"],
  #draft-actions [data-action="accept-current"] {
    width: 100%;
  }
}

/* entry-announcement-20261018:start */
/* 公告专属样式：沿用已批准效果稿，不覆盖工作台或其它弹窗。 */
dialog.entry-announcement,
dialog.entry-announcement *,
dialog.entry-announcement *::before,
dialog.entry-announcement *::after {
  box-sizing: border-box;
}

/* 仅打开态设置布局，关闭态继续由原生 dialog 隐藏。 */
dialog.entry-announcement {
  width: min(520px, calc(100% - 36px));
  max-width: none;
  max-height: calc(100vh - 36px);
  max-height: calc(100dvh - 36px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 20px;
  background: #fff;
  color: #202723;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  font-size: 15px;
  line-height: 1.6;
  box-shadow: 0 24px 80px rgba(21, 43, 32, .18), 0 4px 16px rgba(21, 43, 32, .07);
}

dialog.entry-announcement[open] {
  display: flex;
  flex-direction: column;
}

dialog.entry-announcement::backdrop {
  background: rgba(25, 39, 32, .40);
}

dialog.entry-announcement .entry-announcement__header {
  position: relative;
  flex-shrink: 0;
  padding: 31px 31px 20px;
}

dialog.entry-announcement .entry-announcement__topline {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

dialog.entry-announcement .entry-announcement__meta {
  margin: 0;
  padding-right: 40px;
  color: #697c71;
  font-size: 12px;
  line-height: 20px;
  letter-spacing: .04em;
}

dialog.entry-announcement .entry-announcement__title {
  margin: 15px 0 0;
  font-size: 24px;
  line-height: 1.45;
  font-weight: 650;
  letter-spacing: -.025em;
  text-wrap: balance;
}

/* 关闭图标使用既有 SVG；定位仍保持效果稿的右上角与点击面积。 */
dialog.entry-announcement .entry-announcement__close {
  position: absolute;
  top: 17px;
  right: 16px;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #5c6c62;
  font: inherit;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

dialog.entry-announcement .entry-announcement__close svg {
  display: block;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

dialog.entry-announcement .entry-announcement__close:hover {
  background: #edf2ee;
  color: #244d42;
}

/* 正文独立收缩和滚动，头尾不收缩，使矮屏仍保留关闭与确认入口。 */
dialog.entry-announcement .entry-announcement__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0 31px;
  color: #48544c;
  font-size: 16px;
  line-height: 1.9;
  overflow-wrap: break-word;
  scrollbar-width: thin;
  scrollbar-color: #b5c5ba #fff;
}

dialog.entry-announcement .entry-announcement__body p {
  margin: 0;
}

dialog.entry-announcement .entry-announcement__body p + p {
  margin-top: 17px;
}

dialog.entry-announcement .entry-announcement__footer {
  flex-shrink: 0;
  margin: 0;
  padding: 25px 31px 29px;
  background: #fff;
}

dialog.entry-announcement .entry-announcement__confirm {
  width: 100%;
  min-height: 48px;
  padding: 11px 20px;
  border: 1px solid #285548;
  border-radius: 10px;
  background: #285548;
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  line-height: 24px;
  font-weight: 550;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

dialog.entry-announcement .entry-announcement__confirm:hover {
  border-color: #244d42;
  background: #244d42;
}

dialog.entry-announcement .entry-announcement__confirm:active {
  background: #1f4439;
}

/* 键盘焦点同时覆盖关闭、确认及可聚焦的标题或正文。 */
dialog.entry-announcement:focus-visible,
dialog.entry-announcement :focus-visible {
  outline: 3px solid #73988b;
  outline-offset: 4px;
}

@media (max-width: 540px) {
  dialog.entry-announcement .entry-announcement__header { padding: 25px 23px 18px; }
  dialog.entry-announcement .entry-announcement__meta { letter-spacing: .025em; }
  dialog.entry-announcement .entry-announcement__title { font-size: 22px; line-height: 1.5; }
  dialog.entry-announcement .entry-announcement__close { top: 13px; right: 11px; }
  dialog.entry-announcement .entry-announcement__body { padding: 0 23px; line-height: 1.85; }
  dialog.entry-announcement .entry-announcement__footer { padding: 22px 23px 23px; }
}

@media (max-height: 480px) {
  dialog.entry-announcement .entry-announcement__header { padding-top: 19px; padding-bottom: 13px; }
  dialog.entry-announcement .entry-announcement__title { margin-top: 10px; }
  dialog.entry-announcement .entry-announcement__close { top: 8px; }
  dialog.entry-announcement .entry-announcement__footer { padding-top: 16px; padding-bottom: 18px; }
}

/* 不新增动效；减少动态偏好下也屏蔽外部样式可能施加的过渡和滚动动画。 */
@media (prefers-reduced-motion: reduce) {
  dialog.entry-announcement,
  dialog.entry-announcement *,
  dialog.entry-announcement::backdrop {
    animation: none;
    transition: none;
    scroll-behavior: auto;
  }
}
/* entry-announcement-20261018:end */

/* 手机上传优先：折叠状态由 JS 维护，桌面只省去新增的手机入口标题。 */
.preview-fold-summary { display: none; }

/* 拆分材料与设置后仍沿用原双栏宽度；右侧跨行，剩余高度留给设置行，避免材料下出现空洞。 */
@media (min-width: 901px) {
  .workbench { grid-template-rows: auto 1fr; row-gap: 0; }
  .workbench > .editor-materials { grid-column: 1; grid-row: 1; }
  .workbench > .editor-options { grid-column: 1; grid-row: 2; }
  .workbench > .preview { grid-column: 2; grid-row: 1 / span 2; }
}

@media (max-width: 700px) {
  /* 上方已有品牌标识，状态栏省去重复纯标题；状态允许换行，账户入口保留在右侧。 */
  .main > .topbar { height: auto; min-height: 40px; padding: 5px 18px; gap: 8px; }
  .main > .topbar > span:first-child:not(.demo-badge) { display: none; }
  .main > .topbar > .demo-badge { flex: 1 1 0; min-width: 0; max-width: none; white-space: normal; }
  .main > .topbar > .demo-badge svg { flex-shrink: 0; }
  .main > .topbar > .account-area { flex: 0 1 auto; min-width: 0; max-width: 45%; margin-left: 0; }
  .main > .topbar .account-trigger { max-width: 100%; }

  /* 创建页标题与记录入口同排，简介独占下一行，避免同行分栏挤窄说明。 */
  .workspace:has(> .action-bar) { padding-top: 14px; padding-bottom: 0; }
  .workspace:has(> .action-bar) > .page-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 10px;
    margin-bottom: 14px;
  }
  .workspace:has(> .action-bar) > .page-heading > div { display: contents; }
  .workspace:has(> .action-bar) > .page-heading h1 { margin: 0; font-size: 28px; line-height: 1.35; }
  .workspace:has(> .action-bar) > .page-heading p { grid-column: 1 / -1; grid-row: 2; max-width: none; margin-top: 0; line-height: 1.6; }
  .workspace:has(> .action-bar) > .page-heading > .btn-quiet { grid-column: 2; grid-row: 1; max-width: none; white-space: nowrap; }

  /* 底栏仍贴住视口底部，同时在文档流中占位，待核长文案增高后也能滚到页面末尾。 */
  .action-bar {
    position: sticky;
    left: auto;
    right: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(132px, 42%);
    gap: 0 12px;
    margin: 16px -18px 0;
    padding: 10px 18px max(10px, env(safe-area-inset-bottom));
  }
  .action-bar > .action-info { grid-column: 1; grid-row: 1; min-width: 0; }
  .action-bar .action-info p { max-width: none; overflow-wrap: anywhere; }
  .action-bar > .bp-entry { grid-column: 1; grid-row: 2; justify-self: start; min-height: 24px; padding: 0; line-height: 1.6; }
  /* 按钮至少 132×44；待核状态的原文自然换行，不裁切、不缩字。 */
  .action-bar > .btn-primary {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
    min-width: 132px;
    min-height: 44px;
    width: 100%;
    padding: 11px 12px;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .action-bar > .btn-primary svg { flex-shrink: 0; }

  /* 按 DOM 的材料、预览、设置顺序流动；保留正常滚动，不靠限高裁掉上传与人脸工具。 */
  .workbench { gap: 0; }
  .workbench > .editor, .workbench > .preview { min-width: 0; }
  .editor-materials .section { margin-bottom: 14px; }
  .editor-materials .section-title { margin-bottom: 7px; }
  .editor-materials .section-title h2 { font-size: 17px; }
  .editor-materials .identity-box { min-height: 88px; padding: 12px 11px; gap: 10px; }
  .editor-materials .identity-thumb { width: 44px; height: 54px; }
  .editor-materials .identity-text strong { font-size: 14px; line-height: 1.5; }
  .editor-materials .identity-text p { margin-top: 2px; font-size: 11px; line-height: 1.5; }
  .editor-materials .identity-actions .btn { min-height: 44px; padding: 9px; font-size: 14px; }
  .editor-materials .identity-actions .icon-btn { width: 44px; height: 44px; }
  .editor-materials .upload-rules { margin-top: 6px; font-size: 11px; line-height: 1.6; }
  .editor-materials .reference-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }

  /* 真实缩略图与上传按钮共用一行；上传后只增必要工具行，长文案自然换行。 */
  .editor-materials .ref-card {
    display: grid;
    grid-template-columns: 35px minmax(0, 1fr);
    column-gap: 7px;
    align-content: start;
    padding: 10px 9px 8px;
  }
  .editor-materials .ref-top { grid-column: 1 / -1; min-height: 21px; margin-bottom: 0; }
  .editor-materials .ref-top h3 { font-size: 14px; }
  .editor-materials .ref-number { font-size: 11px; }
  .editor-materials .ref-photo {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
    width: 35px;
    height: 40px;
  }
  .editor-materials .ref-photo img { object-fit: contain; object-position: center; }
  /* 紧凑示例图不叠窄标签；真实图片、可选说明和原示例采用按钮继续呈现。 */
  .editor-materials .ref-photo.example-thumb::after { content: none; }
  .editor-materials .ref-photo .empty-ref { gap: 0; }
  /* 小缩略区仅留图标；用途名称和上传文字仍由卡头、原上传按钮完整呈现。 */
  .editor-materials .ref-photo .empty-ref span { display: none; }
  .editor-materials .ref-upload-row {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    min-height: 64px;
    margin-top: 0;
  }
  .editor-materials .ref-upload {
    flex: 1;
    min-width: 0;
    min-height: 64px;
    padding: 8px 0;
    font-size: 14px;
    line-height: 1.5;
  }
  .editor-materials .ref-upload svg { flex-shrink: 0; }
  .editor-materials .ref-rule,
  .editor-materials .ref-filename,
  .editor-materials .ref-card > .face-action,
  .editor-materials .ref-card > .sample-use,
  .editor-materials .ref-card > label { grid-column: 1 / -1; min-width: 0; }
  .editor-materials .ref-rule { font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; }
  .editor-materials .ref-card > label { overflow-wrap: anywhere; }
  .editor-materials .binding-line { margin-top: 6px; font-size: 11px; line-height: 1.6; }

  /* 预览和原图分别保留原生 details；只隐藏重复标题，预览标签与示例操作在展开后仍可用。 */
  .workbench > .preview {
    position: static;
    margin-bottom: 17px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fcfdf9;
  }
  .preview-fold-summary,
  .workbench .cx-chain > summary {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 50px;
    padding: 10px 12px;
    list-style: none;
    cursor: pointer;
    font-size: 16px;
    line-height: 1.6;
  }
  .preview-fold-summary::-webkit-details-marker,
  .workbench .cx-chain > summary::-webkit-details-marker { display: none; }
  .preview-fold-summary::after,
  .workbench .cx-chain > summary::after { content: "⌄"; margin-left: auto; color: var(--muted); }
  .preview-fold[open] > .preview-fold-summary::after,
  .workbench .cx-chain[open] > summary::after { content: "⌃"; }
  .preview-fold-summary:focus-visible,
  .workbench .cx-chain > summary:focus-visible { outline: 2px solid var(--green); outline-offset: -3px; }
  .preview-fold-content { padding: 0 12px 12px; }
  .preview-fold-content .preview-head > h2 { display: none; }
  .preview-fold-content .preview-head { justify-content: flex-start; }
  .workbench .preview .photo-stage { height: 220px; min-height: 156px; max-height: none; aspect-ratio: auto; }
  .workbench .preview .photo-stage > img { width: 100%; height: 100%; object-fit: contain; }
  .workbench .preview .no-result { min-height: 156px; padding: 24px 12px; }
  .workbench .cx-chain { margin: 0; padding: 0; }
  .workbench .cx-chain > summary { min-height: 45px; padding: 8px 12px; font-size: 12px; }
  .workbench .cx-chain-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 12px 12px; }
  .workbench .cx-chain > p { margin: 10px 12px 12px; }
}

/* 手机折叠提示和唯一箭头排成一行，避免提示堆叠再次撑高已收起的入口。 */
@media(max-width:700px){
 .preview-fold-summary .summary-right{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11px;line-height:1.3;color:var(--muted)}
 .preview-fold-summary .summary-right svg{width:14px;height:14px;flex-shrink:0}
 .preview-fold-summary::after{content:none;display:none}
}

/* task-identity-production-20261018-21：任务识别局部覆盖；追加至 app.css 末尾一次，沿用成象令牌。 */

/* 列表只收紧含 ti 记录的既有网格，不依赖新增父类，也不改变原有响应式列数。 */
.record-grid:has(> .ti-record) { gap: 12px; }
.ti-record {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "head head" "result result" "body body" "time time" "actions detail";
  align-content: start;
  column-gap: 8px;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
}
.ti-card-head {
  grid-area: head;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-bottom: 8px;
}
.ti-short-id {
  min-width: 0;
  color: var(--ink);
  font-size: 16px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.ti-card-head .ti-short-id { margin: 0; font-size: 16px; }
.ti-card-head .ti-short-id a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; overflow-wrap: anywhere; }
.ti-card-head .pill { margin: 0; font-size: 14px; }
.ti-record > .record-image { grid-area: result; margin-bottom: 12px; }
.ti-card-body {
  grid-area: body;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 16px;
}
.ti-card-summary { min-width: 0; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.ti-card-summary p { margin: 0; font-size: 14px; line-height: 1.5; }
.ti-card-summary p + p { margin-top: 4px; }
.ti-card-foot {
  /* 既有纯 div 用 contents 让时间与详情链接进入卡片网格；复制操作同排，DOM 与操作均保留。 */
  display: contents;
  color: var(--muted);
  font-size: 14px;
  overflow-wrap: anywhere;
}
.ti-card-foot time { grid-area: time; min-width: 0; margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.ti-card-foot > a { grid-area: detail; align-self: start; }
.ti-record-actions { grid-area: actions; display: flex; flex-wrap: wrap; align-self: start; gap: 4px 8px; min-width: 0; }

/* 身份及第一张参考保持同位；失败占位与 img 同格，加载失败仅切换图像，不丢用途。 */
.ti-thumbs { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.ti-thumbs figure { flex: 0 0 52px; width: 52px; min-width: 0; margin: 0; }
.ti-thumb-image {
  display: grid;
  place-items: stretch;
  width: 100%;
  height: 60px;
  overflow: hidden;
  border-radius: 5px;
  background: var(--green-wash);
}
.ti-thumb-image img,
.ti-image-fallback { grid-area: 1 / 1; width: 100%; height: 100%; min-width: 0; min-height: 0; }
.ti-thumb-image img { display: block; position: relative; object-fit: cover; }
.ti-thumb-image img[hidden] { display: none; }
.ti-image-fallback {
  display: grid;
  place-content: center;
  padding: 4px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.35;
  text-align: center;
  overflow-wrap: anywhere;
}
.ti-thumb-label { display: block; margin-top: 4px; font-size: 14px; line-height: 1.35; text-align: center; overflow-wrap: anywhere; }

/* 详情保持 DOM 阅读顺序：身份摘要、原状态/结果、素材在前；其余信息由原生折叠承载。 */
.ti-detail-heading { min-width: 0; margin-bottom: 16px; }
.ti-detail-heading h1 { margin: 0; overflow-wrap: anywhere; }
.ti-detail-heading .ti-short-id { font: inherit; font-variant-numeric: tabular-nums; }
.ti-detail-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 8px; color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.ti-detail-meta time { font-variant-numeric: tabular-nums; }
.ti-detail-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: start; gap: 32px; }
.ti-detail-grid > * { min-width: 0; }
.ti-detail-identity { display: flex; align-items: center; gap: 16px; min-width: 0; padding-bottom: 16px; }
.ti-detail-identity .ti-thumbs { flex: 0 0 auto; }
.ti-detail-identity .ti-thumbs figure { flex-basis: 64px; width: 64px; }
.ti-detail-identity .ti-thumb-image { height: 72px; }
.ti-detail-summary { min-width: 0; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.ti-detail-summary p { margin: 0; }
.ti-detail-summary p + p { margin-top: 4px; }

/* 仅解除待处理详情的空预览比例及最小高度；已完成结果图、过期说明不匹配这些选择器。 */
.ti-detail-pending .detail-media .photo-stage { min-height: 0; height: auto; max-height: none; aspect-ratio: auto; overflow: visible; background: transparent; }
.ti-detail-pending .no-result { width: 100%; min-width: 0; min-height: 0; padding: 0; background: transparent; }
.ti-detail-pending .job-status { max-width: none; padding: 16px; border-radius: 10px; box-shadow: none; font-family: inherit; }
.ti-detail-pending .job-status .job-status__visual { width: 64px; height: 64px; margin-block: 8px; }
.ti-detail-pending .job-status .job-status__steps { margin-bottom: 12px; }
.ti-detail-pending .job-status .job-status__title { font-size: 20px; line-height: 1.4; }
.ti-detail-pending .job-status .job-status__badge { font-size: 14px; }
.ti-detail-pending .job-status .job-status__message,
.ti-detail-pending .job-status .job-status__note { max-width: none; white-space: normal; }

/* 固定图列 + minmax(0,1fr) 允许长文件名所在轨道收缩；min-width:0 解除网格/文字项的最小内容宽度。
   用途独占一行不裁切；仅文件名预览可省略，完整名称在紧邻的原生 details 内保留并任意换行。 */
.ti-materials { display: grid; gap: 0; min-width: 0; margin: 0; padding: 0; list-style: none; }
.ti-material { display: grid; grid-template-columns: 68px minmax(0, 1fr); align-items: start; gap: 12px; min-width: 0; padding: 16px 0; border-top: 1px solid var(--line); }
.ti-material > figure { width: 68px; min-width: 0; margin: 0; }
.ti-material .ti-thumb-image { height: 84px; }
.ti-material-copy { min-width: 0; }
.ti-material-role { display: block; margin: 0; color: var(--ink); font-size: 16px; font-weight: 600; line-height: 1.5; white-space: nowrap; }
.ti-material-copy .ti-filename { display: block; min-width: 0; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 14px; line-height: 1.6; white-space: nowrap; text-overflow: ellipsis; }
.ti-filename-fold { min-width: 0; margin-top: 4px; color: var(--muted); font-size: 14px; }
.ti-filename-fold > summary { display: flex; align-items: center; gap: 4px; width: fit-content; max-width: 100%; min-height: 44px; padding-block: 11px; color: var(--green); line-height: 22px; list-style: none; cursor: pointer; overflow-wrap: anywhere; }
.ti-filename-fold > :not(summary),
.ti-filename-fold .ti-filename { min-width: 0; max-width: 100%; margin: 0 0 8px; overflow: visible; white-space: normal; text-overflow: clip; word-break: normal; overflow-wrap: anywhere; }
.ti-material-actions { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; margin-top: 4px; }
.ti-material-actions .btn { padding-inline: 12px; }
.ti-material-copy > p:not(.ti-filename) { margin-top: 8px; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }

/* 参数、耗时、两份正文与完整 ID 复用原生折叠；不设固定高度或截断展开内容。 */
.ti-fold { min-width: 0; margin-top: 12px; border-top: 1px solid var(--line); }
.ti-fold > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 52px; padding-block: 14px; color: var(--ink); font-size: 16px; font-weight: 550; line-height: 24px; list-style: none; cursor: pointer; overflow-wrap: anywhere; }
/* 20 号已输出 chevron SVG，只去掉重复的浏览器标记；不隐藏正文、用途或任何操作。 */
.ti-fold > summary::-webkit-details-marker,
.ti-filename-fold > summary::-webkit-details-marker { display: none; }
.ti-fold > summary svg,
.ti-filename-fold > summary svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--muted); }
.ti-fold[open] > summary svg,
.ti-filename-fold[open] > summary svg { transform: rotate(180deg); }
.ti-fold > :not(summary) { min-width: 0; max-width: 100%; margin-bottom: 16px; overflow-wrap: anywhere; }
.ti-fold pre,
.ti-fold code { max-width: 100%; white-space: pre-wrap; word-break: normal; overflow-wrap: anywhere; }
.ti-kv { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 8px 12px; min-width: 0; margin: 0; font-size: 14px; line-height: 1.6; }
.ti-kv dt { min-width: 0; color: var(--muted); }
.ti-kv dd { min-width: 0; margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.ti-full-id { min-width: 0; font: inherit; white-space: normal; word-break: normal; overflow-wrap: anywhere; }

/* 触控区域独立于紧凑排版；允许按钮与长标签换行，保留禁用态、状态动画及原交互。 */
.ti-record-actions :is(a, button),
.ti-card-foot > a,
.ti-material-actions :is(a, button),
.ti-detail-grid .detail-actions .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.ti-record-actions :is(a, button):focus-visible,
.ti-card-foot > a:focus-visible,
.ti-material-actions :is(a, button):focus-visible,
.ti-fold > summary:focus-visible,
.ti-filename-fold > summary:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }

@media (max-width: 960px) {
  .ti-detail-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 700px) {
  .ti-record { padding: 12px; }
  .ti-card-body { gap: 12px; }
  .ti-card-foot time { margin-top: 8px; }
  .ti-detail-grid { display: grid; }
  .ti-detail-identity { gap: 12px; }
  .ti-material { grid-template-columns: 64px minmax(0, 1fr); }
  .ti-material > figure { width: 64px; }
  .ti-material .ti-thumb-image { height: 80px; }
}
@media (max-width: 350px) {
  .ti-card-head { gap: 4px 8px; }
  .ti-card-body { gap: 8px; }
  .ti-thumbs { gap: 6px; }
  .ti-thumbs figure { flex-basis: 46px; width: 46px; }
  .ti-thumb-image { height: 54px; }
  .ti-detail-identity .ti-thumbs figure { flex-basis: 54px; width: 54px; }
  .ti-detail-identity .ti-thumb-image { height: 64px; }
  .ti-kv { grid-template-columns: 72px minmax(0, 1fr); }
  .ti-detail-pending .job-status .job-status__elapsed { margin-left: 0; white-space: normal; }
}

/* 显式保护hidden互斥；页头短号沿用标题层级。 */
.ti-image-fallback[hidden] { display: none; }
.ti-detail-heading h1 .ti-short-id { font-size: inherit; font-weight: inherit; }

/* 实页窄屏收口：刷新按钮独立保宽，阶段说明与动作保留，仅缩小装饰并收紧间距。 */
.ti-detail-heading { align-items: flex-start; gap: 12px; }
.ti-detail-heading > div { min-width: 0; flex: 1; }
.ti-detail-heading > .btn { flex: 0 0 auto; min-height: 44px; white-space: nowrap; }
.ti-detail-grid .detail-actions { flex-wrap: wrap; }
.ti-detail-grid .detail-actions > .btn { flex: 0 0 auto; white-space: nowrap; }
.ti-detail-pending .job-status { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 8px; padding: 12px; text-align: left; }
.ti-detail-pending .job-status__top { grid-column: 1 / -1; }
.ti-detail-pending .job-status .job-status__visual { grid-column: 1; grid-row: 2; width: 32px; height: 32px; min-height: 0; margin: 0; }
/* job-status.css后加载，选择器须强于其两类规则；24px旋转包围盒也不越过32px容器与标题间隙。 */
.ti-detail-pending .job-status .job-status__aperture { width: 24px; height: 24px; }
.ti-detail-pending .job-status .job-status__title { grid-column: 2; grid-row: 2; align-self: center; margin: 0; font-size: 18px; text-align: left; }
.ti-detail-pending .job-status .job-status__steps { grid-column: 1 / -1; grid-row: 3; margin: 0; }
.ti-detail-pending .job-status .job-status__message,
.ti-detail-pending .job-status .job-status__note,
.ti-detail-pending .job-status .job-status__actions { grid-column: 1 / -1; margin: 0; text-align: left; }
.ti-detail-pending .job-status .job-status__message { font-size: 14px; line-height: 1.6; }
.ti-detail-pending .job-status .job-status__note { font-size: 13px; line-height: 1.6; }
@media (max-width: 350px) {
  .ti-detail-heading { flex-wrap: wrap; }
  .ti-detail-heading > div { flex-basis: 100%; }
}


/* 56号｜批准 refinement 的写真、作品与详情布局增量。
 * 只迁真实 app.js 的类；49号负责控件基础，53号负责共享导航留白。
 * 不设置 main 的侧栏位移，不添加首页规则，不改变图片内容或原生折叠状态。
 */

/* 页面宽度与标题：只匹配真实工具页，不让新首页继承工具容器。 */
body[data-studio-ui="a"] .workspace:has(> :is(.workbench,.record-filters,.ti-detail-grid,.state-panel)) {
  width:100%; max-width:1440px; min-width:0; margin-inline:auto;
  padding:36px clamp(20px,4vw,58px) 32px;
  color:var(--studio-secondary); background:var(--studio-page);
}
body[data-studio-ui="a"] .workspace:has(> :is(.workbench,.record-filters,.ti-detail-grid,.state-panel)) > .page-heading {
  align-items:flex-start; gap:20px; margin-bottom:32px;
}
body[data-studio-ui="a"] .workspace:has(> :is(.workbench,.record-filters,.ti-detail-grid,.state-panel)) > .page-heading > div { min-width:0; }
body[data-studio-ui="a"] .workspace:has(> :is(.workbench,.record-filters,.ti-detail-grid,.state-panel)) .page-heading h1 {
  font:500 clamp(28px,2.5vw,36px)/1.4 var(--studio-sans); letter-spacing:0; overflow-wrap:anywhere;
}
body[data-studio-ui="a"] .workspace:has(> :is(.workbench,.record-filters,.ti-detail-grid,.state-panel)) .page-heading p {
  max-width:64ch; margin-top:10px; color:var(--studio-muted); font-size:14px; line-height:1.8;
}

/* 真正的素材/参数与预览双栏：保留既有 DOM 与折叠，左栏连续输入，右栏完整画面。 */
body[data-studio-ui="a"] .workbench {
  display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);
  grid-template-rows:auto 1fr; align-items:start; gap:0 32px;
}
body[data-studio-ui="a"] .workbench > .editor-materials { grid-column:1; grid-row:1; }
body[data-studio-ui="a"] .workbench > .editor-options { grid-column:1; grid-row:2; }
body[data-studio-ui="a"] .workbench > .editor {
  min-width:0; width:100%; padding:24px; border:1px solid var(--studio-line);
  background:var(--studio-surface); border-radius:var(--studio-radius-lg);
}
body[data-studio-ui="a"] .workbench > .editor-materials {
  border-bottom:0; border-radius:20px 20px 0 0; padding-bottom:0;
}
body[data-studio-ui="a"] .workbench > .editor-options {
  border-top:0; border-radius:0 0 20px 20px; padding-top:0;
}
body[data-studio-ui="a"] .workbench > .preview {
  grid-column:2; grid-row:1 / span 2; position:static;
  width:100%; max-width:none; min-width:0; padding:0;
}
body[data-studio-ui="a"] .workbench .section { margin-bottom:24px; min-width:0; }
body[data-studio-ui="a"] .workbench :is(.section-title,.note-label) { flex-wrap:wrap; gap:8px 12px; margin-bottom:12px; }
body[data-studio-ui="a"] .workbench :is(.section-title h2,.note-label label) { font:500 18px/1.5 var(--studio-sans); color:var(--studio-ink); }
body[data-studio-ui="a"] .workbench :is(.mode-caption,.upload-rules,.ref-rule,.binding-line,.note-label > span) {
  color:var(--studio-muted); font-size:14px; line-height:1.7; overflow-wrap:anywhere;
}
body[data-studio-ui="a"] .workbench .mode-caption { margin-top:12px; }
body[data-studio-ui="a"] .workbench :is(.required,.ref-number) { color:var(--studio-brand-ink); font-size:14px; }
body[data-studio-ui="a"] .workbench .identity-box {
  display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px 16px;
  min-height:112px; padding:16px; border:1px dashed var(--studio-line);
  border-radius:16px; background:var(--studio-raised);
}
body[data-studio-ui="a"] .workbench .identity-thumb { width:64px; height:78px; background:var(--studio-silver); border-radius:10px; }
body[data-studio-ui="a"] .workbench .identity-thumb img { width:100%; height:100%; object-fit:contain; }
body[data-studio-ui="a"] .workbench .identity-text { align-self:center; }
body[data-studio-ui="a"] .workbench .identity-text strong { font-size:15px; font-weight:500; }
body[data-studio-ui="a"] .workbench .identity-text :is(p,.filename) { max-width:100%; font-size:14px; white-space:normal; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workbench .identity-actions { grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; gap:8px; }

/* 四用途参考保留：两列提供真实文件名、规则和全部动作的空间；复刻单卡独占。 */
body[data-studio-ui="a"] .workbench .reference-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body[data-studio-ui="a"] .workbench .reference-grid > .ref-card:only-child { grid-column:1 / -1; }
body[data-studio-ui="a"] .workbench .ref-card {
  display:flex; flex-direction:column; gap:8px; min-width:0;
  padding:14px; background:var(--studio-raised); border:1px solid var(--studio-line); border-radius:16px;
}
body[data-studio-ui="a"] .workbench .ref-card.has-file { border-color:var(--studio-brand); }
body[data-studio-ui="a"] .workbench .ref-top { flex-wrap:wrap; min-height:24px; margin:0; gap:4px 8px; }
body[data-studio-ui="a"] .workbench .ref-top h3 { font:500 15px/1.5 var(--studio-sans); }
body[data-studio-ui="a"] .workbench .ref-photo { height:140px; min-height:100px; width:100%; background:var(--studio-silver); border-radius:10px; }
body[data-studio-ui="a"] .workbench .ref-photo img,
body[data-studio-ui="a"] .workbench .ref-photo.example-thumb img { width:100%; height:100%; object-fit:contain; object-position:center; opacity:1; }
body[data-studio-ui="a"] .workbench .ref-photo.example-thumb::after { content:none; }
body[data-studio-ui="a"] .workbench .ref-upload-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:8px; margin:0; }
body[data-studio-ui="a"] .workbench .ref-upload { flex:1 1 90px; justify-content:center; white-space:normal; padding:8px; }
body[data-studio-ui="a"] .workbench .ref-card :is(.ref-rule,.ref-filename) { margin:0; font-size:14px; line-height:1.65; white-space:normal; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workbench .ref-card :is(.sample-use,.face-action) { align-self:stretch; justify-content:center; margin:0; padding:8px; font-size:14px; line-height:1.5; white-space:normal; }
body[data-studio-ui="a"] .workbench .ref-card > label { margin:0; min-height:44px; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workbench .binding-line { margin-top:12px; }
body[data-studio-ui="a"] .workbench .binding-chip { display:inline-block; margin:4px 6px 0 0; padding:4px 8px; max-width:100%; border-radius:8px; background:var(--studio-lilac); color:var(--studio-brand-ink); white-space:normal; }

/* 参数与正文不截断，长模型名可收缩；拍摄维度仍分别占原始网格轨道。 */
body[data-studio-ui="a"] .workbench .settings { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding-block:20px; border-color:var(--studio-line); }
body[data-studio-ui="a"] .workbench .settings > * { min-width:0; }
body[data-studio-ui="a"] .workbench :is(.setting-label,.note-label label) { display:block; margin-bottom:8px; font-size:14px; font-weight:500; }
body[data-studio-ui="a"] .workbench :is(select,textarea) { width:100%; min-width:0; max-width:100%; font-size:15px; }
body[data-studio-ui="a"] .workbench #creative-note { min-height:140px; line-height:1.8; resize:vertical; }
body[data-studio-ui="a"] .workbench .shooting-segments { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:6px; background:var(--studio-lilac); border-radius:16px; }
body[data-studio-ui="a"] .workbench .shooting-segments button { min-width:44px; min-height:44px; font-size:14px; white-space:normal; padding:8px; color:var(--studio-muted); border-radius:12px; }
body[data-studio-ui="a"] .workbench .shooting-segments button[aria-pressed="true"] { color:var(--studio-ink); background:var(--studio-surface); border-color:var(--studio-line); }
body[data-studio-ui="a"] .workbench .mode-switch button[aria-checked="true"] { color:var(--studio-ink)!important; background:var(--studio-surface)!important; }
body[data-studio-ui="a"] .workbench .crop-control label { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; padding:10px 12px; }
body[data-studio-ui="a"] .workbench .shooting-angle { border-color:var(--studio-line); }
body[data-studio-ui="a"] .workbench .shooting-angle summary { min-height:44px; flex-wrap:wrap; gap:8px; font-size:14px; }
body[data-studio-ui="a"] .workbench .shooting-angle summary span { font-size:14px; color:var(--studio-muted); overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workbench :is(.preserve-makeup,.fixed-note) { flex-wrap:wrap; gap:8px; color:var(--studio-muted); font-size:14px; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid) .prompt-fold { min-width:0; margin-top:16px; padding:0; border:1px solid var(--studio-line); border-radius:16px; background:var(--studio-raised); }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid) .prompt-fold > summary { min-height:52px; padding:14px 16px; flex-wrap:wrap; gap:8px; color:var(--studio-ink); font-size:14px; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid) .prompt-fold > summary span:last-child { font-size:14px; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid) .prompt-text {
  min-width:0; max-width:100%; margin:0; padding:16px; color:var(--studio-secondary);
  background:var(--studio-surface); font:400 14px/1.85 var(--studio-sans);
  white-space:pre-wrap; overflow-wrap:anywhere; word-break:normal; overflow:auto;
}
body[data-studio-ui="a"] .workbench .detail-actions { flex-wrap:wrap; margin-top:20px; }

/* 轻图框承托完整原图：不加相框阴影，不裁切，不把过期/未知空态做成假成果。 */
body[data-studio-ui="a"] .workbench .preview-fold { min-width:0; border:1px solid var(--studio-line); border-radius:20px; background:var(--studio-surface); }
body[data-studio-ui="a"] .workbench .preview-fold-summary { display:flex; align-items:center; gap:10px; min-height:52px; padding:14px 20px; color:var(--studio-ink); font-size:15px; list-style:none; cursor:pointer; }
body[data-studio-ui="a"] .workbench .preview-fold-summary .summary-right { font-size:14px; color:var(--studio-muted); }
body[data-studio-ui="a"] .workbench .preview-fold-content { padding:0 20px 20px; min-width:0; }
body[data-studio-ui="a"] .workbench .preview-head { margin-bottom:16px; flex-wrap:wrap; }
body[data-studio-ui="a"] .workbench .preview-tabs { flex-wrap:wrap; gap:6px; max-width:100%; }
body[data-studio-ui="a"] .workbench .preview-tabs button { padding:10px 14px; min-height:44px; font-size:14px; white-space:normal; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid) .photo-stage {
  width:100%; min-width:0; height:clamp(320px,48vw,650px); min-height:0; max-height:none;
  aspect-ratio:auto; padding:12px; border:1px solid var(--studio-line); border-radius:12px; background:var(--studio-silver); box-shadow:none;
}
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid) .photo-stage > img,
body[data-studio-ui="a"] .workbench .cx-showcase img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; object-position:center; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid,.record-grid) .photo-label { position:static; width:fit-content; max-width:100%; margin-top:8px; padding:4px 8px; color:var(--studio-muted); background:var(--studio-surface); font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid) .photo-stage:has(> .photo-label) { grid-template-rows:minmax(0,1fr) auto; }
body[data-studio-ui="a"] .workbench :is(.preview-caption,.preview-caption > div) { min-width:0; }
body[data-studio-ui="a"] .workbench .preview-caption { align-items:flex-start; flex-wrap:wrap; gap:8px; margin-top:16px; }
body[data-studio-ui="a"] .workbench .preview-caption h3 { font:500 18px/1.5 var(--studio-sans); }
body[data-studio-ui="a"] .workbench :is(.preview-caption p,.preview-number) { font-size:14px; color:var(--studio-muted); white-space:normal; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workbench .preview-strip { padding:4px 2px 8px; }
body[data-studio-ui="a"] .workbench .preview-thumb { width:52px; height:64px; border-radius:8px; }
body[data-studio-ui="a"] .workbench .preview-thumb img { object-fit:contain; }
body[data-studio-ui="a"] .workbench .cx-chain { margin:16px 0 0; padding:0; border:1px solid var(--studio-line); border-radius:16px; background:var(--studio-raised); }
body[data-studio-ui="a"] .workbench .cx-chain > summary { min-height:48px; padding:12px 16px; color:var(--studio-ink); font-size:14px; }
body[data-studio-ui="a"] .workbench #preview-originals-content { padding:0 16px 16px; min-width:0; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workbench .cx-chain-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 12px; }
body[data-studio-ui="a"] .workbench .cx-chain-grid img { height:100px; object-fit:contain; background:var(--studio-silver); }
body[data-studio-ui="a"] .workbench .cx-chain-grid a { min-width:0; min-height:44px; overflow-wrap:anywhere; }

/* 主操作在文档流占位，长待核文本增高后仍可滚动；导航顶部空间完全交给53号。 */
body[data-studio-ui="a"] .workspace > .action-bar {
  position:sticky; left:auto; right:auto; bottom:0; z-index:8;
  display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px;
  width:100%; min-width:0; min-height:88px; margin:24px 0 0;
  padding:16px 20px max(16px,env(safe-area-inset-bottom));
  background:var(--studio-surface); border:1px solid var(--studio-line); border-radius:20px;
}
body[data-studio-ui="a"] .workspace > .action-bar .action-info { flex:1 1 200px; min-width:0; }
body[data-studio-ui="a"] .workspace > .action-bar :is(strong,p) { font-size:14px; white-space:normal; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workspace > .action-bar .btn-primary { min-width:200px; min-height:54px; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workspace > .action-bar .bp-entry { display:inline-flex; align-items:center; min-height:44px; min-width:44px; max-width:100%; color:var(--studio-brand-ink); }

/* 作品网格：三列轻卡片，完整画幅与任务识别、原始输入、全部操作并存。 */
body[data-studio-ui="a"] .record-filters { flex-wrap:wrap; align-items:center; gap:6px; width:fit-content; max-width:100%; padding:6px; margin-bottom:24px; border:1px solid var(--studio-line); border-radius:24px; background:var(--studio-lilac); }
body[data-studio-ui="a"] .record-filters button { min-height:44px; padding:10px 16px; font-size:14px; }
body[data-studio-ui="a"] .record-filters button::after { content:none; }
body[data-studio-ui="a"] .record-grid,
body[data-studio-ui="a"] .record-grid:has(> .ti-record) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 24px; min-width:0; }
body[data-studio-ui="a"] .record-grid > .ti-record { grid-template-columns:minmax(0,1fr); grid-template-areas:"head" "result" "body" "time" "detail" "actions"; gap:12px; min-width:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
body[data-studio-ui="a"] .record-grid .ti-card-head { margin:0; gap:6px 12px; }
body[data-studio-ui="a"] .record-grid .record-image { display:grid; grid-template-rows:minmax(0,1fr) auto; height:310px; min-height:0; margin:0; padding:12px; aspect-ratio:auto; background:var(--studio-silver); border:1px solid var(--studio-line); border-radius:12px; box-shadow:none; }
body[data-studio-ui="a"] .record-grid .record-image img { width:100%; height:100%; min-height:0; object-fit:contain; object-position:center; }
body[data-studio-ui="a"] .record-grid .ti-card-body { gap:12px; }
body[data-studio-ui="a"] .record-grid .ti-card-summary :is(p,.record-note) { color:var(--studio-muted); font-size:14px; line-height:1.75; white-space:normal; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .record-grid .ti-card-foot time { margin:0; padding-top:12px; border-color:var(--studio-line); color:var(--studio-muted); }
body[data-studio-ui="a"] .record-grid .ti-card-foot > a { margin:0; justify-self:start; }
body[data-studio-ui="a"] .record-grid .ti-record-actions { gap:8px; padding-bottom:16px; border-bottom:1px solid var(--studio-line); }
body[data-studio-ui="a"] :is(.record-grid,.ti-detail-grid) .ti-thumb-image { background:var(--studio-silver); border-radius:8px; }
body[data-studio-ui="a"] :is(.record-grid,.ti-detail-grid) .ti-thumb-image img { object-fit:contain; }

/* 详情沿用真实素材、两份正文、参数和多成果输出，不再在图外叠厚框。 */
body[data-studio-ui="a"] .ti-detail-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr); width:100%; max-width:none; gap:36px; }
body[data-studio-ui="a"] .ti-detail-grid :is(.detail-media,.detail-info,.ti-detail-summary) { min-width:0; }
body[data-studio-ui="a"] .ti-detail-grid .detail-info { padding:24px; background:var(--studio-surface); border:1px solid var(--studio-line); border-top:2px solid var(--studio-brand); border-radius:20px; }
body[data-studio-ui="a"] .ti-detail-grid .detail-section { padding-block:24px; border-color:var(--studio-line); }
body[data-studio-ui="a"] .ti-detail-grid .detail-section h2 { font:500 18px/1.5 var(--studio-sans); }
body[data-studio-ui="a"] .ti-detail-grid .detail-section p { color:var(--studio-secondary); }
body[data-studio-ui="a"] .ti-detail-grid .ti-detail-identity { padding-bottom:20px; flex-wrap:wrap; gap:16px; }
body[data-studio-ui="a"] .ti-detail-grid .ti-material-role { white-space:normal; overflow-wrap:anywhere; font-size:15px; font-weight:500; }
body[data-studio-ui="a"] .ti-detail-grid .ti-material { border-color:var(--studio-line); }
body[data-studio-ui="a"] .ti-detail-grid .ti-fold { border-color:var(--studio-line); }
body[data-studio-ui="a"] .ti-detail-grid .ti-fold > summary { color:var(--studio-ink); font-size:15px; font-weight:500; }
body[data-studio-ui="a"] .ti-detail-grid :is(.detail-settings,.detail-actions) { gap:8px; flex-wrap:wrap; }
body[data-studio-ui="a"] .ti-detail-grid .detail-settings .pill { max-width:100%; white-space:normal; overflow-wrap:anywhere; background:var(--studio-lilac); color:var(--studio-brand-ink); }
body[data-studio-ui="a"] .ti-detail-grid .detail-actions .btn { flex:1 1 140px; white-space:normal; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .ti-detail-grid .ti-kv { grid-template-columns:84px minmax(0,1fr); gap:12px; }
body[data-studio-ui="a"] .ti-detail-grid .ti-kv dt { color:var(--studio-muted); }
body[data-studio-ui="a"] .ti-detail-grid .ti-kv dd { color:var(--studio-secondary); overflow-wrap:anywhere; }
body[data-studio-ui="a"] .ti-detail-pending .detail-media .photo-stage { height:auto; min-height:0; max-height:none; padding:0; border:0; aspect-ratio:auto; background:transparent; overflow:visible; }
body[data-studio-ui="a"] .ti-detail-pending .no-result { padding:0; min-height:0; background:transparent; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid) .no-result:not(:has(.job-status)) { height:auto; min-height:200px; padding:24px; background:var(--studio-raised); }

/* 真实弹层仅调整外观与内部布局，不设置 display、定位变换或伪造 open，焦点留原逻辑。 */
body[data-studio-ui="a"] dialog:is(.asset-manager,[aria-labelledby="mask-title"],.entry-announcement) { max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); overscroll-behavior:contain; }
body[data-studio-ui="a"] dialog:is(.asset-manager,[aria-labelledby="mask-title"],.entry-announcement)::backdrop { background:#30244266; }
body[data-studio-ui="a"] .asset-manager { width:min(760px,calc(100vw - 32px)); padding:24px; border:1px solid var(--studio-line); border-radius:22px; background:var(--studio-surface); color:var(--studio-secondary); overflow:auto; }
body[data-studio-ui="a"] .asset-manager :is(.asset-manager-head,.access-dialog-actions) { gap:12px; flex-wrap:wrap; }
body[data-studio-ui="a"] .asset-manager :is(h2,h3) { font-family:var(--studio-sans); font-weight:500; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .asset-manager .asset-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body[data-studio-ui="a"] .asset-manager .managed-asset { display:grid; grid-template-columns:56px minmax(0,1fr); gap:12px; padding:14px; background:var(--studio-raised); border:1px solid var(--studio-line); border-radius:14px; }
body[data-studio-ui="a"] .asset-manager .managed-asset-image { width:56px; height:72px; object-fit:contain; background:var(--studio-silver); border-radius:8px; }
body[data-studio-ui="a"] .asset-manager .managed-asset-meta { min-width:0; overflow-wrap:anywhere; }
body[data-studio-ui="a"] .asset-manager .managed-asset-meta h3 { white-space:normal; font-size:14px; }
body[data-studio-ui="a"] .asset-manager .managed-asset > button { grid-column:1 / -1; justify-self:end; }
body[data-studio-ui="a"] dialog[aria-labelledby="mask-title"] :is(.section-title,.detail-actions) { flex-wrap:wrap; gap:12px; }
body[data-studio-ui="a"] dialog[aria-labelledby="mask-title"] .detail-actions > label { min-width:0; max-width:100%; min-height:44px; }
body[data-studio-ui="a"] dialog[aria-labelledby="mask-title"] #mask-canvas { max-width:100%; }
body[data-studio-ui="a"] .account-menu { max-width:calc(100vw - 32px); overflow-wrap:anywhere; }

/* 可访问性与内容边界：只给可见控件布局，隐藏的文件输入、占位与关闭 dialog 不被唤醒。 */
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid,.record-grid,.asset-manager) :is(button,a.btn,a.btn-quiet,a.record-link):not([hidden]),
body[data-studio-ui="a"] .workspace > .crumb:not([hidden]) { min-width:44px; min-height:44px; max-width:100%; }
body[data-studio-ui="a"] .workbench :is(.icon-btn,.identity-actions .btn,.ref-card .icon-btn) { min-width:44px; min-height:44px; width:auto; height:auto; }
body[data-studio-ui="a"] .workbench .ref-card .icon-btn { flex:0 0 44px; }
body[data-studio-ui="a"] .workspace > .crumb { display:inline-flex; align-items:center; gap:8px; margin-bottom:20px; color:var(--studio-brand-ink); }
body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager) :is(button,a,summary):focus-visible { outline:2px solid var(--studio-brand); outline-offset:3px; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid,.asset-manager,.workspace) > .form-error,
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid,.asset-manager) .form-error { max-width:100%; color:var(--studio-danger); background:var(--studio-danger-soft); border:1px solid var(--studio-danger); border-radius:12px; padding:12px 16px; white-space:pre-wrap; overflow-wrap:anywhere; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid,.asset-manager) :is(input,select,textarea)[aria-invalid="true"] { border-color:var(--studio-danger); }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid,.asset-manager) :is(input,select,textarea)[aria-invalid="true"]:focus-visible { outline-color:var(--studio-danger); }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid,.record-grid,.asset-manager) pre { max-width:100%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; }
body[data-studio-ui="a"] :is(.workbench,.ti-detail-grid,.record-grid,.asset-manager) table { display:block; max-width:100%; overflow-x:auto; }
body[data-studio-ui="a"] .workspace > .state-panel { max-width:680px; margin:32px auto; padding:32px 24px; border:1px solid var(--studio-line); border-radius:20px; background:var(--studio-raised); }
body[data-studio-ui="a"] .workspace > .state-panel :is(h2,p) { font-family:var(--studio-sans); overflow-wrap:anywhere; }
body[data-studio-ui="a"] .workspace > .state-panel.is-error { background:var(--studio-danger-soft); border-color:var(--studio-danger); }

/* 原生隐藏优先于所有网格/图片 display；保留文件输入、错误、图像失败占位的真实开关。 */
body[data-studio-ui="a"] :is(.workspace,.asset-manager)[hidden],
body[data-studio-ui="a"] :is(.workspace,.asset-manager) [hidden] { display:none!important; }

/* 平板仍能阅读双栏信息；在不足容纳真实参考与参数时整体转为单列。 */
@media (max-width:1100px) {
  body[data-studio-ui="a"] .record-grid,
  body[data-studio-ui="a"] .record-grid:has(> .ti-record) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-studio-ui="a"] .ti-detail-grid { grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr); gap:24px; }
}
@media (max-width:900px) {
  body[data-studio-ui="a"] .workbench { grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto auto; gap:0; }
  body[data-studio-ui="a"] .workbench > .editor-materials { grid-column:1; grid-row:1; }
  body[data-studio-ui="a"] .workbench > .editor-options { grid-column:1; grid-row:2; }
  body[data-studio-ui="a"] .workbench > .preview { grid-column:1; grid-row:3; margin-top:24px; }
  body[data-studio-ui="a"] .ti-detail-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
}

/* 手机输入优先：参考图与动作分行，不缩小触控、不隐藏正文、参数或下载入口。 */
@media (max-width:700px) {
  body[data-studio-ui="a"] .workspace:has(> :is(.workbench,.record-filters,.ti-detail-grid,.state-panel)) { padding:24px 18px 20px; }
  body[data-studio-ui="a"] .workspace:has(> :is(.workbench,.record-filters,.ti-detail-grid,.state-panel)) > .page-heading { display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px; margin-bottom:24px; }
  body[data-studio-ui="a"] .workspace:has(> .action-bar) > .page-heading > div { display:block; width:100%; }
  body[data-studio-ui="a"] .workspace:has(> .action-bar) > .page-heading > .btn-quiet { white-space:normal; min-height:44px; }
  body[data-studio-ui="a"] .workbench > .editor { padding:18px 16px; }
  body[data-studio-ui="a"] .workbench > .editor-materials { padding-bottom:0; }
  body[data-studio-ui="a"] .workbench > .editor-options { padding-top:0; }
  body[data-studio-ui="a"] .workbench .section { margin-bottom:24px; }
  body[data-studio-ui="a"] .workbench .identity-box { grid-template-columns:48px minmax(0,1fr); padding:12px; gap:12px; }
  body[data-studio-ui="a"] .workbench .identity-thumb { width:48px; height:64px; }
  body[data-studio-ui="a"] .workbench .reference-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  body[data-studio-ui="a"] .workbench .ref-card { display:grid; grid-template-columns:88px minmax(0,1fr); padding:12px; gap:10px 12px; }
  body[data-studio-ui="a"] .workbench .ref-top { grid-column:1 / -1; min-width:0; }
  body[data-studio-ui="a"] .workbench .ref-photo { grid-column:1; grid-row:2; width:88px; height:112px; min-height:0; }
  body[data-studio-ui="a"] .workbench .ref-rule { grid-column:2; grid-row:2; align-self:center; }
  body[data-studio-ui="a"] .workbench .ref-upload-row,
  body[data-studio-ui="a"] .workbench .ref-card > :is(.ref-filename,.face-action,.sample-use,label) { grid-column:1 / -1; }
  body[data-studio-ui="a"] .workbench .ref-card .ref-photo .empty-ref span { display:block; font-size:14px; text-align:center; }
  body[data-studio-ui="a"] .workbench .ref-upload-row { gap:8px; }
  body[data-studio-ui="a"] .workbench .ref-upload { flex:1 1 160px; }
  body[data-studio-ui="a"] .workbench .preview-fold-summary { padding-inline:16px; flex-wrap:wrap; }
  body[data-studio-ui="a"] .workbench .preview-fold-content { padding:0 12px 16px; }
  body[data-studio-ui="a"] .workbench .preview .photo-stage { height:360px; min-height:0; max-height:none; aspect-ratio:auto; }
  body[data-studio-ui="a"] .workbench .cx-chain-grid { margin:0 0 12px; gap:8px; }
  body[data-studio-ui="a"] .workbench .cx-chain-grid img { height:88px; }
  body[data-studio-ui="a"] .workspace > .action-bar {
    display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin:20px 0 0; padding:14px 16px max(14px,env(safe-area-inset-bottom)); border-radius:18px;
  }
  body[data-studio-ui="a"] .workspace > .action-bar > .action-info { grid-column:1; grid-row:1; }
  body[data-studio-ui="a"] .workspace > .action-bar > .btn-primary { grid-column:1; grid-row:2; width:100%; min-width:0; min-height:54px; }
  body[data-studio-ui="a"] .workspace > .action-bar > .bp-entry { grid-column:1; grid-row:3; justify-self:center; padding:10px 12px; min-height:44px; }
  body[data-studio-ui="a"] .record-grid,
  body[data-studio-ui="a"] .record-grid:has(> .ti-record) { grid-template-columns:minmax(0,1fr); gap:28px; }
  body[data-studio-ui="a"] .record-grid .record-image { height:340px; }
  body[data-studio-ui="a"] .record-grid .ti-record-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  body[data-studio-ui="a"] .record-grid .ti-record-actions > * { white-space:normal; padding:10px 8px; }
  body[data-studio-ui="a"] .ti-detail-grid .detail-media .photo-stage { height:440px; min-height:0; max-height:none; aspect-ratio:auto; }
  body[data-studio-ui="a"] .ti-detail-grid .detail-info { padding:20px 16px; }
  body[data-studio-ui="a"] .ti-detail-pending .detail-media .photo-stage { height:auto; padding:0; }
  body[data-studio-ui="a"] .ti-detail-grid .ti-kv { grid-template-columns:72px minmax(0,1fr); }
  body[data-studio-ui="a"] .ti-detail-grid .detail-actions .btn { flex:1 1 100%; white-space:normal; }
  body[data-studio-ui="a"] .asset-manager { padding:20px 16px; }
  body[data-studio-ui="a"] .asset-manager .asset-grid { grid-template-columns:minmax(0,1fr); }
}

/* 末层禁用覆盖选中、hover 与旧行内配色；只在这些状态使用必要的优先级。 */
body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager) :is(button:disabled,button[aria-disabled="true"],a[aria-disabled="true"]),
body[data-studio-ui="a"] .workspace > .action-bar :is(button:disabled,button[aria-disabled="true"]) {
  color:var(--studio-disabled-ink)!important; background:var(--studio-disabled-bg)!important;
  border-color:var(--studio-disabled-line)!important; box-shadow:none!important; transform:none!important; cursor:not-allowed;
}

/* 双减少动态只清理装饰/控件位移，不改抽屉、弹层定位或原生展开语义。 */
body[data-studio-ui="a"][data-reduce-motion="true"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar),
body[data-studio-ui="a"][data-reduce-motion="true"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) *,
body[data-studio-ui="a"][data-reduce-motion="true"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) *::before,
body[data-studio-ui="a"][data-reduce-motion="true"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
body[data-studio-ui="a"][data-reduce-motion="true"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) :is(button,a,button *,a *,.job-status__aperture),
body[data-studio-ui="a"][data-reduce-motion="true"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) :is(button,a)::before,
body[data-studio-ui="a"][data-reduce-motion="true"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) :is(button,a)::after { transform:none!important; }
@media (prefers-reduced-motion:reduce) {
  body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar),
  body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) *,
  body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) *::before,
  body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) :is(button,a,button *,a *,.job-status__aperture),
  body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) :is(button,a)::before,
  body[data-studio-ui="a"] :is(.workbench,.record-grid,.ti-detail-grid,.asset-manager,.action-bar) :is(button,a)::after { transform:none!important; }
}
