*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Microsoft YaHei,sans-serif}#root{text-align:left;width:100%;max-width:100%;margin:0}*{box-sizing:border-box;margin:0;padding:0}body{background:#f5f5f5;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Microsoft YaHei,sans-serif}.app{min-height:100vh}.auth-container{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-box{background:#fff;border-radius:12px;width:100%;max-width:360px;padding:40px;box-shadow:0 4px 20px #0000001a}.auth-box h1{text-align:center;color:#398bd4;margin-bottom:30px;font-size:1.8rem}.auth-box h2{text-align:center;color:#333;margin-bottom:20px;font-size:1.3rem}.auth-box input{border:2px solid #ddd;border-radius:8px;width:100%;margin-bottom:16px;padding:14px;font-size:1rem;transition:border-color .3s}.auth-box input:focus{border-color:#398bd4;outline:none}.auth-box button{color:#fff;cursor:pointer;background:#398bd4;border:none;border-radius:4px;width:100%;margin-bottom:12px;padding:14px;font-size:1rem;transition:background .3s}.auth-box button:hover{background:#2f71b8}.auth-box .switch{text-align:center;color:#666;font-size:.9rem}.auth-box .switch a{color:#398bd4;cursor:pointer;text-decoration:underline}.error{color:#398bd4;text-align:center;margin-bottom:12px;font-size:.9rem}.main-header{color:#fff;z-index:100;background:#398bd4;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #00000026}.main-header h2{font-size:1.3rem}.logout-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff80;border-radius:6px;margin-left:12px;padding:6px 12px;font-size:.9rem}.logout-btn:hover{background:#ffffff1a}.main-content{max-width:100%;padding:16px}.create-btn{color:#fff;cursor:pointer;background:#398bd4;border:none;border-radius:8px;width:100%;margin-bottom:20px;padding:14px;font-size:1rem}.create-btn:hover{background:#a93226}.restaurant-list{grid-template-columns:repeat(2,1fr);gap:16px;padding-bottom:80px;display:grid}.restaurant-card{cursor:pointer;background:#fff;border-radius:12px;padding:12px;transition:transform .2s;box-shadow:0 2px 10px #00000014}.restaurant-card:hover{transform:translateY(-2px)}.restaurant-card img{object-fit:cover;border-radius:8px;width:100%;height:150px;margin-bottom:10px}.restaurant-card h3{color:#333;margin-bottom:6px;font-size:1rem}.restaurant-card .address,.restaurant-card .content{color:#666;white-space:pre-wrap;word-break:break-word;margin-bottom:10px;font-size:.9rem}.restaurant-card .meta{color:#999;justify-content:space-between;font-size:.85rem;display:flex}.empty{text-align:center;color:#999;padding:40px}.create-page{max-width:600px;margin:0 auto;padding:20px}.create-box{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 10px #00000014}.create-box h2{text-align:center;color:#333;margin-bottom:20px}.create-box input{border:2px solid #ddd;border-radius:8px;width:100%;margin-bottom:16px;padding:12px;font-size:1rem}.create-box input:focus{border-color:#398bd4;outline:none}.create-box textarea{resize:vertical;border:2px solid #ddd;border-radius:8px;width:100%;min-height:100px;margin-bottom:16px;padding:12px;font-family:inherit;font-size:1rem}.create-box textarea:focus{border-color:#398bd4;outline:none}.image-upload{margin-bottom:16px}.upload-btn{cursor:pointer;color:#666;background:#f5f5f5;border:2px dashed #ddd;border-radius:8px;padding:10px 20px;display:inline-block}.upload-btn:hover{color:#398bd4;border-color:#398bd4}.image-preview{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.preview-item{aspect-ratio:1;position:relative}.preview-item img{object-fit:cover;border-radius:8px;width:100%;height:100%}.preview-item button{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;width:20px;height:20px;font-size:14px;line-height:1;position:absolute;top:4px;right:4px}.form-buttons{gap:12px;display:flex}.cancel-btn{color:#333;cursor:pointer;background:#ddd;border:none;border-radius:8px;flex:1;padding:12px;font-size:1rem}.submit-btn{color:#fff;cursor:pointer;background:#398bd4;border:none;border-radius:8px;flex:1;padding:12px;font-size:1rem}.submit-btn:hover{background:#a93226}.detail-page{max-width:600px;margin:0 auto;padding:20px 20px 200px}.back-btn{color:#398bd4;cursor:pointer;background:0 0;border:none;margin-bottom:16px;padding:8px 0;font-size:1rem}.detail-info{margin-bottom:20px}.detail-info h1{color:#333;margin-bottom:8px}.detail-info .address{color:#666}.detail-images{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:20px;display:grid}.detail-images img{object-fit:cover;border-radius:8px;width:100%;height:150px}.comment-form{z-index:100;background:#fff;flex-direction:column;gap:8px;padding:10px 20px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #00000014}.comment-input-row{align-items:center;gap:8px;width:100%;display:flex}.comment-input-row textarea{resize:none;border:1px solid #ddd;border-radius:24px;flex:1;width:100%;min-height:44px;max-height:150px;padding:10px 16px;font-family:inherit;font-size:1rem;box-shadow:0 1px 6px #20212447}.comment-input-row textarea:focus{border-color:#398bd4;outline:none}.comment-input-row button{color:#fff;cursor:pointer;white-space:nowrap;background:#398bd4;border:none;border-radius:24px;flex-shrink:0;padding:8px 16px;font-size:1rem}.comment-input-row button:hover{background:#a93226}.comment-input-row .img-btn{cursor:pointer;background:#f5f5f5;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1.2rem;display:flex}.comment-img-preview{grid-template-columns:repeat(5,1fr);gap:4px;width:100%;max-width:400px;margin-top:8px;display:grid}.comment-img-preview img{aspect-ratio:1;object-fit:cover;border-radius:4px;width:100%}.comment-list{background:#fff;border-radius:12px;margin-top:20px;padding:16px;overflow:hidden;box-shadow:0 2px 10px #00000014}.comment-list h3{color:#333;margin-bottom:16px}.no-comments{text-align:center;color:#999;padding:20px}.comment-item{border-bottom:1px solid #eee;padding:12px 0}.comment-item:last-child{border-bottom:none}.comment-item .author{color:#333;margin-bottom:6px;font-weight:700}.comment-item .comment-author{align-items:center;gap:8px;margin-bottom:6px;display:flex}.comment-item .comment-avatar{object-fit:cover;border-radius:50%;width:28px;height:28px}.comment-item .comment-username{color:#333;font-weight:700}.comment-item .comment-avatar.clickable,.comment-item .comment-username.clickable{cursor:pointer}.comment-item .comment-avatar.clickable:hover,.comment-item .comment-username.clickable:hover{opacity:.8}.comment-item .comment-userid{color:#999;font-size:.8rem}.comment-item .text{color:#333;white-space:pre-wrap;margin-bottom:8px}.comment-item .comment-imgs{grid-template-columns:repeat(4,1fr);gap:4px;margin-top:8px;display:grid}.comment-item .comment-imgs img{aspect-ratio:1;object-fit:cover;border-radius:4px;width:100%}.comment-item .time{color:#999;margin-top:8px;font-size:.85rem}.search-bar{background:#fff;border-bottom:1px solid #eee;gap:8px;padding:12px;display:flex}.search-bar input{border:1px solid #ddd;border-radius:20px;flex:1;padding:8px 12px;font-size:14px}.search-bar button{color:#fff;cursor:pointer;background:#398bd4;border:none;border-radius:20px;padding:8px 16px}.search-bar button[type=button]{background:#999}.search-tabs{background:#fff;border-bottom:1px solid #eee;gap:8px;padding:8px 12px;display:flex}.search-tabs button{color:#398bd4;cursor:pointer;background:#fff;border:1px solid #398bd4;border-radius:16px;padding:6px 16px}.search-tabs button.active{color:#fff;background:#398bd4}.user-search-card{cursor:pointer;background:#fff;border-bottom:1px solid #eee;align-items:center;gap:12px;padding:12px;display:flex}.user-search-avatar{object-fit:cover;border-radius:50%;width:48px;height:48px}.user-search-name{font-size:16px;font-weight:700}.user-search-id{color:#999;font-size:12px}.fab-btn{cursor:pointer;z-index:99;background:#398bd4;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:transform .2s,background .2s;display:flex;position:fixed;bottom:20px;left:20px;box-shadow:0 4px 12px #c0392b66}.fab-btn:hover{background:#a93226;transform:scale(1.1)}.fab-btn span{color:#fff;font-size:32px;font-weight:300;line-height:1}.user-info{cursor:pointer;align-items:center;gap:8px;display:flex}.header-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.profile-page{max-width:600px;margin:0 auto;padding:20px}.profile-header{background:#fff;border-radius:12px;margin-bottom:20px;padding:24px;box-shadow:0 2px 10px #00000014}.avatar-section{flex-direction:column;align-items:center;gap:12px;margin-bottom:16px;display:flex}.profile-avatar{object-fit:cover;border-radius:50%;width:100px;height:100px}.avatar-upload-btn{color:#fff;cursor:pointer;background:#398bd4;border-radius:4px;padding:6px 12px;font-size:.85rem}.profile-info{text-align:center}.username-display{justify-content:center;align-items:center;gap:12px;margin-bottom:8px;display:flex}.username-display h2{color:#333;margin:0}.username-display button{cursor:pointer;background:#f0f0f0;border:none;border-radius:4px;padding:4px 12px;font-size:.8rem}.username-edit{justify-content:center;gap:8px;margin-bottom:12px;display:flex}.username-edit input{border:1px solid #ddd;border-radius:4px;padding:8px}.username-edit button{color:#fff;cursor:pointer;background:#398bd4;border:none;border-radius:4px;padding:8px 12px}.user-id{color:#666;margin-bottom:4px;font-size:.95rem}.permission{color:#e74c3c;font-size:.9rem;font-weight:700}.my-posts{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #00000014}.my-posts h3{color:#333;margin-bottom:16px}.user-post-card{cursor:pointer;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:12px;display:flex}.user-post-card:last-child{border-bottom:none}.user-post-card h4{color:#333;margin:0 0 4px}.user-post-card p{color:#999;margin:0;font-size:.85rem}.post-time{color:#ccc;font-size:.8rem}.delete-btn{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:4px;padding:6px 12px;font-size:.85rem}.logout-btn-full{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:8px;width:100%;margin-top:20px;padding:14px;font-size:1rem}.detail-info .author-info{color:#999;margin-top:8px;font-size:.85rem}.profile-actions{gap:12px;padding:16px;display:flex}.action-btn{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;flex:1;padding:12px;font-size:14px}.action-btn.danger{color:#e74c3c;border-color:#e74c3c}.action-btn:hover{background:#f5f5f5}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:90%;max-width:320px;padding:24px}.modal h3{margin:0 0 16px}.modal input{box-sizing:border-box;border:1px solid #ddd;border-radius:6px;width:100%;margin-bottom:12px;padding:10px}.modal-buttons{gap:8px;margin-top:16px;display:flex}.modal-buttons button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;flex:1;padding:10px}.modal-buttons button.primary{color:#fff;background:#398bd4;border:none}.modal-buttons button.danger{color:#fff;background:#e74c3c;border:none}.admin-actions{background:#fff;border-bottom:1px solid #eee;padding:16px}.admin-actions h3{margin:0 0 12px;font-size:16px}.action-buttons{flex-wrap:wrap;gap:8px;display:flex}.action-buttons button{color:#398bd4;cursor:pointer;background:#fff;border:1px solid #398bd4;border-radius:6px;padding:8px 16px;font-size:14px}.action-buttons button.danger{color:#e74c3c;border-color:#e74c3c}.action-buttons button:hover{background:#f0f8ff}.user-banned{color:#e74c3c;font-weight:700}.delete-post-btn{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:6px;margin-top:12px;padding:8px 16px}
