/* オームラ 法要受注 — スタッフ画面（B） 紺ミニマル */
:root{
  --paper:#FFFFFF; --bg:#F3F3F0; --ink:#17181A; --sub:#6F7178; --line:#E3E3DE; --line2:#EDEDE9;
  --navy:#26507E; --navy-pale:#E9EEF5; --navy-deep:#1D3F64;
  --red:#B5432E; --red-pale:#F7ECEA; --green:#2E8B57; --green-pale:#EAF4EE; --amber:#9A6B15; --amber-pale:#F7F1E4;
  --head:"M PLUS 2","IBM Plex Sans JP","Hiragino Sans",sans-serif;
  --body:"IBM Plex Sans JP","M PLUS 2","Hiragino Sans",sans-serif;
  --mono:"DM Mono","SFMono-Regular",Menlo,monospace;
  --r:4px; --tap:44px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{height:100%;}
body{margin:0;font-family:var(--body);background:var(--bg);color:var(--ink);font-size:16px;line-height:1.75;font-feature-settings:"palt";min-height:100%;}
[hidden]{display:none !important;}
a{color:var(--navy);}
button{font-family:inherit;}
h1,h2,h3,h4{font-family:var(--head);line-height:1.4;letter-spacing:.01em;margin:0;}
h2{font-size:20px;font-weight:700;}
h3{font-size:16px;font-weight:700;}
.k{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:var(--sub);text-transform:uppercase;font-weight:500;}
.mono{font-family:var(--mono);}
.sub{color:var(--sub);font-size:13.5px;}
.small{font-size:13px;}
.right{text-align:right;}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.yen{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;}
.red{color:var(--red);} .green{color:var(--green);} .amber{color:var(--amber);} .navy{color:var(--navy);}

/* ===== ヘッダー ===== */
header{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--line);
  height:54px;padding:0 16px;display:flex;align-items:center;gap:14px;padding-top:env(safe-area-inset-top);}
header .logo{display:flex;align-items:center;gap:9px;font-family:var(--head);font-weight:800;font-size:15px;color:var(--ink);text-decoration:none;white-space:nowrap;}
header .logo i{width:10px;height:10px;background:var(--navy);display:block;}
.hdr-ctx{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--sub);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.hdr-ctx b{color:var(--ink);font-weight:600;}
.hdr-right{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.hdr-link{border:1px solid var(--line);background:var(--paper);color:var(--navy);text-decoration:none;font-size:13px;font-weight:600;
  height:34px;padding:0 12px;border-radius:var(--r);display:inline-flex;align-items:center;cursor:pointer;}
.hdr-link:hover{border-color:var(--navy);}
.hdr-user{font-size:13px;color:var(--sub);padding:0 6px;}
.hdr-user b{color:var(--ink);font-weight:600;}
@media (max-width:640px){ header{gap:8px;padding:0 12px;} header .logo span{display:none;} .hdr-user{display:none;} .hdr-link{padding:0 9px;font-size:12.5px;} }

/* ===== レイアウト ===== */
main{max-width:1040px;margin:0 auto;padding:20px 20px 60px;}
@media (max-width:640px){ main{padding:14px 14px 60px;} }
.page-head{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.page-head .grow{flex:1;min-width:200px;}
.page-head h2{font-size:22px;}
.page-head .sub{margin-top:2px;}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}

.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:12px;}
.card.tight{padding:12px 14px;}
.card h3{margin-bottom:8px;}
.card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.card-head h3{flex:1;min-width:120px;margin:0;}
.hr{border:0;border-top:1px solid var(--line);margin:14px 0;}

/* ===== フォーム ===== */
label.f{display:block;font-size:13px;font-weight:500;margin:12px 0 4px;color:var(--sub);}
label.f:first-child{margin-top:0;}
input[type=text],input[type=date],input[type=time],input[type=number],input[type=password],input[type=tel],input[type=search],select,textarea{
  width:100%;min-height:var(--tap);padding:8px 12px;border:1px solid var(--line);border-radius:var(--r);
  font-size:16px;background:var(--paper);color:var(--ink);font-family:inherit;}
