*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #3182CE;--secondary: #2c5282;--accent: #ed8936;--bg: #f7fafc;--text: #2d3748;--text-muted: #718096;--border: #e2e8f0;--card-bg: #fff;--danger: #e53e3e;--success: #38a169}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.navbar{background:var(--card-bg);color:var(--primary);padding:.75rem 1.5rem;display:flex;justify-content:center;gap:1.5rem;align-items:center;border-bottom:2px solid var(--primary);position:sticky;top:0;z-index:10;box-shadow:0 1px 3px #0000000a}.nav-brand{font-size:1.25rem;font-weight:700;color:var(--primary);letter-spacing:1px;display:flex;align-items:center;gap:.5rem;text-decoration:none}.nav-brand:before{content:"";width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent)}.nav-logo{height:28px;width:auto;display:block}.nav-links{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}.nav-links a,.nav-links button{color:var(--text);text-decoration:none;font-size:.9rem;padding:.4rem .9rem;border:none;background:none;cursor:pointer;border-radius:4px;transition:all .2s ease;font-family:inherit}.nav-links a:hover,.nav-links button:hover{color:var(--primary);background:#3182ce14}.nav-links a.active{color:var(--primary);background:#3182ce1f;font-weight:600}.nav-subject-group{display:flex;gap:.15rem;padding:0 .5rem;border-left:1px solid var(--border);border-right:1px solid var(--border);margin:0 .25rem}.nav-user{display:flex;align-items:center;gap:.5rem;padding-left:.5rem;border-left:1px solid var(--border);color:var(--text-muted);font-size:.85rem}.main-content{flex:1;padding:2rem 1.5rem;max-width:1280px;margin:0 auto;width:100%}.footer{background:var(--card-bg);color:var(--text-muted);text-align:center;padding:1.25rem;font-size:.85rem;border-top:2px solid var(--primary)}.card{background:var(--card-bg);border-radius:8px;box-shadow:0 2px 8px #0000000f;padding:1.5rem;margin-bottom:1rem}.page-title{font-size:1.75rem;color:var(--primary);margin-bottom:1.25rem;padding-bottom:.5rem;border-bottom:2px solid var(--accent)}.section-title{font-size:1.25rem;color:var(--secondary);margin:1.5rem 0 .75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-family:inherit;cursor:pointer;transition:all .15s ease;background:var(--primary);color:#fff}.btn:hover{background:var(--secondary)}.btn:disabled{opacity:.6;cursor:not-allowed}.text-input{padding:.6rem .9rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;font-family:inherit;background:var(--card-bg);color:var(--text);min-width:200px}.text-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3182ce26}.btn-secondary{background:var(--card-bg);color:var(--primary);border:1px solid var(--primary)}.btn-secondary:hover{background:#3182ce14}.btn-accent{background:var(--accent)}.btn-accent:hover{background:#dd7724}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{background:#0000000a}.form-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}.field{display:flex;flex-direction:column;gap:.25rem}.field label{font-size:.8rem;color:var(--text-muted)}.field input,.field select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem;font-family:inherit;background:var(--card-bg);color:var(--text);min-width:140px}.field input:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3182ce26}.table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:.875rem}th,td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{background:var(--secondary);color:#fff;font-weight:600;-webkit-user-select:none;user-select:none;cursor:pointer;position:relative}th:hover{background:#1e3a5f}th .sort-indicator{margin-left:.25rem;opacity:.6;font-size:.75rem}tbody tr:hover{background:#3182ce0a}.award-pill{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:var(--border);color:var(--text)}.award-国家级{background:#fed7d7;color:#c53030}.award-省级{background:#feebc8;color:#c05621}.award-市级{background:#fefcbf;color:#b7791f}.award-校级{background:#c6f6d5;color:#276749}.pagination{display:flex;gap:.5rem;align-items:center;justify-content:center;padding:1rem}.pagination .page-info{color:var(--text-muted);font-size:.85rem}.hero{text-align:center;padding:3rem 1.5rem;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border-radius:12px;margin-bottom:2rem}.hero h1{font-size:2rem;margin-bottom:.5rem}.hero p{font-size:1rem;opacity:.92}.home-bottom-art{margin:2rem 0 0;width:100%;height:470px;overflow:hidden;border-radius:12px;box-shadow:0 4px 16px #00000014;background:#fff}.home-bottom-art img{width:100%;height:100%;object-fit:fill;display:block}.subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.subject-card{background:var(--card-bg);border-radius:8px;padding:1.5rem 1rem;text-align:center;text-decoration:none;color:var(--text);border:2px solid transparent;transition:all .2s ease;box-shadow:0 2px 4px #0000000f}.subject-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #3182ce26}.subject-card .emoji{font-size:2.5rem;margin-bottom:.5rem}.subject-card .name{font-size:1.1rem;font-weight:600;color:var(--primary);margin-bottom:.25rem}.subject-card .desc{font-size:.8rem;color:var(--text-muted)}.login-wrap{max-width:380px;margin:4rem auto}.login-wrap h1{font-size:1.5rem;color:var(--primary);text-align:center;margin-bottom:1.5rem}.login-form{display:flex;flex-direction:column;gap:1rem}.login-form .field input{min-width:0;padding:.7rem .9rem;font-size:1rem}.error-msg{color:var(--danger);background:#fed7d7;padding:.5rem .75rem;border-radius:6px;font-size:.85rem}.view-switch{display:inline-flex;background:var(--card-bg);border:1px solid var(--border);border-radius:6px;overflow:hidden;margin-bottom:1rem}.view-switch button{padding:.4rem .9rem;border:none;background:transparent;cursor:pointer;font-size:.85rem;color:var(--text-muted);font-family:inherit}.view-switch button.active{background:var(--primary);color:#fff}.muted{color:var(--text-muted);font-size:.85rem}.error{color:var(--danger)}.empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.import-alert{margin-top:.75rem;padding:.75rem 1rem;border-radius:6px;font-size:.88rem;border-left:4px solid var(--text-muted);background:#f7fafc}.import-alert ul{margin:.5rem 0 0;padding-left:1.25rem}.import-alert-error{border-left-color:var(--danger);background:#fff5f5}.import-alert-warn{border-left-color:#d69e2e;background:#fffaf0}.import-alert-success{border-left-color:var(--success);background:#f0fff4}code{background:#edf2f7;padding:.05rem .35rem;border-radius:3px;font-size:.85em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.row-spread{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}@media (max-width: 768px){.navbar{padding:.5rem 1rem;flex-direction:column;gap:.5rem;align-items:stretch}.nav-brand,.nav-links{justify-content:center}.nav-subject-group{border:none;padding:0;margin:0;flex-wrap:wrap;justify-content:center}.nav-user{border:none;padding:0;justify-content:center}.main-content{padding:1rem}.hero h1{font-size:1.5rem}th,td{padding:.4rem .5rem;font-size:.8rem}}
