:root{
  --bg:#FBF3F5;--surface:#FFFFFF;--surface-2:#FCF0F3;--ink:#4A3138;--ink-soft:#9A7E88;
  --line:#F0DEE4;--primary:#D98BA6;--primary-d:#C06E8C;--accent:#E8A9BE;--plum:#A65E7E;
  --shadow:0 6px 20px rgba(166,94,126,.12);--shadow-lg:0 12px 34px rgba(166,94,126,.22);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
svg{display:block}
body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.6;min-height:100vh}
.app{max-width:480px;margin:0 auto;min-height:100vh;position:relative;background:var(--bg)}
.main{padding:20px 18px calc(112px + env(safe-area-inset-bottom))}
a{text-decoration:none;color:inherit}
h1{font-size:22px;font-weight:800;letter-spacing:-.02em}
h2{font-size:17px;font-weight:800;margin-bottom:2px}
.sub{color:var(--ink-soft);font-size:13px}.center{text-align:center;margin-top:8px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--primary-d);text-transform:uppercase;margin-bottom:8px}
.brand-mark{width:60px;height:60px;border-radius:20px;background:linear-gradient(135deg,var(--primary),var(--accent));
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:26px;box-shadow:var(--shadow);margin:0 auto 16px}
.brand-mark.brand-img{width:78px;height:78px;background:none;padding:0;overflow:hidden}
.brand-mark.brand-img img{width:100%;height:100%;object-fit:cover;display:block}
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);margin-bottom:14px}
.card.flush{padding:0;overflow:hidden}
#flash{background:var(--ink);color:#fff;font-weight:700;font-size:13px;padding:12px 16px;border-radius:12px;margin:16px 18px 0;text-align:center}
/* login */
.login{padding:40px 26px}
.login-hero{text-align:center;margin-bottom:30px}.login-hero h1{font-family:'Josefin Sans',-apple-system,sans-serif;font-weight:600;font-size:38px;letter-spacing:.02em}.login-hero p{color:var(--ink-soft);font-size:13px;margin-top:6px}
.demo-hint{margin-top:22px;background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:14px}
.demo-hint .t{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:8px}
.demo-hint .drow{display:flex;justify-content:space-between;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:13px;margin-bottom:6px}
.demo-hint .drow span{color:var(--ink-soft)}.demo-hint .drow b{color:var(--primary-d)}
/* forms */
label.f{display:block;font-size:12px;font-weight:800;color:var(--ink-soft);margin:0 0 6px 2px}
/* 入力欄の中は、読みやすさを優先して白にしています。
   以前は薄いピンク（--surface-2）で、選んだときだけ白になっていました。
   画面によって白とピンクが混ざって見えていたのは、このためです。 */
input,select,textarea{width:100%;font-family:inherit;font-size:15px;color:var(--ink);background:#fff;
  border:1.5px solid var(--line);border-radius:13px;padding:13px 14px;outline:none;transition:.15s}
