:root{--brand: #0F52BA;--brand-light: #E6F0FF;--brand-dark: #0A3A8C;--campus: #10B981;--campus-light: #D1FAE5;--playground: #06B6D4;--playground-light: #CFFAFE;--news: #3B82F6;--news-light: #DBEAFE;--secretary: #F97316;--secretary-light: #FFEDD5;--forge: #EF4444;--forge-light: #FEE2E2;--arms: #8B5CF6;--arms-light: #EDE9FE;--admin: #64748B;--admin-light: #F1F5F9;--bg: #FFFFFF;--bg2: #F8FAFC;--text-1: #0F172A;--text-2: #64748B;--text-3: #94A3B8;--border: #E2E8F0;--shadow: 0 2px 4px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06);--success: #22C55E;--warning: #F59E0B;--error: #EF4444;--info: #3B82F6;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s7: 32px;--r-btn: 12px;--r-card: 16px;--r-input: 10px;--r-tag: 8px;--r-icon: 12px;--primary: var(--brand);--ease: cubic-bezier(.2, .8, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg2);color:var(--text-1);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5}button{font-family:inherit;cursor:pointer;border:none;outline:none;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}.page{padding:var(--s4);padding-bottom:40px;animation:up .25s var(--ease)}.card{background:var(--bg);border-radius:var(--r-card);padding:var(--s4);box-shadow:var(--shadow)}.card:active{transform:scale(.98)}input,select,textarea{width:100%;background:var(--bg);border:1.5px solid var(--border);color:var(--text-1);padding:12px var(--s4);border-radius:var(--r-input);font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}textarea{min-height:80px;resize:vertical}.btn{height:48px;padding:0 var(--s6);border-radius:var(--r-btn);font-size:16px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s var(--ease)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff;width:100%}.btn-secondary{background:transparent;color:var(--primary);border:1.5px solid var(--primary)}.btn-sm{height:36px;padding:0 var(--s4);font-size:14px;border-radius:var(--r-input)}@media(min-width:768px){.page{max-width:960px;margin:0 auto;padding:var(--s6) var(--s7)}.card{transition:transform .15s var(--ease),box-shadow .15s}.card:hover{box-shadow:0 4px 20px #00000014;transform:translateY(-1px)}.desktop-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}.desktop-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}input,select,textarea{font-size:14px}}@media(min-width:1024px){.page{max-width:1120px}.desktop-sidebar{display:grid;grid-template-columns:240px 1fr;gap:var(--s6)}}@keyframes up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg2) 25%,#E2E8F0 50%,var(--bg2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-tag)}
