:root{color:#17201b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f5f6f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,textarea,input{font:inherit}.app-shell{min-height:100vh;padding:28px}.workspace{grid-template-columns:minmax(340px,.95fr) minmax(420px,1.05fr);gap:18px;max-width:1280px;margin:0 auto;display:grid}.panel{background:#fff;border:1px solid #d9ded5;border-radius:8px;box-shadow:0 14px 44px #26332614}.input-panel,.result-panel{padding:22px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.eyebrow{color:#647264;letter-spacing:0;margin:0 0 5px;font-size:13px;font-weight:700}h1{letter-spacing:0;margin:0;font-size:clamp(28px,5vw,44px);line-height:1.04}.privacy-badge,.ghost-button{border-radius:6px;align-items:center;gap:7px;display:inline-flex}.privacy-badge{color:#255d3b;background:#e6f3ea;border:1px solid #c7e2ce;flex:none;padding:8px 10px;font-size:13px;font-weight:700}.upload-zone{color:#33433a;cursor:pointer;text-align:center;background:#f9faf7;border:1px dashed #9eab9d;border-radius:8px;place-items:center;min-height:150px;margin-bottom:18px;padding:22px;display:grid}.drop-zone{color:#6d786e;cursor:pointer;background:#fff;border:1px solid #d8ddd4;border-radius:8px;place-items:center;min-height:42px;margin:-8px 0 18px;display:grid}.upload-zone,.drop-zone{position:relative}.upload-zone input,.drop-zone input{opacity:0;pointer-events:none;position:absolute}.upload-zone span{margin-top:10px;font-weight:800}.upload-zone small{color:#6d786e;overflow-wrap:anywhere;margin-top:4px}.drop-zone small{color:#6d786e;font-size:13px;font-weight:700}.upload-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin-top:18px;display:grid}.upload-actions button{color:#255d3b;cursor:pointer;background:#fff;border:1px solid #cfd8cd;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:46px;font-weight:800;display:inline-flex}.textarea-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.secondary-actions{justify-content:space-between;gap:10px;margin-bottom:14px;display:flex}.action-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.segmented-control{background:#f7f8f5;border:1px solid #d8ddd4;border-radius:6px;grid-template-columns:1fr 1fr;display:inline-grid;overflow:hidden}.segmented-control button{color:#536057;cursor:pointer;background:0 0;border:0;min-width:58px;min-height:38px;font-weight:800}.segmented-control button.active{color:#fff;background:#1f5a3b}.textarea-row label{font-size:14px;font-weight:800}.primary-button,.ghost-button{color:#33433a;cursor:pointer;background:#fff;border:1px solid #d8ddd4;padding:7px 9px}.icon-button{color:#33433a;cursor:pointer;background:#fff;border:1px solid #d8ddd4;border-radius:6px;place-items:center;width:36px;height:36px;display:inline-grid}.primary-button{color:#fff;background:#1f5a3b;border-color:#1f5a3b;border-radius:6px;align-items:center;gap:8px;min-height:40px;font-weight:800;display:inline-flex}.primary-button:disabled{cursor:not-allowed;opacity:.55}.source-pill{color:#536057;background:#f4f6f2;border:1px solid #d8ddd4;border-radius:999px;flex:none;padding:7px 10px;font-size:13px;font-weight:800}.image-review{background:#f8f9f6;border:1px solid #d9ded5;border-radius:8px;margin-bottom:18px;overflow:hidden}.image-review-heading{border-bottom:1px solid #e1e5de;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.image-review-heading span{color:#33433a;font-size:14px;font-weight:800}.image-review-heading small{color:#6d786e}.image-list{gap:12px;padding:12px;display:grid}.image-card{background:#fff;border:1px solid #e1e5de;border-radius:8px;overflow:hidden}.image-toolbar{border-bottom:1px solid #e1e5de;justify-content:center;align-items:center;gap:12px;padding:9px;display:flex}.image-toolbar span,.image-toolbar strong{color:#536057;text-align:center;min-width:44px;font-size:13px;font-weight:800}.image-card img{object-fit:contain;background:#fff;width:100%;max-height:360px;display:block}.image-card small{color:#6d786e;overflow-wrap:anywhere;border-top:1px solid #eef1ec;padding:8px 10px;display:block}textarea{resize:vertical;color:#17201b;background:#fff;border:1px solid #cfd6cc;border-radius:8px;width:100%;min-height:310px;padding:13px;line-height:1.55}textarea:focus,.drop-zone:focus-within,.upload-zone:focus-within{outline-offset:2px;outline:3px solid #a7cdb4}.segmented-control button:focus-visible{outline-offset:2px;outline:3px solid #a7cdb4}.primary-button:focus-visible{outline-offset:2px;outline:3px solid #a7cdb4}.icon-button:focus-visible{outline-offset:2px;outline:3px solid #a7cdb4}.ghost-button:focus-visible{outline-offset:2px;outline:3px solid #a7cdb4}.upload-actions button:focus-visible{outline-offset:2px;outline:3px solid #a7cdb4}.notice{color:#536057;background:#f7f8f5;border:1px solid #e0e4dc;border-radius:8px;align-items:flex-start;gap:9px;margin-top:12px;padding:10px 12px;font-size:14px;line-height:1.45;display:flex}.notice.error{color:#8d251f;background:#fff1ef;border-color:#f0c9c5}.notice.warning{color:#78500a;background:#fff8e8;border-color:#ead9a9}.notice.trace{color:#294b67;background:#edf6fb;border-color:#cae1ec}.summary-grid{grid-template-columns:1.4fr .8fr .8fr;gap:12px;margin-bottom:18px;display:grid}.metric{background:#fbfcf9;border:1px solid #d9ded5;border-radius:8px;min-width:0;padding:16px}.metric.primary{color:#fff;background:#1f5a3b;border-color:#1f5a3b}.metric span{color:inherit;opacity:.78;margin-bottom:9px;font-size:13px;font-weight:800;display:block}.metric strong{overflow-wrap:anywhere;font-size:clamp(22px,4vw,34px);line-height:1.05;display:block}.table-wrap{border:1px solid #d9ded5;border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:700px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e6e9e2;padding:13px 14px}th{color:#516054;background:#f8f9f6;font-size:13px}td:nth-child(2){white-space:nowrap;font-weight:800}tr:last-child td{border-bottom:0}.confidence{border-radius:999px;justify-content:center;min-width:32px;padding:4px 8px;font-size:12px;font-weight:800;display:inline-flex}.confidence.high{color:#1d6a41;background:#e4f3e9}.confidence.medium{color:#78500a;background:#fff1c6}.confidence.low{color:#86322a;background:#ffe2de}.empty-state{color:#6a756b;text-align:center;border:1px dashed #c9d0c6;border-radius:8px;place-items:center;min-height:340px;padding:24px;display:grid}.empty-state p{max-width:320px;margin:12px 0 0;line-height:1.5}.warning-list{margin-top:6px}@media (max-width:920px){.app-shell{padding:10px}.workspace{grid-template-columns:1fr;gap:12px}.input-panel,.result-panel{padding:16px}.upload-zone{min-height:170px;padding:24px 16px}.drop-zone{display:none}.upload-zone span{font-size:20px}.upload-actions{grid-template-columns:1fr}.upload-actions button{min-height:52px}.primary-button,.segmented-control button{min-height:48px}.primary-button{justify-content:center;width:100%}.summary-grid{grid-template-columns:1fr;gap:10px}.panel-heading{flex-direction:column;gap:10px}.privacy-badge{align-self:flex-start}.action-row{flex-direction:column;align-items:stretch}.segmented-control{width:100%}.source-pill{align-self:flex-start}.secondary-actions{flex-direction:column}.secondary-actions .ghost-button{justify-content:center;min-height:44px}textarea{min-height:190px}}@media (max-width:640px){h1{font-size:34px}.metric{padding:14px}.metric.primary strong{font-size:32px}.table-wrap{border:0;overflow:visible}table,thead,tbody,tr,td{width:100%;min-width:0;display:block}thead{display:none}tr{background:#fff;border:1px solid #d9ded5;border-radius:8px;margin-bottom:10px;overflow:hidden}td{border-bottom:1px solid #e6e9e2;grid-template-columns:78px minmax(0,1fr);gap:10px;padding:11px 12px;display:grid}td:before{content:attr(data-label);color:#647264;font-size:13px;font-weight:800}td:nth-child(2){white-space:normal}.empty-state{min-height:220px}}
