.home-page{min-height:100vh;background:#f8f7f4;padding-bottom:120px}.hero{position:relative;background:linear-gradient(160deg,#fefce8,#fffbeb,#fff7ed);padding:64px 40px 72px;overflow:hidden}.hero .hero-bg-circle{position:absolute;top:-80px;right:-60px;width:300px;height:300px;background:radial-gradient(circle,rgba(245,158,11,.1) 0%,transparent 70%);border-radius:50%;pointer-events:none}.hero .hero-inner{position:relative;z-index:1}.hero .hero-eyebrow{display:block;font-size:14px;color:#d97706;font-weight:500;letter-spacing:3px;text-transform:uppercase;margin-bottom:12px}.hero .hero-title{display:block;font-size:42px;font-weight:700;color:#1c1917;line-height:1.1;margin-bottom:16px}.hero .hero-sub{display:block;font-size:16px;color:#78716c;line-height:1.6}.search-section{padding:0 32px;margin-top:-24px;position:relative;z-index:10}.search-bar{display:flex;align-items:center;gap:12px;background:#fff;border-radius:16px;padding:0 20px;height:56px;box-shadow:0 4px 6px #0000000a,0 2px 4px #0000000f;border:1px solid #F0EFED}.search-bar .search-icon{flex-shrink:0}.search-bar .search-input{flex:1;font-size:15px;color:#1c1917;background:transparent;border:none;outline:none}.search-bar .search-input.search-placeholder{color:#a8a29e}.content-section{padding:40px 32px 0}.section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px}.section-header .section-title{font-size:20px;font-weight:600;color:#1c1917}.section-header .section-count{font-size:13px;color:#a8a29e}.photographer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}@media (max-width: 1024px){.photographer-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.photographer-grid{grid-template-columns:repeat(2,1fr);gap:16px}}.grid-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;cursor:pointer;transition:all .2s ease}.grid-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #f59e0b1a,0 2px 6px #0000000f}.grid-card:active{transform:scale(.98)}.grid-card .card-cover{position:relative;height:180px;overflow:hidden}.grid-card .card-cover .cover-img{width:100%;height:100%;display:block;transition:transform .3s ease}.grid-card .card-cover:hover .cover-img{transform:scale(1.04)}.grid-card .card-cover .cover-badge{position:absolute;top:12px;left:12px;background:#f59e0beb;color:#fff;font-size:11px;font-weight:600;padding:4px 12px;border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.grid-card .card-body{padding:20px}.grid-card .card-name{display:block;font-size:16px;font-weight:600;color:#1c1917;margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid-card .card-meta{display:flex;align-items:center;gap:10px;margin-bottom:16px}.grid-card .card-meta .meta-item{display:flex;align-items:center;gap:4px}.grid-card .card-meta .meta-rating{font-size:13px;font-weight:600;color:#1c1917}.grid-card .card-meta .meta-dot{width:3px;height:3px;border-radius:50%;background:#e7e5e4}.grid-card .card-meta .meta-area{font-size:12px;color:#a8a29e}.grid-card .card-footer{display:flex;align-items:baseline;gap:4px}.grid-card .card-footer .card-price{font-size:20px;font-weight:700;color:#dc2626}.grid-card .card-footer .card-price-unit{font-size:12px;color:#a8a29e;margin-left:2px}.grid-card .card-footer .card-cta{margin-left:auto;display:flex;align-items:center;gap:4px}.grid-card .card-footer .card-cta .cta-text{font-size:13px;font-weight:500;color:#2563eb}.loading-dots{display:flex;justify-content:center;gap:8px;padding:48px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;gap:16px}.empty-state .empty-title{font-size:16px;font-weight:600;color:#1c1917}.booking-page{min-height:100vh;background:#f8f7f4;display:flex;flex-direction:column}.page-inner{flex:1;padding:32px 32px 120px;max-width:640px;margin:0 auto;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:24px}.info-card,.section-card{background:#fff;border-radius:24px;padding:28px 32px;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.card-header{display:flex;align-items:center;gap:10px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #F0EFED}.card-header svg{color:#f59e0b}.card-header .card-title{font-size:16px;font-weight:600;color:#1c1917}.info-rows{display:flex;flex-direction:column;gap:16px}.info-row{display:flex;align-items:center;justify-content:space-between}.info-row .info-label{font-size:14px;color:#a8a29e}.info-row .info-value{font-size:15px;font-weight:500;color:#1c1917}.slot-badge{background:#f1f0ed;padding:6px 16px;border-radius:16px}.slot-badge .slot-badge-text{font-size:14px;font-weight:500;color:#1c1917}.section-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.section-header svg{color:#f59e0b}.section-header .section-title{font-size:16px;font-weight:600;color:#1c1917}.section-header .section-hint{font-size:12px;color:#a8a29e;margin-left:auto}.req-grid{display:flex;flex-wrap:wrap;gap:12px}.req-chip{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:16px;border:2px solid #E7E5E4;background:#fff;cursor:pointer;transition:all .2s ease}.req-chip svg{color:#fff;flex-shrink:0}.req-chip .req-text{font-size:14px;color:#78716c}.req-chip.selected{background:#f59e0b;border-color:#f59e0b}.req-chip.selected .req-text{color:#fff}.req-chip:hover{border-color:#f59e0b}.req-chip:active{transform:scale(.96)}.input-wrap .text-input{width:100%;height:48px;padding:0 20px;background:#fafaf8;border:2px solid #E7E5E4;border-radius:16px;font-size:15px;color:#1c1917;transition:border-color .15s;box-sizing:border-box;outline:none}.input-wrap .text-input:focus{border-color:#f59e0b}.input-wrap .text-input::placeholder{color:#a8a29e}.input-wrap .text-area{width:100%;min-height:100px;padding:16px 20px;background:#fafaf8;border:2px solid #E7E5E4;border-radius:16px;font-size:15px;color:#1c1917;box-sizing:border-box;resize:none;outline:none;transition:border-color .15s;line-height:1.6}.input-wrap .text-area:focus{border-color:#f59e0b}.input-wrap .text-area::placeholder{color:#a8a29e}.submit-bar{position:fixed;bottom:0;left:0;right:0;padding:16px 32px;padding-bottom:calc(16px + env(safe-area-inset-bottom));background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -4px 20px #0000000f;z-index:100}.submit-btn{max-width:640px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:10px;height:52px;background:#2563eb;border-radius:16px;cursor:pointer;transition:all .2s ease}.submit-btn:hover{opacity:.9}.submit-btn:active{transform:scale(.98)}.submit-btn.loading{background:#2563ebb3;cursor:not-allowed}.submit-btn .btn-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.submit-btn .submit-text{font-size:16px;font-weight:600;color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.photographer-page{min-height:100vh;background:#f8f7f4;display:flex;flex-direction:column}.page-scroll{flex:1;padding-bottom:100px}.loading-state,.error-state{display:flex;align-items:center;justify-content:center;min-height:100vh;color:#a8a29e;font-size:16px}.loading-dots{display:flex;gap:8px}.loading-dots .dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;animation:pulse-dot 1.2s ease-in-out infinite}.loading-dots .dot:nth-child(2){animation-delay:.2s}.loading-dots .dot:nth-child(3){animation-delay:.4s}@keyframes pulse-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.hero-card{background:linear-gradient(160deg,#fefce8,#fffbeb,#fff7ed);padding:48px 40px 40px}.hero-card .hero-inner{display:flex;gap:32px;align-items:flex-start}.hero-card .hero-avatar{width:120px;height:120px;border-radius:50%;border:4px solid rgba(255,255,255,.9);box-shadow:0 8px 24px #0000001f;flex-shrink:0}.hero-card .hero-info{flex:1}.hero-card .hero-name{display:block;font-size:28px;font-weight:700;color:#1c1917;margin-bottom:12px}.hero-card .hero-meta{display:flex;align-items:center;gap:16px;margin-bottom:20px}.hero-card .hero-meta .meta-item{display:flex;align-items:center;gap:6px}.hero-card .hero-meta .meta-item .meta-text{font-size:14px;color:#78716c}.hero-card .hero-meta .meta-dot{width:4px;height:4px;border-radius:50%;background:#e7e5e4}.hero-card .hero-stats{display:inline-flex;gap:32px;background:#ffffffb3;border-radius:16px;padding:16px 28px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-card .hero-stats .stat-item{display:flex;flex-direction:column;align-items:center;gap:4px}.hero-card .hero-stats .stat-item .stat-num{font-size:24px;font-weight:700;color:#1c1917;line-height:1}.hero-card .hero-stats .stat-item .stat-label{font-size:12px;color:#a8a29e}.hero-card .hero-stats .stat-sep{width:1px;height:32px;background:#e7e5e4;align-self:center}.info-card{margin:24px 32px;background:#fff;border-radius:24px;padding:28px 32px;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.info-card .card-header{display:flex;align-items:center;gap:10px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #F0EFED}.info-card .card-header svg{color:#f59e0b}.info-card .card-header .card-title{font-size:16px;font-weight:600;color:#1c1917}.info-card .info-grid{display:flex;flex-direction:column;gap:14px}.info-card .info-row{display:flex;align-items:center;gap:20px}.info-card .info-row .info-label{font-size:14px;color:#a8a29e;min-width:60px}.info-card .info-row .info-value{font-size:15px;color:#1c1917;flex:1}.info-card .bio-block{margin-top:16px;padding-top:16px;border-top:1px solid #F0EFED}.info-card .bio-block .bio-text{font-size:14px;color:#78716c;line-height:1.7}.tab-bar{display:flex;background:#fff;padding:0 32px;border-bottom:1px solid #F0EFED;margin-bottom:24px}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px 0;cursor:pointer;position:relative}.tab-item .tab-text{font-size:15px;color:#a8a29e;transition:color .2s}.tab-item.active .tab-text{color:#2563eb;font-weight:600}.tab-item .tab-indicator{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:32px;height:3px;background:#2563eb;border-radius:2px}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:0 32px}.portfolio-cell{aspect-ratio:1;border-radius:12px;overflow:hidden}.portfolio-cell .portfolio-img{width:100%;height:100%;display:block}.empty-state{grid-column:1/-1;display:flex;align-items:center;justify-content:center;padding:80px 0;grid-column:span 3}.empty-state .empty-text{font-size:14px;color:#a8a29e}.schedule-wrap{padding:0 32px;display:flex;flex-direction:column;gap:24px}.calendar-card{background:#fff;border-radius:24px;padding:28px;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.calendar-card .cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-card .cal-title{font-size:16px;font-weight:600;color:#1c1917}.calendar-card .cal-hint{font-size:12px;color:#a8a29e}.calendar-card .cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.calendar-card .cal-weekdays .wd-cell{text-align:center;font-size:13px;color:#a8a29e;line-height:36px}.calendar-card .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-card .day-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;height:48px;border-radius:12px;transition:all .2s ease}.calendar-card .day-cell.empty{background:transparent}.calendar-card .day-cell.has .day-num{color:#1c1917}.calendar-card .day-cell.today .day-num{color:#2563eb;font-weight:600}.calendar-card .day-cell.selected{background:#2563eb}.calendar-card .day-cell.selected .day-num{color:#fff}.calendar-card .day-cell.selected .day-dot{background:#fff}.calendar-card .day-cell .day-num{font-size:14px;color:#a8a29e;line-height:1}.calendar-card .day-cell .day-dot{width:6px;height:6px;border-radius:50%;background:#f59e0b;margin-top:4px}.slot-card{background:#fff;border-radius:24px;padding:28px;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.slot-card .slot-date{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #F0EFED}.slot-card .slot-date .slot-date-str{font-size:18px;font-weight:600;color:#1c1917}.slot-card .slot-date .slot-weekday{font-size:12px;color:#a8a29e;background:#f1f0ed;padding:4px 12px;border-radius:12px}.slot-card .slot-options{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.slot-card .slot-opt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;border-radius:16px;border:2px solid #E7E5E4;gap:8px;transition:all .2s ease;cursor:pointer}.slot-card .slot-opt.avail .slot-icon{color:#78716c}.slot-card .slot-opt.avail .slot-name{color:#1c1917}.slot-card .slot-opt.avail .slot-status{color:#a8a29e}.slot-card .slot-opt.avail.selected{background:#f59e0b;border-color:#f59e0b;box-shadow:0 4px 12px #f59e0b4d}.slot-card .slot-opt.avail.selected .slot-icon,.slot-card .slot-opt.avail.selected .slot-name{color:#fff}.slot-card .slot-opt.avail.selected .slot-status{color:#fffc}.slot-card .slot-opt.full{opacity:.4;cursor:not-allowed}.slot-card .slot-opt .slot-icon{display:flex}.slot-card .slot-opt .slot-name{font-size:15px;font-weight:500}.slot-card .slot-opt .slot-status{font-size:12px}.slot-card .slot-empty{display:flex;align-items:center;justify-content:center;padding:32px 0}.slot-card .slot-empty .slot-empty-text{font-size:14px;color:#a8a29e}.bottom-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;padding:16px 32px;padding-bottom:calc(16px + env(safe-area-inset-bottom));background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -4px 20px #0000000f;z-index:100}.bottom-bar .bar-book{flex:1;display:flex;align-items:center;justify-content:center;height:52px;background:#2563eb;border-radius:16px;cursor:pointer;transition:all .2s ease}.bottom-bar .bar-book:hover{opacity:.9}.bottom-bar .bar-book:active{transform:scale(.98)}.bottom-bar .bar-book.disabled{background:#f1f0ed}.bottom-bar .bar-book.disabled .book-txt{color:#a8a29e}.bottom-bar .bar-book .book-txt{font-size:16px;font-weight:600;color:#fff}.profile-page{min-height:100vh;background:#f8f7f4;padding-bottom:60px}.profile-header{background:linear-gradient(160deg,#fefce8,#fffbeb,#fff7ed);padding:48px 32px 40px;display:flex;align-items:center;gap:24px}.profile-header .avatar-wrap{width:80px;height:80px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 4px 12px #0000001a}.profile-header .avatar-wrap .avatar-img{width:100%;height:100%;object-fit:cover}.profile-header .user-info{flex:1}.profile-header .user-name{display:block;font-size:22px;font-weight:600;color:#1c1917;margin-bottom:8px}.profile-header .user-phone{display:block;font-size:14px;color:#a8a29e}.menu-section{background:#fff;border-radius:24px;margin:24px 16px;overflow:hidden;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.menu-item{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;cursor:pointer;transition:all .2s ease;border-bottom:1px solid #F0EFED}.menu-item:last-child{border-bottom:none}.menu-item:active{background:#f1f0ed}.menu-item svg{color:#a8a29e;flex-shrink:0}.menu-item .menu-label{font-size:15px;color:#1c1917}.logout-section{margin:32px 16px 0}.logout-btn{display:flex;align-items:center;justify-content:center;height:48px;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;cursor:pointer;transition:all .2s ease}.logout-btn:active{background:#f1f0ed}.logout-btn .logout-text{font-size:15px;color:#dc2626}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-size:14px;line-height:1.5}#root{min-height:100vh}@media (max-width: 768px){body{font-size:14px}}@media (min-width: 769px){.pc-container{max-width:1200px;margin:0 auto;padding:20px}}.text-center{text-align:center}.text-right{text-align:right}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}
