*{box-sizing:border-box;margin:0;padding:0}body{font-family:Hiragino Sans,Noto Sans JP,Yu Gothic,sans-serif;background:#f5f6f8;color:#1a1a2e}.site-header{background:#1a1a2e;color:#fff;padding:14px 24px;display:flex;align-items:baseline;gap:12px}.logo{font-size:20px;font-weight:700;letter-spacing:1px}.logo:before{content:"印";color:#c0392b;background:#fff;border-radius:4px;padding:1px 5px;margin-right:8px;font-size:15px;border:2px solid #c0392b}.tagline{font-size:12px;color:#aab}.container{max-width:960px;margin:24px auto;padding:0 16px}.card{background:#fff;border-radius:10px;padding:20px;box-shadow:0 1px 4px rgba(0,0,0,.08)}.card,h1{margin-bottom:16px}h1{font-size:22px}h2{font-size:16px;margin-bottom:12px;border-left:4px solid #c0392b;padding-left:8px}input[type=date],input[type=email],input[type=file],input[type=password],input[type=text],select,textarea{padding:8px 10px;border:1px solid #ccd;border-radius:6px;font-size:14px;margin:4px 6px 4px 0;font-family:inherit}textarea{width:100%;resize:vertical}button{background:#c0392b;color:#fff;border:none;border-radius:6px;padding:9px 18px;font-size:14px;cursor:pointer}button.secondary{background:#34495e}button:disabled{background:#bbb;cursor:not-allowed}table{width:100%;border-collapse:collapse;font-size:13px}td,th{border-bottom:1px solid #e2e4ea;padding:8px 6px;text-align:left;vertical-align:top}th{background:#f0f1f5}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;color:#fff}.badge.draft{background:#7f8c8d}.badge.pending_signatures{background:#2980b9}.badge.partially_signed{background:#e67e22}.badge.completed{background:#27ae60}.badge.cancelled,.badge.expired{background:#c0392b}.code-box{background:#fdf6e3;border:1px dashed #c0392b;padding:10px;border-radius:6px;font-size:15px;font-weight:700;letter-spacing:3px;margin:8px 0}.error{color:#c0392b}.error,.success{font-size:13px;margin:6px 0}.success{color:#27ae60}.seal-grid{display:flex;gap:16px;margin:12px 0;flex-wrap:wrap}.seal-item{width:110px;padding:10px;border:2px solid #ddd;border-radius:8px;cursor:pointer;text-align:center;background:#fff}.seal-item.selected{border-color:#c0392b;background:#fff5f4}.seal-item svg{width:80px;height:80px}.seal-item .seal-name{font-size:11px;margin-top:6px}.pdf-frame{width:100%;height:65vh;border:1px solid #ccd;border-radius:8px}.template-grid{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}.template-card{width:220px;padding:14px;border:2px solid #ddd;border-radius:8px;cursor:pointer;background:#fff}.template-card:hover{border-color:#c0392b;background:#fff5f4}.step-done{text-align:center;padding:40px 20px}.step-done .mark{font-size:48px;color:#27ae60}.hash{font-family:monospace;font-size:11px;word-break:break-all;color:#555}:root{--b-bg:#fffaf0;--b-surface:#ffffff;--b-ink:#3a3a48;--b-ink-soft:#6b6b7b;--b-line:#f1e4cc;--b-orange:#ff8a00;--b-orange-soft:#fff1dc;--b-sky:#2d9cdb;--b-sky-soft:#e4f4fd;--b-green:#22a861;--b-green-soft:#e3f7ec;--b-yellow:#ffc93c;--b-yellow-soft:#fff7d6;--b-red:#e5484d;--b-red-soft:#ffeceb;--b-purple:#8e6cf0;--b-purple-soft:#f0ebff;--b-radius:20px}.b-root{min-height:100vh;background:var(--b-bg);color:var(--b-ink);overflow-x:hidden;font-size:15px}.b-root *,.b-root :after,.b-root :before{max-width:100%}.b-header{background:linear-gradient(100deg,#ffb347,#ffcc33 55%,#ffe680);color:#4a2c00;padding:12px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;box-shadow:0 2px 10px rgba(255,138,0,.25)}.b-header a{color:inherit;text-decoration:none}.b-brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:19px;letter-spacing:.5px}.b-brand .b-logo{width:34px;height:34px;border-radius:12px;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 2px 6px rgba(0,0,0,.08)}.b-brand small{font-size:11px;font-weight:600;opacity:.8;display:block;letter-spacing:0}.b-nav{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.b-nav a{background:rgba(255,255,255,.75);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.b-nav a:hover{background:#fff}.b-main{max-width:1080px;margin:0 auto;padding:18px 16px 60px}.b-title{font-size:22px;font-weight:800;margin:6px 0 14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.b-sub{color:var(--b-ink-soft);font-size:13px;margin-bottom:14px}.b-section-title{font-size:16px;font-weight:800;margin:18px 0 10px;display:flex;align-items:center;gap:6px}.b-card{background:var(--b-surface);border-radius:var(--b-radius);padding:18px;margin-bottom:14px;box-shadow:0 4px 16px rgba(255,166,0,.12);border:2px solid var(--b-line)}.b-card.sky{border-color:#bfe3f8;box-shadow:0 4px 16px rgba(45,156,219,.12)}.b-card.green{border-color:#bfe8d0}.b-card.red{border-color:#ffc9c6;background:var(--b-red-soft)}.b-card.yellow{border-color:#ffe39a;background:var(--b-yellow-soft)}.b-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:14px;gap:14px}.b-grid.two{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.b-tile{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--b-ink);background:var(--b-surface);border-radius:24px;padding:20px 18px;border:2px solid var(--b-line);box-shadow:0 6px 18px rgba(255,166,0,.14);cursor:pointer;text-align:left;font:inherit;transition:transform .12s ease}.b-tile:hover{transform:translateY(-2px)}.b-tile .b-icon{font-size:34px;width:58px;height:58px;border-radius:18px;display:flex;align-items:center;justify-content:center}.b-tile strong{font-size:17px}.b-tile span{font-size:13px;color:var(--b-ink-soft)}.b-tile.selected{border-color:var(--b-orange)}.b-tile.selected,.bg-orange{background:var(--b-orange-soft)}.bg-sky{background:var(--b-sky-soft)}.bg-green{background:var(--b-green-soft)}.bg-yellow{background:var(--b-yellow-soft)}.bg-purple{background:var(--b-purple-soft)}.bg-red{background:var(--b-red-soft)}.b-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 22px;border-radius:999px;border:none;background:var(--b-orange);color:#fff;font-size:16px;font-weight:800;cursor:pointer;box-shadow:0 4px 0 #d97200;text-decoration:none;font-family:inherit}.b-btn:active{transform:translateY(2px);box-shadow:0 2px 0 #d97200}.b-btn:disabled{background:#d9d4cb;box-shadow:none;cursor:not-allowed;color:#fff}.b-btn.sky{background:var(--b-sky);box-shadow:0 4px 0 #1f7fb5}.b-btn.green{background:var(--b-green);box-shadow:0 4px 0 #178548}.b-btn.ghost{background:#fff;color:var(--b-ink);border:2px solid var(--b-line);box-shadow:none}.b-btn.small{min-height:38px;padding:6px 14px;font-size:14px;box-shadow:none}.b-btn.block{width:100%}.b-btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.b-field{margin-bottom:12px}.b-field label{display:block;font-size:13px;font-weight:700;margin-bottom:5px}.b-field .b-hint{font-size:11px;color:var(--b-ink-soft);font-weight:500;margin-left:6px}.b-root input[type=date],.b-root input[type=email],.b-root input[type=number],.b-root input[type=password],.b-root input[type=tel],.b-root input[type=text],.b-root select,.b-root textarea{width:100%;font-size:16px;padding:12px 14px;border-radius:14px;border:2px solid #eadfca;background:#fffdf8;margin:0;font-family:inherit;color:var(--b-ink)}.b-root input:focus,.b-root select:focus,.b-root textarea:focus{outline:none;border-color:var(--b-orange);background:#fff}.b-root textarea{min-height:84px;resize:vertical}.b-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.b-chip.ok{background:var(--b-green-soft);color:#137a43}.b-chip.warn{background:var(--b-yellow-soft);color:#8a5b00}.b-chip.ng{background:var(--b-red-soft);color:#b42318}.b-chip.info{background:var(--b-sky-soft);color:#1b6c9b}.b-chip.gray{background:#f1efe9;color:#6b6b7b}.b-chip.purple{background:var(--b-purple-soft);color:#5b3fc4}.b-row{align-items:center}.b-between,.b-row{display:flex;gap:10px;flex-wrap:wrap}.b-between{align-items:flex-start;justify-content:space-between}.b-muted{color:var(--b-ink-soft);font-size:13px}.b-money{font-weight:800;font-size:20px;color:#c25e00}.b-money.big{font-size:28px}.b-error{background:var(--b-red-soft);color:#b42318}.b-error,.b-ok{border-radius:14px;padding:10px 14px;font-weight:700;margin:10px 0;font-size:14px}.b-ok{background:var(--b-green-soft);color:#137a43}.b-code{font-size:30px;font-weight:900;letter-spacing:8px;background:var(--b-yellow-soft);border:3px dashed var(--b-yellow);border-radius:18px;padding:12px;text-align:center;color:#6b4a00}.b-pre{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.7}.b-steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.b-steps span{padding:6px 12px;border-radius:999px;background:#fff;border:2px solid var(--b-line);font-size:12px;font-weight:700;color:var(--b-ink-soft)}.b-steps span.on{background:var(--b-orange);color:#fff;border-color:var(--b-orange)}.b-item{background:#fffdf8;border:2px solid #f3e8d4;border-radius:18px;padding:12px;margin-bottom:10px}.b-item-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.b-item-grid .full{grid-column:1/-1}.b-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:8px;gap:8px}.b-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;border:2px solid var(--b-line)}.b-pad{height:200px;border:3px dashed #ffb347;border-radius:18px;touch-action:none;display:block}.b-pad,.b-pdf{width:100%;background:#fff}.b-pdf{height:70vh;border:2px solid var(--b-line);border-radius:16px}.b-seal-grid{display:flex;gap:10px;flex-wrap:wrap}.b-seal{width:96px;padding:8px;border:3px solid #eee;border-radius:16px;background:#fff;text-align:center;cursor:pointer;font-size:11px}.b-seal.selected{border-color:var(--b-orange);background:var(--b-orange-soft)}.b-seal svg{width:70px;height:70px}.b-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.b-tabs button{border:2px solid var(--b-line);background:#fff;border-radius:999px;padding:8px 14px;font-weight:800;font-size:14px;cursor:pointer;color:var(--b-ink);font-family:inherit}.b-tabs button.on{background:var(--b-sky);color:#fff;border-color:var(--b-sky)}.b-login{max-width:420px;margin:30px auto;text-align:center}.b-login input{text-align:center;font-size:28px!important;letter-spacing:10px}@media (max-width:600px){.b-main{padding:12px 12px 60px}.b-title{font-size:19px}.b-card{padding:14px;border-radius:18px}.b-grid,.b-grid.two{grid-template-columns:1fr}.b-nav{margin-left:0}.b-btn,.b-nav{width:100%}.b-btn.small{width:auto}.b-money.big{font-size:24px}}