input[type=number]{font-family:var(--mono);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 2px var(--navy-pale);}
textarea{min-height:80px;resize:vertical;line-height:1.6;}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236F7178' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 10px center;padding-right:38px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
@media (max-width:640px){ .row2,.row3{grid-template-columns:1fr;gap:0;} }
.pwwrap{position:relative;}
.pwwrap input{padding-right:72px;}
.pweye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:1px solid var(--line);background:var(--paper);color:var(--sub);
  font-size:12.5px;height:32px;padding:0 10px;border-radius:var(--r);cursor:pointer;}
.inline-input{min-height:40px !important;padding:6px 10px !important;font-size:15px !important;}

/* ===== ボタン ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--r);min-height:var(--tap);padding:0 18px;
  font-size:15px;font-weight:600;cursor:pointer;background:var(--paper);color:var(--ink);transition:background .15s,border-color .15s;text-decoration:none;white-space:nowrap;}
.btn svg{width:20px;height:20px;flex-shrink:0;}
.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn.primary:hover{background:var(--navy-deep);}
.btn.ghost{border-color:var(--line);color:var(--ink);}
.btn.ghost:hover{border-color:var(--navy);color:var(--navy);}
.btn.danger{border-color:var(--line);color:var(--red);}
.btn.danger:hover{border-color:var(--red);background:var(--red-pale);}
.btn.block{width:100%;}
.btn.lg{min-height:56px;font-size:18px;padding:0 24px;}
.btn.sm{min-height:36px;padding:0 12px;font-size:13.5px;}
.btn.icon{padding:0;width:var(--tap);}
.btn.icon.sm{width:36px;}
.btn:disabled{opacity:.45;cursor:default;}
.ibtn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border:1px solid transparent;background:transparent;color:var(--sub);border-radius:var(--r);cursor:pointer;}
.ibtn:hover{color:var(--navy);background:var(--navy-pale);}
.ibtn.del:hover{color:var(--red);background:var(--red-pale);}
.ibtn svg{width:20px;height:20px;}

/* セグメント */
.seg{display:inline-flex;flex-wrap:wrap;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper);}
.seg button{border:0;border-right:1px solid var(--line);background:var(--paper);color:var(--sub);font-size:14px;font-weight:600;min-height:var(--tap);padding:0 14px;cursor:pointer;}
.seg button:last-child{border-right:0;}
.seg button.on{background:var(--navy);color:#fff;}
.seg button.on.ok{background:var(--green);}
.seg button.on.warn{background:var(--red);}
.seg button.on.soft{background:var(--navy-pale);color:var(--navy);}
.seg.sm button{min-height:36px;padding:0 10px;font-size:13px;}
.seg.wrap{flex-wrap:wrap;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);min-height:36px;padding:0 12px;font-size:13.5px;font-weight:600;color:var(--sub);cursor:pointer;}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff;}
.chip.static{cursor:default;}
.toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;min-height:var(--tap);font-weight:600;}
.toggle .sw{width:46px;height:26px;border-radius:13px;background:var(--line);position:relative;transition:background .15s;flex-shrink:0;}
.toggle .sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s;}
.toggle.on .sw{background:var(--navy);}
.toggle.on .sw::after{left:23px;}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper);}
.stepper button{width:var(--tap);height:var(--tap);border:0;background:var(--paper);color:var(--navy);font-size:22px;cursor:pointer;line-height:1;}
.stepper button:disabled{color:var(--line);}
.stepper .v{min-width:48px;text-align:center;font-family:var(--mono);font-size:18px;border-left:1px solid var(--line);border-right:1px solid var(--line);height:var(--tap);line-height:var(--tap);}

