*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #F7F7F7;--yellow: #F5C842;--ink: #1A1A1A;--white: #FFFFFF;--gray-100: #F0F0F0;--gray-200: #E0E0E0;--gray-300: #C0C0C0;--gray-400: #999999;--gray-500: #666666;--radius: 10px;--radius-sm: 6px;--shadow: 0 2px 12px rgba(0, 0, 0, .06);--shadow-hover: 0 4px 20px rgba(0, 0, 0, .1);--transition: .2s ease}html{font-size:16px;scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}ul,ol{list-style:none}button{cursor:pointer;font-family:inherit;border:none;background:none}input,select,textarea{font-family:inherit;font-size:inherit;border:none;outline:none}img{max-width:100%;display:block}.container{max-width:1200px;margin:0 auto;padding:0 24px}.navbar{background:var(--white);border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:100}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.navbar-logo{font-size:1.5rem;font-weight:800;letter-spacing:-.5px}.navbar-logo span{color:var(--yellow)}.navbar-links{display:flex;align-items:center;gap:24px}.navbar-links a{font-size:.9rem;font-weight:500;color:var(--gray-500);transition:color var(--transition)}.navbar-links a:hover,.navbar-links a.active{color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 24px;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;transition:all var(--transition)}.btn-primary{background:var(--yellow);color:var(--ink)}.btn-primary:hover{background:#e6b930;transform:translateY(-1px)}.btn-outline{border:2px solid var(--ink);color:var(--ink);background:transparent}.btn-outline:hover{background:var(--ink);color:var(--white)}.btn-small{padding:6px 16px;font-size:.8rem}.btn-large{padding:14px 32px;font-size:1rem}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;font-weight:600;font-size:.85rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.form-input{width:100%;padding:12px 16px;border:2px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--white);transition:border-color var(--transition);font-size:.95rem}.form-input:focus{border-color:var(--yellow)}.form-select{width:100%;padding:12px 16px;border:2px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--white);transition:border-color var(--transition);font-size:.95rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.form-select:focus{border-color:var(--yellow)}.hero{padding:80px 0 60px;text-align:center}.hero h1{font-size:3rem;font-weight:800;letter-spacing:-1px;margin-bottom:16px;line-height:1.1}.hero h1 span{color:var(--yellow)}.hero p{font-size:1.15rem;color:var(--gray-500);max-width:500px;margin:0 auto 32px}.search-bar{display:flex;max-width:560px;margin:0 auto;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border:2px solid var(--gray-200)}.search-bar input{flex:1;padding:16px 20px;font-size:1rem;background:transparent}.search-bar button{padding:16px 28px;background:var(--yellow);font-weight:700;font-size:.95rem;color:var(--ink);transition:background var(--transition)}.search-bar button:hover{background:#e6b930}.categories{padding:40px 0}.categories h2{font-size:1.5rem;font-weight:700;margin-bottom:24px}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.category-card{background:var(--white);border-radius:var(--radius);padding:28px 20px;text-align:center;box-shadow:var(--shadow);transition:all var(--transition);cursor:pointer;border:2px solid transparent}.category-card:hover{border-color:var(--yellow);transform:translateY(-2px);box-shadow:var(--shadow-hover)}.category-icon{font-size:2rem;margin-bottom:12px}.category-card h3{font-size:.95rem;font-weight:600}.section-title{font-size:1.5rem;font-weight:700;margin-bottom:24px}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-bottom:60px}.shop-card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:all var(--transition);border:2px solid transparent}.shop-card:hover{border-color:var(--yellow);transform:translateY(-3px);box-shadow:var(--shadow-hover)}.shop-card-image{width:100%;height:180px;background:linear-gradient(135deg,var(--gray-200),var(--gray-100));display:flex;align-items:center;justify-content:center;color:var(--gray-400);font-size:.85rem;font-weight:500}.shop-card-body{padding:16px 20px 20px}.shop-card-body h3{font-size:1.05rem;font-weight:700;margin-bottom:4px}.shop-card-location{font-size:.82rem;color:var(--gray-400);margin-bottom:10px}.shop-card-meta{display:flex;align-items:center;justify-content:space-between}.shop-card-rating{font-size:.85rem;font-weight:600;color:var(--yellow)}.shop-card-price{font-size:.82rem;color:var(--gray-500)}.search-layout{display:grid;grid-template-columns:280px 1fr;gap:32px;padding:40px 0}.filter-sidebar{background:var(--white);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);height:fit-content;position:sticky;top:88px}.filter-sidebar h3{font-size:1.1rem;font-weight:700;margin-bottom:24px}.filter-section{margin-bottom:24px}.filter-section h4{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400);margin-bottom:12px}.filter-checkbox{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:.9rem;cursor:pointer}.filter-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--yellow);cursor:pointer}.price-range{display:flex;gap:10px;align-items:center}.price-range input{width:80px;padding:8px 10px;border:2px solid var(--gray-200);border-radius:var(--radius-sm);text-align:center;font-size:.85rem}.price-range input:focus{border-color:var(--yellow)}.price-range span{color:var(--gray-400);font-size:.85rem}.shop-detail{padding:40px 0 60px}.shop-header{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:48px}.shop-image-placeholder{width:100%;height:340px;background:linear-gradient(135deg,var(--gray-200),var(--gray-100));border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--gray-400);font-weight:500}.shop-info h1{font-size:2rem;font-weight:800;margin-bottom:8px}.shop-info .shop-location{color:var(--gray-400);font-size:.95rem;margin-bottom:16px}.shop-info .shop-description{color:var(--gray-500);line-height:1.7;margin-bottom:24px}.services-section{margin-bottom:48px}.services-section h2{font-size:1.4rem;font-weight:700;margin-bottom:20px}.service-item{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--white);border-radius:var(--radius-sm);margin-bottom:10px;box-shadow:var(--shadow)}.service-item-left h4{font-weight:600;font-size:.95rem;margin-bottom:2px}.service-item-left span{font-size:.8rem;color:var(--gray-400)}.service-item-right{font-size:1.05rem;font-weight:700;color:var(--ink)}.reviews-section h2{font-size:1.4rem;font-weight:700;margin-bottom:20px}.review-item{background:var(--white);border-radius:var(--radius-sm);padding:20px;margin-bottom:12px;box-shadow:var(--shadow)}.review-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.review-author{font-weight:600;font-size:.9rem}.review-stars{color:var(--yellow);font-size:.9rem;letter-spacing:1px}.review-text{color:var(--gray-500);font-size:.9rem;line-height:1.6}.review-form{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;max-width:520px}.review-form-stars{display:flex;gap:4px}.review-form .star-btn{background:none;border:none;font-size:1.8rem;line-height:1;padding:0;cursor:pointer;color:var(--gray-300);transition:color var(--transition)}.review-form .star-btn.on{color:var(--yellow)}.review-login-note{color:var(--gray-400);font-size:.9rem;margin-bottom:20px}.review-success{color:#2e7d32;font-size:.85rem}.shop-contact{display:flex;flex-direction:column;gap:4px;margin:12px 0 16px;font-size:.9rem;color:var(--gray-500)}.shop-contact a{color:var(--yellow);font-weight:600;text-decoration:none}.shop-contact a:hover{text-decoration:underline}.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 64px);padding:40px 24px}.auth-card{background:var(--white);border-radius:var(--radius);padding:40px;width:100%;max-width:420px;box-shadow:var(--shadow)}.auth-card h1{font-size:1.6rem;font-weight:800;margin-bottom:8px}.auth-card p{color:var(--gray-400);font-size:.9rem;margin-bottom:28px}.auth-card p a{color:var(--yellow);font-weight:600}.auth-card p a:hover{text-decoration:underline}.auth-error{background:#fff0f0;color:#c33;padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:16px}.create-shop-page{padding:40px 0 60px;max-width:1040px;margin:0 auto}.create-step-single{max-width:560px;margin:0 auto}.profile-card{max-width:720px}.create-shop-page h1{font-size:1.8rem;font-weight:800;margin-bottom:8px}.create-shop-page>p{color:var(--gray-400);margin-bottom:32px}.create-shop-card{background:var(--white);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);margin-bottom:32px}.create-shop-card h2{font-size:1.2rem;font-weight:700;margin-bottom:20px}.add-service-row{display:grid;grid-template-columns:1fr 100px 100px auto;gap:10px;align-items:end}.service-list-added{margin-top:16px}.service-added-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--gray-100);border-radius:var(--radius-sm);margin-bottom:8px;font-size:.9rem}.service-added-item button{color:#c33;font-weight:600;font-size:.8rem}.no-results{text-align:center;padding:60px 20px;color:var(--gray-400)}.no-results h3{font-size:1.2rem;margin-bottom:8px;color:var(--gray-500)}.loading{text-align:center;padding:60px 20px;color:var(--gray-400);font-weight:500}@media (max-width: 900px){.hero h1{font-size:2.2rem}.category-grid,.shop-grid{grid-template-columns:repeat(2,1fr)}.search-layout{grid-template-columns:1fr}.filter-sidebar{position:static}.shop-header{grid-template-columns:1fr}.add-service-row{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.hero h1{font-size:1.8rem}.hero p{font-size:1rem}.search-bar{flex-direction:column}.search-bar button{padding:14px}.category-grid{grid-template-columns:repeat(2,1fr)}.shop-grid{grid-template-columns:1fr}.navbar-links{gap:14px}.navbar-links a{font-size:.8rem}.auth-card{padding:28px 24px}.add-service-row{grid-template-columns:1fr}}.image-uploader-boxes{display:flex;gap:12px}.image-box{flex:1;max-width:150px;display:flex;flex-direction:column;align-items:center;gap:6px}.image-box-add{width:100%;aspect-ratio:1;border:2px dashed #cbd5e1;border-radius:10px;background:#f8fafc;font-size:34px;color:#94a3b8;cursor:pointer}.image-box-add:hover:not(:disabled){border-color:#94a3b8;color:#64748b}.image-box-filled{position:relative;width:100%;aspect-ratio:1}.image-box-filled img{width:100%;height:100%;object-fit:cover;border-radius:10px}.image-box-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:#0009;color:#fff;cursor:pointer;line-height:1;font-size:16px}.image-box-label{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.04em;min-height:14px}.shop-gallery{width:100%}.shop-gallery-main{width:100%;height:320px;object-fit:cover;border-radius:12px;cursor:pointer;display:block}.shop-gallery-dots{display:flex;gap:8px;justify-content:center;margin-top:10px}.shop-gallery-dots button{width:10px;height:10px;border-radius:50%;border:none;background:#cbd5e1;cursor:pointer;padding:0}.shop-gallery-dots button.active{background:#334155}.shop-card-image img{width:100%;height:100%;object-fit:cover;display:block}.profile-divider{margin:24px 0 16px;padding-top:16px;border-top:1px solid var(--gray-200);font-size:.85rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.04em}.shop-actions{display:flex;flex-wrap:wrap;gap:12px}.toast-container{position:fixed;bottom:20px;left:20px;display:flex;flex-direction:column;gap:10px;z-index:1000;max-width:360px}.toast{text-align:left;border:none;cursor:pointer;padding:14px 18px;border-radius:var(--radius-sm);color:var(--white);font-size:.9rem;line-height:1.4;box-shadow:var(--shadow-hover);animation:toast-in .2s ease}.toast-success{background:#2e7d32}.toast-error{background:#c62828}.toast-info{background:var(--ink)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toggle-group{display:flex;align-items:center;gap:12px}.toggle-switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gray-300);border-radius:999px;transition:background var(--transition)}.toggle-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background:var(--white);border-radius:50%;transition:transform var(--transition)}.toggle-switch input:checked+.toggle-slider{background:var(--yellow)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-text{font-size:.9rem;color:var(--gray-500)}.status-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.status-pending{background:#fff4d6;color:#8a6d00}.admin-panel{padding:40px 0 60px}.admin-shop-list{display:flex;flex-direction:column;gap:14px;margin-top:20px}.admin-shop-item{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--white);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow)}.admin-shop-info h3{font-size:1.1rem;font-weight:700;margin-bottom:4px}.admin-shop-meta{font-size:.85rem;color:var(--gray-400)}.admin-shop-owner{font-size:.85rem;color:var(--gray-500);margin-top:4px}.admin-shop-actions{display:flex;gap:10px;flex-shrink:0}.shop-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;margin-bottom:20px}.shop-edit-left,.shop-edit-right{display:flex;flex-direction:column;gap:20px;min-width:0}@media (max-width: 860px){.shop-edit-grid{grid-template-columns:1fr}}.btn-danger{background:#c62828;color:var(--white)}.btn-danger:hover{background:#a81f1f}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.modal-card{background:var(--white);border-radius:var(--radius);padding:28px;max-width:420px;width:100%;box-shadow:var(--shadow-hover)}.modal-card h3{font-size:1.2rem;font-weight:700;margin-bottom:10px}.modal-card p{color:var(--gray-500);font-size:.9rem;margin-bottom:22px}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.admin-tabs{display:flex;gap:8px;margin:16px 0 8px}.admin-tabs button{background:none;border:none;cursor:pointer;padding:8px 16px;border-radius:999px;font-size:.9rem;font-weight:600;color:var(--gray-500)}.admin-tabs button.active{background:var(--yellow);color:var(--ink)}.review-remove{margin-top:8px;background:none;border:none;cursor:pointer;color:#c62828;font-size:.8rem;padding:0}.review-remove:hover{text-decoration:underline}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;margin:16px 0 20px}.slot-btn{padding:10px 0;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--white);cursor:pointer;font-size:.9rem;color:var(--ink);transition:all var(--transition)}.slot-btn:hover:not(:disabled){border-color:var(--yellow)}.slot-btn.selected{background:var(--yellow);border-color:var(--yellow);font-weight:600}.slot-btn:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}.book-closed{color:var(--gray-500);font-size:.9rem;margin:12px 0}.booking-list{display:flex;flex-direction:column;gap:12px}.booking-item{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--white);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow)}.booking-item.is-cancelled{opacity:.6}.booking-item h3{font-size:1rem;font-weight:700;margin-bottom:4px}.booking-meta{font-size:.9rem;color:var(--gray-500)}.booking-when{font-size:.85rem;color:var(--gray-400);margin-top:2px}.status-cancelled{background:#fbe9e9;color:#c62828}.my-bookings,.book-page{padding:40px 0 60px}.payment-section{border-top:1px solid var(--gray-200);padding-top:16px;margin-bottom:16px}.payment-section h3{font-size:1rem;font-weight:700;margin-bottom:8px}.payment-amount{font-size:.95rem;color:var(--gray-500);margin-bottom:12px}.payment-methods{display:flex;gap:10px;margin-bottom:14px}.pay-option{flex:1;padding:12px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--white);cursor:pointer;font-size:.9rem;font-weight:600;color:var(--gray-500);transition:all var(--transition)}.pay-option.selected{border-color:var(--yellow);background:var(--yellow);color:var(--ink)}.card-form{display:flex;flex-direction:column;gap:0}.status-paid{background:#e6f4ea;color:#1e7e34}.status-onsite{background:var(--gray-100);color:var(--gray-500)}.booking-pay{margin-top:6px}.shop-rating{color:var(--yellow);font-size:1rem;font-weight:600;letter-spacing:1px;margin:6px 0 4px}.service-item{border-bottom:1px solid var(--gray-100)}.service-summary{display:flex;justify-content:space-between;align-items:center;padding:14px 0;cursor:pointer;list-style:revert}.service-summary .service-item-left h4{font-size:.95rem;font-weight:600;display:inline;margin-right:8px}.service-summary .service-item-left span{font-size:.85rem;color:var(--gray-400)}.service-summary .service-item-right{font-weight:700;color:var(--ink)}.service-description{padding:0 0 14px;font-size:.9rem;color:var(--gray-500);line-height:1.5}.chat-widget{position:fixed;bottom:20px;right:20px;z-index:1050;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.chat-toggle{background:var(--yellow);color:var(--ink);border:none;border-radius:999px;padding:14px 22px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-hover)}.chat-panel{width:280px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-hover);overflow:hidden}.chat-panel-header{display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:var(--white);padding:12px 16px;font-weight:600}.chat-panel-header button{background:none;border:none;color:var(--white);font-size:1.3rem;line-height:1;cursor:pointer}.chat-panel-body{padding:20px 16px}.chat-panel-body p{font-size:.9rem;color:var(--gray-500);margin-bottom:8px}.chat-soon{color:var(--gray-400);font-size:.8rem}.req{color:#dc2626;font-weight:700}.field-error{color:#dc2626;font-size:.8rem;margin-top:5px}
