/* ============================================================
   デリヘル業務効率化ツール — styles.css（モック v17 全面移植 + 認証UI）
   ============================================================ */
:root{
  /* 2026-11-09 ユーザー指示：真っ白は見にくい → クリーム色。境目が分かるよう線を濃く */
  --bg:#f1ebde;--surface:#fffaf0;--surface-2:#f5eee0;--surface-3:#ebe2d0;
  --ink:#1e1a14;--ink-2:#544a3c;--ink-3:#857a68;--line:#d6cab3;--line-strong:#bba98a;
  --accent:#0c8a8f;--accent-ink:#0a6f73;--accent-soft:#d7edee;--blue:#2f7fe0;--blue-soft:#dde9fb;
  --good:#2c9c5b;--good-soft:#daf0e4;--warn:#c98416;--warn-soft:#f8ecd4;--crit:#d24444;--crit-soft:#f8dede;
  --shadow:0 1px 2px rgba(23,29,35,.06),0 6px 20px rgba(23,29,35,.07);
  --mono:ui-monospace,"SFMono-Regular",Consolas,Menlo,monospace;
  --jp:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","YuGothic","Meiryo",system-ui,sans-serif;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0e1318;--surface:#18222c;--surface-2:#212d38;--surface-3:#2a3845;--ink:#eef3f6;--ink-2:#a9b6c1;--ink-3:#7d8c98;--line:#34434f;--line-strong:#4a5c6b;
  --accent:#2cb7bb;--accent-ink:#7fd6d8;--accent-soft:#16323a;--blue:#5b9bf0;--blue-soft:#132539;--good:#43b673;--good-soft:#17322a;--warn:#e0a838;--warn-soft:#332a13;--crit:#e26060;--crit-soft:#3a2020;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.4);
}}
:root[data-theme="dark"]{
  --bg:#0e1318;--surface:#18222c;--surface-2:#212d38;--surface-3:#2a3845;--ink:#eef3f6;--ink-2:#a9b6c1;--ink-3:#7d8c98;--line:#34434f;--line-strong:#4a5c6b;
  --accent:#2cb7bb;--accent-ink:#7fd6d8;--accent-soft:#16323a;--blue:#5b9bf0;--blue-soft:#132539;--good:#43b673;--good-soft:#17322a;--warn:#e0a838;--warn-soft:#332a13;--crit:#e26060;--crit-soft:#3a2020;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.4);
}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--jp);line-height:1.6;-webkit-font-smoothing:antialiased;font-size:15px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
button{font-family:inherit;cursor:pointer}h1,h2,h3,h4{margin:0;line-height:1.3}
.hidden{display:none!important}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.loginbox{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px;max-width:420px;width:100%}
.loginbox h1{font-size:22px;font-weight:800;display:flex;align-items:center;gap:10px;margin-bottom:4px}
.loginbox .mk{width:34px;height:34px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:18px}
.loginbox p.sub{color:var(--ink-2);font-size:13px;margin:0 0 18px}

/* appbar / subnav */
.appbar{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:10px 18px;box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;white-space:nowrap}
.brand .mk{width:26px;height:26px;border-radius:7px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px}
.brand small{font-weight:600;color:var(--ink-3);font-size:11px;font-family:var(--mono);letter-spacing:.1em}
.clock{font-family:var(--mono);font-weight:700;font-size:14px;color:var(--ink-2);margin-left:4px}
.spacer{flex:1}.who{font-size:13px;color:var(--ink-2);font-weight:600}
.roleswitch{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}
.roleswitch button{border:0;background:transparent;color:var(--ink-2);font-size:13px;font-weight:600;padding:6px 12px;border-radius:6px;display:flex;align-items:center;gap:6px}
.roleswitch button.on{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow)}
.iconbtn{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:15px}
@media(max-width:760px){.brand small{display:none}.roleswitch button span{display:none}.who{display:none}.appbar{flex-wrap:wrap;gap:8px;padding:10px 12px}.roleswitch{order:5;flex:1 1 100%;justify-content:space-between}}
.subnav{position:sticky;top:55px;z-index:40;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:3px;padding:7px 14px;overflow-x:auto}
.subnav button{border:0;background:transparent;color:var(--ink-2);font-weight:600;font-size:13.5px;padding:9px 13px;border-radius:8px;white-space:nowrap}
.subnav button:hover{background:var(--surface-2)}
.subnav button.on{background:var(--accent-soft);color:var(--accent-ink)}
.navsep{flex:0 0 auto;width:1px;height:20px;background:var(--line);margin:0 6px}
.navgrp{flex:0 0 auto;font-size:10px;font-weight:800;color:var(--accent-ink);opacity:.85;letter-spacing:.06em;padding:0 4px 0 2px;align-self:center;user-select:none}
.mr-hide0 tr.mrow0{display:none}
.castwrap{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:6px}
.castwrap .empty{color:var(--ink-soft);font-size:13px;padding:8px 2px}
.cc-duty{display:flex;align-items:center;gap:7px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line);cursor:pointer;font-size:12.5px;color:var(--ink-soft)}
.cc-duty input{width:auto;margin:0}
.brand .logo{font-weight:800;font-size:19px;letter-spacing:.16em;color:var(--accent-ink)}
.menuwrap{position:relative}
.menu{position:absolute;top:calc(100% + 8px);right:0;min-width:214px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px;z-index:60}
.menuhd{font-size:12px;color:var(--ink-3);font-weight:700;padding:8px 10px 6px}
.menuitem{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--ink);font-weight:600;font-size:14px;padding:10px;border-radius:8px}
.menuitem:hover{background:var(--surface-2)}
.menuitem.danger{color:var(--crit)}
.subtabs{display:flex;gap:4px;margin:0 0 18px;border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden}
.subtabs button{border:0;background:transparent;color:var(--ink-2);font-weight:700;font-size:14px;padding:11px 16px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.subtabs button:hover{color:var(--ink)}
.subtabs button.on{color:var(--accent-ink);border-bottom-color:var(--accent)}

/* ===== ダッシュボードの見た目の底上げ（テスト版） ===== */
main{max-width:1440px;margin:0 auto;padding:24px 28px 76px}
.page-h{margin-bottom:2px}
.page-h h2{font-size:23px;font-weight:800;letter-spacing:-.01em}
.page-sub{font-size:13px;color:var(--sub);margin-bottom:22px}
.card{box-shadow:none;border:1px solid var(--line);border-radius:14px;padding:20px 22px}
.card h3{font-size:14px;font-weight:800;padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.card h3 .hint{margin-left:auto;font-weight:600;color:var(--ink-3)}
.kpirow{gap:14px;margin-bottom:22px}
.kpi{box-shadow:none;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.kpi .l{font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--ink-3);margin-top:4px}
.kpi .v{font-family:var(--mono);font-weight:800;font-size:26px;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.tblwrap{box-shadow:none;border:1px solid var(--line);border-radius:12px}
table{font-size:13px}
th{background:transparent;border-bottom:2px solid var(--line-strong);color:var(--ink-3);font-size:10.5px}
td{border-bottom:1px solid var(--line)}
tbody tr:hover td{background:var(--surface-2)}
.btn{border-radius:10px}

/* ===== 色の規律：色は「意味」があるときだけ ===== */
/* 店舗チップ：虹色をやめ、落ち着いた統一チップに（店名の文字で見分ける） */
.ptag{background:var(--surface-2)!important;color:var(--ink)!important;border:1px solid var(--line-strong);font-weight:700;padding:2px 9px;border-radius:6px}
.selftag{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700}
/* ピル：緑=完了/良い、アンバー=注意、ティール=情報・確定。形をそろえる */
.pill{border-radius:6px;padding:2px 8px}
/* 数字は原則グレー/黒。赤=NG・取消・マイナス、緑=プラスの粗利、ティール=売上/主要 のときだけ色を付ける */
.mono{color:inherit}

/* オーダー受付：確定ボタンを上部に固定（下までスクロールしなくても確定できる） */
.intakebar{position:sticky;top:96px;z-index:30;display:flex;align-items:center;gap:12px;background:color-mix(in srgb,var(--bg) 93%,transparent);backdrop-filter:blur(8px);padding:10px 0 12px;margin:0 0 14px;border-bottom:1px solid var(--line)}
.intakebar h2{font-size:23px;font-weight:800;letter-spacing:-.01em}
.intakebar-act{margin-left:auto;display:flex;align-items:center;gap:10px}
.intakebar-act .btn{width:auto;padding:11px 22px}
.intakebar-act .btn.sm{padding:9px 16px}
@media(max-width:760px){.intakebar{flex-wrap:wrap}.intakebar-act{width:100%}.intakebar-act .btn{flex:1}}

/* シフト：前月・今日・翌月と年月を中央にそろえる */
.calhead{display:flex!important;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}
.calheadmid{display:flex;flex-direction:column;align-items:center;gap:6px}
#calTitle{font-size:19px;font-weight:800;letter-spacing:.01em}

/* キャストプロフィール：カード形式（クリックで詳細モーダル） */
.castgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.castcard{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:16px;cursor:pointer;transition:border-color .1s,transform .05s}
.castcard:hover{border-color:var(--accent)}
.castcard:active{transform:translateY(1px)}
.cc-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.cc-avatar{width:42px;height:42px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-size:18px;flex:0 0 auto}
.cc-head{min-width:0}
.cc-name{font-weight:800;font-size:16px}
.cc-scout{font-size:12px;color:var(--ink-3);font-weight:600;margin-top:1px}
.cc-img{object-fit:cover}
.cc-prof{font-size:13px;color:var(--ink-2)}
.cc-ngopt{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--crit)}
.cc-ng{margin-top:6px;font-size:12.5px;font-weight:700;color:var(--warn)}
.ccedit .row2{display:flex;gap:10px;margin-bottom:8px}
.ccedit label.lb{flex:1}
.ccedit label.lb input{width:100%;margin-top:4px}
.ccphoto{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ccphoto-img{width:88px;height:88px;border-radius:12px;object-fit:cover;border:1px solid var(--line)}
.ccphoto-ph{width:88px;height:88px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-3);font-size:12px;border:1px solid var(--line)}
.ccphoto-act{display:flex;flex-direction:column;gap:6px}
.filelbl{cursor:pointer}
/* パスワードの表示／隠す切り替え */
.pwwrap{position:relative;display:flex;align-items:center}
.pwwrap>input{flex:1;padding-right:58px}
.pweye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--ink-3);padding:6px 8px;cursor:pointer;display:grid;place-items:center}
.pweye:hover{color:var(--accent-ink)}

