:root{--ground:#14111d;--ground-2:#1b1626;--panel:#221b30;--panel-2:#2a2238;--line:#39304a;--ink:#f4ecdf;--muted:#a598b4;--muted-2:#7d7189;--amber:#f6a93b;--amber-soft:#ffcf87;--amber-deep:#c9781b;--jade:#43d6a3;--ink-on-amber:#241403}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--ground);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,Yu Gothic UI,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.55}a{color:inherit}.app{position:fixed;inset:0;display:flex;flex-direction:column}.appbar{gap:10px;padding:10px 14px;background:rgba(16,12,22,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:500}.appbar,.brand{display:flex;align-items:center}.brand{gap:8px;font-weight:800;letter-spacing:.02em}.brand .lantern{width:18px;height:23px;border-radius:8px/10px;background:radial-gradient(70% 60% at 50% 42%,var(--amber-soft),var(--amber) 58%,var(--amber-deep));box-shadow:0 0 12px rgba(246,169,59,.6)}.brand .tag{font-size:11px;color:var(--muted);font-weight:500}.appbar .spacer{flex:1 1}.langswitch{display:flex;gap:4px}.langswitch a{font-size:12px;font-weight:700;text-decoration:none;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:3px 9px}.langswitch a.on{color:var(--ink-on-amber);background:var(--amber);border-color:var(--amber)}.filterbar{display:flex;gap:7px;overflow-x:auto;padding:9px 14px;background:var(--ground-2);border-bottom:1px solid var(--line);z-index:400;-webkit-overflow-scrolling:touch}.filterbar::-webkit-scrollbar{height:0}.chip{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:5px 11px;cursor:pointer;white-space:nowrap}.chip.on{color:var(--ink-on-amber);background:var(--amber);border-color:var(--amber)}.chip.spot.on{background:var(--jade);border-color:var(--jade)}.mapwrap{position:relative;flex:1 1;min-height:0}.leaflet-container{width:100%;height:100%;background:#100c17}.locate-btn{position:absolute;right:12px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:450;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:9px 12px;font-size:12.5px;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.4)}.pin-lantern{width:20px;height:25px;border-radius:9px/11px;box-shadow:0 0 12px rgba(246,169,59,.7),inset 0 0 4px rgba(0,0,0,.25);border:1px solid rgba(0,0,0,.25)}.pin-dot{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.8)}.sheet-backdrop{position:absolute;inset:0;background:rgba(6,4,10,.45);z-index:600}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:610;max-height:82%;overflow-y:auto;background:linear-gradient(180deg,var(--panel),var(--ground-2));border-top:1px solid var(--line);border-radius:20px 20px 0 0;padding:8px 16px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -14px 40px rgba(0,0,0,.5)}.sheet .grabber{width:40px;height:4px;border-radius:3px;background:var(--line);margin:4px auto 12px}.sheet .hero{height:96px;border-radius:14px;background:linear-gradient(150deg,#3a2140,#2a1830 60%,#1c1226);position:relative;display:flex;align-items:flex-end;padding:10px 12px;margin-bottom:10px;overflow:hidden}.sheet .hero:before{content:"";position:absolute;inset:0;background:radial-gradient(50% 80% at 82% 20%,rgba(246,169,59,.28),transparent 60%)}.sheet .hero .nm{position:relative;z-index:2}.sheet .hero .nm .jp{font-size:19px;font-weight:800;text-shadow:0 2px 10px #000}.sheet .hero .nm .en{font-size:11px;color:var(--amber-soft);font-weight:600;letter-spacing:.12em}.metaline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:11px}.metaline .open{color:var(--jade);font-weight:700}.metaline .sep{color:var(--muted-2)}.charge-card{background:linear-gradient(135deg,rgba(246,169,59,.14),rgba(246,169,59,.05));border:1px solid var(--amber-deep);border-radius:14px;padding:11px 13px;margin-bottom:12px}.charge-card .lab{font-size:10.5px;color:var(--amber-soft);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.charge-card .amt{font-size:26px;font-weight:800;margin-top:2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.charge-card .amt .yen{font-size:15px;color:var(--muted);vertical-align:5px}.charge-card .promise{margin-top:4px;font-size:11px;color:var(--ink)}.charge-card .promise .chk{color:var(--jade);font-weight:800}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tag{font-size:10.5px;border-radius:20px;padding:4px 10px;font-weight:600;border:1px solid var(--line);color:var(--muted);background:var(--panel)}.tag.on{color:var(--jade);border-color:#2c6a53;background:rgba(67,214,163,.08)}.tag.warm{color:var(--amber-soft);border-color:var(--amber-deep);background:rgba(246,169,59,.08)}.coupon{background:linear-gradient(135deg,var(--amber-soft),var(--amber));color:var(--ink-on-amber);border-radius:12px;padding:11px 13px;margin-bottom:10px}.coupon .t{font-weight:800;font-size:13.5px}.coupon .b{font-size:11px;opacity:.85;margin-top:2px}.nearby{font-size:12px;color:var(--muted);margin-bottom:10px}.nearby b{color:var(--ink)}.btn-ghost{display:block;width:100%;text-align:center;background:transparent;border:1px solid var(--line);border-radius:12px;padding:11px;font-size:13px;font-weight:700}.btn-ghost,.sheet .close{color:var(--ink);cursor:pointer}.sheet .close{position:absolute;top:12px;right:12px;background:var(--panel);border:1px solid var(--line);border-radius:50%;width:30px;height:30px;font-size:15px;z-index:3}.count{font-size:11px;color:var(--amber-soft);font-weight:700;white-space:nowrap}.legend{position:absolute;left:12px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:450;display:flex;flex-wrap:wrap;gap:5px 10px;max-width:62%;background:rgba(16,12,22,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:10px;padding:7px 10px}.legend .li{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.legend .sw{width:9px;height:9px;border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,.4)}.empty{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);z-index:440;background:rgba(16,12,22,.92);border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:12.5px;color:var(--muted);text-align:center;max-width:78%}.booking{display:flex;flex-direction:column;gap:9px;margin-top:4px}.booking-title{font-size:13px;font-weight:800;color:var(--amber-soft)}.fld{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.fld input,.fld select{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 11px;color:var(--ink);font-size:14px;font-family:inherit;width:100%}.fld input:focus,.fld select:focus{border-color:var(--amber);outline:none}.booking-err{font-size:12px;color:#ff8a8a}.booking-actions{display:flex;gap:8px;margin-top:4px}.booking-actions .btn-ghost{flex:1 1;margin:0}.btn-primary{flex:2 1;border:none;border-radius:12px;padding:11px;font-size:13.5px;font-weight:800;font-family:inherit;cursor:pointer;background:linear-gradient(135deg,var(--amber-soft),var(--amber));color:var(--ink-on-amber)}.btn-primary:disabled{opacity:.6;cursor:default}.booking-done{text-align:center;padding:14px 6px 4px;display:flex;flex-direction:column;align-items:center;gap:6px}.booking-done .check{width:52px;height:52px;border-radius:50%;background:var(--jade);color:#04140d;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;margin-bottom:4px}.booking-done .t{font-size:15px;font-weight:800}.booking-done .n{font-size:12px;color:var(--muted);margin-bottom:8px}.booking-done .btn-ghost{width:100%}:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:6px}