#pfx-root{--pfx-accent:#0b7a3b;--pfx-accent-d:#075a2b;--pfx-bg:#f4f6f5;--pfx-card:#fff;--pfx-line:#dfe4e1;--pfx-text:#1c2620;--pfx-muted:#6b7770;--pfx-danger:#c0392b;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--pfx-text);line-height:1.45;box-sizing:border-box}
#pfx-root *,#pfx-root *::before,#pfx-root *::after{box-sizing:inherit}
#pfx-root h1,#pfx-root h2,#pfx-root h3,#pfx-root p{margin:0}
.pfx-wrap{background:var(--pfx-bg);border-radius:14px;padding:18px}
.pfx-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.pfx-head h1{font-size:20px;font-weight:700}
.pfx-badge{font-size:11px;font-weight:600;color:var(--pfx-accent-d);background:#e4f3ea;border:1px solid #bfe3cd;padding:3px 9px;border-radius:999px}
.pfx-sub{font-size:13px;color:var(--pfx-muted);margin-top:2px;flex-basis:100%}
.pfx-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:860px){.pfx-grid{grid-template-columns:1fr}}
.pfx-card{background:var(--pfx-card);border:1px solid var(--pfx-line);border-radius:12px;padding:16px}
.pfx-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.pfx-tab{font-size:13px;padding:6px 12px;border:1px solid var(--pfx-line);background:#fff;border-radius:999px;cursor:pointer;display:flex;align-items:center;gap:6px}
.pfx-tab.active{background:var(--pfx-accent);border-color:var(--pfx-accent);color:#fff}
.pfx-tab .x{opacity:.7;font-weight:700}
.pfx-addbtn{font-size:13px;padding:6px 12px;border:1px dashed var(--pfx-accent);color:var(--pfx-accent-d);background:#fff;border-radius:999px;cursor:pointer;font-weight:600}
.pfx-field{margin-bottom:11px}
.pfx-field label{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:#38443c}
.pfx-field .req{color:var(--pfx-danger)}
.pfx-field input{width:100%;padding:9px 10px;border:1px solid var(--pfx-line);border-radius:8px;font-size:14px;font-family:inherit;background:#fff}
.pfx-field input:focus{outline:none;border-color:var(--pfx-accent);box-shadow:0 0 0 3px #0b7a3b22}
.pfx-field input.invalid{border-color:var(--pfx-danger);background:#fdf3f2}
.pfx-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pfx-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.pfx-sec{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--pfx-muted);margin:16px 0 8px;border-top:1px solid var(--pfx-line);padding-top:12px}
.pfx-oathtoggle{margin:12px 0 4px;font-size:13px}
.pfx-oathtoggle label{display:flex;align-items:center;gap:8px;font-weight:600;color:#38443c;cursor:pointer}
.pfx-oathhint{font-size:12px;color:var(--pfx-muted);margin:3px 0 0 24px}
.pfx-media{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.pfx-media{grid-template-columns:1fr}}
.pfx-drop{border:1px dashed var(--pfx-line);border-radius:10px;padding:10px;text-align:center;background:#fafbfa}
.pfx-drop .thumb{width:100%;height:120px;object-fit:contain;background:#fff;border:1px solid var(--pfx-line);border-radius:6px;display:block;margin-bottom:8px}
.pfx-drop .ph{height:120px;display:flex;align-items:center;justify-content:center;color:var(--pfx-muted);font-size:12px;border:1px solid var(--pfx-line);border-radius:6px;background:#fff;margin-bottom:8px}
.pfx-mini{font-size:12px;padding:6px 10px;border-radius:7px;border:1px solid var(--pfx-line);background:#fff;cursor:pointer;font-weight:600;color:#38443c}
.pfx-mini.accent{background:var(--pfx-accent);border-color:var(--pfx-accent);color:#fff}
.pfx-sigwrap{border:1px solid var(--pfx-line);border-radius:6px;background:#fff;position:relative}
.pfx-sigwrap canvas{width:100%;height:120px;display:block;touch-action:none;border-radius:6px}
.pfx-sighint{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-size:11px;color:#c3ccc7;pointer-events:none}
.pfx-btnbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;border-top:1px solid var(--pfx-line);padding-top:14px}
.pfx-btn{padding:11px 14px;border-radius:9px;border:none;font-size:14px;font-weight:700;cursor:pointer}
.pfx-btn.primary{background:var(--pfx-accent);color:#fff;flex:1;min-width:190px}
.pfx-btn.primary:hover{background:var(--pfx-accent-d)}
.pfx-btn.ghost{background:#fff;border:1px solid var(--pfx-line);color:#38443c}
.pfx-btn:disabled{opacity:.5;cursor:not-allowed}
.pfx-prevwrap{position:sticky;top:12px}
.pfx-prevhd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pfx-prevhd h3{font-size:13px;color:var(--pfx-muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.pfx-canvbox{background:#e9edeb;border:1px solid var(--pfx-line);border-radius:8px;padding:10px;overflow:auto;max-height:640px}
#pfx-preview{width:100%;height:auto;display:block;box-shadow:0 2px 10px #0002;background:#fff}
.pfx-note{font-size:12px;color:var(--pfx-muted);margin-top:10px;background:#eef4f0;border:1px solid #d5e6dc;padding:9px 11px;border-radius:8px}
.pfx-note.err{background:#fdf3f2;border-color:#f0c9c4;color:#8a2b20}
.pfx-status{font-size:12px;color:var(--pfx-muted)}
.pfx-modal{position:fixed;inset:0;background:#0009;display:none;align-items:center;justify-content:center;z-index:99999;padding:16px}
.pfx-modal.open{display:flex}
.pfx-modal .box{background:#fff;border-radius:12px;max-width:520px;width:100%;padding:16px}
.pfx-modal h3{font-size:16px;margin-bottom:10px}
.pfx-cropbox{max-height:340px}
.pfx-cropbox img{max-width:100%;display:block}
.pfx-modal .foot{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.pfx-busy{position:fixed;inset:0;background:#0b201699;display:none;align-items:center;justify-content:center;z-index:100000}
.pfx-busy.open{display:flex}
.pfx-busy .box{background:#fff;border-radius:12px;padding:22px 28px;text-align:center;font-size:14px;font-weight:600;color:#38443c}
.pfx-busy .spin{width:28px;height:28px;border:3px solid #d5e6dc;border-top-color:var(--pfx-accent);border-radius:50%;margin:0 auto 12px;animation:pfxspin 1s linear infinite}
@keyframes pfxspin{to{transform:rotate(360deg)}}
