:root{--primary: #6C63FF;--accent: #2DD4BF;--background: #F9FAFB;--surface: #FFFFFF;--text: #111827;--text-light: #6B7280;--border: #E5E7EB;--radius: 16px;--shadow: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 25px rgba(0, 0, 0, .15)}@layer base{*{-webkit-tap-highlight-color:transparent;box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background-color:#f7f9fc;color:#111827;overscroll-behavior:none}}@layer components{.page-container{max-width:1200px;margin-inline:auto;padding-inline:1rem}@media (min-width: 768px){.page-container{padding-inline:1.5rem}}.card{background:#FFFFFF;border:1px solid #E5E7EB;border-radius:18px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transition:all .2s ease;margin-bottom:20px}.card:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}.input-field{width:100%;border-radius:14px;border:1px solid var(--border);background:var(--surface);padding:12px 14px;box-shadow:var(--shadow);font-size:16px;color:var(--text)}.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6c63ff1a}.btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:14px;padding:8px 16px;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block}.btn-secondary:hover{background:var(--background)}.btn-ghost{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:14px;padding:8px 16px;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block}.btn-ghost:hover{background:var(--background)}.form-input{width:100%;border-radius:14px;border:1px solid var(--border);background:var(--surface);padding:12px 14px;box-shadow:var(--shadow);font-size:16px;color:var(--text)}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:20px;background:rgba(108,99,255,.1);color:var(--primary);font-weight:600;padding:4px 10px;font-size:11px}.results-grid{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 768px){.results-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}}@media (min-width: 1024px){.results-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}}.slots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (min-width: 768px){.slots-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.slots-grid{grid-template-columns:repeat(2,1fr)}}.app-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(20px);border-bottom:1px solid rgba(229,231,235,.3);padding:16px 20px}.app-header-content{display:flex;align-items:center;justify-content:space-between;max-width:448px;margin:0 auto}.app-logo{font-size:20px;font-weight:800;color:var(--text);text-decoration:none}.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:16px 24px;background:var(--primary);color:#fff;font-weight:600;border-radius:var(--radius);border:none;box-shadow:var(--shadow);transition:all .2s ease;min-height:52px;text-decoration:none;cursor:pointer}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;transform:none;cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;background:transparent;color:var(--primary);font-weight:500;border:2px solid var(--primary);border-radius:var(--radius);transition:all .2s ease;min-height:48px;text-decoration:none;cursor:pointer}.btn-ghost:hover{background:var(--primary);color:#fff}.app-container{max-width:448px;margin:0 auto;padding:0 20px}.hero-section{text-align:center;padding:40px 20px}.hero-title{font-size:32px;font-weight:800;color:var(--text);margin-bottom:12px;line-height:1.2}.hero-subtitle{font-size:18px;color:var(--text-light);margin-bottom:0}.search-card{background:var(--surface);border-radius:20px;padding:20px;box-shadow:var(--shadow);margin-bottom:20px;border:1px solid var(--border)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:14px;font-weight:600;color:var(--text);margin-bottom:8px}.form-input{width:100%;padding:16px;border:2px solid var(--border);border-radius:var(--radius);font-size:16px;color:var(--text);background:var(--surface);transition:all .2s ease;min-height:52px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6c63ff1a}.form-select{width:100%;padding:16px 48px 16px 16px;border:2px solid var(--border);border-radius:var(--radius);font-size:16px;color:var(--text);background:var(--surface);-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 16px center;background-repeat:no-repeat;background-size:20px;min-height:52px;transition:all .2s ease}.form-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6c63ff1a}.location-btn{width:100%;padding:16px;background:rgba(108,99,255,.1);color:var(--primary);border:2px solid var(--primary);border-radius:var(--radius);font-weight:600;font-size:16px;min-height:52px;transition:all .2s ease;cursor:pointer}.location-btn:hover,.location-btn.active{background:var(--primary);color:#fff}.result-card{background:var(--surface);border-radius:20px;padding:20px;box-shadow:var(--shadow);margin-bottom:16px;border:1px solid var(--border);transition:all .2s ease}.result-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.result-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.result-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:4px}.result-subtitle{font-size:14px;color:var(--text-light);margin-bottom:8px}.result-price{font-size:24px;font-weight:800;color:var(--text)}.badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:600;margin-right:8px}.badge-time{background:rgba(108,99,255,.1);color:var(--primary)}.badge-price{background:rgba(45,212,191,.1);color:var(--accent)}.merchant-card{background:var(--surface);border-radius:var(--radius);padding:20px;margin-bottom:20px;border:1px solid var(--border);box-shadow:var(--shadow)}.merchant-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.merchant-title{font-size:18px;font-weight:700;color:var(--text);margin:0}.merchant-address{font-size:14px;color:var(--text-light);margin:0}.distance-badge{background:var(--primary);color:#fff;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600}.favorite-badge{background:#FEF2F2;border:1px solid #FECACA;color:#dc2626;padding:2px 6px;border-radius:8px;font-size:12px}.rating-badge{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-light)}.rating-icon{font-size:10px}.price-range{font-size:16px;font-weight:700;color:var(--primary);margin:0}.slots-section{margin-top:16px}.slots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}@media (max-width: 500px){.slots-grid{grid-template-columns:1fr}}.slot-card{background:var(--background);border:1px solid var(--border);border-radius:8px;padding:12px;text-align:center;transition:all .2s ease}.slot-card:hover{border-color:var(--primary);transform:translateY(-2px)}.slot-time{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px}.slot-service{font-size:12px;color:var(--text-light);margin-bottom:4px}.slot-price{font-size:14px;font-weight:700;color:var(--primary)}.call-btn{background:var(--accent);color:#fff;padding:12px 20px;border-radius:12px;font-weight:600;font-size:14px;border:none;transition:all .2s ease;cursor:pointer;text-decoration:none;display:inline-block}.call-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #2dd4bf4d}.merchant-card-link{text-decoration:none;color:inherit;display:block}.merchant-card-link:hover .merchant-card{transform:translateY(-2px);box-shadow:0 8px 24px #6c63ff26}.back-btn{display:inline-flex;align-items:center;gap:8px;color:var(--primary);text-decoration:none;font-weight:600;font-size:14px;padding:8px 0}.back-btn:hover{color:var(--accent)}.merchant-detail-header{background:var(--surface);border-radius:var(--radius);padding:24px;margin-bottom:20px;border:1px solid var(--border);box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:flex-start}.merchant-detail-title{font-size:24px;font-weight:800;color:var(--text);margin:0 0 8px}.merchant-detail-address{font-size:14px;color:var(--text-light);margin:0}.rating-summary{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-light)}.favorite-toggle{background:var(--surface);border:2px solid var(--border);color:var(--text);padding:8px 16px;border-radius:12px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease}.favorite-toggle.active{background:#FEF2F2;border-color:#dc2626;color:#dc2626}.favorite-toggle:hover{transform:translateY(-1px)}.photos-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}.photo-item{aspect-ratio:4/3;border-radius:12px;overflow:hidden}.tabs-nav{display:flex;background:var(--surface);border-radius:var(--radius);padding:4px;margin-bottom:20px;border:1px solid var(--border)}.tab-btn{flex:1;padding:12px 16px;border:none;background:transparent;color:var(--text-light);font-weight:600;font-size:14px;border-radius:calc(var(--radius) - 4px);cursor:pointer;transition:all .2s ease}.tab-btn.active{background:var(--primary);color:#fff}.tab-content{background:var(--surface);border-radius:var(--radius);padding:20px;border:1px solid var(--border);box-shadow:var(--shadow)}.content-section{margin-bottom:24px}.content-section:last-child{margin-bottom:0}.content-section h3{font-size:18px;font-weight:700;color:var(--text);margin:0 0 12px}.contact-info p{margin:8px 0;color:var(--text)}.schedule{display:grid;gap:8px}.schedule-day{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.day-name{font-weight:600;color:var(--text)}.day-hours{color:var(--text-light)}.announcement{background:var(--background);border-radius:8px;padding:16px;margin-bottom:12px;border-left:4px solid var(--primary)}.announcement.promotion{border-left-color:var(--accent);background:rgba(45,212,191,.05)}.announcement h4{font-size:16px;font-weight:600;color:var(--text);margin:0 0 8px}.announcement p{color:var(--text-light);margin:0 0 8px}.announcement-date{font-size:12px;color:var(--text-light);font-style:italic}.services-grid{display:grid;gap:16px}.service-card{background:var(--background);border:1px solid var(--border);border-radius:12px;padding:16px}.service-name{font-size:16px;font-weight:600;color:var(--text);margin:0 0 8px}.service-description{color:var(--text-light);margin:0 0 12px;font-size:14px}.service-details{display:flex;justify-content:space-between;align-items:center}.service-duration{font-size:12px;color:var(--text-light)}.service-price{font-size:16px;font-weight:700;color:var(--primary)}.reviews-section{margin-bottom:32px}.reviews-section h3{font-size:18px;font-weight:700;color:var(--text);margin:0 0 16px}.review-card{background:var(--background);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.review-author{font-weight:600;color:var(--text)}.review-rating{color:#ffb800;font-size:14px}.review-text{color:var(--text);margin:0 0 8px;line-height:1.5}.review-date{font-size:12px;color:var(--text-light);font-style:italic}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.95);backdrop-filter:blur(20px);border-top:1px solid rgba(229,231,235,.3);padding:12px 0;padding-bottom:calc(12px + env(safe-area-inset-bottom));z-index:50}.bottom-nav-content{display:flex;justify-content:space-around;align-items:center;max-width:448px;margin:0 auto}.nav-item{display:flex;flex-direction:column;align-items:center;padding:8px 16px;color:var(--text-light);text-decoration:none;transition:all .2s ease;min-width:60px}.nav-item.active{color:var(--primary)}.nav-item:hover{color:var(--primary);transform:scale(1.05)}.nav-icon{width:24px;height:24px;margin-bottom:4px}.nav-label{font-size:11px;font-weight:500}.loading-spinner{width:32px;height:32px;border:3px solid rgba(108,99,255,.2);border-top:3px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:40px 20px;background:var(--surface);border-radius:20px;border:1px solid var(--border)}.empty-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:8px}.empty-text{font-size:16px;color:var(--text-light)}}@media (min-width: 768px){.app-container{max-width:1200px;margin:0 auto;padding:0 2rem}.hero-section{padding:60px 20px}.hero-title{font-size:48px!important}.hero-subtitle{font-size:24px!important}.search-card{max-width:800px;margin:0 auto 40px!important;padding:40px!important}.search-form-grid{grid-template-columns:1fr 1fr!important;gap:24px!important}.merchant-card{padding:32px}.merchant-detail-header{padding:40px}.tab-content{padding:32px}}@media (min-width: 1024px){.services-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.photos-gallery{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.slots-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}}@media (max-width: 480px){.hero-title{font-size:28px}.hero-subtitle{font-size:16px}.search-card{border-radius:20px;padding:20px;margin:0 16px 20px}.app-container{padding:0 16px}}@media (min-width: 768px){nav.bottom-nav{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}}
