:root{--chrome:#101820;--workspace:#f4f6f8;--panel:#ffffff;--line:#d9e0e8;--line-strong:#b8c4d2;--text:#17212b;--muted:#5f6f80;--accent:#0d6efd;--accent-soft:#e8f2ff;--green:#20895d;--green-soft:#e9f8f1;--orange:#c77700;--orange-soft:#fff4df;--red:#c92a4b;--red-soft:#fff0f4}*{box-sizing:border-box}body,html{margin:0;min-height:100vh;background:var(--workspace);color:var(--text);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:74px;padding:14px 20px;background:var(--chrome);color:#f8fbff}.topbar h1,.topbar p{margin:0}.topbar h1{font-size:18px;line-height:24px;font-weight:900}.topbar p{color:#aebed1;font-size:12px;font-weight:700}.row-actions,.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-actions strong{max-width:360px;overflow:hidden;color:#c7d6e8;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.state-pill{border:1px solid rgba(102,217,239,.35);border-radius:999px;background:rgba(102,217,239,.12);color:#9eeaf9;font-size:12px}.helper-status-pill,.state-pill{display:inline-flex;align-items:center;height:28px;padding:0 10px;font-weight:900}.helper-status-pill{gap:6px;min-width:116px;border:1px solid rgba(95,111,128,.24);border-radius:999px;background:rgba(95,111,128,.12);color:#c7d6e8;font-size:11px;white-space:nowrap}button.helper-status-pill{cursor:pointer}.helper-status-pill b,.helper-status-pill small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.helper-status-pill b{font-size:11px}.helper-status-pill small{max-width:74px;color:#aebed1;font-size:10px;font-weight:900}.helper-status-pill.online{border-color:rgba(117,214,159,.36);background:rgba(117,214,159,.13);color:#b9f6d0}.helper-status-pill.offline{border-color:rgba(255,128,160,.35);background:rgba(255,128,160,.12);color:#ffbfd0}.helper-status-pill.unpaired{border-color:rgba(255,196,107,.42);background:rgba(255,196,107,.13);color:#ffd89b}button.helper-status-pill.offline:focus-visible,button.helper-status-pill.offline:hover,button.helper-status-pill.unpaired:focus-visible,button.helper-status-pill.unpaired:hover{border-color:rgba(255,155,180,.68);background:rgba(255,128,160,.2);outline:none}button.helper-status-pill.unpaired:focus-visible,button.helper-status-pill.unpaired:hover{border-color:rgba(255,211,135,.68);background:rgba(255,196,107,.2)}.helper-status-pill.checking{border-color:rgba(255,196,107,.35);background:rgba(255,196,107,.12);color:#ffd89b}.official-options-pill,.official-page-pill{display:inline-flex;align-items:center;gap:6px;min-width:118px;height:28px;padding:0 10px;border:1px solid rgba(95,111,128,.24);border-radius:999px;background:rgba(95,111,128,.12);color:#c7d6e8;font-size:11px;font-weight:900;white-space:nowrap}.official-options-pill b,.official-options-pill small,.official-page-pill b,.official-page-pill small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.official-options-pill b,.official-page-pill b{font-size:11px}.official-options-pill small,.official-page-pill small{max-width:96px;color:#aebed1;font-size:10px;font-weight:900}.official-options-pill.ready,.official-page-pill.ready{border-color:rgba(117,214,159,.36);background:rgba(117,214,159,.13);color:#b9f6d0}.official-options-pill.empty,.official-page-pill.empty{border-color:rgba(255,196,107,.35);background:rgba(255,196,107,.12);color:#ffd89b}.official-options-pill.checking,.official-page-pill.checking{border-color:rgba(102,217,239,.35);background:rgba(102,217,239,.12);color:#9eeaf9}.icon-button,.topbar-actions button{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(255,255,255,.06);color:#dbe7f5;font-size:12px;font-weight:900;text-decoration:none}.flow-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;padding:12px 18px 0}.flow-strip article{min-width:0;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;background:var(--panel)}.flow-strip span,.flow-strip strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-strip strong{font-size:13px;font-weight:900}.flow-strip span{color:var(--muted);font-size:11px;font-weight:700}.directory-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(300px,.9fr);grid-gap:10px;gap:10px;align-items:stretch;padding:12px 14px 0}.directory-actions,.directory-defaults,.directory-main,.directory-metrics,.directory-picker-actions{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 1px 2px rgba(16,24,32,.04)}.directory-main{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:10px 12px}.directory-main div{display:grid;grid-gap:3px;gap:3px;min-width:0}.directory-main code,.directory-main strong,.directory-state{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-main strong{color:var(--text);font-size:12px;font-weight:900}.directory-main code{color:#38495d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.directory-state{max-width:180px;padding:4px 8px;border-radius:999px;background:rgba(95,111,128,.1);color:var(--muted);font-size:11px;font-weight:900}.directory-state.ready{background:rgba(32,137,93,.12);color:var(--green)}.directory-state.warning,.directory-state.working{background:rgba(199,119,0,.12);color:var(--orange)}.directory-state.error{background:rgba(201,42,75,.1);color:var(--red)}.directory-picker-actions{gap:8px;padding:9px 10px}.directory-actions,.directory-picker-actions,.directory-picker-actions button{display:flex;align-items:center}.directory-picker-actions button{justify-content:center;height:34px;min-width:112px;padding:0 12px;border:1px solid var(--line-strong);border-radius:6px;background:#ffffff;color:var(--text);font-size:12px;font-weight:900;white-space:nowrap}.directory-actions{gap:8px;padding:10px}.directory-actions button{height:34px;padding:0 12px;border:1px solid var(--line-strong);border-radius:6px;background:#ffffff;color:var(--text);font-size:12px;font-weight:900;white-space:nowrap}.directory-actions .primary-action,.directory-picker-actions .primary-action{border-color:#0b5ed7;background:var(--accent);color:#ffffff}.directory-defaults{display:grid;grid-column:1/3;grid-template-columns:88px 88px minmax(0,1fr);grid-gap:8px;gap:8px;padding:9px 10px}.directory-defaults label{display:grid;grid-gap:3px;gap:3px;min-width:0}.directory-defaults span,.draft-restore>span{color:var(--muted);font-size:11px;font-weight:900}.directory-defaults input,.draft-restore select{min-width:0;height:30px;padding:0 8px;border:1px solid var(--line-strong);border-radius:6px;background:#ffffff;color:var(--text);font-size:12px;font-weight:800}.draft-restore{display:grid;grid-gap:3px;gap:3px;min-width:0}.draft-restore div{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:6px;gap:6px;min-width:0}.draft-restore button{height:30px;padding:0 10px;border:1px solid var(--line-strong);border-radius:6px;background:#ffffff;color:var(--text);font-size:12px;font-weight:900;white-space:nowrap}.draft-restore small{min-width:0;overflow:hidden;color:var(--green);font-size:10px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.directory-toolbar .source-feedback{grid-column:1/-1;grid-row:3}.directory-toolbar .source-feedback.compact{min-height:0}.directory-toolbar .source-feedback.compact .source-feedback-counts{display:none}.directory-metrics{display:grid;grid-column:3;grid-row:2;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px;padding:8px}.directory-metrics span{display:grid;place-items:center;min-width:0;padding:6px 5px;border-radius:6px;background:#f8fafc;color:var(--muted);font-size:11px;font-weight:900;text-align:center}.directory-metrics b{color:var(--text);font-size:16px;line-height:18px}.workbench{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:12px;gap:12px;min-height:0;padding:12px 14px 14px}.table-panel{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 1px 2px rgba(16,24,32,.06)}.panel-title h2{margin:0;font-size:15px;line-height:20px;font-weight:900}.panel-title p{min-width:0;margin:0;overflow:hidden;color:var(--muted);font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.primary-button,.row-actions button,.secondary-button,.secondary-inline{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border-radius:6px;font-size:12px;font-weight:900}.primary-button,.secondary-button{width:100%}.primary-button{border:1px solid #0b5ed7;background:var(--accent);color:#ffffff}.row-actions button,.secondary-button,.secondary-inline{border:1px solid var(--line-strong);background:#ffffff;color:var(--text)}.secondary-inline{padding:0 12px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.stats div{padding:9px;border:1px solid var(--line);border-radius:6px;background:#f8fafc;text-align:center}.stats span,.stats strong{display:block}.stats strong{font-size:18px;font-weight:900}.stats span{color:var(--muted);font-size:11px;font-weight:800}.save-box{display:grid;grid-gap:4px;gap:4px;padding:10px;border:1px solid #a8dfc2;border-radius:7px;background:var(--green-soft)}.save-box span,.save-box strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-box strong{color:var(--green);font-size:12px}.save-box span{color:var(--text);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.source-feedback{display:grid;grid-gap:6px;gap:6px;padding:10px;border:1px solid var(--line);border-radius:7px;background:#f8fafc}.source-feedback.working{border-color:#b7d3ff;background:var(--accent-soft)}.source-feedback.ready{border-color:#a8dfc2;background:var(--green-soft)}.source-feedback.warning{border-color:#f2d49a;background:var(--orange-soft)}.source-feedback.error{border-color:#f3b6c5;background:var(--red-soft)}.source-feedback-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.source-feedback code,.source-feedback p,.source-feedback strong,.source-feedback-counts span{min-width:0}.source-feedback strong{overflow:hidden;color:var(--text);font-size:12px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.source-feedback.ready strong{color:var(--green)}.source-feedback.warning strong{color:var(--orange)}.source-feedback.error strong{color:var(--red)}.source-feedback-head span{flex:0 0 auto;padding:3px 7px;border-radius:999px;background:rgba(95,111,128,.1);color:var(--muted);font-size:11px;font-weight:900}.source-feedback.ready .source-feedback-head span{background:rgba(32,137,93,.12);color:var(--green)}.source-feedback.warning .source-feedback-head span{background:rgba(199,119,0,.12);color:var(--orange)}.source-feedback.error .source-feedback-head span{background:rgba(201,42,75,.1);color:var(--red)}.source-feedback p{margin:0;color:var(--muted);font-size:11px;font-weight:800;line-height:16px}.source-feedback code{overflow:hidden;color:#38495d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.source-feedback-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.source-feedback-counts span{display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:6px 7px;border:1px solid rgba(184,196,210,.65);border-radius:5px;background:rgba(255,255,255,.72);color:var(--muted);font-size:11px;font-weight:800}.source-feedback-counts b{color:var(--text);font-size:13px;font-weight:900}.activity-log{min-height:78px;max-height:118px;padding:10px;overflow:auto;border-radius:6px;background:#0e1620;color:#b8c8da;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:17px}.bottom-log{display:grid;grid-template-columns:130px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:stretch;min-height:112px;padding:0 14px 14px}.bottom-log-head{display:grid;align-content:center;grid-gap:4px;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.bottom-log-head span,.bottom-log-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-log-head strong{color:var(--text);font-size:13px;font-weight:900}.bottom-log-head span{color:var(--muted);font-size:11px;font-weight:800}.bottom-log .activity-log{max-height:118px}.table-panel{display:flex;min-height:0;max-height:clamp(360px,calc(100vh - 332px),680px);overflow:hidden;flex-direction:column}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid var(--line)}table{width:100%;min-width:1180px;border-collapse:collapse;table-layout:fixed}.draft-list-scroll{flex:1 1 auto;min-height:220px;overflow:auto;overscroll-behavior:contain}th{position:-webkit-sticky;position:sticky;top:0;z-index:1;height:38px;padding:0 10px;border-bottom:1px solid var(--line-strong);background:#f8fafc;color:var(--muted);font-size:11px;font-weight:900;text-align:left}td{padding:10px;border-bottom:1px solid #edf1f5;vertical-align:top}tbody tr,td{height:116px}tr.selected td{background:#f2f7ff}td:first-child,th:first-child{width:82px}td:nth-child(2),th:nth-child(2){width:160px}td:nth-child(3),th:nth-child(3){width:155px}td:nth-child(4),th:nth-child(4){width:150px}td:nth-child(5),th:nth-child(5){width:230px}td:nth-child(6),td:nth-child(7),th:nth-child(6),th:nth-child(7){width:150px}td:last-child,th:last-child{position:-webkit-sticky;position:sticky;right:0;width:108px;border-left:1px solid #edf1f5;background:var(--panel);box-shadow:-8px 0 12px rgba(244,246,248,.86);text-align:center}th:last-child{z-index:3;background:#f8fafc}td:last-child{z-index:2}tr.selected td:last-child{background:#f2f7ff}td small,td span,td strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td strong{font-size:13px;font-weight:900}td small,td span{color:var(--muted);font-size:11px;font-weight:700}.product-id-cell,.status-stack{display:grid;min-width:0}.product-id-cell{gap:4px}.status-stack{gap:5px;align-content:start}.status-stack span{display:inline-flex;width:-moz-fit-content;width:fit-content;max-width:100%;padding:4px 7px;border-radius:999px;background:rgba(95,111,128,.1);color:var(--muted);font-size:11px;font-weight:900}.status-stack small{line-height:15px;white-space:normal}.status-stack.ready span{background:rgba(32,137,93,.12);color:var(--green)}.status-stack.warning span,.status-stack.working span{background:rgba(199,119,0,.12);color:var(--orange)}.status-stack.blocked span{background:rgba(201,42,75,.1);color:var(--red)}.status-stack.working span{color:#0b5ed7;background:var(--accent-soft)}.image-strip{display:inline-grid;width:58px}.image-strip-button{position:relative;width:58px;height:76px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#edf1f5;cursor:pointer}.image-strip-button:focus-visible{border-color:var(--accent);outline:2px solid rgba(13,110,253,.22);outline-offset:2px}.image-strip-button img{display:block;width:100%;height:100%;object-fit:cover}.image-strip-button span{position:absolute;right:4px;bottom:4px;min-width:26px;height:20px;padding:0 6px;border-radius:999px;background:rgba(16,24,32,.78);color:#ffffff;font-size:11px;font-weight:900;line-height:20px}.empty-thumb{width:58px;height:76px;border:1px solid var(--line);border-radius:6px;background:#edf1f5;display:grid;place-items:center;color:var(--muted);font-size:11px;font-weight:900}.status-action-button{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.status-action-button:focus-visible{border-radius:7px;outline:2px solid rgba(13,110,253,.24);outline-offset:3px}.image-plan-summary{display:grid;grid-gap:3px;gap:3px;min-width:0}.image-plan-summary span{width:-moz-fit-content;width:fit-content;max-width:100%;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:900}.image-plan-summary span.ready{background:var(--green-soft);color:var(--green)}.image-plan-summary span.warning{background:var(--orange-soft);color:var(--orange)}.candidate-preview{display:grid;grid-gap:5px;gap:5px;min-width:0}.candidate-preview small,.candidate-preview strong,.candidate-preview-grid span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-preview strong{color:var(--text);font-size:12px;line-height:17px;font-weight:900}.candidate-preview small{line-height:15px}.candidate-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:5px;gap:5px}.candidate-preview-grid span{padding:4px 6px;border-radius:5px;background:#f8fafc;color:var(--muted);font-size:10px;font-weight:900}.candidate-preview.ready small{color:var(--green)}.candidate-preview.warning small{color:var(--orange)}.candidate-preview.idle strong{color:var(--muted)}.planner-modal-layer{position:fixed;inset:0;z-index:34;display:grid;place-items:center;padding:28px}.planner-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(12,18,26,.56)}.planner-modal-shell{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1180px,calc(100vw - 48px));max-height:calc(100vh - 56px);overflow:hidden;border:1px solid rgba(255,255,255,.26);border-radius:8px;background:#ffffff;box-shadow:0 24px 70px rgba(7,12,18,.34)}.planner-modal-shell.category-confirm-modal{width:min(760px,calc(100vw - 48px))}.planner-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);background:#ffffff}.planner-modal-head div{display:grid;min-width:0;grid-gap:2px;gap:2px}.planner-modal-head span,.planner-modal-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-modal-head strong{color:var(--text);font-size:13px;font-weight:900}.planner-modal-head span{color:var(--muted);font-size:12px;font-weight:800}.planner-modal-head button{min-height:30px;padding:0 11px;border:1px solid var(--line-strong);border-radius:5px;background:#ffffff;color:var(--text);font-size:12px;font-weight:900}.planner-modal-body{min-height:0;overflow:auto;padding:12px;background:#fbfcfe}.planner-modal-body .image-planner-grid{max-height:none}.planning-section{min-width:0;border:1px solid var(--line);border-radius:8px;background:#ffffff}.planning-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}.planning-section-title h3,.planning-section-title p{margin:0}.planning-section-title h3{font-size:13px;line-height:18px;font-weight:900}.planning-section-title p{color:var(--muted);font-size:11px;font-weight:800;line-height:16px}.planning-section-title>span{flex:0 0 auto;padding:3px 7px;border-radius:999px;background:rgba(13,110,253,.1);color:var(--accent);font-size:11px;font-weight:900}.planning-title-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.planning-title-actions span{color:var(--muted);font-size:11px;font-weight:900;white-space:nowrap}.planning-title-actions button{min-height:28px;padding:0 10px;border:1px solid var(--line-strong);border-radius:5px;background:#ffffff;color:var(--text);font-size:11px;font-weight:900}.planning-title-actions button:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.image-plan-review{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px;padding:10px 10px 0}.image-plan-review>div{display:grid;grid-gap:4px;gap:4px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:7px;background:#f8fafc}.image-plan-review span,.image-plan-review strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-plan-review strong{color:var(--text);font-size:11px;font-weight:900}.image-plan-review span{color:var(--muted);font-size:11px;font-weight:800}.image-plan-review .derived-source-row.ready{border-color:#a8dfc2;background:var(--green-soft)}.image-plan-review .derived-source-row.empty{border-color:#f2d49a;background:var(--orange-soft)}.derived-source-row{position:relative;padding-right:44px}.derived-source-row button{position:absolute;right:6px;bottom:6px;min-height:22px;padding:0 6px;border:1px solid rgba(184,196,210,.72);border-radius:5px;background:rgba(255,255,255,.86);color:var(--muted);font-size:10px;font-weight:900}.derived-assets-panel{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:8px;gap:8px;padding:10px 10px 0}.derived-assets-panel figure{display:grid;grid-gap:6px;gap:6px;margin:0;padding:8px;border:1px solid #b9dfc8;border-radius:7px;background:var(--green-soft)}.derived-assets-panel img{width:100%;aspect-ratio:1/1;border-radius:6px;object-fit:cover;background:#ffffff}.derived-assets-panel figcaption,.derived-issues p{min-width:0;margin:0;overflow:hidden;color:var(--muted);font-size:11px;font-weight:900;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.derived-issues{display:grid;grid-gap:4px;gap:4px;align-content:start;padding:8px;border:1px solid #f4c3c3;border-radius:7px;background:var(--red-soft)}.image-planner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:8px;gap:8px;max-height:430px;padding:10px;overflow:auto}.image-planner-grid article{display:grid;grid-gap:7px;gap:7px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:7px;background:#ffffff}.image-planner-grid article.main-image{border-color:#9fc7ff;background:#f6faff}.planner-thumb{position:relative;width:100%;padding:0;aspect-ratio:3/4;overflow:hidden;border:0;border-radius:6px;background:#edf2f7;cursor:zoom-in;text-align:left}.planner-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.planner-thumb img{display:block;width:100%;height:100%;object-fit:cover}.planner-thumb span{position:absolute;top:6px;left:6px;display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:rgba(16,24,32,.78);color:#ffffff;font-size:11px;font-weight:900}.image-role-badges{display:flex;flex-wrap:wrap;gap:4px;min-height:22px;overflow:hidden}.image-role-badges span{display:inline-flex;align-items:center;max-width:100%;height:20px;padding:0 6px;border-radius:999px;background:rgba(95,111,128,.1);color:var(--muted);font-size:10px;font-weight:900}.image-role-badges span:first-child{background:var(--accent-soft);color:#0b5ed7}.image-planner-grid article>strong{min-width:0;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.image-order-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.image-order-actions button{min-height:28px;border:1px solid var(--line-strong);border-radius:5px;background:#ffffff;color:var(--text);font-size:11px;font-weight:900}.derived-role-radios{display:grid;grid-gap:5px;gap:5px}.derived-role-radios label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:900}.image-preview-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:30px}.image-preview-backdrop{position:absolute;inset:0;border:0;background:rgba(12,18,26,.64);cursor:zoom-out}.image-preview-panel{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;width:min(960px,100%);max-height:calc(100vh - 60px);overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#ffffff;box-shadow:0 24px 70px rgba(7,12,18,.34)}.image-preview-actions,.image-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px}.image-preview-head{border-bottom:1px solid var(--line)}.image-preview-head div{display:grid;min-width:0;grid-gap:2px;gap:2px}.image-preview-head span,.image-preview-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-preview-head strong{color:var(--text);font-size:13px;font-weight:900}.image-preview-head span{color:var(--muted);font-size:11px;font-weight:800}.image-preview-actions button,.image-preview-head button{min-height:30px;padding:0 11px;border:1px solid var(--line-strong);border-radius:5px;background:#ffffff;color:var(--text);font-size:12px;font-weight:900}.image-preview-body{min-height:0;padding:12px;background:#111827}.image-preview-body img{display:block;width:100%;height:min(68vh,680px);object-fit:contain}.image-preview-actions{justify-content:flex-end;border-top:1px solid var(--line)}.image-preview-derived{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 12px;border-top:1px solid #edf1f5}.image-preview-derived button{min-height:28px;padding:0 10px;border:1px solid var(--line-strong);border-radius:5px;background:#ffffff;color:var(--text);font-size:11px;font-weight:900}.image-preview-derived button.selected{border-color:#72b895;background:var(--green-soft);color:var(--green)}.category-candidate-list{display:grid;grid-gap:8px;gap:8px;padding:10px}.category-candidate-list button{display:grid;grid-gap:4px;gap:4px;width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:#ffffff;color:var(--text);text-align:left}.category-candidate-list button.selected{border-color:#72b895;background:var(--green-soft)}.category-candidate-list span,.category-candidate-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-candidate-list strong{font-size:12px}.category-candidate-list span,.empty-planning-copy{color:var(--muted);font-size:11px;font-weight:800}.empty-planning-copy{margin:0;padding:12px}.submit-candidate-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px;padding:0 10px 10px}.submit-candidate-summary span{min-width:0;padding:7px;border-radius:6px;background:#f8fafc;color:var(--muted);font-size:11px;font-weight:900;text-align:center}.row-status{display:inline-flex;width:max-content;align-items:center;height:24px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:900}.row-status.ready{background:var(--accent-soft);color:#0b5ed7}.row-status.analyzing,.row-status.deriving,.row-status.hooking,.row-status.planning{background:var(--orange-soft);color:var(--orange)}.row-status.analyzed,.row-status.hook-ready{background:var(--green-soft);color:var(--green)}.row-status.blocked,.row-status.failed{background:var(--red-soft);color:var(--red)}.row-actions{justify-content:center;flex-wrap:wrap;gap:6px}.row-actions button{min-width:48px;min-height:28px;padding:0 8px}.empty-cell{height:180px;color:var(--muted);font-size:13px;font-weight:800;text-align:center;vertical-align:middle}label{display:grid;grid-gap:5px;gap:5px;min-width:0}label span{color:var(--muted);font-size:11px;font-weight:800}input,select{width:100%;min-width:0;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--text);font-size:12px;font-weight:700}.modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px}.modal-backdrop{position:absolute;inset:0;border:0;background:rgba(8,14,22,.52);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.settings-dialog{position:relative;z-index:1;width:min(760px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto;border:1px solid var(--line);border-radius:10px;background:#ffffff;box-shadow:0 22px 70px rgba(8,14,22,.28)}.settings-dialog header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line);background:#fbfdff}.settings-dialog h2,.settings-dialog p{margin:0}.settings-dialog h2{font-size:16px;font-weight:900}.settings-dialog p{color:var(--muted);font-size:12px;font-weight:700}.settings-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:8px}.settings-actions button,.settings-dialog header button{height:34px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:#ffffff;font-size:12px;font-weight:900}.settings-actions .primary-action{border-color:#0b5ed7;background:var(--accent);color:#ffffff}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;padding:16px 18px 18px}.ai-test-box{display:grid;grid-gap:9px;gap:9px;margin:0 18px 14px;padding:12px;border:1px solid #f3b6c5;border-radius:8px;background:var(--red-soft)}.ai-test-box.passed{border-color:#a8dfc2;background:var(--green-soft)}.ai-test-box code,.ai-test-box dd,.ai-test-box dt,.ai-test-box span,.ai-test-box strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.ai-test-box span,.ai-test-box strong{display:block}.ai-test-box strong{color:var(--red);font-size:12px;font-weight:900}.ai-test-box.passed strong{color:var(--green)}.ai-test-box span{margin-top:2px;color:var(--text);font-size:11px;font-weight:700;line-height:16px}.ai-test-box dl{display:grid;grid-template-columns:72px minmax(0,1fr);grid-gap:4px 8px;gap:4px 8px;margin:0}.ai-test-box dd,.ai-test-box dt{margin:0;font-size:11px;line-height:16px;white-space:nowrap}.ai-test-box dt{color:var(--muted);font-weight:900}.ai-test-box dd{color:var(--text);font-weight:700}.ai-test-box code{padding:6px;border-radius:6px;background:rgba(255,255,255,.72);color:#38495d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;white-space:nowrap}.settings-meta{display:grid;grid-gap:4px;gap:4px;padding:0 18px 18px}.settings-meta code,.settings-meta span,.settings-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-meta strong{color:var(--text);font-size:12px;font-weight:900}.settings-meta code,.settings-meta span{color:var(--muted);font-size:11px}.settings-meta code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.settings-modal-page{position:fixed;inset:0;z-index:40;display:grid;place-items:center;min-height:100vh;padding:28px;overflow:hidden}.settings-modal-backdrop{position:fixed;inset:0;padding:0;border:0;background:rgba(16,24,32,.48)}button.settings-modal-backdrop{cursor:pointer}.settings-modal-shell{position:relative;z-index:1;display:grid;grid-gap:14px;gap:14px;width:min(1180px,100%);max-height:calc(100vh - 56px);overflow:auto;padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--workspace);box-shadow:0 24px 80px rgba(16,24,32,.28)}.settings-nested-modal{position:fixed;inset:0;z-index:2;display:grid;place-items:center;padding:24px}.settings-nested-modal .settings-editor-panel{position:relative;z-index:1;width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 80px rgba(16,24,32,.32)}.settings-editor-panel,.settings-list-panel,.settings-page-header,.settings-provider-card,.settings-section,.settings-status,.settings-test-box{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 1px 2px rgba(16,24,32,.04)}.settings-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px}.settings-editor-panel h2,.settings-editor-panel p,.settings-list-panel h2,.settings-list-panel p,.settings-page-header h1,.settings-page-header p,.settings-provider-card h2,.settings-provider-card p,.settings-section-title h2,.settings-section-title p{margin:0}.settings-page-header h1{font-size:22px;line-height:28px;font-weight:900}.settings-page-header .eyebrow{margin-bottom:4px;color:var(--accent);font-size:11px;font-weight:900}.settings-page-header p{max-width:700px;color:var(--muted);font-size:12px;font-weight:700;line-height:18px}.settings-page-actions,.settings-provider-actions,.settings-provider-switch{display:flex;flex-wrap:wrap;gap:8px}.settings-page-actions{justify-content:flex-end}.settings-page-actions a,.settings-page-actions button,.settings-provider-actions button,.settings-provider-switch button{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:#ffffff;color:var(--text);font-size:12px;font-weight:900;text-decoration:none}.settings-page-actions .primary-action{border-color:#0b5ed7;background:var(--accent);color:#ffffff}.settings-section{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px}.settings-section-title{display:grid;grid-gap:4px;gap:4px;min-width:0}.settings-editor-panel h2,.settings-list-panel h2,.settings-provider-card h2,.settings-section-title h2{font-size:15px;font-weight:900}.settings-editor-panel p,.settings-list-panel p,.settings-provider-card p,.settings-section-title p{min-width:0;overflow:hidden;color:var(--muted);font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.settings-provider-switch button.active{border-color:var(--accent);background:var(--accent-soft);color:#0b5ed7}.settings-providers-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.settings-provider-card{display:grid;grid-gap:14px;gap:14px;padding:16px}.settings-provider-card.active{border-color:#8bbcff}.settings-provider-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-editor-panel,.settings-list-panel{display:grid;grid-gap:14px;gap:14px;padding:16px}.settings-editor-actions,.settings-editor-panel header,.settings-list-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-ai-table{min-width:0;overflow:auto;border:1px solid var(--line);border-radius:8px}.settings-ai-table table{width:100%;min-width:880px;border-collapse:collapse}.settings-ai-table td,.settings-ai-table th{padding:10px 12px;border-bottom:1px solid var(--line);font-size:12px;text-align:left;vertical-align:middle}.settings-ai-table th{background:#f8fafc;color:var(--muted);font-weight:900}.settings-ai-table td{color:var(--text);font-weight:700}.settings-ai-table tr:last-child td{border-bottom:0}.settings-ai-table tr.active td{background:var(--accent-soft)}.settings-ai-table code,.settings-ai-table span,.settings-ai-table strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-ai-table strong{font-size:13px;font-weight:900}.settings-ai-table span{color:#0b5ed7;font-size:11px;font-weight:900}.settings-ai-table code{max-width:280px;color:#38495d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.settings-editor-actions,.settings-row-actions{display:flex;flex-wrap:wrap;gap:8px}.settings-editor-actions button,.settings-row-actions button{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#ffffff;color:var(--text);font-size:12px;font-weight:900}.settings-editor-actions .primary-action{border-color:#0b5ed7;background:var(--accent);color:#ffffff}.settings-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.settings-form-grid.single{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-form-wide{grid-column:1/-1}.settings-detail-list{display:grid;grid-gap:10px;gap:10px}.settings-empty-copy{margin:0;padding:12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:12px;font-weight:700}.settings-detail-row{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(120px,1fr) minmax(180px,1.4fr) minmax(180px,1.4fr) minmax(180px,1.2fr) auto;grid-gap:10px;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.settings-detail-row.template{grid-template-columns:120px minmax(120px,1fr) repeat(2,minmax(100px,1fr)) auto}.setting-file-field{display:grid;grid-gap:6px;gap:6px;min-width:0;font-size:12px;font-weight:800;color:var(--muted)}.setting-file-field input{min-width:0;color:var(--text);font-size:12px}.setting-file-field small{overflow:hidden;color:#38495d;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.settings-detail-row button,.settings-list-panel>header>button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#ffffff;color:var(--text);font-size:12px;font-weight:900}.settings-test-box{display:grid;grid-gap:8px;gap:8px;padding:14px;border-color:#f3b6c5;background:var(--red-soft)}.settings-test-box.passed{border-color:#a8dfc2;background:var(--green-soft)}.settings-test-box strong{color:var(--red);font-size:13px;font-weight:900}.settings-test-box.passed strong{color:var(--green)}.settings-test-box span{color:var(--text);font-size:12px;font-weight:700;line-height:18px}.settings-test-box dl{display:grid;grid-template-columns:88px minmax(0,1fr);grid-gap:4px 10px;gap:4px 10px;margin:0}.settings-test-box dd,.settings-test-box dt{min-width:0;margin:0;overflow:hidden;font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.settings-test-box dt{color:var(--muted);font-weight:900}.settings-test-box dd{color:var(--text);font-weight:700}.settings-test-box code{min-width:0;overflow:hidden;padding:7px;border-radius:6px;background:rgba(255,255,255,.72);color:#38495d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.settings-validation-box{display:grid;grid-gap:8px;gap:8px;padding:12px 14px;border:1px solid #a8dfc2;border-radius:8px;background:var(--green-soft)}.settings-validation-box.blocked{border-color:#f3b6c5;background:var(--red-soft)}.settings-validation-box.warning{border-color:#f2d49a;background:var(--orange-soft)}.settings-validation-box strong{color:var(--green);font-size:13px;font-weight:900}.settings-validation-box.blocked strong{color:var(--red)}.settings-validation-box.warning strong{color:var(--orange)}.settings-validation-box div{display:grid;grid-gap:5px;gap:5px}.settings-validation-box p{margin:0;color:var(--text);font-size:12px;font-weight:800;line-height:17px}.settings-validation-box p[data-severity=blocker]{color:var(--red)}.settings-validation-box p[data-severity=warning]{color:var(--orange)}.settings-validation-box p[data-severity=passed]{color:var(--green)}.official-options-status,.official-page-status{display:grid;grid-gap:12px;gap:12px}.official-options-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.official-page-status .official-options-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.official-options-list span,.official-options-metrics span{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.72)}.official-options-list b,.official-options-list small,.official-options-metrics b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.official-options-list b,.official-options-metrics b{color:var(--text);font-size:13px;font-weight:900}.official-options-metrics span{color:var(--muted);font-size:11px;font-weight:800}.official-options-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:8px;gap:8px}.official-options-list small,.official-options-status>small,.official-page-status>small{color:var(--muted);font-size:11px;font-weight:700}.official-page-summary{margin-top:4px;color:var(--text)!important;font-weight:800!important}.settings-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.settings-status span,.settings-status strong{min-width:0;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.settings-status strong{font-weight:900}.settings-status span{color:var(--muted);font-weight:700}@media (max-width:900px){body,html{min-width:0;overflow-x:hidden}.app-shell{height:auto;min-height:100vh}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{width:100%;flex-wrap:wrap}.topbar-actions strong{max-width:100%}.flow-strip{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 10px 0}.directory-toolbar{padding:10px 10px 0}.directory-main,.directory-toolbar{grid-template-columns:minmax(0,1fr)}.directory-state{max-width:100%;width:-moz-fit-content;width:fit-content}.directory-actions,.directory-picker-actions{flex-wrap:wrap}.directory-actions button{flex:1 1 132px}.directory-defaults{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.directory-defaults label:last-child{grid-column:1/-1}.directory-metrics,.directory-toolbar .source-feedback{grid-column:auto;grid-row:auto}.directory-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workbench{grid-template-columns:minmax(0,1fr);padding:10px}.table-panel{min-height:340px;max-height:560px;overflow:hidden}.panel-title{align-items:flex-start;flex-direction:column}.planner-modal-layer{padding:12px}.planner-modal-shell,.planner-modal-shell.category-confirm-modal{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.image-plan-review{grid-template-columns:repeat(2,minmax(0,1fr))}table{min-width:900px}.settings-grid{grid-template-columns:minmax(0,1fr)}.settings-modal-page,.settings-nested-modal{align-items:start;padding:10px}.settings-modal-shell{padding:12px}.settings-modal-shell,.settings-nested-modal .settings-editor-panel{max-height:calc(100vh - 20px)}.settings-editor-actions,.settings-editor-panel header,.settings-list-panel header,.settings-page-header,.settings-provider-card header,.settings-section,.settings-status{align-items:stretch;flex-direction:column}.bottom-log,.settings-detail-row,.settings-detail-row.template,.settings-form-grid,.settings-form-grid.single,.settings-providers-grid{grid-template-columns:minmax(0,1fr)}.bottom-log{padding:0 10px 10px}}@media (max-width:520px){.flow-strip{grid-template-columns:minmax(0,1fr)}.topbar-actions{align-items:stretch}.topbar-actions .icon-button,.topbar-actions button{flex:1 1 96px}.directory-defaults{grid-template-columns:minmax(0,1fr)}.directory-picker-actions button{flex:1 1 132px;width:100%}.directory-defaults label:last-child{grid-column:auto}.image-plan-review{grid-template-columns:minmax(0,1fr)}.modal{padding:14px}.settings-dialog{width:min(100%,calc(100vw - 28px))}.settings-dialog header{align-items:flex-start;flex-direction:column;gap:10px}.settings-actions{width:100%;justify-content:stretch}.settings-actions button{flex:1 1 96px}}