:root{--red:#d92d20;--red-dark:#b42318;--red-soft:#fdecea;--ink:#141313;--text:#262222;--muted:#7a726c;--line:#e4ded6;--bg:#f5f2ed;--panel:#fff;--ok:#1f7a4d;--warn:#b26a00;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body,html{margin:0}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:14px/1.6 Microsoft YaHei,PingFang SC,Noto Sans CJK SC,system-ui,sans-serif}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.block{display:block}.btn,.col-actions,.nowrap,.sr-only,.table th,.tag{white-space:nowrap}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{color:#d9d3cf;background:var(--ink);flex-direction:column;gap:8px;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;gap:10px;padding:0 8px 22px;font-weight:800;line-height:1.25;text-decoration:none;display:flex}.brand small{color:#a19893;font-size:12px;font-weight:400}.side-nav{gap:2px;display:grid}.side-nav a,.side-status{border-radius:6px;padding:10px 12px;text-decoration:none}.side-nav a:hover{background:#262222}.side-nav a.active{color:#fff;background:var(--red);font-weight:700}.side-status{margin-top:16px;font-size:12px}.side-status.pending{color:#ffd6d2;background:#d92d2038}.side-status.running{color:#fff;background:#3a3434}.side-user{border-top:1px solid #2c2828;justify-content:space-between;margin-top:auto;padding:12px 8px 0;font-size:12px;display:flex}.link-button{color:#a19893;cursor:pointer;background:0 0;border:0;padding:0}.link-button:hover{color:#fff}.main{min-width:0;padding:32px 40px 120px}.blank-layout{background:var(--ink);place-items:center;min-height:100vh;padding:24px;display:grid}.page-head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.page-head h1{letter-spacing:-.02em;margin:4px 0 6px;font-size:26px}.page-head p{margin:0}.back-link{color:var(--muted);font-size:13px;text-decoration:none}.back-link:hover{color:var(--red)}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:18px;padding:24px}.panel>h2{margin-bottom:16px;font-size:16px}.grid{gap:4px 20px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:1/-1}.btn{border:1px solid var(--line);min-height:36px;color:var(--text);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:#faf8f5;border-color:#cfc6bc}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{border-color:var(--red);color:#fff;background:var(--red)}.btn.primary:hover:not(:disabled){border-color:var(--red-dark);background:var(--red-dark)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:#f1ede7}.btn.danger,.field-label em{color:var(--red)}.btn.small{min-height:30px;padding:0 10px;font-size:12px}.btn.block{width:100%;min-height:44px}.field{flex-direction:column;gap:6px;min-width:0;margin-bottom:16px;display:flex}.field-label{font-size:13px;font-weight:700}.field-label em{margin-left:3px;font-style:normal}.deliverable-row input,.field input:not([type=checkbox]),.field select,.field textarea,.toolbar input,.toolbar select{border:1px solid var(--line);background:#fff;border-radius:6px;outline:none;width:100%;min-height:38px;padding:8px 11px}.field textarea{resize:vertical;line-height:1.7}.deliverable-row input:focus,.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--red);box-shadow:0 0 0 3px #d92d201f}.field.invalid .image-drop,.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--red)}.field.invalid .deliverable-row input:-moz-placeholder-shown{border-color:var(--red)}.field.invalid .deliverable-row input:placeholder-shown,.field.invalid .image-drop,.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--red)}.field-hint{color:var(--muted);font-size:12px}.field-error,.form-error{color:var(--red);font-size:12px}.field-warning{color:var(--warn);font-size:12px}.switch{cursor:pointer;align-items:center;gap:8px;min-height:38px;display:inline-flex}.switch input{appearance:none;cursor:pointer;background:#d8d1c8;border-radius:999px;flex:none;width:36px;height:20px;margin:0;transition:background .15s;position:relative}.switch input:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch input:checked{background:var(--red)}.switch input:checked:after{transform:translate(16px)}.switch input:disabled{opacity:.5}.switch.only{min-height:0}.deliverable-row{grid-template-columns:1fr 2fr auto;gap:8px;margin-bottom:8px;display:grid}.row-actions{gap:2px;display:flex}.form-footer{z-index:5;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff0;justify-content:space-between;align-items:center;gap:16px;margin:0 -40px -120px;padding:14px 40px;display:flex;position:sticky;bottom:0}.form-footer-actions{gap:8px;display:flex}.image-field{gap:8px;display:grid}.image-drop{background:#f3efe9;border:1px dashed #cfc6bc;border-radius:6px;position:relative;overflow:hidden}.image-drop img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.image-drop.dragging{border-color:var(--red);background:var(--red-soft)}.image-drop-empty{width:100%;height:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.image-drop-empty strong{color:var(--red)}.image-uploading{color:#fff;background:#1413138c;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.image-actions{flex-wrap:wrap;gap:6px;display:flex}.qr-field{max-width:220px}.gallery-field{border:1px dashed #0000;border-radius:8px;padding:12px;transition:border-color .15s,background .15s}.gallery-field.dropping{border-color:var(--red);background:var(--red-soft)}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:0 0 12px;padding:0;list-style:none;display:grid}.gallery-item{border:1px solid var(--line);cursor:grab;background:#fff;border-radius:6px;transition:opacity .15s,box-shadow .15s;overflow:hidden}.gallery-item.dragging{opacity:.4}.gallery-item.over{box-shadow:0 0 0 2px var(--red)}.gallery-thumb{aspect-ratio:4/3;background:#eee;position:relative}.gallery-thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.gallery-index{text-align:center;background:#141313b8;min-width:22px;font-size:12px;top:6px}.gallery-index,.gallery-tag{color:#fff;border-radius:4px;padding:0 6px;position:absolute;left:6px}.gallery-tag{background:var(--red);font-size:11px;bottom:6px}.gallery-tag.second{background:var(--ink);left:46px}.gallery-actions{border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.gallery-actions button{color:var(--text);cursor:pointer;background:0 0;border:0;flex:1 0 auto;padding:6px 4px;font-size:12px}.gallery-actions button:hover:not(:disabled){color:var(--red);background:#faf6f2}.gallery-actions button:disabled{color:#c4bcb4;cursor:default}.gallery-actions button.danger{color:var(--red)}.gallery-add{width:100%;color:var(--muted);cursor:pointer;background:#faf8f5;border:1px dashed #cfc6bc;border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:18px;display:flex}.gallery-add strong{color:var(--red)}.gallery-add:hover:not(:disabled){border-color:var(--red)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar-search{max-width:320px}.toolbar select{width:auto}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table td,.table th{text-align:left;vertical-align:middle;border-bottom:1px solid #efeae4;padding:10px 12px}.table th{color:var(--muted);background:#faf8f5;font-size:12px;font-weight:700}.table tbody tr:hover{background:#fcfbf9}.table tbody tr:last-child td{border-bottom:0}.table.compact td,.table.compact th{padding:6px 10px;font-size:12px}.col-cover{width:96px}.col-cover img{-o-object-fit:cover;object-fit:cover;background:#eee;border-radius:4px;width:80px;height:52px}.col-center{text-align:center!important}.col-actions{width:150px}.title-link{font-weight:700;text-decoration:none}.title-link:hover{color:var(--red)}.tag{background:#f1ede7;border-radius:999px;padding:1px 8px;font-size:12px;display:inline-block}.pagination{justify-content:center;align-items:center;gap:14px;margin-top:16px;display:flex}.empty-state{border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);text-align:center;background:#fff;padding:48px 24px}.stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:18px;display:grid}.stat{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:16px 18px;text-decoration:none}.stat strong{font-size:28px;line-height:1.2;display:block}.stat span{color:var(--muted);font-size:12px}.stat:first-child{border-color:var(--red);color:#fff;background:var(--red)}.stat:first-child span{color:#ffe0dc}.stat.small strong{font-size:22px}.import-card{border-color:var(--red);background:var(--red-soft)}.warning-card{background:#fffaf0;border-color:#f0d9b0}.warning-card ul{max-height:200px;color:var(--warn);margin:0;padding-left:18px;font-size:12px;overflow:auto}.publish-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.publish-head h2{margin-bottom:6px;font-size:16px}.pending-text{color:var(--red);font-weight:700}.log{color:#d9d3cf;white-space:pre-wrap;word-break:break-all;background:#1b1919;border-radius:6px;max-height:360px;margin:0;padding:14px 16px;font:12px/1.6 Consolas,SFMono-Regular,Menlo,monospace;overflow:auto}.log.failed,.log.interrupted{box-shadow:inset 3px 0 0 var(--red)}.log.success{box-shadow:inset 3px 0 0 var(--ok)}.history{margin-top:14px}.history summary{color:var(--muted);cursor:pointer;margin-bottom:8px}.status-dot{background:#aaa;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot.success{background:var(--ok)}.status-dot.failed,.status-dot.interrupted{background:var(--red)}.status-dot.running{background:var(--warn)}.recent-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.recent-list a{grid-template-columns:64px 1fr auto;align-items:center;gap:12px;text-decoration:none;display:grid}.recent-list img{-o-object-fit:cover;object-fit:cover;border-radius:4px;width:64px;height:42px}.recent-list a:hover span{color:var(--red)}.settings-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:0 18px;display:grid}.settings-layout>.panel:not(.preview-card){grid-column:1}.preview-card{color:#fff;background:var(--ink);border-color:var(--ink);grid-area:1/2/span 2;position:sticky;top:24px}.preview-card h2{color:#a19893;letter-spacing:.1em;font-size:12px}.contact-preview{justify-content:space-between;gap:12px;margin-bottom:18px;display:flex}.contact-preview dl{gap:8px;margin:0;display:grid}.contact-preview dt{color:#a19893;font-size:11px}.contact-preview dd{margin:0;font-weight:700}.contact-preview img{-o-object-fit:contain;object-fit:contain;background:#fff;width:96px;height:96px}.preview-card address{color:#d9d3cf;font-size:12px;font-style:normal}.settings-layout .form-footer{grid-column:1/-1}.login-card{background:#fff;border-radius:10px;width:min(380px,100%);padding:36px 32px}.login-card h1{margin:16px 0 4px;font-size:22px}.login-card>p{margin-bottom:24px}.toasts{z-index:100;gap:8px;display:grid;position:fixed;top:18px;right:18px}.toast{color:#fff;background:var(--ink);text-align:left;cursor:pointer;border:0;border-radius:6px;max-width:360px;padding:12px 16px;animation:.2s ease-out toast-in;box-shadow:0 8px 24px #0000002e}.toast.success{background:var(--ok)}.toast.error{background:var(--red)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}.btn.danger-solid{border-color:var(--red);color:#fff;background:var(--red)}.btn.danger-solid:hover:not(:disabled){border-color:var(--red-dark);background:var(--red-dark)}.dialog-backdrop{z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1413137a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:12px;grid-template-columns:auto 1fr;gap:4px 16px;width:min(440px,100%);padding:26px 26px 22px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 64px #14131347,0 2px 8px #1413131a}.dialog-icon{width:40px;height:40px;color:var(--ink);background:#f1ede7;border-radius:50%;place-items:center;display:grid}.dialog.danger .dialog-icon{color:var(--red);background:var(--red-soft)}.dialog-body{min-width:0;padding-top:2px}.dialog-body h2{word-break:break-word;margin:0 0 6px;font-size:17px;line-height:1.45}.dialog-body p{color:var(--muted);white-space:pre-line;margin:0;font-size:13px;line-height:1.75}.dialog-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.dialog-actions .btn{min-width:88px;min-height:38px}.dialog-actions .btn:focus-visible{outline:none;box-shadow:0 0 0 3px #d92d2040}.dialog-actions .btn:not(.primary):not(.danger-solid):focus-visible{box-shadow:0 0 0 3px #14131326}.dialog-enter-active,.dialog-leave-active{transition:opacity .18s}.dialog-enter-active .dialog{transition:transform .24s cubic-bezier(.2,.9,.3,1.15),opacity .18s}.dialog-leave-active .dialog{transition:transform .15s ease-in,opacity .15s ease-in}.dialog-enter-from,.dialog-leave-to{opacity:0}.dialog-enter-from .dialog{opacity:0;transform:translateY(10px)scale(.96)}.dialog-leave-to .dialog{opacity:0;transform:scale(.98)}@media (width<=520px){.dialog-backdrop{align-items:end;padding:12px}.dialog{grid-template-columns:1fr;padding:22px 20px 18px}.dialog-icon{width:36px;height:36px}.dialog-actions{flex-direction:column-reverse}.dialog-actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){.dialog-enter-active,.dialog-enter-active .dialog,.dialog-leave-active,.dialog-leave-active .dialog{transition:none}}@media (width<=900px){.deliverable-row,.grid.two,.settings-layout,.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;height:auto;padding:12px;position:static}.brand{padding:0 8px 0 0}.side-nav{grid-auto-flow:column}.side-status{margin:0}.side-user{border:0;gap:10px;margin:0 0 0 auto;padding:0}.main{padding:20px 16px 120px}.form-footer{margin:0 -16px -120px;padding:12px 16px}.preview-card{grid-area:auto/1;position:static}.page-head{align-items:flex-start}.page-head,.publish-head{flex-direction:column}}
