*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff0f7;color:#352131;font-family:-apple-system,BlinkMacSystemFont,'Hiragino Maru Gothic ProN','Hiragino Sans','Yu Gothic',sans-serif;font-weight:800;padding-bottom:100px}.notice{background:#f72585;color:#fff;text-align:center;padding:18px 12px;font-size:18px;line-height:1.5}.header{background:#fff;padding:28px 24px 18px;border-bottom:5px solid #ffd0e5}.header h1{font-size:42px;line-height:1.1;margin:0 0 18px;color:#f72585;text-shadow:3px 3px 0 #ffd0e5}.authBtns{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.btn,.topNav button,.chips button{border:0;border-radius:999px;padding:14px 22px;font-size:18px;font-weight:900;box-shadow:0 10px 20px #f7258540}.pink{background:#f72585;color:#fff}.yellow{background:#ffd12f;color:#352131}.status{margin:8px 0 16px}.searchBox{display:flex;border:5px solid #ffa6cc;border-radius:999px;overflow:hidden;background:#fff;margin:10px 0}.searchBox input{flex:1;border:0;padding:20px;font-size:19px;font-weight:800;min-width:0}.searchBox button{border:0;background:#f72585;color:#fff;padding:0 24px;font-size:19px;font-weight:900}.topNav{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:20px}.topNav a,.topNav button{color:#f72585;text-decoration:none;background:transparent;box-shadow:none;padding:0;border-radius:0}main{max-width:760px;margin:0 auto}.card{background:#fff;border:6px solid #ffa6cc;border-radius:34px;margin:28px 12px;padding:34px 28px}.hero{background:linear-gradient(135deg,#ffe3f1,#fff)}h2{font-size:42px;line-height:1.25;margin:0 0 24px}p,li{font-size:20px;line-height:1.7}.chips{display:flex;flex-wrap:wrap;gap:14px}.chips button{background:#fff;color:#f72585;border:4px solid #ffa6cc;box-shadow:none;min-width:100px}.review,.rankRow,.adminItem{border-bottom:4px solid #ffd0e5;padding:18px 0}.review h3{margin:0;color:#f72585;font-size:28px}.meta{font-size:18px}.rankRow{display:flex;justify-content:space-between;font-size:26px}.price{font-size:48px;color:#f72585}input,select,textarea{width:100%;margin:10px 0;padding:18px;border:5px solid #ffa6cc;border-radius:22px;font-size:20px;font-weight:800;background:#fff}textarea{min-height:150px}.msg{font-size:20px;color:#f72585;margin-top:12px}.modal{position:fixed;inset:0;background:#0008;display:flex;align-items:center;justify-content:center;z-index:20;padding:24px}.hidden{display:none}.modalBox{background:#fff;border-radius:36px;padding:30px;max-width:680px;width:100%;max-height:80vh;overflow:auto;position:relative}.close{position:absolute;top:18px;right:18px;width:64px;height:64px;border-radius:50%;border:0;background:#eee;font-size:36px;font-weight:900}.adminTabs{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 22px}.adminTabs button{border:0;border-radius:999px;padding:14px 18px;background:#f72585;color:#fff;font-weight:900;font-size:17px}.adminForm{border:4px solid #ffa6cc;border-radius:22px;padding:16px;margin-bottom:18px}.adminActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.danger{background:#ffd12f;color:#352131}.bottomNav{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:4px solid #ffd0e5;display:flex;justify-content:space-around;z-index:10;padding:10px 0 max(10px,env(safe-area-inset-bottom))}.bottomNav a,.bottomNav button{font-size:18px;font-weight:900;color:#f72585;text-decoration:none;background:transparent;border:0}@media(max-width:480px){.header{padding:24px 18px}.header h1{font-size:35px}.btn{font-size:16px;padding:13px 18px}.card{margin:24px 8px;padding:30px 24px;border-radius:30px}h2{font-size:38px}.searchBox input{font-size:16px}.searchBox button{padding:0 20px}.modalBox{padding:28px 22px}.close{width:58px;height:58px}.bottomNav a,.bottomNav button{font-size:17px}}

