:root{--font-main:"LXGW WenKai", "霞鹜文楷", "KaiTi", "STKaiti", "PingFang SC", "Microsoft YaHei", sans-serif;--color-bg:#f8f6f2;--color-bg-alt:#fff;--color-surface:#fff;--color-primary:#1e4d6b;--color-primary-light:#2a6f96;--color-accent:#c45c26;--color-accent-light:#e07a3f;--color-text:#1a1a1a;--color-text-muted:#6b7280;--color-border:#e5e2dc;--color-success:#2d6a4f;--color-danger:#b91c1c;--color-white:#fff;--color-primary-04:#1e4d6b0a;--color-primary-06:#1e4d6b0f;--color-primary-08:#1e4d6b14;--color-primary-10:#1e4d6b1a;--color-primary-12:#1e4d6b1f;--color-accent-10:#c45c261a;--color-accent-12:#c45c261f;--color-success-12:#2d6a4f1f;--color-muted-12:#6b72801f;--color-overlay:#00000073;--color-header-glass:#f8f6f2eb;--color-white-60:#fff9;--color-white-75:#ffffffbf;--color-white-85:#ffffffd9;--color-white-10:#ffffff1a;--color-white-15:#ffffff26;--color-white-40:#fff6;--gradient-hero:var(--color-bg);--gradient-primary:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);--gradient-login:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 50%, var(--color-primary) 100%);--shadow-sm:0 1px 3px #1e4d6b14;--shadow-md:0 4px 20px #1e4d6b1f;--shadow-lg:0 12px 40px #1e4d6b26;--radius:12px;--radius-sm:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body,#app{font-family:var(--font-main);background:var(--color-bg);color:var(--color-text);letter-spacing:.02em;-webkit-font-smoothing:antialiased;line-height:1.75}h1,h2,h3,h4,h5,h6{font-family:var(--font-main);font-weight:400}button,input,select,textarea,.el-message,.el-dialog,.el-dialog__title{font-family:var(--font-main)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}.container{max-width:1200px;margin:0 auto;padding:0 24px}.page-title{color:var(--color-primary);margin-bottom:24px;font-size:1.5rem;font-weight:700}.section-title{color:var(--color-primary);font-size:1.75rem;font-weight:700}.btn{border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:8px;padding:10px 22px;font-size:.95rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-accent{background:var(--color-accent);color:var(--color-white)}.btn-accent:hover{background:var(--color-accent-light)}.btn-outline{border:1.5px solid var(--color-primary);color:var(--color-primary);background:0 0}.btn-outline:hover{background:var(--color-primary);color:var(--color-white)}.btn-danger{background:var(--color-danger);color:var(--color-white)}.btn-danger:hover{opacity:.9}.btn-sm{padding:6px 14px;font-size:.85rem}.badge{border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-block}.badge-level{background:var(--color-primary-12);color:var(--color-primary)}.badge-category{background:var(--color-accent-12);color:var(--color-accent)}.badge-success{background:var(--color-success-12);color:var(--color-success)}.badge-draft{background:var(--color-muted-12);color:var(--color-text-muted)}.form-group{margin-bottom:20px}.form-group label{margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-alt);width:100%;padding:10px 14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-primary);outline:none}.form-group textarea{resize:vertical;min-height:100px}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;padding:12px 24px;font-size:.9rem}.data-table th{background:var(--color-primary-04);color:var(--color-text-muted);font-size:.8rem;font-weight:500}.data-table tr:not(:last-child) td{border-bottom:1px solid var(--color-border)}.data-table tbody tr:hover{background:var(--color-primary-04)}.page-enter-active,.page-leave-active{transition:opacity .25s,transform .25s}.page-enter-from{opacity:0;transform:translateY(12px)}.page-leave-to{opacity:0}.icon-text{align-items:center;gap:4px;display:inline-flex}.btn .app-icon{vertical-align:middle}
