.login-page[data-v-f787a36a]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#d4eaf0,#b8dce8);padding:20px}.login-card[data-v-f787a36a]{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 8px 32px #0000001a}.login-header[data-v-f787a36a]{text-align:center;margin-bottom:28px}.logo-icon[data-v-f787a36a]{font-size:48px;margin-bottom:8px}.login-header h1[data-v-f787a36a]{font-size:22px;color:#2c3e50;margin:0 0 6px}.subtitle[data-v-f787a36a]{color:#7f8c8d;font-size:14px;margin:0}.error-msg[data-v-f787a36a]{background:#fef0f0;color:#e74c3c;padding:10px 16px;border-radius:8px;font-size:13px;margin-bottom:16px;border:1px solid #fde2e2}.login-form[data-v-f787a36a]{display:flex;flex-direction:column;gap:16px}.role-tabs[data-v-f787a36a]{display:flex;gap:8px;background:#f5f7fa;border-radius:10px;padding:4px}.role-tab[data-v-f787a36a]{flex:1;padding:10px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:14px;color:#606266;transition:all .2s}.role-tab.active[data-v-f787a36a]{background:#3498db;color:#fff}.form-group[data-v-f787a36a]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-f787a36a]{font-size:13px;color:#606266;font-weight:500}.form-group input[data-v-f787a36a]{padding:12px 14px;border:1.5px solid #dcdfe6;border-radius:10px;font-size:15px;outline:none;transition:border-color .2s}.form-group input[data-v-f787a36a]:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.btn-primary[data-v-f787a36a]{padding:13px;background:#3498db;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary[data-v-f787a36a]:hover:not(:disabled){background:#2980b9}.btn-primary[data-v-f787a36a]:disabled{background:#a0c4e8;cursor:not-allowed}.btn-secondary[data-v-f787a36a]{padding:10px 24px;background:#f5f7fa;color:#606266;border:1.5px solid #dcdfe6;border-radius:10px;cursor:pointer;font-size:14px}.login-footer[data-v-f787a36a]{text-align:center;margin-top:20px;font-size:14px;color:#909399}.link-btn[data-v-f787a36a]{background:none;border:none;color:#3498db;cursor:pointer;font-size:14px;padding:0 4px}.link-btn[data-v-f787a36a]:hover{text-decoration:underline}.modal-overlay[data-v-f787a36a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal-card[data-v-f787a36a]{background:#fff;border-radius:16px;padding:32px;width:90%;max-width:380px;box-shadow:0 8px 32px #0003}.modal-card h2[data-v-f787a36a]{margin:0 0 20px;font-size:18px;color:#2c3e50}.modal-actions[data-v-f787a36a]{display:flex;gap:12px;margin-top:20px}.modal-actions .btn-primary[data-v-f787a36a],.modal-actions .btn-secondary[data-v-f787a36a]{flex:1}.campus-page[data-v-8de69c44]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#d4eaf0,#b8dce8);padding:20px}.campus-card[data-v-8de69c44]{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:440px;box-shadow:0 8px 32px #0000001a}.campus-header[data-v-8de69c44]{text-align:center;margin-bottom:28px}.logo-icon[data-v-8de69c44]{font-size:48px;margin-bottom:8px}.campus-header h1[data-v-8de69c44]{font-size:22px;color:#2c3e50;margin:0 0 6px}.subtitle[data-v-8de69c44]{color:#7f8c8d;font-size:14px;margin:0}.campus-list[data-v-8de69c44]{display:flex;flex-direction:column;gap:10px}.campus-item[data-v-8de69c44]{display:flex;align-items:center;gap:14px;padding:16px 20px;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .2s}.campus-item[data-v-8de69c44]:hover{border-color:#3498db;background:#eef6fd;transform:translate(4px)}.campus-icon[data-v-8de69c44]{font-size:24px;flex-shrink:0}.campus-info[data-v-8de69c44]{flex:1;display:flex;flex-direction:column;gap:2px}.campus-name[data-v-8de69c44]{font-size:16px;font-weight:600;color:#2c3e50}.campus-status[data-v-8de69c44]{font-size:12px;color:#95a5a6}.campus-status.active[data-v-8de69c44]{color:#27ae60}.arrow[data-v-8de69c44]{font-size:18px;color:#bdc3c7;flex-shrink:0}.campus-footer[data-v-8de69c44]{text-align:center;margin-top:24px}.link-btn[data-v-8de69c44]{background:none;border:none;color:#7f8c8d;cursor:pointer;font-size:13px;padding:6px 12px}.link-btn[data-v-8de69c44]:hover{color:#e74c3c}.layout[data-v-f57fd0f6]{min-height:100vh;background:#f5f7fa}.topbar[data-v-f57fd0f6]{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;box-shadow:0 2px 8px #00000026}.topbar-left[data-v-f57fd0f6]{display:flex;align-items:center;gap:14px}.app-name[data-v-f57fd0f6]{font-size:16px;font-weight:600;margin:0}.campus-badge[data-v-f57fd0f6]{font-size:12px;background:#fff3;padding:3px 10px;border-radius:12px}.topbar-right[data-v-f57fd0f6]{display:flex;align-items:center;gap:12px}.user-name[data-v-f57fd0f6]{font-size:14px;opacity:.9}.icon-btn[data-v-f57fd0f6]{background:#ffffff26;border:none;color:#fff;padding:6px 14px;border-radius:8px;cursor:pointer;font-size:13px;transition:background .2s}.icon-btn[data-v-f57fd0f6]:hover{background:#ffffff47}.logout-btn[data-v-f57fd0f6]:hover{background:#e74c3c80}.content[data-v-f57fd0f6]{max-width:900px;margin:0 auto;padding:24px}.home[data-v-fe72e40e]{padding:0}.welcome-card[data-v-fe72e40e]{background:linear-gradient(135deg,#e8f4f8,#fff);border-radius:14px;padding:32px;text-align:center;margin-bottom:24px;border:1px solid #e0ecf4}.welcome-icon[data-v-fe72e40e]{font-size:48px;margin-bottom:8px}.welcome-card h2[data-v-fe72e40e]{font-size:20px;color:#2c3e50;margin:0 0 6px}.welcome-text[data-v-fe72e40e]{color:#7f8c8d;font-size:14px;margin:0}.feature-grid[data-v-fe72e40e]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.feature-card[data-v-fe72e40e]{background:#fff;border-radius:12px;padding:24px;text-align:center;border:1px solid #ebeef5;transition:all .2s;cursor:pointer;display:block;text-decoration:none;color:inherit}.feature-card[data-v-fe72e40e]:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px);border-color:#c6ddf0}.feature-icon[data-v-fe72e40e]{font-size:32px;display:block;margin-bottom:8px}.feature-card h3[data-v-fe72e40e]{font-size:15px;color:#2c3e50;margin:0 0 4px}.feature-card p[data-v-fe72e40e]{font-size:12px;color:#909399;margin:0}.home[data-v-7545c7fc]{padding:0}.welcome-card[data-v-7545c7fc]{background:linear-gradient(135deg,#eaf6ed,#fff);border-radius:14px;padding:32px;text-align:center;margin-bottom:24px;border:1px solid #d4edda}.welcome-icon[data-v-7545c7fc]{font-size:48px;margin-bottom:8px}.welcome-card h2[data-v-7545c7fc]{font-size:20px;color:#2c3e50;margin:0 0 6px}.welcome-text[data-v-7545c7fc]{color:#7f8c8d;font-size:14px;margin:0}.feature-grid[data-v-7545c7fc]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.feature-card[data-v-7545c7fc]{background:#fff;border-radius:12px;padding:24px;text-align:center;border:1px solid #ebeef5;transition:all .2s;cursor:pointer;display:block;text-decoration:none;color:inherit}.feature-card[data-v-7545c7fc]:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px);border-color:#c6ddf0}.feature-icon[data-v-7545c7fc]{font-size:32px;display:block;margin-bottom:8px}.feature-card h3[data-v-7545c7fc]{font-size:15px;color:#2c3e50;margin:0 0 4px}.feature-card p[data-v-7545c7fc]{font-size:12px;color:#909399;margin:0}.home[data-v-beacfe63]{padding:0}.welcome-card[data-v-beacfe63]{background:linear-gradient(135deg,#fef5e7,#fff);border-radius:14px;padding:32px;text-align:center;margin-bottom:24px;border:1px solid #fdebd0}.welcome-icon[data-v-beacfe63]{font-size:48px;margin-bottom:8px}.welcome-card h2[data-v-beacfe63]{font-size:20px;color:#2c3e50;margin:0 0 6px}.welcome-text[data-v-beacfe63]{color:#7f8c8d;font-size:14px;margin:0}.stats-row[data-v-beacfe63]{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.stat-card[data-v-beacfe63]{background:#fff;border-radius:12px;padding:20px 16px;text-align:center;border:1px solid #ebeef5}.stat-num[data-v-beacfe63]{display:block;font-size:28px;font-weight:700;color:#2c3e50;margin-bottom:4px}.stat-label[data-v-beacfe63]{font-size:12px;color:#909399}.feature-groups[data-v-beacfe63]{display:flex;flex-direction:column;gap:16px}.feature-group[data-v-beacfe63]{background:#fff;border-radius:12px;border:1px solid #ebeef5;overflow:hidden}.group-toggle[data-v-beacfe63]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#f7f9fc;border:none;cursor:pointer;font-size:15px;font-weight:600;color:#2c3e50;transition:background .2s}.group-toggle[data-v-beacfe63]:hover{background:#eef3f9}.group-arrow[data-v-beacfe63]{font-size:13px;color:#909399}.feature-group.collapsed .group-toggle[data-v-beacfe63]{border-bottom:none}.feature-grid[data-v-beacfe63]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:16px}.feature-card[data-v-beacfe63]{background:#fff;border-radius:12px;padding:24px;text-align:center;border:1px solid #ebeef5;transition:all .2s;cursor:pointer;text-decoration:none;color:inherit;display:block}.feature-card[data-v-beacfe63]:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px);border-color:#c6ddf0}.feature-icon[data-v-beacfe63]{font-size:32px;display:block;margin-bottom:8px}.feature-card h3[data-v-beacfe63]{font-size:15px;color:#2c3e50;margin:0 0 4px}.feature-card p[data-v-beacfe63]{font-size:12px;color:#909399;margin:0}@media (max-width: 768px){.feature-grid[data-v-beacfe63]{grid-template-columns:repeat(2,1fr);gap:12px}.feature-card[data-v-beacfe63]{padding:18px}.feature-icon[data-v-beacfe63]{font-size:26px}.welcome-card[data-v-beacfe63]{padding:24px 16px}}@media (max-width: 480px){.feature-grid[data-v-beacfe63]{grid-template-columns:1fr}.stats-row[data-v-beacfe63]{grid-template-columns:repeat(2,1fr)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;background:#f5f7fa;min-height:100vh}a{color:inherit;text-decoration:none}input,button{font-family:inherit}