input:focus,select:focus,textarea:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px rgba(217,139,166,.18)}
/* 触れない欄は、白のままだと入力できそうに見えるので、薄いピンクで沈めます */
input[readonly],select[disabled],textarea[readonly],
input[disabled],textarea[disabled]{background:var(--surface-2);color:var(--ink-soft)}
textarea{resize:vertical;min-height:70px}.field{margin-bottom:14px}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.ziprow{display:flex;gap:8px;align-items:stretch}
.ziprow .zip-in{flex:1 1 auto;min-width:0}
.zip-btn,.zip-btn2{flex:0 0 auto;width:auto;padding:0 14px;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center}
.btn{display:block;width:100%;border:none;font-family:inherit;font-weight:800;font-size:16px;border-radius:14px;
  padding:15px;cursor:pointer;transition:transform .08s,filter .15s;color:#fff;background:var(--primary);text-align:center}
.btn:active{transform:scale(.98)}.btn.primary:hover{filter:brightness(1.04)}
.btn.ghost{background:var(--surface-2);color:var(--primary-d);border:1.5px solid var(--line)}
/* カード内で幅いっぱいにせず、左右に余白を残して中央に置くボタン */
.btn.mid{max-width:300px;margin-left:auto;margin-right:auto}
/* 予定一覧からお見積へ */
.est-link{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:11px 14px;border-top:1px solid var(--line);background:var(--surface-2);
  font-size:12.5px;font-weight:800;color:var(--primary-d);text-decoration:none}
.est-link svg{width:15px;height:15px;flex:none}
/* 予定一覧からキャンセルへ */
.cx-link{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:10px 14px;border-top:1px solid var(--line);background:#FDF6F5;
  font-size:12px;font-weight:800;color:#C0564E;text-decoration:none}
.cx-fee{font-size:11px;font-weight:700;color:var(--ink-soft);white-space:nowrap}
/* 予定リストの補足（打刻済みでキャンセル不可など） */
.ap-note{display:inline-block;margin-top:6px;font-size:11px;font-weight:700;color:var(--ink-soft)}
/* 管理者ホームの「本日のご予定」（打刻をしない方向け） */
.tc-my{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.tc-my:first-of-type{border-top:none;padding-top:2px}
.tc-my b{font-size:14px;font-weight:800;color:var(--primary-d);flex:none;font-variant-numeric:tabular-nums}
.tc-my span{font-size:13px;line-height:1.5}
/* チラシ配布・施設訪問の報告 */
.field-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fl-calc{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:13px}
.fl-calc>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:3px 0}
.fl-calc b{color:var(--primary-d);font-weight:800;white-space:nowrap}
.fl-calc .tot{border-top:1px solid var(--line);margin-top:6px;padding-top:8px;font-size:15px;font-weight:800}
.fl-fac{border:1.5px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:var(--surface)}
.fl-fac-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.fl-fac-n{font-size:12px;font-weight:800;color:var(--primary-d)}
.fl-fac-del{border:none;background:none;font-family:inherit;font-size:11.5px;font-weight:800;color:#C0564E;cursor:pointer;padding:2px 4px}
.fl-seg{display:flex;gap:6px}
.fl-seg .fl-opt{flex:1;display:block;text-align:center;font-family:inherit;cursor:pointer;
  border:1.5px solid var(--line);border-radius:9px;padding:10px 0;
  font-size:12.5px;font-weight:800;color:var(--ink-soft);background:var(--surface)}
.fl-seg .fl-opt.on{background:var(--primary);border-color:var(--primary);color:#fff}
.fl-seg .fl-opt.ng.on{background:#C0564E;border-color:#C0564E}
.fl-warn{margin-top:8px;font-size:12px;font-weight:700;color:#C0564E;line-height:1.6}
.fl-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.fl-thumb{padding:8px 10px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);
  font-size:11px;color:var(--ink-soft);font-weight:700}
.fl-shot{display:block;width:72px;height:72px;border-radius:9px;overflow:hidden;border:1px solid var(--line)}
.fl-shot img{width:100%;height:100%;object-fit:cover;display:block}
.fl-badge{font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:99px;white-space:nowrap}
.fl-badge.wait{background:#FDF0E6;color:#B57A2E}
.fl-badge.ok{background:#E9F1EA;color:#3F8A62}
.fl-badge.other{background:#F2E9ED;color:var(--ink-soft)}
.fl-sub{font-size:12px;color:var(--ink-soft)}
.fl-map{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;font-weight:800;color:var(--primary-d);text-decoration:none}
.fl-map svg{width:13px;height:13px}
/* ステッパーの丸に入るアイコン（完了・ロック） */
.stp-num svg{width:15px;height:15px;display:block}
/* 部分差し替え中：領域をうすく見せて、切り替わったことが分かるようにする */
html.swapping [data-swap]{opacity:.55;transition:opacity .12s ease}
@media (prefers-reduced-motion:reduce){ html.swapping [data-swap]{transition:none} }
.form-actions{display:flex;gap:10px;margin-top:22px}.form-actions .btn{flex:1}
.req{color:var(--plum);font-weight:800;margin-left:3px}
.sec-title{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--primary-d);margin:22px 2px 10px;text-transform:uppercase}
.sec-title:first-child{margin-top:4px}
/* 注記。背景を敷くとボタンやカードの幅と食い違って見えるため、文字だけで見せる */
.note-inline{font-size:12px;color:var(--ink-soft);line-height:1.65;margin-top:8px}
.cond{display:none}.cond.show{display:block}
.chk-group{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.chk{display:flex;align-items:center;gap:11px;background:var(--surface-2);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;font-size:14px;transition:.12s}
.chk input{width:20px;height:20px;flex:none;accent-color:var(--primary)}
.chk.on{border-color:var(--primary);background:#FBEAF0}
.scale{display:flex;justify-content:space-between;gap:6px;margin-top:8px}
.scale label{flex:1;text-align:center}.scale input{display:none}
.scale span{display:block;padding:11px 0;border:1.5px solid var(--line);border-radius:11px;background:var(--surface-2);font-weight:800;font-size:15px;cursor:pointer;transition:.12s}
.scale input:checked+span{background:var(--primary);color:#fff;border-color:var(--primary)}
.scale-ends{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-soft);margin-top:5px}
/* appbar */
.appbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;
  margin:-20px -18px 16px;padding:calc(20px + env(safe-area-inset-top)) 18px 12px;
  background:var(--bg);border-bottom:1px solid var(--line)}
.appname{font-family:'Josefin Sans',-apple-system,sans-serif;font-weight:600;font-size:23px;letter-spacing:.02em;color:var(--ink);display:inline-flex;align-items:center;padding:2px 2px;line-height:1}
.appname:active{opacity:.55}
.appbar .who{display:flex;align-items:center;gap:10px}
.avatar{width:38px;height:38px;border-radius:12px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.avatar.admin{background:var(--plum)}.avatar.user{background:var(--accent)}
.appbar .who .n{font-weight:800;font-size:15px;line-height:1.2}.appbar .who .r{font-size:11px;color:var(--ink-soft);font-weight:700}
.logout{color:var(--ink-soft);font-size:12px;font-weight:700;padding:6px}
.backbtn{display:flex;align-items:center;gap:4px;color:var(--ink-soft);font-weight:800;font-size:13px}
.backbtn svg{width:16px;height:16px}
/* timecard */
.punch-wrap{display:flex;flex-direction:column;align-items:center;padding:26px 0 8px}
.clock{font-size:44px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.clock-date{font-size:13px;color:var(--ink-soft);font-weight:700;margin-bottom:22px}
.punch-btn{width:200px;height:200px;border-radius:50%;border:none;cursor:pointer;color:#fff;font-weight:800;font-size:26px;transition:transform .1s;
  background:radial-gradient(circle at 50% 38%,#e6a3ba,var(--primary));box-shadow:0 14px 30px rgba(217,139,166,.5)}
.punch-btn:active{transform:scale(.96)}
.punch-btn.out{background:radial-gradient(circle at 50% 38%,#bb7793,var(--plum));box-shadow:0 14px 30px rgba(166,94,126,.5)}
.punch-btn .small{display:block;font-size:13px;font-weight:700;opacity:.92;margin-top:4px}
.working-badge{display:none;align-items:center;gap:8px;background:#FCE9EF;border:1px solid #F3CBD9;color:var(--primary-d);font-weight:800;font-size:14px;padding:10px 16px;border-radius:999px;margin:20px auto 0;width:fit-content}
.working-badge.show{display:flex}
.working-badge .pulse{width:9px;height:9px;border-radius:50%;background:var(--primary);animation:pulse 1.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(217,139,166,.6)}70%{box-shadow:0 0 0 9px rgba(217,139,166,0)}100%{box-shadow:0 0 0 0 rgba(217,139,166,0)}}
.geo-line{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:5px}
.geo-line svg{width:13px;height:13px;flex:none}
.log-item{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line)}
.log-item:last-child{border-bottom:none}
.log-item .tp{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;color:#fff;flex:none}
.tp.in{background:var(--primary)}.tp.out{background:var(--plum)}
.log-item .info{flex:1;min-width:0}.log-item .info .tt{font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}
.log-item .info .mm{font-size:11px;color:var(--ink-soft);display:flex;align-items:center;gap:4px}
.log-item .info .mm svg{width:12px;height:12px;flex:none}
.empty{text-align:center;color:var(--ink-soft);font-size:13px;padding:26px 10px}
.empty svg{width:34px;height:34px;margin:0 auto 10px;color:var(--primary);opacity:.6}
/* report list */
.info-banner{background:linear-gradient(135deg,#FCE9EF,#fff);border:1px solid #F3CBD9;border-radius:16px;padding:15px 16px;margin-bottom:14px}
.info-banner .bt{font-weight:800;font-size:13px;color:var(--primary-d);margin-bottom:3px}.info-banner .bd{font-size:12px;color:var(--ink-soft)}
.badge{display:inline-block;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px}
.badge.draft{background:#FCE9EF;color:var(--primary-d)}.badge.done{background:#F1DDE7;color:var(--plum)}
.rep-item{padding:14px 16px;border-bottom:1px solid var(--line)}.rep-item:last-child{border-bottom:none}
.rep-item .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.rep-item .nm{font-weight:800;font-size:15px}.rep-item .mt{font-size:12px;color:var(--ink-soft)}
/* menu / staff list */
.menu-row{display:flex;align-items:center;gap:14px;padding:15px 16px;border-bottom:1px solid var(--line)}
.menu-row:last-child{border-bottom:none}.menu-row.tap{cursor:pointer}
.menu-row .mi{width:22px;height:22px;color:var(--primary-d);flex:none}.menu-row .mi svg{width:22px;height:22px}
.menu-row .ml{flex:1;font-weight:700;font-size:14px}
.menu-row .mn{font-size:11px;color:var(--ink-soft);font-weight:800;background:var(--surface-2);padding:3px 8px;border-radius:8px}
.menu-row .chev{width:16px;height:16px;color:var(--ink-soft)}.menu-row .chev svg{width:16px;height:16px}
.list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 2px}
.list-head .cnt{font-size:13px;font-weight:800;color:var(--ink-soft)}
.addbtn{background:var(--primary);color:#fff;font-weight:800;font-size:12px;padding:8px 13px;border-radius:10px;display:flex;align-items:center;gap:5px}
.addbtn svg{width:15px;height:15px}
.st-row{padding:14px 16px;border-bottom:1px solid var(--line)}.st-row:last-child{border-bottom:none}
.st-row .st-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.st-name{font-weight:800;font-size:15px;line-height:1.3}.st-mail{font-size:11px;color:var(--ink-soft);word-break:break-all}
.st-edit{color:var(--primary-d);font-weight:800;font-size:12px;flex:none;padding:4px}
.st-meta{display:flex;gap:16px;margin-top:9px;font-size:12px;color:var(--ink-soft);align-items:center;flex-wrap:wrap}
.st-meta .kv b{color:var(--ink);font-weight:800}
/* スタッフ一覧（1行表示：アイコン／氏名／ステータス） */
.menu-row.stf{gap:11px;padding:11px 13px}
.stf-ava{width:34px;height:34px;border-radius:50%;background:#FBEAF0;color:var(--primary-d);
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex:none}
.stf-ava.off{background:#F1ECEE;color:#A08C95}
.menu-row.stf .ml{font-size:14px;font-weight:800;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-row.stf .ml.off{color:var(--ink-soft)}
.st-status.train{background:#FAEEDA;color:#8A5A12}
/* スタッフ情報モーダル（ヘッダ・本文スクロール・フッタ固定） */
.stf-modal{display:none;position:fixed;inset:0;background:rgba(74,49,56,.45);z-index:120;align-items:flex-end;justify-content:center}
.stf-modal.show{display:flex;animation:fadein .2s ease}
.stf-box{background:var(--bg);width:100%;max-width:480px;border-radius:20px 20px 0 0;height:85vh;
  display:flex;flex-direction:column;overflow:hidden;animation:slideup .24s ease}
.stf-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;
  background:var(--surface);border-bottom:1px solid var(--line);flex:none}
.stf-head b{font-weight:800;font-size:15px}
.stf-form{display:flex;flex-direction:column;flex:1;min-height:0}
.stf-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 14px 22px}
.stf-body .card{margin-bottom:12px}
.stf-foot{flex:none;padding:12px 14px calc(12px + env(safe-area-inset-bottom));
  background:var(--surface);border-top:1px solid var(--line)}
.stf-foot .form-actions{margin-top:0}
.stf-hero{text-align:center;margin-bottom:16px}
.stf-hero .av{display:inline-flex;width:64px;height:64px;border-radius:50%;background:#FBEAF0;
  color:var(--primary-d);align-items:center;justify-content:center;font-size:24px;font-weight:800}
.stf-hero .av.off{background:#F1ECEE;color:#A08C95}
.stf-hero .nm{font-size:17px;font-weight:800;margin-top:9px}
.stf-hero .bd{margin-top:6px}
.stf-kv{background:var(--surface);border-radius:12px;padding:2px 13px;margin-bottom:12px}
.stf-kv .r{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #F5E7EC;font-size:13px}
.stf-kv .r:last-child{border-bottom:none}
.stf-kv .k{color:var(--ink-soft);flex:none}
.stf-kv .v{color:var(--ink);text-align:right;word-break:break-all;font-weight:700}
.stf-del{text-align:center;margin-top:18px}
.stf-del a,.stf-del button{display:inline-block;border:1px solid #E8C3C3;color:#C0564E;background:var(--surface);
  font-size:13px;font-weight:800;padding:10px 22px;border-radius:12px;text-decoration:none;
  font-family:inherit;cursor:pointer}
.st-status{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:#FCE9EF;color:var(--primary-d)}
/* placeholder */
.ph{text-align:center;padding:60px 24px}.ph .phic{width:52px;height:52px;margin:0 auto 16px;color:var(--primary)}.ph .phic svg{width:52px;height:52px}
.ph h2{margin-bottom:8px}.ph p{color:var(--ink-soft);font-size:13px}
.ph .tag{display:inline-block;margin-top:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:11px;font-weight:800;color:var(--ink-soft)}
/* tabbar */
.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:40}
.tabbar-inner{display:flex;max-width:480px;width:100%;padding:6px 4px 10px;
  padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.tabitem{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink-soft);font-size:10px;font-weight:800;padding:6px 0;border-radius:12px}
.tabitem svg{width:23px;height:23px}
.tabitem.on{color:var(--primary-d)}.tabbar.admin .tabitem.on{color:var(--plum)}
/* wage table (admin staff form) */
.wtable{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:6px}
.wrow{display:flex;justify-content:space-between;align-items:center;padding:9px 13px;font-size:13px;border-bottom:1px solid var(--line);color:var(--ink-soft)}
.wrow:last-child{border-bottom:none}
.wrow b{color:var(--ink);font-weight:800}
.wrow.on{background:#FBEAF0;color:var(--primary-d)}.wrow.on b{color:var(--primary-d)}
.wage-auto{margin-top:14px}
.wage-now{font-size:14px;font-weight:700;color:var(--ink-soft);margin-bottom:10px}
.wage-now b{color:var(--primary-d);font-size:18px;font-weight:800}
.wage-special{margin-top:14px}
/* my stats (staff profile) */
.mystats{display:flex;flex-direction:column;gap:14px}
.mystat{text-align:center;padding:14px 0;border-bottom:1px solid var(--line)}
.mystat:first-child{padding-top:0}
.mystat:last-child{border-bottom:none;padding-bottom:0}
.mystat .ml{font-size:12px;font-weight:800;color:var(--ink-soft);margin-bottom:4px}
.mystat .mv{font-size:26px;font-weight:800;color:var(--ink);line-height:1.1}
.mystat .mv.big{font-size:34px;color:var(--primary-d)}
.mystat .mv .u{font-size:14px;font-weight:800;margin-left:2px}
.mystat .moti{font-size:11px;font-weight:800;color:var(--accent-d,#C58098);margin-top:6px;color:var(--primary-d)}
/* families: search / list / detail / form rows */
.searchbar{display:flex;gap:8px;margin-bottom:14px}
.searchbar input{flex:1}
.searchbar .btn{width:auto;padding:0 18px;display:flex;align-items:center}
.searchbar .btn svg{width:20px;height:20px}
.fam-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 16px;border-bottom:1px solid var(--line)}
.fam-row:last-child{border-bottom:none}
.fam-rn{font-weight:800;font-size:15px}.fam-rm{font-size:12px;color:var(--ink-soft);margin-top:2px}
.fam-row .chev{width:16px;height:16px;color:var(--ink-soft);flex:none}.fam-row .chev svg{width:16px;height:16px}
.fam-name{font-size:20px;font-weight:800;letter-spacing:-.01em}
.det-row{padding:13px 16px;border-bottom:1px solid var(--line)}.det-row:last-child{border-bottom:none}
.det-label{font-size:11px;font-weight:800;color:var(--primary-d)}
.det-val{font-size:14px;margin-top:2px}
.det-child{padding:13px 16px;border-bottom:1px solid var(--line)}.det-child:last-child{border-bottom:none}
.dc-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.dc-name{font-weight:800;font-size:15px}.dc-meta{font-size:12px;color:var(--ink-soft)}
.dc-line{font-size:12px;color:var(--ink-soft);margin-top:4px}
.rowblock{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px;background:var(--surface-2)}
.rowblock-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.rowblock-head b{font-size:13px;font-weight:800;color:var(--primary-d)}
.rowblock-head select{width:auto;min-width:120px}
.rowdel{background:none;border:none;color:var(--plum);font-weight:800;font-size:12px;cursor:pointer;padding:4px}
/* appointments */
.ap-row{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-bottom:1px solid var(--line);position:relative}
.ap-row:last-child{border-bottom:none}
.ap-row.nolink{cursor:default}
a.ap-row .chev{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-soft)}
a.ap-row .chev svg{width:16px;height:16px}
.ap-top{display:flex;align-items:center;gap:10px}
.ap-time{font-weight:800;font-size:14px;font-variant-numeric:tabular-nums;color:var(--primary-d)}
.ap-fam{font-weight:800;font-size:15px;margin-top:3px}
.ap-meta{font-size:12px;color:var(--ink-soft)}

/* compact add button (replaces full-width .btn for row additions) */
.addrow{display:inline-flex;align-items:center;gap:6px;width:auto;background:var(--surface-2);color:var(--primary-d);
  border:1.5px dashed var(--line);border-radius:12px;padding:10px 16px;font-family:inherit;font-weight:800;font-size:13px;cursor:pointer;transition:.12s}
.addrow:active{transform:scale(.98)}
.addrow svg{width:16px;height:16px}
/* calendar */
.cal{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow);margin-bottom:14px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-title{font-weight:800;font-size:16px}
.cal-nav{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--surface-2);color:var(--primary-d);font-size:20px;font-weight:800}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%}
.cal-dow{margin-bottom:4px}
.cal-dowc{text-align:center;font-size:11px;font-weight:800;color:var(--ink-soft);padding:4px 0}
.cal-dowc.sun{color:#C0708C}.cal-dowc.sat{color:#7C8BB0}
.cal-cell{position:relative;aspect-ratio:1/1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--ink);background:var(--surface-2);cursor:pointer;transition:.12s}
.cal-cell.empty{background:none;cursor:default}
.cal-cell.has{background:#FBEAF0;color:var(--primary-d);font-weight:800}
.cal-cell.has:active{transform:scale(.95)}
.cal-cell.today{outline:2px solid var(--primary)}
.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);margin-top:3px}
.cal-cell.empty .cal-d{display:none}
/* calendar modal */
.cal-modal{display:none;position:fixed;inset:0;background:rgba(74,49,56,.45);z-index:100;align-items:flex-end;justify-content:center}
.cal-modal.show{display:flex;animation:fadein .2s ease}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.cal-modal-box{background:var(--surface);width:100%;max-width:480px;border-radius:20px 20px 0 0;padding:18px 18px 28px;max-height:80vh;overflow-y:auto;animation:slideup .24s ease}
@keyframes slideup{from{transform:translateY(30px)}to{transform:translateY(0)}}
.cal-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-modal-head span{font-weight:800;font-size:16px}
.cal-x{background:none;border:none;font-size:18px;color:var(--ink-soft);cursor:pointer;padding:4px 8px}
.cm-item{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.cm-top{display:flex;align-items:center;gap:10px;margin-bottom:3px}
.cm-time{font-weight:800;font-size:14px;color:var(--primary-d);font-variant-numeric:tabular-nums}
.cm-fam{font-weight:800;font-size:15px}
.cm-meta{font-size:12px;color:var(--ink-soft)}
.cm-edit{display:inline-block;margin-top:8px;font-size:12px;font-weight:800;color:var(--primary-d)}
.cm-empty{text-align:center;color:var(--ink-soft);font-size:13px;padding:16px}
.cm-add{display:block;text-align:center;margin-top:6px}
/* report view (read-only) */
.rv-head{display:flex;align-items:center;justify-content:space-between}
.rv-date{font-size:20px;font-weight:800;letter-spacing:-.01em}
.rv-service{font-size:13px;font-weight:800;color:var(--primary-d);margin-top:2px}
.rv-text{font-size:14px;color:var(--ink);white-space:pre-wrap;line-height:1.7}
/* zip row: force button snug even against .btn width:100% */
.ziprow{display:flex;gap:8px;align-items:stretch}
.ziprow .zip-in{flex:1 1 auto;min-width:0;width:auto}
.ziprow .btn,.ziprow button{flex:0 0 auto;width:auto;padding:0 14px;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}
.st-status.off{background:#EFE7EA;color:var(--ink-soft)}
/* report view: stacked rows + stars + options */
.rv-rows{margin-top:6px}
.rv-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.rv-row:last-child{border-bottom:none}
.rv-k{font-size:12px;font-weight:800;color:var(--ink-soft);flex:0 0 auto}
.rv-v{font-size:15px;font-weight:800;text-align:right}
.rv-stars{letter-spacing:2px;font-size:16px;line-height:1}
.rv-stars .star{color:var(--line)}
.rv-stars .star.on{color:#E8A33F}
.rv-opt{font-size:14px;font-weight:700}
.rv-opt+.rv-opt{margin-top:4px}
/* report view: stacked サポート内容 list */
.rv-list{margin-top:2px}
.rv-li{font-size:14px;font-weight:700;padding:6px 0;border-bottom:1px solid var(--line)}
.rv-li:last-child{border-bottom:none}
/* non-interactive display box (locked fields) */
.readbox{background:#F6ECF0;border:1.5px solid var(--line);border-radius:13px;padding:13px 14px;font-size:15px;color:var(--ink-soft);font-weight:700;pointer-events:none;user-select:none;min-height:20px}
/* app-like: prevent double-tap zoom / text auto-resize */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{touch-action:manipulation}
.rw-note{font-size:11px;color:var(--ink-soft);font-weight:700;margin-left:6px}
/* earnings dashboard */
.er-grid{display:flex;gap:10px;margin-top:4px}
.er-box{flex:1;border:1.5px solid var(--line);border-radius:14px;padding:12px 12px}
.er-box.done{background:#FBEAF0;border-color:#F0C9D9}
.er-box.plan{background:var(--surface-2)}
.er-l{font-size:11px;font-weight:800;color:var(--ink-soft);margin-bottom:4px;line-height:1.4}
.er-v{font-size:22px;font-weight:800;color:var(--ink)}
.er-box.done .er-v{color:var(--primary-d)}
/* 「3枚」の単位。数字より控えめにする */
.er-u{font-size:13px;font-weight:800;margin-left:2px}
.er-wage{margin-top:14px;font-size:14px;font-weight:700;color:var(--ink-soft)}
.er-wage b{color:var(--ink);font-size:16px}
.er-chart{width:100%;height:auto;display:block}
.er-bar{fill:var(--primary)}
.er-bar-val{font-size:8px;font-weight:800;fill:var(--primary-d);text-anchor:middle}
.er-bar-x{font-size:10px;font-weight:800;fill:var(--ink-soft);text-anchor:middle}
.er-bar-c{font-size:9px;font-weight:700;fill:var(--ink-soft);text-anchor:middle}
.wh-row{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.wh-row:last-child{border-bottom:none}
.wh-date{font-weight:800;font-size:14px;flex:0 0 auto;min-width:58px}
.wh-wd{font-size:11px;color:var(--ink-soft);font-weight:700}
.wh-body{flex:1;min-width:0}
.wh-punch{font-size:13px;font-variant-numeric:tabular-nums}
.wh-min{font-size:12px;color:var(--primary-d);font-weight:800;margin-top:2px}
/* home punch: 予定選択 */
.punch-select{width:100%;max-width:280px;margin:0 auto 12px;display:block;text-align:center}
.punch-open-note{font-size:14px;font-weight:800;color:var(--primary-d);margin-bottom:10px;text-align:center}
/* work calendar: 当日=最も濃い / 予定あり=〇（ドット） */
.wk-cal .cal-cell.has{background:var(--surface-2);color:var(--ink)}
.wk-cal .cal-cell.today{outline:none;box-shadow:inset 0 0 0 1.5px #E9C4D2}
.wk-cal .cal-cell.today .cal-d{color:inherit}
.wk-cal .cal-cell.today .cal-dot{background:var(--primary)}
.wk-p{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.wk-p:last-of-type{border-bottom:none}
.wk-pt{font-size:12px;font-weight:800;padding:2px 8px;border-radius:8px}
.wk-pt.in{background:#E9F6EC;color:#2E7D46}
.wk-pt.out{background:#FBEAF0;color:var(--primary-d)}
.wk-total{margin-top:10px;font-weight:800;color:var(--primary-d)}
/* reward chart month scroller */
.er-chart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-title-sm{font-size:13px;font-weight:800;color:var(--ink-soft)}
.cal-nav.off{opacity:.3;pointer-events:none}
.dc-kana{font-size:11px;color:var(--ink-soft);font-weight:700;margin-left:6px}
.hint{font-size:10px;color:var(--ink-soft);font-weight:600;margin-left:4px}
/* profile form: radio / checkbox groups */
.radrow{display:flex;gap:18px;flex-wrap:wrap}
.rad,.chk{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--ink)}
.checkgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px}
.rad input,.chk input{width:18px;height:18px;accent-color:var(--primary)}
@media (max-width:360px){ .checkgrid{grid-template-columns:1fr} }
/* おうちのこと：1項目1行チェック / スピナー / 追加行 / アコーディオン */
.checklist{display:flex;flex-direction:column}
.checklist .chk{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;padding:9px 0;border-bottom:1px solid var(--line)}
.checklist .chk:last-child{border-bottom:none}
.chk input,.rad input{width:18px;height:18px;accent-color:var(--primary);flex:0 0 auto}
.numin{max-width:120px}
.rep-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.rep-row input{flex:1 1 auto;min-width:0}
.rep-del{flex:0 0 auto;width:40px;height:40px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-soft);font-weight:800}
.acc .acc-head{width:100%;background:none;border:none;display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:800;color:var(--ink);cursor:pointer;padding:0}
.acc .acc-ic{transition:transform .15s;color:var(--ink-soft);display:inline-flex}
.acc.acc-open .acc-ic{transform:rotate(90deg)}
.acc .acc-body{display:none;margin-top:14px}
.acc.acc-open .acc-body{display:block}

/* ===== おうちのこと 選択UIの見た目調整（最終上書き） ===== */
/* チェック：1項目1行・カード風・行間あり */
.checklist{display:flex;flex-direction:column;gap:8px}
.checklist .chk{padding:13px 14px;border:1.5px solid var(--line);border-bottom:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);gap:11px;font-weight:600}
.checklist .chk:has(input:checked){border-color:var(--primary);background:#FBEAF0;color:var(--primary-d)}
/* ラジオ：縦並び・カード風（機種による改行を回避） */
.radrow{display:flex;flex-direction:column;gap:8px;flex-wrap:nowrap}
.radrow .rad{padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);gap:11px;font-weight:600}
.radrow .rad:has(input:checked){border-color:var(--primary);background:#FBEAF0;color:var(--primary-d)}
/* アコーディオン：右側に丸い開閉アイコン（タップと分かるように） */
.acc .acc-head{gap:10px}
.acc .acc-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--surface-2);color:var(--primary);transition:transform .15s;flex:0 0 auto}
.acc.acc-open .acc-ic{transform:rotate(90deg)}
.reglink{margin-top:16px;text-align:center;font-size:13px;color:var(--ink-soft)}
.reglink a{color:var(--primary-d);font-weight:700;text-decoration:underline;text-underline-offset:2px}
/* シフト希望 */
.sh-cal .sh-o{color:var(--primary);font-weight:800;font-size:12px;line-height:1}
.sh-cal .sh-x{color:var(--ink-soft);font-weight:800;font-size:13px;line-height:1}
.sh-legend{display:flex;gap:18px;justify-content:center;margin-top:12px;font-size:12px;color:var(--ink-soft)}
.sh-legend .sh-o{color:var(--primary)} .sh-legend .sh-x{color:var(--ink-soft)}
.range-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.range-row select{flex:1 1 auto;min-width:0}
.range-tilde{flex:0 0 auto;color:var(--ink-soft);font-weight:700}
.range-row .rep-del{flex:0 0 auto;width:38px;height:38px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-soft);font-weight:800}
.sh-dim{opacity:.4;pointer-events:none}
.sh-hide{display:none}
/* 閲覧のみのときに出す備考 */
.sh-note-v{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);
  font-size:12.5px;color:var(--ink-soft);line-height:1.6;font-weight:700}
/* シフト提出ウィンドウ */
.sh-banner{background:linear-gradient(180deg,#FDF2F6,#fff);border:1.5px solid var(--primary)}
.sh-b-ttl{font-weight:800;color:var(--primary-d)}
.sh-b-sub{margin-top:4px;font-weight:700;color:var(--ink)}
.sh-cal .cal-cell.sh-edit{outline:none;box-shadow:inset 0 0 0 2px var(--primary)}
.sh-cal a.cal-cell.sh-edit:active{transform:scale(.95)}
.sh-edit-dot{display:inline-block;width:12px;height:12px;border-radius:4px;outline:2px solid var(--primary);outline-offset:-2px;vertical-align:middle}
.sh-cal .cal-cell.sh-future{outline:none;box-shadow:inset 0 0 0 1.5px #E9C4D2}
.sh-cal a.cal-cell.sh-future:active{transform:scale(.95)}
.sh-future-dot{display:inline-block;width:12px;height:12px;border-radius:4px;outline:1.5px dashed #E9C4D2;outline-offset:-2px;vertical-align:middle}
/* 予定フォーム：シフト警告 */
.shift-warn{margin-top:-4px;margin-bottom:6px;padding:10px 12px;border-radius:10px;background:#FFF4E5;border:1.5px solid #F0B96B;color:#8a5a12;font-size:13px;font-weight:700;line-height:1.5}
/* ボタン内アイコンの肥大化を防止 + コンパクトボタン */
.btn svg{width:18px;height:18px;flex:0 0 auto}
.btn.btn-sm{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;padding:10px 16px;font-size:14px}
/* 給与 */
.pay-sum{display:flex;flex-direction:column;gap:6px}
.pay-sum>div{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}
.pay-sum>div span{color:var(--ink-soft);font-weight:600}
.pay-sum>div b{font-weight:800;font-variant-numeric:tabular-nums}
.pay-total{margin-top:6px;padding-top:8px;border-top:1.5px solid var(--line)}
.pay-total b{font-size:20px;color:var(--primary-d)}
.pay-sub{display:block;font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:2px}
.pay-amt{font-weight:800;font-variant-numeric:tabular-nums;margin-left:auto;padding-right:6px}
.pay-row{padding:12px 0;border-bottom:1px solid var(--line)}
.pay-row:last-child{border-bottom:none}
.pay-r1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.pay-fam{color:var(--ink-soft);font-weight:600}
.pay-nom{font-size:11px;font-weight:800;padding:1px 7px;border-radius:8px;background:#FBEAF0;color:var(--primary-d)}
.pay-r2{display:flex;justify-content:space-between;gap:10px;margin-top:4px;font-size:12px;color:var(--ink-soft);font-weight:600;font-variant-numeric:tabular-nums}
/* 給与明細：行レイアウト（最終上書き） */
.pay-row{padding:14px 16px;border-bottom:1px solid var(--line)}
.pay-row:last-child{border-bottom:none}
.pay-r1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.pay-date{font-weight:800;font-variant-numeric:tabular-nums;flex:0 0 auto}
.pay-fam{font-weight:600;color:var(--ink-soft);min-width:0;overflow-wrap:anywhere}
.pay-svc{margin-top:4px;font-size:12px;color:var(--ink-soft);font-weight:600;overflow-wrap:anywhere}
.pay-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.pay-chip{display:inline-flex;align-items:baseline;gap:4px;font-size:12px;font-weight:700;color:var(--ink-soft);
  background:var(--surface-2);border-radius:9px;padding:5px 10px;font-variant-numeric:tabular-nums}
.pay-chip b{color:var(--ink);font-weight:800}
.pay-chip.main{background:#FBEAF0}
.pay-chip.main b{color:var(--primary-d)}
/* 予定フォーム：指名チェック */
.nom-chk{margin-top:10px;padding:11px 13px;border:1.5px solid var(--line);border-radius:11px;background:var(--surface-2);gap:10px;font-weight:700;font-size:13px}
.nom-chk:has(input:checked){border-color:var(--primary);background:#FBEAF0;color:var(--primary-d)}
/* 土日祝の自動判定バッジ */
.daytype{margin-top:8px;display:inline-block;font-size:12px;font-weight:800;padding:5px 11px;border-radius:9px;background:#FFF4E5;color:#8a5a12;border:1.5px solid #F0B96B}
.pay-hol{font-size:11px;font-weight:800;padding:1px 7px;border-radius:8px;background:#FFF4E5;color:#8a5a12}
/* 予定：キャンセル表示 */
.ap-badge.cancel,.badge.cancel{background:#F0EDEE;color:#8A7A80}
.appt-cancelled{opacity:.55}
/* 移動距離 */
.stops{margin-top:4px}
.stop{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-bottom:1px dashed var(--line)}
.stop:last-child{border-bottom:none}
.stop .n{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--surface-2);color:var(--primary-d);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.stop.home .n{background:var(--primary);color:#fff}
.stop .t{flex:1;min-width:0;font-size:13px;font-weight:700}
.stop .t small{display:block;font-weight:600;color:var(--ink-soft);margin-top:2px;font-size:11.5px;line-height:1.5}
.calc{background:var(--surface-2);border-radius:12px;padding:13px}
.calc-row{display:flex;justify-content:space-between;font-size:13px;font-weight:700;padding:3px 0}
.calc-row.total{border-top:1.5px solid var(--line);margin-top:7px;padding-top:9px}
.calc-row.total b{font-size:19px;color:var(--primary-d)}
.btn.map-btn{background:#1a73e8;color:#fff}
.badge-ok{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px;background:#E9F6EC;color:#2E7D46;white-space:nowrap}
.badge-warn{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px;background:#FFF4E5;color:#8a5a12;white-space:nowrap}
/* 祝日・休業日 */
.hol-row{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.hol-row:last-child{border-bottom:none}
.hol-row .ml{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.hol-name{color:var(--ink-soft);font-weight:600}
.hol-del{flex:0 0 auto;font-size:12px;font-weight:800;color:var(--ink-soft);text-decoration:none;padding:6px 10px;border:1.5px solid var(--line);border-radius:9px}
/* 祝日カレンダー */
.hol-cal .cal-cell.has.hol-national{background:#FBEAF0;color:var(--primary-d);font-weight:800}
.hol-cal .cal-cell.has.hol-national .cal-dot{background:var(--primary)}
.hol-cal .cal-cell.has.hol-company{background:#FFF4E5;color:#8a5a12;font-weight:800}
.hol-cal .cal-cell.has.hol-company .cal-dot{background:#E0A54F}
.hol-legend{display:flex;gap:18px;justify-content:center;margin-top:12px;font-size:12px;color:var(--ink-soft);font-weight:600}
.hol-legend .dot{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:middle;margin-right:3px}
.hol-legend .dot.nat{background:var(--primary)}
.hol-legend .dot.com{background:#E0A54F}

/* カレンダー：数字のみ色分け（土曜=青系／日祝=ピンク系）。背景は一色 */
.cal-cell.is-sat .cal-d{color:#4B7BC0}
.cal-cell.is-sun .cal-d,.cal-cell.is-hol .cal-d{color:#C2607E}
/* モーダル内の祝日名 */
.cm-hol{display:inline-block;font-size:12px;font-weight:800;padding:5px 11px;border-radius:9px;
  background:#FBE4EC;color:#B5607E;margin-bottom:10px}
/* 全報告書一覧 */
.rp-fam{color:var(--ink-soft);font-weight:600;font-size:13px}
/* 利用希望 */
.rq-row{padding:13px 16px;border-bottom:1px solid var(--line)}
.rq-row:last-child{border-bottom:none}
.rq-1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.rq-time{color:var(--ink-soft);font-weight:700;font-variant-numeric:tabular-nums}
.rq-2{margin-top:4px;font-size:12px;color:var(--ink-soft);font-weight:600}
.rq-note{margin-top:7px;font-size:12px;font-weight:600;background:var(--surface-2);border-radius:9px;padding:8px 10px;color:var(--ink)}
.badge-gray{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px;background:#F0EDEE;color:#8A7A80}
/* タブ・件数バッジ */
.tabs{display:flex;gap:8px;margin-bottom:12px}
.tab-btn{flex:1;text-align:center;padding:10px 6px;border-radius:11px;background:var(--surface);
  border:1.5px solid var(--line);color:var(--ink-soft);font-size:13px;font-weight:800;text-decoration:none}
.tab-btn.on{background:var(--primary);border-color:var(--primary);color:#fff}
.mn-badge{background:var(--primary);color:#fff;font-size:11px;font-weight:800;padding:2px 8px;border-radius:9px;margin-left:auto}

/* ボタン：アイコン＋テキストを中央揃え（左浮き解消） */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;line-height:1.4}
.btn svg{width:17px;height:17px;flex:0 0 auto}
.form-actions .btn{flex:1}
/* スタッフ状況 */
.av-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 16px;border-bottom:1px solid var(--line)}
.av-row:last-child{border-bottom:none}
.av-name{font-size:14px;font-weight:800;flex:0 0 auto}
.av-time{font-size:11.5px;color:var(--ink-soft);font-weight:600;font-variant-numeric:tabular-nums}
.av-badge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px;white-space:nowrap}
.av-ok{background:#E9F6EC;color:#2E7D46}
.av-part{background:#FFF4E5;color:#8a5a12}
.av-ng{background:#FBEAF0;color:#B5607E}
.av-none{background:#F0EDEE;color:#8A7A80}
.av-conf{background:#FDECEC;color:#B03A3A}
/* 利用者ホーム */
.hero-card{background:linear-gradient(160deg,#FDF2F6,#fff)}
.hero-hi{font-size:13px;font-weight:700;color:var(--ink-soft)}
.hero-label{margin-top:12px;font-size:11px;font-weight:800;color:var(--primary-d)}
.hero-date{margin-top:4px;font-size:22px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.hero-sub{margin-top:5px;font-size:13px;font-weight:600;color:var(--ink-soft)}
.hero-none{margin-top:6px;font-size:14px;font-weight:700;color:var(--ink-soft)}
/* スタッフ紹介 */
.st-card{padding:16px}
.st-head{display:flex;align-items:center;gap:13px}
.st-avatar{flex:0 0 auto;width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--surface-2);
  border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center}
.st-avatar img{width:100%;height:100%;object-fit:cover}
.st-initial{font-size:22px;font-weight:800;color:var(--primary-d)}
.st-name{font-size:16px;font-weight:800}
.st-intro{margin-top:12px;font-size:13.5px;line-height:1.7;color:var(--ink)}
.st-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.st-tag{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:9px;background:#FBEAF0;color:var(--primary-d)}
.st-quals{margin-top:9px;font-size:12px;font-weight:600;color:var(--ink-soft)}
/* スタッフ紹介：タイル一覧 */
.st-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:12px}
.st-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;
  background:var(--surface);border:1.5px solid var(--line);border-radius:16px;cursor:pointer;
  font-family:inherit;transition:transform .1s}
.st-tile:active{transform:scale(.97)}
.st-tname{font-size:14px;font-weight:800;color:var(--ink);text-align:center;line-height:1.3}
.stm-intro{font-size:13.5px;line-height:1.7}
.stm-label{margin-top:14px;font-size:11px;font-weight:800;color:var(--primary-d)}
.stm-txt{margin-top:5px;font-size:13px;font-weight:600;color:var(--ink)}

/* 絞り込みチップ */
.fchips{display:flex;flex-wrap:nowrap;gap:7px;padding:2px 2px 10px;overflow-x:auto;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin}
.fchips::-webkit-scrollbar{height:4px}
.fchips::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}
.fchip{flex:0 0 auto;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);
  background:var(--surface);color:var(--ink-soft);font-size:13px;font-weight:800;
  font-family:inherit;cursor:pointer;white-space:nowrap}
.fchip.on{background:var(--primary);border-color:var(--primary);color:#fff}
/* リマインド */
.rm-row{padding:12px 16px;border-bottom:1px solid var(--line)}
.rm-row:last-child{border-bottom:none}
.rm-1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.rm-2{margin-top:4px;font-size:12px;color:var(--ink-soft);font-weight:600}
.opt-tag{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:8px;background:var(--surface-2);color:var(--ink-soft);margin-left:8px;vertical-align:middle}
/* 利用希望：基本＋延長 */
.base-box{display:flex;align-items:center;justify-content:space-between;background:#FBEAF0;border-radius:12px;padding:14px 16px}
.base-l{font-size:12px;font-weight:800;color:var(--primary-d)}
.base-v{font-size:20px;font-weight:800}
.ext{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:4px}
.ext-btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  color:var(--primary-d);font-size:22px;font-weight:800;cursor:pointer;font-family:inherit;
  display:flex;align-items:center;justify-content:center}
.ext-btn:disabled{opacity:.35;cursor:default}
.ext-btn:active:not(:disabled){transform:scale(.94)}
.ext-val{min-width:120px;text-align:center}
.ext-num{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.ext-unit{font-size:12px;font-weight:700;color:var(--ink-soft);display:block;margin-top:2px}
.warn-box{margin-top:10px;font-size:12px;font-weight:700;color:#8a5a12;background:#FFF4E5;
  border:1.5px solid #F0B96B;border-radius:10px;padding:9px 11px;line-height:1.6}
.tax-tag{font-size:11px;font-weight:800;color:var(--ink-soft);margin-left:6px}
.kids{display:flex;flex-direction:column;gap:8px}
.kid{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1.5px solid var(--line);
  border-radius:12px;background:var(--surface-2);cursor:pointer;font-weight:700;font-size:14px}
.kid input{width:19px;height:19px;accent-color:var(--primary);flex:0 0 auto}
.kid.on{border-color:var(--primary);background:#FBEAF0;color:var(--primary-d)}
.kid .age{margin-left:auto;font-size:12px;font-weight:700;color:var(--ink-soft)}
/* 申込フォーム：規約と同意 */
.terms{font-size:12px;color:var(--ink-soft);font-weight:600;line-height:1.85;
  background:var(--surface-2);border-radius:11px;padding:13px 14px;max-height:230px;overflow-y:auto}
.agree-chk{padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);
  gap:11px;font-weight:800;font-size:14px}
.agree-chk:has(input:checked){border-color:var(--primary);background:#FBEAF0;color:var(--primary-d)}
.req{color:var(--primary-d);margin-left:3px}
/* 優先順位つき選択 */
.rank-list{display:flex;flex-direction:column;gap:9px}
.rank-row{display:flex;align-items:center;gap:10px}
.rank-no{flex:0 0 auto;width:22px;text-align:center;font-size:15px;font-weight:800;color:var(--primary-d)}
.rank-row select{flex:1 1 auto;min-width:0}
/* 作り置きの人数・日数 */
.portion{display:flex;gap:10px}
.p-in{flex:1 1 0;display:flex;align-items:center;gap:7px;min-width:0}
.p-in input{flex:1 1 auto;min-width:0}
.p-unit{flex:0 0 auto;font-size:13px;font-weight:800;color:var(--ink-soft)}
/* 登録済みアレルギーの表示 */
.allergy-box{background:var(--surface-2);border:1.5px solid var(--line);border-radius:11px;
  padding:12px 14px;font-size:14px;font-weight:700;color:var(--ink)}
.allergy-box.warn{background:#FFF4E5;border-color:#F0B96B;color:#8a5a12}
.allergy-box b{color:var(--primary-d)}
.allergy-box.warn b{color:#8a5a12}
.allergy-sub{margin-top:5px;font-size:11.5px;font-weight:600;color:var(--ink-soft)}
.allergy-sub a{color:var(--primary-d);text-decoration:underline}
/* アレルギー：その場で編集 */
.allergy-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.allergy-line #allergy-text{flex:1 1 auto;min-width:0}
.allergy-edit{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:8px 13px;
  border:1.5px solid var(--primary);border-radius:999px;background:var(--surface);
  color:var(--primary-d);font-size:12.5px;font-weight:800;font-family:inherit;cursor:pointer}
.allergy-edit svg{width:14px;height:14px}
.allergy-edit:active{transform:scale(.96)}
/* 複数項目は改行で表示 */
.val-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.val-list li{position:relative;padding-left:13px;line-height:1.6}
.val-list li::before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;
  border-radius:50%;background:var(--primary)}
.val-list.ordered{counter-reset:vl}
.val-list.ordered li{counter-increment:vl;padding-left:20px}
.val-list.ordered li::before{content:counter(vl)'.';position:absolute;left:0;top:0;
  width:auto;height:auto;background:none;border-radius:0;color:var(--primary-d);font-weight:800;font-size:12px}
/* 定期のご依頼：曜日枠 */
.rc-row{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.rc-row .rc-day{flex:0 0 74px}
.rc-row .rc-start{flex:1 1 0;min-width:0}
.rc-row .rc-dur{flex:1 1 0;min-width:0}
.rc-row .rep-del{flex:0 0 auto;width:38px;height:38px;border:1.5px solid var(--line);border-radius:10px;
  background:var(--surface);color:var(--ink-soft);font-weight:800}
.calc-note{margin-top:9px;font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.6}
/* 支払明細 */
.inv-head{text-align:center}
.inv-title{font-size:18px;font-weight:800;letter-spacing:.08em}
.inv-sub{font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:4px}
.inv-to{margin-top:14px;font-size:16px;font-weight:800}
.inv-from{margin-top:6px;font-size:12px;color:var(--ink-soft);font-weight:600}
.inv-no{font-size:11.5px;color:var(--ink-soft);font-weight:700;margin-top:6px}
.inv-head .inv-to{margin-top:14px}
.inv-head .inv-from{margin-top:8px;line-height:1.7}

/* カレンダー：セルが列幅を超えないように（iOS Safari の aspect-ratio 対策） */
.cal-grid > *{min-width:0;min-height:0}
.cal-cell{min-width:0;min-height:0;overflow:hidden}
.cal-cell .cal-d{line-height:1.1}
/* 画面外へのはみ出し防止 */
.cal,.card{max-width:100%}

/* ===== 管理画面：ヘッダーのアイコンとメニュー ===== */
.ab-actions{display:flex;align-items:center;gap:8px}
.ab-btn{position:relative;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);
  background:var(--surface);color:var(--primary-d);display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-family:inherit;padding:0}
.ab-btn svg{width:19px;height:19px}
.ab-btn:active{transform:scale(.94)}
.ab-dot{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;
  background:var(--primary);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.ab-user{border:none;background:none}
.ab-ava{width:40px;height:40px;border-radius:50%;background:var(--plum);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.ab-menu{display:none;position:absolute;right:18px;top:66px;z-index:120;min-width:210px;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden}
.ab-menu.show{display:block}
.ab-menu-head{padding:11px 14px;font-size:11px;font-weight:800;color:var(--primary-d);
  letter-spacing:.1em;border-bottom:1px solid var(--line)}
.ab-item{display:flex;align-items:center;gap:10px;padding:13px 14px;font-size:14px;font-weight:700;
  color:var(--ink);border-bottom:1px solid var(--line)}
.ab-item:last-child{border-bottom:none}
.ab-item svg{width:17px;height:17px;color:var(--ink-soft);flex:0 0 auto}
.ab-item.danger{color:var(--primary-d)}
.ab-item-l{flex:1 1 auto;min-width:0}
.ab-item-c{flex:0 0 auto;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--primary);
  color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.ab-empty{padding:18px 14px;text-align:center;font-size:13px;color:var(--ink-soft);font-weight:600}

/* ===== 管理画面ホーム：カード ===== */
.hm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
@media (min-width:700px){ .hm-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
.hm-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  padding:24px 12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:var(--shadow);min-height:118px;transition:.12s}
.hm-card:active{transform:scale(.97)}
.hm-card.off{opacity:.55;box-shadow:none}
.hm-ic{width:44px;height:44px;border-radius:14px;background:#FBEAF0;color:var(--primary-d);
  display:flex;align-items:center;justify-content:center}
.hm-ic svg{width:22px;height:22px}
.hm-card.off .hm-ic{background:var(--surface-2);color:var(--ink-soft)}
.hm-label{font-size:15px;font-weight:800;color:var(--ink)}
.hm-badge{position:absolute;top:10px;right:10px;padding:3px 9px;border-radius:9px;
  background:var(--primary);color:#fff;font-size:10.5px;font-weight:800}
.hm-badge.soft{background:var(--surface-2);color:var(--ink-soft)}
/* 5タブ対応 */
.tabbar .tab{min-width:0}
/* バージョン情報 */
.ver-card{text-align:center;padding:28px 18px}
.ver-name{font-size:20px;font-weight:800;letter-spacing:-.01em}
.ver-num{margin-top:6px;font-size:12px;font-weight:700;color:var(--ink-soft);letter-spacing:.06em}
.ver-card + .card .det-label{letter-spacing:.06em}

/* ===== ヘッダーのアカウントシート（画面を覆う） ===== */
.ab-overlay{display:none;position:fixed;inset:0;z-index:200;background:rgba(74,49,56,.45)}
.ab-overlay.show{display:block}
.ab-sheet{position:absolute;inset:0;margin:0 auto;max-width:480px;background:var(--bg);
  overflow-y:auto;-webkit-overflow-scrolling:touch;animation:sheetin .2s ease}
@keyframes sheetin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ab-sheet-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px;background:var(--surface);border-bottom:1px solid var(--line)}
.ab-sheet-head span{font-size:16px;font-weight:800}
.ab-close{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  color:var(--ink-soft);font-size:15px;font-weight:800;cursor:pointer;font-family:inherit}
.ab-sec{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 18px 10px;font-size:11px;font-weight:800;color:var(--primary-d);letter-spacing:.1em}
.ab-edit{padding:6px 14px;border-radius:999px;border:1.5px solid var(--primary);background:var(--surface);
  color:var(--primary-d);font-size:12px;font-weight:800;font-family:inherit;cursor:pointer;letter-spacing:0}
.ab-edit:active{transform:scale(.96)}
.ab-info{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:13px 18px;background:var(--surface);border-top:1px solid var(--line);font-size:14px}
.ab-info span{color:var(--ink-soft);font-weight:700;flex:0 0 auto;font-size:12.5px}
.ab-info b{font-weight:700;text-align:right;overflow-wrap:anywhere}
.ab-form{padding:14px 18px 18px;background:var(--surface);border-top:1px solid var(--line)}
.ab-form .f{display:block;font-size:11.5px;font-weight:800;color:var(--primary-d);margin:0 0 6px}
.ab-form input{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;
  font-size:15px;font-family:inherit;background:var(--surface);color:var(--ink);margin-bottom:12px}
.ab-form-btns{display:flex;gap:10px}
.ab-form-btns .btn{flex:1;padding:12px;font-size:14px}
.ab-item{display:flex;align-items:center;gap:10px;padding:15px 18px;font-size:14px;font-weight:700;
  color:var(--ink);background:var(--surface);border-top:1px solid var(--line)}
.ab-item svg{width:17px;height:17px;color:var(--ink-soft);flex:0 0 auto}
.ab-foot{padding:22px 18px 40px}
#acc-modal{z-index:220}
#acc-modal .cal-modal-box{max-height:88vh}

/* ===== 予定タブ：カレンダーと日別セクション ===== */
.cal-cnt{margin-top:4px;font-size:9.5px;font-weight:800;line-height:1;color:var(--primary-d)}
.cal-cell.sel{border:2px solid var(--primary)}
.cal-cell.today .cal-d{text-decoration:underline;text-underline-offset:3px}
.today-btn{flex:0 0 auto;padding:7px 13px;border-radius:999px;border:1.5px solid var(--primary);
  background:var(--surface);color:var(--primary-d);font-size:12px;font-weight:800}
.cal-head{display:flex;align-items:center;gap:8px}
.cal-head .cal-title{flex:1;text-align:center}

.day-sec{margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}
.day-head{display:flex;align-items:center;gap:8px}
.day-title{flex:1;text-align:center;font-size:15px;font-weight:800}
.day-title small{display:block;font-size:11px;font-weight:700;color:var(--ink-soft);margin-top:2px}
.ap{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);align-items:flex-start}
.ap:last-child{border-bottom:none}
.ap-t{flex:0 0 auto;text-align:center;min-width:52px}
.ap-t b{display:block;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
.ap-t small{font-size:10.5px;color:var(--ink-soft);font-weight:700}
.ap-b{flex:1;min-width:0}
.ap-fam{display:block;font-size:14.5px;font-weight:800}
.ap-svc{display:block;font-size:12px;color:var(--ink-soft);font-weight:700;margin-top:2px}
.ap-st{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:12px;font-weight:700;color:var(--plum)}
.ap-st .dot{width:6px;height:6px;border-radius:50%;background:var(--primary)}
.ap .chev{align-self:center;color:var(--ink-soft)}
/* 前後の月の日付（高さを揃えるため常に6週表示） */
.cal-cell.out{background:transparent;opacity:.32}
.cal-cell.out .cal-d{color:var(--ink-soft)}
.cal-cell.out.is-sun .cal-d,.cal-cell.out.is-hol .cal-d{color:#C2607E}
.cal-cell.out.is-sat .cal-d{color:#4B7BC0}
/* 一覧の絞り込み */
.searchbar{position:relative;display:flex;margin-bottom:12px}
.searchbar input{flex:1;min-width:0;padding:12px 40px 12px 14px;border:1.5px solid var(--line);
  border-radius:12px;font-size:15px;font-family:inherit;background:var(--surface);color:var(--ink)}
.searchbar input:focus{outline:none;border-color:var(--primary)}
.sb-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;
  border:none;border-radius:50%;background:var(--surface-2);color:var(--ink-soft);
  font-size:13px;font-weight:800;cursor:pointer;font-family:inherit}

/* ===== 詳細ページ：セクション（既存の .acc とは別クラス） ===== */
.phead{margin-bottom:24px}
.phead-nm{font-size:23px;font-weight:800;letter-spacing:-.02em;line-height:1.3;overflow-wrap:anywhere}

.dsec{background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:0 2px 12px rgba(166,94,126,.07);margin-bottom:14px;overflow:hidden}
.dsec-h{display:flex;align-items:center;gap:16px;padding:22px 22px;cursor:pointer;user-select:none}
.dsec-ic{flex:0 0 auto;width:52px;height:52px;border-radius:16px;background:#FBEAF0;color:var(--primary-d);
  display:flex;align-items:center;justify-content:center}
.dsec-ic svg{width:26px;height:26px}
.dsec-t{flex:1;min-width:0}
.dsec-t b{display:block;font-size:16px;font-weight:800;line-height:1.4}
.dsec-t small{display:block;font-size:12.5px;color:var(--ink-soft);font-weight:700;margin-top:4px}
.dsec-mk{flex:0 0 auto;color:var(--ink-soft);display:flex;align-items:center;transition:transform .18s}
.dsec-mk svg{width:17px;height:17px}
.dsec.open .dsec-mk{transform:rotate(90deg)}
.dsec-b{display:none;border-top:1px solid var(--line)}
.dsec.open .dsec-b{display:block}
.dsec-f{padding:20px 22px 24px}

.drow{display:flex;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line);align-items:baseline}
.drow:last-of-type{border-bottom:none}
.drow .k{flex:0 0 38%;font-size:12.5px;font-weight:700;color:var(--ink-soft)}
.drow .v{flex:1;min-width:0;font-size:14.5px;font-weight:700;overflow-wrap:anywhere;line-height:1.7}
.sub-head{padding:18px 22px 8px;font-size:11.5px;font-weight:800;color:var(--primary-d);letter-spacing:.06em}
.btn-ghost{display:block;text-align:center;padding:13px;border-radius:12px;border:1.5px solid var(--line);
  background:var(--surface-2);color:var(--primary-d);font-size:13.5px;font-weight:800}
.list-row{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}
.list-row:last-of-type{border-bottom:none}
.list-row .ml{flex:1;min-width:0}
.list-row b{font-size:14.5px;font-weight:800;display:block}
.list-row .s2{display:block;font-size:12.5px;color:var(--ink-soft);font-weight:600;margin-top:3px}
/* 見積書の一覧：番号と対象日程を1行に */
.list-row.est-row{gap:10px}
.list-row.est-row .est-no{flex:1;min-width:0;font-size:14px;font-weight:800;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.list-row.est-row .est-day{flex:0 0 auto;font-size:12.5px;color:var(--ink-soft);font-weight:700;white-space:nowrap}

/* 日付入力がスマホではみ出さないように */
input[type=date],input[type=time],input[type=month]{
  width:100%;max-width:100%;min-width:0;-webkit-appearance:none;appearance:none;
  background:var(--surface);font-family:inherit}
input[type=date]::-webkit-date-and-time-value{text-align:left}

/* おうちのこと編集：セクションの開閉アイコン（サイズ指定が抜けていた） */
.acc .acc-ic svg{width:16px;height:16px}
.acc .acc-head > span:first-child{flex:1;min-width:0;text-align:left}
/* 補足はラベルの下に置いて高さを揃える */
.hint-under{margin-top:6px;font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.5}
/* 編集画面：指定セクションを一時的に強調 */
.sec-focus{outline:2px solid var(--primary);outline-offset:2px;transition:outline-color .4s}
/* フォーム下部：キャンセル＋保存 */
.form-actions{display:flex;gap:10px;margin-top:22px}
.form-actions .btn{flex:1;padding:14px;font-size:15px}
.btn.ghost.danger{color:#B03A3A;border-color:#F0C9C9}

/* 面談枠の登録（管理者） */
.iv-cnt{float:right;font-size:12px;font-weight:800;color:var(--primary-d)}
.iv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.iv-slot{position:relative;display:flex;align-items:center;justify-content:center;padding:12px 0;border-radius:9px;border:1.5px solid var(--line);background:#fff;font-size:12px;font-weight:800;color:var(--ink);cursor:pointer;user-select:none}
.iv-slot input{position:absolute;opacity:0;pointer-events:none}
.iv-slot.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.iv-slot.lock{background:#FCF0F3;color:#C3AAB3;border-style:dashed;cursor:not-allowed}
.iv-tag{position:absolute;top:-7px;right:-6px;background:var(--plum,#A65E7E);color:#fff;font-size:9px;font-weight:800;border-radius:6px;padding:1px 5px;line-height:1.4}

/* 事前面談リクエスト（利用者） */
.iq-mon{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.iq-mon b{font-size:15px;font-weight:800}
.iq-nav{width:32px;height:32px;border-radius:9px;background:#FCF0F3;color:var(--primary-d);border:none;font-size:17px;font-weight:800;cursor:pointer}
.iq-nav:disabled{opacity:.35;cursor:default}
.iq-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.iq-dow span{text-align:center;font-size:10px;font-weight:800;color:var(--ink-soft)}
.iq-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.iq-cell{aspect-ratio:1/1.05;border-radius:10px;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.iq-cell .dn{font-size:12px;font-weight:700}
.iq-cell .mk{font-size:13px;font-weight:800;line-height:1}
.iq-cell.o,.iq-cell.t{background:#FCF0F3;border-color:var(--line);cursor:pointer}
.iq-cell.sel{border-color:var(--primary);background:#FBEAF0;box-shadow:0 0 0 2px rgba(217,139,166,.18)}
.iq-cell.o .mk{color:#4FA277}
.iq-cell.t .mk{color:#D9922B}
.iq-cell.x .mk,.iq-cell.past .mk{color:var(--line)}
.iq-cell.x .dn,.iq-cell.past .dn{color:#CBB9C0}
.iq-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;font-size:10.5px;font-weight:700;color:var(--ink-soft)}
.iq-legend .o{color:#4FA277}.iq-legend .t{color:#D9922B}.iq-legend .x{color:#C7B4BC}
.iq-detail{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}
.iq-detail-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.iq-detail-h b{font-size:14px;font-weight:800}
.iq-detail-h .c{font-size:12px;color:var(--primary-d);font-weight:800;cursor:pointer}
.iq-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.iq-slot{position:relative;padding:11px 0;border-radius:9px;font-size:12px;font-weight:800;text-align:center;border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.iq-slot.pick{background:var(--primary);color:#fff;border-color:var(--primary)}
.iq-slot .rk{position:absolute;top:-7px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--plum,#A65E7E);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.iq-pref-row{display:flex;align-items:center;gap:8px;padding:9px 11px;background:#FCF0F3;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;font-size:12.5px;font-weight:700}
.iq-pref-row .no{font-size:11px;font-weight:800;color:var(--primary-d)}
.iq-pref-row .v{flex:1}
.iq-pref-row.empty{color:#CBB9C0;font-weight:600}
.iq-pref-row .rm{color:var(--primary-d);font-size:16px;cursor:pointer}

/* 面談リクエスト（管理者・承認/確定） */
.btn.locked{background:#EAE0E4;color:#B29AA3;border:1px solid #E0D2D8;cursor:not-allowed;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn.locked svg{width:16px;height:16px;opacity:.7}
.lock-hint{font-size:11px;color:#B29AA3;font-weight:700;text-align:center;margin-top:6px}
.iv-choice{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1.5px solid var(--line);border-radius:11px;margin-bottom:7px;cursor:pointer}
.iv-choice.on{border-color:var(--primary);background:#FBEAF0}
.iv-choice input{position:absolute;opacity:0;pointer-events:none}
.iv-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:0 0 20px;display:flex;align-items:center;justify-content:center}
.iv-choice.on .iv-dot{border-color:var(--primary)}
.iv-choice.on .iv-dot::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--primary)}
.iv-cno{font-size:11px;font-weight:800;color:var(--primary-d);flex:0 0 auto}
.iv-cval{flex:1;font-weight:700;font-size:13px}
.iv-hold{font-size:10px;font-weight:800;color:#4FA277;background:#EAF6EE;border-radius:999px;padding:2px 8px}
.iv-zoom{background:#FCF0F3;border-radius:11px;padding:10px 12px}
.iv-zrow{display:flex;justify-content:space-between;font-size:12.5px;font-weight:700;padding:3px 0}
.iv-zrow span:first-child{color:var(--ink-soft)}

/* 説明動画の埋め込み（16:9） */
.video-embed{position:relative;width:100%;padding-top:56.25%;border-radius:12px;overflow:hidden;background:#000}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* 利用規約 確認・同意（利用者） */
.terms-hint{font-size:11px;font-weight:700;color:var(--primary-d);margin-bottom:6px}
.terms-box{height:250px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:12px;background:#FEFAFB;font-size:11.5px;line-height:1.7;color:var(--ink)}
.terms-box h3{font-size:12.5px;margin:12px 0 4px;color:var(--primary-d)}
.terms-box p{margin:4px 0}
.terms-box .li{padding-left:1.2em;text-indent:-1.2em;margin:2px 0}
.terms-box .ib{background:#FCF0F3;border-radius:8px;padding:8px 10px;margin:7px 0}
.terms-box table.rate{width:100%;border-collapse:collapse;margin:6px 0}
.terms-box table.rate th,.terms-box table.rate td{border:1px solid var(--line);padding:5px 6px;text-align:left;vertical-align:top;font-size:11px}
.terms-box table.rate th{background:#F7EEF1;font-weight:700}
.tm-sec{margin-top:16px}
.tm-sec-t{font-size:13px;font-weight:800}
.tm-req{color:#fff;background:var(--primary);font-size:10px;font-weight:800;border-radius:6px;padding:1px 6px;margin-left:6px}
.tm-desc{font-size:11.5px;color:var(--ink-soft);line-height:1.6;margin:6px 0 8px}
.tm-opt{display:flex;align-items:flex-start;gap:10px;border:1.5px solid var(--line);border-radius:11px;padding:11px 12px;margin-bottom:7px;cursor:pointer}
.tm-opt.on{border-color:var(--primary);background:#FBEAF0}
.tm-opt input{position:absolute;opacity:0;pointer-events:none}
.tm-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:0 0 20px;margin-top:1px;display:flex;align-items:center;justify-content:center}
.tm-opt.on .tm-radio{border-color:var(--primary)}
.tm-opt.on .tm-radio::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--primary)}
.tm-ol{font-weight:800;font-size:13px}
.tm-od{display:block;font-size:11px;color:var(--ink-soft);margin-top:2px;line-height:1.5}
.tm-sub{display:none;margin-top:8px}
.tm-sub.show{display:block}
.tm-sub-t{display:block;font-size:11px;font-weight:800;color:var(--primary-d);margin-bottom:6px}
.tm-chk{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12.5px;font-weight:700;cursor:pointer}
.tm-chk input{width:18px;height:18px;accent-color:var(--primary)}
.tm-final{background:#FBEAF0;border:1.5px solid var(--primary);border-radius:10px;padding:13px;margin-top:16px}
.tm-final label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.tm-final input{width:20px;height:20px;margin-top:1px;accent-color:var(--primary)}
.tm-final span{font-size:12.5px;font-weight:700;line-height:1.55}

/* オンボーディング ステッパー（利用者ホーム） */
.stp-hi{font-size:16px;font-weight:800;margin:2px 2px 0}
.stp-hi span{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:3px}
.stp-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:14px}
.stp-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.stp-h-t{font-size:13px;font-weight:800}
.stp-h-n{font-size:12px;font-weight:800;color:var(--primary-d)}
.stp-track{height:7px;border-radius:99px;background:#F0E4E9;overflow:hidden;margin:8px 0 4px}
.stp-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--plum));border-radius:99px}
.stp-sub{font-size:11.5px;color:var(--ink-soft);margin-bottom:4px}
.stp-step{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.stp-step:last-child{border-bottom:none}
.stp-num{width:30px;height:30px;border-radius:50%;flex:0 0 30px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;border:2px solid var(--line);color:var(--ink-soft);background:#fff}
.stp-step.done .stp-num{background:#4FA277;border-color:#4FA277;color:#fff}
.stp-step.cur .stp-num{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px rgba(217,139,166,.18)}
.stp-step.lock{opacity:.55}
.stp-step.lock .stp-num,.stp-step.todo .stp-num{background:#F3EAEE}
.stp-tt{flex:1}
.stp-tt .t{font-size:14px;font-weight:800}
.stp-tt .s{font-size:11px;font-weight:700;margin-top:2px}
.stp-step.done .s{color:#4FA277}
.stp-step.cur .s{color:var(--primary-d)}
.stp-step.todo .s,.stp-step.lock .s{color:var(--ink-soft)}
.stp-go{font-size:11px;font-weight:800;color:#fff;background:var(--primary);border-radius:8px;padding:5px 10px;white-space:nowrap}
.stp-chev{color:#CDB9C1;font-weight:800}
.stp-panel{padding:6px 4px 14px 46px;border-bottom:1px solid var(--line)}
.stp-panel:last-child{border-bottom:none}
.stp-foot{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:12px;line-height:1.6}

/* プロフィール 必須整備・回答状況（1d） */
.req-b{font-size:9px;font-weight:800;color:#fff;background:var(--primary);border-radius:5px;padding:1px 5px;vertical-align:middle}
.opt-b{font-size:9px;font-weight:800;color:var(--ink-soft);background:#F2E9ED;border-radius:5px;padding:1px 5px;vertical-align:middle}
.ans-empty{color:var(--primary-d);font-weight:800}
.ans-opt{color:#CBB9C0;font-weight:700}
.ans-chip{font-size:10.5px;font-weight:800;border-radius:99px;padding:3px 9px}
.ans-chip.ok{color:#4FA277;background:#EAF6EE}
.ans-chip.left{color:var(--primary-d);background:#FBEAF0}

/* 説明つきラジオ（プロフィール spend 等） */
.radc-list{display:flex;flex-direction:column;gap:9px}
.radc{display:flex;align-items:flex-start;gap:11px;border:1.5px solid var(--line);border-radius:12px;padding:13px;cursor:pointer}
.radc input{position:absolute;opacity:0;pointer-events:none}
.radc-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex:0 0 22px;margin-top:1px;display:flex;align-items:center;justify-content:center}
.radc:has(input:checked){border-color:var(--primary);background:#FBEAF0}
.radc:has(input:checked) .radc-dot{border-color:var(--primary)}
.radc:has(input:checked) .radc-dot::after{content:'';width:11px;height:11px;border-radius:50%;background:var(--primary)}
.radc-tt{display:flex;flex-direction:column}
.radc-l{font-size:14px;font-weight:800;line-height:1.35}
.radc-d{font-size:11.5px;color:var(--ink-soft);font-weight:600;margin-top:3px;line-height:1.5}
.field-note{font-size:11px;color:var(--ink-soft);margin-top:8px;line-height:1.6}

/* 保存型通知（利用者のベル一覧） */
.noti-row{align-items:flex-start}
.noti-row.unread{background:#FCF0F3}
.noti-l{display:flex;flex-direction:column;gap:3px;width:100%}
.noti-title{font-size:13px;font-weight:800}
.noti-row.unread .noti-title::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--primary);margin-right:6px;vertical-align:middle}
.noti-body{font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.5}
.noti-time{font-size:10.5px;color:#B7A2AB;font-weight:700}

/* 情報ハブ（利用者） */
.info-grid{display:flex;flex-direction:column;gap:10px}
.info-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-decoration:none;color:inherit}
.info-card.disabled{opacity:.6}
.info-ic{width:40px;height:40px;border-radius:11px;background:#FBEAF0;color:var(--primary-d);display:flex;align-items:center;justify-content:center;flex:0 0 40px}
.info-ic svg{width:20px;height:20px}
.info-tt{flex:1;display:flex;flex-direction:column;gap:2px}
.info-t{font-size:14px;font-weight:800}
.info-d{font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.4}
.info-chev{color:#CDB9C1;font-weight:800}
.info-soon{font-size:10.5px;font-weight:800;color:var(--ink-soft);background:#F2E9ED;border-radius:99px;padding:3px 9px;white-space:nowrap}
/* 情報タブ：ご利用の流れ */
ol.flow{list-style:none;margin:0;padding:0}
ol.flow>li{display:flex;gap:12px;padding:0 0 16px;position:relative}
ol.flow>li:last-child{padding-bottom:0}
ol.flow>li::after{content:'';position:absolute;left:13px;top:30px;bottom:2px;width:1.5px;background:var(--line)}
ol.flow>li:last-child::after{display:none}
.fl-n{flex:0 0 27px;width:27px;height:27px;border-radius:50%;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;position:relative;z-index:1}
.fl-b{flex:1;min-width:0;padding-top:2px}
.fl-t{font-size:14px;font-weight:800;line-height:1.4}
.fl-d{font-size:12px;color:var(--ink-soft);font-weight:600;line-height:1.6;margin-top:3px}
/* 情報タブ：料金。面としての色は使わず、金額の文字色だけで見せる */
.sv-t{font-size:15px;font-weight:800;color:var(--ink)}
.sv-d{font-size:12px;color:var(--ink-soft);font-weight:600;line-height:1.6;margin:4px 0 12px}
.pr-note{font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.65;margin-top:10px}
.pr-list{border-top:1px solid var(--line)}
.pr-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:11px 2px;border-bottom:1px solid var(--line);font-size:13px}
.pr-k{font-weight:700;line-height:1.5}
.pr-v{flex:0 0 auto;font-weight:800;color:var(--primary-d);white-space:nowrap}
.opt-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -2px}
table.opt{border-collapse:collapse;width:100%;min-width:330px;font-size:12.5px}
table.opt th,table.opt td{border-bottom:1px solid var(--line);padding:10px 8px;vertical-align:top}
table.opt thead th{border-top:1px solid var(--line);font-size:10.5px;font-weight:800;
  color:var(--primary-d);text-align:right;white-space:nowrap}
table.opt th.k{text-align:left;font-weight:700;color:var(--ink);white-space:nowrap;padding-left:2px}
table.opt td.n{text-align:right;font-weight:800;color:var(--primary-d);white-space:nowrap}
/* 情報タブ：よくあるご質問 */
details.faq{border-bottom:1px solid var(--line)}
details.faq:last-child{border-bottom:none}
details.faq>summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:10px;padding:14px 16px}
details.faq>summary::-webkit-details-marker{display:none}
.fq-q{flex:1;font-size:13.5px;font-weight:800;line-height:1.5}
.fq-m{flex:0 0 14px;width:14px;height:14px;position:relative;margin-top:4px}
.fq-m::before,.fq-m::after{content:'';position:absolute;background:var(--primary-d);border-radius:1px}
.fq-m::before{left:0;top:6px;width:14px;height:2px}
.fq-m::after{left:6px;top:0;width:2px;height:14px;transition:transform .15s ease}
details.faq[open] .fq-m::after{transform:scaleY(0)}
.fq-a{padding:0 16px 15px;font-size:12.5px;color:var(--ink-soft);font-weight:600;line-height:1.75}

/* 予定リスト（利用者） */
.sched-row{display:flex;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line)}
.sched-row:last-child{border-bottom:none}
.sched-date{flex:0 0 auto;text-align:center;min-width:46px}
.sched-date .d{display:block;font-size:15px;font-weight:800}
.sched-date .w{font-size:10px;color:var(--ink-soft);font-weight:700}
.sched-body{flex:1}
.sched-svc{font-size:14px;font-weight:800}
.sched-time{font-size:11.5px;color:var(--ink-soft);font-weight:700;margin-top:2px}
.sched-st{font-size:10.5px;font-weight:800;border-radius:99px;padding:3px 9px;white-space:nowrap}
.sched-st.ok{background:#EAF6EE;color:#4FA277}
.sched-st.done{background:#F0E8EC;color:var(--ink-soft)}
.sched-st.other{background:#FBE9E9;color:#C0564E}

/* テキストリンク風ボタン */
.linklike{background:none;border:none;color:var(--primary-d);font-weight:800;font-size:12.5px;cursor:pointer;text-decoration:underline;padding:4px}

/* ===== チャット ===== */
.chat-mode{height:100dvh;overflow:hidden}
.chat-mode .main{padding-bottom:0}
.chat-head{display:flex;align-items:center;gap:10px;padding:10px 4px 12px}
.chat-back,.chat-gear{color:var(--primary-d);display:flex;align-items:center;flex:0 0 auto}
.chat-back svg,.chat-gear svg{width:22px;height:22px}
.chat-head-t{flex:1;font-size:15px;font-weight:800;line-height:1.2}
.chat-head-t span{display:block;font-size:11px;color:var(--ink-soft);font-weight:600;margin-top:2px}
.chat-thread{min-height:200px;overflow-y:auto;padding:12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(#FCF6F8,#FBF3F5)}
.chat-day{text-align:center;font-size:10.5px;color:var(--ink-soft);font-weight:700;margin:6px 0 12px}
.chat-msg{display:flex;gap:8px;margin-bottom:12px;align-items:flex-start}
.chat-mava{width:28px;height:28px;border-radius:8px;flex:0 0 28px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;background:var(--plum)}
.chat-bub{max-width:76%}
.chat-sender{font-size:10.5px;color:var(--ink-soft);font-weight:700;margin:0 0 3px 2px}
.chat-text{padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.5;background:#fff;border:1px solid var(--line);white-space:pre-wrap;word-break:break-word}
.chat-mtime{font-size:10px;color:var(--ink-soft);font-weight:700;margin:3px 0 0 2px}
.chat-msg.me{flex-direction:row-reverse}
.chat-msg.me .chat-bub{display:flex;flex-direction:column;align-items:flex-end}
.chat-msg.me .chat-text{background:var(--primary);color:#fff;border-color:var(--primary)}
.chat-msg.me .chat-mtime{text-align:right;margin-right:2px}
.chat-empty{text-align:center;color:var(--ink-soft);font-size:12.5px;font-weight:600;padding:40px 10px;line-height:1.8}
.chat-empty svg{width:34px;height:34px;display:block;margin:0 auto 8px;color:#E4C6D2}
.chat-input{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
.chat-ta{flex:1;-webkit-appearance:none;appearance:none;box-sizing:border-box;height:40px;min-height:40px;max-height:120px;padding:9px 14px;border:1.5px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);font-size:13.5px;line-height:20px;font-family:inherit;resize:none;overflow-y:hidden;display:block;margin:0}
.chat-ta:focus{outline:none;border-color:var(--primary)}
.chat-send{-webkit-appearance:none;appearance:none;width:40px;height:40px;border-radius:50%;border:none;background:var(--primary);color:#fff;cursor:pointer;flex:0 0 40px;display:flex;align-items:center;justify-content:center;padding:0;margin:0}
.chat-send svg{width:18px;height:18px;display:block}
/* 一覧 */
.chat-sec{font-size:11px;font-weight:800;color:var(--primary-d);padding:14px 4px 6px}
.chat-row{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.chat-row:last-child{border-bottom:none}
.chat-ic{width:44px;height:44px;border-radius:12px;flex:0 0 44px;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:15px}
.chat-ic.fam{background:var(--primary)}.chat-ic.ops{background:var(--plum)}.chat-ic.one{background:#B58AA6}
.chat-meta{flex:1;min-width:0}
.chat-name{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:14px;font-weight:800}
.chat-time{font-size:10.5px;color:var(--ink-soft);font-weight:700;flex:0 0 auto}
.chat-rowbot{display:flex;align-items:center;gap:8px;margin-top:2px}
.chat-last{flex:1;font-size:12px;color:var(--ink-soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-badge{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
/* タブの未読バッジ */
.tabitem{position:relative}
.tab-badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--primary);color:#fff;font-size:9.5px;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1}

/* チャット：家庭ルームのスタッフ選定（氏名のみ・1行） */
.ct-chk{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.ct-chk:last-child{border-bottom:none}
.ct-chk input[type=checkbox]{-webkit-appearance:none;appearance:none;width:22px;height:22px;flex:0 0 22px;border:2px solid var(--line);border-radius:6px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}
.ct-chk input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}
.ct-chk input[type=checkbox]:checked::after{content:'';width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);margin-top:-2px}
.ct-chk .nm{font-size:14px;font-weight:700;line-height:1.2}

/* チャット既読ラベル */
.chat-read{font-size:10px;color:var(--ink-soft);font-weight:700;margin:3px 2px 0 0;text-align:right}

/* アカウントシート／端末通知ボタンの幅を抑えて中央寄せ */
.ab-foot{display:flex;justify-content:center}
.ab-foot .btn{width:auto;min-width:180px;padding-left:28px;padding-right:28px}
#push-btn{width:auto;min-width:210px;margin:0 auto;padding-left:24px;padding-right:24px}

/* チャット添付：入力欄の写真ボタン */
.chat-attach{-webkit-appearance:none;appearance:none;width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:#F2E4EA;color:var(--primary-d);display:flex;align-items:center;justify-content:center;cursor:pointer}
.chat-attach svg{width:22px;height:22px;display:block}
/* 吹き出し内の画像・ファイル */
.chat-att-img{display:block;margin-bottom:4px;cursor:pointer}
.chat-att-img img{max-width:200px;max-height:240px;border-radius:12px;display:block;object-fit:cover}
.chat-att-file{display:flex;align-items:center;gap:8px;margin-bottom:4px;padding:9px 11px;border-radius:12px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);max-width:220px}
.chat-msg.me .chat-att-file{background:#fff;color:var(--ink)}
.chat-att-file .fi{flex:0 0 22px;color:var(--primary-d)}
.chat-att-file .fi svg{width:22px;height:22px;display:block}
.chat-att-file .fn{font-size:12.5px;font-weight:700;word-break:break-all;line-height:1.3}
/* 画像拡大（ライトボックス） */
.chat-lightbox{position:fixed;inset:0;z-index:200;background:rgba(20,10,15,.92);display:none;flex-direction:column}
.chat-lightbox.open{display:flex}
.clb-bar{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 10px) 14px 10px;gap:10px}
.clb-close{-webkit-appearance:none;appearance:none;background:rgba(255,255,255,.15);color:#fff;border:none;width:38px;height:38px;border-radius:50%;font-size:18px;cursor:pointer}
.clb-actions{display:flex;gap:8px}
.clb-btn{-webkit-appearance:none;appearance:none;border:none;border-radius:99px;padding:9px 18px;font-size:13px;font-weight:800;cursor:pointer;background:rgba(255,255,255,.16);color:#fff}
.clb-btn.primary{background:var(--primary);color:#fff}
.clb-body{flex:1;display:flex;align-items:center;justify-content:center;padding:10px 12px calc(env(safe-area-inset-bottom) + 16px)}
.clb-body img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}

/* .ct-chk のラジオ（キャンセル理由など） */
.ct-chk input[type=radio]{-webkit-appearance:none;appearance:none;width:22px;height:22px;flex:0 0 22px;border:2px solid var(--line);border-radius:50%;background:#fff;position:relative;cursor:pointer;margin:0}
.ct-chk input[type=radio]:checked{border-color:var(--primary)}
.ct-chk input[type=radio]:checked::after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--primary)}

/* ============================================================
   2026-07-31 〜 08-24 に追加したもの
   （デルタの適用時に app.css が上書きされておらず、抜けていた分）
   ============================================================ */

/* 報告書の一覧。提出済み・下書き・未提出を日付順にひとまとめで並べる。 */
.rp-row{display:flex;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit}
/* 報告書の一覧の集計は横に3つ並べる。
   請求書の .pay-sum（縦並び）と同じ見た目だと、3項目では間延びするため。 */
.rp-sum{display:flex;gap:10px}
.rp-sum>div{flex:1;text-align:center}
.rp-sum>div span{display:block;font-size:11px;font-weight:800;color:var(--ink-soft)}
.rp-sum>div b{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
.rp-sum>div.ng b{color:#C0564E}

a.rp-row .chev{flex:none;width:16px;height:16px;color:var(--ink-soft)}
a.rp-row .chev svg{width:16px;height:16px}
.rp-row:last-of-type{border-bottom:none}
.rp-l{flex:1;min-width:0}
.rp-t{font-size:13.5px;font-weight:800;line-height:1.55}
.rp-sep{color:var(--line);margin:0 5px;font-weight:400}
.rp-sv{font-size:12px;color:var(--ink-soft);margin-top:3px;line-height:1.55}
.rp-stf{font-size:12px;color:var(--ink-soft);margin-top:1px;line-height:1.5}
/* 状態とリマインドは幅を揃えて縦に並べる */
.rp-r{flex:none;display:flex;flex-direction:column;align-items:stretch;gap:5px;width:74px}
.rp-st{font-size:11px;font-weight:800;padding:4px 0;border-radius:7px;text-align:center}
.rp-st.done{background:#F1DDE7;color:var(--plum)}
.rp-st.draft{background:#FCE9EF;color:var(--primary-d)}
.rp-st.yet{background:#F9E7E6;color:#C0564E}
.rp-rm{border:1px solid var(--line);background:var(--surface);color:var(--primary-d);
  font-family:inherit;font-size:11px;font-weight:800;padding:4px 0;border-radius:7px;cursor:pointer}
.btn.btn-sm{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;padding:10px 16px;font-size:14px}
/* 給与 */
.pay-total{margin-top:6px;padding-top:8px;border-top:1.5px solid var(--line)}
.pay-total b{font-size:20px;color:var(--primary-d)}
.pay-sub{display:block;font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:2px}
.pay-amt{font-weight:800;font-variant-numeric:tabular-nums;margin-left:auto;padding-right:6px}
.pay-row{padding:12px 0;border-bottom:1px solid var(--line)}
.pay-row:last-child{border-bottom:none}
.pay-r1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.pay-fam{color:var(--ink-soft);font-weight:600}
.pay-nom{font-size:11px;font-weight:800;padding:1px 7px;border-radius:8px;background:#FBEAF0;color:var(--primary-d)}
.pay-r2{display:flex;justify-content:space-between;gap:10px;margin-top:4px;font-size:12px;color:var(--ink-soft);font-weight:600;font-variant-numeric:tabular-nums}
/* 給与明細：行レイアウト（最終上書き） */
.pay-row{padding:14px 16px;border-bottom:1px solid var(--line)}
.pay-row:last-child{border-bottom:none}
.pay-r1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.pay-date{font-weight:800;font-variant-numeric:tabular-nums;flex:0 0 auto}
.pay-fam{font-weight:600;color:var(--ink-soft);min-width:0;overflow-wrap:anywhere}
.pay-svc{margin-top:4px;font-size:12px;color:var(--ink-soft);font-weight:600;overflow-wrap:anywhere}
.pay-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.pay-chip{display:inline-flex;align-items:baseline;gap:4px;font-size:12px;font-weight:700;color:var(--ink-soft);
  background:var(--surface-2);border-radius:9px;padding:5px 10px;font-variant-numeric:tabular-nums}
.pay-chip b{color:var(--ink);font-weight:800}
.pay-chip.main{background:#FBEAF0}
.pay-chip.main b{color:var(--primary-d)}
/* 予定フォーム：指名チェック */
.nom-chk{margin-top:10px;padding:11px 13px;border:1.5px solid var(--line);border-radius:11px;background:var(--surface-2);gap:10px;font-weight:700;font-size:13px}
.nom-chk:has(input:checked){border-color:var(--primary);background:#FBEAF0;color:var(--primary-d)}
/* 土日祝の自動判定バッジ */
.daytype{margin-top:8px;display:inline-block;font-size:12px;font-weight:800;padding:5px 11px;border-radius:9px;background:#FFF4E5;color:#8a5a12;border:1.5px solid #F0B96B}
.pay-hol{font-size:11px;font-weight:800;padding:1px 7px;border-radius:8px;background:#FFF4E5;color:#8a5a12}
/* 予定：キャンセル表示 */
.ap-badge.cancel,.badge.cancel{background:#F0EDEE;color:#8A7A80}
.appt-cancelled{opacity:.55}
/* 移動距離 */
.stops{margin-top:4px}
.stop{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-bottom:1px dashed var(--line)}
.stop:last-child{border-bottom:none}
.stop .n{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--surface-2);color:var(--primary-d);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.stop.home .n{background:var(--primary);color:#fff}
.stop .t{flex:1;min-width:0;font-size:13px;font-weight:700}
.stop .t small{display:block;font-weight:600;color:var(--ink-soft);margin-top:2px;font-size:11.5px;line-height:1.5}
.calc{background:var(--surface-2);border-radius:12px;padding:13px}
.calc-row{display:flex;justify-content:space-between;font-size:13px;font-weight:700;padding:3px 0}
.calc-row.total{border-top:1.5px solid var(--line);margin-top:7px;padding-top:9px}
.calc-row.total b{font-size:19px;color:var(--primary-d)}
.btn.map-btn{background:#1a73e8;color:#fff}
.badge-ok{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px;background:#E9F6EC;color:#2E7D46;white-space:nowrap}
.badge-warn{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px;background:#FFF4E5;color:#8a5a12;white-space:nowrap}
/* 祝日・休業日 */
.hol-row{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.hol-row:last-child{border-bottom:none}
.hol-row .ml{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.hol-name{color:var(--ink-soft);font-weight:600}
.hol-del{flex:0 0 auto;font-size:12px;font-weight:800;color:var(--ink-soft);text-decoration:none;padding:6px 10px;border:1.5px solid var(--line);border-radius:9px}
/* 祝日カレンダー */
.hol-cal .cal-cell.has.hol-national{background:#FBEAF0;color:var(--primary-d);font-weight:800}
.hol-cal .cal-cell.has.hol-national .cal-dot{background:var(--primary)}
.hol-cal .cal-cell.has.hol-company{background:#FFF4E5;color:#8a5a12;font-weight:800}
.hol-cal .cal-cell.has.hol-company .cal-dot{background:#E0A54F}
.hol-legend{display:flex;gap:18px;justify-content:center;margin-top:12px;font-size:12px;color:var(--ink-soft);font-weight:600}
.hol-legend .dot{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:middle;margin-right:3px}
.hol-legend .dot.nat{background:var(--primary)}
.hol-legend .dot.com{background:#E0A54F}

/* カレンダー：数字のみ色分け（土曜=青系／日祝=ピンク系）。背景は一色 */
.cal-cell.is-sat .cal-d{color:#4B7BC0}
.cal-cell.is-sun .cal-d,.cal-cell.is-hol .cal-d{color:#C2607E}
/* モーダル内の祝日名 */
.cm-hol{display:inline-block;font-size:12px;font-weight:800;padding:5px 11px;border-radius:9px;
  background:#FBE4EC;color:#B5607E;margin-bottom:10px}
/* 全報告書一覧 */
.rp-fam{color:var(--ink-soft);font-weight:600;font-size:13px}
/* 利用希望 */
.rq-row{padding:13px 16px;border-bottom:1px solid var(--line)}
.rq-row:last-child{border-bottom:none}
.rq-1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.rq-time{color:var(--ink-soft);font-weight:700;font-variant-numeric:tabular-nums}
.rq-2{margin-top:4px;font-size:12px;color:var(--ink-soft);font-weight:600}
.rq-note{margin-top:7px;font-size:12px;font-weight:600;background:var(--surface-2);border-radius:9px;padding:8px 10px;color:var(--ink)}
.badge-gray{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px;background:#F0EDEE;color:#8A7A80}
/* タブ・件数バッジ */
.tabs{display:flex;gap:8px;margin-bottom:12px}
.tab-btn{flex:1;text-align:center;padding:10px 6px;border-radius:11px;background:var(--surface);
  border:1.5px solid var(--line);color:var(--ink-soft);font-size:13px;font-weight:800;text-decoration:none}
.tab-btn.on{background:var(--primary);border-color:var(--primary);color:#fff}
.mn-badge{background:var(--primary);color:#fff;font-size:11px;font-weight:800;padding:2px 8px;border-radius:9px;margin-left:auto}

/* ボタン：アイコン＋テキストを中央揃え（左浮き解消） */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;line-height:1.4}
.btn svg{width:17px;height:17px;flex:0 0 auto}
.form-actions .btn{flex:1}
/* スタッフ状況 */
.av-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 16px;border-bottom:1px solid var(--line)}
.av-row:last-child{border-bottom:none}
.av-name{font-size:14px;font-weight:800;flex:0 0 auto}
.av-time{font-size:11.5px;color:var(--ink-soft);font-weight:600;font-variant-numeric:tabular-nums}
.av-badge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:8px;white-space:nowrap}
.av-ok{background:#E9F6EC;color:#2E7D46}
.av-part{background:#FFF4E5;color:#8a5a12}
.av-ng{background:#FBEAF0;color:#B5607E}
.av-none{background:#F0EDEE;color:#8A7A80}
.av-conf{background:#FDECEC;color:#B03A3A}
/* 利用者ホーム */
.hero-card{background:linear-gradient(160deg,#FDF2F6,#fff)}
.hero-hi{font-size:13px;font-weight:700;color:var(--ink-soft)}
.hero-label{margin-top:12px;font-size:11px;font-weight:800;color:var(--primary-d)}
.hero-date{margin-top:4px;font-size:22px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.hero-sub{margin-top:5px;font-size:13px;font-weight:600;color:var(--ink-soft)}
.hero-none{margin-top:6px;font-size:14px;font-weight:700;color:var(--ink-soft)}
/* スタッフ紹介 */
.st-card{padding:16px}
.st-head{display:flex;align-items:center;gap:13px}
.st-avatar{flex:0 0 auto;width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--surface-2);
  border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center}
.st-avatar img{width:100%;height:100%;object-fit:cover}
.st-initial{font-size:22px;font-weight:800;color:var(--primary-d)}
.st-name{font-size:16px;font-weight:800}
.st-intro{margin-top:12px;font-size:13.5px;line-height:1.7;color:var(--ink)}
.st-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.st-tag{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:9px;background:#FBEAF0;color:var(--primary-d)}
.st-quals{margin-top:9px;font-size:12px;font-weight:600;color:var(--ink-soft)}
/* スタッフ紹介：タイル一覧 */
.st-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:12px}
.st-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;
  background:var(--surface);border:1.5px solid var(--line);border-radius:16px;cursor:pointer;
  font-family:inherit;transition:transform .1s}
.st-tile:active{transform:scale(.97)}
.st-tname{font-size:14px;font-weight:800;color:var(--ink);text-align:center;line-height:1.3}
.stm-intro{font-size:13.5px;line-height:1.7}
.stm-label{margin-top:14px;font-size:11px;font-weight:800;color:var(--primary-d)}
.stm-txt{margin-top:5px;font-size:13px;font-weight:600;color:var(--ink)}

/* 絞り込みチップ */
.fchips{display:flex;flex-wrap:nowrap;gap:7px;padding:2px 2px 10px;overflow-x:auto;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin}
.fchips::-webkit-scrollbar{height:4px}
.fchips::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}
.fchip{flex:0 0 auto;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);
  background:var(--surface);color:var(--ink-soft);font-size:13px;font-weight:800;
  font-family:inherit;cursor:pointer;white-space:nowrap}
.fchip.on{background:var(--primary);border-color:var(--primary);color:#fff}
/* リマインド */
.rm-row{padding:12px 16px;border-bottom:1px solid var(--line)}
.rm-row:last-child{border-bottom:none}
.rm-1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.rm-2{margin-top:4px;font-size:12px;color:var(--ink-soft);font-weight:600}
.opt-tag{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:8px;background:var(--surface-2);color:var(--ink-soft);margin-left:8px;vertical-align:middle}
/* 利用希望：基本＋延長 */
.base-box{display:flex;align-items:center;justify-content:space-between;background:#FBEAF0;border-radius:12px;padding:14px 16px}
.base-l{font-size:12px;font-weight:800;color:var(--primary-d)}
.base-v{font-size:20px;font-weight:800}
.ext{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:4px}
.ext-btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  color:var(--primary-d);font-size:22px;font-weight:800;cursor:pointer;font-family:inherit;
  display:flex;align-items:center;justify-content:center}
.ext-btn:disabled{opacity:.35;cursor:default}
.ext-btn:active:not(:disabled){transform:scale(.94)}
.ext-val{min-width:120px;text-align:center}
.ext-num{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.ext-unit{font-size:12px;font-weight:700;color:var(--ink-soft);display:block;margin-top:2px}
.warn-box{margin-top:10px;font-size:12px;font-weight:700;color:#8a5a12;background:#FFF4E5;
  border:1.5px solid #F0B96B;border-radius:10px;padding:9px 11px;line-height:1.6}
.tax-tag{font-size:11px;font-weight:800;color:var(--ink-soft);margin-left:6px}
.kids{display:flex;flex-direction:column;gap:8px}
.kid{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1.5px solid var(--line);
  border-radius:12px;background:var(--surface-2);cursor:pointer;font-weight:700;font-size:14px}
.kid input{width:19px;height:19px;accent-color:var(--primary);flex:0 0 auto}
.kid.on{border-color:var(--primary);background:#FBEAF0;color:var(--primary-d)}
.kid .age{margin-left:auto;font-size:12px;font-weight:700;color:var(--ink-soft)}
/* 申込フォーム：規約と同意 */
.terms{font-size:12px;color:var(--ink-soft);font-weight:600;line-height:1.85;
  background:var(--surface-2);border-radius:11px;padding:13px 14px;max-height:230px;overflow-y:auto}
.agree-chk{padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);
  gap:11px;font-weight:800;font-size:14px}
.agree-chk:has(input:checked){border-color:var(--primary);background:#FBEAF0;color:var(--primary-d)}
.req{color:var(--primary-d);margin-left:3px}
/* 優先順位つき選択 */
.rank-list{display:flex;flex-direction:column;gap:9px}
.rank-row{display:flex;align-items:center;gap:10px}
.rank-no{flex:0 0 auto;width:22px;text-align:center;font-size:15px;font-weight:800;color:var(--primary-d)}
.rank-row select{flex:1 1 auto;min-width:0}
/* 作り置きの人数・日数 */
.portion{display:flex;gap:10px}
.p-in{flex:1 1 0;display:flex;align-items:center;gap:7px;min-width:0}
.p-in input{flex:1 1 auto;min-width:0}
.p-unit{flex:0 0 auto;font-size:13px;font-weight:800;color:var(--ink-soft)}
/* 登録済みアレルギーの表示 */
.allergy-box{background:var(--surface-2);border:1.5px solid var(--line);border-radius:11px;
  padding:12px 14px;font-size:14px;font-weight:700;color:var(--ink)}
.allergy-box.warn{background:#FFF4E5;border-color:#F0B96B;color:#8a5a12}
.allergy-box b{color:var(--primary-d)}
.allergy-box.warn b{color:#8a5a12}
.allergy-sub{margin-top:5px;font-size:11.5px;font-weight:600;color:var(--ink-soft)}
.allergy-sub a{color:var(--primary-d);text-decoration:underline}
/* アレルギー：その場で編集 */
.allergy-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.allergy-line #allergy-text{flex:1 1 auto;min-width:0}
.allergy-edit{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:8px 13px;
  border:1.5px solid var(--primary);border-radius:999px;background:var(--surface);
  color:var(--primary-d);font-size:12.5px;font-weight:800;font-family:inherit;cursor:pointer}
.allergy-edit svg{width:14px;height:14px}
.allergy-edit:active{transform:scale(.96)}
/* 複数項目は改行で表示 */
.val-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.val-list li{position:relative;padding-left:13px;line-height:1.6}
.val-list li::before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;
  border-radius:50%;background:var(--primary)}
.val-list.ordered{counter-reset:vl}
.val-list.ordered li{counter-increment:vl;padding-left:20px}
.val-list.ordered li::before{content:counter(vl)'.';position:absolute;left:0;top:0;
  width:auto;height:auto;background:none;border-radius:0;color:var(--primary-d);font-weight:800;font-size:12px}
/* 定期のご依頼：曜日枠 */
.rc-row{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.rc-row .rc-day{flex:0 0 74px}
.rc-row .rc-start{flex:1 1 0;min-width:0}
.rc-row .rc-dur{flex:1 1 0;min-width:0}
.rc-row .rep-del{flex:0 0 auto;width:38px;height:38px;border:1.5px solid var(--line);border-radius:10px;
  background:var(--surface);color:var(--ink-soft);font-weight:800}
.calc-note{margin-top:9px;font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.6}
/* 支払明細 */
.inv-head{text-align:center}
.inv-title{font-size:18px;font-weight:800;letter-spacing:.08em}
.inv-sub{font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:4px}
.inv-to{margin-top:14px;font-size:16px;font-weight:800}
.inv-from{margin-top:6px;font-size:12px;color:var(--ink-soft);font-weight:600}
.inv-no{font-size:11.5px;color:var(--ink-soft);font-weight:700;margin-top:6px}
.inv-head .inv-to{margin-top:14px}
.inv-head .inv-from{margin-top:8px;line-height:1.7}

/* カレンダー：セルが列幅を超えないように（iOS Safari の aspect-ratio 対策） */
.cal-grid > *{min-width:0;min-height:0}
.cal-cell{min-width:0;min-height:0;overflow:hidden}
.cal-cell .cal-d{line-height:1.1}
/* 画面外へのはみ出し防止 */
.cal,.card{max-width:100%}

/* ===== 管理画面：ヘッダーのアイコンとメニュー ===== */
.ab-actions{display:flex;align-items:center;gap:8px}
.ab-btn{position:relative;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);
  background:var(--surface);color:var(--primary-d);display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-family:inherit;padding:0}
.ab-btn svg{width:19px;height:19px}
.ab-btn:active{transform:scale(.94)}
.ab-dot{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;
  background:var(--primary);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.ab-user{border:none;background:none}
.ab-ava{width:40px;height:40px;border-radius:50%;background:var(--plum);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.ab-menu{display:none;position:absolute;right:18px;top:66px;z-index:120;min-width:210px;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden}
.ab-menu.show{display:block}
.ab-menu-head{padding:11px 14px;font-size:11px;font-weight:800;color:var(--primary-d);
  letter-spacing:.1em;border-bottom:1px solid var(--line)}
.ab-item{display:flex;align-items:center;gap:10px;padding:13px 14px;font-size:14px;font-weight:700;
  color:var(--ink);border-bottom:1px solid var(--line)}
.ab-item:last-child{border-bottom:none}
.ab-item svg{width:17px;height:17px;color:var(--ink-soft);flex:0 0 auto}
.ab-item.danger{color:var(--primary-d)}
.ab-item-l{flex:1 1 auto;min-width:0}
.ab-item-c{flex:0 0 auto;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--primary);
  color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.ab-empty{padding:18px 14px;text-align:center;font-size:13px;color:var(--ink-soft);font-weight:600}

/* ===== 管理画面ホーム：カード ===== */
.hm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
@media (min-width:700px){ .hm-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
.hm-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  padding:24px 12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:var(--shadow);min-height:118px;transition:.12s}
.hm-card:active{transform:scale(.97)}
.hm-card.off{opacity:.55;box-shadow:none}
.hm-ic{width:44px;height:44px;border-radius:14px;background:#FBEAF0;color:var(--primary-d);
  display:flex;align-items:center;justify-content:center}
.hm-ic svg{width:22px;height:22px}
.hm-card.off .hm-ic{background:var(--surface-2);color:var(--ink-soft)}
.hm-label{font-size:15px;font-weight:800;color:var(--ink)}
.hm-badge{position:absolute;top:10px;right:10px;padding:3px 9px;border-radius:9px;
  background:var(--primary);color:#fff;font-size:10.5px;font-weight:800}
.hm-badge.soft{background:var(--surface-2);color:var(--ink-soft)}
/* 5タブ対応 */
.tabbar .tab{min-width:0}
/* バージョン情報 */
.ver-card{text-align:center;padding:28px 18px}
.ver-name{font-size:20px;font-weight:800;letter-spacing:-.01em}
.ver-num{margin-top:6px;font-size:12px;font-weight:700;color:var(--ink-soft);letter-spacing:.06em}
.ver-card + .card .det-label{letter-spacing:.06em}

/* ===== ヘッダーのアカウントシート（画面を覆う） ===== */
.ab-overlay{display:none;position:fixed;inset:0;z-index:200;background:rgba(74,49,56,.45)}
.ab-overlay.show{display:block}
.ab-sheet{position:absolute;inset:0;margin:0 auto;max-width:480px;background:var(--bg);
  overflow-y:auto;-webkit-overflow-scrolling:touch;animation:sheetin .2s ease}
@keyframes sheetin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ab-sheet-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px;background:var(--surface);border-bottom:1px solid var(--line)}
.ab-sheet-head span{font-size:16px;font-weight:800}
.ab-close{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  color:var(--ink-soft);font-size:15px;font-weight:800;cursor:pointer;font-family:inherit}
.ab-sec{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 18px 10px;font-size:11px;font-weight:800;color:var(--primary-d);letter-spacing:.1em}
.ab-edit{padding:6px 14px;border-radius:999px;border:1.5px solid var(--primary);background:var(--surface);
  color:var(--primary-d);font-size:12px;font-weight:800;font-family:inherit;cursor:pointer;letter-spacing:0}
.ab-edit:active{transform:scale(.96)}
.ab-info{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:13px 18px;background:var(--surface);border-top:1px solid var(--line);font-size:14px}
.ab-info span{color:var(--ink-soft);font-weight:700;flex:0 0 auto;font-size:12.5px}
.ab-info b{font-weight:700;text-align:right;overflow-wrap:anywhere}
.ab-form{padding:14px 18px 18px;background:var(--surface);border-top:1px solid var(--line)}
.ab-form .f{display:block;font-size:11.5px;font-weight:800;color:var(--primary-d);margin:0 0 6px}
.ab-form input{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;
  font-size:15px;font-family:inherit;background:var(--surface);color:var(--ink);margin-bottom:12px}
.ab-form-btns{display:flex;gap:10px}
.ab-form-btns .btn{flex:1;padding:12px;font-size:14px}
.ab-item{display:flex;align-items:center;gap:10px;padding:15px 18px;font-size:14px;font-weight:700;
  color:var(--ink);background:var(--surface);border-top:1px solid var(--line)}
.ab-item svg{width:17px;height:17px;color:var(--ink-soft);flex:0 0 auto}
.ab-foot{padding:22px 18px 40px}
#acc-modal{z-index:220}
#acc-modal .cal-modal-box{max-height:88vh}

/* ===== 予定タブ：カレンダーと日別セクション ===== */
.cal-cnt{margin-top:4px;font-size:9.5px;font-weight:800;line-height:1;color:var(--primary-d)}
.cal-cell.sel{border:2px solid var(--primary)}
.cal-cell.today .cal-d{text-decoration:underline;text-underline-offset:3px}
.today-btn{flex:0 0 auto;padding:7px 13px;border-radius:999px;border:1.5px solid var(--primary);
  background:var(--surface);color:var(--primary-d);font-size:12px;font-weight:800}
.cal-head{display:flex;align-items:center;gap:8px}
.cal-head .cal-title{flex:1;text-align:center}

.day-sec{margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}
.day-head{display:flex;align-items:center;gap:8px}
.day-title{flex:1;text-align:center;font-size:15px;font-weight:800}
.day-title small{display:block;font-size:11px;font-weight:700;color:var(--ink-soft);margin-top:2px}
.ap{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);align-items:flex-start}
.ap:last-child{border-bottom:none}
.ap-t{flex:0 0 auto;text-align:center;min-width:52px}
.ap-t b{display:block;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
.ap-t small{font-size:10.5px;color:var(--ink-soft);font-weight:700}
.ap-b{flex:1;min-width:0}
.ap-fam{display:block;font-size:14.5px;font-weight:800}
.ap-svc{display:block;font-size:12px;color:var(--ink-soft);font-weight:700;margin-top:2px}
.ap-st{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:12px;font-weight:700;color:var(--plum)}
.ap-st .dot{width:6px;height:6px;border-radius:50%;background:var(--primary)}
.ap .chev{align-self:center;color:var(--ink-soft)}
/* 前後の月の日付（高さを揃えるため常に6週表示） */
.cal-cell.out{background:transparent;opacity:.32}
.cal-cell.out .cal-d{color:var(--ink-soft)}
.cal-cell.out.is-sun .cal-d,.cal-cell.out.is-hol .cal-d{color:#C2607E}
.cal-cell.out.is-sat .cal-d{color:#4B7BC0}
/* 一覧の絞り込み */
.searchbar{position:relative;display:flex;margin-bottom:12px}
.searchbar input{flex:1;min-width:0;padding:12px 40px 12px 14px;border:1.5px solid var(--line);
  border-radius:12px;font-size:15px;font-family:inherit;background:var(--surface);color:var(--ink)}
.searchbar input:focus{outline:none;border-color:var(--primary)}
.sb-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;
  border:none;border-radius:50%;background:var(--surface-2);color:var(--ink-soft);
  font-size:13px;font-weight:800;cursor:pointer;font-family:inherit}

/* ===== 詳細ページ：セクション（既存の .acc とは別クラス） ===== */
.phead{margin-bottom:24px}
.phead-nm{font-size:23px;font-weight:800;letter-spacing:-.02em;line-height:1.3;overflow-wrap:anywhere}

.dsec{background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:0 2px 12px rgba(166,94,126,.07);margin-bottom:14px;overflow:hidden}
.dsec-h{display:flex;align-items:center;gap:16px;padding:22px 22px;cursor:pointer;user-select:none}
.dsec-ic{flex:0 0 auto;width:52px;height:52px;border-radius:16px;background:#FBEAF0;color:var(--primary-d);
  display:flex;align-items:center;justify-content:center}
.dsec-ic svg{width:26px;height:26px}
.dsec-t{flex:1;min-width:0}
.dsec-t b{display:block;font-size:16px;font-weight:800;line-height:1.4}
.dsec-t small{display:block;font-size:12.5px;color:var(--ink-soft);font-weight:700;margin-top:4px}
.dsec-mk{flex:0 0 auto;color:var(--ink-soft);display:flex;align-items:center;transition:transform .18s}
.dsec-mk svg{width:17px;height:17px}
.dsec.open .dsec-mk{transform:rotate(90deg)}
.dsec-b{display:none;border-top:1px solid var(--line)}
.dsec.open .dsec-b{display:block}
.dsec-f{padding:20px 22px 24px}

.drow{display:flex;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line);align-items:baseline}
.drow:last-of-type{border-bottom:none}
.drow .k{flex:0 0 38%;font-size:12.5px;font-weight:700;color:var(--ink-soft)}
.drow .v{flex:1;min-width:0;font-size:14.5px;font-weight:700;overflow-wrap:anywhere;line-height:1.7}
.sub-head{padding:18px 22px 8px;font-size:11.5px;font-weight:800;color:var(--primary-d);letter-spacing:.06em}
.btn-ghost{display:block;text-align:center;padding:13px;border-radius:12px;border:1.5px solid var(--line);
  background:var(--surface-2);color:var(--primary-d);font-size:13.5px;font-weight:800}
.list-row{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}
.list-row:last-of-type{border-bottom:none}
.list-row .ml{flex:1;min-width:0}
.list-row b{font-size:14.5px;font-weight:800;display:block}
.list-row .s2{display:block;font-size:12.5px;color:var(--ink-soft);font-weight:600;margin-top:3px}
/* 見積書の一覧：番号と対象日程を1行に */
.list-row.est-row{gap:10px}
.list-row.est-row .est-no{flex:1;min-width:0;font-size:14px;font-weight:800;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.list-row.est-row .est-day{flex:0 0 auto;font-size:12.5px;color:var(--ink-soft);font-weight:700;white-space:nowrap}

/* 日付入力がスマホではみ出さないように */
input[type=date],input[type=time],input[type=month]{
  width:100%;max-width:100%;min-width:0;-webkit-appearance:none;appearance:none;
  background:var(--surface);font-family:inherit}
input[type=date]::-webkit-date-and-time-value{text-align:left}

/* おうちのこと編集：セクションの開閉アイコン（サイズ指定が抜けていた） */
.acc .acc-ic svg{width:16px;height:16px}
.acc .acc-head > span:first-child{flex:1;min-width:0;text-align:left}
/* 補足はラベルの下に置いて高さを揃える */
.hint-under{margin-top:6px;font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.5}
/* 編集画面：指定セクションを一時的に強調 */
.sec-focus{outline:2px solid var(--primary);outline-offset:2px;transition:outline-color .4s}
/* フォーム下部：キャンセル＋保存 */
.form-actions{display:flex;gap:10px;margin-top:22px}
.form-actions .btn{flex:1;padding:14px;font-size:15px}
.btn.ghost.danger{color:#B03A3A;border-color:#F0C9C9}

/* 面談枠の登録（管理者） */
.iv-cnt{float:right;font-size:12px;font-weight:800;color:var(--primary-d)}
.iv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.iv-slot{position:relative;display:flex;align-items:center;justify-content:center;padding:12px 0;border-radius:9px;border:1.5px solid var(--line);background:#fff;font-size:12px;font-weight:800;color:var(--ink);cursor:pointer;user-select:none}
.iv-slot input{position:absolute;opacity:0;pointer-events:none}
.iv-slot.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.iv-slot.lock{background:#FCF0F3;color:#C3AAB3;border-style:dashed;cursor:not-allowed}
.iv-tag{position:absolute;top:-7px;right:-6px;background:var(--plum,#A65E7E);color:#fff;font-size:9px;font-weight:800;border-radius:6px;padding:1px 5px;line-height:1.4}

/* 事前面談リクエスト（利用者） */
.iq-mon{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.iq-mon b{font-size:15px;font-weight:800}
.iq-nav{width:32px;height:32px;border-radius:9px;background:#FCF0F3;color:var(--primary-d);border:none;font-size:17px;font-weight:800;cursor:pointer}
.iq-nav:disabled{opacity:.35;cursor:default}
.iq-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.iq-dow span{text-align:center;font-size:10px;font-weight:800;color:var(--ink-soft)}
.iq-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.iq-cell{aspect-ratio:1/1.05;border-radius:10px;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.iq-cell .dn{font-size:12px;font-weight:700}
.iq-cell .mk{font-size:13px;font-weight:800;line-height:1}
.iq-cell.o,.iq-cell.t{background:#FCF0F3;border-color:var(--line);cursor:pointer}
.iq-cell.sel{border-color:var(--primary);background:#FBEAF0;box-shadow:0 0 0 2px rgba(217,139,166,.18)}
.iq-cell.o .mk{color:#4FA277}
.iq-cell.t .mk{color:#D9922B}
.iq-cell.x .mk,.iq-cell.past .mk{color:var(--line)}
.iq-cell.x .dn,.iq-cell.past .dn{color:#CBB9C0}
.iq-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;font-size:10.5px;font-weight:700;color:var(--ink-soft)}
.iq-legend .o{color:#4FA277}.iq-legend .t{color:#D9922B}.iq-legend .x{color:#C7B4BC}
.iq-detail{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}
.iq-detail-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.iq-detail-h b{font-size:14px;font-weight:800}
.iq-detail-h .c{font-size:12px;color:var(--primary-d);font-weight:800;cursor:pointer}
.iq-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.iq-slot{position:relative;padding:11px 0;border-radius:9px;font-size:12px;font-weight:800;text-align:center;border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.iq-slot.pick{background:var(--primary);color:#fff;border-color:var(--primary)}
.iq-slot .rk{position:absolute;top:-7px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--plum,#A65E7E);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.iq-pref-row{display:flex;align-items:center;gap:8px;padding:9px 11px;background:#FCF0F3;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;font-size:12.5px;font-weight:700}
.iq-pref-row .no{font-size:11px;font-weight:800;color:var(--primary-d)}
.iq-pref-row .v{flex:1}
.iq-pref-row.empty{color:#CBB9C0;font-weight:600}
.iq-pref-row .rm{color:var(--primary-d);font-size:16px;cursor:pointer}

/* 面談リクエスト（管理者・承認/確定） */
.btn.locked{background:#EAE0E4;color:#B29AA3;border:1px solid #E0D2D8;cursor:not-allowed;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn.locked svg{width:16px;height:16px;opacity:.7}
.lock-hint{font-size:11px;color:#B29AA3;font-weight:700;text-align:center;margin-top:6px}
.iv-choice{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1.5px solid var(--line);border-radius:11px;margin-bottom:7px;cursor:pointer}
.iv-choice.on{border-color:var(--primary);background:#FBEAF0}
.iv-choice input{position:absolute;opacity:0;pointer-events:none}
.iv-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:0 0 20px;display:flex;align-items:center;justify-content:center}
.iv-choice.on .iv-dot{border-color:var(--primary)}
.iv-choice.on .iv-dot::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--primary)}
.iv-cno{font-size:11px;font-weight:800;color:var(--primary-d);flex:0 0 auto}
.iv-cval{flex:1;font-weight:700;font-size:13px}
.iv-hold{font-size:10px;font-weight:800;color:#4FA277;background:#EAF6EE;border-radius:999px;padding:2px 8px}
.iv-zoom{background:#FCF0F3;border-radius:11px;padding:10px 12px}
.iv-zrow{display:flex;justify-content:space-between;font-size:12.5px;font-weight:700;padding:3px 0}
.iv-zrow span:first-child{color:var(--ink-soft)}

/* 説明動画の埋め込み（16:9） */
.video-embed{position:relative;width:100%;padding-top:56.25%;border-radius:12px;overflow:hidden;background:#000}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* 利用規約 確認・同意（利用者） */
.terms-hint{font-size:11px;font-weight:700;color:var(--primary-d);margin-bottom:6px}
.terms-box{height:250px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:12px;background:#FEFAFB;font-size:11.5px;line-height:1.7;color:var(--ink)}
.terms-box h3{font-size:12.5px;margin:12px 0 4px;color:var(--primary-d)}
.terms-box p{margin:4px 0}
.terms-box .li{padding-left:1.2em;text-indent:-1.2em;margin:2px 0}
.terms-box .ib{background:#FCF0F3;border-radius:8px;padding:8px 10px;margin:7px 0}
.terms-box table.rate{width:100%;border-collapse:collapse;margin:6px 0}
.terms-box table.rate th,.terms-box table.rate td{border:1px solid var(--line);padding:5px 6px;text-align:left;vertical-align:top;font-size:11px}
.terms-box table.rate th{background:#F7EEF1;font-weight:700}
.tm-sec{margin-top:16px}
.tm-sec-t{font-size:13px;font-weight:800}
.tm-req{color:#fff;background:var(--primary);font-size:10px;font-weight:800;border-radius:6px;padding:1px 6px;margin-left:6px}
.tm-desc{font-size:11.5px;color:var(--ink-soft);line-height:1.6;margin:6px 0 8px}
.tm-opt{display:flex;align-items:flex-start;gap:10px;border:1.5px solid var(--line);border-radius:11px;padding:11px 12px;margin-bottom:7px;cursor:pointer}
.tm-opt.on{border-color:var(--primary);background:#FBEAF0}
.tm-opt input{position:absolute;opacity:0;pointer-events:none}
.tm-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:0 0 20px;margin-top:1px;display:flex;align-items:center;justify-content:center}
.tm-opt.on .tm-radio{border-color:var(--primary)}
.tm-opt.on .tm-radio::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--primary)}
.tm-ol{font-weight:800;font-size:13px}
.tm-od{display:block;font-size:11px;color:var(--ink-soft);margin-top:2px;line-height:1.5}
.tm-sub{display:none;margin-top:8px}
.tm-sub.show{display:block}
.tm-sub-t{display:block;font-size:11px;font-weight:800;color:var(--primary-d);margin-bottom:6px}
.tm-chk{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12.5px;font-weight:700;cursor:pointer}
.tm-chk input{width:18px;height:18px;accent-color:var(--primary)}
.tm-final{background:#FBEAF0;border:1.5px solid var(--primary);border-radius:10px;padding:13px;margin-top:16px}
.tm-final label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.tm-final input{width:20px;height:20px;margin-top:1px;accent-color:var(--primary)}
.tm-final span{font-size:12.5px;font-weight:700;line-height:1.55}

/* オンボーディング ステッパー（利用者ホーム） */
.stp-hi{font-size:16px;font-weight:800;margin:2px 2px 0}
.stp-hi span{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:3px}
.stp-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:14px}
.stp-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.stp-h-t{font-size:13px;font-weight:800}
.stp-h-n{font-size:12px;font-weight:800;color:var(--primary-d)}
.stp-track{height:7px;border-radius:99px;background:#F0E4E9;overflow:hidden;margin:8px 0 4px}
.stp-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--plum));border-radius:99px}
.stp-sub{font-size:11.5px;color:var(--ink-soft);margin-bottom:4px}
.stp-step{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.stp-step:last-child{border-bottom:none}
.stp-num{width:30px;height:30px;border-radius:50%;flex:0 0 30px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;border:2px solid var(--line);color:var(--ink-soft);background:#fff}
.stp-step.done .stp-num{background:#4FA277;border-color:#4FA277;color:#fff}
.stp-step.cur .stp-num{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px rgba(217,139,166,.18)}
.stp-step.lock{opacity:.55}
.stp-step.lock .stp-num,.stp-step.todo .stp-num{background:#F3EAEE}
.stp-tt{flex:1}
.stp-tt .t{font-size:14px;font-weight:800}
.stp-tt .s{font-size:11px;font-weight:700;margin-top:2px}
.stp-step.done .s{color:#4FA277}
.stp-step.cur .s{color:var(--primary-d)}
.stp-step.todo .s,.stp-step.lock .s{color:var(--ink-soft)}
.stp-go{font-size:11px;font-weight:800;color:#fff;background:var(--primary);border-radius:8px;padding:5px 10px;white-space:nowrap}
.stp-chev{color:#CDB9C1;font-weight:800}
.stp-panel{padding:6px 4px 14px 46px;border-bottom:1px solid var(--line)}
.stp-panel:last-child{border-bottom:none}
.stp-foot{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:12px;line-height:1.6}

/* プロフィール 必須整備・回答状況（1d） */
.req-b{font-size:9px;font-weight:800;color:#fff;background:var(--primary);border-radius:5px;padding:1px 5px;vertical-align:middle}
.opt-b{font-size:9px;font-weight:800;color:var(--ink-soft);background:#F2E9ED;border-radius:5px;padding:1px 5px;vertical-align:middle}
.ans-empty{color:var(--primary-d);font-weight:800}
.ans-opt{color:#CBB9C0;font-weight:700}
.ans-chip{font-size:10.5px;font-weight:800;border-radius:99px;padding:3px 9px}
.ans-chip.ok{color:#4FA277;background:#EAF6EE}
.ans-chip.left{color:var(--primary-d);background:#FBEAF0}

/* 説明つきラジオ（プロフィール spend 等） */
.radc-list{display:flex;flex-direction:column;gap:9px}
.radc{display:flex;align-items:flex-start;gap:11px;border:1.5px solid var(--line);border-radius:12px;padding:13px;cursor:pointer}
.radc input{position:absolute;opacity:0;pointer-events:none}
.radc-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex:0 0 22px;margin-top:1px;display:flex;align-items:center;justify-content:center}
.radc:has(input:checked){border-color:var(--primary);background:#FBEAF0}
.radc:has(input:checked) .radc-dot{border-color:var(--primary)}
.radc:has(input:checked) .radc-dot::after{content:'';width:11px;height:11px;border-radius:50%;background:var(--primary)}
.radc-tt{display:flex;flex-direction:column}
.radc-l{font-size:14px;font-weight:800;line-height:1.35}
.radc-d{font-size:11.5px;color:var(--ink-soft);font-weight:600;margin-top:3px;line-height:1.5}
.field-note{font-size:11px;color:var(--ink-soft);margin-top:8px;line-height:1.6}

/* 保存型通知（利用者のベル一覧） */
.noti-row{align-items:flex-start}
.noti-row.unread{background:#FCF0F3}
.noti-l{display:flex;flex-direction:column;gap:3px;width:100%}
.noti-title{font-size:13px;font-weight:800}
.noti-row.unread .noti-title::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--primary);margin-right:6px;vertical-align:middle}
.noti-body{font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.5}
.noti-time{font-size:10.5px;color:#B7A2AB;font-weight:700}

/* 情報ハブ（利用者） */
.info-grid{display:flex;flex-direction:column;gap:10px}
.info-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-decoration:none;color:inherit}
.info-card.disabled{opacity:.6}
.info-ic{width:40px;height:40px;border-radius:11px;background:#FBEAF0;color:var(--primary-d);display:flex;align-items:center;justify-content:center;flex:0 0 40px}
.info-ic svg{width:20px;height:20px}
.info-tt{flex:1;display:flex;flex-direction:column;gap:2px}
.info-t{font-size:14px;font-weight:800}
.info-d{font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.4}
.info-chev{color:#CDB9C1;font-weight:800}
.info-soon{font-size:10.5px;font-weight:800;color:var(--ink-soft);background:#F2E9ED;border-radius:99px;padding:3px 9px;white-space:nowrap}
/* 情報タブ：ご利用の流れ */
ol.flow{list-style:none;margin:0;padding:0}
ol.flow>li{display:flex;gap:12px;padding:0 0 16px;position:relative}
ol.flow>li:last-child{padding-bottom:0}
ol.flow>li::after{content:'';position:absolute;left:13px;top:30px;bottom:2px;width:1.5px;background:var(--line)}
ol.flow>li:last-child::after{display:none}
.fl-n{flex:0 0 27px;width:27px;height:27px;border-radius:50%;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;position:relative;z-index:1}
.fl-b{flex:1;min-width:0;padding-top:2px}
.fl-t{font-size:14px;font-weight:800;line-height:1.4}
.fl-d{font-size:12px;color:var(--ink-soft);font-weight:600;line-height:1.6;margin-top:3px}
/* 情報タブ：料金。面としての色は使わず、金額の文字色だけで見せる */
.sv-t{font-size:15px;font-weight:800;color:var(--ink)}
.sv-d{font-size:12px;color:var(--ink-soft);font-weight:600;line-height:1.6;margin:4px 0 12px}
.pr-note{font-size:11.5px;color:var(--ink-soft);font-weight:600;line-height:1.65;margin-top:10px}
.pr-list{border-top:1px solid var(--line)}
.pr-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:11px 2px;border-bottom:1px solid var(--line);font-size:13px}
.pr-k{font-weight:700;line-height:1.5}
.pr-v{flex:0 0 auto;font-weight:800;color:var(--primary-d);white-space:nowrap}
.opt-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -2px}
table.opt{border-collapse:collapse;width:100%;min-width:330px;font-size:12.5px}
table.opt th,table.opt td{border-bottom:1px solid var(--line);padding:10px 8px;vertical-align:top}
table.opt thead th{border-top:1px solid var(--line);font-size:10.5px;font-weight:800;
  color:var(--primary-d);text-align:right;white-space:nowrap}
table.opt th.k{text-align:left;font-weight:700;color:var(--ink);white-space:nowrap;padding-left:2px}
table.opt td.n{text-align:right;font-weight:800;color:var(--primary-d);white-space:nowrap}
/* 情報タブ：よくあるご質問 */
details.faq{border-bottom:1px solid var(--line)}
details.faq:last-child{border-bottom:none}
details.faq>summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:10px;padding:14px 16px}
details.faq>summary::-webkit-details-marker{display:none}
.fq-q{flex:1;font-size:13.5px;font-weight:800;line-height:1.5}
.fq-m{flex:0 0 14px;width:14px;height:14px;position:relative;margin-top:4px}
.fq-m::before,.fq-m::after{content:'';position:absolute;background:var(--primary-d);border-radius:1px}
.fq-m::before{left:0;top:6px;width:14px;height:2px}
.fq-m::after{left:6px;top:0;width:2px;height:14px;transition:transform .15s ease}
details.faq[open] .fq-m::after{transform:scaleY(0)}
.fq-a{padding:0 16px 15px;font-size:12.5px;color:var(--ink-soft);font-weight:600;line-height:1.75}

/* 予定リスト（利用者） */
.sched-row{display:flex;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line)}
.sched-row:last-child{border-bottom:none}
.sched-date{flex:0 0 auto;text-align:center;min-width:46px}
.sched-date .d{display:block;font-size:15px;font-weight:800}
.sched-date .w{font-size:10px;color:var(--ink-soft);font-weight:700}
.sched-body{flex:1}
.sched-svc{font-size:14px;font-weight:800}
.sched-time{font-size:11.5px;color:var(--ink-soft);font-weight:700;margin-top:2px}
.sched-st{font-size:10.5px;font-weight:800;border-radius:99px;padding:3px 9px;white-space:nowrap}
.sched-st.ok{background:#EAF6EE;color:#4FA277}
.sched-st.done{background:#F0E8EC;color:var(--ink-soft)}
.sched-st.other{background:#FBE9E9;color:#C0564E}

/* テキストリンク風ボタン */
.linklike{background:none;border:none;color:var(--primary-d);font-weight:800;font-size:12.5px;cursor:pointer;text-decoration:underline;padding:4px}

/* ===== チャット ===== */
.chat-mode{height:100dvh;overflow:hidden}
.chat-mode .main{padding-bottom:0}
.chat-head{display:flex;align-items:center;gap:10px;padding:10px 4px 12px}
.chat-back,.chat-gear{color:var(--primary-d);display:flex;align-items:center;flex:0 0 auto}
.chat-back svg,.chat-gear svg{width:22px;height:22px}
.chat-head-t{flex:1;font-size:15px;font-weight:800;line-height:1.2}
.chat-head-t span{display:block;font-size:11px;color:var(--ink-soft);font-weight:600;margin-top:2px}
.chat-thread{min-height:200px;overflow-y:auto;padding:12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(#FCF6F8,#FBF3F5)}
.chat-day{text-align:center;font-size:10.5px;color:var(--ink-soft);font-weight:700;margin:6px 0 12px}
.chat-msg{display:flex;gap:8px;margin-bottom:12px;align-items:flex-start}
.chat-mava{width:28px;height:28px;border-radius:8px;flex:0 0 28px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;background:var(--plum)}
.chat-bub{max-width:76%}
.chat-sender{font-size:10.5px;color:var(--ink-soft);font-weight:700;margin:0 0 3px 2px}
.chat-text{padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.5;background:#fff;border:1px solid var(--line);white-space:pre-wrap;word-break:break-word}
.chat-mtime{font-size:10px;color:var(--ink-soft);font-weight:700;margin:3px 0 0 2px}
.chat-msg.me{flex-direction:row-reverse}
.chat-msg.me .chat-bub{display:flex;flex-direction:column;align-items:flex-end}
.chat-msg.me .chat-text{background:var(--primary);color:#fff;border-color:var(--primary)}
.chat-msg.me .chat-mtime{text-align:right;margin-right:2px}
.chat-empty{text-align:center;color:var(--ink-soft);font-size:12.5px;font-weight:600;padding:40px 10px;line-height:1.8}
.chat-empty svg{width:34px;height:34px;display:block;margin:0 auto 8px;color:#E4C6D2}
.chat-input{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
.chat-ta{flex:1;-webkit-appearance:none;appearance:none;box-sizing:border-box;height:40px;min-height:40px;max-height:120px;padding:9px 14px;border:1.5px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);font-size:13.5px;line-height:20px;font-family:inherit;resize:none;overflow-y:hidden;display:block;margin:0}
.chat-ta:focus{outline:none;border-color:var(--primary)}
.chat-send{-webkit-appearance:none;appearance:none;width:40px;height:40px;border-radius:50%;border:none;background:var(--primary);color:#fff;cursor:pointer;flex:0 0 40px;display:flex;align-items:center;justify-content:center;padding:0;margin:0}
.chat-send svg{width:18px;height:18px;display:block}
/* 一覧 */
.chat-sec{font-size:11px;font-weight:800;color:var(--primary-d);padding:14px 4px 6px}
.chat-row{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.chat-row:last-child{border-bottom:none}
.chat-ic{width:44px;height:44px;border-radius:12px;flex:0 0 44px;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:15px}
.chat-ic.fam{background:var(--primary)}.chat-ic.ops{background:var(--plum)}.chat-ic.one{background:#B58AA6}
.chat-meta{flex:1;min-width:0}
.chat-name{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:14px;font-weight:800}
.chat-time{font-size:10.5px;color:var(--ink-soft);font-weight:700;flex:0 0 auto}
.chat-rowbot{display:flex;align-items:center;gap:8px;margin-top:2px}
.chat-last{flex:1;font-size:12px;color:var(--ink-soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-badge{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
/* タブの未読バッジ */
.tabitem{position:relative}
.tab-badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--primary);color:#fff;font-size:9.5px;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1}

/* チャット：家庭ルームのスタッフ選定（氏名のみ・1行） */
.ct-chk{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.ct-chk:last-child{border-bottom:none}
.ct-chk input[type=checkbox]{-webkit-appearance:none;appearance:none;width:22px;height:22px;flex:0 0 22px;border:2px solid var(--line);border-radius:6px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}
.ct-chk input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}
.ct-chk input[type=checkbox]:checked::after{content:'';width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);margin-top:-2px}
.ct-chk .nm{font-size:14px;font-weight:700;line-height:1.2}

/* チャット既読ラベル */
.chat-read{font-size:10px;color:var(--ink-soft);font-weight:700;margin:3px 2px 0 0;text-align:right}

/* アカウントシート／端末通知ボタンの幅を抑えて中央寄せ */
.ab-foot{display:flex;justify-content:center}
.ab-foot .btn{width:auto;min-width:180px;padding-left:28px;padding-right:28px}
#push-btn{width:auto;min-width:210px;margin:0 auto;padding-left:24px;padding-right:24px}

/* チャット添付：入力欄の写真ボタン */
.chat-attach{-webkit-appearance:none;appearance:none;width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:#F2E4EA;color:var(--primary-d);display:flex;align-items:center;justify-content:center;cursor:pointer}
.chat-attach svg{width:22px;height:22px;display:block}
/* 吹き出し内の画像・ファイル */
.chat-att-img{display:block;margin-bottom:4px;cursor:pointer}
.chat-att-img img{max-width:200px;max-height:240px;border-radius:12px;display:block;object-fit:cover}
.chat-att-file{display:flex;align-items:center;gap:8px;margin-bottom:4px;padding:9px 11px;border-radius:12px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);max-width:220px}
.chat-msg.me .chat-att-file{background:#fff;color:var(--ink)}
.chat-att-file .fi{flex:0 0 22px;color:var(--primary-d)}
.chat-att-file .fi svg{width:22px;height:22px;display:block}
.chat-att-file .fn{font-size:12.5px;font-weight:700;word-break:break-all;line-height:1.3}
/* 画像拡大（ライトボックス） */
.chat-lightbox{position:fixed;inset:0;z-index:200;background:rgba(20,10,15,.92);display:none;flex-direction:column}
.chat-lightbox.open{display:flex}
.clb-bar{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 10px) 14px 10px;gap:10px}
.clb-close{-webkit-appearance:none;appearance:none;background:rgba(255,255,255,.15);color:#fff;border:none;width:38px;height:38px;border-radius:50%;font-size:18px;cursor:pointer}
.clb-actions{display:flex;gap:8px}
.clb-btn{-webkit-appearance:none;appearance:none;border:none;border-radius:99px;padding:9px 18px;font-size:13px;font-weight:800;cursor:pointer;background:rgba(255,255,255,.16);color:#fff}
.clb-btn.primary{background:var(--primary);color:#fff}
.clb-body{flex:1;display:flex;align-items:center;justify-content:center;padding:10px 12px calc(env(safe-area-inset-bottom) + 16px)}
.clb-body img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}

/* .ct-chk のラジオ（キャンセル理由など） */
.ct-chk input[type=radio]{-webkit-appearance:none;appearance:none;width:22px;height:22px;flex:0 0 22px;border:2px solid var(--line);border-radius:50%;background:#fff;position:relative;cursor:pointer;margin:0}
.ct-chk input[type=radio]:checked{border-color:var(--primary)}
.ct-chk input[type=radio]:checked::after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--primary)}

/* ============================================================
   2026-07-31 〜 08-24 に追加したもの
   （デルタの適用時に app.css が上書きされておらず、抜けていた分）
   ============================================================ */

.btn.btn-sm{padding:8px 14px;font-size:12.5px;border-radius:10px;width:auto;min-width:0}

/* 請求書の明細（チラシ配布・事前面談・事務作業） */
.pay-name2{font-size:13px;color:var(--ink);font-weight:700}
/* 明細ごとの合計行。ご請求金額の .pay-total とは別物なので名前を分ける */
.sec-total{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  margin:-12px 0 12px;padding:12px 16px;border-top:1px solid var(--line);
  background:var(--surface);border-radius:0 0 14px 14px;
  font-size:13.5px;font-weight:800}
.sec-total b{color:var(--primary-d);font-size:15px}

/* 実績：現在の時給と、次のランクまでの案内を1行にまとめる */
.er-wage{display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin-top:12px;padding:11px 13px;border-radius:12px;background:var(--surface-2)}
.er-wage-l{font-size:11.5px;font-weight:800;color:var(--ink-soft);letter-spacing:.04em}
.er-wage-v{font-size:19px;font-weight:800;color:var(--ink);line-height:1.2}
.er-next{margin-left:auto;font-size:11.5px;font-weight:800;color:var(--primary-d);
  background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:5px 11px;white-space:nowrap}
.er-next.top{color:#3F8A62;border-color:#CFE3D6;background:#F2F8F4}
@media (max-width:380px){
  .er-wage{gap:6px;padding:10px 11px}
  .er-wage-v{font-size:17px}
  .er-next{font-size:10.5px;padding:4px 9px}
}
@media (max-width:340px){
  .er-wage-l{display:none}
  .er-wage-v{font-size:16px}
  .er-next{font-size:10px;padding:4px 8px}
}

/* 面談予約：受付開始日より前をご希望の方への案内 */
.iq-chat{color:var(--primary-d);font-weight:800;text-decoration:underline}

/* 営業日のまとめて登録 */
.hb-row{display:flex;gap:8px;align-items:flex-end;padding:12px 0;border-top:1px solid var(--line)}
.hb-row:first-of-type{border-top:none}
.hb-date{flex:1;min-width:0}
.hb-name{flex:1.4;min-width:0}
.hb-kind{flex:none;width:120px}

/* 動作確認チェックリスト */
.cl-prog{margin-top:14px}
.cl-prog-t{display:flex;justify-content:space-between;font-size:11.5px;font-weight:800;color:var(--ink-soft);margin-bottom:5px}
.cl-prog-t b{color:var(--primary-d)}
.cl-track{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.cl-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--plum,#A65E7E));transition:width .2s ease}
.cl-sec{background:var(--surface);border-radius:14px;margin-bottom:8px;overflow:hidden}
.cl-sec.done .cl-title{color:#3F8A62}
.cl-sec.done .cl-n b{color:#3F8A62}
.cl-head{display:flex;align-items:center;gap:9px;width:100%;padding:14px 15px;
  border:0;background:none;font-family:inherit;text-align:left;cursor:pointer}
.cl-tw{flex:0 0 13px;width:13px;height:13px;position:relative}
.cl-tw::before{content:"";position:absolute;left:2px;top:2px;width:7px;height:7px;
  border-right:2px solid var(--primary-d);border-bottom:2px solid var(--primary-d);
  transform:rotate(-45deg);transition:transform .15s ease}
.cl-sec.open .cl-tw::before{transform:rotate(45deg)}
.cl-title{flex:1;font-size:14px;font-weight:800;color:var(--ink);line-height:1.45}
.cl-n{font-size:12px;font-weight:800;color:var(--ink-soft);white-space:nowrap}
.cl-n b{color:var(--primary-d)}
.cl-body{padding:0 15px 6px}
.cl-note{font-size:11.5px;color:var(--ink-soft);margin:0 0 8px;line-height:1.6}
.cl-item{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-top:1px solid var(--line);cursor:pointer}
.cl-item input{position:absolute;opacity:0;width:0;height:0}
.cl-box{flex:0 0 20px;width:20px;height:20px;margin-top:1px;border:1.8px solid var(--line);
  border-radius:6px;background:var(--surface);position:relative;transition:all .12s ease}
.cl-box::after{content:"";position:absolute;left:5px;top:2px;width:7px;height:12px;
  border-right:2.2px solid #fff;border-bottom:2.2px solid #fff;transform:rotate(40deg) scale(0);transition:transform .12s ease}
.cl-item.on .cl-box{background:#3F8A62;border-color:#3F8A62}
.cl-item.on .cl-box::after{transform:rotate(40deg) scale(1)}
.cl-tx{flex:1;font-size:13px;line-height:1.6}
/* 取り消し線は項目名だけに掛ける（親に掛けると子へ引き継がれ、打ち消せないため） */
.cl-item.on .cl-label{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:#C9B6BE}
.cl-no{display:inline-block;font-size:10.5px;font-weight:800;color:var(--primary-d);
  background:var(--surface-2);border-radius:99px;padding:1px 7px;margin-right:6px}
.cl-hint{display:block;font-size:11px;color:var(--ink-soft);margin-top:3px}
.cl-who{display:block;font-size:10.5px;font-weight:800;color:#3F8A62;margin-top:4px}
.cl-who[hidden]{display:none}

/* 通話の疎通確認（確認が済んだら消してよい） */
.ct-state{font-size:15px;font-weight:800;color:var(--primary-d);margin-bottom:10px}
.ct-log{background:var(--surface-2);border-radius:10px;padding:10px 12px;margin-bottom:12px;
  max-height:190px;overflow:auto;font-size:11.5px;line-height:1.7}
.ct-line{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink-soft);word-break:break-all}
.ct-line.ng{color:#C0564E;font-weight:700}
.ct-kv{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:5px 0}
.ct-kv span{color:var(--ink-soft);font-weight:700}
.ct-kv b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}

/* ============ 現金処理 ============ */
/* 一覧の行。ボタンだが見た目はリンク行に揃える */
.cs-row{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;
  border:0;border-bottom:1px solid var(--line);background:none;font-family:inherit;
  text-align:left;color:inherit;cursor:pointer}
.cs-row:last-child{border-bottom:none}
.cs-l{flex:1;min-width:0}
.cs-nm{display:block;font-size:14px;font-weight:800}
.cs-v{display:block;font-size:12px;color:var(--ink-soft);margin-top:1px}
.cs-v b{color:var(--ink);font-weight:800}
.cs-done{display:block;font-size:11px;color:#3F8A62;font-weight:800;margin-top:2px}
.cs-st{flex:none;font-size:11px;font-weight:800;padding:4px 10px;border-radius:7px}
.cs-st.yet{background:#F9E7E6;color:#C0564E}
.cs-st.ok{background:#EDF5EF;color:#3F8A62}
.cs-row .chev{flex:none;width:16px;height:16px;color:var(--ink-soft)}
.cs-row .chev svg{width:16px;height:16px}

/* モーダル */
/* モーダル。画面の下から出るが、下端にぴったり付けず少し浮かせる。
   ボタンは本文と一緒にスクロールさせず、下部に固定する。 */
.cs-sheet{position:fixed;inset:0;z-index:60;background:rgba(62,42,49,.45);
  display:flex;align-items:flex-end;justify-content:center;
  padding:34px 10px 0}
.cs-sheet[hidden]{display:none}
.cs-panel{background:var(--surface);width:100%;max-width:560px;
  border-radius:20px 20px 0 0;max-height:100%;display:flex;flex-direction:column;
  box-shadow:0 -6px 28px rgba(62,42,49,.16);overflow:hidden}
.cs-hd{flex:none;display:flex;align-items:center;gap:10px;padding:15px 18px 13px;border-bottom:1px solid var(--line)}
.cs-hd .t{flex:1;font-size:16px;font-weight:800;line-height:1.35}
.cs-hd .t span{display:block;font-size:11.5px;font-weight:700;color:var(--ink-soft);margin-top:2px}
.cs-x{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:var(--surface-2);
  color:var(--ink-soft);font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;line-height:1}
.cs-body{flex:1;overflow:auto;padding:14px 18px 4px;-webkit-overflow-scrolling:touch}
/* 確定・取り消しのボタン。下部に固定して、いつでも押せるようにする */
.cs-foot{flex:none;padding:14px 18px calc(20px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);background:var(--surface)}
.cs-foot .btn{width:100%;margin:0}
.cs-foot .note-inline{margin:9px 2px 0;text-align:center;font-size:11.5px}
.cs-memo{display:block;margin:14px 0 2px}
.cs-memo .f{display:block;margin-bottom:5px}
.cs-memo input{width:100%}

.cs-day{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden}
.cs-dh{background:var(--surface-2);padding:9px 12px;display:flex;justify-content:space-between;
  align-items:baseline;gap:8px}
.cs-dh .d{font-size:12.5px;font-weight:800}
.cs-dh .s{font-size:11px;font-weight:700;color:var(--ink-soft);white-space:nowrap}
.cs-db{padding:8px 12px 10px}
.cs-ln{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12.5px}
.cs-ln .l{flex:1;color:var(--ink-soft)}
.cs-ln .y{color:var(--ink-soft);font-size:11px}
.cs-ln .v{font-weight:800}
.cs-ln .v .z,.cs-ln .z{color:#C6B4BB;font-weight:400}
.cs-ln input{width:96px;border:1px solid var(--line);border-radius:8px;padding:6px 9px;
  font-family:inherit;font-size:13px;text-align:right;font-weight:800;color:var(--ink);background:#fff}
/* 元の予定になかった項目は控えめに。入力すると通常の色に戻る */
.cs-ln input.z{color:#C6B4BB;background:#FDFAFB}
.cs-ln input:focus{color:var(--ink);background:#fff}
.cs-ln.tot{border-top:1px solid var(--line);margin-top:5px;padding-top:8px;font-weight:800}
.cs-ln.tot .l{color:var(--ink)}
.cs-ln.tot b{font-size:15px;color:var(--primary-d)}
.cs-cp{display:flex;align-items:center;gap:8px;padding:7px 0 2px;border-top:1px solid var(--line);
  margin-top:5px;font-size:12.5px}
.cs-cp .l{flex:1;color:var(--ink-soft)}
.cs-cp .y{color:var(--ink-soft);font-size:11px}
.cs-cp .v{font-weight:800}
.cs-cp input{width:64px;border:1px solid var(--line);border-radius:8px;padding:6px 9px;
  font-family:inherit;font-size:13px;text-align:right;font-weight:800;background:#fff}

.cs-gt{background:var(--surface-2);border-radius:12px;padding:12px 14px;margin:12px 0}
.cs-gt .r{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;padding:3px 0}
.cs-gt .r b{font-size:17px;font-weight:800;color:var(--primary-d)}
.cs-gt .r.rec{border-top:1px solid var(--line);margin-top:8px;padding-top:8px;font-size:12px}
.cs-gt .r.rec span:last-child{font-weight:800;color:#3F8A62}
/* 現金売上の出力ボタン */
.cs-out{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:14px}
.cs-out svg{width:16px;height:16px}
.cs-memo-v{background:var(--surface-2);border-radius:10px;padding:10px 12px;margin-bottom:10px;
  font-size:12.5px;line-height:1.6}

/* ============ シフト表 ============ */
/* 縦に時間（15分刻み）、横にサポーター。フェスのタイムテーブルのような形。 */
.sb-bar{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);
  border-radius:14px;padding:9px 11px;margin-bottom:10px}
.sb-nav{flex:none;width:34px;height:34px;border-radius:10px;background:var(--surface-2);color:var(--primary-d);
  display:flex;align-items:center;justify-content:center;font-weight:800;text-decoration:none;font-size:16px}
.sb-dbtn{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;border:0;background:none;
  font-family:inherit;color:inherit;cursor:pointer;padding:4px}
.sb-dbtn .d{font-size:17px;font-weight:800}
.sb-dbtn .w{font-size:12.5px;font-weight:700;color:var(--ink-soft)}
.sb-dbtn .cv{color:#C6B4BB;font-size:11px}

.sb-wrap{--sb-h:17px;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  overflow:auto;max-height:64vh;-webkit-overflow-scrolling:touch}
table.sb{border-collapse:separate;border-spacing:0;width:100%}
table.sb thead th{position:sticky;top:0;z-index:3;background:var(--surface);
  border-bottom:1px solid var(--line);padding:9px 4px;font-size:11.5px;font-weight:800;
  white-space:nowrap;min-width:100px}
table.sb thead th.off{color:var(--ink-soft)}
table.sb thead th.t{left:0;z-index:4;width:44px;min-width:44px;border-right:1px solid var(--line)}
table.sb th.t{position:sticky;left:0;z-index:2;background:var(--surface);width:44px;min-width:44px;
  border-right:1px solid var(--line);font-size:10.5px;font-weight:800;color:var(--ink-soft);
  text-align:right;padding:0 6px 0 0;vertical-align:top;height:var(--sb-h);line-height:1}
table.sb th.t .q{font-size:9.5px;font-weight:400;color:#C6B4BB}
table.sb td.c{height:var(--sb-h);border-bottom:1px solid rgba(62,42,49,.05);
  border-right:1px solid rgba(62,42,49,.10);position:relative;padding:0}
table.sb td.c:last-child{border-right:none}
table.sb thead th{border-right:1px solid rgba(62,42,49,.10)}
table.sb thead th:last-child{border-right:none}
table.sb tr.hour th.t{border-top:1px solid var(--line)}
table.sb tr.hour td.c{border-top:1px solid rgba(62,42,49,.14)}
/* シフト希望の色分け */
table.sb td.on{background:#EEF6F1}      /* 出勤できる */
table.sb td.out{background:#FBF7F8}     /* 希望の時間外 */
table.sb td.off{background:#C9BDC2}     /* お休み */
table.sb td.none{background:#EFE9EB}    /* 未回答 */

.sb-ap{position:absolute;left:2px;right:2px;top:1px;z-index:2;display:block;text-decoration:none;
  background:linear-gradient(180deg,var(--primary),#CE7C99);color:#fff;border-radius:7px;
  padding:4px 6px;overflow:hidden;box-shadow:0 1px 3px rgba(62,42,49,.18)}
.sb-ap.done{background:linear-gradient(180deg,#B9879C,#A67189)}
.sb-ap b{display:block;font-size:11px;font-weight:800;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-ap span{display:block;font-size:10px;opacity:.92;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.sb-legend{display:flex;gap:13px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:10px 13px;margin-top:10px;margin-bottom:14px;font-size:12px}
.sb-legend div{display:flex;align-items:center;gap:6px}
.sb-legend .sw{width:18px;height:14px;border-radius:4px;border:1px solid var(--line)}
.sb-legend .sw.on{background:#EEF6F1}.sb-legend .sw.out{background:#FBF7F8}
.sb-legend .sw.off{background:#C9BDC2}.sb-legend .sw.none{background:#EFE9EB}
.sb-legend .sw.ap{background:linear-gradient(180deg,var(--primary),#CE7C99);border-color:transparent}
/* シフト希望の出力ボタン */
.sb-out{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:14px}
.sb-out svg{width:16px;height:16px}

/* 日付を選ぶモーダル */
.sb-sheet{position:fixed;inset:0;z-index:60;background:rgba(62,42,49,.45);
  display:flex;align-items:flex-end;justify-content:center;padding:34px 10px 0}
.sb-sheet[hidden]{display:none}
.sb-panel{background:var(--surface);width:100%;max-width:460px;border-radius:20px 20px 0 0;
  max-height:100%;overflow:auto;box-shadow:0 -6px 28px rgba(62,42,49,.16)}
.sb-hd{display:flex;align-items:center;gap:10px;padding:15px 18px 13px;border-bottom:1px solid var(--line)}
.sb-hd .t{flex:1;font-size:16px;font-weight:800}
.sb-x{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:var(--surface-2);
  color:var(--ink-soft);font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;line-height:1}
.sb-cal{padding:14px 16px calc(20px + env(safe-area-inset-bottom))}
.sb-chd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sb-chd .m{font-size:15px;font-weight:800}
/* カレンダーのマスの見え方は、どの画面でも同じにします。
   塗りつぶすとその日だけ浮いて見えるので、枠線だけにしています。
   背景は、ご予定があるかどうかの色をそのまま残します。
   border ではなく内側の影を使うのは、マスの大きさを変えないためです。

     本日        … 細い薄桃の枠
     選んでいる日 … 太いピンクの枠
     両方        … 太いピンクの枠（選んでいる日を優先）             */
.cal-cell.today{outline:none;box-shadow:inset 0 0 0 1.5px #E9C4D2}
.cal-cell.sel{border:0;box-shadow:inset 0 0 0 2px var(--primary)}
.cal-cell.today.sel{box-shadow:inset 0 0 0 2px var(--primary)}
/* 実績（週表示）とシフト希望も、同じ見え方に揃えます */
.wk-cal .cal-cell.today{background:var(--surface-2);color:var(--ink);
  outline:none;box-shadow:inset 0 0 0 1.5px #E9C4D2}
.wk-cal .cal-cell.today.has{background:#FBEAF0;color:var(--primary-d)}
.wk-cal .cal-cell.today .cal-d{color:inherit;text-decoration:underline;text-underline-offset:3px}
.wk-cal .cal-cell.today .cal-dot{background:var(--primary)}
.sh-cal .cal-cell.sh-edit{outline:none;box-shadow:inset 0 0 0 2px var(--primary)}
.sh-cal .cal-cell.sh-future{outline:none;box-shadow:inset 0 0 0 1.5px #E9C4D2}
.cal-cell.out{background:none;color:#C6B4BB}
/* 面談時の印象。長文になりやすいので、ほかの項目より控えめに見せる */
.drow.imp .v{font-weight:400;font-size:13.5px;line-height:1.75}
/* 駐車場代を上限で減らしたときのお知らせ */
.pk-cut{font-size:11px;color:var(--ink-soft);line-height:1.6;padding:2px 0 0}
.pk-cap{background:var(--surface-2);border-radius:10px;padding:9px 11px;margin-top:8px}

/* ============ 報告書の担当を決める（おふたりで伺ったご利用） ============ */
/* 退勤のときに一度だけ決めていただくものなので、画面の中央に出します。
   下から出る形より、見落としにくく、押し間違いも減ります。 */
.ro-sheet{position:fixed;inset:0;z-index:70;background:rgba(62,42,49,.55);
  display:flex;align-items:center;justify-content:center;
  padding:20px 16px calc(20px + env(safe-area-inset-bottom))}
.ro-sheet[hidden]{display:none}
.ro-panel{background:var(--surface);width:100%;max-width:420px;border-radius:20px;
  max-height:100%;overflow:auto;box-shadow:0 10px 40px rgba(62,42,49,.28)}
.ro-body{padding:22px 20px 20px}
.ro-t{font-size:16.5px;font-weight:800;margin:0 0 4px;line-height:1.45}
.ro-t.ok{color:#3F8A62}
.ro-s{font-size:12px;color:var(--ink-soft);margin:0 0 14px;line-height:1.75}
/* 2つの質問 */
.ro-q{font-size:12.5px;font-weight:800;color:var(--primary-d);margin:0 0 7px;display:flex;align-items:center;gap:6px}
.ro-no{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;flex:none;
  border-radius:50%;background:var(--primary);color:#fff;font-size:11px;font-weight:800}
.ro-pick{display:flex;gap:8px;margin-bottom:14px}
.ro-pick button{flex:1;border:1.5px solid var(--line);background:var(--surface);border-radius:11px;
  padding:11px 8px;font-family:inherit;font-size:13px;font-weight:800;color:var(--ink);cursor:pointer;line-height:1.4}
.ro-pick button.on{border-color:var(--primary);background:#FDF4F7;color:var(--primary-d)}
/* 決まった内容のお知らせ */
.ro-res{background:var(--surface-2);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.ro-r{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;padding:3px 0;font-weight:800}
.ro-r span{color:var(--ink-soft);font-size:12px;font-weight:700}
.ro-me{color:#3F8A62}
.ro-msg{background:var(--surface-2);border-radius:13px;padding:16px 17px;margin-bottom:15px}
.ro-msg b{display:block;font-size:15px;font-weight:800;margin-bottom:5px}
.ro-msg.ok b{color:#3F8A62}
.ro-msg span{display:block;font-size:12.5px;color:var(--ink-soft);line-height:1.75}
.ro-body .btn{width:100%;margin:0}
/* 日報タブで、もう1人が担当されるとき */
.ap-owner{display:block;font-size:11px;font-weight:800;color:#3F8A62;margin-top:4px}

/* 必要なクーポン枚数：選んだ結果のご利用時間 */
.cp-calc{background:var(--surface-2);border-radius:12px;padding:11px 13px;margin-top:9px}
.cp-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}
.cp-row b{font-size:17px;font-weight:800;color:var(--primary-d)}
.cp-note{font-size:11.5px;color:var(--ink-soft);line-height:1.65;margin-top:6px;
  border-top:1px solid var(--line);padding-top:7px}

/* 予約リクエスト：別の日時に変更する */
.other-date{background:var(--surface-2);border-radius:12px;padding:12px 13px;margin-top:9px}
.other-date[hidden]{display:none}
.other-date .two{display:flex;gap:9px}
.other-date .two>.field{flex:1;margin-bottom:0}
.other-date .note-inline{margin-top:9px}

/* ============ ご予定の詳細（サポーター） ============ */
.ap-link{display:block;text-decoration:none;color:inherit}
.ap-more{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:800;
  color:var(--primary-d);margin-top:4px}
.ap-more svg{width:13px;height:13px}
.ad-head{padding:16px 18px}
.ad-date{font-size:17px;font-weight:800;line-height:1.4}
.ad-fam{font-size:15px;font-weight:800;margin-top:5px}
.ad-svc{font-size:12.5px;color:var(--ink-soft);margin-top:2px}
.ad-rank{display:inline-block;background:var(--surface-2);border-radius:8px;
  padding:3px 9px;font-size:12px;font-weight:700;margin:0 5px 4px 0}
.ad-alg{color:#C0564E;font-weight:800}
/* ご依頼の内容の入力（運営） */
#appt-details .rank-list{display:flex;flex-direction:column;gap:7px}
#appt-details .rank-row{display:flex;align-items:center;gap:8px}
#appt-details .rank-no{width:18px;flex:none;font-size:12.5px;font-weight:800;color:var(--ink-soft)}
#appt-details .portion{display:flex;gap:9px}
#appt-details .p-in{flex:1;display:flex;align-items:center;gap:5px}
#appt-details .p-unit{font-size:12.5px;color:var(--ink-soft);white-space:nowrap}
#appt-details .allergy-box{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:13px}
#appt-details .allergy-box.warn{background:#FDF3F2;border:1px solid #E8B6B1;color:#8E3A34}

/* ============ ご家庭の検索（予定の編集） ============ */
.fam-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.fam-search{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 13px;
  font-family:inherit;font-size:15px;background:#fff;color:var(--ink)}
.fam-list{margin-top:7px;border:1px solid var(--line);border-radius:12px;background:var(--surface);
  max-height:290px;overflow:auto;box-shadow:0 4px 16px rgba(62,42,49,.1)}
.fam-list[hidden]{display:none}
.fam-item{display:block;width:100%;border:0;border-top:1px solid var(--line);background:none;
  padding:11px 14px;text-align:left;font-family:inherit;color:inherit;cursor:pointer}
.fam-item:first-child{border-top:none}
.fam-item b{display:block;font-size:14.5px;font-weight:800}
.fam-item span{display:block;font-size:11.5px;color:var(--ink-soft);margin-top:2px}
.fam-empty{padding:14px;text-align:center;font-size:13px;color:var(--ink-soft)}
.fam-picked{display:flex;align-items:center;gap:10px;background:var(--surface-2);
  border-radius:11px;padding:11px 13px}
.fam-picked[hidden]{display:none}
.fam-picked-name{flex:1;font-size:15px;font-weight:800}
.fam-clear{border:1px solid var(--line);background:var(--surface);border-radius:9px;
  padding:6px 12px;font-family:inherit;font-size:12px;font-weight:800;color:var(--primary-d);cursor:pointer}

/* 仮予約（確定のしかたの選択） */
.rad-sub{font-size:11px;color:var(--ink-soft);font-weight:400;line-height:1.55}
.radrow .rad span b{font-weight:800}

/* ============ おうちのことの写真（駐車場の写真） ============ */
.pk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.pk-item{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--surface-2)}
.pk-item img{width:100%;height:100%;object-fit:cover;display:block}
.pk-del{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;
  background:rgba(0,0,0,.55);color:#fff;border:0;font-size:14px;line-height:1;cursor:pointer;padding:0}
.pk-add{aspect-ratio:4/3;border:1.5px dashed var(--line);border-radius:10px;background:var(--surface-2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-family:inherit;font-size:12px;font-weight:800;color:var(--primary-d);cursor:pointer}
.pk-add[hidden]{display:none}
.pk-add span{font-size:20px;line-height:1}
.pk-cnt{font-size:11.5px;color:var(--ink-soft);margin-top:7px}
/* 閲覧：横スクロール */
.pk-scroll{display:flex;gap:9px;overflow-x:auto;padding:2px 14px 8px;-webkit-overflow-scrolling:touch}
.pk-th{flex:none;width:140px;aspect-ratio:4/3;border:0;padding:0;border-radius:11px;overflow:hidden;
  background:var(--surface-2);cursor:pointer}
.pk-th img{width:100%;height:100%;object-fit:cover;display:block}
/* 拡大 */
.pk-viewer{position:fixed;inset:0;z-index:90;background:rgba(20,14,17,.94);
  display:flex;align-items:center;justify-content:center;flex-direction:column;padding:16px}
.pk-viewer[hidden]{display:none}
.pv-img{max-width:100%;max-height:76%;border-radius:8px}
.pv-bar{display:flex;align-items:center;gap:18px;color:#fff;margin-top:16px;font-size:13px}
.pv-bar b{font-weight:800;min-width:52px;text-align:center}
.pv-prev,.pv-next{background:rgba(255,255,255,.15);border:0;color:#fff;width:40px;height:40px;
  border-radius:50%;font-size:22px;line-height:1;cursor:pointer}
.pv-close{position:absolute;top:14px;right:16px;background:none;border:0;color:#fff;
  font-size:26px;line-height:1;cursor:pointer}

/* ============ お申込フォーム（アプリとは別の入口） ============ */
.form-body{background:var(--bg);padding:0}
.form-wrap{max-width:520px;margin:0 auto;padding:0 16px calc(30px + env(safe-area-inset-bottom))}
.form-hd{text-align:center;padding:26px 0 4px}
.form-hd .nm{font-family:"Josefin Sans",sans-serif;font-size:24px;font-weight:600;
  color:var(--plum);letter-spacing:.08em}
.form-hd .sb{font-size:11.5px;color:var(--ink-soft);margin-top:3px}
.form-lead{text-align:center;padding:18px 0 16px}
.form-lead h1{font-size:16.5px;font-weight:800;margin:0 0 6px;line-height:1.6}
.form-lead p{font-size:12.5px;color:var(--ink-soft);margin:0}
.form-ft{text-align:center;font-size:11.5px;color:var(--ink-soft);margin-top:26px;line-height:1.9}
.form-note{text-align:center;font-size:12px;color:var(--ink-soft);margin-top:14px;line-height:1.8}
.form-err{background:#FDF3F2;border:1px solid #E8B6B1;border-radius:12px;padding:12px 14px;
  font-size:12.5px;color:#8E3A34;margin-bottom:13px;line-height:1.75}
.form-warn{background:#FDF6EC;border:1px solid #E8D0A8;border-radius:12px;padding:13px 15px;
  font-size:12.5px;color:#7A5A22;line-height:1.85;margin-bottom:13px}
.form-steps{background:var(--surface-2);border-radius:11px;padding:12px 14px;font-size:12.5px;margin-bottom:13px}
.form-steps div{padding:3px 0;display:flex;gap:9px;align-items:flex-start}
.form-steps .n{width:18px;height:18px;border-radius:50%;background:var(--primary);color:#fff;
  font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none;margin-top:3px}
.form-who{background:var(--surface-2);border-radius:12px;padding:12px 14px;margin-bottom:13px}
.form-who b{display:block;font-size:15px;font-weight:800}
.form-who span{font-size:11.5px;color:var(--ink-soft)}
.form-prog{display:flex;gap:5px;margin:4px 0 10px}
.form-prog i{flex:1;height:4px;border-radius:2px;background:var(--line)}
.form-prog i.on{background:var(--primary)}
.form-prog-t{font-size:11.5px;color:var(--ink-soft);text-align:center;margin-bottom:13px}
.btn.fbtn{display:block;text-align:center;text-decoration:none;padding:15px}
.btn.fbtn small{display:block;font-size:11.5px;font-weight:700;opacity:.9;margin-top:3px}
.wish{border:1px solid var(--line);border-radius:12px;padding:11px 13px;margin-bottom:9px}
.wish-n{font-size:11.5px;font-weight:800;color:var(--primary-d);margin-bottom:7px}
.wish-two{display:flex;gap:8px}
.wish-two input{flex:1;min-width:0}
.iv-slots{display:flex;flex-direction:column;gap:8px}
.iv-slot{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);
  border-radius:11px;padding:12px 13px;font-size:13.5px;cursor:pointer}
.iv-slot input{position:absolute;opacity:0;width:0;height:0}
.iv-slot .dot{width:17px;height:17px;border-radius:50%;border:1.5px solid var(--line);flex:none;position:relative}
.iv-slot:has(input:checked){border-color:var(--primary);background:#FDF4F7}
.iv-slot:has(input:checked) .dot{border-color:var(--primary)}
.iv-slot:has(input:checked) .dot::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--primary)}
.iv-slot .d{flex:1;font-weight:800}
.iv-slot .t{color:var(--ink-soft);font-size:12.5px}
.form-done{text-align:center}
.form-done h1{font-size:17px;font-weight:800;margin:0 0 6px}
.form-done p{font-size:12.5px;color:var(--ink-soft);margin:0 0 14px;line-height:1.8}
.form-done .ok-ic{width:56px;height:56px;border-radius:50%;background:#E9F5EE;color:#3F8A62;
  display:flex;align-items:center;justify-content:center;font-size:28px;margin:4px auto 12px}
.form-sum{background:var(--surface-2);border-radius:11px;padding:12px 14px;font-size:12.5px;text-align:left}
.form-sum div{padding:3px 0}
.form-sum b{font-weight:800}
.opt{color:var(--ink-soft);font-size:10px;margin-left:3px;font-weight:700}

/* お見積の往復距離（予定の編集／リクエストの確定 共通）
   ボタンは中身のぶんだけの幅にします。引き伸ばすと文字が折り返して読みづらくなるためです。 */
.te-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.te-btns .btn{margin:0;width:auto;flex:0 0 auto;white-space:nowrap;padding:9px 14px;font-size:12.5px}
.te-btns .btn svg{width:14px;height:14px;margin-right:4px}
.te-fee{min-height:0}
.te-fee:empty{display:none}

/* ============ まだ提出していないご報告 ============ */
.late-box{background:#FDF3F2;border:1px solid #E8B6B1;border-radius:14px;overflow:hidden;margin-bottom:14px}
.late-h{padding:11px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #EDCBC6}
.late-h b{font-size:13px;font-weight:800;color:#8E3A34;flex:1}
.late-n{background:#C0564E;color:#fff;border-radius:99px;padding:2px 9px;font-size:11px;font-weight:800;flex:none}
.late-row{display:block;padding:11px 14px;border-top:1px solid #EDCBC6;position:relative;
  text-decoration:none;color:inherit;background:var(--surface)}
.late-row:first-of-type{border-top:none}
.late-d{font-size:12px;font-weight:800;color:#8E3A34}
.late-f{font-size:14px;font-weight:800;margin-top:2px}
.late-s{font-size:11.5px;color:var(--ink-soft)}
.late-more{display:flex;align-items:center;justify-content:center;gap:3px;padding:11px;
  font-size:12.5px;font-weight:800;color:#8E3A34;background:#FBEBE9;
  text-decoration:none;border-top:1px solid #EDCBC6}
.late-more svg{width:14px;height:14px}
.late-eb{color:#C0564E}
/* 過ぎた日の報告書のお知らせ */
.late-note{background:#FDF6EC;border:1px solid #E8D0A8;border-radius:12px;padding:12px 14px;
  font-size:12.5px;color:#7A5A22;line-height:1.8;margin-bottom:12px}
.late-note b{font-weight:800}

/* ============ 申請処理のカード ============ */
.rq{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px 14px;margin-bottom:10px}
.rq-hd{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;color:var(--primary-d)}
.rq-hd .sep{color:var(--line)}
.rq-hd .kind{background:#F2E4EA;border-radius:99px;padding:2px 9px;font-size:10.5px}
.rq-main{display:flex;align-items:center;gap:10px;margin-top:7px}
.rq-nm{flex:1;font-size:16px;font-weight:800;min-width:0;word-break:break-word}
.rq-btns{display:flex;gap:7px;flex:0 0 auto}
.rq-btns form{margin:0}
.rq-btns button{border:0;border-radius:10px;padding:9px 15px;font-family:inherit;
  font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap}
.rq-ok{background:var(--primary);color:#fff}
.rq-ng{background:var(--surface);border:1.5px solid var(--line) !important;color:var(--ink-soft)}
.rq-body{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.rq-r{display:flex;gap:10px;font-size:12.5px;padding:2px 0}
.rq-r .k{width:78px;flex:none;color:var(--ink-soft);font-size:11.5px;font-weight:700}
.rq-r .v{flex:1;min-width:0}
.rq-st{font-size:12px;font-weight:800;border-radius:99px;padding:3px 11px;flex:none}
.rq-st.ok{background:#E9F5EE;color:#3F8A62}
.rq-st.ng{background:#FDF3F2;color:#C0564E}
/* 処理を終えたもの（折りたたみの中） */
.rq-done{padding:11px 14px;border-top:1px solid var(--line)}
.rq-done:first-child{border-top:none}
.rq-done .rq-main{margin-top:3px}
.rq-done .rq-nm{font-size:14px}
.fold-more{display:flex;align-items:center;justify-content:center;gap:3px;padding:12px;
  font-size:12.5px;font-weight:800;color:var(--primary-d);background:var(--surface-2);
  border-top:1px solid var(--line);text-decoration:none}
.fold-more svg{width:14px;height:14px}

/* ============ 申請のカレンダー ============ */
.cal{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px}
.cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.cal-hd b{font-size:14px;font-weight:800}
.cal-nv{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);
  background:var(--surface);border-radius:9px;width:34px;height:32px;color:var(--primary-d)}
.cal-nv svg{width:16px;height:16px;transform:rotate(180deg)}
.cal-nv.nx svg{transform:none}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-w{text-align:center;font-size:10.5px;font-weight:800;color:var(--ink-soft);padding:3px 0}
.cal-d{aspect-ratio:1;border-radius:9px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:1px;font-size:12.5px;background:var(--surface-2);color:var(--ink-soft);
  text-decoration:none}
.cal-d.off{background:transparent}
.cal-d.has{background:var(--surface);border:1.5px solid var(--primary);color:var(--ink);font-weight:800}
.cal-d.on{background:var(--primary);border-color:var(--primary);color:#fff}
.cal-n{font-size:9.5px;background:var(--primary);color:#fff;border-radius:99px;padding:0 5px;line-height:1.5}
.cal-d.on .cal-n{background:#fff;color:var(--primary-d)}
.cal-note{font-size:11.5px;color:var(--ink-soft);margin-top:9px;line-height:1.7}

/* 報告書の一覧（当日＋カレンダー） */
.rp-row .rp-fm{font-size:14.5px;font-weight:800;margin-top:2px}
.rp-row .rp-t{font-size:11.5px;font-weight:800;color:var(--primary-d);line-height:1.55}
.rp-row .rp-sep{margin:0 6px;color:var(--line)}
.rp-row .rp-stf{font-size:11.5px;color:var(--ink-soft);margin-top:1px}
/* 矢印は rp-r の外。バッジと同じ高さで、たてに真ん中に置きます。 */
.rp-r{width:auto;min-width:74px}
.rp-chev{flex:none;display:flex;align-items:center;color:var(--ink-soft)}
.rp-chev svg{width:16px;height:16px}

/* ============ 報告書の詳細 ============ */
.rv-hd{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 17px;margin-bottom:11px}
.rv-hd .rv-top{display:flex;align-items:flex-start;gap:10px}
.rv-hd .rv-day{flex:1}
.rv-hd .rv-day .dd{font-size:22px;font-weight:800;line-height:1.25}
.rv-hd .rv-day .wk{font-size:12px;color:var(--ink-soft);font-weight:700}
.rv-st{font-size:11.5px;font-weight:800;border-radius:99px;padding:4px 12px;flex:none}
.rv-st.ok{background:#E9F5EE;color:#3F8A62}
.rv-st.dr{background:#FDF6EC;color:#B8823A}
.rv-times{margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}
.rv-t{display:flex;align-items:baseline;gap:12px;padding:3px 0}
.rv-t .k{width:92px;flex:none;font-size:11.5px;font-weight:700;color:var(--ink-soft)}
.rv-t .v{flex:1;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;min-width:0}
.rv-t .v.svc{font-size:13px;line-height:1.55;font-variant-numeric:normal}
.drow .v .lb{display:block;font-size:11.5px;color:var(--ink-soft);font-weight:700}
.det-none{color:var(--ink-soft);font-weight:400}
/* 報告書の詳細：ご家庭・訪問先・担当を右揃えの表に */
.rv-hd + .card .drow{padding:11px 15px;gap:12px}
.rv-hd + .card .drow .k{width:62px;flex:none;color:var(--ink-soft);font-size:12px;font-weight:700}
.rv-hd + .card .drow .v{flex:1;font-weight:700;text-align:right;font-size:13.5px}
/* 対象のお子さま：項目名を左、値を右に */
.rv-kid{display:flex;gap:12px;padding:11px 15px;border-top:1px solid var(--line);font-size:13.5px}
.rv-kid:first-child{border-top:none}
.rv-kid .k{width:80px;flex:none;color:var(--ink-soft);font-size:12px;font-weight:700}
.rv-kid .v{flex:1;font-weight:700;text-align:right}

/* ============ お知らせの一覧 ============ */
.ab-all{display:flex;align-items:center;justify-content:center;gap:3px;padding:11px;
  font-size:12.5px;font-weight:800;color:var(--primary-d);background:var(--surface-2);
  border-top:1px solid var(--line);text-decoration:none}
.ab-all svg{width:14px;height:14px}
.nt-todo{display:flex;align-items:center;gap:10px;padding:13px 15px;position:relative;
  border-top:1px solid var(--line);text-decoration:none;color:inherit}
.nt-todo:first-child{border-top:none}
.nt-todo .nt-l{flex:1;font-size:13.5px;font-weight:800}
.nt-todo .nt-c{background:var(--primary);color:#fff;border-radius:99px;
  padding:2px 10px;font-size:12px;font-weight:800}
.nt-todo .chev{position:static;transform:none;color:var(--ink-soft)}
.nt-row{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;position:relative;
  border-top:1px solid var(--line);text-decoration:none;color:inherit}
.nt-row:first-child{border-top:none}
.nt-row.unread{background:#FDF7F9}
.nt-row.unread .nt-title::before{content:'';display:inline-block;width:7px;height:7px;
  border-radius:50%;background:var(--primary);margin-right:6px;vertical-align:middle}
.nt-body{flex:1;min-width:0}
.nt-title{display:block;font-size:14px;font-weight:800;line-height:1.5}
.nt-text{display:block;font-size:12.5px;color:var(--ink-soft);line-height:1.7;margin-top:2px}
.nt-time{display:block;font-size:11px;color:var(--ink-soft);margin-top:3px;font-variant-numeric:tabular-nums}
.nt-row .chev{position:static;transform:none;color:var(--ink-soft);flex:none;align-self:center}

/* ============ 領収書チェック ============ */
.rc-row{display:flex;align-items:center;gap:10px;padding:13px 15px;border-top:1px solid var(--line);
  text-decoration:none;color:inherit}
.rc-row:first-child{border-top:none}
.rc-l{flex:1;min-width:0}
.rc-d{display:block;font-size:11.5px;font-weight:800;color:var(--primary-d)}
.rc-f{display:block;font-size:14.5px;font-weight:800;margin-top:2px}
.rc-s{display:block;font-size:11.5px;color:var(--ink-soft);margin-top:1px}
.rc-a{flex:none;text-align:right}
.rc-y{display:block;font-size:15px;font-weight:800}
.rc-b{display:inline-block;font-size:10.5px;font-weight:800;border-radius:99px;padding:2px 9px;margin-top:3px}
.rc-b.wait{background:#FDF6EC;color:#B8823A}
.rc-b.ok{background:#E9F5EE;color:#3F8A62}
.rc-chev{flex:none;display:flex;align-items:center;color:var(--ink-soft)}
.rc-chev svg{width:16px;height:16px}
/* プレビュー */
.rcp{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 15px;margin-bottom:12px}
.rcp-no{text-align:right;font-size:10px;color:var(--ink-soft);line-height:1.6}
.rcp-t{font-size:16px;font-weight:800;letter-spacing:.3em;margin:6px 0 10px}
.rcp-to{font-size:14px;font-weight:800;border-bottom:1px solid #555;padding-bottom:4px;margin-bottom:10px}
.rcp-amt{font-size:20px;font-weight:800;border:1.5px solid #555;border-radius:6px;padding:9px 12px;margin-bottom:9px}
.rcp-nt{font-size:11px;line-height:1.8;margin-bottom:11px}
.rcp-tb{width:100%;border-collapse:collapse;font-size:11.5px}
.rcp-tb th{background:var(--surface-2);text-align:left;padding:5px 7px;border:.5px solid var(--line);font-size:10.5px}
.rcp-tb td{padding:5px 7px;border:.5px solid var(--line)}
.rcp-tb td.n{text-align:right;width:78px}
.rcp-tb tr.sum td{font-weight:800;background:#FBF5F7}
.rcp-co{margin-top:11px;font-size:10.5px;line-height:1.75;color:#4B3740}
/* 編集 */
.rc-ed .f,.rc-ed .sec-title{text-align:left}
.rc-ed input{text-align:left}
.rc-li{display:flex;gap:7px;margin-bottom:7px;align-items:center}
.rc-li input.nm{flex:1;min-width:0}
.rc-li input.yn{width:96px;text-align:right}
.rc-li .del{flex:none;width:30px;height:40px;border:0;background:none;color:var(--ink-soft);font-size:17px;cursor:pointer;padding:0}
.rc-add{width:100%;border:1.5px dashed var(--line);background:var(--surface-2);border-radius:10px;
  padding:9px;font-family:inherit;font-size:12.5px;font-weight:800;color:var(--primary-d);cursor:pointer}
.rc-tot{display:flex;align-items:baseline;background:var(--surface-2);border-radius:11px;padding:11px 13px;margin-top:10px}
.rc-tot .k{flex:1;font-size:12px;color:var(--ink-soft);font-weight:700}
.rc-tot .v{font-size:20px;font-weight:800;color:var(--primary-d)}
.rc-warn{background:#FDF6EC;border:1px solid #E8D0A8;border-radius:11px;padding:11px 13px;
  font-size:11.5px;color:#7A5A22;line-height:1.8;margin-top:10px;text-align:left}
.rc-two{display:flex;gap:9px;margin-top:12px}
.rc-two .btn{flex:1;margin:0}

/* 領収書チェック：発行したもの（PDF・送信ログ） */
.rk-row{display:flex;align-items:center;gap:12px;padding:13px 15px;border-top:1px solid var(--line);
  text-decoration:none;color:inherit}
.rk-row:first-child{border-top:none}
.rk-row.as-head{background:var(--surface-2)}
.rk-ic{width:32px;height:32px;border-radius:50%;background:var(--surface-2);color:var(--primary-d);
  display:flex;align-items:center;justify-content:center;flex:none}
.rk-row.as-head .rk-ic{background:var(--surface)}
.rk-ic svg{width:16px;height:16px}
.rk-l{flex:1;min-width:0}
.rk-l b{display:block;font-size:14px;font-weight:800}
.rk-l small{display:block;font-size:11.5px;color:var(--ink-soft)}
.rk-chev{flex:none;display:flex;align-items:center;color:var(--ink-soft)}
.rk-chev svg{width:16px;height:16px}
.rk-log{display:flex;align-items:center;gap:10px;padding:10px 15px 10px 59px;
  border-top:1px solid var(--line);font-size:12.5px}
.rk-log.none{padding:12px 15px;color:var(--ink-soft);font-size:12px;line-height:1.75;display:block}
.rk-lt{flex:none;font-variant-numeric:tabular-nums;font-weight:800;color:var(--primary-d);font-size:11.5px}
.rk-la{flex:1;min-width:0;color:var(--ink-soft);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-lb{flex:none;font-size:10.5px;font-weight:800;border-radius:99px;padding:2px 9px}
.rk-lb.ok{background:#E9F5EE;color:#3F8A62}
.rk-lb.ng{background:#FDF3F2;color:#C0564E}

/* 時刻の欄：空のときの目印
   Safari は空の time を何も描かないため、こわれて見えます。
   入力されると自動で消えます。 */
.tm-wrap{position:relative;display:block;width:100%}
.tm-wrap > input[type=time]{width:100%}
.tm-ph{position:absolute;left:15px;top:50%;transform:translateY(-50%);
  color:var(--ink-soft);font-size:15px;pointer-events:none}
.tm-wrap.filled > .tm-ph{display:none}
/* 並べて置くときも、幅がそろうように */
.wish-two .tm-wrap,.two .tm-wrap,.rv-times .tm-wrap{flex:1;min-width:0}
.wish-two > input[type=date]{flex:1;min-width:0}

/* ============ 勤怠修正 ============ */
.mh{display:flex;align-items:center;justify-content:space-between;background:var(--surface);
  border:1px solid var(--line);border-radius:12px;padding:9px 12px;margin-bottom:12px}
.mh b{font-size:14.5px;font-weight:800}
/* 日付をタップしてカレンダーを出す */
.mh-day{display:flex;align-items:center;gap:7px;border:0;background:none;
  font-family:inherit;font-size:14.5px;font-weight:800;color:var(--ink);cursor:pointer;padding:4px 8px}
.mh-cal{display:flex;color:var(--primary-d)}
.mh-cal svg{width:15px;height:15px}
.mh-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}
.mh-nv{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);
  border-radius:9px;width:34px;height:32px;color:var(--primary-d)}
.mh-nv svg{width:16px;height:16px;transform:rotate(180deg)}
.mh-nv.nx svg{transform:none}
.tc-two{display:flex;gap:9px}
.tc-two .field{flex:1;min-width:0}
.tc-row{display:flex;align-items:center;gap:9px;padding:11px 13px;border-top:1px solid var(--line);margin:0}
.tc-row:first-child{border-top:none}
.tc-b{flex:none;font-size:11px;font-weight:800;border-radius:99px;padding:3px 10px}
.tc-b.in{background:#E9F5EE;color:#3F8A62}
.tc-b.out{background:#FDF3F2;color:#C0564E}
.tc-l{flex:1;min-width:0}
.tc-l input[type=time]{width:100%}
.tc-w{display:block;font-size:11px;color:var(--ink-soft);margin-top:3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-save{flex:none;border:1.5px solid var(--line);background:var(--surface);border-radius:9px;
  padding:8px 12px;font-family:inherit;font-size:12px;font-weight:800;color:var(--primary-d);cursor:pointer}
.tc-del{flex:none;border:0;background:none;color:var(--ink-soft);font-size:17px;
  width:28px;height:34px;cursor:pointer;padding:0}

/* ============ あとからキャンセル・キャンセル料 ============ */
.cx-late{display:flex;align-items:center;justify-content:center;gap:5px;padding:13px;
  font-size:12.5px;font-weight:800;color:#C0564E;background:#FDF3F2;text-decoration:none}
.cx-late svg{width:14px;height:14px}
.cx-warn{background:#FDF6EC;border:1px solid #E8D0A8;border-radius:11px;padding:11px 13px;
  font-size:11.5px;color:#7A5A22;line-height:1.85;margin-top:10px;text-align:left}
.cx-two{display:flex;gap:9px;margin-top:13px}
.cx-two .btn{flex:1;margin:0;display:flex;align-items:center;justify-content:center}
/* キャンセル料の一覧 */
.cf-row{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;border-top:1px solid var(--line)}
.cf-row:first-child{border-top:none}
.cf-l{flex:1;min-width:0}
.cf-d{font-size:11.5px;font-weight:800;color:var(--primary-d)}
.cf-f{font-size:14.5px;font-weight:800;margin-top:2px}
.cf-s{font-size:11.5px;color:var(--ink-soft);margin-top:1px}
.cf-n{font-size:11.5px;color:var(--ink-soft);margin-top:4px;line-height:1.7}
.cf-a{flex:none;text-align:right}
.cf-y{font-size:15px;font-weight:800;margin-bottom:6px}
.cf-a form{margin:0}
.cf-btn{border:0;background:var(--primary);color:#fff;border-radius:10px;padding:8px 13px;
  font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.cf-undo{border:1.5px solid var(--line);background:var(--surface);color:var(--ink-soft);
  border-radius:10px;padding:8px 13px;font-family:inherit;font-size:12px;font-weight:800;
  cursor:pointer;white-space:nowrap}

/* シフト希望：ご予定が入っていて外せない時間の案内 */
.lockbox{background:#FFF4E5;border:1px solid #F0DCC0;border-radius:12px;padding:12px 14px;margin:4px 0 14px}
.lockbox-t{font-size:12.5px;font-weight:800;color:#8A5A12;margin-bottom:6px}
.lockbox-r{font-size:13px;color:#4A3138;line-height:1.7}

/* 優先順位：2位・3位は任意であることを、番号の下に小さく添える */
.rank-list .rank-no{width:auto;min-width:30px}
.rank-opt{display:block;font-size:9.5px;font-weight:700;line-height:1.1;margin-top:2px;color:#9b8790}


/* 画面いっぱいに広げる指定（layout_top の第2引数が true のとき）
   スマートフォンではこれまで通り。タブレット・パソコンで広く使います。 */
@media (min-width:700px){
  .app.is-wide{max-width:100%;padding-left:12px;padding-right:12px}
}
@media (min-width:1200px){
  .app.is-wide{max-width:1600px;padding-left:24px;padding-right:24px}
}

/* ── シフト（月間・全員） admin/shifts ──
   日別の画面が .sb- を使っているので、こちらは .bd- で始めています。 */
.bd-head{display:flex;align-items:center;justify-content:center;gap:14px;margin:4px 0 8px}
.bd-ym{font-size:16px;font-weight:800;min-width:110px;text-align:center}
.bd-nav{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;
  border-radius:10px;background:#fff;border:1px solid #EEE0E5}
.bd-nav svg{width:16px;height:16px}
.bd-nav.prev svg{transform:rotate(180deg)}
.bd-legend{display:flex;gap:14px;justify-content:center;font-size:11.5px;color:#7a6068;margin-bottom:10px}
.bd-legend i.bd-key{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.bd-key.k-wish{background:#EFEAF0}
.bd-key.k-ok{background:#D98BA6}
.bd-key.k-tt{background:#F0C68A}
.bd-key.k-off{background:#DDD}

/* 表の中でスクロールさせます。そうしないと、日付の見出しを上に貼りつけられません。
   高さは、下のメニューとスクロールバーのぶんを空けて、JSで実測して入れます。
   （下は、JSが動かなかったときの控えです） */
.bd-area{position:relative}
/* bd-clip が枠線と角丸を持ち、はみ出したぶんを切り落とします。
   表そのものの横スクロールバーは、この外に追い出して見えなくします。 */
.bd-clip{overflow:hidden;background:#fff;border-radius:12px 12px 0 0;
  border:1px solid #EEE0E5;border-bottom:0;max-height:calc(100vh - 330px);min-height:240px}
.bd-wrap{overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;
  max-height:calc(100vh - 330px);min-height:240px}
table.bd{border-collapse:separate;border-spacing:0;table-layout:fixed}
table.bd th,table.bd td{border-right:1px solid #F0E6EA;border-bottom:1px solid #F0E6EA;
  padding:0;margin:0;vertical-align:top}
table.bd thead th{position:sticky;top:0;z-index:3;background:#F7F1F3;height:36px;
  font-size:11px;font-weight:700;vertical-align:middle;text-align:center}
table.bd thead th b{display:block;font-size:13px;line-height:1.15}
table.bd thead th span{display:block;font-size:10px;color:#8b757e;line-height:1.15}
table.bd .bd-nm{position:sticky;left:0;z-index:2;background:#fff;width:82px;min-width:82px;
  text-align:left;padding:6px 8px;font-size:11.5px;font-weight:700;white-space:nowrap;
  vertical-align:middle}
table.bd thead .bd-nm{z-index:4;background:#F7F1F3}
.bd-day{width:96px;min-width:96px}
.bd-day.is-sat,.bd-cell.is-sat{background:#F2F6FA}
.bd-day.is-sun,.bd-cell.is-sun{background:#FCF1F1}
.bd-cell{padding:4px;height:52px}
.bd-cell.is-off{background:#F0EEEE}
.bd-mark{font-size:12px;color:#b8a8ae;text-align:center;line-height:1.8}
.bd-wish{font-size:10.5px;color:#7a6068;background:#EFEAF0;border-radius:5px;
  padding:1px 4px;margin-bottom:3px;white-space:nowrap;text-align:center;line-height:1.5}
.bd-ap{display:block;width:100%;border:0;border-radius:6px;background:#D98BA6;color:#fff;
  font-family:inherit;font-size:10.5px;font-weight:700;padding:3px 5px;margin-bottom:3px;
  text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;line-height:1.5}
.bd-ap.is-tt{background:#F0C68A;color:#6B4A16}
.bd-ap .bd-t{margin-right:4px}
@media (min-width:700px){
  .bd-day{width:110px;min-width:110px}
  table.bd .bd-nm{width:104px;min-width:104px;font-size:12.5px}
  .bd-ap,.bd-wish{font-size:11.5px}
}

.bd-sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}
.bd-sheet[hidden]{display:none}
.bd-sheet-bg{position:absolute;inset:0;background:rgba(74,49,56,.45)}
.bd-sheet-box{position:relative;width:100%;max-width:360px;background:#fff;border-radius:18px;
  padding:16px 18px 20px;max-height:80vh;overflow:auto;box-shadow:0 18px 40px rgba(74,49,56,.25)}
.bd-sheet-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.bd-badge{font-size:10.5px;font-weight:800;border-radius:99px;padding:3px 10px;background:#FBE9F0;color:#A65E7E}
.bd-badge.is-tt{background:#FFF4E5;color:#8A5A12}
.bd-x{border:0;background:none;font-size:16px;color:#9b8790;cursor:pointer;padding:4px 6px}
.bd-sheet-d{font-size:13px;color:#7a6068}
.bd-sheet-f{font-size:18px;font-weight:800;margin:2px 0 12px}
.bd-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;
  border-top:1px solid #F3EBEE;font-size:13px}
.bd-row>span{color:#8b757e;white-space:nowrap}
.bd-row>b{text-align:right;font-weight:700}

/* シフト（月間）の横スクロールバーと備考
   iOS・macOS は触っていないとバーが消えるので、自前のものを下に置いています。 */
.bd-sbar{position:relative;height:14px;border-radius:0 0 12px 12px;background:#F1E7EB;
  margin:0 0 18px;cursor:pointer;border:1px solid #EEE0E5;border-top:0}
.bd-thumb{position:absolute;top:3px;left:0;height:8px;border-radius:99px;background:#C99BAD;
  min-width:40px;cursor:grab}
.bd-thumb:active{cursor:grabbing;background:#B8869B}
.bd-print{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px}
.bd-print svg{width:16px;height:16px}
.bd-note{display:flex;gap:10px;align-items:baseline;padding:9px 14px;border-bottom:1px solid var(--line);font-size:13px}
.bd-note:last-child{border-bottom:0}
.bd-note .d{flex:0 0 auto;color:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums}
.bd-note .s{flex:0 0 auto;font-weight:700}
.bd-note .n{flex:1;min-width:0;color:var(--ink-soft)}
/* 縦のバーの見た目（横のバーは bd-clip で切り落としています） */
#bdWrap{scrollbar-color:#C99BAD #F1E7EB}
#bdWrap::-webkit-scrollbar{width:10px;-webkit-appearance:none}
#bdWrap::-webkit-scrollbar-track{background:#F1E7EB;border-radius:99px}
#bdWrap::-webkit-scrollbar-thumb{background:#C99BAD;border-radius:99px;border:2px solid #F1E7EB}

/* 予定：その月の内訳。カレンダーと同じ枠のなかに出します。
   ひとつの grid にまとめているので、上下の列が必ず揃います。
   1行目がサービス区分、そのあとに区切り線、2行目が面談・仮予約・キャンセル。 */
.mcnt{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));row-gap:14px;
  background:var(--surface);border:1px solid var(--line);border-radius:18px;
  padding:16px 10px;box-shadow:var(--shadow);margin-bottom:14px}
.mcnt-hr{grid-column:1/-1;height:1px;background:var(--line)}
.mcnt-c{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 4px}
.mcnt-c .n{font-size:21px;font-weight:700;color:var(--ink);line-height:1;
  font-variant-numeric:tabular-nums}
.mcnt-c .l{font-size:11px;color:var(--ink-soft);line-height:1.3;text-align:center}
.mcnt-c.iv .n{color:#6B5AA6}
.mcnt-c.tt .n{color:#8A5A12}
.mcnt-c.cx .n{color:#C0564E}

/* 端末の通知がオフのときに出る帯（アプリバーのすぐ下） */
.pushbar{display:flex;align-items:center;gap:10px;margin:0 18px 12px;padding:10px 12px;
  background:#FFF4E5;border:1px solid #F0DCC0;border-radius:12px}
.pushbar[hidden]{display:none}
.pushbar .t{flex:1;min-width:0;font-size:12px;font-weight:700;color:#8A5A12;line-height:1.4}
.pushbar .b{flex:none;border:0;border-radius:99px;background:#8A5A12;color:#fff;
  font-family:inherit;font-size:11.5px;font-weight:800;padding:7px 13px;cursor:pointer}

/* 画面の上に貼り付ける見出し（利用者一覧の 件数＋検索ボックス など）
   アプリバーのすぐ下に貼り付き、その下だけがスクロールします。
   --abh は app.js がアプリバーの高さを測って入れます。 */
.stickyhead{position:sticky;top:var(--abh,64px);z-index:20;
  margin:calc(var(--abgap, 16px) * -1) -18px 0;
  padding:var(--abgap, 16px) 18px 12px;background:var(--bg)}
.stickyhead .searchbar{margin-bottom:0}

/* 住所から地図をひらく入口（利用者の詳細・サポーターの画面）
   すぐ下の「住所を編集」は枠のあるボタン。こちらは文字のリンクにして、
   見た目でも役割でも取り違えないようにしています。 */
.map-row{padding-top:13px;padding-bottom:13px}
.map-link{display:inline-flex;align-items:center;gap:5px;
  font-size:12.5px;font-weight:700;color:var(--primary-d);
  border-bottom:1px solid rgba(166,94,126,.35);padding-bottom:1px}
.map-link svg{width:13px;height:13px;flex:none}
.map-link:active{opacity:.6}

/* 上に引っ張っても、ヘッダーより上には動かないようにします。
   iOS Safari のラバーバンド（引っ張ると跳ねる動き）を止めます。
   ヘッダーは position:sticky なので、跳ねると一緒に下がって見えていました。 */
html,body{overscroll-behavior-y:none;overscroll-behavior-x:none}
body{position:relative}

/* 実績：日付をタップしたときの詳細
   画面の中央に出し、右上に閉じるボタンを置きます。
   中の1件ずつは、文字は左揃えのまま、かたまりごと中央に置いています。 */
.wkm{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:20px}
.wkm.show{display:flex}
.wkm-bg{position:absolute;inset:0;background:rgba(74,49,56,.45)}
.wkm-box{position:relative;width:100%;max-width:340px;background:var(--surface);border-radius:18px;
  padding:18px 18px 16px;max-height:78vh;overflow:auto;box-shadow:0 18px 40px rgba(74,49,56,.25)}
.wkm-x{position:absolute;top:10px;right:10px;width:32px;height:32px;border:0;border-radius:50%;
  background:var(--surface-2);color:var(--ink-soft);font-size:14px;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.wkm-d{font-size:16px;font-weight:800;margin:0 34px 12px 0}
.wkm-hol{display:inline-block;font-size:11px;font-weight:800;color:#C2607E;
  background:#FCF1F1;border-radius:99px;padding:3px 10px;margin-bottom:10px}
.wkm-empty{font-size:13px;color:var(--ink-soft);padding:14px 0}
.wkm-row{padding:13px 0;border-top:1px solid var(--line)}
.wkm-row:first-of-type{border-top:0;padding-top:2px}
.wkm-in{width:fit-content;max-width:100%;margin:0 auto;text-align:left}
.wkm-t{font-size:14.5px;font-weight:800;line-height:1.4}
.wkm-t small{font-size:12px;font-weight:400;color:var(--ink-soft)}
.wkm-row.is-office .wkm-t{color:#8A5A12}
.wkm-l{display:flex;align-items:baseline;gap:10px;margin-top:6px}
.wkm-l span{flex:0 0 62px;font-size:12px;color:var(--ink-soft)}
.wkm-l b{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;min-width:0;overflow-wrap:anywhere}

/* 実績：今月の記録
   4つの数字を、同じ体裁の枠に2つずつ並べます。
   塗り分けも色分けもせず、大きさもそろえています。 */
.ern-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:2px}
.ern-box{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.ern-l{font-size:11.5px;font-weight:700;color:var(--ink-soft)}
.ern-v{margin-top:3px;font-size:22px;font-weight:800;line-height:1.15;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.ern-u{font-size:13px;font-weight:700;margin-left:2px}
.ern-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.ern-note p{font-size:11.5px;color:var(--ink-soft);line-height:1.7;margin:0 0 5px}
.ern-note p:last-child{margin-bottom:0}

/* ── 予定の詳細（デモ）──────────────────────────
   ふだんは読むだけ。編集はモーダルで開きます。 */
.ap-head{display:flex;align-items:center;gap:10px;margin:18px 0 10px}
.ap-head:first-of-type{margin-top:0}
.ap-h-t{flex:1;font-size:18px;font-weight:800}
.ap-edit{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);
  background:#fff;border-radius:99px;padding:8px 14px;font-family:inherit;
  font-size:12.5px;font-weight:700;color:var(--primary-d);cursor:pointer}
.ap-edit svg{width:14px;height:14px}

.ro-row{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-top:1px solid var(--line)}
.ro-row:first-of-type{border-top:0;padding-top:2px}
.ro-row>span{flex:0 0 92px;font-size:12px;color:var(--ink-soft);font-weight:700}
.ro-row>b{flex:1;min-width:0;font-size:14.5px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.ro-empty{font-size:13px;color:var(--ink-soft);padding:6px 0}
.ro-row.est>span{flex:1;min-width:0}
.ro-row.est>span small{display:block;font-size:11px;font-weight:400;margin-top:1px}
.ro-row.est>b{flex:0 0 auto;text-align:right;font-variant-numeric:tabular-nums}
.ro-row.est.is-total>span{color:var(--ink);font-size:13px}
.ro-row.est.is-total>b{font-size:18px;color:var(--primary-d)}
.us-badge{display:inline-block;font-size:12.5px;font-weight:800;border-radius:99px;padding:4px 12px}
.us-badge.is-plan{background:#FBEAF0;color:#A65E7E}
.us-badge.is-tt{background:#FFF4E5;color:#8A5A12}
.us-badge.is-done{background:#EFEAF0;color:#6B5AA6}
.us-badge.is-cx{background:#FBE9E9;color:#C0564E}
.btn.danger{background:#C0564E;color:#fff;border:0}

/* 編集のモーダル。閉じるボタンは、上に貼りついたまま動きません。 */
.apm{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}
.apm[hidden]{display:none}
.apm-bg{position:absolute;inset:0;background:rgba(74,49,56,.45)}
.apm-box{position:relative;width:100%;max-width:480px;max-height:86vh;background:var(--bg);
  border-radius:18px;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 18px 48px rgba(74,49,56,.28)}
.apm-head{flex:0 0 auto;display:flex;align-items:center;gap:10px;
  padding:14px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.apm-t{flex:1;font-size:16px;font-weight:800}
.apm-x{flex:0 0 auto;width:34px;height:34px;border:0;border-radius:50%;
  background:var(--surface-2);color:var(--ink-soft);font-size:15px;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.apm-body{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px 8px}
.apm-foot{flex:0 0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:10px;
  padding:12px 16px calc(14px + env(safe-area-inset-bottom));
  background:var(--surface);border-top:1px solid var(--line)}
.apm-foot .btn{margin:0}

/* 確認のダイアログ */
.ap-ask{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:24px}
.ap-ask[hidden]{display:none}
.ap-ask-bg{position:absolute;inset:0;background:rgba(74,49,56,.45)}
.ap-ask-box{position:relative;width:100%;max-width:320px;background:#fff;border-radius:18px;
  padding:22px 20px 16px;text-align:center;box-shadow:0 18px 40px rgba(74,49,56,.25)}
.ap-ask-t{font-size:15.5px;font-weight:800;line-height:1.5}
.ap-ask-s{margin-top:8px;font-size:11.5px;color:var(--ink-soft);line-height:1.6}
.ap-ask-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
.ap-yes,.ap-yes2,.ap-no{border:0;border-radius:12px;padding:13px 0;font-family:inherit;
  font-size:14.5px;font-weight:800;cursor:pointer}
.ap-yes{background:#C0564E;color:#fff}
.ap-yes2{background:var(--primary);color:#fff}
.ap-no{background:var(--surface-2);color:var(--ink)}
/* チェックの欄も、中は白にします。
   入っているときは、枠と文字の色で分かるようにします。 */
.chk,.chk.on,.nom-chk{background:#fff}
.chk.on,.nom-chk:has(input:checked){border-color:var(--primary);background:#fff}
.nom-chk:has(input:checked){color:var(--primary-d)}
.fam-picked{background:#fff;border:1px solid var(--line)}
.ap-back{width:100%;margin-top:10px;border:0;background:none;font-family:inherit;
  font-size:12.5px;font-weight:700;color:var(--ink-soft);padding:8px 0;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px}
.cx-by{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px}
.cx-by .chk{margin:0}

/* 利用状況の行に付ける、小さな入口 */
.ro-edit{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);
  background:#fff;border-radius:99px;padding:6px 12px;font-family:inherit;
  font-size:11.5px;font-weight:700;color:var(--primary-d);cursor:pointer}
.ro-edit svg{width:12px;height:12px}
.ro-dim{color:var(--ink-soft);font-weight:400;font-size:13px}
.apm-box.short{max-height:76vh}
.apm-back{flex:0 0 auto;width:34px;height:34px;border:0;border-radius:50%;background:var(--surface-2);
  color:var(--ink-soft);cursor:pointer;display:flex;align-items:center;justify-content:center}
.apm-back svg{width:15px;height:15px}

/* キャンセルか削除かを選ぶところ */
.pick{display:flex;flex-direction:column;gap:12px}
.pick-btn{display:block;width:100%;text-align:left;border:1.5px solid var(--line);border-radius:14px;
  background:#fff;padding:16px 18px;font-family:inherit;cursor:pointer}
.pick-btn .pick-t{display:block;font-size:15px;font-weight:800;color:var(--primary-d)}
.pick-btn .pick-s{display:block;margin-top:6px;font-size:11.5px;color:var(--ink-soft);line-height:1.7}
.pick-btn.is-danger .pick-t{color:#C0564E}
.pick-btn:active{transform:scale(.995)}
/* display を持つ要素は、hidden だけでは消えないので明示します */
.apm-foot[hidden],.apm-back[hidden],.pick[hidden],.ro-edit[hidden]{display:none}

/* 移動距離：未登録だけ／すべて の切り替え */
.tv-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--surface-2);
  border-radius:12px;padding:4px;margin-bottom:12px}
.tv-opt{display:block;text-align:center;padding:9px 0;border-radius:9px;
  font-size:13px;font-weight:700;color:var(--ink-soft)}
.tv-opt.on{background:#fff;color:var(--primary-d);box-shadow:0 1px 3px rgba(74,49,56,.12)}

/* 領収書チェック：まだ作られていないご利用 */
.rc-pend{padding:9px 0;border-top:1px solid var(--line)}
.rc-pend:first-of-type{border-top:0;padding-top:0}
.rc-pend-t{font-size:14px;font-weight:700}
.rc-pend-s{margin-top:2px;font-size:11.5px;color:var(--ink-soft)}

/* 管理者とサポーターの切り替え。
   ボタンのすぐ下に、小さく開きます。
   切り替えを置くと幅が足りなくなるので、アプリ名は縮めて出します。 */
.appbar .appname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appbar .ab-actions{flex:0 0 auto}

.rv-wrap{position:relative;flex:0 0 auto}
.rv-btn{display:inline-flex;align-items:center;gap:4px;
  border:0;border-radius:99px;padding:7px 11px;
  background:var(--surface-2);font-family:inherit;
  font-size:11.5px;font-weight:800;color:var(--primary-d);
  cursor:pointer;white-space:nowrap;transition:.15s}
.rv-btn svg{width:11px;height:11px;opacity:.55;transform:rotate(90deg)}
.rv-btn:active{transform:scale(.97)}

.rv-pop{display:none;position:absolute;top:calc(100% + 8px);right:0;z-index:50;
  min-width:132px;background:#fff;border-radius:12px;padding:5px;
  box-shadow:0 8px 24px rgba(74,49,56,.18);border:1px solid var(--line)}
.rv-pop.show{display:block}
.rv-item{display:block;width:100%;text-align:left;border:0;background:none;
  border-radius:8px;padding:10px 12px;font-family:inherit;
  font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;white-space:nowrap}
.rv-item:active{background:var(--surface-2)}
.rv-item.on{color:var(--primary-d);background:var(--surface-2)}
.rv-item.on::after{content:'✓';float:right;margin-left:10px;font-weight:800}
.ab-note{font-size:11.5px;color:var(--ink-soft);line-height:1.6;padding:4px 2px 2px}

/* 戻るボタンを、画面の上に貼り付けます。
   下に長い画面でも、いつでも戻れるようにしています。
   --abh はアプリバーの高さ、--abgap はその下の余白です（app.js が測ります）。
   is-stuck を付けなくても、すべての「戻る」に効きます。 */
.backbtn{position:sticky;top:var(--abh,64px);z-index:20;
  margin:calc(var(--abgap, 16px) * -1) -18px 12px;
  padding:calc(var(--abgap, 16px) + 6px) 18px 10px;background:var(--bg)}

/* ギフトカードの行 */
.ro-row.est.is-gift>b{color:#2F7D5C}
.ro-row.est.is-cash{border-top:1px solid var(--line)}
.ro-row.est.is-cash>span{color:var(--ink);font-size:13px;font-weight:700}
.ro-row.est.is-cash>b{font-size:18px}

/* サポーターに出す「当日お預かりする金額」 */
.cash-card{text-align:center}
.cash-l{font-size:12px;font-weight:700;color:var(--ink-soft)}
.cash-v{margin:4px 0 10px;font-size:30px;font-weight:800;color:var(--primary-d);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ギフトカードの残高（ご利用者さまのホーム） */
.gc-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.gc-no{font-size:12.5px;font-weight:800;color:var(--ink-soft);letter-spacing:.02em}
.gc-exp{font-size:11.5px;color:var(--ink-soft)}
.gc-bal{margin:6px 0 10px;font-size:30px;font-weight:800;color:var(--primary-d);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ギフトカードの一覧 */
.gl-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid var(--line)}
.gl-row:first-of-type{border-top:0}
.gl-main{flex:1;min-width:0}
.gl-t{font-size:14.5px;font-weight:700}
.gl-s{margin-top:2px;font-size:11.5px;color:var(--ink-soft)}
.gl-soon{margin-left:6px;font-size:10.5px;font-weight:800;color:#8A5A12;
  background:#FFF1E3;border-radius:99px;padding:2px 8px}
.gl-bal{flex:0 0 auto;font-size:16px;font-weight:800;color:var(--primary-d);
  font-variant-numeric:tabular-nums}
.gl-bal.is-off{color:var(--ink-soft)}
.gl-row svg{width:14px;height:14px;flex:none;color:var(--ink-soft)}
.gl-done summary{font-size:13px;font-weight:700;color:var(--primary-d);cursor:pointer;padding:2px 0 10px}
.gl-done[open] summary{margin-bottom:4px}
/* まもなく期限のバッジは、黄色系にします */
.hm-badge.is-warn{background:#F0B429;color:#4A3138}

/* ギフトカードに添えられた、贈り主のお名前とメッセージ */
.gc-msg{margin:2px 0 12px;padding:13px 15px;background:var(--surface-2);border-radius:12px}
.gc-from{font-size:11.5px;font-weight:800;color:var(--primary-d);margin-bottom:5px}
.gc-body{font-size:13px;line-height:1.85;color:var(--ink)}

/* ギフトカードの使用履歴 */
.gu-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding-bottom:12px;border-bottom:1px solid var(--line)}
.gu-head>span{font-size:12px;font-weight:700;color:var(--ink-soft)}
.gu-head>b{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}

.gu-item{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.gu-date{flex:0 0 66px;font-size:11.5px;color:var(--ink-soft);font-weight:700;
  font-variant-numeric:tabular-nums;padding-top:2px}
.gu-body{flex:1;min-width:0}
.gu-t{font-size:14px;font-weight:700;line-height:1.4}
.gu-s{margin-top:2px;font-size:11.5px;color:var(--ink-soft);line-height:1.5}
.gu-amt{flex:0 0 auto;font-size:14.5px;font-weight:800;font-variant-numeric:tabular-nums;padding-top:1px}
.gu-amt.is-plus{color:#2F7D5C}
.gu-del{flex:0 0 22px;display:flex;justify-content:flex-end}
.gu-del button{border:0;background:none;color:var(--ink-soft);font-size:12px;cursor:pointer;padding:2px}

.gu-total{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:14px}
.gu-total>span{font-size:13px;font-weight:700}
.gu-total>b{font-size:22px;font-weight:800;color:var(--primary-d);font-variant-numeric:tabular-nums}


/* 保存する前のお見積（金額のプレビュー） */
.ep{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.ep[hidden]{display:none}
.ep-h{font-size:11.5px;font-weight:800;color:var(--ink-soft);margin-bottom:8px}
.ep-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 0;
  border-top:1px solid var(--line)}
.ep-row:first-child{border-top:0;padding-top:0}
.ep-row>span{flex:1;min-width:0;font-size:13px;font-weight:700}
.ep-row>span small{display:block;font-size:11px;font-weight:400;color:var(--ink-soft);margin-top:1px}
.ep-row>b{flex:0 0 auto;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
.ep-total{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  margin-top:10px;padding-top:11px;border-top:1px solid var(--line)}
.ep-total>span{font-size:13px;font-weight:700}
.ep-total>b{font-size:20px;font-weight:800;color:var(--primary-d);font-variant-numeric:tabular-nums}

/* モニターでのご利用の金額 */
.mn-fee{margin-top:10px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:12px}
.mn-fee[hidden]{display:none}
.mn-fee .f{margin-bottom:6px}
/* モニターのときに隠す欄（display を持つので、hidden だけでは消えません） */
.js-nom[hidden],.js-ext[hidden]{display:none}

/* 面談の変更・キャンセルのボタン */
.iv-btns{display:grid;gap:8px;margin-top:12px}
.iv-btns .btn{margin:0}
/* 白い枠のボタン（画面の移動に使うもの） */
.btn.ghost.plain{background:#fff}

/* ご利用のご希望（日付ごと） */
.pl-head{display:flex;align-items:center;gap:10px;margin:18px 0 8px}
.pl-date{flex:1;font-size:15px;font-weight:800}
.pl-cnt{margin-left:8px;font-size:11.5px;font-weight:800;color:var(--primary-d);
  background:var(--surface-2);border-radius:99px;padding:3px 10px}
.pl-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line)}
.pl-row:first-child{border-top:0}
.pl-t{flex:0 0 44px;font-size:12.5px;font-weight:800;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.pl-b{flex:1;min-width:0}
.pl-n{display:block;font-size:14px;font-weight:700}
.pl-s{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-soft)}
.pl-row svg{width:14px;height:14px;flex:none;color:var(--ink-soft)}

/* この日のプラン */
.pm-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;background:var(--surface-2);
  border-radius:12px;padding:4px;margin-bottom:12px}
.pm-opt{display:block;text-align:center;padding:9px 2px;border-radius:9px;
  font-size:11.5px;font-weight:700;color:var(--ink-soft);line-height:1.3}
.pm-opt.on{background:#fff;color:var(--primary-d);box-shadow:0 1px 3px rgba(74,49,56,.12)}
.pm-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;margin-bottom:10px}
.pm-sum span{display:block;font-size:11px;color:var(--ink-soft);font-weight:700}
.pm-sum b{display:block;margin-top:3px;font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
.pm-row{display:flex;align-items:flex-start;gap:10px;padding:13px 16px;border-top:1px solid var(--line)}
.pm-row:first-child{border-top:0}
.pm-t{flex:0 0 40px;font-size:12.5px;font-weight:800;color:var(--ink-soft);
  font-variant-numeric:tabular-nums;padding-top:2px}
.pm-b{flex:1;min-width:0}
.pm-n{display:block;font-size:14px;font-weight:700}
.pm-s{display:block;margin-top:2px;font-size:11px;color:var(--ink-soft)}
.pm-p{flex:0 0 auto;text-align:right}
.pm-p b{display:block;font-size:13.5px;font-weight:800}
.pm-p small{display:block;margin-top:2px;font-size:11px;color:var(--ink-soft)}
.pm-x{color:var(--ink-soft)}
.pm-row.is-none{background:var(--surface-2)}
.ro-row b small{display:block;font-size:11px;font-weight:400;color:var(--ink-soft);margin-top:2px}
.pm-sum.is4{grid-template-columns:repeat(4,1fr)}
.pm-warn{color:#C0564E}
.pm-p small.pm-warn{font-weight:700}

/* ホームのカードを、予定・タスク・データの3つに分けています。
   見出しとカード、セクションどうしの間に、しっかり余白を取ります。 */
.hm-sec{margin-top:34px}
.hm-sec:first-of-type{margin-top:6px}
.hm-sec>.eyebrow{margin-bottom:14px}
.pm-pane[hidden]{display:none}
.pm-opt{border:0;font-family:inherit;cursor:pointer;background:none;width:100%}

/* タップしたことが、すぐ伝わるように */
.is-tapped{transform:scale(.985);transition:transform .06s}
.is-waiting{opacity:.55;transition:opacity .15s}
/* 優先度は4つ。スマホでも1行に収まるようにします。 */
.pm-seg{grid-template-columns:repeat(4,1fr);gap:3px;padding:3px}
.pm-opt{padding:9px 1px;font-size:11px;letter-spacing:-.02em}
.pm-sum.is4 span{font-size:10.5px;white-space:nowrap}
.pm-sum.is4 b{font-size:15px}

/* お知らせの吹き出し。
   これまで absolute だったため、スクロールすると一緒に流れて
   下へ行くほど画面から外れていました。
   アプリバーの下に貼り付けて、開いているあいだは後ろを動かしません。 */
.ab-menu{position:fixed;top:var(--abh,66px);
  /* 中身は .app（幅480px・中央）の中にあります。
     画面の右端ではなく、その枠の右端に合わせます。
     パソコンで開いたときに、画面の外へ飛び出さないようにするためです。 */
  right:max(14px, calc(50vw - 240px + 14px));left:auto;
  max-height:min(70vh, calc(100vh - var(--abh,66px) - 24px));
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  width:min(320px, calc(100vw - 28px), calc(480px - 28px));min-width:0}

/* シフトの履歴 */
.sl-row{display:flex;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.sl-row:first-of-type{border-top:0;padding-top:2px}
.sl-when{flex:0 0 42px;font-size:11.5px;font-weight:800;color:var(--ink-soft);
  line-height:1.35;font-variant-numeric:tabular-nums}
.sl-when span{font-weight:400}
.sl-body{flex:1;min-width:0}
.sl-t{font-size:13.5px;font-weight:700}
.sl-s{margin-top:2px;font-size:11.5px;color:var(--ink-soft);line-height:1.6}
.sl-by{margin-top:3px;font-size:11px;color:var(--primary-d);font-weight:700}
.bd-cell[data-sh]{cursor:pointer}
/* 3つ並ぶ確認ボタン */
.ap-ask-btns.is3{grid-template-columns:1fr 1fr;gap:8px}
.ap-ask-btns.is3 button:last-child{grid-column:1/-1}

/* プランの候補 */
.pm-item{border-top:1px solid var(--line)}
.pm-item:first-of-type{border-top:0}
.pm-item .pm-row{border-top:0}
.pm-row.has-more{cursor:pointer}
.pm-more{flex:0 0 auto;display:flex;align-items:center;gap:2px;
  font-size:10.5px;font-weight:700;color:var(--ink-soft);padding-top:3px}
.pm-more svg{width:12px;height:12px;transition:transform .15s}
.pm-row.is-open .pm-more svg{transform:rotate(90deg)}
.pm-cands{padding:4px 16px 14px;background:var(--surface-2)}
.pm-cands[hidden]{display:none}
.pm-cand{display:grid;grid-template-columns:14px 1fr 52px 52px 64px;align-items:baseline;gap:6px;
  padding:7px 0;border-top:1px solid var(--line)}
.pm-cand:first-child{border-top:0}
.pm-cand.is-head{padding:2px 0 6px;border-top:0}
.pm-cand.is-head span{font-size:10.5px;font-weight:700;color:var(--ink-soft);text-align:right}
.pm-mk{font-size:12px;color:var(--ink-soft)}
.pm-cand.is-pick .pm-mk{color:var(--primary)}
.pm-cn{min-width:0;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-c1,.pm-c2{font-size:11px;color:var(--ink-soft);text-align:right;font-variant-numeric:tabular-nums}
.pm-c3{font-size:12.5px;font-weight:800;text-align:right;font-variant-numeric:tabular-nums}
.pm-item.is-none{background:var(--surface-2)}
.pm-item.is-none .pm-row{background:none}

/* プランの1件。第一候補は常に見えていて、押すと続きが出ます。 */
.pm-head{display:flex;align-items:flex-start;gap:10px;padding:13px 16px 6px}
.pm-head.has-more{cursor:pointer}
.pm-head.is-open .pm-more svg{transform:rotate(90deg)}
.pm-cands{padding:0 16px 12px;background:none}
.pm-rest[hidden]{display:none}
.pm-empty{padding:2px 16px 14px;font-size:14px;font-weight:700;color:var(--ink-soft)}
.pm-empty small{font-size:11px;font-weight:400}

/* 公式LINE（エルメ）のご予約がまだのご予定がある日。
   カレンダーの右上に、小さな赤い丸を出します。これから先の日だけです。 */
.cal-cell{position:relative}
.cal-line{position:absolute;top:5px;right:5px;width:7px;height:7px;
  border-radius:50%;background:#C0564E}
/* 予定の詳細で「まだです」を目立たせます */
.ln-yet{color:#C0564E}
/* 一覧での「公式LINE まだ」 */
.ap-line{display:inline-block;margin-top:4px;font-size:10.5px;font-weight:800;
  color:#C0564E;background:#FCEDEC;border-radius:99px;padding:2px 9px}

/* キャンセルされた面談。お名前と日時だけを並べ、押すと詳細が開きます。 */
.cx-row{display:flex;align-items:center;gap:12px;padding:13px 16px;
  border-top:1px solid var(--line);cursor:pointer}
.cx-row:first-child{border-top:0}
.cx-main{flex:1;min-width:0}
.cx-name{font-size:14.5px;font-weight:700}
.cx-when{margin-top:2px;font-size:11.5px;color:var(--ink-soft)}
.cx-row svg{width:14px;height:14px;flex:none;color:var(--ink-soft)}

/* 月の切り替え */
.mo-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:8px 10px;margin-bottom:12px}
.mo-ym{flex:1;text-align:center;font-size:15px;font-weight:800}
.mo-arw{flex:0 0 40px;text-align:center;font-size:20px;font-weight:800;
  color:var(--primary-d);padding:2px 0;border-radius:10px}
/* 面談の記録の印 */
.iv-mk{flex:0 0 auto;font-size:10.5px;font-weight:800;border-radius:99px;padding:3px 9px;
  background:var(--surface-2);color:var(--primary-d)}
.iv-mk.is-cx{background:#FBE9E9;color:#C0564E}
