:root{--navy:#0e1a2b;--brass:#b89055;--gold:#c8a860;--warm:#f5f0eb;--stone:#8a8578;--line:#e3ddd2;--paper:#fff;--tag:#f7d44c;--tag-ink:#3a2f00;--ok:#2f6b4f;--err:#9b2c2c;--serif:var(--font-serif), "Cormorant Garamond", Georgia, serif;--ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--warm);color:var(--navy);font-family:var(--ui);-webkit-font-smoothing:antialiased;font-size:15px}a{color:var(--brass)}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.mast{background:var(--paper);border-bottom:1px solid var(--line);z-index:30;align-items:center;gap:14px;padding:12px 20px;display:flex;position:sticky;top:0}.mast img{width:30px;height:30px}.mast .word{font-family:var(--serif);letter-spacing:.32em;font-size:15px}.mast .title{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:18px;overflow:hidden}.mast .spacer{flex:1}.card-wrap{justify-content:center;align-items:flex-start;min-height:100vh;padding:56px 16px;display:flex}.card{background:var(--paper);border:1px solid var(--line);text-align:center;width:100%;max-width:520px;padding:36px 40px 32px}.card .seal{width:54px;height:54px}.card .word{font-family:var(--serif);letter-spacing:.4em;margin:8px 0 14px;font-size:17px}.card hr{border:0;border-top:1px solid var(--brass);margin:0 0 22px}.card h1{font-family:var(--serif);margin:0 0 10px;font-size:27px;font-weight:400}.card p{margin:0 0 14px;line-height:1.55}.card .muted,.muted{color:var(--stone);font-size:13.5px}.card .doc{font-family:var(--serif);font-size:19px;font-style:italic}.code-input{letter-spacing:.5em;text-align:center;border:1px solid var(--line);width:100%;max-width:260px;font-size:30px;font-family:var(--ui);border-radius:4px;margin:8px 0 16px;padding:10px 0 10px .5em}.btn{background:var(--brass);color:var(--navy);letter-spacing:.06em;border:0;border-radius:3px;padding:11px 26px;font-size:14.5px;text-decoration:none;display:inline-block}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn.secondary{border:1px solid var(--line);color:var(--navy);background:0 0}.btn.dark{background:var(--navy);color:#fff}.btn.small{padding:7px 14px;font-size:13px}.err{color:var(--err);margin:6px 0 10px;font-size:14px}.ok{color:var(--ok)}.doc-area{padding:24px 12px 120px;overflow-x:auto}.pdf-pages{flex-direction:column;align-items:center;gap:18px;display:flex}.pdf-page{background:#fff;flex:none;position:relative;box-shadow:0 1px 4px #0e1a2b2e}.pdf-canvas{width:100%;height:100%;display:block}.pdf-overlay{position:absolute;inset:0}.viewer-msg{text-align:center;color:var(--stone);font-family:var(--serif);padding:80px 0;font-size:20px}.fld{-webkit-user-select:none;user-select:none;text-align:center;border-radius:3px;justify-content:center;align-items:center;font-size:11px;line-height:1.1;display:flex;position:absolute;overflow:hidden}.fld.tag{background:var(--tag);color:var(--tag-ink);cursor:pointer;border:1px solid #c9a51f;box-shadow:0 1px 3px #0000002e}.fld.tag:hover{filter:brightness(1.04)}.fld.tag.optional{background:#fdf0b8;border-style:dashed}.fld.done{cursor:pointer;background:0 0;border:1px dashed #b890558c}.fld.done img{max-width:100%;max-height:100%}.fld.auto{color:var(--navy);font-family:var(--serif);background:#f7d44c2e;border:1px dashed #c9a51f;font-size:13px}.fld input{width:100%;height:100%;font:inherit;background:#fffbe6;border:1px solid #c9a51f;padding:0 4px;font-size:12px}.fld.focus{outline:3px solid var(--brass);outline-offset:2px}.bar{align-items:center;gap:10px;display:flex}.count{color:var(--stone);white-space:nowrap;font-size:13.5px}.start-tab{background:var(--tag);color:var(--tag-ink);z-index:25;border:1px solid #c9a51f;border-left:0;border-radius:0 4px 4px 0;padding:10px 16px 10px 12px;font-weight:600;position:fixed;top:50%;left:0;box-shadow:0 2px 6px #0003}.menu{position:relative}.menu-list{border:1px solid var(--line);z-index:40;background:#fff;min-width:200px;position:absolute;top:110%;right:0;box-shadow:0 4px 14px #0000001f}.menu-list button{text-align:left;background:0 0;border:0;width:100%;padding:10px 14px;display:block}.menu-list button:hover{background:var(--warm)}.zoom{gap:4px;display:flex}.scrim{z-index:50;background:#0e1a2b73;justify-content:center;align-items:flex-start;padding:40px 12px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{border-top:3px solid var(--brass);background:#fff;width:100%;max-width:640px;padding:26px 30px}.modal h2{font-family:var(--serif);margin:0 0 4px;font-size:25px;font-weight:400}.modal .row{flex-wrap:wrap;gap:12px;display:flex}.modal label.f{color:var(--stone);margin-bottom:4px;font-size:12.5px;display:block}.modal input[type=text],.modal textarea,.side input[type=text],.side textarea{border:1px solid var(--line);width:100%;font:inherit;border-radius:3px;padding:8px 10px}.tabs{border-bottom:1px solid var(--line);margin:16px 0;display:flex}.tabs button{color:var(--stone);background:0 0;border:0;border-bottom:2px solid #0000;padding:9px 16px}.tabs button.on{border-color:var(--brass);color:var(--navy)}.styles{gap:8px;display:grid}.style-opt{border:1px solid var(--line);text-align:left;background:#fff;border-radius:3px;align-items:center;gap:14px;padding:8px 12px;display:flex}.style-opt.on{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}.style-opt .sig{white-space:nowrap;flex:1;font-size:34px;overflow:hidden}.style-opt .ini{text-align:center;width:90px;font-size:30px}.pad-wrap{border:1px solid var(--line);background:#fcfbf9;position:relative}.pad-wrap canvas{touch-action:none;width:100%;display:block}.pad-wrap .clear{position:absolute;top:6px;right:6px}.pad-line{border-top:1px solid var(--line);pointer-events:none;position:absolute;bottom:26%;left:6%;right:6%}.preview{border:1px solid var(--line);justify-content:center;align-items:center;gap:14px;min-height:80px;padding:10px;display:flex}.preview img{max-width:70%;max-height:70px}.legal{color:var(--stone);margin:14px 0;font-size:13px;line-height:1.5}.actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.prep{grid-template-columns:300px 1fr;min-height:calc(100vh - 55px);display:grid}.side{border-right:1px solid var(--line);background:#fff;max-height:calc(100vh - 55px);padding:18px;position:sticky;top:55px;overflow-y:auto}.side h3{font-family:var(--serif);border-bottom:1px solid var(--line);margin:18px 0 8px;padding-bottom:4px;font-size:18px;font-weight:400}.side h3:first-child{margin-top:0}.rcp{border:1px solid var(--line);text-align:left;background:#fff;border-radius:3px;align-items:center;gap:8px;width:100%;margin-bottom:6px;padding:7px 8px;display:flex}.rcp.on{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}.rcp .dot{border-radius:50%;flex:none;width:12px;height:12px}.rcp .who{flex:1;min-width:0;font-size:13.5px}.rcp .who small{color:var(--stone);text-overflow:ellipsis;display:block;overflow:hidden}.palette{grid-template-columns:1fr 1fr;gap:6px;display:grid}.palette button{border:1px solid var(--line);background:#fff;border-radius:3px;padding:8px 6px;font-size:13px}.palette button.on{background:var(--navy);color:#fff;border-color:var(--navy)}.pfield{cursor:move;-webkit-user-select:none;user-select:none;border:1.5px solid;border-radius:2px;justify-content:center;align-items:center;font-size:10.5px;display:flex;position:absolute}.pfield.sel{outline:2px dashed var(--navy);outline-offset:2px}.pfield .h{background:var(--navy);cursor:nwse-resize;width:10px;height:10px;position:absolute;bottom:-5px;right:-5px}.placing .pdf-page{cursor:crosshair}.hint{color:var(--stone);font-size:12.5px;line-height:1.45}.drop{border:2px dashed var(--line);cursor:pointer;background:#fcfbf9;margin:10px 0 18px;padding:34px 16px}.drop.over{border-color:var(--brass);background:#fbf6ee}.result{text-align:left;border-left:3px solid var(--line);margin:14px 0;padding:10px 14px;line-height:1.55}.result.good{border-color:var(--ok)}.result.badr{border-color:var(--err)}.mono{word-break:break-all;font-family:ui-monospace,Menlo,monospace;font-size:12px}@media (max-width:760px){.prep{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line);max-height:none;position:static}.card{padding:28px 20px}.mast .word{display:none}}.modal.how{max-width:680px}.steps{margin:16px 0 0;padding:0;list-style:none}.steps>li{border-top:1px solid var(--line);gap:14px;padding:12px 0;display:flex}.steps .n{border:1px solid var(--brass);width:28px;height:28px;color:var(--brass);font-family:var(--serif);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:17px;display:flex}.steps .t{font-family:var(--serif);margin-bottom:2px;font-size:19px}.steps p{margin:4px 0;font-size:14px;line-height:1.5}.chip{border:1px solid var(--line);background:#fff;border-radius:3px;padding:1px 8px;font-size:12.5px;display:inline-block}.tag-chip{background:var(--tag);color:var(--tag-ink);border-color:#c9a51f}.dark-chip{background:var(--navy);border-color:var(--navy);color:#fff}.ways{grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 6px;display:grid}.way{border:1px solid var(--line);background:#fcfbf9;border-radius:3px;padding:8px 10px}.way-h{color:var(--stone);letter-spacing:.03em;font-size:13px}.way-demo{white-space:nowrap;align-items:center;height:44px;display:flex;overflow:hidden}.way p{font-size:12.5px}.tab-help{color:var(--stone);margin:-6px 0 12px;font-size:13px;line-height:1.45}@media (max-width:760px){.ways{grid-template-columns:1fr}}.fld.missing{outline-offset:2px;outline:2.5px solid #c0392b;animation:1.6s ease-in-out infinite missing-pulse;overflow:visible}.fld.missing:after{content:"Required";color:#fff;font:600 10px/1 var(--ui);letter-spacing:.03em;white-space:nowrap;background:#c0392b;border-radius:2px;padding:3px 5px;position:absolute;top:-17px;left:-2px}@keyframes missing-pulse{0%,to{box-shadow:0 0 #c0392b73}50%{box-shadow:0 0 0 6px #c0392b00}}.btn.incomplete{opacity:.55}.btn.incomplete:hover{opacity:.8}.zoom{align-items:center}.zoom-label{color:var(--stone);margin-right:2px;font-size:12.5px}.zoom-pct{text-align:center;min-width:38px;color:var(--navy);font-size:12.5px}.guide-arrow{z-index:5;background:var(--tag);width:82px;height:30px;color:var(--tag-ink);font:600 13px/30px var(--ui);letter-spacing:.02em;cursor:pointer;border:0;padding:0;position:absolute;left:-96px;box-shadow:0 2px 6px #00000038}.guide-arrow.pt-right{clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%);padding-right:12px;animation:1.1s ease-in-out infinite nudge-right}.guide-arrow.pt-left{clip-path:polygon(14px 0,100% 0,100% 100%,14px 100%,0 50%);padding-left:12px;animation:1.1s ease-in-out infinite nudge-left}@keyframes nudge-right{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes nudge-left{0%,to{transform:translate(0)}50%{transform:translate(-5px)}}.btn.ready{animation:1.6s ease-in-out infinite ready-glow}@keyframes ready-glow{0%,to{box-shadow:0 0 #b8905599}50%{box-shadow:0 0 0 7px #b8905500}}@media (max-width:760px){.guide-arrow{left:2px}}.doc-area{padding-left:110px;padding-right:110px}@media (max-width:760px){.doc-area{padding-left:12px;padding-right:12px}}.notice{z-index:35;border:1px solid var(--line);border-left:3px solid var(--brass);background:#fff;border-radius:4px;align-items:center;gap:14px;width:min(560px,100vw - 32px);padding:14px 16px 14px 18px;animation:.28s ease-out notice-in;display:flex;position:fixed;top:70px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0e1a2b1f,0 2px 6px #0e1a2b0f}.notice.warn{border-left-color:#c0392b}@keyframes notice-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.notice-icon{width:28px;height:28px;font:700 15px/1 var(--ui);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.notice-icon.ok{color:var(--brass);background:#f3ece0}.notice-icon.warn{color:#c0392b;background:#fbeceb}.notice-body{flex:1;min-width:0}.notice-title{font-family:var(--serif);color:var(--navy);margin-bottom:2px;font-size:18px;line-height:1.2}.notice-text{color:#4a4f5a;font-size:13.5px;line-height:1.45}.notice-close{color:var(--stone);background:0 0;border:0;flex:none;padding:2px 4px;font-size:22px;line-height:1}.notice-close:hover{color:var(--navy)}.notice .btn.small{flex:none}
