*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:0 20px}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s}.btn-primary{background-color:#1890ff;color:#fff}.btn-primary:hover{background-color:#40a9ff}.btn-default{background-color:#f0f0f0;color:#333}.btn-default:hover{background-color:#e0e0e0}.card{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;margin-bottom:20px}.form-group{margin-bottom:16px}.form-label{display:block;margin-bottom:8px;font-weight:500;color:#333}.form-control{width:100%;padding:8px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;transition:all .3s}.form-control:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}h1{font-size:24px;font-weight:600;color:#333;margin-bottom:20px}h2{font-size:20px;font-weight:600;color:#333;margin-bottom:16px}h3{font-size:16px;font-weight:500;color:#333;margin-bottom:12px}a{color:#1890ff;text-decoration:none;transition:color .3s}a:hover{color:#40a9ff;text-decoration:underline}.loading{display:flex;justify-content:center;align-items:center;height:200px;font-size:16px;color:#666}.error{color:#ff4d4f;font-size:12px;margin-top:4px}.success{color:#52c41a;font-size:12px;margin-top:4px}.pagination{display:flex;justify-content:center;margin-top:20px}.navbar{background-color:#fff;box-shadow:0 2px 8px #0000001a;padding:0 20px;height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.navbar-brand{font-size:20px;font-weight:600;color:#1890ff}.navbar-menu{display:flex;gap:20px}.navbar-item{font-size:14px;color:#333;cursor:pointer;transition:all .3s}.navbar-item:hover{color:#1890ff}.navbar-user{display:flex;align-items:center;gap:10px}.footer{background-color:#fff;box-shadow:0 -2px 8px #0000001a;padding:20px;text-align:center;margin-top:40px}.footer-text{font-size:14px;color:#666}.home-banner{background:linear-gradient(135deg,#1890ff,#36cfc9);color:#fff;padding:60px 0;text-align:center;margin-bottom:40px}.home-banner h1{font-size:36px;font-weight:600;margin-bottom:16px;color:#fff}.home-banner p{font-size:18px;margin-bottom:24px;opacity:.9}.home-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:40px}.home-feature-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:24px;text-align:center;transition:all .3s}.home-feature-card:hover{transform:translateY(-5px);box-shadow:0 4px 16px #00000026}.home-feature-icon{font-size:48px;color:#1890ff;margin-bottom:16px}.home-feature-title{font-size:18px;font-weight:600;margin-bottom:8px;color:#333}.home-feature-desc{font-size:14px;color:#666}.problem-list{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.problem-list-header{padding:16px 20px;background-color:#fafafa;border-bottom:1px solid #e8e8e8;font-weight:500;display:grid;grid-template-columns:80px 1fr 120px 120px 120px;gap:10px}.problem-list-item{padding:16px 20px;border-bottom:1px solid #e8e8e8;display:grid;grid-template-columns:80px 1fr 120px 120px 120px;gap:10px;align-items:center;transition:all .3s}.problem-list-item:hover{background-color:#f5f5f5}.problem-list-item:last-child{border-bottom:none}.problem-id{font-weight:500;color:#1890ff}.problem-title{font-weight:500;color:#333}.problem-difficulty{font-size:12px;padding:2px 8px;border-radius:10px;text-align:center}.problem-difficulty.easy{background-color:#f6ffed;color:#52c41a;border:1px solid #b7eb8f}.problem-difficulty.medium{background-color:#fff7e6;color:#fa8c16;border:1px solid #ffd591}.problem-difficulty.hard{background-color:#fff1f0;color:#ff4d4f;border:1px solid #ffccc7}.problem-detail{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:24px}.problem-detail-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e8e8e8}.problem-detail-title{font-size:20px;font-weight:600;margin-bottom:8px;color:#333}.problem-detail-meta{font-size:14px;color:#666;display:flex;gap:20px}.problem-detail-section{margin-bottom:24px}.problem-detail-section-title{font-size:16px;font-weight:500;margin-bottom:12px;color:#333}.problem-detail-content{font-size:14px;line-height:1.6;color:#333;white-space:pre-wrap}.problem-submit{margin-top:32px;padding-top:24px;border-top:1px solid #e8e8e8}.code-editor{border:1px solid #d9d9d9;border-radius:4px;overflow:hidden}.code-editor-header{background-color:#fafafa;padding:8px 12px;border-bottom:1px solid #d9d9d9;display:flex;justify-content:space-between;align-items:center}.code-editor-language{font-size:14px;color:#666}.code-editor-content{padding:12px}.code-editor-textarea{width:100%;min-height:300px;border:none;outline:none;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;resize:vertical}.submission-result{margin-top:24px;padding:16px;border-radius:4px;font-size:14px}.submission-result.accepted{background-color:#f6ffed;color:#52c41a;border:1px solid #b7eb8f}.submission-result.wrong_answer{background-color:#fff1f0;color:#ff4d4f;border:1px solid #ffccc7}.submission-result.time_limit_exceeded{background-color:#fff7e6;color:#fa8c16;border:1px solid #ffd591}.submission-result.memory_limit_exceeded{background-color:#f0f5ff;color:#1890ff;border:1px solid #adc6ff}.submission-result.runtime_error{background-color:#fff2e8;color:#fa541c;border:1px solid #ffbb96}.submission-result.compile_error{background-color:#fff1f0;color:#ff4d4f;border:1px solid #ffccc7}.ranking-list{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.ranking-list-header{padding:16px 20px;background-color:#fafafa;border-bottom:1px solid #e8e8e8;font-weight:500;display:grid;grid-template-columns:80px 1fr 120px 120px 120px;gap:10px}.ranking-list-item{padding:16px 20px;border-bottom:1px solid #e8e8e8;display:grid;grid-template-columns:80px 1fr 120px 120px 120px;gap:10px;align-items:center;transition:all .3s}.ranking-list-item:hover{background-color:#f5f5f5}.ranking-list-item:last-child{border-bottom:none}.ranking-rank{font-weight:500;color:#333}.ranking-rank.top3{color:#ff4d4f}.ranking-user{display:flex;align-items:center;gap:10px}.ranking-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.ranking-username{font-weight:500;color:#333}.discussion-list{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.discussion-list-item{padding:16px 20px;border-bottom:1px solid #e8e8e8;transition:all .3s}.discussion-list-item:hover{background-color:#f5f5f5}.discussion-list-item:last-child{border-bottom:none}.discussion-title{font-size:16px;font-weight:500;margin-bottom:8px;color:#333}.discussion-meta{font-size:12px;color:#666;display:flex;gap:16px}.discussion-content{font-size:14px;color:#666;margin-top:8px;line-height:1.5}.group-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.group-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;transition:all .3s}.group-card:hover{transform:translateY(-5px);box-shadow:0 4px 16px #00000026}.group-card-title{font-size:18px;font-weight:600;margin-bottom:8px;color:#333}.group-card-desc{font-size:14px;color:#666;margin-bottom:12px;line-height:1.5}.group-card-meta{font-size:12px;color:#999;display:flex;justify-content:space-between}.auth-container{max-width:400px;margin:60px auto;background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:32px}.auth-title{font-size:20px;font-weight:600;text-align:center;margin-bottom:24px;color:#333}.auth-form{margin-bottom:24px}.auth-footer{text-align:center;font-size:14px;color:#666}.auth-footer a{color:#1890ff}@media (max-width: 768px){.container{padding:0 10px}.navbar-menu{display:none}.problem-list-header,.problem-list-item,.ranking-list-header,.ranking-list-item{grid-template-columns:60px 1fr;gap:10px}.problem-list-header>div:nth-child(n+3),.problem-list-item>div:nth-child(n+3),.ranking-list-header>div:nth-child(n+3),.ranking-list-item>div:nth-child(n+3){display:none}.home-banner h1{font-size:28px}.home-banner p{font-size:16px}.home-features,.group-list{grid-template-columns:1fr}.auth-container{margin:30px auto;padding:24px}}
