:root{--color-bg-primary:#0a1628;--color-bg-secondary:#111d35;--color-bg-card:hsla(0,0%,100%,.95);--color-accent-gold:#c9a96e;--color-accent-gold-light:#e8d5a8;--color-text-light:#fff;--color-text-muted:hsla(0,0%,100%,.7);--color-text-dark:#2c2c2c;--color-text-secondary:#666;--color-border:hsla(39,46%,61%,.3);--color-divider:#e8e3d9;--font-serif:"Noto Serif SC","Songti SC","STSong",serif;--font-sans:"Noto Sans SC",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--shadow-card:0 8px 32px rgba(0,0,0,.12);--shadow-glow:0 0 40px hsla(39,46%,61%,.15);--max-width:480px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--color-bg-primary);color:var(--color-text-light);line-height:1.6;min-height:100vh;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent-gold);text-decoration:none}.bg-pattern{position:fixed;z-index:0;background:linear-gradient(135deg,var(--color-bg-primary) 0,var(--color-bg-secondary) 50%,#0d1f3c 100%);overflow:hidden}.bg-pattern,.bg-pattern:before{top:0;left:0;width:100%;height:100%}.bg-pattern:before{content:"";position:absolute;background-image:radial-gradient(ellipse at 20% 50%,hsla(39,46%,61%,.04) 0,transparent 50%),radial-gradient(ellipse at 80% 20%,hsla(39,46%,61%,.03) 0,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(100,140,200,.03) 0,transparent 50%)}.bg-pattern:after{content:"";position:absolute;top:0;left:0;width:200%;height:200%;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 5 Q35 15 30 25 Q25 15 30 5Z' fill='none' stroke='rgba(201,169,110,0.03)' stroke-width='0.5'/%3E%3Ccircle cx='30' cy='30' r='8' fill='none' stroke='rgba(201,169,110,0.02)' stroke-width='0.5'/%3E%3C/svg%3E");background-size:60px 60px;animation:patternDrift 120s linear infinite}@keyframes patternDrift{0%{transform:translate(0)}to{transform:translate(-60px,-60px)}}.page-container{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;align-items:center}.cert-page{width:100%;max-width:var(--max-width);margin:0 auto;padding:0}.cert-header{text-align:center;padding:48px 24px 32px;position:relative}.cert-header .brand-seal{width:64px;height:64px;margin:0 auto 20px;border:2px solid var(--color-accent-gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:28px;color:var(--color-accent-gold);position:relative;animation:sealGlow 3s ease-in-out infinite}@keyframes sealGlow{0%,to{box-shadow:0 0 15px hsla(39,46%,61%,.2)}50%{box-shadow:0 0 30px hsla(39,46%,61%,.4)}}.cert-header .brand-seal:after,.cert-header .brand-seal:before{content:"";position:absolute;border:1px solid hsla(39,46%,61%,.3);border-radius:50%}.cert-header .brand-seal:before{width:76px;height:76px}.cert-header .brand-seal:after{width:88px;height:88px;border-style:dashed}.cert-header h1{font-family:var(--font-serif);font-size:20px;font-weight:600;letter-spacing:6px;color:var(--color-text-light);margin-bottom:8px}.cert-header .subtitle{font-size:11px;letter-spacing:4px;color:var(--color-accent-gold-light);text-transform:uppercase;opacity:.8}.cert-divider{width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--color-accent-gold),transparent);margin:0 auto}.cert-main-image{width:100%;padding:24px;animation:fadeInUp .8s ease-out}.cert-main-image img{width:100%;border-radius:var(--radius-md);box-shadow:0 12px 40px rgba(0,0,0,.3)}.cert-specs{margin:0 24px 24px;background:var(--color-bg-card);border-radius:var(--radius-md);padding:28px 24px;box-shadow:var(--shadow-card);animation:fadeInUp .8s ease-out .2s both}.cert-specs .spec-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--color-divider)}.cert-specs .spec-row:last-child{border-bottom:none}.cert-specs .spec-label{font-size:14px;color:var(--color-text-secondary);flex-shrink:0;min-width:60px}.cert-specs .spec-value{font-size:14px;color:var(--color-text-dark);font-weight:500;text-align:right}.cert-specs .spec-row.cno .spec-value{font-family:SF Mono,Menlo,monospace;color:var(--color-accent-gold);font-weight:600;letter-spacing:1px}.cert-details{padding:0 24px 24px}.cert-details img{width:100%;border-radius:var(--radius-md);margin-bottom:16px;box-shadow:0 8px 24px rgba(0,0,0,.2);animation:fadeInUp .6s ease-out both}.cert-details img:nth-child(2){animation-delay:.3s}.cert-details img:nth-child(3){animation-delay:.5s}.cert-qrcode{text-align:center;padding:24px;margin:0 24px 24px;background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.cert-qrcode img{width:140px;height:140px;margin:0 auto 12px}.cert-qrcode p{font-size:12px;color:var(--color-text-secondary)}.cert-footer{text-align:center;padding:40px 24px 60px}.cert-footer .footer-dots{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.cert-footer .footer-dots span{font-family:var(--font-serif);font-size:14px;color:var(--color-accent-gold-light);opacity:.6}.cert-footer .footer-brand{font-family:var(--font-serif);font-size:24px;letter-spacing:8px;color:var(--color-accent-gold);margin-bottom:8px}.cert-footer .footer-brand-en{font-size:10px;letter-spacing:4px;color:var(--color-text-muted);text-transform:uppercase}.home-page{width:100%;max-width:600px;margin:0 auto;padding:0 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh}.home-brand{text-align:center;margin-bottom:48px;animation:fadeInUp .8s ease-out}.home-brand .brand-seal{width:96px;height:96px;margin:0 auto 28px;border:2px solid var(--color-accent-gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:40px;color:var(--color-accent-gold);position:relative;animation:sealGlow 3s ease-in-out infinite}.home-brand .brand-seal:before{content:"";position:absolute;width:112px;height:112px;border:1px solid hsla(39,46%,61%,.3);border-radius:50%}.home-brand .brand-seal:after{content:"";position:absolute;width:128px;height:128px;border:1px dashed hsla(39,46%,61%,.2);border-radius:50%}.home-brand h1{font-family:var(--font-serif);font-size:32px;letter-spacing:12px;color:var(--color-text-light);margin-bottom:12px}.home-brand .subtitle{font-size:13px;letter-spacing:4px;color:var(--color-accent-gold-light);text-transform:uppercase;opacity:.7}.home-search{width:100%;max-width:400px;animation:fadeInUp .8s ease-out .3s both}.home-search .search-label{display:block;font-size:14px;color:var(--color-text-muted);margin-bottom:12px;text-align:center}.home-search .search-box{position:relative;width:100%}.home-search input{width:100%;padding:16px 20px;background:hsla(0,0%,100%,.08);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-light);font-size:16px;letter-spacing:2px;text-align:center;transition:all .3s ease;outline:none;font-family:var(--font-sans)}.home-search input::placeholder{color:hsla(0,0%,100%,.3);letter-spacing:2px}.home-search input:focus{border-color:var(--color-accent-gold);background:hsla(0,0%,100%,.12);box-shadow:0 0 20px hsla(39,46%,61%,.15)}.home-search button{width:100%;margin-top:16px;padding:16px;background:linear-gradient(135deg,var(--color-accent-gold),#b8943e);border:none;border-radius:var(--radius-md);color:#1a1a1a;font-size:16px;font-weight:600;letter-spacing:4px;cursor:pointer;transition:all .3s ease;font-family:var(--font-sans)}.home-search button:hover{transform:translateY(-2px);box-shadow:0 8px 24px hsla(39,46%,61%,.3)}.home-search button:active{transform:translateY(0)}.home-search .search-error{text-align:center;margin-top:16px;padding:12px;background:rgba(220,53,69,.15);border:1px solid rgba(220,53,69,.3);border-radius:var(--radius-sm);color:#ff6b7a;font-size:14px}.home-footer{margin-top:60px;text-align:center;animation:fadeInUp .8s ease-out .5s both}.home-footer p{font-size:12px;color:var(--color-text-muted);opacity:.5}.admin-layout{min-height:100vh;background:#f5f5f5}.admin-nav{background:#1a1a2e;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px rgba(0,0,0,.15)}.admin-nav .nav-brand{font-family:var(--font-serif);font-size:18px;color:var(--color-accent-gold);letter-spacing:4px}.admin-nav .nav-links{display:flex;gap:16px;align-items:center}.admin-nav .nav-links a{color:hsla(0,0%,100%,.7);font-size:14px;transition:color .2s}.admin-nav .nav-links a:hover{color:var(--color-accent-gold)}.admin-nav .nav-links button{background:transparent;border:1px solid hsla(0,0%,100%,.2);color:hsla(0,0%,100%,.7);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s}.admin-nav .nav-links button:hover{border-color:var(--color-accent-gold);color:var(--color-accent-gold)}.admin-content{max-width:1200px;margin:0 auto;padding:32px 24px}.admin-login{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--color-bg-primary),var(--color-bg-secondary))}.login-card{width:100%;max-width:400px;padding:48px 32px;background:hsla(0,0%,100%,.05);border:1px solid var(--color-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center}.login-card h2{font-family:var(--font-serif);font-size:24px;color:var(--color-accent-gold);margin-bottom:8px;letter-spacing:4px}.login-card .login-subtitle{font-size:13px;color:var(--color-text-muted);margin-bottom:32px}.login-card input{width:100%;padding:14px 16px;margin-bottom:16px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.15);border-radius:var(--radius-sm);color:var(--color-text-light);font-size:15px;outline:none;transition:border-color .3s}.login-card input:focus{border-color:var(--color-accent-gold)}.login-card input::placeholder{color:hsla(0,0%,100%,.3)}.login-card button{width:100%;padding:14px;background:linear-gradient(135deg,var(--color-accent-gold),#b8943e);border:none;border-radius:var(--radius-sm);color:#1a1a1a;font-size:15px;font-weight:600;letter-spacing:2px;cursor:pointer;transition:all .3s}.login-card button:hover{transform:translateY(-1px);box-shadow:0 6px 20px hsla(39,46%,61%,.3)}.login-error{margin-top:16px;padding:10px;background:rgba(220,53,69,.15);border-radius:var(--radius-sm);color:#ff6b7a;font-size:14px}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-header h1{font-size:24px;color:#1a1a2e;font-weight:700}.admin-header .btn-add{padding:10px 20px;background:#1a1a2e;color:var(--color-accent-gold);border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.admin-header .btn-add:hover{background:#2a2a4e;transform:translateY(-1px)}.product-table{width:100%;background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06)}.product-table table{width:100%;border-collapse:collapse}.product-table th{padding:14px 16px;background:#fafafa;font-size:13px;font-weight:600;color:#666;text-align:left;border-bottom:2px solid #eee}.product-table td{padding:14px 16px;font-size:14px;color:#333;border-bottom:1px solid #f0f0f0;vertical-align:middle}.product-table tr:last-child td{border-bottom:none}.product-table tr:hover td{background:#f8f9fa}.product-table .thumb{width:60px;height:60px;object-fit:cover;border-radius:8px}.product-table .actions{display:flex;gap:8px}.product-table .actions a,.product-table .actions button{padding:6px 12px;font-size:13px;border-radius:6px;cursor:pointer;border:none;transition:all .2s}.product-table .btn-view{background:#e8f4fd;color:#1a73e8;text-decoration:none}.product-table .btn-edit{background:#fff3e0;color:#e65100;text-decoration:none}.product-table .btn-qr{background:#e8f5e9;color:#2e7d32;text-decoration:none}.product-table .btn-delete{background:#fce4ec;color:#c62828}.admin-form{background:#fff;border-radius:var(--radius-md);padding:32px;box-shadow:0 2px 12px rgba(0,0,0,.06)}.admin-form h1{font-size:22px;color:#1a1a2e;margin-bottom:24px;font-weight:700}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:600;color:#333;margin-bottom:6px}.form-group input,.form-group textarea{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:var(--radius-sm);font-size:15px;color:#333;outline:none;transition:border-color .2s;font-family:var(--font-sans)}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-accent-gold)}.form-group textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.form-group .file-upload{display:flex;flex-direction:column;align-items:center;padding:32px;border:2px dashed #ddd;border-radius:var(--radius-md);cursor:pointer;transition:all .2s;background:#fafafa}.form-group .file-upload:hover{border-color:var(--color-accent-gold);background:#fff}.form-group .file-upload input[type=file]{display:none}.form-group .file-upload .upload-icon{font-size:32px;color:#ccc;margin-bottom:8px}.form-group .file-upload span{font-size:14px;color:#999}.form-group .preview-images{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.form-group .preview-images img{width:80px;height:80px;object-fit:cover;border-radius:8px;border:2px solid #eee}.form-actions{display:flex;gap:12px;margin-top:24px}.form-actions button{padding:12px 32px;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.form-actions .btn-primary{background:#1a1a2e;color:var(--color-accent-gold)}.form-actions .btn-primary:hover{background:#2a2a4e}.form-actions .btn-secondary{background:#f0f0f0;color:#666}.not-found{text-align:center;padding:80px 24px;animation:fadeInUp .8s ease-out}.not-found .icon{font-size:64px;margin-bottom:20px;opacity:.5}.not-found h2{font-family:var(--font-serif);font-size:22px;color:var(--color-text-light);margin-bottom:12px}.not-found p{font-size:15px;color:var(--color-text-muted);margin-bottom:32px}.not-found a{display:inline-block;padding:12px 32px;background:hsla(39,46%,61%,.15);border:1px solid var(--color-accent-gold);border-radius:var(--radius-sm);color:var(--color-accent-gold);font-size:15px;letter-spacing:2px;transition:all .3s}.not-found a:hover{background:hsla(39,46%,61%,.25)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width:768px){.form-row{grid-template-columns:1fr}.product-table{overflow-x:auto}.admin-header{flex-direction:column;gap:12px;align-items:flex-start}}.loading{display:flex;align-items:center;justify-content:center;min-height:60vh}.spinner{width:40px;height:40px;border:3px solid hsla(39,46%,61%,.2);border-top:3px solid var(--color-accent-gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;600;700&family=Noto+Serif+SC:wght@400;600;700&display=swap");