/* バッジ */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:2px 9px;border-radius:var(--r);background:var(--navy-pale);color:var(--navy);white-space:nowrap;line-height:1.6;}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;}
.badge.draft{background:#EFEFEC;color:var(--sub);}
.badge.invited{background:var(--navy-pale);color:var(--navy);}
.badge.quoted{background:var(--amber-pale);color:var(--amber);}
.badge.confirmed{background:var(--green-pale);color:var(--green);}
.badge.done{background:#EFEFEC;color:var(--ink);}
.badge.lost{background:var(--red-pale);color:var(--red);}
.badge.plain::before{display:none;}
.tag{display:inline-block;font-size:11.5px;font-weight:600;padding:0 7px;border-radius:var(--r);background:var(--line2);color:var(--sub);line-height:1.7;white-space:nowrap;}
.tag.child{background:var(--amber-pale);color:var(--amber);}
.tag.allergy{background:var(--red-pale);color:var(--red);}
.tag.nomeal{background:#EFEFEC;color:var(--sub);}
.tag.navy{background:var(--navy-pale);color:var(--navy);}
.tag.green{background:var(--green-pale);color:var(--green);}

/* トースト */
.toast{position:fixed;top:66px;left:50%;transform:translateX(-50%) translateY(-6px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:var(--r);
  z-index:99;font-size:14.5px;opacity:0;transition:opacity .18s,transform .18s;pointer-events:none;max-width:92%;display:flex;align-items:center;gap:8px;}
.toast.show{opacity:.97;transform:translateX(-50%) translateY(0);}
.toast.err{background:var(--red);}
.toast.ok{background:var(--green);}
.toast .dot{width:8px;height:8px;border-radius:50%;background:#fff;opacity:.9;animation:pulse 1s infinite;}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}

/* ===== ログイン ===== */
.login{max-width:420px;margin:48px auto 0;}
.login .mark{text-align:center;margin-bottom:18px;}
.login .mark i{width:14px;height:14px;background:var(--navy);display:inline-block;}
.login .mark h1{font-size:21px;font-weight:800;margin:10px 0 2px;}
.login .mark p{color:var(--sub);font-size:12.5px;margin:0;font-family:var(--mono);letter-spacing:.08em;}
.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;}
.staff-grid button{min-height:var(--tap);border:1px solid var(--line);background:var(--paper);border-radius:var(--r);font-size:15px;font-weight:600;color:var(--ink);cursor:pointer;}
.staff-grid button.on{background:var(--navy);border-color:var(--navy);color:#fff;}

/* ===== 案件一覧 ===== */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.filters .chip .n{font-family:var(--mono);font-weight:500;font-size:12px;opacity:.8;}
.caselist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;}
@media (max-width:640px){ .caselist{grid-template-columns:1fr;} }
.ccard{display:block;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;text-decoration:none;color:var(--ink);position:relative;}
.ccard:hover{border-color:var(--navy);}
.ccard .top{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.ccard .fam{font-family:var(--head);font-weight:800;font-size:19px;}
.ccard .date{display:flex;align-items:baseline;gap:8px;margin:2px 0 6px;}
.ccard .date .d{font-family:var(--mono);font-size:17px;font-weight:500;}
.ccard .date .w{font-size:13px;color:var(--sub);}
.ccard .meta{font-size:13.5px;color:var(--sub);display:flex;flex-wrap:wrap;gap:4px 12px;}
.ccard .meta b{color:var(--ink);font-weight:600;}
.ccard .foot{display:flex;align-items:center;gap:10px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line2);font-size:13px;color:var(--sub);}
.ccard .foot .yen{margin-left:auto;font-size:15px;color:var(--ink);}
.ccard .dl{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--amber);}
.ccard .dl.over{color:var(--red);}
.ccard .dl svg{width:16px;height:16px;}
.rsv{display:flex;gap:2px;margin-top:6px;}
.rsv i{display:block;height:5px;flex:1;background:var(--line);}
.rsv i.a{background:var(--green);} .rsv i.d{background:var(--sub);} .rsv i.u{background:var(--line);}
.empty{border:1px dashed var(--line);border-radius:var(--r);padding:28px 20px;text-align:center;color:var(--sub);font-size:15px;line-height:1.8;background:var(--paper);}
.empty b{color:var(--ink);}
.empty svg{width:36px;height:36px;color:var(--line);display:block;margin:0 auto 8px;}

/* ===== 新しい案件 ===== */
.custlist{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper);}
.custrow{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line2);cursor:pointer;min-height:56px;}
.custrow:last-child{border-bottom:0;}
.custrow:hover{background:#FAFAF8;}
.custrow.on{background:var(--navy-pale);}
.custrow .fam{font-weight:700;font-size:16px;min-width:76px;}
.custrow .m{flex:1;font-size:13.5px;color:var(--sub);}
.custrow .m b{color:var(--ink);font-weight:600;}
.custrow .d49{font-family:var(--mono);font-size:13.5px;color:var(--navy);white-space:nowrap;}

/* ===== 案件画面 ===== */
.casehead{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.casehead .grow{flex:1;min-width:220px;}
.casehead h2{font-size:24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.casehead .line{font-size:14px;color:var(--sub);display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:2px;}
.casehead .line b{color:var(--ink);font-weight:600;}
.casehead .line .num{color:var(--ink);}
.caselayout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:18px;align-items:start;}
@media (max-width:899px){ .caselayout{grid-template-columns:minmax(0,1fr);gap:12px;} }
.stepnav{position:sticky;top:68px;display:flex;flex-direction:column;gap:2px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:6px;}
.stepnav a{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 10px;border-radius:var(--r);text-decoration:none;color:var(--sub);font-size:14.5px;font-weight:600;position:relative;}
.stepnav a:hover{background:#FAFAF8;color:var(--ink);}
.stepnav a.on{background:var(--navy-pale);color:var(--navy);}
.stepnav .no{font-family:var(--mono);font-size:12px;width:20px;height:20px;border:1px solid var(--line);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--sub);background:var(--paper);}
.stepnav a.on .no{border-color:var(--navy);color:var(--navy);}
.stepnav a.done .no{background:var(--green);border-color:var(--green);color:#fff;}
.stepnav a.done .no svg{width:12px;height:12px;}
.stepnav .cnt{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--sub);font-weight:400;}
@media (max-width:899px){
  .stepnav{position:sticky;top:54px;z-index:30;flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:6px;gap:4px;}
  .stepnav::-webkit-scrollbar{display:none;}
  .stepnav a{flex:0 0 auto;min-height:40px;padding:0 10px 0 8px;font-size:13.5px;}
  .stepnav .cnt{display:none;}
}
.stepbody{min-width:0;}
.stephead{display:flex;align-items:baseline;gap:10px;margin:2px 0 12px;flex-wrap:wrap;}
.stephead h2{font-size:21px;}
.stephead .sub{flex:1;min-width:160px;}
.stepfoot{display:flex;gap:10px;justify-content:space-between;margin-top:18px;}
.stepfoot .btn{min-width:140px;}
@media (max-width:420px){ .stepfoot .btn{min-width:0;flex:1;} }

/* 世帯行（①） */
.hh{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);margin-bottom:8px;}
.hh .hd{display:flex;align-items:center;gap:10px;padding:10px 12px;flex-wrap:wrap;}
.hh .hd .nm{font-weight:700;font-size:16px;}
.hh .hd .rel{font-size:13px;color:var(--sub);}
.hh .hd .sp{flex:1;}
.hh .bd{border-top:1px solid var(--line2);padding:8px 12px 12px;}
.hh .bd .row3{gap:10px;}
.hhgrid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:10px;}
@media (max-width:760px){ .hhgrid{grid-template-columns:1fr 1fr;} }
@media (max-width:420px){ .hhgrid{grid-template-columns:1fr;} }
.invtype{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
@media (max-width:560px){ .invtype{grid-template-columns:1fr;} }
.invtype .opt{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;cursor:pointer;display:flex;gap:10px;align-items:flex-start;min-height:var(--tap);background:var(--paper);}
.invtype .opt.on{border-color:var(--navy);background:var(--navy-pale);}
.invtype .opt .bx{width:22px;height:22px;border:1.7px solid var(--sub);border-radius:var(--r);flex-shrink:0;margin-top:3px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--paper);}
.invtype .opt.on .bx{background:var(--navy);border-color:var(--navy);}
.invtype .opt .bx svg{width:14px;height:14px;}
.invtype .opt b{display:block;font-size:15px;}
.invtype .opt span{font-size:12.5px;color:var(--sub);line-height:1.5;display:block;}
.urlrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line2);flex-wrap:wrap;}
.urlrow:last-child{border-bottom:0;}
.urlrow .nm{font-weight:600;min-width:110px;}
.urlrow .u{flex:1;min-width:160px;font-family:var(--mono);font-size:12.5px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.qrbox{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0;}
.qrbox svg{width:220px;height:220px;}

/* 出欠（②） */
.rtab{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.rtab th,.rtab td{padding:10px 12px;border-bottom:1px solid var(--line2);text-align:left;vertical-align:top;font-size:14.5px;}
.rtab th{font-size:12px;color:var(--sub);font-weight:600;background:#FAFAF8;white-space:nowrap;}
.rtab tr:last-child td{border-bottom:0;}
.rtab .nm{font-weight:700;font-size:15.5px;}
.rtab .names{display:flex;flex-wrap:wrap;gap:6px 10px;}
.rtab .names .g{display:inline-flex;align-items:center;gap:4px;}
.rtab .via{font-size:11.5px;color:var(--sub);}
.stat{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;white-space:nowrap;}
.stat::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--line);}
.stat.attending::before{background:var(--green);} .stat.declined::before{background:var(--sub);} .stat.unanswered::before{background:var(--amber);}
.stat .n{font-family:var(--mono);font-weight:500;}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;}
@media (max-width:560px){ .summary{grid-template-columns:repeat(2,1fr);} }
.summary .card{margin:0;padding:12px 14px;}
.summary .k{display:block;margin-bottom:2px;}
.summary .v{font-family:var(--mono);font-size:26px;line-height:1.2;}
.summary .v small{font-family:var(--body);font-size:13px;color:var(--sub);margin-left:3px;}
.offrow{display:grid;grid-template-columns:1.1fr 1.4fr .5fr 1fr .8fr;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line2);font-size:14px;align-items:center;}
.offrow:last-child{border-bottom:0;}
.offrow.head{font-size:12px;color:var(--sub);font-weight:600;background:#FAFAF8;}
@media (max-width:640px){ .offrow{grid-template-columns:1fr 1fr;} .offrow.head{display:none;} }

/* 代理入力モーダル内 ご出席の方の行 */
.grow-row{display:grid;grid-template-columns:1.3fr 1fr .8fr .8fr 1fr 44px;gap:8px;align-items:center;margin-bottom:8px;}
@media (max-width:640px){ .grow-row{grid-template-columns:1fr 1fr;} .grow-row .wide{grid-column:1 / -1;} }

/* お食事（③） */
.mealgrades{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;}
@media (max-width:760px){ .mealgrades{grid-template-columns:repeat(2,1fr);} }
.mg{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);padding:12px 14px;}
.mg .nm{font-family:var(--head);font-weight:800;font-size:17px;display:flex;align-items:baseline;gap:8px;}
.mg .nm small{font-family:var(--body);font-weight:500;font-size:12.5px;color:var(--sub);}
.mg .pr{font-family:var(--mono);font-size:13px;color:var(--sub);}
.mg .ds{font-size:12.5px;color:var(--sub);margin-top:4px;line-height:1.5;}
.mg .cnt{margin-top:6px;font-family:var(--mono);font-size:22px;}
.mg .cnt small{font-family:var(--body);font-size:12.5px;color:var(--sub);}
.gst{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line2);flex-wrap:wrap;}
.gst:last-child{border-bottom:0;}
.gst .nm{min-width:120px;font-weight:600;}
.gst .seg{margin-left:auto;}
.gst .al{font-size:12.5px;color:var(--red);}
@media (max-width:640px){ .gst .seg{margin-left:0;width:100%;} .gst .seg button{flex:1;} }

