*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--brand:#1a56db;--brand-dark:#1341aa;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--bg:#fff;--bg-soft:#f9fafb;--radius:8px;--max-w:1200px;--nav-h:64px}body{font-family:PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:var(--bg);line-height:1.6}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:0 8px 24px rgba(0,0,0,.1);transform:translateY(-2px)}.card-body{padding:16px}.card-body h3{font-size:16px;margin-bottom:6px}.card-body p{font-size:14px;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:background .15s}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark)}.btn-outline{background:transparent;color:var(--brand);border:1px solid var(--brand)}.btn-outline:hover{background:#eff6ff}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:20px;gap:20px}@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.grid-3,.grid-4{grid-template-columns:1fr}}.page-hero{background:linear-gradient(135deg,#1a56db,#0e3fa0);color:#fff;padding:64px 0;text-align:center}.page-hero h1{font-size:36px;margin-bottom:12px}.page-hero p{font-size:16px;opacity:.85}.section{padding:64px 0}.section-title{font-size:28px;font-weight:600;margin-bottom:8px}.section-sub{color:var(--muted);font-size:15px;margin-bottom:40px}.empty{text-align:center;padding:60px 0;color:var(--muted)}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:14px;margin-bottom:6px;font-weight:500}.form-group input,.form-group textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;outline:none;transition:border-color .15s;font-family:inherit}.form-group input:focus,.form-group textarea:focus{border-color:var(--brand)}.form-group textarea{resize:vertical;min-height:120px}