
:root{--bg:#f5f5f0;--paper:#fff;--ink:#19362f;--muted:#6b7973;--line:#dfe5de;--accent:#12765d;--soft:#eaf4ee;--orange:#bd663f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:9px 13px;white-space:nowrap}button:hover{background:var(--soft);border-color:#91b8a6}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b5d7c7;outline-offset:2px}.primary{background:var(--accent);border-color:var(--accent);color:white}.primary:hover{background:#0e614d;color:white}.quiet{border:0;background:transparent;padding:6px 8px;color:var(--muted)}.danger{color:#ad4b39}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 30px;border-bottom:1px solid var(--line);background:#fff}.brand{display:flex;align-items:center;gap:12px}.brandmark{width:36px;height:36px;border:1.5px solid var(--accent);border-radius:7px;display:grid;place-items:center}.brandmark:after{content:"";width:16px;height:16px;border-radius:50%;background:var(--accent);box-shadow:7px -6px 0 -3px #d8b46e}h1{font-size:22px;line-height:1.2;letter-spacing:-.5px;margin:0}.eyebrow{font-size:12px;letter-spacing:1.8px;color:var(--muted);margin-bottom:4px}.sub{color:var(--muted);font-size:14px}.head-actions{display:flex;align-items:center;gap:10px}.local{font-size:14px;color:var(--accent)}.local:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:6px}.toolbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 30px;background:#fbfcf9;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.segment{display:flex;gap:3px;padding:3px;background:#ecefe9;border-radius:10px}.segment button{border:1px solid transparent;background:transparent;padding:7px 12px}.segment button[aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #1a3b2520;border-color:#dae2d9;color:var(--accent);font-weight:600}.tool-field{display:flex;align-items:center;gap:8px}.tool-field label{font-size:14px;color:var(--muted)}input[type=number]{width:74px;padding:7px;border:1px solid var(--line);border-radius:7px}select{padding:7px;border:1px solid var(--line);border-radius:7px;background:white}.toolbar .spacer{flex:1}.instruction{font-size:14px;color:var(--muted)}main{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:24px;padding:24px 30px;align-items:start}.workspace-title{display:flex;align-items:baseline;gap:10px;margin-bottom:16px}h2{font-size:17px;margin:0}.count{font:14px ui-monospace,monospace;color:var(--muted);background:#e8ece5;padding:2px 7px;border-radius:5px}.image-grid{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:16px}.empty{min-height:470px;border:1px dashed #aabeb0;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(160deg,#fff,#eef4ed);padding:35px}.empty-visual{width:160px;height:104px;position:relative;margin-bottom:28px;background:linear-gradient(135deg,#dce8cf,#99c1ad);border:7px solid white;border-radius:9px;box-shadow:0 8px 25px #28483312;transform:rotate(-5deg)}.empty-visual:after{content:"";position:absolute;width:60px;height:44px;top:23px;left:35px;border:2px solid #12765d;background:#ffffff20;box-shadow:0 0 0 5px #ffffff38}.empty h3{font-size:22px;font-weight:600;margin:0 0 8px}.empty p{color:var(--muted);margin:0 0 22px;font-size:15px}.empty .hint{font-size:13px;margin-top:16px}.drop-active{outline:3px dashed var(--accent);outline-offset:-8px}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}.card.selected{border-color:#669d85;box-shadow:0 0 0 2px #12765d18}.card-top{padding:12px 13px 8px;display:flex;align-items:flex-start;gap:8px}.filename{font-size:14px;font-weight:600;word-break:break-all;flex:1}.dimensions{font:12px ui-monospace,monospace;color:var(--muted);margin-top:3px}.image-stage{position:relative;margin:0 10px;background:#e7eae3;line-height:0;user-select:none;touch-action:none;overflow:hidden}.image-stage img{width:100%;height:auto;display:block;pointer-events:none}.image-stage svg{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.image-stage svg .roi-shape{fill:#0f8b6d18;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1px #003c2d)}.image-stage svg .selected-shape{stroke:#d6f875;fill:#d6f87518}.image-stage svg .draft{stroke:#d6f875;stroke-width:2;fill:#d6f87522;vector-effect:non-scaling-stroke}.card-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px}.card-fields label{color:var(--muted);font-size:12px;display:block}.card-fields input{width:100%;font:13px ui-monospace,monospace;padding:5px 6px;border:1px solid #e3e7e0;border-radius:5px;color:var(--ink)}.card-bottom{padding:0 12px 10px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.results{background:white;border:1px solid var(--line);border-radius:12px;position:sticky;top:94px;overflow:hidden}.results-head{padding:18px 18px 12px;display:flex;align-items:center;justify-content:space-between}.live{color:var(--accent);font-size:12px;letter-spacing:1px}.result-summary{margin:0 18px 14px;padding:13px;border-radius:8px;background:var(--soft);display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center}.swatch{width:42px;height:42px;background:repeating-linear-gradient(45deg,#d5ded4 0 6px,#e4eae0 6px 12px);border:1px solid #0000000c;border-radius:7px}.summary-values{display:flex;gap:17px;font:600 19px ui-monospace,monospace}.summary-values small{font:12px -apple-system,sans-serif;display:block;color:var(--muted);font-weight:400;margin-bottom:3px}.summary-caption{font-size:12px;color:var(--muted);margin-top:6px}.table-wrap{overflow:auto;max-height:48vh;min-height:160px}table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}th{text-align:left;color:var(--muted);font-weight:500;background:#f6f8f3;position:sticky;top:0;z-index:1;padding:10px 8px;border-bottom:1px solid var(--line)}td{padding:9px 8px;border-bottom:1px solid #edf0e9;vertical-align:top}tr.active td{background:#f0f6e9}.num{text-align:right;font-family:ui-monospace,monospace}.row-label{font-size:12px;color:var(--muted);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roi-cell{cursor:pointer;min-width:126px}.mini-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;border:1px solid #0001}.label-input{display:block;width:118px;max-width:100%;border:0;border-bottom:1px dashed #d5ddd1;background:transparent;font-size:12px;padding:3px 0;color:var(--muted)}.row-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:14px}.row-delete{font-size:18px;line-height:1;padding:3px;border:0;background:transparent;color:#89948c}.results-actions{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--line)}.results-actions .primary{flex:1}.footnote{padding:0 18px 15px;font-size:13px;color:var(--muted)}details{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding:12px 18px}details p{margin:8px 0}summary{cursor:pointer;color:var(--ink)}#messages{margin:0 0 15px}#messages:empty{display:none}.message{background:#fff4e8;border:1px solid #ebd2b9;border-radius:8px;padding:10px 14px;color:#83512c;font-size:14px;margin:5px 0;word-break:break-word}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#193c31;color:white;padding:11px 20px;border-radius:9px;font-size:14px;z-index:20;opacity:0;pointer-events:none;transition:opacity .15s;max-width:90vw}#toast.show{opacity:1}footer{padding:0 30px 20px;font-size:12px;display:flex;justify-content:space-between;color:#8a958c}.loading{color:var(--accent);font-size:14px}dialog{border:1px solid var(--line);border-radius:12px;max-width:650px;width:90vw;padding:22px}dialog::backdrop{background:#13291d66}textarea{width:100%;height:170px;font:14px ui-monospace,monospace;border:1px solid var(--line);border-radius:7px;padding:10px}body>input[type=file]{display:none}[hidden]{display:none!important}@media(min-width:1700px){main{grid-template-columns:minmax(0,1fr) 510px}.table-wrap{max-height:56vh}}@media(max-width:1100px){main{grid-template-columns:minmax(0,1fr) 390px;padding:20px;gap:18px}.image-grid{grid-template-columns:1fr}header,.toolbar{padding-left:20px;padding-right:20px}.instruction{display:none}}@media(max-width:760px){header{padding:16px;align-items:flex-start}.local{display:none}.head-actions{gap:4px}main{display:block;padding:16px}.results{position:static;margin-top:22px}.toolbar{padding:12px 16px;gap:10px;position:static}.toolbar .spacer{display:none}.image-grid{grid-template-columns:1fr}.empty{min-height:340px}.table-wrap{max-height:420px}.head-actions button{padding:7px 8px;font-size:14px}.summary-values{gap:25px}}

.head-actions{flex-wrap:wrap;justify-content:flex-end}.head-actions .local{flex-basis:100%;text-align:right}.language-field select{max-width:140px}.toolbar{gap:12px}.instruction{flex-basis:100%;order:2}.results{top:145px}.model-note{font-size:13px;line-height:1.55;color:var(--muted);padding:0 18px 14px}.summary-values{gap:12px;flex-wrap:wrap;font-size:18px}.summary-values>span{min-width:48px}.num{white-space:nowrap}th:first-child{min-width:130px}[data-i18n=emptyBody],[data-i18n=formats],[data-i18n=emptyResults]{white-space:pre-line}.empty h3{max-width:420px}.research-note{border-top:1px solid var(--line);padding-top:10px}footer{gap:16px;flex-wrap:wrap}#toast{white-space:normal}#loading{min-width:0}.results-head .live{font-size:11px}.language-field label{color:var(--ink)}@media(max-width:760px){header{flex-wrap:wrap;gap:12px}.head-actions{justify-content:flex-start;flex:1 1 100%;gap:12px}.head-actions .local{display:block;text-align:left;order:3}.toolbar{gap:10px}.instruction{display:block}.summary-values{gap:16px}.results{top:auto}.brand{min-width:140px}.language-field{flex:1}.language-field select{flex:1}footer{padding:0 16px 20px}.results-actions{flex-wrap:wrap}.results-actions .primary{min-width:130px}}