/* お供え花・引き出物（④⑤） */
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;}
.pc{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);overflow:hidden;display:flex;flex-direction:column;}
.pc.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);}
.pc .ph{aspect-ratio:4/3;background:#F7F7F4;display:flex;align-items:center;justify-content:center;color:#C9CBC4;position:relative;}
.pc .ph img{width:100%;height:100%;object-fit:cover;display:block;}
.pc .ph svg{width:56px;height:56px;}
.pc .ph .sel{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;}
.pc .ph .sel svg{width:14px;height:14px;}
.pc .bd{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1;}
.pc .nm{font-weight:700;font-size:15px;line-height:1.4;}
.pc .pr{font-family:var(--mono);font-size:14px;color:var(--ink);}
.pc .ds{font-size:12.5px;color:var(--sub);line-height:1.5;flex:1;}
.pc .ft{display:flex;align-items:center;justify-content:space-between;margin-top:6px;gap:8px;}
.pc button.pick{min-height:40px;border:1px solid var(--line);background:var(--paper);border-radius:var(--r);font-size:14px;font-weight:600;color:var(--navy);cursor:pointer;width:100%;}
.pc.on button.pick{background:var(--navy);border-color:var(--navy);color:#fff;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:12px;overflow-x:auto;scrollbar-width:none;}
.tabs button{border:0;background:transparent;min-height:var(--tap);padding:0 16px;font-size:15px;font-weight:600;color:var(--sub);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;}
.tabs button.on{color:var(--navy);border-bottom-color:var(--navy);}
.ovr{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line2);}
.ovr:last-child{border-bottom:0;}
.ovr .nm{flex:1;font-weight:600;}
.ovr .sub{min-width:60px;text-align:right;}

/* 席順（⑥） */
.seatwrap{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;align-items:start;}
@media (max-width:760px){ .seatwrap{grid-template-columns:minmax(0,1fr);} }
.tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;}
.tbl{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);padding:10px 10px 8px;position:relative;}
.tbl.over{border-color:var(--navy);background:var(--navy-pale);}
.tbl.full.over{border-color:var(--red);background:var(--red-pale);}
.tbl .th{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.tbl .th input{min-height:36px !important;padding:4px 8px !important;font-size:15px !important;font-weight:700;border-color:transparent;background:transparent;}
.tbl .th input:focus{border-color:var(--navy);background:var(--paper);}
.tbl .th .cap{font-family:var(--mono);font-size:12.5px;color:var(--sub);white-space:nowrap;}
.tbl .th .cap.full{color:var(--red);}
.tbl .note{font-size:12px;color:var(--amber);padding:0 8px;}
.round{position:relative;width:100%;aspect-ratio:1/1;max-width:260px;margin:4px auto 0;}
.round svg{position:absolute;inset:0;width:100%;height:100%;}
.seat{position:absolute;width:30%;transform:translate(-50%,-50%);}
.seat .slot{height:44px;border:1px dashed var(--line);border-radius:var(--r);background:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;color:#C4C6BF;}
.gchip{height:44px;border:1px solid var(--navy);border-radius:var(--r);background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:center;gap:4px;
  font-size:13.5px;font-weight:700;padding:0 6px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;line-height:1.2;text-align:center;overflow:hidden;}
.gchip .hname{font-size:10px;color:var(--sub);font-weight:500;display:block;}
.gchip .in{display:flex;flex-direction:column;align-items:center;min-width:0;}
.gchip .in span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.gchip.priest{border-style:dashed;color:var(--amber);border-color:var(--amber);cursor:default;}
.gchip.dragging{opacity:.35;}
.gchip .kid{width:14px;height:14px;color:var(--amber);flex-shrink:0;}
.dragghost{position:fixed;z-index:200;pointer-events:none;width:92px;}
.dragghost .gchip{border-width:2px;background:var(--navy-pale);}
.unassigned{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);padding:10px;min-height:120px;position:sticky;top:68px;}
.unassigned.over{border-color:var(--navy);background:var(--navy-pale);}
.unassigned h3{font-size:14px;margin-bottom:6px;}
.unassigned .list{display:flex;flex-direction:column;gap:6px;}
.unassigned .gchip{justify-content:flex-start;padding:0 10px;}
.unassigned .hgrp{font-size:11.5px;color:var(--sub);margin:4px 0 0;}
.unassigned .ok{font-size:13px;color:var(--green);padding:8px 0;}
@media (max-width:760px){ .unassigned{position:static;} .unassigned .list{flex-direction:row;flex-wrap:wrap;} }
.seatfoot{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px;}

/* スケジュール（⑦） */
.sch{display:grid;grid-template-columns:110px 1.2fr 1fr 44px;gap:8px;align-items:center;margin-bottom:8px;}
.sch.off{opacity:.45;}
@media (max-width:560px){ .sch{grid-template-columns:100px 1fr 44px;} .sch .place{grid-column:1 / 3;} }
.timeline{position:relative;padding-left:22px;margin:4px 0 14px;}
.timeline::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--line);}
.timeline .ti{position:relative;padding:4px 0 4px 10px;font-size:14.5px;}
.timeline .ti::before{content:"";position:absolute;left:-19px;top:14px;width:8px;height:8px;border-radius:50%;background:var(--navy);}
.timeline .ti .t{font-family:var(--mono);margin-right:10px;}
.timeline .ti .p{color:var(--sub);font-size:13px;margin-left:8px;}

