/* 株式会社関東千葉交通 業務管理システム
   オレンジ基調・スマホ優先(タップしやすさ・表の見やすさ重視) */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --orange: #EA6A00;        /* メイン */
  --orange-dark: #C25400;   /* 濃い(押下・ヘッダー) */
  --orange-deep: #8F3D00;   /* 文字用の濃橙 */
  --orange-pale: #FFF3E6;   /* 表ヘッダー等の薄橙 */
  --orange-bg: #FFF9F2;     /* 縞・背景 */
  --line: #555555;          /* 罫線 */
  --ink: #33261A;           /* 本文 */
  --sub: #8A7460;           /* 補足文字 */
}
body { font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  background: #F2E6D4; color: var(--ink); min-height: 100vh; display: flex; flex-direction: column; }

/* ===== ヘッダー ===== */
.topbar { background: var(--orange); color: #fff; display: flex; align-items: center;
  gap: 16px; padding: calc(10px + env(safe-area-inset-top)) 14px 10px; flex-wrap: wrap; }
.brand { font-weight: 700; font-size: 15px; }
.backbtn { background: rgba(255,255,255,.22); color: #fff; border: none; border-radius: 9px;
  padding: 7px 12px; font-size: 14px; font-weight: 800; line-height: 1; cursor: pointer; flex: 0 0 auto; }
.backbtn:active { background: rgba(255,255,255,.4); }
.pageback { display: flex; width: fit-content; align-items: center; gap: 4px; margin: 18px auto 4px;
  background: #ECEFF1; color: #37474F; border: 1px solid #cfd8dc; border-radius: 10px;
  padding: 9px 15px; font-size: 14px; font-weight: 800; text-decoration: none; }
.pageback:active { background: #cfd8dc; }
.topbar nav { display: flex; gap: 2px; flex-wrap: wrap; }
.topbar nav a { color: #FFE8D2; text-decoration: none; padding: 6px 10px; border-radius: 8px; font-size: 13px; }
.topbar nav a:hover { background: var(--orange-dark); color: #fff; }
.userbox { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.badge { font-size: 12px; padding: 4px 10px; border-radius: 999px; background: var(--orange-dark); }
.logout { color: #FFE8D2; font-size: 12px; }

main { flex: 1; width: 100%; max-width: 1050px; margin: 0 auto; padding: 18px 12px 44px; }
footer { text-align: center; color: var(--sub); font-size: 11px; padding: 14px; }
h1 { font-size: 20px; margin-bottom: 14px; color: var(--orange-deep); }
h2 { font-size: 17px; margin: 18px 0 10px; color: #222; }
.flash { background: #FFF0C2; border: 1.5px solid #E0A320; padding: 11px 14px;
  border-radius: 10px; margin-bottom: 12px; font-size: 14px; }
.card { background: #fff; border: 1.5px solid #555; border-radius: 14px;
  padding: 16px; margin-bottom: 14px; box-shadow: 0 2px 8px rgba(140, 80, 20, .12); }
.card h2 { border-left: 6px solid var(--orange); padding-left: 9px; border-radius: 2px; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.stat { text-align: center; }
.stat .num { font-size: 26px; font-weight: 700; color: var(--orange); }
.stat .label { color: var(--sub); font-size: 12px; margin-top: 2px; }

/* ===== 表(見やすさ重視: 薄橙ヘッダー+縞模様) ===== */
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { border: 1px solid var(--line); padding: 9px 10px; font-size: 13.5px; text-align: left; }
th { background: var(--orange-pale); white-space: nowrap; color: var(--orange-deep); }
tbody tr:nth-child(even) td, tr:nth-child(even) td { background: var(--orange-bg); }
tr:hover td { background: #FFEFDD; }

/* ===== ボタン(タップしやすさ: 高さ48px以上) ===== */
a.btn, button.btn, span.btn { display: inline-flex; align-items: center; justify-content: center;
  background: var(--orange); color: #fff; border: none;
  min-height: 48px; padding: 10px 20px; border-radius: 12px; font-size: 15px;
  font-weight: 600; cursor: pointer; text-decoration: none; }
a.btn:hover, button.btn:hover, a.btn:active, button.btn:active { background: var(--orange-dark); }
/* 色バリエーション(.btn.btn-X で基本色より必ず優先=最初からこの色) */
a.btn.btn-sub, button.btn.btn-sub, .btn.btn-sub { background: #7C6A58; }
a.btn.btn-sub:hover, button.btn.btn-sub:hover, .btn.btn-sub:active { background: #63523F; }
a.btn.btn-danger, button.btn.btn-danger, .btn.btn-danger { background: #C62828; }
a.btn.btn-danger:hover, button.btn.btn-danger:hover, .btn.btn-danger:active { background: #A31F1F; }
.btn-big { width: 100%; min-height: 56px; padding: 14px 12px; font-size: 17px; margin: 6px 0; }
.btn-small { min-height: 42px; padding: 6px 14px; font-size: 13px; }
/* 用途別カラー(.btn.btn-X で基本色より必ず優先=最初からこの色) */
a.btn.btn-blue, button.btn.btn-blue, .btn.btn-blue { background: #1565C0; }
a.btn.btn-blue:hover, button.btn.btn-blue:hover, .btn.btn-blue:active { background: #0F4C93; }
a.btn.btn-green, button.btn.btn-green, .btn.btn-green { background: #2E7D32; }
a.btn.btn-green:hover, button.btn.btn-green:hover, .btn.btn-green:active { background: #1F5B23; }
a.btn.btn-yellow, button.btn.btn-yellow, .btn.btn-yellow { background: #F5B700; color: #4A3A00; }
a.btn.btn-yellow:hover, button.btn.btn-yellow:hover, .btn.btn-yellow:active { background: #D9A200; }
a.btn.btn-teal, button.btn.btn-teal, .btn.btn-teal { background: #00838F; }
a.btn.btn-teal:hover, button.btn.btn-teal:hover, .btn.btn-teal:active { background: #00646E; }
/* 枠サイズはそのまま文字だけ大きく */
.btn-loud { font-size: 18px !important; }
.stamp-btn { font-size: 19px; min-height: 62px; width: 100%; margin: 5px 0; }

/* ===== 入力(指で押しやすい高さ・iOSズーム防止16px) ===== */
form.doc label { display: block; font-weight: 600; font-size: 13.5px; margin: 14px 0 5px;
  color: var(--orange-deep); }
form.doc input, form.doc textarea, form.doc select {
  width: 100%; min-height: 48px; padding: 10px 12px; border: 1.5px solid #666;
  border-radius: 10px; font-size: 16px; font-family: inherit; background: #fff; }
form.doc input:focus, form.doc textarea:focus, form.doc select:focus {
  outline: 2px solid var(--orange); border-color: var(--orange); }
form.doc input[type=checkbox] { width: auto; min-height: auto; transform: scale(1.4); margin-right: 8px; }
form.doc textarea { min-height: 70px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 12px; }
@media (max-width: 640px) { .grid2, .grid3 { grid-template-columns: 1fr; } }

/* ラジオ・チェック行(縦潰れ防止: width100%継承を打ち消す) */
.radio-row { display: flex; gap: 12px 18px; padding: 6px 0; flex-wrap: wrap; }
.radio-row label { font-weight: normal !important; display: inline-flex !important;
  align-items: flex-start; gap: 10px; font-size: 16px !important; line-height: 1.6;
  white-space: normal; padding: 8px 4px; }
.radio-row input, form.doc input[type=radio] {
  width: auto !important; min-height: auto !important; flex: 0 0 auto; margin-top: 3px;
  transform: scale(1.45); transform-origin: left top; }

/* ===== 状態表示 ===== */
.status { font-size: 11px; padding: 3px 10px; border-radius: 999px; font-weight: 700; white-space: nowrap; }
.st-wait { background: #FFF0C2; color: #7A5B00; }
.st-ok { background: #D9F2DD; color: #1E6B2A; }
.st-ng { background: #FBD9D5; color: #8F1D16; }
pre.docbody { white-space: pre-wrap; font-family: inherit; line-height: 1.85; font-size: 13.5px; }
.meta { color: var(--sub); font-size: 12.5px; }
.toolbar { display: flex; gap: 8px; align-items: stretch; margin-bottom: 12px; flex-wrap: wrap; }
.toolbar form { display: inline; }
.warn { background: #FDEBD7; border: 1.5px solid var(--orange); color: var(--orange-deep);
  padding: 10px 12px; border-radius: 10px; font-size: 13.5px; margin-bottom: 12px; }
.login-wrap { max-width: 400px; margin: 40px auto; }
.copybox { width: 100%; padding: 8px; font-size: 12px; border: 1.5px dashed var(--orange);
  border-radius: 8px; background: #fff; }
.moneytable th { width: 45%; }
.moneytable td { text-align: right; font-variant-numeric: tabular-nums; }
.bigmoney { font-size: 22px; font-weight: 700; color: var(--orange); }  /* 確定額=オレンジ */
td.neg, .neg { color: #C62828 !important; font-weight: 700; }              /* マイナス=赤 */
td.pos, .pos { color: #1565C0 !important; font-weight: 700; }              /* プラス=青 */
img.thumb { max-width: 180px; max-height: 130px; border: 1px solid #ccc; border-radius: 8px; }
.checkrow { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.checkrow label { font-weight: normal !important; display: inline-flex !important;
  align-items: center; gap: 4px; font-size: 13px !important; }

/* ===== ☰メニュー ===== */
.hmenu { position: relative; margin-left: auto; }
.hmenu summary { list-style: none; cursor: pointer; font-size: 26px; color: #fff;
  padding: 6px 16px; border-radius: 10px; background: var(--orange-dark); user-select: none; }
.hmenu summary::-webkit-details-marker { display: none; }
.hmenu-nav { position: absolute; right: 0; top: 50px; background: #fff; color: var(--ink);
  border: 1px solid var(--line); border-radius: 14px; padding: 10px; display: flex;
  flex-direction: column; gap: 8px; min-width: 310px; z-index: 100;
  box-shadow: 0 8px 22px rgba(120, 60, 0, .22);
  /* タブレットの作業バー・下部ナビと重ならないよう画面内に収めて縦スクロール可能に
     (横スクロール禁止・.topbar navのflex-wrap:wrap継承で縦2列になるのを防ぐ) */
  max-height: calc(100vh - 150px - env(safe-area-inset-bottom));
  overflow-y: auto; overflow-x: hidden; max-width: calc(100vw - 16px);
  flex-wrap: nowrap !important; }
.hmenu-nav a { flex-shrink: 0; }
.hmenu-nav a { white-space: normal; word-break: break-word; }
.topbar .hmenu-nav a, .hmenu-nav a { color: #000 !important; text-decoration: none;
  padding: 19px 18px !important; border-radius: 10px;
  font-size: 20px !important; font-weight: 700; }
.hmenu-nav a:hover, .hmenu-nav a:active { background: var(--orange-pale); }
.hmenu-nav .meta { padding: 6px 14px 10px; border-bottom: 1px solid var(--line); font-size: 14px; }

/* 数値入力の上下スピナー(▲▼)廃止: 直接入力のみ */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; appearance: textfield; }

/* 金額表は「項目の下に金額」の縦積み(横スクロール不要・老眼対応の大きな数字) */
@media (max-width: 900px) {
  .stacktable tr { display: block; border-bottom: 1px solid var(--line); }
  .stacktable th, .stacktable td { display: block; width: 100% !important;
    border: none; padding: 9px 10px 2px; background: transparent !important;
    white-space: normal; font-size: 15.5px; color: #222; font-weight: 700; }
  .stacktable td { text-align: right; padding: 0 10px 10px;
    font-size: 20px; font-weight: 700; }
  .stacktable td.bigmoney, .stacktable .bigmoney { font-size: 24px; }
  .stacktable tr:nth-child(even) { background: var(--orange-bg); }
}

/* コンパクトな金額表(暫定売上など): 縦積みでも小さめ表示 */
@media (max-width: 900px) {
  .stacktable.stacktable-sm th { font-size: 14px !important; color: #222 !important; padding: 5px 8px 1px !important; }
  .stacktable.stacktable-sm td { font-size: 15px !important; font-weight: 600 !important;
    padding: 0 8px 6px !important; }
  .stacktable.stacktable-sm td.bigmoney, .stacktable.stacktable-sm .bigmoney { font-size: 26px !important; }
}

/* 追加・キャンセル料金の開閉タブ(開いた状態が一目で分かる配色) */
details.feebox { border-radius: 12px; margin: 10px 0; }
details.feebox summary { list-style: none; cursor: pointer; font-weight: 700; font-size: 15px;
  min-height: 52px; display: flex; align-items: center; justify-content: center;
  padding: 12px 14px; border-radius: 12px; background: #F57C00; color: #fff;
  border: none; box-shadow: 0 2px 5px rgba(120,80,0,.3); text-align: center; }
details.feebox summary::after { content: " ▼ タップで開く"; font-size: 13px; font-weight: 600;
  margin-left: 6px; opacity: .95; }
details.feebox summary::-webkit-details-marker { display: none; }
details.feebox[open] { border: 2px solid #F57C00; background: #FFF9E6; padding: 0 10px 10px; }
details.feebox[open] summary { background: #7A5B00; border-radius: 8px; margin: 8px 0 6px;
  box-shadow: none; }
details.feebox[open] summary::after { content: " ▲ 閉じる"; }

/* ===== スマホ全体調整 ===== */
@media (max-width: 640px) {
  main { padding: 12px 8px 40px; }
  h1 { font-size: 18px; }
  h2 { font-size: 14.5px; }
  .topbar { padding: calc(8px + env(safe-area-inset-top)) 10px 8px; gap: 8px; }
  .brand { font-size: 13px; }
  .radio-row { flex-direction: column; gap: 4px; }
  th, td { font-size: 13px; padding: 8px 7px; word-break: break-word; }
  .btn-big { font-size: 16px; }
  a.btn, button.btn { max-width: 100%; white-space: normal; word-break: break-word; }
  .toolbar { gap: 8px; }
  .toolbar > *, .toolbar form, .toolbar form button { width: 100%; }
  .card { padding: 13px; }
  .copybox { font-size: 11px; }
  table { table-layout: fixed; }
  .stacktable { table-layout: auto; }
}
img, table { max-width: 100%; }

/* ===== ボトムナビ(ドライバー用・スマホアプリ風) 2026-08-06 ===== */
.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;
  background:#fff;border-top:2px solid #555;box-shadow:0 -2px 10px rgba(0,0,0,.08);
  padding-bottom:env(safe-area-inset-bottom)}
.bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:8px 2px 9px;text-decoration:none;color:#6b7684;font-size:11px;font-weight:700}
.bottomnav a .bn-ico{font-size:22px;line-height:1}
.bottomnav a.on{color:var(--orange,#EA6A00)}
body.has-bottomnav main{padding-bottom:calc(92px + env(safe-area-inset-bottom))}

/* ===== 状態サマリーカード(ホーム) ===== */
.hero{background:linear-gradient(135deg,#232b33,#39424d);color:#fff;border-radius:16px;
  padding:16px 16px 14px;margin-bottom:14px}
.hero .hero-state{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:800}
.hero .meta{color:#b6c0ca}
.hero .dot{width:13px;height:13px;border-radius:50%;display:inline-block;flex:0 0 auto}
.dot-green{background:#4ade80;animation:pulse 1.6s infinite}
.dot-orange{background:#ffb84d;animation:pulse 1.6s infinite}
.dot-grey{background:#9aa5b1}
.dot-red{background:#ff6b6b;animation:pulse 1.1s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.35)}70%{box-shadow:0 0 0 9px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.hero .btn{margin-top:12px}

/* ===== ホーム刷新(2026-08-08): 主役を大きく・枠と表を減らす ===== */
.hello{font-size:18px;font-weight:800;margin:2px 0 12px}
.hero-lead{font-size:12.5px;font-weight:800;letter-spacing:.12em;color:#ffcf9a;margin-bottom:6px}
.hero-note{color:#c2ccd6;margin:8px 0 0;font-size:14.5px;line-height:1.5}
.btn-huge{display:block;width:100%;padding:20px 16px;font-size:22px;font-weight:800;
  border-radius:14px;margin-top:16px;text-align:center;box-shadow:0 3px 10px rgba(0,0,0,.25)}
.btn-orange{background:var(--orange,#EA6A00);color:#fff}
.hero-sublabel{margin-top:14px;font-size:13.5px;font-weight:800;color:#c2ccd6}
.hero-sub{display:flex;gap:10px;margin-top:6px}
.hero-sub form{flex:1;margin:0}
.btn-ghost{flex:1;width:100%;background:rgba(255,255,255,.14);color:#fff;
  border:1px solid rgba(255,255,255,.35);font-weight:700;font-size:15px}
/* 1行リンク(すっきり) */
.rowlink{display:block;background:#fff;border:1px solid #DCCDB6;border-radius:12px;
  padding:17px 16px;margin:10px 0;font-size:16.5px;font-weight:800;color:#37474F;text-decoration:none}
.rowlink:active{background:#f4efe6}
.rowlink-green{border-color:#2e7d32;color:#1b5e20;background:#eaf6ec}
.rowlink-sub{font-weight:700;color:#5a6b7a;font-size:15px}
.rowdone{background:#e7f4ea;color:#1b5e20;border-radius:12px;padding:15px 16px;
  margin:10px 0;font-size:16px;font-weight:800;text-align:center}
/* 今日の乗務記録簿(表でなく一覧行) */
.listcard{background:#fff;border:1.5px solid #555;border-radius:12px;padding:4px 14px 10px;margin:12px 0}
.listcard-title{font-weight:800;font-size:15px;margin:12px 2px 4px;color:#5a4a2f}
.dutyrow{display:flex;align-items:center;gap:12px;padding:16px 4px;
  border-top:1px solid #eee;text-decoration:none;color:#263238;font-size:16.5px;font-weight:800}
.dutyrow-no{color:#90a4ae;font-size:14px;font-weight:700;flex:0 0 auto}
.dutyrow-name{flex:1}
.dutyrow-state{margin-left:auto;font-weight:800;font-size:14.5px;text-align:right}
.dutyrow-add{color:var(--orange,#EA6A00);justify-content:center}
.hintbox{background:#f5f7f9;border-radius:10px;padding:14px;margin:-4px 0 10px;
  font-size:14.5px;line-height:1.6;color:#455a64}
.center{text-align:center}
/* 四分割メニュー(田) */
.gridmenu{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.gm{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  background:#fff;border:1.5px solid #DCCDB6;border-radius:14px;padding:20px 10px;min-height:110px;
  text-decoration:none;color:#37474F;font-size:16px;font-weight:800;text-align:center;line-height:1.35}
.gm:active{background:#f4efe6}
.gm-ico{font-size:30px;line-height:1}
/* 運行記録カード(コンパクト・詳細は折りたたみ) */
.ridecard{padding:10px 12px}
.ride-head{display:flex;align-items:center;gap:10px}
.ride-no{background:#ECEFF1;color:#455A64;font-weight:800;font-size:16px;border-radius:8px;
  padding:6px 13px;flex:0 0 auto}
/* 運行記録の状態(色+文字の両方で判別できるように) */
.ride-no-done{background:#2E7D32;color:#fff}
.ride-no-working{background:#9E9E9E;color:#fff}
.ride-state{font-weight:800;font-size:12.5px;border-radius:999px;padding:3px 9px;flex:0 0 auto}
.ride-state-done{background:#E3F4E4;color:#1E6B2A;border:1.5px solid #2E7D32}
.ride-state-working{background:#F1F3F4;color:#555;border:1.5px solid #9E9E9E}
.ridecard-done{border-color:#2E7D32;background:#F7FCF7}
.ride-dispatch{margin-top:6px;font-weight:800;font-size:15px;color:#C62828}
/* 配車の備考(運行ノート内・長文は枠内スクロール) */
.opnote{margin-top:8px;padding:8px 11px;border:2px solid #F9A825;border-radius:9px;
  background:#FFF9E6;font-size:15px;font-weight:700;color:#5a4500;line-height:1.55;
  white-space:pre-wrap;word-break:break-word;max-height:6.4em;overflow-y:auto}
/* 運行ノートの入力(2列・コンパクト) */
.notegrid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.notegrid label{margin-top:6px !important;font-size:13.5px !important;margin-bottom:3px}
.notegrid input{min-height:40px !important;padding:6px 10px !important;font-size:16px}
/* 保存・削除の横並び */
.noterow{display:flex;gap:8px;margin-top:8px;align-items:center}
.noterow .btn{margin:0}
.noterow .btn:first-child{flex:1}
/* 運行ノートの打刻ボタン(3列×2段: 現着/待機/合流・出発/経由地/終了) */
.stampgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:9px}
.stampgrid .btn{width:100%;min-height:50px;font-size:17px;font-weight:800;margin:0;padding:4px 2px}
/* 押せない打刻ボタン=グレーで無反応(順序: 現着→待機/合流/出発→経由地/終了) */
.stampgrid .btn:disabled{background:#c3ced9 !important;color:#7b8794 !important;
  pointer-events:none;box-shadow:none;opacity:1}
/* 完了後の操作ボタン横一列 */
.ride-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.ride-actions .btn{margin:0}
.ride-where{flex:1;font-weight:800;font-size:16.5px;color:#263238;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ride-money{font-weight:800;font-size:16.5px;color:#1565C0;flex:0 0 auto}
.ride-detail{margin-top:8px}
.ride-detail>summary{font-size:14px;color:#5a6b7a;font-weight:700;cursor:pointer;padding:6px 2px}
.ride-detail table{margin-top:6px}
.ride-times{margin-top:6px;font-size:14.5px;font-weight:700;color:#455A64}
/* セクション説明文 */
.section-hint{background:#E3F2FD;border-left:4px solid #1565C0;border-radius:8px;
  padding:11px 14px;margin:14px 0 8px;font-size:15px;font-weight:700;color:#222}
/* 読み込み待ちオーバーレイ(その場に薄い幕+スピナー・連打防止) */
#loadwait{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:14px;
  background:rgba(255,255,255,.55);backdrop-filter:blur(1px)}
#loadwait[hidden]{display:none}
.lw-spin{width:52px;height:52px;border-radius:50%;
  border:6px solid rgba(234,106,0,.25);border-top-color:#EA6A00;
  animation:lwspin .9s linear infinite}
.lw-text{font-size:17px;font-weight:800;color:#5a4a2f;
  background:rgba(255,255,255,.85);padding:6px 16px;border-radius:999px}
@keyframes lwspin{to{transform:rotate(360deg)}}
/* 区切り線(-----文字-----) */
.sectiondivider{display:flex;align-items:center;gap:12px;margin:18px 0 4px;
  font-weight:800;font-size:14.5px;color:#555}
.sectiondivider::before,.sectiondivider::after{content:"";flex:1;border-top:2px dashed #888}
/* 横2列(回収金・回送高速代など) */
.tworow{display:flex;gap:12px;margin:10px 0}
.tworow>*{flex:1}
.tworow .btn{width:100%}
/* 入力項目のグループ枠 */
.fieldbox{border:2px solid #555;border-radius:12px;padding:10px 14px 14px;
  margin:12px 0;background:#FFFDF9}
.fieldbox-title{font-weight:800;font-size:17px;color:#4a3a20;margin:2px 0 6px}
.fieldbox label{margin-top:8px;font-size:15.5px;font-weight:700;color:#222}
.feebox-sky>summary{background:#B3E5FC;color:#01579B;border-color:#4FC3F7}




/* ナビの未完了バッジ */
.navbadge{display:inline-block;background:#C62828;color:#fff;border-radius:999px;
  font-size:11px;font-weight:800;padding:1px 7px;margin-left:6px;vertical-align:middle}

/* 横スクロール表(列の多い管理表用: 文字被り防止) */
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:8px}
.tablewrap table{table-layout:auto !important}
.tablewrap th, .tablewrap td{white-space:nowrap}

/* ドライバー用: 更新ボタン(浮動)+プルトゥリフレッシュ 2026-08-07 */
.refreshfab{position:fixed;right:12px;bottom:104px;z-index:70;background:#1565C0;color:#fff;
  border:none;border-radius:999px;padding:10px 16px;font-size:14px;font-weight:800;
  box-shadow:0 2px 8px rgba(0,0,0,.3);cursor:pointer}
.ptr{position:fixed;top:-60px;left:50%;transform:translateX(-50%);z-index:69;
  background:#EA6A00;color:#fff;padding:8px 18px;border-radius:0 0 12px 12px;
  font-weight:800;font-size:13px;transition:top .1s}
