@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&display=swap";:root{color-scheme:light;--bg: #ffffff;--fg: #000000;--muted: #f2f2f2;--border: #e5e5e5;--ease: cubic-bezier(.2, 0, .2, 1);--ls: .15em}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,sans-serif;color:var(--fg);background:var(--bg)}button,input{font:inherit}h1{font-size:2rem;font-weight:300;text-transform:uppercase;line-height:1.15;letter-spacing:.15em}h2{font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em;white-space:nowrap}h3{font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.4em}h4,h5,h6{font-size:.8rem;font-weight:500;text-transform:uppercase;opacity:.6}p{font-size:.85rem;font-weight:400;line-height:1.7;opacity:.8;letter-spacing:.02em}h1,h2,h3,h4,h5,h6{margin:0}#app{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:1px;background:var(--border)}.control-shell,.preview-shell{min-height:100vh;border:none;border-radius:0;background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;padding:40px}.control-shell,.preview-shell{display:flex;flex-direction:column;gap:24px}.hero-card{padding:0 0 40px;border-radius:0;background:none;border:none;border-bottom:1px solid var(--border)}.eyebrow{font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--fg);opacity:.4;margin:0 0 16px}.hero-copy{margin:16px 0 0}.muted{font-size:.8rem;font-weight:400;letter-spacing:.05em;opacity:.5}.panel{padding:24px;border:1px solid var(--border);border-radius:0;background:var(--bg)}.panel-heading,.preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.preview-header{padding-bottom:24px;border-bottom:1px solid var(--border)}.upload-field{display:flex;justify-content:center;align-items:center;width:100%;min-height:68px;margin-top:14px;padding:16px 32px;border:1px solid var(--border);border-radius:0;background:none;font-size:.7rem;text-transform:uppercase;letter-spacing:.3em;cursor:pointer;transition:border-color .4s var(--ease),background .4s var(--ease),color .4s var(--ease)}.upload-field:hover{border-color:var(--fg)}.sr-only-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.signature-pad-shell{margin-top:14px;height:190px;border:1px solid var(--border);border-radius:0;background:var(--bg);overflow:hidden}#signatureCanvas{width:100%;height:100%}.source-switch{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:14px;background:var(--border);border:1px solid var(--border);border-radius:0;padding:0}.source-switch button{background:var(--bg);border:none;border-radius:0;min-height:44px;font-size:.7rem;text-transform:uppercase;letter-spacing:.3em;color:var(--fg);opacity:.4;transition:opacity .4s var(--ease),background .4s var(--ease)}.source-switch button[data-active=true]{opacity:1;background:var(--muted)}.image-upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:14px}.stamp-preview{display:block;max-width:100%;max-height:120px;margin-top:12px;padding:10px;border-radius:0;border:1px solid var(--border);background:var(--bg);object-fit:contain}.stamp-preview[hidden]{display:none}.toolbar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.toolbar-grid.compact{grid-template-columns:1fr 1fr}.toolbar-grid label{display:flex;flex-direction:column;gap:8px;font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em;opacity:.6}input[type=color],input[type=range]{border-radius:0}button{background:none;border:1px solid var(--fg);padding:16px 32px;font-size:.7rem;text-transform:uppercase;letter-spacing:.3em;cursor:pointer;transition:background .4s var(--ease),color .4s var(--ease);border-radius:0;min-height:44px}button:hover:not(:disabled){background:var(--fg);color:var(--bg);transform:none}button:disabled{cursor:not-allowed;opacity:.3}.primary-button{background:var(--fg);color:var(--bg);border:1px solid var(--fg)}.primary-button:hover:not(:disabled){background:var(--bg);color:var(--fg)}.accent-button{background:var(--fg);color:var(--bg);border:1px solid var(--fg)}.accent-button:hover:not(:disabled){background:var(--bg);color:var(--fg)}.accent-button[data-active=true]{background:var(--bg);color:var(--fg)}.secondary-button{border:1px solid var(--border);opacity:.6;background:none}.secondary-button:hover:not(:disabled){opacity:1;background:var(--fg);color:var(--bg);border-color:var(--fg)}.ghost-button{border:none;color:#888;background:none;padding:16px 0}.ghost-button:hover:not(:disabled){background:none;color:#888;text-decoration:underline}.ghost-button.small{min-height:36px}.status-message{margin:14px 0 0;padding:16px 0;border-radius:0;background:none;border-bottom:1px solid var(--border);font-size:.8rem;letter-spacing:.05em;opacity:.8}.status-message[data-alert=true]{border-color:var(--fg);color:var(--fg);background:none;opacity:1}.placement-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:0}.placement-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--border);border-radius:0;background:none}.placement-item div{display:flex;flex-direction:column;gap:4px}.placement-item span{opacity:.6;font-size:.8rem;letter-spacing:.05em}.empty-item{justify-content:center;opacity:.5}.pdf-stage{position:relative;flex:1;min-height:640px;border:1px solid var(--border);border-radius:0;background:var(--muted);overflow:auto}.pdf-stage[data-loading=true]:after{content:"正在生成 PDF 预览…";position:absolute;inset:24px;display:grid;place-items:center;border-radius:0;background:var(--bg);color:var(--fg);font-weight:500;font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;opacity:.6}.pdf-stage.loaded{border-color:var(--fg)}.pdf-stage.empty{display:grid;place-items:center}.empty-state{opacity:.5;text-align:center}.pdf-surface{position:relative;display:inline-block;margin:24px}#pdfCanvas{display:block;border-radius:0;border:none;background:var(--bg)}.signature-overlay{position:absolute;inset:0;pointer-events:none}.signature-preview{position:absolute;opacity:.86}.image-preview{opacity:.94}@media(max-width:1080px){#app{grid-template-columns:1fr;background:var(--bg)}.control-shell,.preview-shell{min-height:auto}}@media(max-width:720px){.control-shell,.preview-shell{padding:24px}.toolbar-grid,.toolbar-grid.compact,.image-upload-row{grid-template-columns:1fr}.panel-heading,.preview-header,.placement-item{flex-direction:column;align-items:stretch}.pdf-stage{min-height:420px}.pdf-surface{margin:14px}}