/* お見積（⑧） */
.qtab{width:100%;border-collapse:collapse;}
.qtab td,.qtab th{padding:10px 8px;border-bottom:1px solid var(--line2);font-size:15px;vertical-align:top;}
.qtab th{text-align:left;font-size:12px;color:var(--sub);font-weight:600;}
.qtab td.r{text-align:right;font-family:var(--mono);white-space:nowrap;}
.qtab td .nt{display:block;font-size:12px;color:var(--sub);}
.qtab tr.sum td{border-top:2px solid var(--ink);border-bottom:0;font-weight:700;font-size:18px;padding-top:12px;}
.qtab tr.sum td.r{font-size:26px;}
.qnote{font-size:12.5px;color:var(--sub);margin-top:8px;}
.lostreasons{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.lostreasons .chip{min-height:var(--tap);}
.confirmbox{border:1px solid var(--green);background:var(--green-pale);border-radius:var(--r);padding:14px 16px;display:flex;gap:12px;align-items:flex-start;}
.confirmbox svg{width:28px;height:28px;color:var(--green);flex-shrink:0;}
.confirmbox b{display:block;font-size:17px;color:var(--green);}

/* 出力（⑨） */
.outgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;}
.outbtn{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);padding:14px 16px;min-height:72px;cursor:pointer;text-align:left;color:var(--ink);text-decoration:none;}
.outbtn:hover{border-color:var(--navy);}
.outbtn svg{width:26px;height:26px;color:var(--navy);flex-shrink:0;}
.outbtn b{display:block;font-size:15.5px;}
.outbtn span{display:block;font-size:12.5px;color:var(--sub);line-height:1.5;}
.outbtn.dis{opacity:.5;pointer-events:none;}

