/* 工具箱 · 小红书素材（沿用 styles.css 的色彩变量） */
.toolbox-page{background:var(--bg,#f5f3ed);min-height:100vh}
.tb-back{font-size:13px;color:var(--pri,#0f3d33);text-decoration:none;margin-right:14px;padding:6px 12px;border:1px solid var(--line,#e2ddcf);border-radius:999px;background:var(--surface,#fdfcf9)}
.tb-back:hover{border-color:var(--pri,#0f3d33)}
.tb-shell{display:grid;grid-template-columns:230px 1fr;gap:0;min-height:calc(100vh - 64px)}
.tb-apps{border-right:1px solid var(--line,#e2ddcf);padding:24px 16px;display:flex;flex-direction:column;gap:8px;background:rgba(253,252,249,.6)}
.tb-apps-kicker{font-size:11px;letter-spacing:.16em;color:var(--gold,#b89b6b);margin:0 0 8px 6px}
.tb-app{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid transparent;background:transparent;border-radius:12px;padding:10px;cursor:pointer;font:inherit;color:inherit}
.tb-app.active{background:var(--surface,#fdfcf9);border-color:var(--line,#e2ddcf);box-shadow:0 4px 14px rgba(15,61,51,.06)}
.tb-app.muted{opacity:.55;cursor:default}
.tb-app b{display:block;font-size:14px}.tb-app small{display:block;font-size:11.5px;color:var(--muted,#8c9187);margin-top:2px}
.tb-app-icon{width:34px;height:34px;border-radius:10px;background:#ff2442;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex:none}
.tb-app.muted .tb-app-icon{background:var(--soft,#e2eae5);color:var(--pri,#0f3d33)}
.tb-main{display:grid;grid-template-columns:minmax(320px,380px) 1fr;gap:24px;padding:24px 28px;align-items:start}
.tb-form{background:var(--surface,#fdfcf9);border:1px solid var(--line,#e2ddcf);border-radius:16px;padding:22px;position:sticky;top:16px}
.tb-form h1{margin:0;font-family:var(--serif);font-size:22px}
.tb-form header p{margin:6px 0 16px;color:var(--muted,#8c9187);font-size:13px;line-height:1.6}
.tb-field{display:grid;gap:7px;margin-bottom:16px}
.tb-field>span{font-size:13px;font-weight:600;color:var(--ink,#1a1c19)}
.tb-field>span small{font-weight:400;color:var(--muted,#8c9187);margin-left:6px}
.tb-field textarea,.tb-field select,.tb-must textarea{width:100%;box-sizing:border-box;border:1px solid var(--line,#e2ddcf);border-radius:10px;padding:10px 12px;font:inherit;font-size:13.5px;background:#fff;color:var(--ink,#1a1c19);resize:vertical}
.tb-field textarea:focus,.tb-field select:focus,.tb-must textarea:focus{outline:2px solid color-mix(in srgb,var(--pri,#0f3d33) 25%,transparent);border-color:var(--pri,#0f3d33)}
.tb-refs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tb-ref{position:relative;margin:0;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#eeeae1;display:flex;align-items:center;justify-content:center}
.tb-ref img{width:100%;height:100%;object-fit:cover}
.tb-ref button{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;line-height:22px;padding:0}
.tb-ref-add{aspect-ratio:1;border:1.5px dashed var(--line,#e2ddcf);border-radius:10px;background:transparent;color:var(--pri,#0f3d33);font-size:22px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.tb-ref-add small{font-size:11px;color:var(--muted,#8c9187)}
.tb-ref-add:hover{border-color:var(--pri,#0f3d33)}
.tb-must{display:grid;gap:8px}
.tb-check{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer;padding:8px 10px;border:1px solid var(--line,#e2ddcf);border-radius:10px;background:#fff}
.tb-check input{accent-color:var(--pri,#0f3d33);width:16px;height:16px}
.tb-primary{width:100%;border:0;border-radius:12px;background:var(--pri,#0f3d33);color:#fff;font:inherit;font-weight:600;font-size:14.5px;padding:12px 16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.tb-primary:hover{background:var(--pri-deep,#082b23)}
.tb-primary:disabled{opacity:.7;cursor:wait}
.tb-ghost{border:1px solid var(--line,#e2ddcf);border-radius:12px;background:#fff;font:inherit;font-size:14px;padding:11px 16px;cursor:pointer;color:var(--pri,#0f3d33)}
.tb-ghost:disabled{opacity:.5;cursor:not-allowed}
.tb-hint{font-size:12px;color:var(--muted,#8c9187);margin:10px 0 0;text-align:center}
.tb-error{color:var(--danger,#a03d35);font-size:13px;margin:0 0 10px}
.tb-result{min-width:0}
.tb-history{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 12px;align-items:center}
.tb-history-label{font-size:12px;color:var(--muted,#8c9187);white-space:nowrap;margin-right:2px}
.tb-hist{display:flex;gap:8px;align-items:center;border:1px solid var(--line,#e2ddcf);background:var(--surface,#fdfcf9);border-radius:12px;padding:6px 12px 6px 6px;cursor:pointer;font:inherit;text-align:left;flex:none;max-width:240px}
.tb-hist.active{border-color:var(--pri,#0f3d33);box-shadow:0 0 0 1px var(--pri,#0f3d33)}
.tb-hist img,.tb-hist i{width:36px;height:48px;border-radius:6px;object-fit:cover;background:#eeeae1;flex:none}
.tb-hist b{display:block;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}
.tb-hist small{font-size:11px;color:var(--muted,#8c9187)}
.tb-empty{border:1px dashed var(--line,#e2ddcf);border-radius:16px;min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted,#8c9187);background:rgba(253,252,249,.6);text-align:center;padding:24px}
.tb-empty b{color:var(--ink,#1a1c19);font-size:15px}
.xhs-note{display:grid;grid-template-columns:minmax(280px,420px) 1fr;background:#fff;border:1px solid var(--line,#e2ddcf);border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(26,28,25,.06)}
.xhs-media{background:#f4f2ee;display:flex;flex-direction:column}
.xhs-frame{position:relative;aspect-ratio:3/4;background:#ece9e2;display:flex;align-items:center;justify-content:center}
.xhs-frame img{width:100%;height:100%;object-fit:cover}
.xhs-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.85);font-size:22px;line-height:32px;cursor:pointer;color:#333;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.xhs-nav.prev{left:10px}.xhs-nav.next{right:10px}
.xhs-count{position:absolute;right:12px;top:12px;background:rgba(0,0,0,.45);color:#fff;font-size:12px;border-radius:999px;padding:2px 9px}
.xhs-dots{display:flex;gap:5px;justify-content:center;padding:10px}
.xhs-dots i{width:6px;height:6px;border-radius:50%;background:#d6d2c9}.xhs-dots i.on{background:#ff2442}
.tb-frame-state{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted,#8c9187);padding:20px;text-align:center}
.tb-frame-state.fail b{color:var(--danger,#a03d35)}
.tb-frame-state button{border:1px solid var(--line,#e2ddcf);background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer;font:inherit}
.xhs-text{padding:22px 26px;display:flex;flex-direction:column;min-width:0;max-height:760px}
.xhs-author{display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid #f0ede6}
.xhs-avatar{width:34px;height:34px;border-radius:50%;background:var(--pri,#0f3d33);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}
.xhs-author b{font-size:14px;flex:1}
.xhs-author em{font-style:normal;font-size:13px;color:#ff2442;border:1px solid #ff2442;border-radius:999px;padding:3px 14px}
.xhs-text h2{font-size:19px;line-height:1.45;margin:16px 0 10px;font-family:inherit;font-weight:700}
.xhs-body{white-space:pre-wrap;font-size:14.5px;line-height:1.85;color:#333;overflow:auto;flex:1;min-height:120px}
.xhs-tags{margin:12px 0 4px;line-height:1.9}.xhs-tags span{color:#13386c;font-size:14px;margin-right:4px}
.xhs-meta{font-size:12px;color:#999;margin:4px 0 14px}
.xhs-actions{display:flex;gap:10px;padding-top:14px;border-top:1px solid #f0ede6}
.xhs-actions .tb-primary{width:auto;flex:1}.xhs-actions .tb-ghost{flex:1}
.xhs-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:14px}
.xhs-strip figure{margin:0;cursor:pointer;border-radius:10px;overflow:hidden;border:2px solid transparent;background:#fff}
.xhs-strip figure.on{border-color:#ff2442}
.xhs-strip img,.xhs-strip figure>div{width:100%;aspect-ratio:3/4;object-fit:cover;display:flex;align-items:center;justify-content:center;background:#ece9e2;color:var(--muted,#8c9187);font-size:12px}
.xhs-strip figure>div.fail{color:var(--danger,#a03d35)}
.xhs-strip figcaption{font-size:11.5px;padding:5px 7px;color:var(--ink,#1a1c19);display:flex;align-items:center;gap:4px}
.xhs-strip figcaption b{color:#ff2442}
.xhs-strip figcaption button{margin-left:auto;border:0;background:transparent;cursor:pointer;color:var(--muted,#8c9187);font-size:14px}
.tb-spin{width:14px;height:14px;border:2px solid rgba(15,61,51,.2);border-top-color:var(--pri,#0f3d33);border-radius:50%;display:inline-block;animation:tbspin .8s linear infinite}
.tb-spin.big{width:28px;height:28px;border-width:3px}
.tb-spin.light{border-color:rgba(255,255,255,.35);border-top-color:#fff}
@keyframes tbspin{to{transform:rotate(360deg)}}
.tb-toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);background:rgba(15,34,28,.92);color:#fff;padding:10px 18px;border-radius:999px;font-size:13.5px;z-index:50}
/* 产品库 */
.tb-form{max-height:calc(100vh - 32px);overflow:auto}
.tb-check-note{margin-left:auto;font-size:11.5px;color:var(--muted,#8c9187)}
.tb-cat{display:grid;gap:10px;border:1px solid var(--line,#e2ddcf);border-radius:12px;padding:12px;background:rgba(245,243,237,.55)}
.tb-cat-note{margin:0;font-size:12px;line-height:1.6;color:var(--muted,#8c9187);display:flex;align-items:center;gap:6px}
.tb-seg{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line,#e2ddcf);border-radius:10px;padding:3px;gap:3px}
.tb-seg button{border:0;background:transparent;border-radius:8px;padding:7px 0;font:inherit;font-size:13px;cursor:pointer;color:var(--ink,#1a1c19)}
.tb-seg button.on{background:var(--pri,#0f3d33);color:#fff}
.tb-chips{display:flex;flex-wrap:wrap;gap:6px}
.tb-chips button{border:1px solid var(--line,#e2ddcf);background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--ink,#1a1c19)}
.tb-chips button.on{border-color:var(--pri,#0f3d33);background:var(--soft,#e2eae5);color:var(--pri,#0f3d33);font-weight:600}
.tb-cat-caps{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tb-cat-caps label{display:grid;gap:4px;font-size:12px;color:var(--muted,#8c9187)}
.tb-cat input[type=number]{width:100%;box-sizing:border-box;border:1px solid var(--line,#e2ddcf);border-radius:8px;padding:6px 8px;font:inherit;font-size:13px;background:#fff;color:var(--ink,#1a1c19)}
.tb-budget-space{display:grid;gap:4px}
.tb-budget-space>b{font-size:12px;color:var(--pri,#0f3d33);margin-top:2px}
.tb-budget-row{display:grid;grid-template-columns:1fr 52px 84px 22px;gap:6px;align-items:center;font-size:12.5px}
.tb-budget-row button{border:0;background:transparent;color:var(--muted,#8c9187);cursor:pointer;font-size:15px;padding:0}
.tb-budget-row button:hover{color:var(--danger,#a03d35)}
.tb-budget-sum{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted,#8c9187);border-top:1px dashed var(--line,#e2ddcf);padding-top:8px}
.tb-budget-sum b{color:var(--ink,#1a1c19)}
.tb-budget-sum .over,.tb-budget-sum .over b{color:var(--danger,#a03d35)}
.tb-budget-head{font-size:11px;color:var(--muted,#8c9187)}
.tb-packages{display:grid;gap:8px}
.tb-package{display:flex;gap:10px;align-items:center;text-align:left;border:1.5px solid var(--line,#e2ddcf);background:#fff;border-radius:10px;padding:7px;cursor:pointer;font:inherit;color:inherit}
.tb-package.on{border-color:var(--pri,#0f3d33);box-shadow:0 0 0 1px var(--pri,#0f3d33)}
.tb-package img,.tb-package i{width:52px;height:52px;border-radius:8px;object-fit:cover;background:#eeeae1;flex:none}
.tb-package span{display:grid;gap:2px;min-width:0}
.tb-package b{font-size:13px}
.tb-package small{font-size:11.5px;color:var(--muted,#8c9187);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb-package em{font-style:normal;font-size:11px;color:var(--gold,#b89b6b)}
.xhs-strip figure{position:relative}
.xhs-badge{position:absolute;left:5px;top:5px;font-style:normal;font-size:10.5px;background:rgba(0,0,0,.5);color:#fff;border-radius:999px;padding:1px 7px;max-width:calc(100% - 10px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xhs-badge.lead{background:#ff2442}
.xhs-goods{margin-top:16px;background:#fff;border:1px solid var(--line,#e2ddcf);border-radius:16px;padding:16px 18px}
.xhs-goods header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.xhs-goods header b{font-size:15px}.xhs-goods header span{font-size:12.5px;color:var(--muted,#8c9187)}
.xhs-goods header span b{font-size:13px;color:var(--ink,#1a1c19)}
.xhs-goods p{font-size:12.5px;color:var(--muted,#8c9187);line-height:1.6;margin:6px 0 0}
.xhs-goods-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:12px}
.xhs-goods figure{margin:0;border:1px solid #f0ede6;border-radius:10px;overflow:hidden}
.xhs-goods img,.xhs-goods figure>i{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#f4f2ee}
.xhs-goods figcaption{padding:6px 8px;display:grid;gap:2px}
.xhs-goods figcaption b{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xhs-goods figcaption small{font-size:11px;color:var(--muted,#8c9187)}
/* 查看版本 / 新建 / 单张调整 */
.tb-editing{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:-4px 0 14px;padding:9px 12px;border-radius:10px;background:var(--soft,#e2eae5);font-size:12.5px;line-height:1.55;color:var(--pri,#0f3d33)}
.tb-editing button{flex:none;border:1px solid var(--pri,#0f3d33);background:#fff;color:var(--pri,#0f3d33);border-radius:999px;padding:4px 11px;font:inherit;font-size:12.5px;cursor:pointer}
.tb-hist-new i{display:flex;align-items:center;justify-content:center;font-style:normal;font-size:20px;color:var(--pri,#0f3d33);background:var(--soft,#e2eae5)}
.xhs-edit{position:absolute;left:12px;bottom:12px;border:0;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink,#1a1c19);font:inherit;font-size:13px;padding:6px 13px;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.xhs-edit:hover{background:#fff;color:#ff2442}
.tb-modal{position:fixed;inset:0;background:rgba(20,24,20,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:60}
.tb-modal-card{background:var(--surface,#fdfcf9);border-radius:16px;padding:22px;width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.2);display:grid;gap:12px}
.tb-modal-card h3{margin:0;font-size:17px}
.tb-modal-card .tb-field{margin:0}
.tb-modal-actions{display:flex;gap:10px;justify-content:flex-end}
.tb-modal-actions .tb-primary{width:auto}
@media (max-width:1100px){.tb-form{max-height:none}}
@media (max-width:1100px){.tb-main{grid-template-columns:1fr}.tb-form{position:static}.xhs-note{grid-template-columns:1fr}.xhs-text{max-height:none}}
@media (max-width:760px){.tb-shell{grid-template-columns:1fr}.tb-apps{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line,#e2ddcf)}.tb-apps-kicker{display:none}.tb-main{padding:16px}}
