*{margin:0;padding:0;box-sizing:border-box}
html,body{font-family:'Roboto',Arial,sans-serif;background:#fff;color:#202124;height:100%;overflow:hidden}

/* Google Maps Header */
.gm-header{height:56px;background:#fff;display:flex;align-items:center;padding:0 16px;gap:16px;border-bottom:1px solid #e0e0e0;box-shadow:0 1px 2px rgba(60,64,67,0.1);z-index:1000;position:relative}
.gm-logo-section{display:flex;align-items:center;gap:12px}
.gm-menu-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;cursor:pointer;font-size:20px;color:#5f6368}
.gm-menu-btn:hover{background:#f1f3f4}
.gm-logo-text{display:flex;align-items:center;gap:4px}
.gm-logo-g{font-size:22px;font-weight:500;color:#4285f4;letter-spacing:-1px}
.gm-logo-m{font-size:22px;font-weight:500;color:#ea4335}
.gm-search-box{flex:1;max-width:640px;display:flex;align-items:center;background:#f1f3f4;border-radius:24px;padding:8px 16px;height:48px}
.gm-search-icon{width:24px;height:24px;color:#5f6368;margin-right:12px;font-size:16px}
.gm-search-input{flex:1;border:none;background:transparent;font-size:16px;color:#3c4043;outline:none}
.gm-clear-btn{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;cursor:pointer;color:#5f6368;font-size:18px;margin-left:8px}
.gm-clear-btn:hover{background:#dadce0}
.gm-actions{display:flex;gap:8px}
.gm-icon-btn{width:40px;height:40px;border-radius:50%;border:none;background:transparent;cursor:pointer;font-size:18px;display:grid;place-items:center}
.gm-icon-btn:hover{background:#f1f3f4}

/* Main Layout */
.gm-main{display:flex;height:calc(100vh - 56px)}
.gm-sidebar{width:408px;background:#fff;overflow-y:auto;box-shadow:2px 0 4px rgba(0,0,0,0.1);z-index:100}
.gm-map-container{flex:1;position:relative}
#map{width:100%;height:100%}

/* Place Card */
.gm-place-card{padding:16px}
.gm-breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;color:#70757a;margin-bottom:12px}
.gm-breadcrumb-sep{font-size:14px}
.gm-title{font-size:22px;font-weight:500;line-height:1.3;margin-bottom:12px;color:#202124}

/* Rating Summary */
.gm-rating-summary{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.gm-stars{display:flex;gap:1px}
.gm-star{width:18px;height:18px;color:#fbbc04;font-size:18px}
.gm-star.empty{color:#dadce0}
.gm-rating-num{font-size:14px;font-weight:500;color:#188038}
.gm-review-count{font-size:14px;color:#70757a;text-decoration:underline;cursor:pointer}
.gm-rank-text{font-size:12px;color:#70757a;width:100%;margin-top:4px}

/* Action Buttons */
.gm-action-btns{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.gm-action-btn{flex:1;min-width:80px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;border-radius:20px;border:none;background:#f1f3f4;cursor:pointer;font-size:12px;color:#1a73e8;font-weight:500;transition:all 0.2s}
.gm-action-btn:hover{background:#e8eaed}
.gm-action-btn.gm-directions{background:#1a73e8;color:#fff}
.gm-action-btn.gm-directions:hover{background:#1557b0}
.gm-btn-icon{font-size:18px}

/* Sections */
.gm-section{border-top:1px solid #e0e0e0;padding:16px 0}
.gm-section-title{font-size:16px;font-weight:500;margin-bottom:12px;color:#202124}

/* About Items */
.gm-about-item{display:flex;gap:16px;margin-bottom:12px;align-items:flex-start}
.gm-about-icon{width:20px;height:20px;font-size:16px;color:#5f6368;flex-shrink:0;margin-top:2px}
.gm-about-text{font-size:14px;line-height:1.5;flex:1}
.gm-about-text a{color:#1a73e8;text-decoration:none}
.gm-about-text a:hover{text-decoration:underline}
.gm-about-sub{font-size:12px;color:#70757a;margin-top:2px}
.gm-open{color:#188038;font-weight:500}

/* Reviews Section */
.gm-reviews-section{padding-top:16px}
.gm-reviews-header{margin-bottom:16px}
.gm-rating-bar{display:flex;flex-direction:column;gap:4px;margin-top:12px}
.gm-rating-row{display:flex;align-items:center;gap:8px;font-size:12px}
.gm-rating-label{width:30px;color:#70757a}
.gm-rating-progress{flex:1;height:4px;background:#e0e0e0;border-radius:2px;overflow:hidden}
.gm-rating-fill{height:100%;background:#fbbc04}
.gm-rating-count{width:30px;color:#70757a;text-align:right}

/* Write Review Button */
.gm-write-review-btn{width:100%;padding:12px;border:1px solid #dadce0;border-radius:8px;background:#fff;cursor:pointer;font-size:14px;font-weight:500;color:#1a73e8;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px}
.gm-write-review-btn:hover{background:#f1f3f4}
.gm-star-icon{font-size:20px}

/* Reviews List */
.gm-reviews-list{display:flex;flex-direction:column;gap:16px}
.gm-review-card{border-bottom:1px solid #e0e0e0;padding-bottom:16px}
.gm-review-header{display:flex;gap:12px;margin-bottom:12px}
.gm-reviewer-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#4285f4,#34a853);display:grid;place-items:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0}
.gm-reviewer-info{flex:1}
.gm-reviewer-name{font-weight:500;font-size:14px;color:#202124;margin-bottom:2px}
.gm-reviewer-meta{font-size:12px;color:#70757a}
.gm-review-rating{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.gm-review-stars{color:#fbbc04;font-size:16px}
.gm-review-date{font-size:12px;color:#70757a}
.gm-review-text{font-size:14px;line-height:1.6;color:#3c4043;margin-bottom:12px}
.gm-review-photos{display:flex;gap:8px;margin-bottom:12px;overflow-x:auto}
.gm-review-photo{width:120px;height:120px;border-radius:8px;object-fit:cover;cursor:pointer}
.gm-review-actions{display:flex;gap:16px;font-size:12px;color:#70757a}
.gm-review-action{cursor:pointer}
.gm-review-action:hover{color:#1a73e8}

/* Photos Grid */
.gm-photos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.gm-photo-item{aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer}
.gm-photo-item img{width:100%;height:100%;object-fit:cover}

/* About Business */
.gm-about-business p{font-size:14px;line-height:1.6;color:#3c4043;margin-bottom:12px}
.gm-tags{display:flex;flex-wrap:wrap;gap:8px}
.gm-tag{background:#f1f3f4;padding:6px 12px;border-radius:16px;font-size:12px;color:#5f6368}

/* Modal */
.gm-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.8);z-index:2000;justify-content:center;align-items:center}
.gm-modal.open{display:flex}
.gm-modal-close{position:absolute;top:16px;right:16px;background:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:24px;cursor:pointer;z-index:10}
.gm-modal-img{max-width:90vw;max-height:90vh;border-radius:8px}
.gm-modal-content{background:#fff;border-radius:8px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;position:relative}
.gm-modal-header{padding:16px 20px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}
.gm-modal-header h3{font-size:18px;font-weight:500}
.gm-modal-body{padding:20px}

/* Form */
.gm-form-group{margin-bottom:16px}
.gm-form-group label{display:block;font-size:12px;color:#5f6368;margin-bottom:6px;font-weight:500}
.gm-form-group input,.gm-form-group textarea{width:100%;padding:12px;border:1px solid #dadce0;border-radius:4px;font-size:14px;outline:none;font-family:inherit}
.gm-form-group input:focus,.gm-form-group textarea:focus{border-color:#1a73e8}
.gm-form-group textarea{min-height:120px;resize:vertical}
.gm-star-rating{display:flex;gap:4px;font-size:28px;color:#dadce0;cursor:pointer}
.gm-star-btn:hover,.gm-star-btn.active{color:#fbbc04}
.gm-upload-box{border:2px dashed #dadce0;border-radius:8px;padding:24px;text-align:center;cursor:pointer}
.gm-upload-box:hover{border-color:#1a73e8;background:#f8f9fa}
.gm-upload-icon{font-size:32px;margin-bottom:8px}
.gm-submit-btn{width:100%;padding:12px;background:#1a73e8;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer}
.gm-submit-btn:hover{background:#1557b0}
.gm-terms{font-size:12px;color:#70757a;margin-top:12px;text-align:center}

/* Admin Panel */
.gm-admin-panel{display:none;position:fixed;inset:0;background:#fff;z-index:3000}
.gm-admin-panel.open{display:block}
.gm-admin-header{background:#1a73e8;color:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center}
.gm-admin-title{font-size:18px;font-weight:500}
.gm-admin-close{background:rgba(255,255,255,0.2);border:none;color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer}
.gm-admin-content{padding:24px;max-width:1200px;margin:0 auto}
.gm-admin-nav{display:flex;gap:16px;margin-bottom:24px;border-bottom:1px solid #dadce0}
.gm-admin-nav-btn{padding:12px 24px;border:none;background:none;font-size:14px;font-weight:500;color:#5f6368;cursor:pointer;border-bottom:2px solid transparent}
.gm-admin-nav-btn.active{color:#1a73e8;border-bottom-color:#1a73e8}
.gm-admin-section{display:none}
.gm-admin-section.active{display:block}
.gm-admin-card{background:#fff;border:1px solid #dadce0;border-radius:8px;padding:20px;margin-bottom:16px}
.gm-admin-card h3{font-size:16px;font-weight:500;margin-bottom:16px}
.gm-admin-review-item{display:flex;gap:16px;padding:16px;border-bottom:1px solid #e0e0e0}
.gm-admin-review-item:last-child{border-bottom:none}
.gm-admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin-top:16px}
.gm-admin-photo-item{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:1}
.gm-admin-photo-item img{width:100%;height:100%;object-fit:cover}
.gm-admin-photo-item .delete-btn{position:absolute;top:8px;right:8px;background:rgba(0,0,0,0.6);color:#fff;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;display:none}
.gm-admin-photo-item:hover .delete-btn{display:block}
.gm-login-box{max-width:360px;margin:auto;padding:32px}
.gm-login-box h2{text-align:center;margin-bottom:24px}

/* Success Message */
.gm-success{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#188038;color:#fff;padding:12px 24px;border-radius:24px;font-size:14px;font-weight:500;display:none;z-index:5000}
.gm-success.show{display:block}

@media(max-width:768px){.gm-sidebar{width:100%}.gm-map-container{display:none}}
