: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;height:100dvh;min-height:0;overflow:hidden}.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}.helper-status-pill{display:inline-flex;align-items:center;gap:6px;min-width:116px;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}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}.helper-status-pill.updating{border-color:rgba(255,196,107,.5);background:rgba(255,196,107,.16);color:#ffe0aa}.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;grid-gap:10px;gap:10px;align-items:stretch;padding:12px 14px 0}.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-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-picker-actions .primary-action{border-color:#0b5ed7;background:var(--accent);color:#ffffff}.directory-metrics{display:grid;grid-column:1/-1;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;height:100%;min-height:0;overflow:hidden;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)}.activity-log,.save-box span{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.activity-log{min-height:78px;max-height:118px;padding:10px;overflow:auto;border-radius:6px;background:#0e1620;color:#b8c8da;line-height:17px}.task-activity-line{padding:5px 0;border-bottom:1px solid rgba(184,200,218,.12)}.task-activity-line>code,.task-activity-line>span{display:block}.task-activity-line>code{color:#71869d;font-size:10px}.task-activity-line.warning>span{color:#f8c46c}.task-activity-line.error>span{color:#ff8e9f}.task-activity-line.success>span{color:#70d6a7}.task-activity-line details{margin-top:3px}.task-activity-line summary{cursor:pointer;color:#8da4bc}.task-activity-line pre{max-height:160px;margin:4px 0 0;overflow:auto;color:#dbe8f5;font-size:10px;white-space:pre-wrap}.general-activity-line{color:#8da4bc}.bottom-log{display:grid;grid-template-columns:130px minmax(0,1fr);grid-template-rows:12px minmax(0,1fr);grid-gap:0 10px;gap:0 10px;align-items:stretch;min-height:96px;max-height:520px;padding:0 14px 14px}.bottom-log-resize-handle{position:relative;grid-column:1/-1;width:100%;min-height:12px;padding:0;border:0;background:transparent;cursor:ns-resize;touch-action:none}.bottom-log-resize-handle:before{position:absolute;top:5px;right:0;left:0;height:2px;border-radius:999px;background:var(--line-strong);content:"";transition:background .12s ease,box-shadow .12s ease}.bottom-log-resize-handle:focus-visible:before,.bottom-log-resize-handle:hover:before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.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,.table-panel{min-height:0;max-height:none}.table-panel{display:flex;height:100%;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:0;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}.image-strip-button em{position:absolute;top:4px;left:4px;padding:3px 5px;border-radius:5px;background:#c92a4b;box-shadow:0 2px 8px rgba(113,18,38,.28);color:#ffffff;font-size:9px;font-style:normal;font-weight:900;line-height:1}tbody tr.has-invalid-main-images>td{background:#fffafa}tbody tr.has-invalid-main-images>td:first-child{box-shadow:inset 4px 0 0 #d9485f}.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 .main-image-count{width:-moz-fit-content;width:fit-content;padding:3px 7px;border-radius:5px;font-size:12px}.image-plan-summary .main-image-count.warning{background:var(--red-soft);color:#b42318}.image-plan-summary .main-image-count.ready{background:var(--green-soft);color:var(--green)}.main-image-invalid-badge,.main-image-valid-badge{width:-moz-fit-content;width:fit-content;padding:4px 7px;border-radius:6px;font-size:11px;line-height:1.2}.main-image-invalid-badge{border:1px solid #efb2bb;background:#fff0f2;color:#b42318}.main-image-valid-badge{background:var(--green-soft);color:var(--green)}.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(1260px,calc(100vw - 48px));max-height:calc(100vh - 56px);overflow:hidden;border:1px solid rgba(255,255,255,.26);border-radius:14px;background:#ffffff;box-shadow:0 24px 70px rgba(7,12,18,.34)}.planner-modal-shell.category-confirm-modal{width:min(1080px,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}.image-plan-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;padding:12px}.image-plan-overview>div{display:grid;grid-gap:4px;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:8px}.image-plan-overview>div.warning{border-color:#efb2bb;background:#fff4f5}.image-plan-overview>div.ready{border-color:#a8dfc2;background:var(--green-soft)}.image-plan-overview>div.neutral{background:#f8fafc}.image-plan-overview strong{font-size:12px}.image-plan-overview span{color:var(--muted);font-size:11px;font-weight:800}.image-planner-subhead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px 3px}.image-planner-subhead>div{display:grid;grid-gap:2px;gap:2px}.image-planner-subhead strong{font-size:12px}.image-planner-subhead span{color:var(--muted);font-size:10px;font-weight:800}.image-planner-subhead>span{padding:4px 7px;border-radius:999px;background:var(--accent-soft);color:#0b5ed7}.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 small{min-width:0;color:#5b6472;font-size:10px;font-weight:750;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.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(5,minmax(180px,1fr));grid-gap:24px;gap:24px;max-height:430px;padding:10px 12px 14px;overflow:auto}.image-planner-grid article{position:relative;display:grid;grid-gap:7px;gap:7px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:9px;background:#ffffff;cursor:-webkit-grab;cursor:grab;transition:border-color .14s ease,box-shadow .14s ease,opacity .14s ease,transform .14s ease}.image-planner-grid article.dragging{opacity:.42;cursor:-webkit-grabbing;cursor:grabbing;transform:scale(.98)}.image-planner-grid article.drop-target{border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,110,253,.16)}.image-planner-grid article.main-image{border-color:#9fc7ff;background:#f6faff}.image-planner-grid article.invalid-main-image{border-color:#ef9a9a;background:#fff7f7}.image-planner-grid article.invalid-main-image .image-role-badges span:first-child{background:var(--red-soft);color:#b42318}.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-source-panel{margin:0 12px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}.derived-source-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}.derived-source-panel-head>div{display:grid;grid-gap:2px;gap:2px}.derived-source-panel-head strong{font-size:12px}.derived-source-panel-head span{color:var(--muted);font-size:10px;font-weight:800}.derived-source-panel-head button{min-height:28px;padding:0 10px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;font-size:11px;font-weight:900}.derived-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;padding:10px}.derived-source-grid .derived-source-row{display:grid;grid-gap:3px;gap:3px;min-height:58px;padding:8px 44px 8px 9px;border:1px solid var(--line);border-radius:7px;background:#fff}.derived-source-grid .derived-source-row.ready{border-color:#a8dfc2;background:var(--green-soft)}.derived-source-grid .derived-source-row.empty{border-color:#ead7ac;background:#fffaf0}.derived-source-grid strong{font-size:11px}.derived-source-grid small,.derived-source-grid span{color:var(--muted);font-size:10px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.derived-role-radios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:4px;gap:4px}.derived-role-radios label{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:27px;padding:0 4px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--muted);font-size:10px;font-weight:900;white-space:nowrap;cursor:pointer}.derived-role-radios input{flex:0 0 auto;width:12px;height:12px;margin:0;accent-color:var(--accent)}.three-to-four-adjust-button{min-height:30px;border:1px solid #d9485f;border-radius:6px;background:#fff4f5;color:#b42318;font-size:10px;font-weight:900;cursor:pointer}.crop-editor-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px}.crop-editor-backdrop{position:absolute;inset:0;border:0;background:rgba(7,12,18,.7)}.crop-editor-panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(1040px,calc(100vw - 40px));height:min(760px,calc(100vh - 40px));max-height:calc(100vh - 40px);overflow:hidden;border-radius:14px;background:#fff;box-shadow:0 24px 80px rgba(0,0,0,.4)}.crop-editor-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}.crop-editor-panel>header>div{display:grid;grid-gap:2px;gap:2px}.crop-editor-panel>header strong{font-size:18px}.crop-editor-panel>header span{color:var(--muted);font-size:11px;font-weight:800}.crop-editor-panel>header button{min-height:30px;border:1px solid var(--line);border-radius:6px;background:#fff;font-weight:900}.image-editor-toolbar{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;padding:12px 18px;border-bottom:1px solid var(--line);background:#f8fafc}.image-editor-toolbar button{display:grid;grid-gap:2px;gap:2px;min-height:50px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.image-editor-toolbar button.active{border-color:#377dff;background:#edf4ff;box-shadow:inset 0 0 0 1px #377dff}.image-editor-toolbar strong{font-size:12px}.image-editor-toolbar span{color:var(--muted);font-size:10px;font-weight:750}.crop-editor-content.reference-layout{display:grid;flex:1 1;grid-template-columns:minmax(280px,36%) minmax(0,64%);grid-gap:0;gap:0;min-height:0;padding:0}.image-editor-settings-panel{display:grid;align-content:start;grid-gap:22px;gap:22px;min-height:0;padding:24px;overflow-y:auto;border-right:1px solid var(--line);background:#fff}.image-editor-crop-workspace{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;grid-gap:14px;gap:14px;min-height:0;padding:24px 28px 20px;background:#fff}.image-editor-section-title{display:grid;grid-gap:4px;gap:4px}.image-editor-section-title strong{color:#172033;font-size:15px}.image-editor-section-title div>span,.image-editor-section-title>span{color:var(--muted);font-size:10px;font-weight:750}.image-editor-section-title.with-action{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.image-editor-section-title.with-action>div{display:grid;grid-gap:4px;gap:4px}.crop-title-actions button,.image-editor-section-title.with-action>button{min-height:30px;padding:0 11px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;color:#273348;font-size:10px;font-weight:850}.crop-title-actions button.primary,.image-editor-section-title.with-action>button.primary{border-color:#377dff;background:#377dff;color:#fff}.image-editor-section-title.crop-title{display:flex;align-items:center;justify-content:space-between}.image-editor-section-title.crop-title>div{display:grid;grid-gap:3px;gap:3px}.crop-title-actions{display:flex!important;grid-auto-flow:column;gap:7px!important}.image-editor-settings-panel .crop-size-inputs{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px}.image-editor-settings-panel .crop-size-inputs label{display:grid;grid-gap:7px;gap:7px;color:#445168;font-size:11px;font-weight:850}.image-editor-settings-panel .crop-size-link{align-self:end;display:grid;width:30px;height:42px;place-items:center;color:#4e5d73}.image-editor-settings-panel .crop-size-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.pixel-input{display:grid;grid-template-columns:1fr auto;align-items:center;height:42px;border:1px solid #d4dbe6;border-radius:8px;background:#fff;overflow:hidden}.pixel-input input{width:100%;height:100%;border:0;outline:0;padding:0 10px;font-size:13px;font-weight:750}.pixel-input:has(input:disabled){background:#f4f6f9}.pixel-input input:disabled{background:transparent;color:#66758a;cursor:default}.pixel-input span{padding-right:10px;color:#78869a;font-size:10px;font-weight:750}.resolution-lock-row{display:flex;align-items:center;justify-content:space-between;color:#354158;font-size:11px;font-weight:850}.resolution-lock-switch{position:relative;display:block;width:38px;height:22px;border-radius:999px;background:#377dff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}.resolution-lock-switch i{position:absolute;right:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.25)}.crop-editor-preview-column{display:grid;align-content:start;grid-gap:10px;gap:10px}.crop-original-info{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.crop-original-info>div{display:grid;grid-gap:3px;gap:3px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:#f8fafc}.crop-original-info span{color:var(--muted);font-size:10px;font-weight:800}.crop-original-info strong{font-size:12px}.crop-preview-frame{position:relative;width:auto;height:100%;max-width:100%;max-height:510px;justify-self:center;overflow:hidden;border-radius:8px;background:#111827;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.crop-preview-frame.keep-original{cursor:default}.crop-preview-frame img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.crop-preview-frame>span{position:absolute;right:8px;bottom:8px;padding:4px 7px;border-radius:5px;background:rgba(0,0,0,.68);color:#fff;font-size:10px;font-weight:900}.crop-selection-box{position:absolute;z-index:2;border:2px solid #fff;box-shadow:0 0 0 9999px rgba(7,12,18,.62),0 0 0 1px rgba(0,0,0,.28);cursor:move;touch-action:none}.crop-selection-box>strong{position:absolute;left:8px;top:8px;padding:3px 6px;border-radius:4px;background:rgba(0,0,0,.62);color:#fff;font-size:10px}.crop-grid-line{position:absolute;background:rgba(255,255,255,.48);pointer-events:none}.crop-grid-line.vertical{top:0;bottom:0;width:1px}.crop-grid-line.horizontal{left:0;right:0;height:1px}.crop-grid-line.vertical.first{left:33.333%}.crop-grid-line.vertical.second{left:66.666%}.crop-grid-line.horizontal.first{top:33.333%}.crop-grid-line.horizontal.second{top:66.666%}.crop-handle{position:absolute;z-index:3;width:16px;height:16px;min-height:0!important;padding:0!important;border:2px solid #377dff!important;border-radius:50%!important;background:#fff!important}.crop-handle.nw{left:-8px;top:-8px;cursor:nwse-resize}.crop-handle.ne{right:-8px;top:-8px;cursor:nesw-resize}.crop-handle.sw{left:-8px;bottom:-8px;cursor:nesw-resize}.crop-handle.se{right:-8px;bottom:-8px;cursor:nwse-resize}.crop-preview-hint{color:var(--muted);font-size:10px;font-weight:800;text-align:center}.crop-preview-hint.inactive{align-self:center}.crop-canvas-controls{display:grid;grid-template-columns:auto minmax(120px,260px) auto;justify-content:center;align-items:center;grid-gap:12px;gap:12px;color:#536074;font-size:10px;font-weight:850}.crop-canvas-controls input{width:100%;accent-color:#377dff}.crop-canvas-controls strong{min-width:36px;color:#253047;text-align:right}.editor-wide-error{margin:0 24px 12px;border:1px solid #f3b5bb;background:#fff1f2;color:#b42318}.image-edit-notice{margin:0;padding:9px 22px;border-top:1px solid #b9d5ff;background:#edf5ff;color:#1759b8;font-size:11px;font-weight:800}.image-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid var(--line);background:#fff}.image-editor-footer>div{display:flex;gap:10px}.image-editor-footer button{min-width:92px;min-height:38px;padding:0 16px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:#273348;font-size:12px;font-weight:850}.image-editor-footer button.primary{border-color:#377dff;background:#377dff;color:#fff}.image-editor-footer button:disabled{opacity:.55;cursor:wait}.crop-editor-load-error{margin:8px 12px 0;padding:9px 10px;border:1px solid #f3b5bb;border-radius:7px;background:#fff1f2;color:#b42318;font-size:11px;font-weight:850}.crop-editor-controls{display:grid;align-content:start;grid-gap:14px;gap:14px;padding-top:8px}.crop-editor-controls label{font-size:12px;font-weight:900}.crop-editor-controls label,.crop-mode-section{display:grid;grid-gap:8px;gap:8px}.crop-mode-section>strong{font-size:12px}.crop-mode-section>label{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:9px;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}.crop-mode-section>label.selected{border-color:var(--accent);background:var(--accent-soft)}.crop-mode-section input{width:15px;height:15px;margin:0;accent-color:var(--accent)}.crop-mode-section label>span{display:grid;grid-gap:2px;gap:2px}.crop-mode-section label small{color:var(--muted);font-size:10px;font-weight:750}.crop-size-section,.optional-crop-section{padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.crop-size-section{display:grid;grid-gap:10px;gap:10px}.crop-size-section>div:first-child{display:flex;align-items:center;gap:8px}.crop-size-section>div:first-child button{margin-left:auto}.crop-ratio-lock{padding:3px 6px;border-radius:999px;background:#e8f1ff;color:#0b5ed7;font-size:9px;font-weight:900}.crop-size-section small{color:var(--muted);font-size:10px;font-weight:800;line-height:1.4}.crop-size-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;grid-gap:8px;gap:8px}.crop-size-inputs>span{padding-bottom:9px;color:var(--muted);font-weight:900}.crop-size-link{font-size:20px}.crop-size-inputs label{gap:4px}.crop-size-inputs input{min-width:0;width:100%;height:36px;padding:0 8px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;font:inherit}.crop-result-summary{display:grid!important;grid-gap:4px!important;gap:4px!important;padding:10px;border:1px solid #b8ddc6;border-radius:7px;background:#f0faf4;color:#176b3a;font-size:10px;font-weight:850}.crop-result-summary strong{font-size:12px}.crop-editor-controls .crop-apply-error{border:1px solid #f3b5bb;background:#fff1f2;color:#b42318}.crop-editor-controls button:disabled{opacity:.55;cursor:wait}.crop-editor-controls input[type=range]{width:100%}.crop-editor-controls p{margin:0;padding:10px;border-radius:7px;background:#f6f8fa;color:var(--muted);font-size:11px;font-weight:750;line-height:1.5}.crop-editor-controls>div{display:flex;flex-wrap:wrap;gap:7px}.crop-editor-controls button{min-height:32px;padding:0 11px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;font-size:11px;font-weight:900}.crop-editor-controls button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.image-tool-panel{display:grid;grid-gap:14px;gap:14px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.crop-tool-panel.active{border-color:#377dff;background:#f2f7ff;box-shadow:inset 0 0 0 1px rgba(55,125,255,.2)}.image-tool-panel-head{display:flex!important;align-items:center;justify-content:space-between;gap:10px!important}.image-tool-panel-head>div{display:grid;grid-gap:3px;gap:3px}.image-tool-panel-head strong{font-size:14px}.image-tool-panel-head span{color:var(--muted);font-size:10px;font-weight:800}.image-tool-panel-head button{min-height:28px}.image-tool-result{display:flex!important;align-items:center;justify-content:space-between;gap:12px!important;padding:11px 12px;border:1px solid #c7d7eb;border-radius:8px;background:#fff}.image-tool-result span{color:var(--muted);font-size:10px;font-weight:800}.image-tool-result strong{color:#193a66;font-size:14px}.crop-scale-control{display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px!important;gap:10px!important}.crop-scale-control span,.crop-scale-control strong{font-size:10px}.crop-scale-control input{min-width:0}.image-tool-panel-actions{display:flex!important;justify-content:flex-end;gap:8px!important}.image-editor-actions{justify-content:flex-end;padding-top:2px}.image-editor-actions .primary{min-width:108px}.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)}.official-category-recommendations{display:grid;grid-gap:10px;gap:10px;padding:12px}.official-category-recommendations-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.official-category-recommendations-head>div{display:grid;grid-gap:2px;gap:2px}.official-category-recommendations-head span{color:var(--muted);font-size:11px}.official-category-recommendations-head>button{border:1px solid var(--line-strong);background:#ffffff}.official-category-recommendation-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.official-category-history{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border:1px solid #dfe8f2;border-radius:8px;background:#f8fbff}.official-category-history>strong{flex:0 0 auto;color:var(--muted);font-size:12px;font-weight:600}.official-category-history-list{display:flex;gap:7px;min-width:0;overflow-x:auto}.official-category-history-list button{flex:0 0 auto;padding:5px 10px;border:1px solid #cad9e8;border-radius:999px;background:#ffffff;color:var(--text);font-size:12px;white-space:nowrap}.official-category-history-list button.selected,.official-category-history-list button:hover{border-color:#72b895;background:var(--green-soft);color:#246849}.official-category-recommendation-list button{display:grid;grid-gap:5px;gap:5px;min-width:0;padding:11px;border:1px solid var(--line);border-radius:7px;background:#ffffff;color:var(--text);text-align:left}.official-category-recommendation-list button.selected{border-color:#72b895;background:var(--green-soft)}.official-category-recommendation-list span,.official-category-recommendation-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.official-category-recommendation-list strong{font-size:12px;white-space:nowrap}.official-category-recommendation-list span{color:var(--muted);font-size:11px;line-height:1.35}.official-category-tree{display:grid;grid-gap:8px;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f6faff}.official-category-tree-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.official-category-tree-head span{color:var(--muted);font-size:11px}.official-category-picker{display:grid;grid-gap:8px;gap:8px;min-width:0}.official-category-columns{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);min-height:280px;max-height:360px;overflow-x:auto;border:1px solid var(--line);border-radius:7px;background:#ffffff}.official-category-column{min-width:0;overflow-y:auto;padding:6px;border-right:1px solid var(--line)}.official-category-column:last-child{border-right:0}.official-category-column button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);text-align:left}.official-category-column button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.official-category-column button b{color:var(--muted);font-size:18px}.official-category-column button.selected,.official-category-column button:hover{border-color:var(--accent);background:var(--accent-soft)}.official-category-current-path{display:flex;align-items:baseline;gap:8px;min-width:0;color:var(--muted);font-size:11px}.official-category-current-path strong{min-width:0;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.planner-modal-shell.category-confirm-modal{border:1px solid rgba(204,220,239,.86);border-radius:18px;background:#f6f9fd;box-shadow:0 30px 90px rgba(19,35,56,.28),0 8px 24px rgba(19,35,56,.12)}.category-confirm-modal .planner-modal-body{padding:18px;background:radial-gradient(circle at 8% 0,rgba(65,132,255,.08),transparent 34%),#f6f9fd}.category-confirm-modal-head{min-height:78px;padding:15px 20px;border-bottom-color:#e2eaf3;background:linear-gradient(135deg,#ffffff,#f7faff 68%,#edf5ff)}.category-confirm-modal-head .category-confirm-modal-heading{gap:3px}.category-confirm-modal-head .category-confirm-modal-heading>span{color:#6b7f98;font-size:11px;font-weight:750;letter-spacing:.04em}.category-confirm-modal-head .category-confirm-modal-heading>strong{color:#17263a;font-size:20px;font-weight:800;letter-spacing:-.02em}.category-confirm-modal-head .category-modal-close{display:grid;place-items:center;width:36px;min-height:36px;padding:0;border-color:#d9e3ef;border-radius:50%;color:#71839a;font-size:22px;font-weight:400;line-height:1}.category-confirm-modal-head .category-modal-close:hover{border-color:#bccce0;background:#f1f6fc;color:#22354d}.category-confirmation{display:grid;grid-gap:14px;gap:14px;padding:0 0 16px;overflow:hidden;border-color:#dce6f1;border-radius:14px;box-shadow:0 8px 24px rgba(28,52,82,.06)}.category-confirmation .category-modal-intro{align-items:center;padding:17px 18px;border-bottom-color:#e7edf4;background:#ffffff}.category-confirmation .category-modal-intro>div{display:grid;grid-gap:4px;gap:4px}.category-confirmation .category-modal-intro h3{color:#1b2c42;font-size:15px;font-weight:800}.category-confirmation .category-modal-intro p{color:#76879b;font-size:12px;font-weight:500}.category-confirmation .category-modal-intro>span{padding:5px 10px;border:1px solid #b9e3cf;background:#eefaf4;color:#25835b;font-weight:700}.category-confirmation .official-category-history,.category-confirmation .official-category-recommendations,.category-confirmation .official-category-tree{margin-right:16px;margin-left:16px;border-radius:12px}.category-confirmation .official-category-history{padding:11px 13px;border-color:#d9e6f4;background:linear-gradient(90deg,#f5f9ff,#fbfdff)}.category-confirmation .official-category-history>strong{color:#526d8b;font-weight:750}.category-confirmation .official-category-history-list button{padding:6px 11px;border-color:#ccdcee;font-size:11px;font-weight:650}.category-confirmation .official-category-history-list button.selected,.category-confirmation .official-category-history-list button:hover{border-color:#64a9e9;background:#eaf5ff;color:#176aa8}.category-confirmation .official-category-recommendations{padding:15px;border:1px solid #e1e9f2;background:#ffffff}.category-confirmation .official-category-recommendations-head>div{gap:3px}.category-confirmation .official-category-recommendations-head strong,.category-confirmation .official-category-tree-head strong{color:#21354e;font-size:13px;font-weight:800}.category-confirmation .official-category-recommendations-head>button{padding:7px 11px;border-color:#c9d8ea;border-radius:8px;background:#f8fbff;color:#376691;font-size:11px;font-weight:700}.category-confirmation .official-category-recommendations-head>button:hover{border-color:#8eb4dc;background:#eef6ff}.category-confirmation .manual-category-trigger span{margin-left:3px;font-size:14px}.category-confirmation .official-category-recommendation-list button{position:relative;gap:7px;min-height:88px;padding:14px 14px 13px 45px;border-color:#dfe7f0;border-radius:10px;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.category-confirmation .official-category-recommendation-list button:before{content:attr(data-rank);position:absolute;top:13px;left:13px;display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#edf4ff;color:#3b78ba;font-size:11px;font-weight:800}.category-confirmation .official-category-recommendation-list button:hover{z-index:1;border-color:#83b4e5;box-shadow:0 8px 18px rgba(39,91,143,.11);transform:translateY(-1px)}.category-confirmation .official-category-recommendation-list button.selected{border-color:#55ab81;background:linear-gradient(145deg,#f4fcf8,#edfaf4);box-shadow:inset 0 0 0 1px rgba(85,171,129,.12)}.category-confirmation .official-category-recommendation-list button.selected:before{content:"✓";background:#dff5e9;color:#228158}.category-confirmation .official-category-recommendation-list strong{color:#243850;font-weight:750}.category-confirmation .official-category-recommendation-list span{color:#7a899c}.category-confirmation .official-category-tree{padding:15px;border-color:#dce7f2;background:#f7faff}.category-confirmation .official-category-columns{border-color:#dce5ef;border-radius:10px;box-shadow:0 4px 14px rgba(35,65,98,.05)}.category-confirmation .official-category-column button.selected,.category-confirmation .official-category-column button:hover{border-color:#8eb9e6;background:#edf6ff;color:#145f9b}.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 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){.crop-editor-content.reference-layout{grid-template-columns:minmax(0,1fr)}.image-editor-settings-panel{border-right:0;border-bottom:1px solid var(--line)}.crop-editor-panel{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}body,html{min-width:0;overflow-x:hidden}.app-shell{height:100vh;height:100dvh;min-height:0}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{width:100%;flex-wrap:wrap}.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-picker-actions{flex-wrap:wrap}.directory-metrics{grid-column:auto;grid-row:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.workbench{grid-template-columns:minmax(0,1fr);padding:10px}.table-panel{min-height:0;max-height:none;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))}.derived-source-grid{grid-template-columns:minmax(0,1fr)}.official-category-recommendation-list{grid-template-columns: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{grid-template-rows:12px auto minmax(0,1fr);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-picker-actions button{flex:1 1 132px;width:100%}.image-plan-overview,.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}}