:root{--bg:#f3efe6;--bg-accent:#d9e8e1;--ink:#2f2922;--muted:#6b6258;--card:#fffaf1;--line:#ddcfb8;--strong:#1f7a5b;--warn:#ba5a1d;--must:#ffe1c7;--done:#d7d3cc}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(circle at 10% -10%,rgba(245,176,65,.18),transparent 42%),radial-gradient(circle at 90% 0,rgba(44,130,116,.2),transparent 40%),linear-gradient(165deg,var(--bg),var(--bg-accent));font-family:Hiragino Maru Gothic ProN,Yu Gothic,Meiryo,sans-serif;min-height:100vh}.page{width:min(860px,100%);margin:0 auto;padding:20px 14px 80px}.hero{background:rgba(255,250,241,.82);border:1px solid rgba(125,108,90,.2);border-radius:18px;padding:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.eyebrow{margin:0;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1.2px}h1{margin:4px 0 8px;font-size:24px}.subtitle{margin:0;color:var(--muted);line-height:1.5}.syncPanel{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px}.submenuPanel{margin-top:14px;display:grid;grid-gap:10px;gap:10px}.submenuItem{background:rgba(255,250,241,.9);border:1px solid var(--line);border-radius:16px;overflow:hidden}.submenuItem summary{list-style:none;cursor:pointer;padding:14px;font-weight:700;color:#2d5144;background:linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(38,71%,93%,.85))}.submenuItem summary::-webkit-details-marker{display:none}.submenuItem summary:after{content:"▼";float:right;font-size:12px;color:var(--muted)}.submenuItem[open] summary:after{content:"▲"}.submenuBody{padding:0 12px 12px}.syncPanel h2{margin:0 0 6px;font-size:18px}.syncPanel p{margin:0 0 10px;color:var(--muted)}.syncRow{display:grid;grid-template-columns:1fr auto auto;grid-gap:8px;gap:8px}button,input{font:inherit}input{background:#fff}button,input{border:1px solid var(--line);border-radius:10px;padding:10px 12px}button{background:#fff7ea;color:var(--ink)}button:active{transform:translateY(1px)}.syncMeta{font-size:12px}.shareRow,.syncMeta{margin-top:8px}.shareRow button{width:100%}.mapPanel,.routePanel{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px}.mapPanel h2,.routePanel h2{margin:0 0 6px;font-size:18px}.mapPanel p,.routePanel p{margin:0 0 10px;color:var(--muted)}.mapRow{display:grid;grid-template-columns:1fr auto auto;grid-gap:8px;gap:8px}.routeCols{display:grid;grid-gap:10px;gap:10px}.routeCol{background:hsla(0,0%,100%,.58);border:1px solid var(--line);border-radius:12px;padding:10px}.routeCol h3{margin:0 0 8px;font-size:15px}.routeCol ol{margin:0;padding-left:18px}.routeCol li{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:5px 0;font-size:13px}.linkButton{border:none;background:transparent;color:#184b7d;padding:0;text-align:left}.filters{display:flex;gap:8px;margin:14px 0;overflow-x:auto;padding-bottom:2px}.filters button{white-space:nowrap;background:hsla(0,0%,100%,.7)}.filters .active{background:var(--strong);border-color:var(--strong);color:#fff}.error{color:#9f2d2d}.list{display:grid;grid-gap:10px;gap:10px}.shopCard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 8px 18px rgba(47,41,34,.07)}.shopCard.mustDo{border-color:#f4b37a;background:linear-gradient(150deg,var(--must),var(--card))}.shopCard.done{background:var(--done);opacity:.72}.cardTop{display:flex;align-items:center;justify-content:space-between;gap:8px}.cardTop h3{margin:0;font-size:18px}.badge{font-size:11px;border-radius:999px;background:#ef893e;color:#fff;padding:3px 8px}.status{margin:8px 0 4px;color:var(--strong);font-weight:700}.distance{margin:2px 0;color:#235d87;font-size:12px}.holiday,.hours{margin:2px 0;color:var(--muted);font-size:13px;line-height:1.4}.cardActions{display:flex;gap:8px;margin-top:10px}.cardActions button{flex:1 1}.modalWrap{position:fixed;inset:0;background:rgba(20,14,8,.5);display:flex;align-items:flex-end;justify-content:center;padding:8px}.modal{width:min(900px,100%);height:58vh;background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line)}.modalHeader{height:52px;display:flex;justify-content:space-between;align-items:center;padding:0 10px;border-bottom:1px solid var(--line)}.modalHeader h3{margin:0;font-size:16px}.embed{width:100%;height:calc(100% - 52px);border:0}@media (min-width:700px){.page{padding:30px 20px 90px}.routeCols{grid-template-columns:1fr 1fr}.modal{height:64vh}}.distBadge{display:inline-block;margin-left:8px;font-size:11px;font-weight:400;color:#235d87;background:#e3f0fb;border-radius:999px;padding:1px 7px;vertical-align:middle}.navButton{flex:1 1;display:flex;align-items:center;justify-content:center;border:1px solid #2a7ab8;border-radius:10px;background:#e8f3fc;padding:10px 12px;color:#1a5a8a;font:inherit;font-weight:700;text-decoration:none;text-align:center}.navButton:active{transform:translateY(1px)}.modalHeaderActions{display:flex;align-items:center;gap:8px}.modalHeaderActions .navButton{flex:none;font-size:13px;padding:6px 10px}.submenuBody .mapPanel,.submenuBody .routePanel,.submenuBody .syncPanel{margin-top:10px}