@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;700;800;900&family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
:root{--cream:#fff8ed;--ink:#493329;--muted:#8b7668;--line:#f1dfca}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Nunito,"Noto Sans JP",sans-serif}.top{height:76px;padding:0 max(22px,calc((100% - 1080px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;box-shadow:0 2px 14px #70401a0c}.brand{display:flex;gap:10px;align-items:center}.brand b{font-size:23px;color:#e87922;font-weight:900}.brand small{display:block;font-size:10px;color:var(--muted)}.mascot-mini{width:42px;height:42px;border-radius:14px;background:#ffead1;display:grid;place-items:center;font-size:24px}.icon-btn{border:0;background:#fff2e3;border-radius:50%;width:40px;height:40px;font-size:20px;cursor:pointer}main{max-width:960px;margin:32px auto;padding:0 20px}.hero{display:flex;align-items:center;justify-content:space-between;padding:22px 42px 28px;background:linear-gradient(115deg,#ffefd9,#fff9f0);border-radius:28px}.eyebrow{font-size:12px;color:#d97825;font-weight:900}.hero h1{font-size:clamp(27px,4vw,39px);line-height:1.35;margin:10px 0}.hero h1 em{font-style:normal;color:#ed842d}.hero p{font-size:13px;color:var(--muted)}.compass-wrap{width:180px;display:flex;flex-direction:column;align-items:center;position:relative}.compass{width:130px;height:130px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff 0 8%,#ffe3bc 9% 100%);border:8px solid #f5a24f;box-shadow:0 8px 0 #df7e2d,0 14px 25px #a65a2528;display:grid;place-items:center;position:relative}.face{font-size:38px}.needle{position:absolute;top:17px;left:54px;font-size:43px;color:#e9782a;transform:rotate(-35deg)}.mascot-label{font-size:12px;font-weight:900;margin-top:17px;color:#d97825}.spark{position:absolute;top:-3px;right:18px;color:#f3a52e;font-size:27px}.panel{background:#fff;border:1px solid #f5e7d7;border-radius:22px;padding:25px 28px;margin-top:22px;box-shadow:0 8px 24px #6e48200a}.panel h2{font-size:18px;margin:0 0 17px}.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mode{background:#fffaf4;border:1.5px solid var(--line);border-radius:15px;padding:15px 8px;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px}.mode span{font-size:25px}.mode b{font-size:13px}.mode small{font-size:10px;color:var(--muted)}.mode.selected{background:#fff0dd;border-color:#f29a48;box-shadow:0 0 0 2px #f29a4820}.filters{display:flex;gap:15px;margin:20px 0}.filters label{font-size:11px;color:var(--muted);font-weight:700;flex:1}.filters select{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff;color:var(--ink);font:inherit}.primary{border:0;border-radius:14px;background:linear-gradient(90deg,#f18a35,#ffad50);color:#fff;font-weight:900;font-size:17px;padding:16px 20px;width:100%;cursor:pointer;box-shadow:0 5px 0 #d97527}.primary:disabled{opacity:.65}.button-compass{display:inline-block;transform-origin:50% 55%;margin-right:5px}.primary:hover .button-compass{animation:button-compass-wiggle .8s ease-in-out infinite}.primary:active .button-compass,.primary:disabled .button-compass{animation:spin .65s linear infinite}@keyframes button-compass-wiggle{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}.hint{font-size:10px;color:#9a897c;text-align:center;margin:16px 0 0}.result{margin-top:24px;background:#fff;border:2px solid #ffc77f;border-radius:22px;padding:24px}.hidden{display:none}.result-head{text-align:center;color:#e47a26}.result-head h2{font-size:24px;margin:5px 0 20px}.restaurant{display:grid;grid-template-columns:180px 1fr;gap:22px;background:#fffaf4;border-radius:16px;padding:15px}.photo{min-height:160px;border-radius:12px;background:linear-gradient(135deg,#ffe0b3,#fff2dc);display:grid;place-items:center;font-size:60px}.sample-tag{font-size:10px;color:#d97825;background:#ffecd7;padding:4px 8px;border-radius:20px}.restaurant-info h3{font-size:21px;margin:10px 0 6px}.meta{font-size:12px;color:#9a6b42}.restaurant-info p{font-size:13px;line-height:1.7;color:#79695d}.actions{display:flex;gap:9px;flex-wrap:wrap}.secondary,.outline{border:1px solid #edc99e;background:#fff;border-radius:10px;padding:9px 13px;color:#a65d25;font-weight:700;cursor:pointer}.outline{display:block;margin:16px auto 0}.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.compact{margin:0;padding:20px}.compact h2{font-size:15px;margin-bottom:12px}.section-title{display:flex;align-items:center;justify-content:space-between}.text-btn{border:0;background:none;color:#b87948;font-size:11px;cursor:pointer}.empty{font-size:12px;color:#a89789;padding:12px 0}.entry{padding:9px 0;border-top:1px solid #f5e9dc;font-size:12px;display:flex;justify-content:space-between;gap:8px}.entry button{border:0;background:none;color:#d77b2c;cursor:pointer}footer{text-align:center;color:#d47a30;font-weight:900;font-size:13px;padding:30px}footer span{display:block;font-size:10px;color:#a28c7b;font-weight:400}dialog{border:0;border-radius:18px;padding:25px;width:min(90%,380px);color:var(--ink);box-shadow:0 15px 60px #0003}dialog::backdrop{background:#3d291b66}.close{float:right;border:0;background:none;font-size:25px}.sound-setting{display:block;font-size:13px;margin:20px 0}dialog p{font-size:12px;color:var(--muted);line-height:1.7}.small{font-size:14px;padding:11px}.spinning .compass{animation:spin .65s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.pop{animation:pop .5s ease}@keyframes pop{0%{transform:scale(.7);opacity:.4}75%{transform:scale(1.06)}100%{transform:scale(1);opacity:1}}@media(max-width:650px){main{margin:18px auto;padding:0 13px}.hero{padding:20px;min-height:190px}.hero h1{font-size:26px}.compass-wrap{width:120px}.compass{width:100px;height:100px;border-width:6px}.needle{left:41px;top:10px;font-size:37px}.face{font-size:30px}.modes{gap:7px}.mode{padding:12px 4px}.mode b{font-size:11px}.mode small{font-size:9px}.panel{padding:20px 16px}.restaurant{grid-template-columns:1fr;gap:12px}.photo{min-height:120px}.lower-grid{grid-template-columns:1fr}.filters{gap:9px}}
.location-row{display:flex;align-items:center;gap:12px;margin:18px 0 10px}.location-row span{font-size:11px;color:#927d6c}.search-status{font-size:12px;text-align:center;color:#9a6b42;margin-top:12px;min-height:18px}.search-status.error{color:#c34f35}.search-status.success{color:#38845b}.sample-tag{display:inline-block}.restaurant-list{display:grid;gap:10px;margin-top:16px}.restaurant-list .entry{background:#fffaf4;border:1px solid #f1dfca;border-radius:12px;padding:12px}.restaurant-list .entry strong{display:block;margin-bottom:5px}.restaurant-list .entry small{color:#8b7668}.restaurant-list .entry button{margin-top:7px;border:1px solid #edc99e;background:#fff;border-radius:8px;padding:6px 10px;color:#a65d25;cursor:pointer}footer small{display:block;font-size:9px;color:#a28c7b;font-weight:400;margin-top:6px}

.photo{overflow:hidden}.photo img{width:100%;height:100%;min-height:160px;object-fit:cover;display:block}.shop-details{font-size:12px;line-height:1.8;color:#8b7668;background:#fff;border-radius:10px;padding:9px 11px}.actions a{text-decoration:none;display:inline-flex;align-items:center}
/* v3.0 feature additions */
.subcopy{font-size:11px;color:var(--muted);margin:4px 0 12px}.premium-chip{font-size:10px;font-weight:900;color:#8752a5;background:#f3e8fb;border-radius:20px;padding:6px 10px;white-space:nowrap}.community-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.community-actions .primary{width:auto}.community-panel,.gourmet-panel{margin-top:22px}.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}.candidate{padding:9px 11px;border:1px solid var(--line);background:#fffaf4;border-radius:10px;font-size:12px}.oshi-entry small{display:block;max-width:560px;line-height:1.6;margin-top:4px;color:var(--muted)}#postForm label{display:block;font-size:12px;color:var(--muted);margin:14px 0}#postForm input,#postForm textarea{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:9px;font:inherit;color:var(--ink)}#postForm .primary{margin-top:10px}#postForm p{font-size:11px;line-height:1.7}@media(max-width:520px){.candidate-grid{grid-template-columns:1fr}.community-actions{align-items:flex-start;flex-direction:column}}

/* ぐるポン！ ふんわり・かわいいデザイン */
:root{--cream:#fff7eb;--ink:#513326;--muted:#947d70;--line:#f6ddc6}
body{background:radial-gradient(ellipse at 10% 8%,#fff0d9 0,transparent 34%),radial-gradient(ellipse at 95% 45%,#fff0e8 0,transparent 30%),#fff8ee}
.top{background:#fffaf3eF;backdrop-filter:blur(10px);height:78px;border-bottom:1px solid #f8e6d4}
.brand b{font-size:25px;letter-spacing:.02em}.mascot-mini{border-radius:50%;background:linear-gradient(145deg,#ffe2b6,#fff4e3);box-shadow:0 3px 0 #f5b56e}
.header-actions{display:flex;align-items:center;gap:9px}.plan-toggle{border:1px solid #f3c28e;background:#fff1dc;color:#b85d1d;border-radius:999px;padding:9px 14px;font:800 12px Nunito,"Noto Sans JP",sans-serif;cursor:pointer;box-shadow:0 3px 0 #f3d7b8}.plan-toggle span{display:inline-block;margin-left:5px;font-size:10px;color:#a77c5e}.plan-toggle.is-premium{background:linear-gradient(110deg,#fff0bd,#ffe1a4);border-color:#edbd5c;color:#92551c;box-shadow:0 3px 0 #e9c77c}
main{max-width:1000px;margin:25px auto}.hero{background:linear-gradient(120deg,#ffefd9 0%,#fff9ef 65%,#ffedda 100%);border:1px solid #ffe1c2;border-radius:30px;box-shadow:0 12px 30px #b96d2510;position:relative;overflow:hidden}.hero:after{content:"✦　　✧　　✦";position:absolute;right:24%;bottom:16px;color:#f7c477;font-size:18px;letter-spacing:12px;opacity:.8;pointer-events:none}.hero h1{font-weight:900;letter-spacing:.015em}.hero h1 em{color:#f47725;text-shadow:0 2px #fff}
.panel{border:1px solid #f6dfca;border-radius:24px;box-shadow:0 8px 22px #9c5c2810;padding:25px 28px}.panel h2{letter-spacing:.02em}.modes{gap:13px}.mode{border-radius:18px;background:linear-gradient(145deg,#fffdf9,#fff7ed);border:1.5px solid #f4dfca;transition:transform .18s,box-shadow .18s}.mode:hover{transform:translateY(-2px);box-shadow:0 7px 15px #d78b3b18}.mode.selected{background:linear-gradient(145deg,#fff0d9,#ffe7c8);border:2px solid #ff9a3d;box-shadow:0 5px 0 #f8d2a9}
.filters select{border-radius:14px;border:1px solid #f1d8bf;box-shadow:inset 0 1px 3px #9e6b2810}.secondary,.outline{border-radius:999px;background:#fffaf4;border-color:#f1cda8}.primary{border-radius:999px;background:linear-gradient(100deg,#f5822b,#ffad45);box-shadow:0 5px 0 #df7626,0 9px 15px #e58b3a24;transition:transform .15s,filter .15s}.primary:hover{filter:saturate(1.08) brightness(1.03);transform:translateY(-1px)}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #df7626}.hint{line-height:1.7}
.community-panel{background:linear-gradient(115deg,#fff1f5,#fffafd 65%,#fff0f5);border-color:#ffd5e3}.community-panel .primary{background:linear-gradient(100deg,#ff963d,#ffb64c)}.gourmet-panel{background:linear-gradient(115deg,#edf8ff,#f9fcff 70%,#eaf6ff);border-color:#cceaff}.gourmet-panel .primary{background:linear-gradient(100deg,#f5a35d,#ffc77d);box-shadow:0 5px 0 #e9a66d}.premium-chip{background:#f4e3ff;color:#8750a2;border:1px solid #ead4fa}.compact{background:#fffdf9}.result{border-radius:25px;box-shadow:0 10px 24px #a7652412}.restaurant{border:1px solid #f6e2cf}.photo{border-radius:18px}.candidate{border-radius:13px;background:#fff}.entry{border-color:#f6e8dc}footer{padding-bottom:38px}
dialog{border:1px solid #f4dfca;border-radius:24px}dialog .primary{border-radius:999px}
@media(max-width:650px){.top{padding:0 12px}.brand b{font-size:20px}.plan-toggle{padding:8px 10px;font-size:10px}.plan-toggle span{display:none}.hero:after{display:none}.panel{border-radius:20px}}

/* v3.1 Kawaii refresh: stronger pastel visual hierarchy */
:root{--cream:#fff8f0;--ink:#593a32;--muted:#9a8177;--line:#f5dfd0}
body{background-color:#fff8f1;background-image:radial-gradient(circle at 4% 14%,#ffe8e9 0 90px,transparent 92px),radial-gradient(circle at 96% 36%,#e7f5ff 0 115px,transparent 117px),linear-gradient(180deg,#fffaf4,#fff6ee 65%,#fffaf5)}
.top{height:82px;background:rgba(255,255,255,.9);border-bottom:2px solid #ffeadc;box-shadow:0 5px 18px #9c5c2810}
.brand{gap:12px}.mascot-mini{width:50px;height:50px;border:3px solid #fff;background:linear-gradient(145deg,#ffdca9,#fff0c9);box-shadow:0 4px 0 #f5bd7d;font-size:28px}.brand b{font-size:27px;color:#ed792d}.brand small{font-size:11px;color:#a88677}
main{max-width:1050px;margin:28px auto 36px}
.hero{min-height:225px;padding:30px 46px;background:linear-gradient(115deg,#ffe8d0,#fff5e8 55%,#ffe9d9);border:2px solid #ffdfc1;border-radius:34px;box-shadow:0 10px 0 #f7e0cb,0 16px 28px #a85f2510}
.eyebrow{display:inline-block;background:#fff9ef;border:1px solid #ffdbb8;border-radius:999px;padding:7px 13px;font-size:12px}.hero h1{font-size:clamp(30px,4.4vw,43px);line-height:1.3;margin:13px 0 8px}.hero p{font-size:14px}.compass-wrap{width:205px}.compass{width:145px;height:145px;border:9px solid #ffb45d;background:radial-gradient(circle at 35% 25%,#fff 0 8%,#fff0d8 9% 100%);box-shadow:0 8px 0 #e99545,0 15px 25px #b66d3324}.face{font-size:43px}.needle{font-size:47px}.mascot-label{background:#fff8e9;border-radius:999px;padding:5px 15px;margin-top:13px}
.panel{padding:27px 30px;border-radius:28px;border:2px solid #f6e4d6;box-shadow:0 8px 0 #f3e7dc,0 14px 24px #89542a0b}.panel h2{font-size:21px;color:#68483b;margin-bottom:19px}
.mode{min-height:116px;border-radius:21px;padding:17px 10px;background:#fffdf9;border:2px solid #f6e5d7}.mode span{font-size:31px}.mode b{font-size:14px}.mode small{font-size:11px}.mode.selected{background:linear-gradient(145deg,#fff0d9,#ffe5c9);border:2px solid #ffad63;box-shadow:0 5px 0 #f6d2b2}
.filters{gap:18px;margin:23px 0}.filters label{font-size:12px}.filters select{padding:13px 15px;border-radius:15px;background:#fffdfb;font-size:14px}
.location-row{margin:19px 0 13px}.location-row .secondary{padding:11px 17px;background:#fff;border:2px solid #f4d6bd}.location-row span{font-size:12px}
.primary{padding:17px 22px;font-size:18px;letter-spacing:.03em;border-radius:18px;box-shadow:0 6px 0 #dc762d,0 10px 18px #e58b3a24}.primary.small{font-size:14px;padding:12px 18px;border-radius:999px}.hint{font-size:11px;margin-top:17px}
.community-panel{background:linear-gradient(125deg,#fff0f4,#fffafd 65%,#fff2f6);border:2px solid #ffd9e5}.community-panel h2{color:#bd6481}.community-panel .restaurant-list .entry{background:#fffafd;border-color:#f8dce6}.community-panel .primary{background:linear-gradient(100deg,#f18aaa,#f7abc0);box-shadow:0 5px 0 #d87999,0 8px 14px #df8ca31e}
.gourmet-panel{background:linear-gradient(125deg,#eaf7ff,#f9fcff 65%,#eaf5ff);border:2px solid #cfe9fb}.gourmet-panel h2{color:#5386aa}.gourmet-panel .primary{background:linear-gradient(100deg,#78bde8,#9bd4f3);box-shadow:0 5px 0 #5b9fc9,0 8px 14px #78bde81e}.gourmet-panel .candidate{border:1.5px solid #d7eaf6;background:#fff;border-radius:15px;padding:12px}
.premium-chip{padding:7px 12px;font-size:11px;border-radius:999px}.plan-toggle{font-size:12px;padding:11px 17px;background:linear-gradient(120deg,#fff1d8,#ffe6bd);border:2px solid #f6c78e;box-shadow:0 4px 0 #f1d6b7}.plan-toggle.is-premium{background:linear-gradient(120deg,#fff1c2,#ffe19a);border-color:#edc45c}
.secondary,.outline{padding:10px 16px;border:1.5px solid #f0cda9;background:#fffdf9;border-radius:999px}.result{background:linear-gradient(130deg,#fff,#fff8ed);border:2px solid #ffd49c;border-radius:28px;box-shadow:0 8px 0 #f5e2c9}.restaurant{background:#fffaf4;border:1px solid #f3dfcc;border-radius:20px;padding:18px}.photo{border-radius:17px}.restaurant-info h3{color:#694534}.shop-details{border:1px solid #f4e6d8;background:#fffdfb;border-radius:14px}
.lower-grid{gap:20px;margin-top:24px}.compact{background:#fffdfb}.compact h2{font-size:17px}footer{color:#e27c37;font-size:16px}footer span{font-size:11px}
dialog{border:2px solid #f5ddc8;border-radius:27px;padding:28px;box-shadow:0 18px 60px #55351f35}dialog h2{color:#d97835}dialog input,dialog textarea{border-radius:13px!important}
@media(max-width:650px){.top{height:72px;padding:0 12px}.brand{gap:8px}.brand b{font-size:21px}.mascot-mini{width:42px;height:42px;font-size:23px}.plan-toggle{padding:8px 11px}.hero{padding:20px 18px;min-height:190px;border-radius:25px}.hero h1{font-size:27px}.compass-wrap{width:112px}.compass{width:94px;height:94px;border-width:6px}.needle{left:38px;top:8px;font-size:34px}.face{font-size:28px}.mascot-label{font-size:10px}.panel{padding:21px 16px;border-radius:23px}.panel h2{font-size:18px}.mode{min-height:105px}.mode span{font-size:26px}.mode b{font-size:11px}.mode small{font-size:9px}.section-title{gap:8px;align-items:flex-start}.premium-chip{font-size:9px;padding:6px 8px}.community-actions{gap:8px}.location-row{align-items:flex-start;flex-direction:column}.lower-grid{gap:14px}}

/* Illustrated kawaii assets from the approved visual direction */
.hero{position:relative;overflow:hidden;padding-left:270px;min-height:250px}
.hero-cat{position:absolute;left:10px;bottom:8px;width:245px;height:225px;object-fit:contain;z-index:1;pointer-events:none}
.hero-copy{position:relative;z-index:2;flex:1}
.compass-wrap{z-index:2}
.compass-art{position:absolute;width:172px;height:166px;object-fit:contain;top:-16px;right:-16px;opacity:.98;pointer-events:none}
.compass,.mascot-label,.spark{position:relative;z-index:2}
.community-panel,.gourmet-panel{position:relative;overflow:hidden}
.community-panel .section-title,.community-panel .community-actions,.community-panel #oshiList,.gourmet-panel .section-title,.gourmet-panel #gourmetSpin,.gourmet-panel #gourmetStatus,.gourmet-panel #gourmetCandidates{position:relative;z-index:2}
.community-panel .section-title,.community-panel .community-actions{padding-right:150px}
.oshi-onigiri{position:absolute;left:18px;top:50%;width:82px;height:88px;object-fit:contain;transform:translateY(-50%);z-index:1;opacity:.96}
.community-panel .section-title{padding-left:88px}
.oshi-bowl{position:absolute;right:15px;top:50%;transform:translateY(-50%);width:145px;height:145px;object-fit:contain;z-index:1;pointer-events:none}
.gourmet-panel .section-title{padding-right:150px}
.roulette-art{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:150px;height:160px;object-fit:contain;z-index:1;pointer-events:none}
footer{position:relative;overflow:hidden;min-height:110px;padding-top:26px}
.footer-art{position:absolute;left:0;bottom:0;width:150px;height:110px;object-fit:contain;opacity:.85;pointer-events:none}
@media(max-width:650px){.hero{padding-left:128px;min-height:180px}.hero-cat{width:128px;height:145px;left:0;bottom:3px}.compass-art{width:105px;height:105px;right:-12px;top:0}.compass-wrap{width:100px}.community-panel .section-title,.community-panel .community-actions{padding-right:72px}.community-panel .section-title{padding-left:56px}.oshi-onigiri{width:54px;height:60px;left:4px}.oshi-bowl{width:82px;height:90px;right:0}.gourmet-panel .section-title{padding-right:80px}.roulette-art{width:90px;height:100px;right:0}.footer-art{width:85px;height:75px}}

/* v3.3 overlap fixes: keep illustrations in their own reserved areas */
.compass-art{display:none !important;}
.community-panel .community-actions{padding-left:92px;padding-right:155px;min-height:54px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.community-panel .community-actions .primary{width:auto;max-width:100%;white-space:nowrap}
.community-panel .section-title{padding-left:92px;padding-right:155px;min-height:62px}
.oshi-onigiri{left:18px;width:66px;height:72px}
.oshi-bowl{right:12px;width:128px;height:128px}
.gourmet-panel .section-title{padding-right:155px;min-height:60px}
.gourmet-panel #gourmetSpin{width:calc(100% - 150px);min-width:190px;position:relative;z-index:3}
.roulette-art{right:12px;width:128px;height:136px;z-index:1}
@media(max-width:650px){
 .hero{padding-left:128px;padding-right:14px;}
 .hero-cat{width:120px;height:138px;}
 .community-panel .section-title{padding-left:62px;padding-right:84px;min-height:56px}
 .community-panel .community-actions{padding-left:62px;padding-right:84px;min-height:54px}
 .oshi-onigiri{left:5px;width:52px;height:58px}
 .oshi-bowl{right:2px;width:78px;height:84px}
 .gourmet-panel .section-title{padding-right:88px;min-height:58px}
 .gourmet-panel #gourmetSpin{width:calc(100% - 88px);min-width:0;padding:12px 8px;font-size:12px;white-space:normal;}
 .roulette-art{right:2px;width:78px;height:84px}
}
.manual-location{margin:12px 0 16px;padding:13px;background:#fff8f0;border:1px solid #f1dfca;border-radius:14px}.manual-location label{display:block;font-size:12px;font-weight:700;color:#8b6045;margin-bottom:7px}.place-entry{display:flex;gap:8px}.place-entry input{flex:1;min-width:0;border:1px solid #e8cdb5;border-radius:10px;padding:11px 12px;font:inherit;font-size:13px;background:#fff}.place-entry button{white-space:nowrap;padding:10px 13px}.manual-location small{display:block;margin-top:7px;font-size:10px;color:#927d6c}
@media(max-width:480px){.place-entry{flex-direction:column}.place-entry button{width:100%}}

/* v3.15 roulette overlay */
.roulette-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(35,25,54,.68);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:1;animation:rouletteFadeIn .22s ease-out}
.roulette-overlay.hidden{display:none}
.roulette-stage{position:relative;width:min(92vw,430px);padding:28px 22px 24px;border:3px solid #fff;border-radius:28px;background:linear-gradient(145deg,#fff9ed,#ffe8f1 55%,#e9e8ff);box-shadow:0 20px 70px #17102788;text-align:center;overflow:hidden}
.roulette-stage h2{margin:0;color:#7652a5;font-size:25px}
.roulette-lead{margin:8px 0 10px;color:#765b78;font-weight:700}
.roulette-wheel-wrap{width:190px;height:190px;margin:4px auto 10px;display:grid;place-items:center}
.roulette-wheel-spin{width:100%;height:100%;object-fit:contain;animation:rouletteSpin .65s linear infinite;filter:drop-shadow(0 7px 8px #9b6e9b55)}
.roulette-rolling-name{min-height:54px;display:flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:16px;background:#fff;color:#6e4a91;font-size:20px;font-weight:900;box-shadow:inset 0 0 0 2px #f5d7ec}
.roulette-hint{margin:12px 0 0;color:#8c6688;font-size:13px;font-weight:700}
.roulette-mascot{position:absolute;right:8px;top:8px;width:64px;height:64px;object-fit:contain;transform:rotate(8deg)}
.roulette-spark{position:absolute;color:#f2b94b;font-size:30px;animation:rouletteTwinkle .8s ease-in-out infinite alternate}
.roulette-spark.spark-a{left:15px;top:20px}.roulette-spark.spark-b{right:18px;bottom:20px;animation-delay:.35s}
@keyframes rouletteSpin{to{transform:rotate(360deg)}}
@keyframes rouletteFadeIn{from{opacity:0}to{opacity:1}}
@keyframes rouletteTwinkle{from{transform:scale(.7) rotate(-12deg);opacity:.5}to{transform:scale(1.2) rotate(15deg);opacity:1}}
@media(max-width:480px){.roulette-stage{padding:25px 16px 20px}.roulette-stage h2{font-size:22px}.roulette-wheel-wrap{width:160px;height:160px}.roulette-rolling-name{font-size:17px}.roulette-mascot{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){.roulette-wheel-spin,.roulette-spark{animation-duration:3s}}


/* v3.16: illustrated gourmet roulette inspired by the approved concept */
.roulette-overlay{background:rgba(43,32,67,.76);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:14px;overflow-y:auto}
.roulette-stage-v316{width:min(96vw,760px);min-height:610px;padding:26px 22px 88px;border:0;border-radius:34px;background:radial-gradient(ellipse at 50% 42%,#fff9e8 0%,#ffe9f0 55%,#dcd8ff 100%);box-shadow:0 24px 80px #130c2a99;overflow:hidden;isolation:isolate}
.roulette-stage-v316:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 72%,#8c75b7 100%);opacity:.42}
.roulette-cloud{position:absolute;z-index:4;background:#fffaf2;border:3px solid #ffd8df;border-radius:42% 48% 45% 42%;box-shadow:0 7px 0 #f5c9d4,0 8px 22px #9b668522;padding:14px 20px;text-align:center}
.roulette-cloud-left{left:4%;top:5%;width:43%;transform:rotate(-3deg)}
.roulette-stage-v316 h2{font-size:clamp(22px,4vw,34px);font-weight:1000;color:#e74479;text-shadow:2px 3px #fff,3px 4px #f4b8cb;margin:0 0 5px}
.roulette-stage-v316 .roulette-lead{margin:0;color:#8a4a2e;font-size:clamp(12px,2vw,17px);font-weight:900}
.roulette-wheel-wrap-v316{position:relative;z-index:2;width:min(64vw,470px);height:min(64vw,470px);margin:42px auto 8px;display:grid;place-items:center}
.roulette-wheel-wrap-v316:before{content:"";position:absolute;inset:-10px;border-radius:50%;background:repeating-conic-gradient(#ffef9a 0deg 5deg,#f4a92d 5deg 10deg);box-shadow:0 0 0 7px #f5b23e,0 0 0 13px #fff2bd,0 12px 28px #9a642d66;z-index:-1}
.roulette-wheel-wrap-v316:after{content:"🐾";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ffca37,#f28a16);border:5px solid #fff1b8;box-shadow:0 4px 10px #8e542e66;font-size:35px}
.roulette-wheel-wrap-v316 .roulette-wheel-spin{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 8px #9b6e9b55);animation:rouletteSpin .65s linear infinite}
.roulette-chef-cat{position:absolute;z-index:3;left:1%;bottom:45px;width:clamp(135px,27vw,220px);height:auto;object-fit:contain;filter:drop-shadow(0 7px 7px #39224b55);pointer-events:none}
.roulette-cloud-right{right:3%;top:43%;width:31%;border-color:#ffdfc4;background:#fff9f0;transform:rotate(3deg);padding:16px 12px}
.roulette-stage-v316 .roulette-hint{font-size:clamp(14px,2.3vw,21px);line-height:1.5;color:#87452b;margin:0;font-weight:1000}
.cloud-paw{display:block;text-align:right;color:#e18c35;font-size:25px;margin-top:2px}
.roulette-stage-v316 .roulette-rolling-name{position:relative;z-index:5;width:min(76%,510px);margin:0 auto;min-height:48px;background:#fff;border:2px solid #f6d5e8;color:#774c8d;font-size:clamp(16px,2.6vw,22px);box-shadow:0 4px 12px #7c528522}
.roulette-bottom-banner{position:absolute;z-index:6;left:50%;bottom:18px;transform:translateX(-50%);width:min(88%,570px);min-height:66px;padding:10px 18px;display:flex;align-items:center;justify-content:center;gap:18px;border:5px solid #f4b443;border-radius:48px;background:linear-gradient(180deg,#fffef0,#fff0bd);box-shadow:0 5px 0 #d98a2b,0 9px 20px #70462b33;color:#9b4528;white-space:nowrap}
.roulette-bottom-banner strong{font-size:clamp(19px,3.5vw,30px);font-weight:1000}.roulette-bottom-banner span{font-size:24px;color:#e58b31}
.roulette-top-spark,.roulette-twinkle{position:absolute;color:#ffc83f;text-shadow:0 0 12px #ffdb69;font-size:clamp(25px,5vw,48px);animation:rouletteTwinkle .8s ease-in-out infinite alternate;z-index:3}
.roulette-top-spark.spark-a{left:4%;top:22%}.roulette-top-spark.spark-b{right:9%;top:16%;animation-delay:.25s}
.roulette-twinkle-a{left:42%;bottom:15%}.roulette-twinkle-b{right:4%;top:33%;animation-delay:.4s}.roulette-twinkle-c{right:35%;top:9%;animation-delay:.2s}
@media(max-width:560px){.roulette-stage-v316{min-height:560px;padding:18px 12px 88px;border-radius:25px}.roulette-cloud-left{left:2%;top:4%;width:53%;padding:11px 10px}.roulette-wheel-wrap-v316{width:min(68vw,330px);height:min(68vw,330px);margin:76px auto 8px}.roulette-wheel-wrap-v316:after{width:54px;height:54px;font-size:27px}.roulette-chef-cat{left:-3%;bottom:70px;width:35vw;max-width:155px}.roulette-cloud-right{right:1%;top:51%;width:35%;padding:11px 8px}.roulette-stage-v316 .roulette-rolling-name{width:86%;min-height:44px;font-size:15px}.roulette-bottom-banner{bottom:14px;min-height:58px;padding:8px 12px;gap:9px;border-width:4px}.roulette-bottom-banner strong{font-size:18px}.roulette-bottom-banner span{font-size:18px}}
@media(prefers-reduced-motion:reduce){.roulette-wheel-wrap-v316 .roulette-wheel-spin{animation-duration:3s}}

/* v3.23: 管理者専用ボタンをログイン画面外のヘッダーに配置 */
.monitor-admin-header{white-space:nowrap;padding:9px 12px;font-size:11px}
.monitor-admin-header[hidden]{display:none!important}
@media(max-width:650px){.header-actions{gap:5px}.monitor-admin-header{padding:7px 8px;font-size:10px}.header-actions .plan-toggle{font-size:10px}}
