:root{--ink:#163b39;--muted:#667c79;--brand:#087e78;--brand-dark:#05635f;--line:#dce7e4;--bg:#f3f6f3;--sand:#f2eadb;--red:#b7473e;--radius:18px;font-family:Tahoma,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,label.file-button{-webkit-tap-highlight-color:transparent}button,.file-button{cursor:pointer}button:disabled{opacity:.48;cursor:wait}button{border:0}a{color:var(--brand)}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.6;letter-spacing:-1px}h2{font-size:20px;line-height:1.8}h3{font-size:16px;line-height:1.8}p{line-height:2}small{font-size:11px}.hidden{display:none!important}.muted{color:var(--muted);font-size:12px}.topbar{height:88px;padding:0 max(24px,calc((100vw - 1440px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:bold;color:var(--ink);font-size:19px}.brand small{display:block;color:var(--muted);margin-top:5px;font-weight:normal}.mark{display:grid;place-items:center;border-radius:15px;background:var(--brand);color:white;width:46px;height:46px;font-size:28px}.top-actions,.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.version{font-size:11px;color:var(--muted);padding-left:12px}main{max-width:1488px;margin:auto;padding:30px 24px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 4px 18px #143c3603}.eyebrow{font-size:11px;letter-spacing:1px;color:var(--brand);font-weight:bold;display:block;margin-bottom:10px}.primary,.secondary,.ghost,.file-button{border-radius:10px;padding:11px 17px;line-height:1.6;font-weight:bold;font-size:12px;text-align:center;display:inline-block;text-decoration:none}.primary{background:var(--brand);color:white}.primary:hover{background:var(--brand-dark)}.secondary,.file-button{background:#e9f4f0;color:var(--brand);border:1px solid #cfe4dc}.ghost{background:transparent;color:var(--muted)}.ghost:hover{background:#f0f4f2;color:var(--ink)}input:not([type=file]):not([type=range]),select{width:100%;padding:12px;border:1px solid #cfdbd7;border-radius:9px;background:#fff;color:var(--ink);min-height:44px}input:focus,select:focus,button:focus-visible,summary:focus-visible{outline:3px solid #74c6b761;outline-offset:2px}label{display:block;font-size:12px;line-height:1.8;color:var(--muted)}label input,label select{margin-top:7px}.auth{max-width:440px;margin:6vh auto}.auth form{display:grid;gap:20px;margin-top:24px}.auth h1{font-size:27px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}.settings-grid form{display:grid;gap:18px}.host-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.host-row strong{direction:ltr}.good{color:var(--brand)}.bad{color:var(--red)}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:16px}.intro p{color:var(--muted);margin-top:4px}.pill{display:inline-block;background:#e9f4f0;color:#137469;border:1px solid #cee3da;border-radius:99px;padding:7px 13px;white-space:nowrap;font-size:11px}.workspace-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px}.articles{align-self:start;padding:20px;position:sticky;top:20px}.search{display:flex;gap:6px;margin-bottom:20px}.search input{min-width:0}.search button{padding:8px}.target{display:block;text-align:right;background:transparent;padding:15px 12px;width:100%;border-radius:10px;margin-bottom:6px;border:1px solid transparent;color:var(--ink)}.target:hover{background:#f5f8f6}.target.active{background:#eaf4ef;border-color:#b4d6c8}.target strong{display:block;font-size:13px;line-height:1.9;font-weight:normal}.target small{display:block;color:var(--muted);margin-top:8px}.pager{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:11px}.empty{text-align:center;padding:70px 20px;color:var(--muted)}.empty h2{color:var(--ink);margin:12px 0}.empty-icon{font-size:48px;color:#83aba0}.article-head{margin-bottom:20px}.article-head h2{margin:10px 0 5px}.article-head details{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}details summary{cursor:pointer;font-size:12px;color:var(--muted)}details p{margin:12px 0}details label{margin-top:12px}.slot{margin-bottom:22px}.slot-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.slot-top small{display:block;direction:ltr;text-align:right;color:var(--muted);word-break:break-all;margin-top:8px}.slot-number{color:#819e96;font-size:11px;display:block;margin-bottom:6px}.slot-status{font-size:11px;background:#f1f4f2;padding:8px 10px;border-radius:8px;white-space:nowrap}.slot-status.ready{background:#e6f3ec;color:#1f7c60}.slot-status.error{background:#ffefed;color:var(--red)}.slot-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,1fr);gap:24px}.preview{position:relative;background:#edf2ed;border:1px dashed #c6d5cd;border-radius:12px;min-height:220px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}.preview.dragover{border:2px solid var(--brand);background:#e1f2ec}.preview img{display:block;max-width:100%;max-height:500px;height:auto;object-fit:contain}.preview p{padding:28px;font-size:12px;color:var(--muted)}.image-tabs{display:flex;gap:8px;margin:10px 0}.image-tabs button{font-size:11px;padding:7px 12px}.image-tabs .active{background:var(--sand);color:var(--ink)}.controls{display:grid;gap:14px;align-content:start}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.controls .actions>*{flex:1}.range-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.range-row input{width:100%;accent-color:var(--brand);direction:ltr}.stats{display:flex;gap:14px;flex-wrap:wrap;padding:13px 0;color:var(--muted);font-size:11px}.stats strong{color:var(--ink);font-size:13px;direction:ltr;display:inline-block}.meta-description{font-size:11px;color:var(--muted);line-height:1.9;border-top:1px solid var(--line);padding-top:12px;margin-top:10px}.file-button{position:relative;overflow:hidden;margin:0}.file-button input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;margin:0}.notice{background:#e2f2e9;border:1px solid #b6d8c5;color:#24593e;border-radius:12px;padding:14px 20px;line-height:1.9;margin-bottom:22px;font-size:13px;position:sticky;top:8px;z-index:20}.notice.error{background:#fff0ed;border-color:#f0c7be;color:#9b3f32}.mapping-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.mapping-row span{word-break:break-all;font-size:12px;direction:ltr;text-align:right}#bulk-map{margin-bottom:20px}#bulk-map .actions{margin-top:20px}footer{text-align:center;padding:35px 10px 8px;color:#85968f;font-size:10px;line-height:1.9}.working{pointer-events:none;opacity:.72}button:disabled{cursor:not-allowed}@media(max-width:1050px){.workspace-grid{grid-template-columns:260px minmax(0,1fr)}.slot-body{grid-template-columns:1fr}.settings-grid{gap:24px}.intro h1{font-size:28px}}@media(max-width:760px){main{padding:20px 14px}.topbar{height:auto;min-height:78px;padding:14px;flex-wrap:wrap}.top-actions{gap:2px}.version{display:none}.brand{font-size:16px}.mark{width:40px;height:40px}.workspace-grid,.settings-grid{grid-template-columns:1fr}.articles{position:static}.articles #target-list{max-height:260px;overflow:auto}.intro{align-items:flex-start;flex-direction:column;gap:12px}.intro h1{font-size:27px}.intro p{font-size:12px}.card{padding:18px}.section-head{gap:8px}.section-head h1{font-size:24px}.slot-top{gap:8px}.slot-status{white-space:normal;max-width:120px;line-height:1.8}.two-col{gap:8px}.mapping-row{grid-template-columns:1fr;gap:5px}.actions{gap:8px}.actions>*{flex-grow:1}.preview{min-height:180px}.notice{position:relative;top:auto}.slot-body{gap:14px}h2{font-size:18px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s} .card{animation:show .2s ease-out}@keyframes show{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}
