*{box-sizing:border-box}body{color:#243635;background:#f5f7f6;margin:0;font-family:Arial,Microsoft Yahei,sans-serif}button,input{font:inherit}button,a,input{outline-color:#29786a}button,a{cursor:pointer}button{border:0}a{color:inherit;text-decoration:none}.shell{min-height:100vh;display:flex}aside{background:#fff;border-right:1px solid #e3e9e6;width:224px;height:100vh;padding:35px 22px;position:fixed}.logo{align-items:center;gap:12px;margin-bottom:58px;display:flex}.logo>div{color:#fff;background:#1c5c50;border-radius:14px;padding:12px}.logo span{letter-spacing:4px;font-family:serif;font-size:28px;font-weight:700}.logo small{letter-spacing:2px;color:#74817b;margin-top:4px;font-size:10px;display:block}.side-label{color:#8d9992;margin:0 14px 15px;font-size:11px}.nav{color:#6b7b73;text-align:left;background:0 0;border-radius:8px;align-items:center;gap:11px;width:100%;margin-bottom:8px;padding:14px;font-size:14px;display:flex}.nav.active{color:#205e4e;background:#e8f1ec;font-weight:700}.nav span{margin-left:auto;font-size:12px}.side-bottom{color:#6c8177;background:#f5f8f6;border-radius:10px;width:180px;padding:18px;font-size:12px;line-height:1.8;position:absolute;bottom:35px}.side-bottom b{color:#425d50;margin-top:8px;display:block}.side-bottom p{margin:4px 0}.workspace{width:calc(100% - 224px);margin-left:224px}header{color:#7c8981;background:#fff;border-bottom:1px solid #e5ebe7;justify-content:space-between;align-items:center;height:76px;padding:0 40px;font-size:12px;display:flex}header i{color:#b2bbb5;padding:0 15px}.private{color:#5c7166;border:1px solid #e4eae6;border-radius:20px;align-items:center;gap:7px;padding:8px 13px;display:flex}main{max-width:1600px;margin:auto;padding:38px 40px}.page-heading{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.eyebrow{letter-spacing:2px;color:#558275;font-size:10px}h1{margin:12px 0;font-size:29px;font-weight:500}p{line-height:1.8}.page-heading p{color:#7a8780;margin:0;font-size:13px}.secure{color:#6e8175;gap:6px;font-size:12px;display:flex}.stats{background:#fff;border:1px solid #e0e7e2;border-radius:12px;grid-template-columns:1fr 1fr 1.2fr;margin-bottom:28px;padding:23px 0;display:grid}.stats>div{border-right:1px solid #e7ece8;padding:0 27px}.stats>div:last-child{border:0}.stats span{color:#819087;font-size:12px}.stats strong{margin-top:10px;font-size:29px;font-weight:500;display:block}.stats small{color:#99a39d;margin-left:10px;font-size:11px;font-weight:400}.stats .stat-text{font-size:19px}.stat-text small{letter-spacing:1.7px;margin:9px 0 0;font-size:8px;display:block}.editor{grid-template-columns:320px minmax(0,1fr);gap:25px;display:grid}.form-panel,.preview-panel,.records-panel{background:#fff;border:1px solid #dfe7e2;border-radius:12px;overflow:hidden}.panel-title{border-bottom:1px solid #e7ece8;padding:22px}.panel-title h2,h2{margin:0;font-size:15px;font-weight:600}.panel-title h2{align-items:center;gap:9px;display:flex}.panel-title>span{color:#8d9c92;margin:9px 0 0 27px;font-size:10px;display:block}form{padding:24px 22px}label{margin-bottom:23px;font-size:12px;display:block}em{color:#b18e66;font-style:normal}label>input{background:#fcfdfc;border:1px solid #dfe5e1;border-radius:6px;width:100%;margin-top:10px;padding:12px;font-size:12px;display:block}input::placeholder{color:#a5afa8}.upload{background:#fafcfb;border:1px dashed #ccd9cf;border-radius:8px;align-items:center;gap:10px;margin-top:10px;padding:14px 9px;display:flex;position:relative}.upload input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.upload img{object-fit:cover;width:42px;height:57px}.photo-placeholder{color:#7d9c8b;background:#edf3ef;place-items:center;width:40px;height:50px;display:grid}.upload b{font-size:11px;font-weight:500}.upload small{color:#95a096;margin-top:8px;font-size:8px;display:block}.fixed-info{background:#f6f8f6;border-radius:6px;padding:14px;font-size:10px}.fixed-info span{color:#929d95;justify-content:space-between;gap:6px;margin:8px 0;display:flex}.fixed-info b{color:#5f7166;font-weight:400}.form-note{color:#8a978f;margin:18px 0;font-size:10px;line-height:1.9}.form-note svg{vertical-align:middle;margin-right:4px}.primary{color:#fff;background:#225f4e;border-radius:7px;justify-content:center;align-items:center;gap:12px;width:100%;padding:14px;font-size:13px;display:flex}.primary:disabled{opacity:.5;cursor:default}.preview-heading{justify-content:space-between;align-items:center;padding:25px;display:flex}.preview-heading span{color:#8b9a90;font-size:10px}.preview-heading i{background:#7ca38c;border-radius:50%;width:5px;height:5px;margin-right:6px;display:inline-block}.paper-stage{background:#f0f2ee;border-top:1px solid #e6ebe5;border-bottom:1px solid #e6ebe5;padding:28px 20px}.certificate{aspect-ratio:1.414;color:#163d65;background:#fffefb repeating-radial-gradient(at 50% 60%,#0000 0 8px,#638ea103 8px 10px);border:6px double #397499;padding:1.8%;font-family:Times New Roman,SimSun,serif;position:relative;box-shadow:0 7px 25px #233b4112;container-type:inline-size}.certificate:before{content:"";pointer-events:none;border:1px solid #81a6b7;position:absolute;inset:3px}.cert-inner{border:2px solid #3f7698;height:100%;padding:3% 7% 1.5%}.cert-top{grid-template-columns:12% 1fr 12%;align-items:start;gap:3%;display:grid}.brand-emblem{color:#238b8d;aspect-ratio:1;border:2px solid #238b8d;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-size:4cqw;line-height:1;display:flex}.brand-emblem span{letter-spacing:.1em;font-size:1.7cqw}.brand-emblem small{margin-top:6%;font-size:.8cqw}.cert-top h2{text-align:center;white-space:nowrap;letter-spacing:.06em;margin:1% -4% 4%;font-size:3.2cqw;font-weight:700}.cert-top h3{text-align:center;white-space:nowrap;margin:0;font-size:1.7cqw}.ornament{text-align:center;margin-top:3%;font-size:1.3cqw}.portrait{aspect-ratio:.75;color:#a6afb5;background:#f1f3f3;place-items:center;width:100%;font-size:.8cqw;display:grid}.portrait img{object-fit:cover;width:100%;height:100%}.cert-name{text-align:center;color:#252d32;margin:4% 0;font-size:2.3cqw}.cert-name strong{border-bottom:1px solid #333;min-width:27%;padding:0 3% .6%;display:inline-block}.cert-copy{color:#303334;margin:2% 0;font-size:1.65cqw;line-height:2}.cert-en{color:#555;margin:0;font-size:1.4cqw;line-height:1.6}.cert-fields{color:#262d30;grid-template-columns:1fr 1fr;gap:8%;margin-top:8%;display:grid}.cert-fields p{border-bottom:1px solid #aebcc5;justify-content:space-between;gap:1%;margin:0;font-size:1.25cqw;line-height:2;display:flex}.cert-fields b{white-space:nowrap;font-weight:600}.cert-fields span{white-space:nowrap}.cert-bottom{grid-template-columns:1fr 1.7fr 1fr;align-items:center;margin-top:2%;display:grid}.institution{text-align:center;color:#247c7a}.institution strong{font-size:2cqw;display:block}.institution span{letter-spacing:.1em;border-block:1px solid #83afad;margin:3% auto;padding:3% 0;font-size:1.2cqw;display:block}.institution i{letter-spacing:.05em;font-size:.6cqw;font-style:normal}.qr{text-align:center;width:70%;margin-left:auto}.qr img,.qr-empty{aspect-ratio:1;width:100%;display:block}.qr-empty{color:#8f9fa6;border:1px dashed #b1c0c5;place-content:center;font-size:1cqw;display:grid}.qr small{margin-top:3%;font-size:1cqw;display:block}.cert-inner footer{text-align:center;color:#8093a1;margin-top:2%;font-size:.85cqw}.preview-actions{justify-content:space-between;align-items:center;gap:10px;padding:17px 25px;display:flex}.preview-actions p{color:#8d9b92;align-items:center;gap:5px;font-size:10px;display:flex}.preview-actions>div{align-items:center;gap:13px;display:flex}.preview-actions a,.preview-actions button{align-items:center;gap:5px;font-size:10px;display:inline-flex}.preview-actions button{color:#3d6955;background:#edf3ef;border-radius:5px;padding:10px}.tip{color:#938b77;background:#f9f8f4;border-radius:7px;margin:0 25px 23px;padding:15px;font-size:10px}.tip b{color:#716b5a;font-size:11px}.tip p{margin:5px 0 0}.site-footer{color:#9aa49e;justify-content:space-between;margin-top:30px;font-size:10px;display:flex}.message{background:#e5f1e9;border:1px solid #bdd7c6;border-radius:7px;margin-bottom:20px;padding:14px;font-size:13px}.record-toolbar{justify-content:space-between;align-items:center;padding:24px;display:flex}.search{color:#8b9b90;border:1px solid #e0e8e2;border-radius:7px;align-items:center;gap:8px;padding:10px;display:flex}.search input{border:0;font-size:12px}.empty{text-align:center;color:#8c9b91;padding:70px}.empty svg{color:#8da69a}.empty h3{color:#456353;font-size:18px}.empty p{font-size:13px}.empty button{width:auto;margin:25px auto}.table-wrap{overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}th{color:#829086;background:#f6f8f6;font-weight:400}th,td{border-top:1px solid #e8eee9;padding:19px}td button{color:#75877d;background:0 0;margin-left:10px;font-size:11px}.badge{color:#4b8261;background:#edf5ef;border-radius:12px;padding:4px 10px;font-size:10px}.revoked{color:#aa6c5e;background:#f8eae7}.verify{max-width:1100px}.verify>a{color:#547c69;font-size:13px}.verify>p{color:#8a9c90}.verified{background:#fff;border:1px solid #e0e8e2;border-radius:8px;margin-top:24px;padding:25px;font-size:14px}.verified p:last-child{color:#89958c;font-size:12px}@media (min-width:1500px){.editor{grid-template-columns:360px minmax(0,1fr)}}@media (max-width:1150px){aside{width:180px;padding:30px 15px}.workspace{width:calc(100% - 180px);margin-left:180px}.side-bottom{width:150px}main{padding:25px}.editor{grid-template-columns:280px minmax(0,1fr);gap:16px}.preview-heading,.preview-actions{padding:18px}.paper-stage{padding:24px 10px}}@media (max-width:850px){aside{border-bottom:1px solid #ddd;align-items:center;gap:12px;width:100%;height:auto;padding:18px;display:flex;position:static}.logo{margin:0 auto 0 0}.logo span{font-size:20px}.logo>div{padding:8px}.side-label,.side-bottom{display:none}.nav{width:auto;margin:0;padding:10px;font-size:11px}.nav svg{display:none}.shell{display:block}.workspace{width:100%;margin:0}header{height:55px;padding:0 20px}.editor{grid-template-columns:1fr}.form-panel form{grid-template-columns:1fr 1fr;gap:18px;display:grid}.form-panel label{margin:0}.fixed-info,.form-note,.primary{grid-column:1/-1}.form-note{margin:0}.stats{padding:18px 0}.stats>div{padding:0 16px}.stats strong{font-size:25px}.stats .stat-text{font-size:14px}.page-heading h1{font-size:23px}.secure{display:none}.certificate{border-width:4px}}@media (max-width:480px){main{padding:25px 14px}.private{font-size:10px}.logo small{font-size:8px}.nav{padding:8px}.form-panel form{display:block}.form-panel label{margin-bottom:20px}.form-note{margin:15px 0}.stats small{margin:4px 0 0;display:block}.stats .stat-text small{font-size:6px}.preview-actions{flex-wrap:wrap}.record-toolbar{display:block}.search{margin-top:15px}.site-footer span{display:none}}@page{size:A4 landscape;margin:8mm}@media print{body{background:#fff}.shell aside,header,.page-heading,.stats,.form-panel,.preview-heading,.preview-actions,.tip,.site-footer,.message{display:none!important}.shell,.workspace,main,.editor,.preview-panel,.paper-stage{background:0 0!important;border:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}.certificate{width:275mm;box-shadow:none;break-inside:avoid}.verify>a,.verify>h1,.verify>p,.verified{display:none}.certificate{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.certificate-svg{aspect-ratio:1400/990;background:#fffefa;width:100%;height:auto;display:block;box-shadow:0 6px 24px #233b4115}.preview-panel,.form-panel{min-width:0}.paper-stage{padding:24px;overflow:hidden}.upload{min-height:94px}.upload>div{min-width:0}.upload small{font-size:10px;line-height:1.6}.upload input{z-index:2;display:block}.editor{grid-template-columns:minmax(280px,320px) minmax(0,1fr)}@media (max-width:1200px){.editor{grid-template-columns:1fr}.form-panel form{grid-template-columns:1fr 1fr;gap:20px;display:grid}.form-panel label{margin:0}.fixed-info,.form-note,.primary{grid-column:1/-1}.form-note{margin:0}.paper-stage{padding:20px}}@media (max-width:550px){.form-panel form{display:block}.form-panel label{margin-bottom:22px}.form-note{margin:18px 0}.paper-stage{padding:8px}.preview-heading{flex-wrap:wrap;gap:10px}.page-heading h1{font-size:22px}.stats .stat-text{font-size:12px}.stats>div{padding:0 12px}.private{padding:6px 9px}.logo{gap:7px}.logo span{letter-spacing:1px}.nav{white-space:nowrap;font-size:11px}.workspace header{padding:0 14px}}@media print{.certificate-svg{box-shadow:none;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;width:275mm!important;max-width:none!important;height:auto!important}}:root,html,body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only}.certificate-image-frame{color:#25282b;isolation:isolate;forced-color-adjust:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;background:#fffefa;width:100%;position:relative}.certificate-bitmap{aspect-ratio:1400/990;object-fit:contain;mix-blend-mode:normal;forced-color-adjust:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;background:#fffefa;width:100%;height:auto;display:block;filter:none!important}.certificate-source{display:none!important}.certificate-loading{aspect-ratio:1400/990;color:#486558;background:#fffefa;place-items:center;font-size:13px;display:grid}.verify{padding:30px 24px}.verified{color:#243635;background:#fff}.verified b{margin-bottom:15px;display:block}.verified p{overflow-wrap:anywhere;margin:10px 0}@media (max-width:550px){.verify{padding:22px 12px}.verify h1{font-size:23px}.verified{padding:20px;font-size:14px}}@media print{.certificate-image-frame,.certificate-bitmap{break-inside:avoid;width:275mm!important;max-width:none!important;height:auto!important}.certificate-loading{display:none!important}}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{text-align:center;background:#fff;border:1px solid #dfe6e5;border-radius:16px;width:min(100%,420px);padding:34px;box-shadow:0 15px 60px #153e6810}.login-symbol{color:#205a91;background:#eaf1f8;border-radius:50%;place-items:center;width:60px;height:60px;margin:auto;font-family:serif;font-size:28px;display:grid}.login-card h1{font-size:25px}.login-card>p{color:#81908c;font-size:13px}.login-card form{text-align:left;padding:20px 0}.login-card label{margin-bottom:20px}.login-card small{color:#8a9992;font-size:11px}.login-card [role=alert]{color:#a64a42;font-size:12px}.logout-form{margin:0;padding:0}.logout-form button{color:#426b8d;background:0 0;padding:0 0 0 8px;font-size:11px}.logo span{letter-spacing:1.5px;font-family:Arial,sans-serif;font-size:24px}.logo small{letter-spacing:1px;font-size:7px}.login-symbol{font-family:Arial,sans-serif}@media (max-width:550px){.logo span{font-size:19px}.logo small{letter-spacing:.5px;font-size:6px}}