.statusPill{display:inline-block;background:#ffe3f1;color:#f72585;border-radius:999px;padding:3px 10px;font-size:.9em}.dashGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.dashGrid div{border:4px solid #ffa6cc;border-radius:22px;padding:18px;background:#fff7fb}.dashGrid b{display:block;font-size:34px;color:#f72585}.dashGrid span{font-size:16px}.smallNote{font-size:16px;color:#6b5362}.adminItem b{font-size:22px}.adminItem p{word-break:break-word}.yellow{background:#ffd12f;color:#352131}

/* V22 cast management */
.castAdminItem{display:flex;gap:14px;align-items:flex-start}
.castThumb{width:86px;height:86px;object-fit:cover;border-radius:22px;border:5px solid #ffacd0;background:#fff}
.castPreview{width:100%;max-height:260px;object-fit:cover;border-radius:28px;border:5px solid #ffacd0;margin:10px 0 18px;background:#fff}
.castAdminText{flex:1;min-width:0}
.fileLabel{display:block;border:5px solid #ffacd0;border-radius:22px;padding:16px 18px;margin:12px 0;background:#fff;font-weight:900;color:#ee1f83}
.fileLabel input{display:block;margin-top:10px;width:100%}
.checkLine{display:block;font-size:18px;font-weight:900;margin:12px 0;color:#392431}
.checkLine input{width:22px;height:22px;margin-right:8px}

/* V25 cast complete admin */
.formGrid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.adminForm textarea,#modal textarea{width:100%;min-height:110px;border:6px solid #f7a3ca;border-radius:22px;padding:16px;font-size:16px;font-weight:800;box-sizing:border-box;margin:8px 0;background:#fff}
.fileLabel{display:block;background:#fff7fb;border:5px dashed #f7a3ca;border-radius:22px;padding:14px;margin:10px 0;font-weight:900;color:#ed2381;text-align:center}
.fileLabel input{display:block;margin:8px auto 0;max-width:100%}
.checkLine{display:block;margin:8px 0;font-weight:900}
.castAdminItem{display:flex;gap:14px;align-items:flex-start}
.castAdminText{flex:1;min-width:0}
.castThumb{width:92px;height:92px;object-fit:cover;border-radius:18px;border:4px solid #f7a3ca;background:#fff7fb;display:flex;align-items:center;justify-content:center;font-size:12px;color:#ed2381;font-weight:900;text-align:center;flex-shrink:0}
.castPreview{width:100%;max-height:240px;object-fit:cover;border-radius:24px;border:5px solid #f7a3ca;background:#fff7fb;margin:8px 0;display:flex;align-items:center;justify-content:center;color:#ed2381;font-weight:900;text-align:center}
.previewWrap{min-height:0}
@media(max-width:560px){.formGrid3{grid-template-columns:1fr}.castAdminItem{display:block}.castThumb{width:100%;height:180px;margin-bottom:10px}}

/* V28 口コミ投稿強化 */
.ratingGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.ratingGrid label{font-weight:900;color:#3b2431;font-size:.95rem}
.ratingGrid select{width:100%;margin-top:6px}
.miniLabel{display:block;font-weight:900;margin:12px 0 4px;color:#3b2431}
.smallUpload{margin-top:14px}
.reviewPhotoPreview{width:100%;max-height:260px;object-fit:cover;border:6px solid #f6a3cc;border-radius:22px;margin:10px 0}
.reviewThumb{width:100%;max-height:220px;object-fit:cover;border:5px solid #f6a3cc;border-radius:20px;margin:8px 0 14px}
#shopName[readonly],#area[readonly]{background:#fff7fb;color:#3b2431}

/* V29 口コミシステム */
#reviewImagePreview{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.reviewPhotoPreview{width:130px;height:110px;object-fit:cover;border:6px solid #f7a4ca;border-radius:22px}
.reviewThumb{width:100%;max-height:220px;object-fit:cover;border:5px solid #f7a4ca;border-radius:22px;margin-bottom:12px}
.statusPill{background:#ffe4f1;border-radius:999px;padding:4px 10px;font-weight:900;color:#ef1681}


/* V33 キャスト詳細ページ */
.linkCast{display:inline-block;border:0;background:transparent;color:#f72585;font-size:22px;font-weight:900;padding:4px 0;margin:2px 0;text-decoration:underline;text-underline-offset:4px}
.rankButton{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;color:#352131}
.castDetail h2{font-size:40px;color:#f72585;margin-bottom:14px}.castDetailMain{width:100%;max-height:340px;object-fit:cover;border:6px solid #ffa6cc;border-radius:28px;background:#fff7fb;display:flex;align-items:center;justify-content:center;color:#f72585;font-weight:900;margin:12px 0 18px}.castStats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.castStats div{border:4px solid #ffa6cc;border-radius:20px;padding:14px;background:#fff7fb;text-align:center}.castStats b{display:block;color:#f72585;font-size:26px}.castStats span{font-size:13px}.castMeta{font-size:17px;line-height:1.6}.profileBox{border:4px solid #ffd0e5;border-radius:20px;padding:14px;background:#fff7fb;font-size:16px;line-height:1.7;margin:12px 0}.photoGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.photoGrid img{width:100%;height:95px;object-fit:cover;border:4px solid #ffa6cc;border-radius:16px}.detailReview{border-top:4px solid #ffd0e5;padding:16px 0}.detailReview h3{color:#f72585;margin:0 0 4px}.modalImage{width:100%;border-radius:24px;border:6px solid #ffa6cc}.detailWriteBtn{text-decoration:none;display:inline-block}@media(max-width:480px){.castStats{grid-template-columns:1fr}.photoGrid{grid-template-columns:repeat(2,1fr)}.castDetail h2{font-size:34px}}


/* V34 ランキング機能 */
.rankingCard h2{font-size:34px}
.rankRow.rankButton{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:4px solid #ffd0e5;border-radius:24px;background:#fff7fb;margin:10px 0;padding:16px 18px;text-align:left;box-shadow:none}
.rankRow span{display:flex;flex-direction:column;gap:3px;font-size:22px;font-weight:900;color:#352131;line-height:1.35}
.rankRow span em{font-style:normal;margin-right:6px}
.rankRow small{display:block;font-size:14px;color:#7b6070;font-weight:900}
.rankRow b{font-size:24px;color:#f72585;white-space:nowrap}
.rankRank1{background:linear-gradient(135deg,#fff8dc,#fff7fb)!important;border-color:#ffd12f!important}
.rankRank2{background:linear-gradient(135deg,#f7f7f7,#fff7fb)!important;border-color:#cfcfcf!important}
.rankRank3{background:linear-gradient(135deg,#fff0dc,#fff7fb)!important;border-color:#e0a15b!important}
@media(max-width:480px){.rankingCard h2{font-size:30px}.rankRow span{font-size:19px}.rankRow b{font-size:22px}}

/* V35 口コミ写真ギャラリー */
.reviewGallery,.detailGallery{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:12px 0 14px;padding:4px 2px 10px}
.galleryItem{flex:0 0 82%;max-width:420px;border:0;background:transparent;padding:0;scroll-snap-align:center;cursor:pointer}
.galleryItem img{width:100%;height:240px;object-fit:cover;border:6px solid #f7a4ca;border-radius:24px;background:#fff7fb;display:block}
.detailGallery .galleryItem{flex-basis:72%}
.photoCount{display:inline-block;color:#f72585;font-weight:900;margin-top:4px}
.photoViewer{width:100%}.photoViewerHeader{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:0 68px 12px 0;color:#f72585;font-weight:900}.photoViewerHeader span{font-size:13px;color:#7b6070}.photoSlider{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:14px}.photoSlider img{flex:0 0 100%;width:100%;max-height:68vh;object-fit:contain;background:#fff7fb;border:6px solid #f7a4ca;border-radius:24px;scroll-snap-align:center}.galleryDots{text-align:center;margin-top:12px}.galleryDot{display:inline-block;width:10px;height:10px;border-radius:999px;background:#ffd0e5;margin:0 4px}.galleryDot.active{background:#f72585}.photoGrid img{cursor:pointer}
@media(max-width:480px){.galleryItem{flex-basis:88%}.galleryItem img{height:210px}.detailGallery .galleryItem{flex-basis:84%}.photoViewerHeader{margin-right:58px}}

/* V36 口コミ編集・写真削除 */
.adminPhotoGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}
.adminPhotoCell{position:relative;border:4px solid #ffa6cc;border-radius:18px;overflow:hidden;background:#fff7fb}
.adminPhotoCell img{width:100%;height:130px;object-fit:cover;display:block}
.photoDeleteBtn{position:absolute;right:6px;bottom:6px;border:0;border-radius:999px;background:#ffd12f;color:#352131;font-weight:900;padding:8px 10px;font-size:13px;box-shadow:0 5px 14px #0002}
@media(max-width:480px){.adminPhotoGrid{grid-template-columns:1fr 1fr}.adminPhotoCell img{height:110px}.photoDeleteBtn{font-size:12px;padding:7px 9px}}

/* V41 paid membership */
.paidBadge,.freeBadge,.statusPill{display:inline-block;border-radius:999px;padding:6px 12px;margin-left:6px;font-size:14px;font-weight:900}.paidBadge{background:#f72585;color:#fff}.freeBadge{background:#ffd12f;color:#352131}.memberCard{border:5px solid #ffa6cc;border-radius:28px;padding:20px;margin:16px 0;background:#fff7fb}.planPrice{font-size:38px;color:#f72585;font-weight:900}.memberBenefits{padding-left:1.2em}.paywallBox{background:#fff2f8;border:3px dashed #ffa6cc;border-radius:20px;padding:14px;margin:12px 0;color:#f72585;font-size:16px}.miniBtn{font-size:14px;padding:10px 14px;margin-left:8px}.lockedGallery{filter:none}.lockedPhoto{position:relative;overflow:hidden}.lockedPhoto img{filter:blur(8px);transform:scale(1.05)}.lockedPhoto span{position:absolute;inset:auto 8px 8px 8px;background:#fff;color:#f72585;border-radius:999px;padding:8px 10px;font-size:13px;text-align:center}.adBox.freeOnly{display:block}.paidHideAd{display:none}