/* NG客を赤で強く見せる（禁止マーク🚫つき） */
.autobadge.ab-ng{background:var(--crit);color:#fff;font-weight:800;font-size:13px;padding:4px 11px;border-radius:7px}
.ngtag{background:var(--crit);color:#fff;font-weight:800;padding:2px 9px;border-radius:7px;font-size:12px}
.custhit.ng{color:var(--crit);font-weight:700}

main{max-width:1440px;margin:0 auto;padding:24px 28px 76px}
.page-h{display:flex;align-items:baseline;gap:12px;margin-bottom:4px}.page-h h2{font-size:20px;font-weight:800}
.page-sub{color:var(--ink-2);font-size:13.5px;margin:0 0 18px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}@media(max-width:820px){.g2,.g3{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:var(--shadow)}
.card h3{font-size:15px;font-weight:800;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.hint{font-size:11.5px;color:var(--ink-3);font-weight:600;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:2px 7px;margin-left:auto}
.note{font-size:12px;color:var(--ink-3);margin-top:6px}
.placeholder{color:var(--ink-3);text-align:center;padding:40px 16px;border:1px dashed var(--line);border-radius:12px;font-size:14px}

/* availability */
.availbar{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:9px}
.availrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.alab{font-size:11.5px;font-weight:800;color:var(--ink-2);white-space:nowrap;min-width:120px}
.wchip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;padding:4px 11px;border-radius:20px;border:1px solid transparent}
.wc-free{background:var(--good-soft);color:var(--good)}.wc-drv{background:var(--accent-soft);color:var(--accent-ink)}.wc-busy{background:var(--warn-soft);color:var(--warn)}
.wc-off{background:var(--line);color:var(--ink-2)}.wc-past{background:var(--crit-soft);color:var(--crit)}.wc-ng{background:var(--crit);color:#fff}

/* board */
.board-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-2)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:middle}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:820px){.cols{grid-template-columns:1fr}}
.col{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}
.col-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.col-h .drv{font-weight:800;font-size:14px;display:flex;align-items:center;gap:7px}
.col-h .plate{font-family:var(--mono);font-size:11px;color:var(--ink-2);background:var(--surface);padding:2px 7px;border-radius:5px;border:1px solid var(--line)}
.ord{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 12px 12px 14px;margin-bottom:9px;position:relative;overflow:hidden;cursor:pointer;transition:transform .08s}
.ord:hover{transform:translateY(-1px)}.ord::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.ord.good::before{background:var(--good)}.ord.warn::before{background:var(--warn)}.ord.crit::before{background:var(--crit)}.ord.idle::before{background:var(--line-strong)}.ord.done::before{background:var(--accent)}
.ord .r1{display:flex;align-items:center;justify-content:space-between;gap:8px}.ord .who2{font-weight:700;font-size:14px}
.ord .cd{font-family:var(--mono);font-weight:800;font-size:15px}
.ord.good .cd{color:var(--good)}.ord.warn .cd{color:var(--warn)}.ord.crit .cd{color:var(--crit)}.ord.idle .cd{color:var(--ink-3)}.ord.done .cd{color:var(--accent-ink)}
.ord .meta{font-size:12px;color:var(--ink-2);margin-top:3px;display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.ptag{font-size:10.5px;font-weight:800;color:#fff;padding:1px 7px;border-radius:4px}
.ord .st{font-size:12px;font-weight:700;margin-top:7px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px}
.s-good{background:var(--good-soft);color:var(--good)}.s-warn{background:var(--warn-soft);color:var(--warn)}.s-crit{background:var(--crit-soft);color:var(--crit)}.s-done{background:var(--accent-soft);color:var(--accent-ink)}.s-idle{background:var(--surface-2);color:var(--ink-2)}
.pulse{animation:pl 1.5s ease-in-out infinite}@keyframes pl{0%,100%{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.pulse{animation:none}}
.empty{color:var(--ink-3);font-size:13px;text-align:center;padding:14px;border:1px dashed var(--line);border-radius:9px}

/* tasks */
.task{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:12px 14px;margin-bottom:9px;display:flex;align-items:flex-start;gap:12px}.task.tdone{opacity:.5}
.tbadge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:6px;white-space:nowrap;margin-top:1px}
.tb-catch{background:var(--crit-soft);color:var(--crit)}.tb-in{background:var(--accent-soft);color:var(--accent-ink)}.tb-pay{background:var(--warn-soft);color:var(--warn)}.tb-send{background:var(--good-soft);color:var(--good)}.tb-back{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line-strong)}
.task .tmain{flex:1;min-width:0}.task .tt{font-weight:700;font-size:14px}.task .td{font-size:12px;color:var(--ink-2)}
.task .cbtn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-weight:700;font-size:12.5px;padding:7px 12px;border-radius:8px;white-space:nowrap}.task .cbtn.d{background:var(--good);border-color:var(--good);color:#fff}
.waitflag{font-size:10.5px;font-weight:800;color:var(--warn);background:var(--warn-soft);padding:1px 6px;border-radius:4px;margin-left:6px}
.shita{background:var(--crit);color:#fff;font-weight:800;font-size:12.5px;padding:5px 9px;border-radius:6px;display:inline-block;margin:7px 0 4px}
.callbtn{background:var(--good);color:#fff;font-weight:800;font-size:13px;padding:8px 13px;border-radius:9px;text-decoration:none;display:inline-flex;gap:6px;align-items:center;margin-top:4px}
.taplinks{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.addrbtn{background:var(--blue);color:#fff;font-weight:800;font-size:13px;padding:8px 13px;border-radius:9px;text-decoration:none;display:inline-flex;gap:6px;align-items:center;margin-top:4px}
.sec-h{font-size:12px;color:var(--ink-3);font-weight:800;margin:14px 0 6px;letter-spacing:.03em}
.ordcard{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:12px 14px;margin-bottom:9px}.ordcard .oh{font-weight:700;font-size:14px;display:flex;justify-content:space-between;gap:8px;align-items:center}.ordcard .od{font-size:12px;color:var(--ink-2);margin-top:2px}
/* 料金の行はスマホで一目で読めるように少しだけ大きく・濃くする（他の行と並ぶと見落とす） */
.ordcard .od.charge{font-size:13px;color:var(--ink)}.ordcard .od.charge b{font-size:15px}
.pastbtn{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2);font-weight:700;font-size:12.5px;padding:7px 12px;border-radius:8px;margin-top:6px}
.caststat{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:10px 13px;margin-bottom:8px;font-size:13px}.caststat .cn{font-weight:700}.caststat .rem{font-family:var(--mono);font-weight:700}
.drvnote{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);border-radius:10px;padding:10px 12px;font-size:12px;color:var(--ink);margin-bottom:12px}

/* forms */
.field{margin-bottom:13px}label.lb{display:block;font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:5px}label.lb .req{color:var(--crit);margin-left:3px}
input,select,textarea{width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;padding:9px 11px}textarea{min-height:60px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}input[type=color]{padding:2px;height:38px;width:46px}
.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{flex:1;min-width:52px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-weight:700;font-size:13px;padding:9px;border-radius:8px}.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.addrow{display:flex;gap:8px}.addrow input{flex:1}
/* 運行タスク発行フォーム：狭い画面では各項目を縦積みにして「発行」ボタンの重なり／押し間違いを防ぐ */
@media (max-width:700px){.taskaddrow>.field,.taskaddrow>label,.taskaddrow>button{flex:1 1 100%;width:100%}.taskaddrow>label.tbd{justify-content:flex-start}}
.opts{display:flex;flex-wrap:wrap;gap:7px}.opt{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600}.opt.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.opt.okopt{border-color:var(--good)}.opt.okopt:not(.on){color:var(--good)}.opt.ngopt{border-color:var(--crit)}.opt.ngopt:not(.on){color:var(--crit)}
.stepper{display:flex;align-items:stretch}.stepper button{width:44px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink);font-size:18px;font-weight:800}.stepper button:first-child{border-radius:8px 0 0 8px}.stepper button:last-child{border-radius:0 8px 8px 0}
.stepper .val{flex:1;text-align:center;border:1px solid var(--line-strong);border-left:0;border-right:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:800;font-size:17px;background:var(--surface)}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.presets button{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:700;padding:5px 10px;border-radius:7px;font-family:var(--mono)}.presets button:hover{border-color:var(--accent);color:var(--accent-ink)}
.yenwrap{position:relative}.yenwrap::before{content:"¥";position:absolute;left:11px;top:9px;color:var(--ink-3);font-weight:700}.yenwrap input{padding-left:24px;font-family:var(--mono);font-weight:700;font-size:16px}
.autobadge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;padding:3px 10px;border-radius:20px;margin-left:8px}.ab-new{background:var(--surface-2);color:var(--ink-2)}.ab-rep{background:var(--accent-soft);color:var(--accent-ink)}.ab-ng{background:var(--crit);color:#fff}
.storedot{width:10px;height:10px;border-radius:50%;display:inline-block;vertical-align:middle;margin-right:7px;border:1px solid var(--line-strong);box-shadow:0 0 0 2px var(--surface)}
.btn{border:0;background:var(--accent);color:#fff;font-weight:800;font-size:14px;padding:11px 16px;border-radius:9px;width:100%}.btn:active{transform:translateY(1px)}.btn.sm{width:auto;padding:8px 14px;font-size:13px}.btn.ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong)}
.minibtn{border:1px solid var(--line-strong);background:var(--surface);color:var(--crit);border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700}
.inputyen{position:relative}.inputyen::before{content:"¥";position:absolute;left:9px;top:9px;color:var(--ink-3);font-size:12px}.inputyen input{padding-left:20px}
.rulerow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.rulerow:last-child{border-bottom:none}.rulerow .rl{font-size:13.5px;font-weight:600}.rulerow .ri{width:130px}.rulerow .ri input{text-align:right;font-family:var(--mono);font-weight:700}

/* intake */
.intake3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}@media(max-width:980px){.intake3{grid-template-columns:1fr}}
.histline{font-size:12px;color:var(--ink-2);padding:3px 0}.histline.m{color:var(--good);font-weight:700}
.cands{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.cand{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:9px;padding:7px 12px;font-size:13.5px;font-weight:800;cursor:pointer;display:flex;flex-direction:column;line-height:1.25;min-width:82px}
.cand .av{font-size:10.5px;font-weight:600;color:var(--ink-3)}
/* 内勤からの備考（ドライバー／キャストの画面に出す） */
.memo{background:var(--warn-soft);border:1px solid var(--warn);border-radius:8px;padding:6px 9px;font-weight:700;white-space:pre-wrap}
.custhits{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.custhit{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:9px;padding:6px 11px;font-size:13px;font-weight:800;cursor:pointer;display:flex;flex-direction:column;line-height:1.25}
.custhit .av{font-size:11px;font-weight:700;color:var(--ink-2);margin-top:2px}
.custhit:hover{border-color:var(--accent)}
.custhit.ng{border-color:var(--crit);color:var(--crit);background:var(--crit-soft)}
.cand.sel{background:var(--accent);border-color:var(--accent);color:#fff}.cand.sel .av{color:rgba(255,255,255,.85)}
.cand.blue{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}
.cand.yellow{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
.cand.past{border-color:var(--crit);color:var(--crit);background:var(--crit-soft)}
.cand.gray{border-color:var(--line-strong);background:var(--surface-2);color:var(--ink-3);cursor:not-allowed;opacity:.7;text-decoration:line-through}
.clegend{display:flex;gap:11px;flex-wrap:wrap;font-size:11px;color:var(--ink-2);margin-top:8px}.clegend b{font-weight:800}
.rulenote{font-size:12px;margin-top:9px;padding:8px 10px;border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-weight:600}.rulenote.lock{background:var(--crit-soft);color:var(--crit)}.rulenote.free{background:var(--good-soft);color:var(--good)}
.pricebox{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.pricebox .rowp{display:flex;justify-content:space-between;align-items:center;font-size:13px}.pricebox .rowp+.rowp{margin-top:5px}.pricebox .rowp b{font-family:var(--mono);font-weight:800;font-size:16px}
.slip{background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:10px;padding:14px;font-family:var(--mono);font-size:12.5px;white-space:pre-wrap;color:var(--ink-2);line-height:1.7;min-height:60px}

/* tables */
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{text-align:left;padding:10px 13px;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);font-weight:800;background:var(--surface-2)}td.n,th.n{text-align:right;font-family:var(--mono)}tr:last-child td{border-bottom:none}
tfoot td{font-weight:800;background:var(--surface-2);border-top:2px solid var(--line-strong)}td input,td select{padding:6px 8px;font-size:13px}
.pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px}.pill.g{background:var(--good-soft);color:var(--good)}.pill.w{background:var(--warn-soft);color:var(--warn)}.pill.a{background:var(--accent-soft);color:var(--accent-ink)}
.ngtag{background:var(--crit);color:#fff;font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px}.selftag{background:var(--surface-3);color:var(--ink-2);font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px}
.kpirow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}@media(max-width:820px){.kpirow{grid-template-columns:1fr 1fr}}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:14px 16px;box-shadow:var(--shadow)}.kpi .v{font-family:var(--mono);font-weight:800;font-size:22px}.kpi .l{font-size:12px;color:var(--ink-2);margin-top:2px}
.drange{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.drange .field{margin:0}.drange input,.drange select{width:auto}

/* customer */
.dupwarn{border-radius:9px;padding:11px 13px;font-size:13px;color:var(--ink);margin-top:12px}.dupwarn.bad{background:var(--crit-soft);border:1px solid color-mix(in srgb,var(--crit) 40%,transparent)}.dupwarn.ok{background:var(--good-soft);border:1px solid color-mix(in srgb,var(--good) 40%,transparent)}.dupwarn.ng{background:#fce4e4;border:1px solid var(--crit)}:root[data-theme="dark"] .dupwarn.ng{background:#2a1315}
.profile{border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:12px}
.histgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}@media(max-width:600px){.histgrid{grid-template-columns:1fr}}
.histcell{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 11px}.histcell .k{font-size:11px;color:var(--ink-3);font-weight:700}.histcell .v{font-size:13px;font-weight:700;margin-top:1px}
.canctag{font-size:11px;font-weight:700;padding:1px 7px;border-radius:4px}.cc-girl{background:var(--crit-soft);color:var(--crit)}.cc-cust{background:var(--warn-soft);color:var(--warn)}
.custbar{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:10px 13px;cursor:pointer;margin-bottom:7px;font-weight:700}
.custbar:hover{border-color:var(--accent)}.custbar .cn{font-size:14px}.custbar .ct{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--ink-3)}.custbar .caret{color:var(--ink-3);transition:transform .15s}.custbar.open .caret{transform:rotate(90deg)}
.custdraw{margin:-3px 0 9px;padding:0 2px}
.tagchk{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;border:1px solid var(--line-strong);background:var(--surface);border-radius:20px;padding:4px 10px;cursor:pointer}.tagchk.on{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}
.poolchips{display:flex;flex-wrap:wrap;gap:6px}

/* master tree */
.tree{display:flex;flex-direction:column;gap:10px}.tnode{border:1px solid var(--line);border-radius:11px;padding:12px 14px;background:var(--surface)}
.tstore{display:flex;align-items:center;gap:9px;font-weight:800;font-size:14.5px}.cswatch{width:16px;height:16px;border-radius:5px;border:1px solid rgba(0,0,0,.15)}
.tstore .del{margin-left:auto;border:0;background:var(--surface-2);color:var(--ink-3);border-radius:6px;padding:3px 8px;font-size:12px}
.tpanels{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-left:25px}.tpanel{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:4px 6px 4px 10px;font-size:12.5px;font-weight:700;display:flex;align-items:center;gap:5px}.tpanel button{border:0;background:transparent;color:var(--ink-3);padding:0 2px;font-size:12px}
.paneladd{display:flex;gap:6px;margin-top:9px;padding-left:25px;max-width:560px}
.tpanel button.editp{color:var(--accent-ink)}
.opttd{white-space:normal;vertical-align:top}.optcell{display:flex;flex-wrap:wrap;gap:3px;max-width:360px}
.tagchk.pok{padding:2px 8px;font-size:11px;margin:1px}.tagchk.png{padding:2px 8px;font-size:11px;margin:1px}.tagchk.parea{padding:2px 8px;font-size:11px;margin:1px}
.tagchk.pok.on{background:var(--good-soft);border-color:var(--good);color:var(--good)}.tagchk.png.on{background:var(--crit-soft);border-color:var(--crit);color:var(--crit)}
.dprof{border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:8px 10px;margin-bottom:7px}.dprof .dh{display:flex;justify-content:space-between;font-weight:800;font-size:13.5px}.dprof .dm{font-size:12px;color:var(--ink-2);margin-top:1px}.dprof .do{font-size:11.5px;margin-top:2px}

/* settlement */
.settle{display:grid;grid-template-columns:236px 1fr;gap:16px}@media(max-width:820px){.settle{grid-template-columns:1fr}}
.stafflist{display:flex;flex-direction:column;gap:6px}.staffitem{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:9px 12px;cursor:pointer;font-weight:700;font-size:14px}
.staffitem:hover{border-color:var(--accent)}.staffitem.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.staffitem .rt{font-size:10.5px;font-weight:800;color:var(--ink-3);background:var(--surface-2);padding:1px 7px;border-radius:5px;margin-left:auto}
.detail{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:20px;box-shadow:var(--shadow)}
.dhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.dhead .nm{font-size:19px;font-weight:800}
.dline{display:flex;justify-content:space-between;align-items:center;font-size:14px;padding:8px 0;border-bottom:1px solid var(--line)}.dline.sub{font-size:12.5px;color:var(--ink-2);padding:4px 0 4px 14px}.dline b{font-family:var(--mono)}.dline.minus b{color:var(--crit)}.dline .x{border:0;background:var(--surface-2);color:var(--ink-3);border-radius:5px;width:22px;height:22px;font-size:12px;margin-left:8px}
.dtot{display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:800;border-top:2px solid var(--line-strong);margin-top:6px;padding-top:12px}.dtot b{font-family:var(--mono);font-size:22px;color:var(--good)}
.meterrow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.addline{display:grid;grid-template-columns:1fr 120px auto;gap:8px;margin-top:12px}.quickadd{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.sbnote{font-size:12px;color:var(--ink-3);margin-top:8px;background:var(--surface-2);border-radius:8px;padding:7px 10px}.signbox{margin-top:16px;border-top:1px dashed var(--line-strong);padding-top:12px}.signline{border-bottom:1px solid var(--ink-3);height:34px;margin-top:6px}

/* shift */
.shiftwrap{display:grid;grid-template-columns:190px 1fr;gap:16px}@media(max-width:820px){.shiftwrap{grid-template-columns:1fr}}
.pool{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px;box-shadow:var(--shadow);height:max-content}
.pool h4{font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 7px}.pool h4:first-child{margin-top:0}
.pchip{font-size:12.5px;font-weight:700;border-radius:8px;padding:5px 10px;cursor:grab;border:1px solid transparent}.pchip.cast{background:var(--accent-soft);color:var(--accent-ink)}.pchip.drv{background:var(--blue-soft);color:var(--blue)}.pchip.int{background:var(--warn-soft);color:var(--warn)}
.calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calhead b{font-size:16px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.caldow{font-size:11px;font-weight:800;color:var(--ink-3);text-align:center;padding:4px 0}
.calcell{min-height:80px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:5px 6px;font-size:11px;cursor:pointer;transition:border-color .1s}.calcell.dragover{border-color:var(--accent);background:var(--accent-soft)}
.calcell .dn{font-weight:800;color:var(--ink-2);font-size:12px}.calcell.today .dn{color:var(--accent-ink)}
.schip{display:block;font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schip.cast{background:var(--accent-soft);color:var(--accent-ink)}.schip.drv{background:var(--blue-soft);color:var(--blue)}.schip.int{background:var(--warn-soft);color:var(--warn)}.schip.undec{background:var(--warn);color:#fff}
.tlaxis{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:center;margin-bottom:6px}.tlhours{display:flex;font-size:10px;color:var(--ink-3);font-weight:700}.tlhours span{flex:1;text-align:left}
.tlrow{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:center;margin-bottom:7px}.tlname{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tltrack{position:relative;height:22px;background:var(--surface-2);border-radius:6px;min-width:520px}.tlbar{position:absolute;top:2px;bottom:2px;border-radius:5px;font-size:10px;font-weight:800;color:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.tlbar.cast{background:var(--accent)}.tlbar.drv{background:var(--blue)}.tlbar.int{background:var(--warn)}.tlbar.undec{left:0;right:0;background:repeating-linear-gradient(45deg,var(--warn),var(--warn) 6px,#e0a838cc 6px,#e0a838cc 12px);color:#3a2a00}
.tledit{display:flex;gap:5px;align-items:center;margin-top:5px;font-size:11px;flex-wrap:wrap}.tledit input{width:78px;padding:5px 7px;font-size:12px}.tledit .tbd{display:inline-flex;gap:4px;align-items:center;font-weight:700;color:var(--warn)}

/* phone (driver/cast/clerk) */
.phones{display:flex;gap:26px;flex-wrap:wrap;justify-content:center}.phone{width:352px;max-width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:26px;padding:12px;box-shadow:var(--shadow)}
.phone .notch{width:110px;height:5px;background:var(--line-strong);border-radius:10px;margin:2px auto 10px}.phscreen{background:var(--bg);border-radius:16px;padding:14px;min-height:520px;border:1px solid var(--line)}
.ph-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ph-h .t{font-weight:800;font-size:15px}.ph-h .badge{font-size:11px;background:var(--accent-soft);color:var(--accent-ink);font-weight:700;padding:3px 9px;border-radius:20px}
@keyframes alarmflash{0%,100%{color:var(--crit);text-shadow:0 0 0 transparent}50%{color:#fff;text-shadow:0 0 14px var(--crit)}}
.alarmflash{animation:alarmflash .7s ease-in-out infinite}
.infocard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:13px;margin-bottom:10px}.infocard .k{font-size:11px;color:var(--ink-3);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.infocard .v{font-weight:700;font-size:14px;margin-top:1px}.infocard .v.big{font-family:var(--mono);font-size:22px}
.timerbtns{display:flex;gap:8px;margin-top:11px}.timerbtns button{flex:1;border:0;border-radius:9px;font-weight:800;font-size:14px;padding:11px}.tstart{background:var(--good);color:#fff}.tend{background:var(--crit);color:#fff}.timerbtns button:disabled{opacity:.4;cursor:not-allowed}
.cancelbtn{width:100%;margin-top:8px;border:1px solid var(--crit);background:transparent;color:var(--crit);font-weight:800;font-size:13px;padding:10px;border-radius:9px}.cancelbtn:disabled{opacity:.45;cursor:not-allowed}
.payitem{border:1px solid var(--line);border-radius:10px;padding:10px 11px;margin-top:8px;background:var(--surface)}.payitem .ph{display:flex;justify-content:space-between;font-weight:800;font-size:13px}.payitem .pl{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-2);margin-top:2px}.payitem .pl b{font-family:var(--mono);color:var(--ink)}.payitem.cancel{border-color:var(--crit)}.payitem.deduct{border-color:var(--warn);background:var(--warn-soft)}
.paytot{display:flex;justify-content:space-between;border-top:2px solid var(--line-strong);margin-top:10px;padding-top:9px;font-weight:800}.paytot b{font-family:var(--mono);font-size:19px;color:var(--good)}
.nginfo{font-size:11px;color:var(--ink-3);text-align:center;margin-top:6px}

/* modals */
.modal{position:fixed;inset:0;background:rgba(10,15,20,.5);display:none;place-items:center;z-index:100;padding:18px}.modal.on{display:grid}
.modal .box{background:var(--surface);border:1px solid var(--line);border-radius:14px;max-width:760px;width:100%;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.4);max-height:88vh;overflow:auto}.modal .box.sm{max-width:440px}.modal .close{float:right;border:0;background:var(--surface-2);width:28px;height:28px;border-radius:7px;color:var(--ink-2)}.modal h3{font-size:17px;font-weight:800;margin-bottom:4px}
.dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin-top:12px;font-size:13.5px}.dl dt{color:var(--ink-3);font-weight:700}.dl dd{margin:0;font-weight:600}

/* feedback */
.fbfab{position:fixed;right:14px;bottom:14px;z-index:60;background:var(--accent);color:#fff;border:0;border-radius:22px;padding:9px 15px;font-weight:800;font-size:12.5px;box-shadow:var(--shadow);opacity:.68;transition:opacity .15s;display:flex;align-items:center;gap:6px}.fbfab:hover{opacity:1}

/* toast */
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:200;background:var(--ink);color:var(--bg);font-weight:700;font-size:13px;padding:10px 16px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transition:opacity .2s,transform .2s}
.toast.on{opacity:1;transform:translateX(-50%) translateY(-4px)}.toast.success{background:var(--good);color:#fff}.toast.warning{background:var(--warn);color:#fff}.toast.error{background:var(--crit);color:#fff}

/* print */
#printRoot{display:none}
@media print{body{background:#fff}.appbar,.subnav,.fbfab,.no-print{display:none!important}body *{visibility:hidden}#printRoot,#printRoot *{visibility:visible}#printRoot{display:block;position:absolute;left:0;top:0;width:100%;padding:24px;color:#000}#printRoot .pr-line{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #ccc;font-size:14px}#printRoot .pr-line.sub{font-size:12px;color:#444;padding-left:14px}#printRoot .pr-tot{display:flex;justify-content:space-between;font-weight:800;font-size:18px;border-top:2px solid #000;margin-top:8px;padding-top:10px}#printRoot h2{font-size:20px;margin-bottom:4px}#printRoot .pr-sign{margin-top:44px;border-top:1px solid #000;width:70%;padding-top:6px;font-size:13px}}

/* 運行タスクの進捗（事務所到着 → 女の子キャッチ → 完了）。
   以前は「完了通知」1つだけで、内勤はどこまで進んだか分からなかった。 */
/* ログイン：前回の人としてワンタップで戻る */
.quicklogin{margin:0 0 16px}
.quickbtn{width:100%;font-size:16px;padding:14px 12px}
/* スカウト管理：月末締めの積立額チップ */
.sbchip{font-size:12px;font-weight:700;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:20px;padding:3px 10px;white-space:nowrap}
.sbchip b{color:var(--accent-ink)}
.sbprev{font-weight:600;opacity:.65}
/* 月報：月の切り替え行と構成比バー */
/* 日報の編集ボタン（赤は取消だけ）と、折り返さない操作列 */
.minibtn.ok{color:var(--ink-2)}.minibtn.ok:hover{color:var(--accent-ink);border-color:var(--accent)}
.minibtn+.minibtn{margin-left:6px}
.nowrap{white-space:nowrap}
/* 受付の自走手当：選択中のプリセット */
.presets button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.mrnav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mbar{display:inline-block;width:110px;height:8px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);vertical-align:middle;overflow:hidden}
.mbar>i{display:block;height:100%;background:var(--accent)}
.mpct{font-family:var(--mono);font-size:11px;color:var(--ink-2)}
.mrow0 td{color:var(--ink-2);opacity:.5}
.progrow{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.pstep{font-size:10.5px;font-weight:700;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);padding:2px 7px;border-radius:999px;white-space:nowrap}
.pstep.on{color:var(--good);background:var(--good-soft);border-color:var(--good)}
/* ドライバー画面の進捗ボタン。狭い画面では縦に積んで押しやすくする。 */
.stepbtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.stepbtns .cbtn{flex:1 1 auto;min-width:120px}
@media (max-width:700px){.stepbtns{flex-direction:column}.stepbtns .cbtn{width:100%}}

/* ---------- AI返信（2026-11-09）：候補を人が選んで送る画面。LINEのような吹き出し ---------- */
.aichat-badge { display:inline-block; min-width:18px; padding:0 5px; margin-left:4px; border-radius:9px; background:var(--crit); color:#fff; font-size:11px; line-height:18px; text-align:center; }
.aichat-badge.hidden { display:none; }
.aichat { display:grid; grid-template-columns:280px 1fr; gap:12px; min-height:70vh; }
.aichat-list { border:1px solid var(--line); border-radius:10px; overflow:auto; max-height:78vh; background:var(--surface,#fff); }
.aichat-item { display:block; width:100%; text-align:left; padding:10px 12px; border:0; border-bottom:1px solid var(--line); background:none; cursor:pointer; color:inherit; font:inherit; }
.aichat-item.on { background:var(--surface-2,#eef3f7); }
.aichat-item-h { display:flex; gap:6px; align-items:center; }
.aichat-ch { font-size:11px; padding:1px 6px; border-radius:6px; background:var(--surface-2,#eef3f7); color:var(--sub,#666); }
.aichat-pend { margin-left:auto; background:var(--crit); color:#fff; border-radius:9px; font-size:11px; padding:0 6px; }
.aichat-prob { background:#e6a100; color:#fff; border-radius:9px; font-size:11px; padding:0 6px; }
.aichat-last { font-size:12px; color:var(--sub,#666); margin-top:3px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.aichat-room { border:1px solid var(--line); border-radius:10px; display:flex; flex-direction:column; overflow:hidden; background:#8cabd8; }
.aichat-head { padding:10px 14px; background:#273246; color:#fff; }
.aichat-msgs { flex:1; overflow:auto; padding:12px 14px; max-height:46vh; }
.lrow { display:flex; margin:8px 0; } .lrow.l { justify-content:flex-start; } .lrow.r { justify-content:flex-end; }
.lb { max-width:78%; padding:8px 12px; border-radius:15px; line-height:1.5; font-size:14px; word-break:break-word; color:#111; }
.lrow.l .lb { background:#fff; border-top-left-radius:4px; } .lrow.r .lb { background:#a6e276; border-top-right-radius:4px; }
.lja { margin-top:5px; padding-top:5px; border-top:1px dashed rgba(0,0,0,.2); font-size:12px; color:#555; }
.aichat-hist { background:var(--surface,#fff); padding:6px 12px; border-top:1px solid var(--line); }
.aichat-cand { background:var(--surface,#fff); padding:10px 12px; border-top:2px solid var(--warn,#e6a100); }
.aichat-cand textarea { width:100%; box-sizing:border-box; margin:6px 0; font:inherit; font-size:14px; padding:8px; border-radius:8px; border:1px solid var(--line); }
.aichat-cand textarea[readonly] { background:var(--surface-2,#f4f6f8); }
.aichat-btns { display:flex; gap:8px; flex-wrap:wrap; }
@media (max-width: 760px) { .aichat { grid-template-columns:1fr; } }

/* AI返信：返事の選択肢（2026-11-09） */
.aichat-opts { display:flex; flex-direction:column; gap:6px; margin:6px 0; }
.aichat-opt { display:flex; gap:8px; align-items:flex-start; padding:8px 10px; border:1px solid var(--line); border-radius:10px; cursor:pointer; background:var(--surface-2,#f4f6f8); }
.aichat-opt.on { border-color:#06c755; background:#eafbe9; }
.aichat-opt input { margin-top:3px; }
.aichat-opt-n { font-weight:700; color:#06c755; }
.aichat-opt-b { font-size:13px; line-height:1.5; }

/* AI返信：選択肢は日本語を大きく、送る文（お客さんの言語）は小さく（2026-11-09） */
.aichat-opt-l { font-size:11px; color:var(--sub,#666); }
.aichat-opt-ja { font-size:14px; font-weight:600; }
.aichat-opt-src { display:block; margin-top:4px; font-size:12px; color:var(--sub,#666); }

/* アカウント連携（2026-11-09） */
.acc-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:14px; }
.acc-st.acc-connected { color:var(--good,#1a8f3c); } .acc-st.acc-waiting_qr { color:#e6a100; } .acc-st.acc-unknown, .acc-st.acc-error, .acc-st.acc-logged_out { color:var(--crit,#c0392b); }
.acc-qr { width:100%; max-width:520px; border:1px solid var(--line); border-radius:8px; display:block; margin:6px 0; }

/* AI返信：未読（返事待ち）の会話は赤い字（2026-11-09） */
.aichat-item.unread b, .aichat-item.unread .aichat-last { color:var(--crit,#c0392b); font-weight:700; }


/* AI返信：見やすさの直し（2026-11-09 ユーザー指摘「選んだ会話の文字が白で背景も白・余白が多い」）
   ・会話の一覧は色をはっきり指定（全体のボタンの色を引き継がない）。選んでいる会話は濃い青の背景＋白文字
   ・余白を詰める */
.aichat { gap:8px; min-height:0; grid-template-columns:240px 1fr; }
.aichat-list { max-height:calc(100vh - 210px); }
.aichat-item { padding:7px 10px; background:#fff; color:#1d2733; }
.aichat-item:hover { background:#f1f5f9; }
.aichat-item .aichat-last { color:#5b6673; }
.aichat-item.on { background:#1f4e8c; color:#fff; }
.aichat-item.on .aichat-last, .aichat-item.on .aichat-ch { color:#e6eefb; background:transparent; }
.aichat-item.unread:not(.on) b, .aichat-item.unread:not(.on) .aichat-last { color:#c0392b; }
.aichat-item.on.unread b { color:#fff; }
.aichat-head { padding:6px 12px; }
.aichat-msgs { padding:6px 10px; max-height:38vh; }
.lrow { margin:4px 0; }
.lb { padding:6px 10px; font-size:14px; }
.aichat-hist { padding:4px 10px; } .aichat-hist .note { margin:2px 0; }
.aichat-cand { padding:6px 10px; }
.aichat-opts { gap:4px; margin:4px 0; }
.aichat-opt { padding:6px 8px; color:#1d2733; background:#f6f8fa; }
.aichat-opt.on { background:#e7f7e9; border-color:#1a8f3c; }
.aichat-cand textarea { margin:4px 0; padding:6px; font-size:13px; }
.aichat-cand textarea[readonly] { display:none; }   /* 選んだ文は選択肢に出ているので、直す時だけ入力欄を出す */
.aichat-btns .btn { padding:6px 12px; }
#main .page-h .page-sub { margin:2px 0 6px; }

/* AI返信：選択肢を左寄せで1件ずつコンパクトに（2026-11-09 ユーザー指摘「右に寄って見にくい」）
   原因＝全体の input { width:100% } が丸ボタンにも効いて、文字が右へ押し出されていた */
.aichat-opts { gap:3px; }
.aichat-opt { display:flex !important; align-items:flex-start; gap:6px; padding:5px 8px; text-align:left; width:100%; box-sizing:border-box; }
.aichat-opt input[type="radio"] { width:auto !important; min-width:0; height:auto; margin:3px 0 0; flex:0 0 auto; }
.aichat-opt-n { flex:0 0 auto; min-width:14px; font-size:13px; line-height:1.4; }
.aichat-opt-b { flex:1 1 auto; text-align:left; line-height:1.35; }
.aichat-opt-l { display:none; }          /* 「候補1」などの名前は番号と重なるので出さない */
.aichat-opt-l + br { display:none; }
.aichat-opt-ja { font-size:13.5px; font-weight:600; }
.aichat-opt-src { font-size:11.5px; margin-top:2px; }
.aichat-cand > .note { margin:0 0 2px; font-size:12px; }
.aichat-btns { margin-top:4px; }
.lja { margin-top:3px; padding-top:3px; font-size:12px; }

/* AI返信：会話の一覧をコンパクトに（アプリのマーク＋名前＋時刻／アプリ名＋最後の文）2026-11-09 */
.aichat { grid-template-columns:260px 1fr; }
.aichat-list { background:#fff; border-radius:10px; }
.aichat-item { display:flex !important; align-items:center; gap:9px; padding:7px 10px; border-bottom:1px solid #eef1f4; text-align:left; }
.aichat-item .chicon { flex:0 0 auto; }
.aichat-item-body { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:1px; }
.aichat-item-h { display:flex; align-items:baseline; gap:6px; }
.aichat-item-h b { flex:1 1 auto; min-width:0; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aichat-time { flex:0 0 auto; font-size:11px; color:#8a94a6; }
.aichat-last { display:block; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin:0; }
.aichat-chname { display:inline-block; font-size:10.5px; font-weight:700; padding:0 5px; margin-right:5px; border-radius:4px; color:#fff; vertical-align:1px; }
.aichat-chname.ch-WhatsApp { background:#25D366; } .aichat-chname.ch-Telegram { background:#2AABEE; }
.aichat-item .aichat-pend { flex:0 0 auto; margin-left:0; min-width:18px; height:18px; line-height:18px; text-align:center; padding:0 5px; border-radius:9px; font-weight:700; }
.aichat-item.on { background:#1f4e8c; }
.aichat-item.on .aichat-time { color:#cfe0f7; }
.aichat-item.on .aichat-chname { box-shadow:0 0 0 1px rgba(255,255,255,.6); }
.aichat-head { display:flex; align-items:center; gap:8px; }
.aichat-head .aichat-chname { margin-left:4px; }
/* 過去に送った返事（学習）は青い印で目立たせる */
.aichat-opt.past .aichat-opt-l { display:inline-block; font-size:10.5px; font-weight:700; color:#fff; background:#1f4e8c; padding:0 6px; border-radius:4px; margin-bottom:2px; }
.aichat-opt.past .aichat-opt-l + br { display:none; }
.aichat-editbox { margin:4px 0; } .aichat-editbox.hidden { display:none; }
.aichat-editbox textarea { display:block !important; width:100%; box-sizing:border-box; }

/* 会話を選ぶ前の右側は白に（2026-11-09） */
.aichat-room:has(> .placeholder) { background:#fff; }


/* ============================================================
   AI返信・アカウント連携の色（2026-11-09）：明るい／暗いの切り替えに合わせる。白の直接指定はやめる
   ============================================================ */
:root{
  --chat-room:#d9cfbb; --chat-you:#fffaf0; --chat-me:#c3e8a5; --chat-me-ink:#1e2a14; --chat-you-ink:#1e1a14; --chat-sel:#24507f; --chat-sel-ink:#fff;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --chat-room:#111a22; --chat-you:#26323d; --chat-me:#2c5233; --chat-me-ink:#e9f6e4; --chat-you-ink:#eef3f6; --chat-sel:#2f6db5; --chat-sel-ink:#fff;
}}
:root[data-theme="dark"]{
  --chat-room:#111a22; --chat-you:#26323d; --chat-me:#2c5233; --chat-me-ink:#e9f6e4; --chat-you-ink:#eef3f6; --chat-sel:#2f6db5; --chat-sel-ink:#fff;
}
.aichat-list { background:var(--surface); border:1px solid var(--line-strong); }
.aichat-item { background:var(--surface); color:var(--ink); border-bottom:1px solid var(--line); }
.aichat-item:hover { background:var(--surface-2); }
.aichat-item .aichat-last, .aichat-time { color:var(--ink-2); }
.aichat-item.on { background:var(--chat-sel); color:var(--chat-sel-ink); }
.aichat-item.on .aichat-last, .aichat-item.on .aichat-time { color:var(--chat-sel-ink); opacity:.85; }
.aichat-item.unread:not(.on) b, .aichat-item.unread:not(.on) .aichat-last { color:var(--crit); }
.aichat-room { background:var(--chat-room); border:1px solid var(--line-strong); }
.aichat-room:has(> .placeholder) { background:var(--surface); }
.aichat-head { background:var(--chat-sel); color:var(--chat-sel-ink); }
.lrow.l .lb { background:var(--chat-you); color:var(--chat-you-ink); border:1px solid var(--line); }
.lrow.r .lb { background:var(--chat-me); color:var(--chat-me-ink); }
.lja { color:inherit; opacity:.75; border-top-color:currentColor; }
.aichat-hist, .aichat-cand { background:var(--surface); color:var(--ink); border-top:1px solid var(--line-strong); }
.aichat-cand { border-top:3px solid var(--warn); }
.aichat-opt { background:var(--surface-2); color:var(--ink); border:1px solid var(--line-strong); }
.aichat-opt.on { background:var(--good-soft); border-color:var(--good); }
.aichat-opt-src, .aichat-opt-l { color:var(--ink-2); }
.aichat-opt-n { color:var(--good); }
.aichat-cand textarea, .aichat-editbox textarea { background:var(--surface); color:var(--ink); border:1px solid var(--line-strong); }
.acc-card { background:var(--surface); border:1px solid var(--line-strong); }
/* 運行タスク：ドライバー別・女の子別・完了したもの のタブ（2026-11-10） */
.rt-tabs { display:flex; gap:6px; margin:4px 0 10px; flex-wrap:wrap; }
.rt-tab { padding:6px 14px; border-radius:999px; border:1px solid var(--line-strong); background:var(--surface-2); color:var(--ink); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.rt-tab.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.rt-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); gap:10px; }
.rt-group { border:1px solid var(--line-strong); border-radius:10px; padding:8px; background:var(--surface-2); }
.rt-group-h { font-weight:700; margin:0 0 6px 2px; }
.rt-group .task { margin:6px 0 0; }

/* 精算（2026-11-10）：終わった仕事ごとに ①精算する ②給料を渡した */
.rt-settle { border:2px solid var(--warn); border-radius:10px; padding:8px; background:var(--surface); }
.rt-settle-row { display:grid; grid-template-columns:1.2fr 2fr auto; gap:10px; align-items:center; padding:8px; border-top:1px solid var(--line); }
.rt-settle-row.paid { opacity:.6; }
.rt-money { display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--ink-2); }
.rt-money span { display:flex; flex-direction:column; } .rt-money b { font-size:15px; color:var(--ink); }
.rt-settle-btns { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.rt-st { font-size:11px; font-weight:700; padding:1px 7px; border-radius:999px; margin-left:4px; }
.rt-st.wait { background:var(--warn-soft); color:var(--warn); } .rt-st.mid { background:var(--blue-soft); color:var(--blue); } .rt-st.ok { background:var(--good-soft); color:var(--good); }
@media (max-width:900px) { .rt-settle-row { grid-template-columns:1fr; } .rt-settle-btns { justify-content:flex-start; } }

/* スマホ幅で1列にした時、中の表の幅に引っぱられて画面が横に広がらないようにする（2026-11-10）。
   1fr だと列が中身の最小幅まで広がり、表の横スクロール（.tblwrap）が効かなかった。 */
@media(max-width:980px){.intake3{grid-template-columns:minmax(0,1fr)}}
@media(max-width:820px){.g2,.g3,.cols,.settle,.shiftwrap{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.histgrid{grid-template-columns:minmax(0,1fr)}}
/* 2026-11-11 配車ボード：女の子ごとのカード（今日の状況・件数・精算） */
.girlgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.girl-card{border:1px solid var(--line);border-left:5px solid var(--line-strong);border-radius:10px;padding:10px 12px;background:var(--panel,var(--bg-2,transparent));min-width:0}
.girl-card.gc-good{border-left-color:var(--good)}.girl-card.gc-crit{border-left-color:var(--crit)}.girl-card.gc-idle{border-left-color:var(--warn)}
.girl-card.gc-done{border-left-color:var(--accent)}.girl-card.gc-good-soft{border-left-color:var(--blue,var(--accent))}.girl-card.gc-off{opacity:.75}
.girl-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:700}
.girl-st{font-size:13px;padding:2px 8px;border-radius:999px;background:var(--line);white-space:nowrap}
.gc-good .girl-st{background:var(--good-soft);color:var(--good)}.gc-crit .girl-st{background:var(--crit-soft);color:var(--crit)}
.girl-sum{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;margin:6px 0 2px}
.girl-rows{display:grid;gap:6px;margin-top:6px}
.girl-row{border-top:1px dashed var(--line);padding-top:6px;display:grid;gap:4px}
.girl-row-t{font-size:13px;overflow-wrap:anywhere}
.girl-row-s{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* 2026-11-11 ドライバーアプリ：今の状況のボタン（待機中・移動中・退勤） */
.drv-self{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 2px}
.drv-self-b{font:inherit;font-size:16px;font-weight:700;padding:12px 6px;border-radius:12px;border:2px solid var(--line-strong,var(--line));background:var(--surface);color:var(--ink-2,inherit);cursor:pointer}
.drv-self-b.on{border-color:var(--accent);background:var(--accent);color:#fff}
.pill.drv-moving{background:#e0f2fe;color:#0369a1;border:1px solid #7dd3fc}
/* 2026-11-11 女の子のカードを見やすく（文字を大きく・状況を目立たせる・1件ずつを区切る） */
.girl-card{padding:12px 14px}
.girl-h .who2{font-size:17px}
.girl-st{font-size:14px;font-weight:700;padding:4px 10px}
.girl-sum{font-size:14px;gap:10px;margin:8px 0 4px}
.girl-sum b{font-size:16px}
.girl-row{background:var(--surface);border:1px solid var(--line);border-top:1px solid var(--line);border-radius:8px;padding:8px 10px}
.girl-row-t{font-size:14px}
.girl-row-t b{font-size:15px;margin-right:4px}
.girl-row-s .btn{font-size:14px;padding:6px 12px}

/* AI返信：吹き出しの時刻・いつでも書いて送れる入力欄（2026-11-12） */
.lrow { flex-wrap: wrap; }
.lt { flex-basis: 100%; font-size: 11px; color: var(--ink-3); margin-top: 3px; }
.lrow.r .lt { text-align: right; } .lrow.l .lt { text-align: left; }
.lt-reply { margin-left: 8px; color: var(--good); font-weight: 700; }
.aichat-compose { display: flex; gap: 8px; align-items: flex-end; padding: 10px 12px; border-top: 1px solid var(--line); background: var(--surface, #fff); }
.aichat-compose textarea { flex: 1; min-height: 44px; max-height: 160px; resize: vertical; font: inherit; font-size: 14px; padding: 9px 11px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface-2, #f4f6f8); color: inherit; }

/* 顧客DB：お客様の情報を直す欄（2026-11-12） */
.custedit { margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); }
.custedit > .k { font-size: 12px; font-weight: 800; color: var(--ink-2); margin-bottom: 8px; }
.custedit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.custedit-grid label.lb input { width: 100%; margin-top: 4px; font-weight: 400; }
.custedit-ng { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--crit); cursor: pointer; }
.custedit-ng input { width: auto; }
@media (max-width: 640px) { .custedit-grid { grid-template-columns: 1fr; } }

/* 配車ボード：今日のまとめ・給与精算への近道（2026-11-12） */
.boardsum { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 4px; }
.bsum { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 96px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); cursor: default; text-align: left; }
.bsum[data-go] { cursor: pointer; }
.bsum-v { font-size: 18px; font-weight: 800; line-height: 1.1; }
.bsum-l { font-size: 11px; color: var(--ink-3); font-weight: 700; }
.bsum.good .bsum-v { color: var(--good); } .bsum.warn { border-color: var(--warn); background: var(--warn-soft); } .bsum.warn .bsum-v { color: var(--warn); }
.bsum.crit { border-color: var(--crit); background: var(--crit-soft); } .bsum.crit .bsum-v { color: var(--crit); }
.gosal { cursor: pointer; }
span.gosal:hover { text-decoration: underline; text-underline-offset: 3px; }
.girl-act, .col-act { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.col-act { margin: 0 0 8px; }
.girl-card.gc-allin { box-shadow: inset 0 0 0 2px var(--good); }

/* 給与精算：配車ボードから来たときは、印刷のボタンを光らせて「次はこれ」と分かるように（2026-11-12） */
#printBtn.pr-ready { background: var(--accent) !important; color: #fff !important; border-color: var(--accent) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent); animation: pr-ready 1.6s ease-in-out infinite; }
@keyframes pr-ready { 0%, 100% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent); } 50% { box-shadow: 0 0 0 10px transparent; } }
@media (prefers-reduced-motion: reduce) { #printBtn.pr-ready { animation: none; } }

/* 配車ボード：接客中・次に空く・ドライバーの今日の合計・店にまだ（2026-11-12） */
.boardlive { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 12px 0 4px; }
@media (max-width: 900px) { .boardlive { grid-template-columns: 1fr; } }
.bl-card h3 { margin-bottom: 8px; }
.bl-row { display: grid; grid-template-columns: minmax(80px, auto) auto 1fr auto; gap: 8px; align-items: center; padding: 7px 4px; border-bottom: 1px dashed var(--line); font-size: 13px; }
.bl-row[data-id] { cursor: pointer; }
.bl-row:last-child { border-bottom: 0; }
.bl-name { font-weight: 800; white-space: nowrap; }
.bl-time { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; padding: 2px 8px; border-radius: 999px; font-size: 12px; }
.bl-time.good { color: var(--good); background: var(--good-soft); } .bl-time.warn { color: var(--warn); background: var(--warn-soft); } .bl-time.crit { color: #fff; background: var(--crit); } .bl-time.idle { color: var(--ink-2); background: var(--surface-2); }
.bl-sub { color: var(--ink-3); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-drv { font-size: 12px; font-weight: 700; white-space: nowrap; } .bl-drv.none { color: var(--crit); }
.col-sum { font-size: 12px; color: var(--ink-2); margin: 2px 0 6px; }
.rt-st.owes { background: var(--crit); color: #fff; }
.girl-card.gc-owes { box-shadow: inset 0 0 0 2px var(--crit); }
.owes-bar { margin: -4px -4px 8px; padding: 6px 10px; border-radius: 10px; background: var(--crit-soft); color: var(--crit); font-size: 12px; font-weight: 700; }
