/* ハピネス予約：お客様画面・代表の専用ページ共通 */
.hpr{--hpr-text:#1F2A44;--hpr-sub:#4B5563;--hpr-line:#D5DBE5;--hpr-face:#4A90E2;--hpr-tt:#1B5FB3;--hpr-tint:#DCE9FA;--hpr-up:#1E7A3F;--hpr-uptint:#E7F4EB;--hpr-alert:#B8401F;--hpr-alerttint:#FDEDE8;--hpr-gray:#EEF2F7;
  font-size:16px;line-height:1.6;color:var(--hpr-text);max-width:720px;margin:0 auto}
.hpr *{box-sizing:border-box}
.hpr h2,.hpr h3{font-size:1.15em;margin:1.4em 0 .5em;line-height:1.4}
.hpr p{margin:.5em 0}
.hpr .hpr-sub{color:var(--hpr-sub);font-size:.92em}
.hpr .hpr-loading{padding:24px;text-align:center;color:var(--hpr-sub)}
.hpr .hpr-card{border:1px solid var(--hpr-line);border-radius:12px;padding:16px;margin:12px 0;background:#fff}
.hpr .hpr-card.new{border-left:6px solid var(--hpr-face)}
.hpr .hpr-card.stale{border-left:6px solid var(--hpr-alert);background:#fffaf8}
.hpr .hpr-card.confirmed{border-left:6px solid var(--hpr-up)}
.hpr .hpr-btn{display:inline-block;min-height:48px;padding:10px 18px;border-radius:10px;border:1.5px solid var(--hpr-face);background:#fff;color:var(--hpr-tt);font-size:1em;font-weight:700;cursor:pointer;line-height:1.3;text-decoration:none;text-align:center}
.hpr .hpr-btn.primary{background:var(--hpr-tt);color:#fff;border-color:var(--hpr-tt)}
.hpr .hpr-btn.quiet{border-color:var(--hpr-line);color:var(--hpr-sub);font-weight:500}
.hpr .hpr-btn.danger{border-color:var(--hpr-alert);color:var(--hpr-alert)}
.hpr .hpr-btn:disabled{opacity:.45;cursor:default}
.hpr .hpr-btns{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.hpr .hpr-btns .hpr-btn{flex:1 1 45%}
.hpr label.hpr-lab{display:block;font-weight:700;margin:14px 0 6px}
.hpr .hpr-req{color:var(--hpr-alert);font-size:.85em;margin-left:6px;font-weight:500}
.hpr input[type=text],.hpr input[type=password],.hpr input[type=tel],.hpr input[type=email],.hpr input[type=number],.hpr input[type=date],.hpr input[type=time],.hpr input[type=datetime-local],.hpr select,.hpr textarea{width:100%;font-size:16px;padding:12px;border:1.5px solid var(--hpr-line);border-radius:10px;background:#fff;color:var(--hpr-text);min-height:48px}
.hpr textarea{min-height:88px}
.hpr .hpr-choice{display:grid;grid-template-columns:1fr;gap:8px}
.hpr .hpr-choice label{display:flex;align-items:center;gap:10px;border:1.5px solid var(--hpr-line);border-radius:10px;padding:12px 14px;min-height:48px;cursor:pointer;background:#fff}
.hpr .hpr-choice label.on{border-color:var(--hpr-tt);background:var(--hpr-tint)}
.hpr .hpr-choice input{width:22px;height:22px;margin:0}
.hpr .hpr-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hpr .hpr-steps{display:flex;gap:6px;margin:8px 0 16px;font-size:.85em;color:var(--hpr-sub)}
.hpr .hpr-steps span{flex:1;text-align:center;padding:6px 4px;border-bottom:3px solid var(--hpr-line)}
.hpr .hpr-steps span.on{color:var(--hpr-tt);border-color:var(--hpr-face);font-weight:700}
.hpr .hpr-error{background:var(--hpr-alerttint);color:var(--hpr-alert);border-radius:10px;padding:12px 14px;margin:10px 0;font-weight:700}
.hpr .hpr-ok{background:var(--hpr-uptint);color:var(--hpr-up);border-radius:10px;padding:12px 14px;margin:10px 0}
.hpr .hpr-note{background:var(--hpr-gray);border-radius:10px;padding:12px 14px;margin:10px 0;font-size:.95em}
/* カレンダー */
.hpr .hpr-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:8px 0}
.hpr .hpr-cal .wd{text-align:center;font-size:.8em;color:var(--hpr-sub);padding:4px 0}
.hpr .hpr-cal button{min-height:56px;border:1.5px solid var(--hpr-line);border-radius:8px;background:#fff;font-size:.95em;line-height:1.2;padding:4px 2px;cursor:pointer;color:var(--hpr-text)}
.hpr .hpr-cal button .m{display:block;font-size:1.2em;font-weight:700}
.hpr .hpr-cal button .n{display:block;font-size:.72em;color:var(--hpr-sub)}
.hpr .hpr-cal button.o .m{color:var(--hpr-up)}
.hpr .hpr-cal button.d .m{color:#9A5B00}
.hpr .hpr-cal button.x,.hpr .hpr-cal button.p{background:var(--hpr-gray);color:var(--hpr-sub);cursor:default}
.hpr .hpr-cal button.sel{border-color:var(--hpr-tt);background:var(--hpr-tint);box-shadow:0 0 0 2px var(--hpr-face) inset}
.hpr .hpr-cal button.empty{border:none;background:transparent;cursor:default}
.hpr .hpr-legend{font-size:.85em;color:var(--hpr-sub);margin:4px 0 8px}
.hpr .hpr-times{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.hpr .hpr-times button{min-height:44px;min-width:76px;padding:8px 10px;border:1.5px solid var(--hpr-line);border-radius:8px;background:#fff;cursor:pointer;font-size:.95em;color:var(--hpr-text)}
.hpr .hpr-times button.sel{border-color:var(--hpr-tt);background:var(--hpr-tint);font-weight:700}
.hpr .hpr-prefs{margin:8px 0}
.hpr .hpr-prefs div{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:1px solid var(--hpr-line);border-radius:8px;margin:4px 0;background:#fff}
.hpr .hpr-prefs button{min-height:36px;border:none;background:transparent;color:var(--hpr-alert);cursor:pointer;font-size:.9em}
.hpr .hpr-summary dt{font-weight:700;margin-top:8px;color:var(--hpr-sub);font-size:.9em}
.hpr .hpr-summary dd{margin:0}
/* 専用ページ */
.hpr .hpr-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}
.hpr .hpr-tabs button{min-height:44px;padding:8px 12px;border-radius:999px;border:1.5px solid var(--hpr-line);background:#fff;cursor:pointer;font-size:.95em;color:var(--hpr-text)}
.hpr .hpr-tabs button.on{background:var(--hpr-tt);color:#fff;border-color:var(--hpr-tt)}
.hpr .hpr-tabs button .cnt{display:inline-block;min-width:22px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--hpr-alert);color:#fff;font-size:.8em;text-align:center}
.hpr .hpr-card .head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.hpr .hpr-card .head b{font-size:1.05em}
.hpr .hpr-card .tag{font-size:.8em;padding:2px 8px;border-radius:999px;background:var(--hpr-gray);color:var(--hpr-sub);white-space:nowrap}
.hpr .hpr-card .tag.new{background:var(--hpr-tint);color:var(--hpr-tt)}
.hpr .hpr-card .tag.stale{background:var(--hpr-alerttint);color:var(--hpr-alert)}
.hpr .hpr-card .tag.confirmed{background:var(--hpr-uptint);color:var(--hpr-up)}
.hpr .hpr-card .rows{margin:8px 0;font-size:.95em}
.hpr .hpr-card .rows div{padding:2px 0}
.hpr .hpr-card .rows .k{color:var(--hpr-sub);display:inline-block;min-width:7em}
.hpr .hpr-card .day{font-size:.9em;color:var(--hpr-sub);background:var(--hpr-gray);border-radius:8px;padding:8px 10px;margin:6px 0}
.hpr .hpr-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.hpr .hpr-toolbar input{flex:1;min-width:160px}
.hpr .hpr-closure{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:1px solid var(--hpr-line);border-radius:8px;margin:4px 0;background:#fff}
.hpr .hpr-foot{margin-top:24px;font-size:.85em;color:var(--hpr-sub);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.hpr-phone-note{margin-top:16px;font-size:.95em}
@media (min-width:560px){.hpr .hpr-choice.two{grid-template-columns:1fr 1fr}.hpr .hpr-btns .hpr-btn{flex:0 1 auto;min-width:160px}}
/* v0.2：月送り・◎・トップページ用カレンダー */
.hpr .hpr-monthnav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:8px 0}
.hpr .hpr-monthnav span{font-weight:700;font-size:1.05em}
.hpr .hpr-monthnav .hpr-btn{min-height:44px;padding:8px 14px;flex:0 0 auto}
.hpr .hpr-cal button.oo .m{color:var(--hpr-up)}
.hpr .hpr-cal button.oo{background:var(--hpr-uptint);border-color:#BFE3CB}
.hpr .hpr-cal button.past{opacity:.45;background:transparent}
.hpr .hpr-cal button.past .m{color:var(--hpr-sub);font-weight:400}
.hpr .hpr-times button .mk{font-weight:700}
.hpr .hpr-times button.oo .mk{color:var(--hpr-up)}
.hpr .hpr-times button.d .mk{color:#9A5B00}
.hpr .hpr-choice label.soft{background:var(--hpr-gray)}
.hpr .hpr-choice label small{display:block;color:var(--hpr-sub);font-size:.8em;font-weight:400}
.hpr-calendar-widget .hpr-cal.small .cell,.hpr-calendar-widget .hpr-cal.small .empty{display:block;min-height:48px;border:1.5px solid var(--hpr-line);border-radius:8px;text-align:center;padding:4px 2px;text-decoration:none;color:var(--hpr-text);line-height:1.2}
.hpr-calendar-widget .hpr-cal.small .empty{border:none}
.hpr-calendar-widget .hpr-cal.small .empty.past .m{color:var(--hpr-sub);opacity:.5}
.hpr-calendar-widget .hpr-cal.small .m{display:block;font-weight:700}
.hpr-calendar-widget .hpr-cal.small .n{display:block;font-size:.85em}
.hpr-calendar-widget .hpr-cal.small .cell.oo{background:var(--hpr-uptint)}
.hpr-calendar-widget .hpr-cal.small .cell.oo .n,.hpr-calendar-widget .hpr-cal.small .cell.o .n{color:var(--hpr-up)}
.hpr-calendar-widget .hpr-cal.small .cell.d .n{color:#9A5B00}
.hpr-calendar-widget .hpr-cal.small .cell.x,.hpr-calendar-widget .hpr-cal.small .cell.p{background:var(--hpr-gray);color:var(--hpr-sub)}
.hpr-calendar-widget .hpr-cal.small a.cell:hover{border-color:var(--hpr-tt)}
/* v0.2.2：試験運用中の表示 */
.hpr.hpr-trial{display:flex;gap:10px;align-items:flex-start;background:#FFF7E6;border:1.5px solid #E2B95C;border-radius:10px;padding:12px 14px;margin:0 auto 16px;font-size:.95em;color:#1F2A44}
.hpr .hpr-trial-tag{flex:0 0 auto;background:#8A4F00;color:#fff;font-weight:700;font-size:.85em;padding:2px 10px;border-radius:999px;white-space:nowrap;line-height:1.6}
/* v0.2.4：専用ページのログイン画面（入力欄とボタンを大きく） */
.hpr.hpr-login form p{margin:0 0 14px}
.hpr.hpr-login label{display:block;font-weight:700;margin:0 0 6px}
.hpr.hpr-login .login-remember label{display:flex;align-items:center;gap:10px;font-weight:500;min-height:44px;cursor:pointer}
.hpr.hpr-login input[type=checkbox]{width:22px;height:22px;margin:0}
.hpr.hpr-login input[type=submit]{width:100%;min-height:52px;border-radius:10px;border:1.5px solid var(--hpr-tt);background:var(--hpr-tt);color:#fff;font-size:1.05em;font-weight:700;cursor:pointer}