/* ===== モーダル ===== */
.modal-root{position:fixed;inset:0;z-index:80;background:rgba(23,24,26,.45);display:flex;align-items:flex-end;justify-content:center;padding:0;}
@media (min-width:640px){ .modal-root{align-items:center;padding:20px;} }
.modal{background:var(--paper);border-radius:var(--r) var(--r) 0 0;width:100%;max-width:720px;max-height:92vh;overflow:auto;padding:18px 18px calc(18px + env(safe-area-inset-bottom));}
@media (min-width:640px){ .modal{border-radius:var(--r);max-height:88vh;} }
.modal .mh{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.modal .mh h3{flex:1;font-size:18px;}
.modal .mf{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap;}
.modal .mf .btn{min-width:120px;}
/* お客様向け確認（大きな文字） */
.modal.customer{max-width:860px;padding:28px 28px calc(28px + env(safe-area-inset-bottom));}
.customer .ttl{font-family:var(--head);font-size:26px;font-weight:800;text-align:center;margin-bottom:4px;}
.customer .lead{text-align:center;color:var(--sub);font-size:15px;margin-bottom:18px;}
.customer .qtab td,.customer .qtab th{font-size:18px;padding:12px 8px;}
.customer .qtab tr.sum td{font-size:22px;}
.customer .qtab tr.sum td.r{font-size:34px;}
.customer .namein{margin:18px auto 10px;max-width:460px;}
.customer .namein input{font-size:20px;min-height:56px;text-align:center;}
.customer .big{min-height:68px;font-size:22px;width:100%;max-width:560px;margin:8px auto 0;display:flex;}
.customer .later{text-align:center;margin-top:12px;}
.customer .thanks{text-align:center;padding:40px 10px;}
.customer .thanks svg{width:56px;height:56px;color:var(--green);}
.customer .thanks b{display:block;font-family:var(--head);font-size:26px;margin:10px 0 6px;}
.customer .thanks p{color:var(--sub);font-size:15px;}

/* 補助 */
.note{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:var(--r);padding:10px 14px;font-size:14px;margin:8px 0 12px;}
.note.warn{border-left-color:var(--amber);}
.note.err{border-left-color:var(--red);}
.skeleton{height:14px;background:linear-gradient(90deg,var(--line2),#F7F7F4,var(--line2));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:var(--r);margin:8px 0;}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
.loading{padding:40px;text-align:center;color:var(--sub);font-size:14px;}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.kv{display:grid;grid-template-columns:120px 1fr;gap:4px 12px;font-size:14.5px;}
.kv b{color:var(--sub);font-weight:500;}
@media (max-width:420px){ .kv{grid-template-columns:1fr;} .kv b{margin-top:6px;} }
.inlinefield{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.inlinefield label.f{margin:0;}
.inlinefield input{width:auto;min-width:90px;}
