:root{--primary-color: #3B82F6;--primary-hover: #2563EB;--primary-light: #93C5FD;--secondary-color: #22D3EE;--text-primary: #111;--text-secondary: #666;--text-tertiary: #999;--text-light: #fff;--bg-primary: #fff;--bg-secondary: #f6f6f6;--bg-tertiary: #f0f0f0;--bg-dark: #2c2c2c;--border-color: #e6e6e6;--border-light: #f0f0f0;--star-color: #ffc107;--shadow-sm: 0 1px 3px rgba(0,0,0,.1);--shadow-md: 0 4px 6px rgba(0,0,0,.1);--shadow-lg: 0 10px 25px rgba(0,0,0,.15);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--transition: all .3s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);color:var(--text-primary);background-color:var(--bg-secondary);line-height:1.6;font-size:14px}a{color:var(--primary-color);text-decoration:none;transition:var(--transition)}a:hover{color:var(--primary-hover)}img{max-width:100%;height:auto}button{font-family:var(--font-family);cursor:pointer;border:none;background:none;transition:var(--transition)}input,textarea{font-family:var(--font-family);font-size:14px}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.btn{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:14px;font-weight:500;text-align:center;cursor:pointer;transition:var(--transition);border:none}.btn-primary{background-color:var(--primary-color);color:var(--text-light)}.btn-primary:hover{background-color:var(--primary-hover);color:var(--text-light)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--border-color)}.btn-outline{background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color)}.btn-outline:hover{background-color:var(--primary-color);color:var(--text-light)}.card{background-color:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;transition:var(--transition)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;margin-bottom:var(--spacing-xs);color:var(--text-secondary);font-size:13px;font-weight:500}.form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;transition:var(--transition)}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f626}.stars{display:inline-flex;gap:2px;color:var(--star-color);font-size:16px}.stars.large{font-size:24px}.stars.interactive{cursor:pointer}.star{transition:var(--transition)}.star.empty{color:var(--border-color)}.star.half:before{content:"★";background:linear-gradient(90deg,var(--star-color) 50%,var(--border-color) 50%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tag{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:12px;margin-right:var(--spacing-xs);margin-bottom:var(--spacing-xs);transition:var(--transition)}.tag:hover{background-color:var(--border-color);color:var(--text-primary)}.loading{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.loading:after{content:"...";animation:dots 1.5s steps(4,end) infinite}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.error{padding:var(--spacing-md);background-color:#fee;color:#c33;border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.success{padding:var(--spacing-md);background-color:#efe;color:#3c3;border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-tertiary)}.text-secondary{color:var(--text-secondary)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.header{background-color:var(--primary-color);color:var(--text-light);padding:0;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:1000}.header-content{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-md);gap:var(--spacing-lg)}.header-left{display:flex;align-items:center;gap:var(--spacing-xl)}.logo{display:flex;align-items:center;gap:12px;text-decoration:none;transition:transform .2s ease}.logo:hover{transform:translateY(-1px)}.logo-icon{display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px rgba(255,105,180,.3))}.logo-text{display:flex;flex-direction:column;justify-content:center}.logo-title{margin:0;font-size:1.8rem;font-weight:800;color:#fff;line-height:1;letter-spacing:-.5px;font-family:PingFang SC,Microsoft YaHei,sans-serif;text-shadow:0 2px 4px rgba(0,0,0,.1)}.logo-subtitle{font-size:.85rem;color:#ffffffe6;font-weight:500;letter-spacing:1px;margin-top:2px;text-transform:uppercase}.nav{display:flex;gap:var(--spacing-lg)}.nav a{color:var(--text-light);font-size:14px;padding:var(--spacing-xs) 0;position:relative}.nav a:hover{color:var(--text-light);opacity:.8}.nav a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--text-light);transition:width .3s ease}.nav a:hover:after{width:100%}.header-center{flex:1;max-width:400px}.search-form{display:flex;gap:var(--spacing-sm)}.search-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:14px}.search-input:focus{outline:none;box-shadow:0 0 0 2px #ffffff4d}.search-btn{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--primary-hover);color:var(--text-light);border:none;border-radius:var(--radius-md);font-size:14px;cursor:pointer;transition:var(--transition)}.search-btn:hover{background-color:var(--primary-color)}.header-right,.user-menu{display:flex;align-items:center;gap:var(--spacing-md)}.user-link{color:var(--text-light);font-weight:500}.user-link:hover{color:var(--text-light);opacity:.8}.btn-link{color:var(--text-light);background:none;border:none;font-size:14px;opacity:.8;cursor:pointer}.btn-link:hover{opacity:1}.auth-links{display:flex;gap:var(--spacing-sm)}.header .btn-outline{border-color:var(--text-light);color:var(--text-light);padding:6px 16px}.header .btn-outline:hover{background-color:var(--text-light);color:var(--primary-color)}.header .btn-primary{background-color:var(--text-light);color:var(--primary-color);padding:6px 16px}.header .btn-primary:hover{background-color:var(--bg-secondary)}@media(max-width:768px){.header-content{flex-wrap:wrap}.header-left{flex:1 1 100%;justify-content:space-between}.nav{order:3;flex:1 1 100%;justify-content:center;padding-top:var(--spacing-sm);border-top:1px solid rgba(255,255,255,.2)}.header-center{max-width:none;flex:1}}.footer{background-color:var(--bg-dark);color:#aaa;padding:var(--spacing-xl) 0 var(--spacing-md);margin-top:var(--spacing-xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.footer-section h4{color:var(--text-light);font-size:16px;margin-bottom:var(--spacing-md);font-weight:500}.footer-section p{line-height:1.6;color:#999}.footer-section ul{list-style:none;padding:0}.footer-section li{margin-bottom:var(--spacing-sm)}.footer-section a{color:#999;transition:var(--transition)}.footer-section a:hover{color:var(--primary-light)}.footer-bottom{border-top:1px solid #444;padding-top:var(--spacing-md);text-align:center;color:#666;font-size:13px}.game-card{display:block;background-color:var(--bg-primary);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition);color:var(--text-primary)}.game-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);color:var(--text-primary)}.game-cover{aspect-ratio:3/4;overflow:hidden;background-color:var(--bg-tertiary)}.game-cover img{width:100%;height:100%;object-fit:cover;transition:var(--transition)}.game-card:hover .game-cover img{transform:scale(1.05)}.no-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:13px}.game-info{padding:var(--spacing-md)}.game-title{font-size:15px;font-weight:600;margin-bottom:var(--spacing-sm);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;min-height:2.8em}.game-meta{display:flex;flex-direction:column;gap:var(--spacing-xs)}.game-rating{display:flex;align-items:center;gap:var(--spacing-xs)}.game-rating .stars{font-size:14px}.rating-value{font-size:13px;font-weight:600;color:var(--text-secondary)}.rating-count{font-size:12px;color:var(--text-tertiary)}.home-page{background-color:var(--bg-secondary)}.home-page>:not(.container){display:none!important}.section{margin-bottom:var(--spacing-xl)}.section-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.section-header h2{font-size:24px;font-weight:600;color:var(--text-primary)}.more-link{color:var(--primary-color);font-size:13px;font-weight:500}.filters{display:inline-flex;gap:var(--spacing-sm);align-items:center}.filters .btn{padding:6px 12px;font-size:13px}.filters .active{background-color:var(--primary-color);color:var(--text-light)}.load-more{text-align:center;margin-top:var(--spacing-lg)}.reviews-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.review-card{background-color:var(--bg-primary);padding:var(--spacing-lg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition)}.review-card:hover{box-shadow:var(--shadow-md)}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.review-game{font-weight:600;color:var(--primary-color);font-size:15px}.review-author{color:var(--text-tertiary);font-size:13px}.review-title{font-size:16px;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.review-content{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-md)}.review-footer{color:var(--text-tertiary);font-size:13px}@media(max-width:768px){.game-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md)}.section-header h2{font-size:20px}}.game-detail-page{background-color:var(--bg-secondary)}.page-title-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0}.page-title{font-size:24px}.detail-body{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-xl)}.community-column .section{margin-bottom:var(--spacing-lg)}.summary-column .summary-card{background-color:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-lg)}.summary-cover{width:100%;max-width:260px;margin:0 auto var(--spacing-lg);aspect-ratio:3/4;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}.summary-cover img{width:100%;height:100%;object-fit:cover}.rating-block{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.avg-rating{text-align:center}.rating-score{font-size:48px;font-weight:700;color:var(--primary-color);line-height:1;margin-bottom:var(--spacing-sm)}.rating-count{font-size:13px;color:var(--text-tertiary);margin-top:var(--spacing-xs)}.user-rating{display:flex;align-items:center;gap:var(--spacing-md)}.rating-label{font-size:14px;color:var(--text-secondary);font-weight:500}.stars.interactive{font-size:24px;cursor:pointer}.stars.interactive .star{transition:var(--transition)}.stars.interactive .star:hover{transform:scale(1.2)}.game-meta-info{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm) var(--spacing-lg);margin-bottom:var(--spacing-lg)}.meta-item{font-size:14px;color:var(--text-secondary)}.meta-item strong{color:var(--text-primary);margin-right:var(--spacing-xs)}.game-description h3{font-size:18px;margin-bottom:var(--spacing-md);color:var(--text-primary)}.game-description p{line-height:1.8;color:var(--text-secondary)}.screenshots-section h3{font-size:18px;margin-bottom:var(--spacing-md)}.screenshots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.screenshots-grid img{width:100%;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.section{background-color:var(--bg-primary);padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm)}.section h2{font-size:20px;margin-bottom:var(--spacing-lg);color:var(--text-primary);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary-color)}.tags-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.review-form{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.review-form textarea{margin-bottom:var(--spacing-md)}.reviews-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.review-item{padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-light)}.review-item:last-child{border-bottom:none;padding-bottom:0}.review-header{display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm)}.review-header strong{color:var(--primary-color)}.review-date{color:var(--text-tertiary);font-size:13px}.review-item p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-sm)}.review-actions .btn-link{color:var(--text-tertiary);font-size:13px}.review-actions .btn-link:hover{color:var(--primary-color)}.discussions-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.discussion-item{padding:var(--spacing-md);background-color:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition)}.discussion-item:hover{background-color:var(--bg-tertiary)}.discussion-item h3{font-size:16px;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.discussion-meta{display:flex;gap:var(--spacing-md);font-size:13px;color:var(--text-tertiary)}@media(max-width:768px){.detail-body{grid-template-columns:1fr}.summary-cover{max-width:200px}.game-meta-info{grid-template-columns:1fr}}.discussion-composer{background:var(--bg-primary);padding:var(--spacing-lg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.composer-toolbar{display:flex;gap:8px;margin-bottom:8px}.editor{border:1px dashed var(--border-color);border-radius:var(--radius-md)}.editor-input{min-height:120px;padding:var(--spacing-md);outline:none}.discussion-composer .upload-zone{border:1px dashed var(--border-color);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm)}.attachments-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.attachment-item img{width:100%;border-radius:var(--radius-md)}.attachments-list .attachment-row{margin-bottom:var(--spacing-xs)}.attachments-block{margin-top:var(--spacing-md)}.attachments-grid img{width:100%;border-radius:var(--radius-md)}.video-embed iframe{width:100%;height:360px;border:none}.reply-item{padding:var(--spacing-md);border-bottom:1px solid var(--border-light)}.auth-page{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-md);background-color:var(--bg-secondary)}.auth-container{width:100%;max-width:400px;background-color:var(--bg-primary);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auth-container h1{text-align:center;margin-bottom:var(--spacing-xl);color:var(--text-primary);font-size:28px}.auth-form{margin-bottom:var(--spacing-lg)}.btn-block{width:100%;padding:var(--spacing-md);font-size:16px;font-weight:600}.auth-footer{text-align:center;padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);color:var(--text-secondary)}.auth-footer a{color:var(--primary-color);font-weight:600}.demo-accounts{margin-top:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--bg-secondary);border-radius:var(--radius-md);text-align:center}.demo-accounts p{margin:var(--spacing-xs) 0;font-size:13px}.user-page{padding:var(--spacing-xl) 0}.user-page h1{margin-bottom:var(--spacing-lg)}.tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);border-bottom:2px solid var(--border-color)}.tab{padding:var(--spacing-md) var(--spacing-lg);background:none;border:none;color:var(--text-secondary);font-size:15px;font-weight:500;cursor:pointer;position:relative;transition:var(--transition)}.tab:hover,.tab.active{color:var(--primary-color)}.tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background-color:var(--primary-color)}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-lg)}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--text-tertiary)}.image-uploader{margin-bottom:var(--spacing-lg)}.upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-xl);text-align:center;background-color:var(--bg-secondary);transition:var(--transition);cursor:pointer}.upload-zone:hover{border-color:var(--primary-color);background-color:var(--bg-tertiary)}.upload-zone.drag-active{border-color:var(--primary-color);background-color:var(--primary-light);opacity:.8}.file-input{display:none}.upload-label{display:block;cursor:pointer}.upload-icon{font-size:48px;margin-bottom:var(--spacing-md)}.upload-text{font-size:16px;color:var(--text-primary);margin-bottom:var(--spacing-sm);font-weight:500}.upload-hint{font-size:13px;color:var(--text-tertiary)}.uploading{padding:var(--spacing-lg)}.spinner{width:40px;height:40px;margin:0 auto var(--spacing-md);border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.images-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-lg)}.image-preview-item{position:relative;aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.image-preview-item img{width:100%;height:100%;object-fit:cover}.remove-btn{position:absolute;top:var(--spacing-xs);right:var(--spacing-xs);width:28px;height:28px;border-radius:50%;background-color:#000000b3;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;transition:var(--transition)}.remove-btn:hover{background-color:#c33;transform:scale(1.1)}.create-game-page{padding:var(--spacing-xl) 0;background-color:var(--bg-secondary);min-height:calc(100vh - 200px)}.create-game-page h1{font-size:28px;margin-bottom:var(--spacing-xl);color:var(--text-primary)}.game-form{max-width:800px;background-color:var(--bg-primary);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.form-section{padding:var(--spacing-lg) 0;border-bottom:1px solid var(--border-light)}.form-section:last-of-type{border-bottom:none}.form-section h2{font-size:20px;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.section-hint{font-size:13px;color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.checkbox-group{margin-top:var(--spacing-md)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:14px}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-light)}.form-actions .btn{min-width:120px}@media(max-width:768px){.form-row{grid-template-columns:1fr}.game-form{padding:var(--spacing-lg)}}.admin-dashboard{background-color:var(--bg-secondary);min-height:100vh}.admin-header{background-color:var(--bg-dark);color:var(--text-light);padding:var(--spacing-lg) 0;margin-bottom:var(--spacing-xl)}.admin-header .container{display:flex;justify-content:space-between;align-items:center}.admin-header h1{color:var(--text-light);font-size:24px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.stat-card{background-color:var(--bg-primary);padding:var(--spacing-xl);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);text-align:center}.stat-card h3{font-size:14px;color:var(--text-secondary);margin-bottom:var(--spacing-md);font-weight:500}.stat-value{font-size:36px;font-weight:700;color:var(--primary-color)}.admin-section{background-color:var(--bg-primary);padding:var(--spacing-lg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-lg)}.admin-section h2{font-size:20px;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary-color)}.admin-table{width:100%;border-collapse:collapse}.admin-table th{background-color:var(--bg-secondary);padding:var(--spacing-md);text-align:left;font-weight:600;font-size:13px;color:var(--text-secondary);border-bottom:2px solid var(--border-color)}.admin-table td{padding:var(--spacing-md);border-bottom:1px solid var(--border-light);font-size:14px}.admin-table tr:hover{background-color:var(--bg-secondary)}.btn-sm{padding:4px 12px;font-size:13px}.btn-danger{background-color:#dc3545;color:#fff}.btn-danger:hover{background-color:#c82333;color:#fff}
