:root{--line:#cbd5e1;--ph:#e2e8f0;--ink:#0f172a;--sub:#64748b;--cta:#111827;--ok:#166534;--warn:#9a3412;--bg:#f1f5f9;--panel:#fff;--soft:#f8fafc;--accent:#2563eb}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Hiragino Sans,Noto Sans JP,sans-serif}a{color:inherit}.page{background:#fff;max-width:480px;min-height:100vh;margin:0 auto;padding:16px}.page-heading{margin-bottom:14px}.session-toolbar{background:#fff;justify-content:flex-end;max-width:480px;margin:0 auto;padding:8px 16px 0;display:flex}.session-logout{color:var(--sub);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:12px;text-decoration:underline}.session-logout:disabled{cursor:not-allowed;opacity:.6}.eyebrow{color:var(--accent);letter-spacing:0;margin:0 0 4px;font-size:11px;font-weight:700}.lead{color:var(--sub);margin:4px 0 0;font-size:13px;line-height:1.6}.title{margin:0 0 4px;font-size:18px;font-weight:700}.price{font-size:18px;font-weight:800}.price small{color:var(--sub);font-size:11px;font-weight:400}.badges{flex-wrap:wrap;gap:4px;margin:8px 0;display:flex}.badge{border:1px solid var(--line);color:var(--sub);border-radius:999px;padding:2px 8px;font-size:11px}.card{border:1px solid var(--line);color:inherit;background:var(--panel);border-radius:8px;margin-bottom:12px;text-decoration:none;display:block;overflow:hidden;box-shadow:0 8px 20px #0f172a0f}.card .ph{height:112px;color:var(--sub);background:linear-gradient(135deg,#2563eb29,#0000 46%),linear-gradient(45deg,#14b8a62e,#0000 54%),#e2e8f0;justify-content:center;align-items:center;font-size:11px;display:flex}.space-photo{border:1px solid var(--line);height:160px;color:var(--sub);background:linear-gradient(135deg,#2563eb29,#0000 44%),linear-gradient(45deg,#14b8a62e,#0000 56%),#e2e8f0;border-radius:8px;justify-content:center;align-items:center;margin-bottom:14px;font-size:12px;display:flex;position:relative;overflow:hidden}.space-photo:after,.card .ph:after{content:"";background:#ffffffa3;border:1px solid #94a3b852;border-radius:6px;height:34px;position:absolute;inset:auto 18px 14px}.card .ph{position:relative}.card .cb{padding:10px}.cta{background:var(--cta);color:#fff;text-align:center;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:10px;padding:12px 0;font-size:14px;font-weight:700;display:block}.cta.ghost{color:var(--ink);border:1.5px solid var(--ink);background:#fff}.cta.warn{color:var(--warn);border:1.5px solid var(--warn);background:#fff}.cta:disabled{color:#94a3b8;cursor:not-allowed;background:#e2e8f0}.divider{border-top:1px solid var(--line);margin:12px 0}.kv{justify-content:space-between;gap:12px;padding:4px 0;font-size:13px;display:flex}.kv .k{color:var(--sub)}.total{border-top:1.5px solid var(--ink);justify-content:space-between;margin-top:8px;padding-top:8px;font-size:15px;font-weight:800;display:flex}.steps{text-align:center;gap:4px;margin-bottom:12px;font-size:11px;display:flex}.steps div{color:var(--sub);background:#f1f5f9;border-radius:6px;flex:1;padding:6px 0}.steps .on{background:var(--ink);color:#fff;font-weight:700}.sticky{background:var(--soft);border-top:1px solid var(--line);margin:16px -16px -16px;padding:12px 16px;position:sticky;bottom:0}.alert{border:1px dashed var(--warn);color:var(--warn);border-radius:8px;margin-top:8px;padding:10px;font-size:12px}.good{border:1px dashed var(--ok);color:var(--ok);border-radius:8px;margin-top:8px;padding:10px;font-size:12px}.linebar{color:var(--sub);background:#f1f5f9;border-radius:8px;margin-top:8px;padding:10px;font-size:12px}.summary-panel{border:1px solid var(--line);background:var(--soft);border-radius:8px;margin-bottom:12px;padding:12px}.summary-title{margin:0 0 8px;font-size:15px;font-weight:800}.notice{color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin-top:12px;padding:10px;font-size:12px;line-height:1.6}.slot{border:1px solid var(--line);text-align:center;cursor:pointer;background:#fff;border-radius:6px;padding:8px 0;font-size:12px}.slot.sel{background:var(--ink);color:#fff;border-color:var(--ink)}.slot.ng{color:#cbd5e1;cursor:not-allowed;background:#f8fafc}.slot-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.field-label{color:var(--sub);margin-top:12px;margin-bottom:4px;font-size:12px}input[type=text],input[type=password],input[type=date]{border:1px solid var(--line);border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.error-text{color:var(--warn);margin-top:6px;font-size:12px}.loading{color:var(--sub);text-align:center;padding:24px 0;font-size:13px}
