:root{--bg:#f2f4f7;--card-bg:#fff;--text:#1a1d21;--text-sub:#6b7280;--border:#e5e7eb;--accent:#4338ca;--danger:#dc2626;--cert-accent:#c8203d}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Malgun Gothic,Roboto,sans-serif}.page-shell{display:flex;align-items:flex-start;gap:24px;width:min(1200px,calc(100% - 32px));margin:0 auto;padding:40px 0 64px}@media (max-width:900px){.page-shell{flex-direction:column}}.control-panel{flex:0 0 300px;position:-webkit-sticky;position:sticky;top:24px;display:flex;flex-direction:column;gap:20px;padding:24px;background:var(--card-bg);border:1px solid var(--border);border-radius:20px;box-shadow:0 1px 2px rgba(15,17,21,.03)}@media (max-width:900px){.control-panel{position:static;flex:1 1 auto;width:100%}}.hub-back-link{display:inline-flex;align-items:center;gap:4px;color:var(--text-sub);font-size:12.5px;font-weight:600;text-decoration:none}.hub-back-link:hover{color:var(--accent)}.panel-heading h1{margin:0 0 4px;font-size:20px;font-weight:750;letter-spacing:-.02em}.panel-heading p{margin:0;color:var(--text-sub);font-size:13px;line-height:1.6}.field-label{display:block;margin-bottom:6px;font-size:13px;font-weight:700}.name-input{width:100%;padding:12px 14px;font:inherit;font-size:16px;color:var(--text);background:var(--card-bg);border:1px solid var(--border);border-radius:12px}.name-input:focus{outline:2px solid rgba(67,56,202,.18);outline-offset:2px;border-color:var(--accent)}.form-error{min-height:18px;margin:6px 0 0;color:var(--danger);font-size:13px}.print-button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:0 16px;background:var(--accent);color:#fff;border:1px solid transparent;border-radius:12px;font:inherit;font-size:15px;font-weight:700;cursor:pointer}.print-button:hover{filter:brightness(1.05)}.divider{height:1px;background:var(--border);border:none;margin:4px 0}.detail-fields{display:flex;flex-direction:column;gap:6px}.detail-fields h2{margin:0 0 4px;font-size:14px;font-weight:750}.detail-fields .name-input{margin-bottom:4px;font-size:14px;padding:10px 12px}.field-hint{margin:-2px 0 4px;color:var(--text-sub);font-size:11px;line-height:1.5}.stamp-section h2{margin:0 0 4px;font-size:14px;font-weight:750}.stamp-section-hint{margin:0 0 12px;color:var(--text-sub);font-size:12px;line-height:1.6}.stamp-current{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:10px;border:1px solid var(--border);border-radius:12px}.stamp-current img{width:48px;height:48px;object-fit:contain}.stamp-current-actions{display:flex;flex-direction:column;gap:6px;flex:1 1}.stamp-current-actions span{font-size:12px;color:var(--text-sub)}.link-button{background:none;border:none;padding:0;color:var(--accent);font:inherit;font-size:12px;font-weight:700;cursor:pointer;text-align:left}.link-button.danger{color:var(--danger)}.dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;border:1px dashed var(--border);border-radius:14px;color:var(--text-sub);font-size:13px;text-align:center;cursor:pointer;transition:border-color .12s ease,background-color .12s ease}.dropzone.dragging,.dropzone:hover{border-color:var(--accent);background:rgba(67,56,202,.04)}.dropzone strong{color:var(--text);font-size:13px}.dropzone-formats{font-size:11px;color:var(--text-sub)}.dropzone input[type=file]{display:none}.stamp-error{margin:8px 0 0;color:var(--danger);font-size:12px}.gate-card{width:min(480px,100%);margin:80px auto;padding:28px;background:var(--card-bg);border:1px solid var(--border);border-radius:20px;text-align:center}.gate-card h1{margin:0 0 8px;font-size:20px}.gate-card p{margin:0 0 16px;color:var(--text-sub);font-size:14px;line-height:1.6}.gate-card a{color:var(--accent);font-weight:700;text-decoration:none}.preview-stage{flex:1 1 auto;display:flex;justify-content:center;padding:8px 0}.a4-scale-wrap{position:relative;overflow:hidden}.certificate{width:210mm;height:296mm;padding:14mm;background:#fff;color:#1a1a1a;box-shadow:0 12px 32px rgba(15,17,21,.12);transform-origin:top left}.cert-frame{position:relative;height:100%;display:flex;flex-direction:column;border:1.6px solid var(--cert-accent);padding:14mm 16mm 12mm}.cert-doc-no{font-size:11px;color:#6b7280;letter-spacing:.02em}.cert-brand{position:absolute;top:14mm;right:16mm;font-size:13px;letter-spacing:.04em}.cert-brand,.cert-title{font-weight:800;color:var(--cert-accent)}.cert-title{margin:10mm 0 12mm;text-align:center;font-size:28px;letter-spacing:.06em}.cert-fields{display:flex;flex-direction:column}.cert-field-row{display:flex;align-items:baseline;gap:6px;padding:6px 0;border-bottom:1px solid #e5e7eb;font-size:14.5px}.cert-field-purpose{margin-top:10mm}.cert-field-label{flex:0 0 96px;font-weight:700;color:#374151}.cert-field-colon{flex:0 0 auto;color:#9ca3af}.cert-field-value{flex:1 1 auto;color:#111214}.cert-body{margin:12mm 0 0;text-align:center;font-size:15px;line-height:2}.cert-sign{margin-top:auto;text-align:right}.cert-sign-date{margin:0 0 8mm;font-size:14.5px;letter-spacing:.04em}.cert-sign-address{margin:0 0 4mm;color:#4b5563;font-size:12.5px}.cert-sign-rep{position:relative;display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;font-size:16px;font-weight:700}.cert-stamp{width:60px;height:60px;object-fit:contain;margin-left:-16px;-webkit-print-color-adjust:exact;print-color-adjust:exact}@media print{@page{size:A4;margin:0}body,html{margin:0;padding:0;background:#fff}.control-panel,.gate-card{display:none!important}.page-shell{display:block!important;width:auto;margin:0;padding:0;gap:0}.preview-stage{display:block!important;padding:0!important}.a4-scale-wrap{width:auto!important;height:auto!important;overflow:visible!important}.certificate{transform:none!important;width:210mm!important;height:296mm!important;box-shadow:none!important;page-break-after:avoid}.cert-brand,.cert-frame,.cert-title,.certificate{-webkit-print-color-adjust:exact;print-color-adjust:exact}}