/* 共用タブレットと事務所PCで使う勤怠アプリ。読みやすさ優先のUDフォント、落ち着いた藍と若竹色。 */
:root {
  --bg: #f3f5f7;
  --surface: #ffffff;
  --surface-2: #eaeef2;
  --line: #d5dce3;
  --ink: #18242f;
  --ink-2: #4f5d6a;
  --ink-3: #7a8692;
  --accent: #1e5f8c;       /* 藍 */
  --accent-ink: #ffffff;
  --accent-soft: #dce9f3;
  --green: #1f8a5b;  --green-soft: #dcf1e6;
  --amber: #b26b00;  --amber-soft: #fbecd2;
  --red: #c0392b;    --red-soft: #f8dedb;
  --violet: #6a4cb8; --violet-soft: #e9e3f7;
  --shadow: 0 1px 2px rgba(20, 35, 50, .06), 0 4px 16px rgba(20, 35, 50, .06);
  --f-body: "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
  --f-head: "Zen Kaku Gothic New", "BIZ UDPGothic", "Hiragino Sans", sans-serif;
  --f-num: "BIZ UDGothic", "SF Mono", "Consolas", monospace;
  --r: 10px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #11171d; --surface: #182129; --surface-2: #202b35; --line: #2e3b47;
    --ink: #e6edf3; --ink-2: #a9b6c2; --ink-3: #7c8995;
    --accent: #5aa3d6; --accent-ink: #0b1620; --accent-soft: #1d3446;
    --green: #4cc58c; --green-soft: #183829; --amber: #e3a33c; --amber-soft: #3a2c14;
    --red: #ef7a6c; --red-soft: #3d1f1b; --violet: #a78bfa; --violet-soft: #2a2244;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 4px 16px rgba(0,0,0,.25);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #11171d; --surface: #182129; --surface-2: #202b35; --line: #2e3b47;
  --ink: #e6edf3; --ink-2: #a9b6c2; --ink-3: #7c8995;
  --accent: #5aa3d6; --accent-ink: #0b1620; --accent-soft: #1d3446;
  --green: #4cc58c; --green-soft: #183829; --amber: #e3a33c; --amber-soft: #3a2c14;
  --red: #ef7a6c; --red-soft: #3d1f1b; --violet: #a78bfa; --violet-soft: #2a2244;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 4px 16px rgba(0,0,0,.25);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--f-body); font-size: 15px; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-family: var(--f-head); font-weight: 700; line-height: 1.3; margin: 0; text-wrap: balance; }
h1 { font-size: 1.5rem; } h2 { font-size: 1.2rem; } h3 { font-size: 1rem; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--accent); }
.num { font-family: var(--f-num); font-variant-numeric: tabular-nums; }
.muted { color: var(--ink-2); } .faint { color: var(--ink-3); }
.small { font-size: .85rem; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }

/* ---------- ボタン・入力 ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4em;
  padding: .55em 1em; border-radius: 8px; border: 1px solid var(--line);
  background: var(--surface); cursor: pointer; font-weight: 700; white-space: nowrap;
  transition: background .15s, border-color .15s;
}
.btn:hover { background: var(--surface-2); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.btn.primary:hover { filter: brightness(1.08); }
.btn.danger { color: var(--red); border-color: color-mix(in srgb, var(--red) 40%, var(--line)); }
.btn.ok { color: var(--green); border-color: color-mix(in srgb, var(--green) 40%, var(--line)); }
.btn.sm { padding: .3em .7em; font-size: .85rem; }
.btn.ghost { border-color: transparent; background: transparent; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.field { display: grid; gap: .25rem; align-content: start; }
.field label { font-size: .82rem; color: var(--ink-2); font-weight: 700; }
.input, select.input, textarea.input {
  width: 100%; padding: .55em .7em; border: 1px solid var(--line); border-radius: 8px;
  background: var(--surface); min-width: 0;
}
.row { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .9rem; }
.spacer { flex: 1; }

/* ---------- バッジ ---------- */
/* ページの下の操作の説明（Admin.helpList。印刷しない） */
.page-help { margin: .2rem 0 0; padding-left: 1.3em; color: var(--ink-3); font-size: .85rem; line-height: 1.6; }
.page-help li + li { margin-top: .15rem; }
.page-help li::marker { color: var(--ink-3); }
.pill { display: inline-block; padding: .1em .65em; border-radius: 999px; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.pill.in { background: var(--green-soft); color: var(--green); }
.pill.break { background: var(--amber-soft); color: var(--amber); }
.pill.out { background: var(--surface-2); color: var(--ink-2); }
.pill.none { background: transparent; color: var(--ink-3); border: 1px dashed var(--line); }
.pill.warn { background: var(--red-soft); color: var(--red); }
.pill.pending { background: var(--amber-soft); color: var(--amber); }
.pill.approved { background: var(--green-soft); color: var(--green); }
.pill.rejected { background: var(--surface-2); color: var(--ink-3); }
.pill.info { background: var(--accent-soft); color: var(--accent); }

/* ---------- 開始画面 ---------- */
.landing { min-height: 100%; display: grid; place-items: center; padding-block: 32px; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.landing-inner { width: 100%; max-width: 860px; display: grid; gap: 1.5rem; }
.brand { display: flex; align-items: center; gap: .8rem; }
.brand-mark { width: 44px; height: 44px; border-radius: 12px; background: var(--accent); color: var(--accent-ink); display: grid; place-items: center; font-family: var(--f-head); font-weight: 900; font-size: 1.3rem; }
.landing-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 1.25rem; box-shadow: var(--shadow); display: grid; gap: .9rem; align-content: start; min-width: 0; }
.notice { background: var(--accent-soft); color: var(--ink); border-radius: var(--r); padding: .8rem 1rem; font-size: .9rem; }
.notice.warn { background: var(--amber-soft); }

/* ---------- 打刻タブレット ---------- */
.kiosk { min-height: 100%; display: flex; flex-direction: column; }
.k-head {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding-block: 14px; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px));
  background: var(--surface); border-bottom: 1px solid var(--line);
}
.k-office { font-family: var(--f-head); font-weight: 700; font-size: 1.15rem; }
.k-clock { margin-left: auto; text-align: right; line-height: 1.1; }
.k-time { font-family: var(--f-num); font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 700; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.k-date { color: var(--ink-2); font-size: .95rem; }
.k-body { flex: 1; padding-block: 20px; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); display: grid; gap: 1rem; align-content: start; }
.k-summary { display: flex; gap: .5rem; flex-wrap: wrap; }
.k-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .8rem; }
.k-card {
  text-align: left; background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
  padding: 1rem 1.1rem; cursor: pointer; display: grid; gap: .35rem; box-shadow: var(--shadow);
  border-left: 6px solid var(--line); min-height: 108px; transition: transform .1s;
}
.k-card:active { transform: scale(.98); }
.k-card.st-in { border-left-color: var(--green); }
.k-card.st-break { border-left-color: var(--amber); }
.k-card.st-out { border-left-color: var(--ink-3); }
.k-name { font-family: var(--f-head); font-size: 1.25rem; font-weight: 700; }
.k-kana { font-size: .78rem; color: var(--ink-3); }
.k-foot { display: flex; gap: .6rem; flex-wrap: wrap; padding-block: 12px 18px; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); border-top: 1px solid var(--line); background: var(--surface); }
.k-foot .btn { padding: .8em 1.2em; font-size: 1rem; }

/* モーダル */
.modal-back { position: fixed; inset: 0; background: rgba(10, 18, 26, .55); display: grid; place-items: center; z-index: 50; padding: 16px; }
.modal { background: var(--surface); border-radius: 16px; width: 100%; max-width: 560px; max-height: calc(100% - 16px); overflow: auto; padding: 1.4rem; display: grid; gap: 1rem; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.modal.wide { max-width: 860px; }
.modal, .side { overscroll-behavior: contain; } /* 中のスクロールが端まで行っても後ろの画面を動かさない */
@media screen { html:has(.modal-back) { overflow: hidden; } html { scrollbar-gutter: stable; } }
/* ポップアップの中身を枠の幅に収める（2026/10/31）：中の表が広くても枠ごと広がらず、表の囲み（.tbl-wrap）の中だけ横スクロール。ファイル選択・長い文字のボタンも枠の中で折り返す */
.modal > * { min-width: 0; }
.modal input[type=file] { max-width: 100%; }
@media (max-width: 640px) { .modal .btn { white-space: normal; } }
.modal-head { display: flex; align-items: center; gap: .8rem; position: sticky; top: -1.4rem; z-index: 6; background: var(--surface); margin: -1.4rem -1.4rem 0; padding: 1.1rem 1.4rem .7rem; }
.modal-head .x { margin-left: auto; }

.actions4 { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
.act {
  border: 2px solid var(--line); border-radius: 14px; background: var(--surface); cursor: pointer;
  padding: 1.1rem .5rem; font-family: var(--f-head); font-size: 1.35rem; font-weight: 700; display: grid; gap: .1rem; place-items: center;
}
.act small { font-family: var(--f-body); font-size: .78rem; font-weight: 400; color: var(--ink-3); }
.act.in { color: var(--green); } .act.out { color: var(--accent); }
.act.break_start, .act.break_end { color: var(--amber); }
.act.sel { background: var(--accent-soft); border-color: var(--accent); }
.act:disabled { opacity: .3; cursor: not-allowed; }

.pin-dots { display: flex; justify-content: center; gap: .8rem; padding: .4rem 0; }
.pin-dots span { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--ink-3); }
.pin-dots span.on { background: var(--ink); border-color: var(--ink); }
.keypad { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.keypad button { padding: .9rem 0; font-size: 1.6rem; font-family: var(--f-num); border-radius: 12px; border: 1px solid var(--line); background: var(--surface-2); cursor: pointer; }
.keypad button:active { background: var(--accent-soft); }
.keypad .k-fn { font-size: 1rem; font-family: var(--f-body); }

.toast-big {
  position: fixed; inset: 0; display: grid; place-items: center; z-index: 60; pointer-events: none;
}
.toast-big > div {
  background: var(--surface); border-radius: 20px; padding: 2rem 3rem; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,.25);
  border-top: 8px solid var(--green); animation: pop .25s ease-out;
}
.toast-big .t1 { font-family: var(--f-head); font-size: 1.6rem; font-weight: 700; }
.toast-big .t2 { font-family: var(--f-num); font-size: 3rem; font-weight: 700; }
@keyframes pop { from { transform: scale(.92); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .toast-big > div { animation: none; } }

.toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); background: var(--ink); color: var(--bg); padding: .7rem 1.2rem; border-radius: 10px; z-index: 70; font-weight: 700; max-width: calc(100% - 32px); }
.toast.err { background: var(--red); color: #fff; }

/* ---------- 管理画面 ---------- */
.admin { display: grid; grid-template-columns: 220px 1fr; min-height: 100%; }
.side { background: var(--surface); border-right: 1px solid var(--line); padding: 1rem .7rem; display: flex; flex-direction: column; gap: .2rem; position: sticky; top: 0; height: 100vh; overflow: auto; }
.side .brand { padding: .2rem .5rem 1rem; }
.side .brand-mark { width: 34px; height: 34px; font-size: 1rem; border-radius: 9px; background-color: #dde1e6; } /* 管理画面のロゴだけ背景を少しグレーに（2026/11/07 依頼主） */
.nav-a { display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; border-radius: 8px; color: var(--ink-2); text-decoration: none; font-weight: 700; }
.nav-a:hover { background: var(--surface-2); color: var(--ink); }
.nav-a.on { background: var(--accent-soft); color: var(--accent); }
.nav-a .cnt { margin-left: auto; background: var(--red); color: #fff; border-radius: 999px; font-size: .72rem; padding: 0 .5em; }
.side-foot { margin-top: auto; padding: .7rem; font-size: .82rem; color: var(--ink-2); display: grid; gap: .4rem; }
.main { min-width: 0; padding-block: 22px 40px; padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px)); display: grid; gap: 1.1rem; align-content: start; }
.page-head { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.page-head h1 { margin-right: auto; }
.tabs { display: flex; gap: .3rem; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.tab { padding: .5rem .9rem; border: 0; background: none; cursor: pointer; font-weight: 700; color: var(--ink-2); border-bottom: 3px solid transparent; }
.tab.on { color: var(--accent); border-bottom-color: var(--accent); }

.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .8rem; }
.stat { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: .8rem 1rem; container-type: inline-size; }
.stat .v { font-family: var(--f-num); font-size: min(1.7rem, 14.5cqw); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.stat .l { font-size: .8rem; color: var(--ink-2); font-weight: 700; }
.stat.green .v { color: var(--green); } .stat.amber .v { color: var(--amber); } .stat.red .v { color: var(--red); }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); min-width: 0; }
.card-head { display: flex; align-items: center; gap: .6rem; padding: .8rem 1rem; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.card-body { padding: 1rem; }
.tbl-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .9rem; } /* separate：固定した列・見出しの罫線がスクロールでずれない */
.tbl th, .tbl td { padding: .5rem .65rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; white-space: nowrap; }
.tbl th { font-size: .78rem; color: var(--ink-2); background: var(--surface-2); }
.tbl thead { position: sticky; top: 0; z-index: 4; }
/* 行が多い表は枠の中でスクロールして、見出しが残るようにする（枠の端まで行くとページがスクロールする）。印刷では外す */
.main .tbl-wrap:has(> table > tbody > tr:nth-child(15)) { max-height: calc(100dvh - 4.5rem); overflow-y: auto; }
/* 横にスクロールできる表は、続きがある側に影を出す（背景の local / scroll の組み合わせ） */
.tbl-wrap { --sh: color-mix(in srgb, var(--ink) 16%, transparent); background: linear-gradient(90deg, var(--surface) 30%, transparent) left / 28px 100% no-repeat local, linear-gradient(-90deg, var(--surface) 30%, transparent) right / 28px 100% no-repeat local, linear-gradient(90deg, var(--sh), transparent) left / 8px 100% no-repeat scroll, linear-gradient(-90deg, var(--sh), transparent) right / 8px 100% no-repeat scroll; }
.tbl-wrap .wrap-cells td { white-space: normal; min-width: 8rem; }
.tbl td.r, .tbl th.r { text-align: right; }
.tbl td.num, .tbl .num { font-family: var(--f-num); font-variant-numeric: tabular-nums; }
.tbl tr.sun td:first-child { color: var(--red); } .tbl tr.sat td:first-child { color: var(--accent); }
.tbl tr.today td { background: color-mix(in srgb, var(--accent-soft) 55%, transparent); }
@media (hover: hover) { .tbl tr:hover td { background: color-mix(in srgb, var(--surface-2) 60%, transparent); } } /* 指で触ると色が残るので、マウスのときだけ */
.empty { padding: 2rem; text-align: center; color: var(--ink-3); }

/* シフト表 */
.shift-tbl th, .shift-tbl td { padding: 0; text-align: center; min-width: 38px; }
table.tbl.shift-tbl { border-collapse: collapse; }
.shift-tbl td.name, .shift-tbl th.name { text-align: left; padding: .35rem .6rem; min-width: 130px; position: sticky; left: 0; background: var(--surface); z-index: 2; }
.shift-tbl th.name { background: var(--surface-2); z-index: 3; }
.shift-tbl th { padding: .3rem 0; line-height: 1.2; }
.shift-tbl th.sun { color: var(--red); } .shift-tbl th.sat { color: var(--accent); }
.shift-cell { width: 100%; height: 34px; border: 0; background: transparent; font-weight: 700; cursor: pointer; font-size: .85rem; appearance: none; -webkit-appearance: none; text-align: center; text-align-last: center; padding: 0 2px; }
.shift-tbl tfoot td { font-family: var(--f-num); font-size: .78rem; color: var(--ink-2); padding: .3rem 0; }
.legend { display: flex; gap: .8rem; flex-wrap: wrap; font-size: .85rem; }
.legend span { display: inline-flex; align-items: center; gap: .3rem; }
.sw { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }

.colmap { display: grid; gap: .45rem; }
.colmap .cm-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: .45rem; align-items: center; }

.mobile-bar { display: none; }
.side-scrim { display: none; }
@media (max-width: 860px) {
  .admin { grid-template-columns: 1fr; }
  .side { position: fixed; inset: 0 auto 0 0; width: 240px; z-index: 40; transform: translateX(-100%); transition: transform .2s; height: 100%; padding-top: calc(1rem + env(safe-area-inset-top, 0px)); }
  .side.open { transform: none; box-shadow: var(--shadow); }
  .side.open + .side-scrim { display: block; position: fixed; inset: 0; z-index: 35; background: rgb(0 0 0 / .35); }
  .mobile-bar { display: flex; align-items: center; gap: .6rem; padding-block: 10px; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); background: var(--surface); border-bottom: 1px solid var(--line); position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30; }
  .main { padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
  .actions4 { grid-template-columns: 1fr 1fr; }
  .act { font-size: 1.1rem; }
}

@media print {
  .side, .mobile-bar, .no-print, .k-foot { display: none !important; }
  .main p.small.faint, .page-help { display: none !important; } /* 画面の説明文は印刷しない（2026/11/02 依頼主） */
  .admin { display: block; }
  .main { padding: 0; }
  body { background: #fff; color: #000; font-size: 11px; }
  .card { border: 0; }
  .tbl th { position: static; }
  .shift-cell { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* 長い表がページ幅を押し広げないように */
.main > * { min-width: 0; }
.side .brand strong { font-size: .9rem; white-space: nowrap; }

/* 職員の一括編集 */
.bulk-bar { position: sticky; top: 0; z-index: 5; background: var(--bg); padding-block: .4rem; }
@media (max-width: 860px) { .bulk-bar { top: calc(env(safe-area-inset-top, 0px) + 56px); } } /* スマホの上の帯の下に止まる */
.tbl-edit td { padding: .25rem .3rem; }
.tbl-edit td.ck, .tbl-edit th.ck { width: 36px; text-align: center; }
.tbl-edit .be {
  width: 100%; padding: .35em .45em; border: 1px solid transparent; border-radius: 6px;
  background: transparent; font-size: .88rem; min-width: 0;
}
.tbl-edit .be:hover { border-color: var(--line); }
.tbl-edit .be:focus { border-color: var(--accent); background: var(--surface); outline: none; box-shadow: 0 0 0 2px var(--accent-soft); }
.tbl-edit .be.chg { background: var(--amber-soft); border-color: color-mix(in srgb, var(--amber) 45%, transparent); }
.tbl-edit .be.bad { background: var(--red-soft); border-color: var(--red); }
.tbl-edit tr.row-sel td { background: color-mix(in srgb, var(--accent-soft) 60%, transparent); }
.tbl-edit tr.row-chg td.ck { box-shadow: inset 4px 0 0 var(--amber); }
.tbl-edit input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--accent); }
@media (max-width: 860px) { .bulk-bar { top: calc(52px + env(safe-area-inset-top, 0px)); } }
.tbl-edit tr.row-del td { background: var(--red-soft); }
.tbl-edit tr.row-del .be { text-decoration: line-through; color: var(--ink-3); opacity: .8; }
.tbl-edit tr.row-del td.ck { box-shadow: inset 4px 0 0 var(--red); }
.tbl-edit .undo-del { padding: .2em .4em; font-size: .78rem; color: var(--red); }

/* 休診日 */
.shift-tbl th.closed, .shift-tbl td.closed-cell { background: color-mix(in srgb, var(--ink-3) 14%, var(--surface)); }
.shift-tbl td.closed-cell { color: var(--ink-3); font-size: .68rem; letter-spacing: -.05em; }
.day-btn { all: unset; cursor: pointer; display: block; width: 100%; padding: .1rem 0; text-align: center; line-height: 1.2; position: relative; }
.day-btn:focus-visible { outline: 2px solid var(--accent); }
.chg-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--amber); margin-left: 3px; vertical-align: middle; }
.closed-sw { background: color-mix(in srgb, var(--ink-3) 30%, var(--surface)); border: 1px solid var(--line); }
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-h { padding: .45rem; text-align: center; font-size: .8rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); border-bottom: 1px solid var(--line); }
.cal-h.sun, .cal-c.sun .cal-d { color: var(--red); } .cal-h.sat, .cal-c.sat .cal-d { color: var(--accent); }
.cal-c { all: unset; box-sizing: border-box; min-height: 74px; padding: .4rem .5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; align-content: space-between; gap: .1rem; cursor: pointer; background: var(--surface); }
.cal-c:nth-child(7n) { border-right: 0; }
.cal-c.empty { cursor: default; background: var(--bg); }
.cal-c:hover:not(.empty) { background: var(--accent-soft); }
.cal-c:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.cal-c.is-closed { background: color-mix(in srgb, var(--ink-3) 14%, var(--surface)); }
.cal-d { font-family: var(--f-num); font-weight: 700; }
.cal-n { font-size: .7rem; color: var(--red); line-height: 1.2; min-height: 1em; }
.cal-s { font-size: .75rem; font-weight: 700; color: var(--ink-2); }
.cal-c.is-closed .cal-s { color: var(--ink-3); }
@media (max-width: 600px) { .cal-c { min-height: 58px; padding: .3rem; } .cal-n { display: none; } }
.tbl td.nwnp, .tbl th.nwnp { color: var(--red); }

/* ---------- 職員用ページ・給与明細 ---------- */
.landing.staff { place-items: start center; }
.slip { padding: 1.1rem 1.2rem; display: grid; gap: 1rem; }
.slip-head { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; border-bottom: 2px solid var(--ink); padding-bottom: .6rem; }
.slip-head h2 { font-size: 1.15rem; }
.slip-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; align-items: start; }
.slip-sec h4 { margin: 0 0 .3rem; font-size: .85rem; color: var(--ink-2); letter-spacing: .08em; }
.slip-tbl td, .slip-tbl th { padding: .3rem .4rem; }
.slip-net { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; background: var(--accent-soft); border-radius: var(--r); padding: .7rem 1rem; }
.slip-net strong { font-size: 1.6rem; }
@media print {
  .landing.staff .landing-inner > :not(#sb), .landing.staff #sb > :not(.slip) { display: none !important; }
  .landing.staff { padding: 0; display: block; }
  .slip-net { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.actions4 .act-wide { grid-column: 1 / -1; display: grid; }

/* ---------- 休暇申請の日付選択（カレンダー）。.cal-pick の中だけ（管理画面の休診日カレンダーと名前が同じため。2026/10/31） ---------- */
.cal-pick { max-width: 360px; display: grid; gap: .5rem; }
.cal-pick .cal-nav { display: flex; align-items: center; justify-content: space-between; }
.cal-pick .cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .25rem; text-align: center; }
.cal-pick .cal-w { font-size: .75rem; color: var(--ink-3); font-weight: 700; }
.cal-pick .cal-w.sun { color: var(--red); } .cal-pick .cal-w.sat { color: var(--accent); }
.cal-pick .cal-d { aspect-ratio: 1; min-height: 40px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink);
  font-family: var(--f-num); font-size: 1rem; cursor: pointer; padding: 0; }
.cal-pick .cal-d.sat { color: var(--accent); }
.cal-pick .cal-d.today { border-color: var(--accent); }
.cal-pick .cal-d.on { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); font-weight: 700; }
.cal-pick .cal-d:disabled { background: transparent; color: var(--ink-3); border-style: dashed; cursor: default; opacity: .6; }

/* シフト表：産休・育休で鍵がかかっている行 */
.shift-tbl tr.leave-row td { background: var(--surface-2); }
.shift-tbl tr.leave-row select.shift-cell { opacity: .45; cursor: not-allowed; }

/* 給与計算：諸給与支払明細書の形 */
.pay-sheet { display: grid; gap: .4rem; }
.pay-sheet + .pay-sheet { margin-top: 1rem; }
.ps-head { display: flex; flex-wrap: wrap; gap: .2rem 1.5rem; align-items: baseline; }
.ps-head h2 { flex: 1 1 16em; font-size: 1.05rem; letter-spacing: .12em; text-align: center; margin: 0; }
.ps-tbl { font-size: .78rem; }
/* 枠線をセルごとに持つ（collapse だと固定した氏名の列の左にすき間ができ、横スクロールした文字がのぞくため） */
.ps-tbl th, .ps-tbl td { padding: .25rem .4rem; border: solid var(--line); border-width: 0 1px 1px 0; white-space: nowrap; }
.ps-tbl tr > :first-child { border-left-width: 1px; }
.ps-tbl thead tr:first-child > * { border-top-width: 1px; }
.ps-tbl thead th { text-align: center; font-weight: 600; background: var(--surface-2); }
.ps-tbl thead tr.lt th { font-weight: 400; color: var(--ink-3); font-size: .7rem; }
.ps-tbl th.nm { text-align: left; position: sticky; left: 0; background: var(--surface); z-index: 1; min-width: 7.5em; }
.ps-tbl thead th.nm { background: var(--surface-2); z-index: 3; }
.ps-tbl .st { font-weight: 700; }
.ps-tbl td.neg { color: var(--red); }
.ps-tbl td[data-cell] { cursor: pointer; }
.ps-tbl td[data-cell]:hover { background: var(--accent-soft); }
.ps-tbl td.man { background: var(--amber-soft); }
.ps-tbl tr.sub td, .ps-tbl tr.sub th { font-weight: 700; border-top: 2px solid var(--ink-2); }
.ps-tbl tr.grand td, .ps-tbl tr.grand th { border-top: 3px double var(--ink-2); }
@page sheet { size: A3 landscape; margin: 10mm; }
@media print {
  .pay-sheet { page: sheet; break-inside: avoid; }
  .pay-sheet + .pay-sheet { break-before: page; }
  .ps-tbl { font-size: 8px; }
  .ps-tbl th.nm { position: static; }
  .ps-tbl td.man { background: none; }
  .ps-tbl thead th { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tbl-wrap { overflow: visible !important; max-height: none !important; background: none !important; }
  .tbl thead { position: static; }
}
/* 職員の健康保険の設定（見出しが左の表。狭い画面では折り返す） */
.form-tbl th, .form-tbl td { white-space: normal; }
.form-tbl th { position: static; width: 10.5em; font-size: .85rem; }
.form-tbl .input { min-width: 0; }
@media (max-width: 560px) { .form-tbl th { width: 6.5em; } .form-tbl select.input { max-width: 100% !important; } }
.form-tbl label.row { flex-wrap: nowrap; align-items: flex-start; }
.form-tbl label.row input[type=radio], .form-tbl label.row input[type=checkbox] { margin-top: .2em; flex: none; }
.field .lbl { font-size: .82rem; color: var(--ink-2); font-weight: 700; }
.field .row > label { font-size: .95rem; font-weight: 400; color: var(--ink); }
/* 給与：先月と大きく違う職員の印 */
.diff-big { color: var(--amber, #b36b00); font-weight: 700; }
.hist-tbl { font-size: .8rem; }
.hist-tbl th, .hist-tbl td { padding: .4rem .45rem; }
/* 職員の詳細（基本情報・契約情報・緊急連絡先） */
.detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 1rem; align-items: start; }
@media (max-width: 560px) { .detail-grid { grid-template-columns: 1fr; } }
/* 上の数字の欄を押して、その項目の行だけを出す */
.stat.clickable { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.stat.clickable:hover { border-color: var(--accent, #2b6cb0); }
.stat.clickable:focus-visible { outline: 2px solid var(--accent, #2b6cb0); outline-offset: 2px; }
.stat.picked { border-color: var(--accent, #2b6cb0); box-shadow: 0 0 0 2px var(--accent, #2b6cb0) inset; }
.filter-bar { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; justify-content: space-between; padding: .55rem .9rem; border-radius: var(--r); background: var(--surface-2); border: 1px solid var(--line); font-size: .9rem; }
[hidden] { display: none !important; }
.why-f { display: none; color: var(--amber); white-space: normal; max-width: 220px; font-weight: 400; }
[data-filter="warn"] .why-warn { display: block; }
/* 人事考課 */
.hy-av { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-weight: 700; font-size: .85rem; }
.hy-av.lg { width: 3.4rem; height: 3.4rem; font-size: 1rem; }
.hy-total { position: sticky; bottom: 0; display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; padding: .9rem 1.1rem; border-radius: var(--r); background: var(--accent-soft); border: 1px solid var(--line); z-index: 2; }
.hy-big { font-family: var(--f-num); font-size: 2rem; font-weight: 700; color: var(--accent); line-height: 1.1; }
.hy-big.sm { font-size: 1.4rem; }
/* 人事考課：今の人事考課アプリ（riji.html・self_eval.html）に合わせた見た目 */
.hy-head { gap: .5rem; flex-wrap: wrap; }
.hy-secnav { display: flex; gap: .35rem; flex-wrap: wrap; margin-bottom: .5rem; }
.hy-snav { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 999px; padding: .3rem .8rem; font: inherit; font-size: .85rem; cursor: pointer; }
.hy-snav.on { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); font-weight: 700; }
.hy-progress { height: 8px; border-radius: 999px; background: var(--surface-2); overflow: hidden; margin: .4rem 0; }
.hy-progress > div { height: 100%; background: var(--accent); transition: width .2s; }
.hy-legend { font-size: .85rem; padding: .5rem .8rem; border-radius: 10px; background: var(--surface-2); margin-bottom: .5rem; }
.hy-legend b { color: var(--red); text-decoration: underline; text-decoration-thickness: 2px; }
.hy-sech { margin: 0 0 .4rem; font-size: 1rem; }
.hy-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .6rem; padding: .5rem .3rem; border-bottom: 1px solid var(--line); border-radius: 6px; }
.hy-row:last-child { border-bottom: 0; }
.hy-row.missing { background: var(--red-soft, #fde8e8); outline: 2px solid var(--red); }
.hy-lbl { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; border: 0; background: none; color: var(--ink); font: inherit; font-weight: 700; text-align: left; padding: 0; cursor: pointer; }
.hy-i { display: inline-grid; place-items: center; width: 1.3rem; height: 1.3rem; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-size: .75rem; font-family: serif; font-weight: 700; flex: none; }
.hy-selfnote { font-size: .75rem; font-weight: 700; color: var(--red); }
.hy-pills { display: flex; gap: .3rem; flex-wrap: wrap; justify-content: flex-end; }
.hy-pill { min-width: 2.6rem; height: 2.4rem; border-radius: 10px; border: 1px solid var(--line); background: var(--surface-2); color: var(--ink); font-family: var(--f-num); font-size: 1rem; cursor: pointer; }
.hy-pill.on { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); font-weight: 700; }
.hy-pill.self { box-shadow: inset 0 -3px 0 var(--red); }
.hy-pill.neg { color: var(--red); }  /* 院長加点の減点（マイナス）の段階 */
.hy-pill.neg.on { background: var(--red); border-color: var(--red); color: #fff; }
.hy-crit[data-v^="-"] .hy-badge { background: var(--red); color: #fff; }
.hy-pill.on.self { box-shadow: inset 0 -4px 0 var(--red); }
.hy-crit { border: 1px solid var(--line); border-radius: 10px; padding: .6rem .8rem; display: grid; gap: .3rem; background: var(--surface); }
.hy-crit.cur { border: 2px solid var(--accent); background: var(--accent-soft); }
.hy-crit.pick { cursor: pointer; }
.hy-crit.pick:hover { border-color: var(--accent); }
.hy-crit-hd { display: flex; align-items: center; gap: .5rem; }
.hy-badge { display: inline-grid; place-items: center; min-width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--accent); color: var(--accent-ink); font-family: var(--f-num); font-weight: 700; }
.hy-curtag { margin-left: auto; font-size: .72rem; padding: .1rem .45rem; border-radius: 999px; background: var(--accent); color: var(--accent-ink); }
.hy-crit-desc { font-size: .88rem; white-space: pre-wrap; }
.hy-draft { font-size: .8rem; color: var(--amber); }
/* スマホでも点数のボタンは項目名の右に出す（2026/10/30 依頼主）。0〜5 の6つが入るようにボタンを少し小さく */
@media (max-width: 640px) { .hy-row { gap: .45rem; } .hy-pills { flex-wrap: nowrap; gap: .25rem; } .hy-pill { min-width: 2.15rem; height: 2.3rem; padding: 0; } }
@media (max-width: 380px) { .hy-pills { gap: .2rem; } .hy-pill { min-width: 1.9rem; height: 2.2rem; font-size: .95rem; } }
/* スマホ：点数が5つ以上の項目（職種別・特別加点の0〜5）は前のように項目名の下に出す。共通基本項目・院長加点は右のまま（2026/10/31 依頼主） */
@media (max-width: 640px) { .hy-row:has(.hy-pill:nth-child(5)) { grid-template-columns: 1fr; } .hy-row:has(.hy-pill:nth-child(5)) .hy-pills { justify-content: flex-start; flex-wrap: wrap; gap: .4rem; } .hy-row:has(.hy-pill:nth-child(5)) .hy-pill { min-width: 2.6rem; height: 2.4rem; } }
.kiosk-warn { margin-top: .6rem; padding: .5rem .7rem; border-radius: 10px; background: var(--amber-soft); color: var(--amber); font-weight: 700; }

/* 人事考課：使いやすさの改善（2026/10/28） */
.hy-pillbtn { cursor: pointer; font: inherit; font-size: .8rem; font-weight: 700; }
.hy-pillbtn:hover { filter: brightness(1.08); outline: 1px solid currentColor; }
.hy-jump { border-style: dashed; color: var(--amber); }
.hy-row.flash { outline: 2px solid var(--accent); background: var(--accent-soft); transition: background .3s; }
.hy-saved { align-self: center; font-size: .8rem; color: var(--ink-3); white-space: nowrap; }
@media (max-width: 640px) {
  .hy-total { padding: .4rem .8rem; gap: .6rem; align-items: center; }
  .hy-total .hy-big { font-size: 1.3rem; }
  .hy-total .small.faint { display: none; }
  .hy-total .small.muted { font-size: .7rem; }
  .hy-saved { font-size: .7rem; }
}
/* 評価シートの印刷（画面では出さない） */
#hy-print-sheet { display: none; }
@media print {
  body.hy-printing .main > :not(#hy-print-sheet) { display: none !important; }
  body.hy-printing #hy-print-sheet { display: block; color: #000; font-size: 10.5px; }
  #hy-print-sheet h1 { font-size: 16px; margin: 0 0 2px; }
  #hy-print-sheet h3 { font-size: 12px; margin: 10px 0 3px; border-bottom: 1px solid #999; }
  #hy-print-sheet .hp-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 6px; }
  #hy-print-sheet .hp-conf { border: 1px solid #000; padding: 2px 6px; font-weight: 700; }
  #hy-print-sheet .hp-sub { font-weight: 400; }
  #hy-print-sheet table { width: 100%; border-collapse: collapse; }
  #hy-print-sheet th, #hy-print-sheet td { border: 1px solid #bbb; padding: 2px 5px; text-align: left; vertical-align: top; }
  #hy-print-sheet .hp-info th { background: #f0f0f0; width: 5em; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #hy-print-sheet .r { text-align: right; width: 3.5em; }
  #hy-print-sheet .hp-mx { color: #777; font-size: 9px; }
  #hy-print-sheet tr.gap td { background: #fde8e8; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #hy-print-sheet .hp-memo { border: 1px solid #bbb; min-height: 60px; padding: 4px 6px; white-space: pre-wrap; }
  #hy-print-sheet .hp-att, #hy-print-sheet .hp-foot { color: #444; margin: 4px 0; }
  #hy-print-sheet tr { break-inside: avoid; }
}
/* 評価の基準のカード（自己評価で i を押したとき。2026/10/28 見やすく） */
.hy-crit { border-left: 5px solid color-mix(in srgb, var(--accent) calc(15% + var(--lv, 0) * 85%), transparent); }
.hy-crit.cur { border-left-width: 5px; }
.hy-badge small { font-size: .6em; margin-left: 1px; }
.hy-badge { display: inline-flex; align-items: baseline; justify-content: center; gap: 1px; min-width: 2.6rem; height: auto; line-height: 1.8rem; border-radius: 999px; padding: 0 .5rem; white-space: nowrap; }
.hy-crit-hd strong { font-size: 1rem; }
.hy-crit-desc { line-height: 1.7; color: var(--ink-2); }
.hy-crit.pick:active { transform: scale(.99); }
.hy-picktag { margin-left: auto; font-size: .72rem; padding: .1rem .5rem; border-radius: 999px; border: 1px solid var(--line); color: var(--ink-3); white-space: nowrap; }
.hy-crit.pick:hover .hy-picktag { border-color: var(--accent); color: var(--accent); }
.hy-crit-nav { display: flex; align-items: center; justify-content: space-between; gap: .6rem; position: sticky; bottom: -1px; padding: .7rem 0 .2rem; background: var(--surface); border-top: 1px solid var(--line); }
.hy-crit-nav .btn { min-width: 6.5rem; }
.hy-crit-guide { font-size: .88rem; padding: .55rem .75rem; border-radius: 10px; background: var(--accent-soft); color: var(--ink); }
.hy-crit-note { display: flex; gap: .5rem; align-items: flex-start; font-size: .85rem; line-height: 1.6; padding: .5rem .7rem; border-radius: 10px; background: var(--surface-2); }
.hy-crit-note span { flex: none; font-size: .72rem; font-weight: 700; padding: .05rem .45rem; border-radius: 999px; background: var(--amber-soft); color: var(--amber); }
.hy-crit-scale { display: flex; justify-content: space-between; font-size: .72rem; color: var(--ink-3); padding: 0 .2rem; margin-bottom: -.2rem; }
/* 管理画面の「← 戻る」（直前の画面に戻る。2026/10/28） */
.side-back { align-self: flex-start; margin: 0 .3rem .6rem; }
.back-btn[hidden] { display: none !important; }
@media (max-width: 860px) { .side-back { display: none !important; } }
/* シフト表：休みの申請の印（2026/10/28。シフトは書き換えず、印を重ねる） */
.shift-tbl td.has-lv { position: relative; }
.lv-tag { position: absolute; top: 1px; left: 50%; transform: translateX(-50%); font-size: .58rem; line-height: 1.1; font-weight: 700; padding: 0 .2rem; border-radius: 4px; background: var(--green-soft); color: var(--green); white-space: nowrap; pointer-events: none; z-index: 2; }
.lv-tag.pend { background: transparent; border: 1px dashed var(--amber); color: var(--amber); }
/* 1日休み（承認済み）のマスは、シフト表の JS（cellStyle）で薄い色・灰色の文字・マスの中の斜線にする（2026/11/09。前は取り消し線で「平」の横棒と重なって見えなかった） */
.shift-tbl td.has-lv .shift-cell { padding-top: .7rem; }
@media print { .lv-tag { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
/* 名前・職員番号で検索（2026/10/28） */
.srch-row { gap: .5rem; }
.srch-in { width: auto; min-width: 14rem; max-width: 100%; }
tr.srch-off { display: none; }
/* タブレット：押し間違えた打刻の取り消し（1分間） */
.kiosk-undo { position: fixed; left: 50%; bottom: max(16px, env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 90; display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; justify-content: center;
  padding: .6rem .9rem; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); max-width: calc(100vw - 32px); font-size: .95rem; }
.st-notice { display: grid; gap: .5rem; }

/* 画面の中のまとまり（数字の欄・表・お知らせ）を入れる囲みも、.main と同じ間隔で縦に並べる（スマホで枠どうしがくっつかないように） */
.main div:not([class]):has(> .stats, > .card, > .notice, > .pay-sheet, > .srch-row) { display: grid; gap: 1.1rem; align-content: start; min-width: 0; }
.main div:not([class]):has(> .stats, > .card, > .notice, > .pay-sheet, > .srch-row) > * { min-width: 0; margin-block: 0; }
/* シフト表：その日だけの休憩の設定があるマスの印（2026/11/02） */
.shift-tbl td:has(.brk-dot) { position: relative; }
.shift-tbl .brk-dot { position: absolute; right: 2px; bottom: 2px; margin: 0; pointer-events: none; }
/* タブレット：今日が公休・有給などの人（2026/11/02） */
.pill.off { background: var(--accent-soft); color: var(--accent); }
.k-card.st-off { border-left-color: var(--accent); opacity: .8; }
/* シフト表：ほかの事業所（所属・兼務先）で入れたシフト（2026/11/02。見るだけ） */
.shift-tbl td.other-cell { background: color-mix(in srgb, var(--ink-3) 10%, transparent); color: var(--ink-3); }
.shift-tbl .other-shift { display: flex; flex-direction: column; align-items: center; font-size: .72rem; line-height: 1.1; padding: .3rem 0; }
.shift-tbl .other-shift small { font-size: .55rem; }
/* シフト表：打刻漏れのある日のマス（2026/11/02） */
.shift-tbl td.has-miss { position: relative; }
.shift-tbl .miss-dot { position: absolute; top: 2px; right: 2px; width: 7px; height: 7px; border-radius: 50%; background: var(--red); pointer-events: none; }
@media print { .shift-tbl .miss-dot { display: none; } }
/* 勤怠の確認・修正の数字の欄（7つ）を、パソコンでは1列に並べる（2026/11/02） */
@media (min-width: 900px) {
  .stats.stats-1row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: .6rem; }
  .stats.stats-1row .stat { padding: .7rem .75rem; min-width: 0; }
  .stats.stats-1row .stat .v { font-size: clamp(1.15rem, 1.9vw, 1.7rem); white-space: nowrap; }
  .stats.stats-1row .stat .l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
/* スマホ・タブレットでは4つずつ2段のコンパクトな並びに（2026/11/02） */
@media (max-width: 899px) {
  .stats.stats-1row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; }
  .stats.stats-1row .stat { padding: .55rem .6rem; min-width: 0; }
  .stats.stats-1row .stat .l { font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .stats.stats-1row .stat .v { font-size: 1.15rem; white-space: nowrap; }
  .stats.stats-1row .stat .small { font-size: .62rem; }
}
/* スマホのシフト表：名前の列を細くして、日付の列を多く見せる（2026/11/02） */
@media (max-width: 640px) {
  .shift-tbl td.name, .shift-tbl th.name { min-width: 92px; max-width: 112px; padding: .3rem .45rem; white-space: normal; }
  .shift-tbl td.name .small { font-size: .66rem; }
}
/* ページの上の操作の列（事業所・月・ボタン）：PC ではボタンの余白を詰めて、なるべく1列に収める（2026/11/02） */
@media (min-width: 641px) {
  .main .row.no-print, #pt .row:has(> #f-office), #pt .row:has(> .mon-sel) { gap: .4rem; }
  .main .row.no-print > .btn, .main .row.no-print > span > .btn, #pt .row:has(> #f-office) > .btn, #pt .row:has(> .mon-sel) > .btn, #pt .row:has(> .mon-sel) > span > .btn { padding: .5em .72em; font-size: .9rem; }
  .mon-sel select.input, .main .row.no-print > select.input { padding-inline: .55em; }
}
/* 幅の狭いPC（1200px未満）では左のメニューを少し細くして、上の操作の列を1列に収めやすくする（2026/11/02） */
@media (min-width: 861px) and (max-width: 1199px) {
  .admin { grid-template-columns: 188px 1fr; }
  .main { padding-left: max(18px, env(safe-area-inset-left, 0px)); padding-right: max(18px, env(safe-area-inset-right, 0px)); }
}

/* 職員用ページ：打刻の確認が必要な日（2026/11/07） */
.st-miss { display: grid; gap: .5rem; }
.st-miss-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem .75rem; padding-top: .45rem; border-top: 1px solid rgba(0,0,0,.08); }
/* 操作の履歴（2026/11/07） */
.audit-tbl td { vertical-align: top; }
.audit-who { white-space: normal; min-width: 7.5rem; }
.audit-ch { white-space: normal; min-width: 11rem; max-width: 560px; overflow-wrap: anywhere; display: grid; gap: .1rem; }
.audit-ch del { color: var(--muted, #777); }
@media (max-width: 640px) { /* スマホでは履歴を表でなく1件ずつのカードに（内容が見えなくならないように） */
  .audit-tbl thead { display: none; }
  .audit-tbl, .audit-tbl tbody, .audit-tbl tr, .audit-tbl td { display: block; width: 100%; box-sizing: border-box; }
  .audit-tbl tr { padding: .6rem .75rem; border-bottom: 1px solid var(--line, rgba(127,127,127,.25)); }
  .audit-tbl td { border: 0; padding: .15rem 0; }
  .audit-ch { min-width: 0; max-width: none; }
}
/* ホーム画面に追加の案内（2026/11/07） */
.a2hs { display: flex; gap: .7rem; align-items: flex-start; }
.a2hs img { flex: none; border-radius: 22%; }
.a2hs-text { min-width: 0; }
/* 左上のマーク（2026/11/07 依頼主：ホーム画面のアイコンと同じ絵。1ファイルのデモでも出るように CSS に埋め込む。元は web/icons/mark.png） */
.brand-mark { flex: none; background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAYAAABRRIOnAAA1s0lEQVR42u2deZgcZdX2f+epqu6eLTOThZCFEAKEJaBIEBTUJOyCgoATVhVEg6iAK74qOBMFRRFeBUTZFAEFM/CyRiQsSWSHBGUPgZCEQDIkmX2ml1qe8/1R1dM9Q1C2QODrc111dWem0z1dz133uc/ynIKKVaxiFatYxSpWsYpVrGIVq1jFKlaxilWsYhWrWMUqVrGKVaxiFatYxSpWsYpVrGIVq1jFKlaxilWsYhWrWMUqVrGKVaxiFatYxSpWsYpVrGIVezumqtKsalTVKR7Jv2XIC+VNvKuU///X+wx08Osq9h4B4A0v7n98ncrgY8PWrGreyEfNaVLn/QwO9/34RzerGkEUQTVeKPfTcMaz8KkD4amxsHocvOhA2915Vl4jslxVZf/HqX7OkPruzkQzIdocIkCHAIQ2cOeAc/l9OFUriE7cgdxJIsEndOmoY/C2zuCObSOY9CJ2q0fxJ67HNu5CevZc2faOma0SITFgRUQrgNj4zGCEVkGwX9J//vj7LHvlXLa+OcB+eiVmt8tgmi17vaQofKegXwBu6O/g/DXdHHbZy7RdH5BtyNHhRUSpAkgAQT8U+pH+HI3rszQsX0XjOM+unHWcObyms3P0SSy++T7shBhDKSCdfEoj2ajrw8Ad//cF/xOHXeU9KiIFnaOOzJSoAoiNZHNUHWEmyhw5Vhedcz3LfrAn1RcC16cxueRq95PvJYDFkP6LQ8v5Iq173a4r3HZGPdXBKAKgKzl6gH4gD4RAABTA7QL5sN4vImu2yv3zdz7OBEiFYAQygKOgkRCkOqlZBRDc7My9/xhaVfWbCAVVdUTeP6Aw75c/tEnVmSkSKXPcA7n/kptp+0E/1XZ7aruT72ESELiAk/zbVbC9DtvfmtPp9x3IFRO6WY5P5Bh8YwhNFaFpIDSjCM04QjOe0GxBKCMI60eSvfh6++vcSp2Uy/TtEeCq4BjwnOQzXHAcpVq8iBqAqirT13cDJ947kytRholIpM3qVgDxDto0ne+2ikSqWrc7C/+ygJ4v91ObN3gmh59isBoc6re1AHKi4bsisrZbuctdixOtxrGduLYL1/bi2v7ksRvX9mBkLa47IVq8t6Qe3nHsQ1/qoHYMaKSIKcOdgosBIkwBIDPSqjeGqPMejrz9U9zU8bRuKbMlbEbd94PY3OQBMVUXeQtlRtijOnJr7rp5MdkjClSHQtpVMohNKwnTb8gEJALcFHvc26tTrj+ZS2vX0MerONKLkktcRfHwgRxoJ7ScqBeo6vBaN/c5n0jMAPE4ZSQEimAjjQAiH8ekcKq2IOh9gum3H8xdSy7QvWYj4UnCJg8Ks6mDYbHsFjyrOnEH7r79RfwZlpoAPFcTP24SGZR/PREaX87ROhj1lQxf/ESNLKoZzr+dNaj2YQcAUUiOECsvIZvvaJ87+QDv+v3414Ev4H1IsKHiuDEQvMQ7mXJgCEBkjfoh5CJcGUHYs5pt7j6D2x44V2deigTThU06LN1kATFN57sxGDp23pN/3PIK/m5CbQCeFy9IOqHt//oVREAChWo4RFU3+8Xn+Y2sQejF0A9kY1YgD5Ij0rXI8bvrJaqakij7xRw+Qg0ay5IyEMSHIOA7MTDz0JeFXD/k87huA1F/lvo7fspVt52ppy5EQhFEm9VUAPEmBORCmREu1c6PfJz753YS7SxkAsXx4j/ZSxYlBfa/fwUFRyzBs4bt9vc56Av7cvPorVgmyxDxsfTFUYb4WF2KM3F7Xt1ztDPnTJ6Zcp/DPuBGFpwSI0hJw0bFfFYcSPR2QXcnZPsgl4N8Dsf1sNKLO+83nH/lLD0LxMpssXOa1KkA4r9kH5t0TqpVJHpE107bg3tv68LbQqgLlCovDvUyCSC8JBcgG1SSr/EbIZKPEL/AcYBz5Mf5rbYB68oA0UVEO2b3bW3rZ0+WVx7Ph9/KEblClYIjMRiK3kEhNBAYCB0I4t91h9Dtx8Doz0LWh4KP4wqS7kXuvZIfX3BIzD4zWyVqnrZpRSBmUwLDSSx2W2Wmf7O+st9BPHx9J+5YoSpUMl68+F7Z4cZH6P5XeiAAG+JIlmihss/PYbfdhBtGbcs6VuJIFit9qL6MGTeZnLOjuVq1d7O/e+uPFjxVHGcgyiymbkIBXyFQiJQiWNoFuoEeH3oLkPchH0FOMY4gdT72/rnM+vFOtPbeoJvNXijhrKnqVQAxxKazwLlUdguu0ZWHfpV//3U96ZFCfaik3VgvpMqAkKh8dSC0//mNbZJoskgx4fTAar52zGxZvdc2XKcFRHoIpYdIcziNGe7+64957OD+V043jucpno0TUQkYVGJmCJ0YFKEB3x3QEN3JkUuOfo0lSgHwFbEgdRHhk09zyMnf4ObVC3SHSxdL0MymoSnMJkIPZqHMCC/UF476Ds9etZbUSKE6UlIJGLzBh5rkCnUgMq/vMnQADOCDBjhk4a4+DlfVsXUjghvGT6DX9uDaPhgxAn/C9v4cIH1fuqMpoAbBkxI7JMwQGAgk/uzABV8g8GMNkWjUfBkoikeiXcWCWy0Ey9v42IlHcMtzd+knZyOWTQAU5r12E006x0HEtuiSk3/Cs39ciwwT0pGScV7DCHhgJXYTBReyDvj/4StEZaloP3keYq2l+sjlnHLVH8++d9TmPIDFYHFSVXbZ3Oue/9tn8s+eIC7jwUSKY0rMkGiFsJwlQCNb1JT0JlnwvlLgskFwAM4IyD/fzjZ7H8Utj7ysW6Ct8karqh84QDSrmim0eq0yM/qGPnnaBSy9oJNUlVBtlbQzEEUMMISbgMGBggMFA4GDeb2vUHQVRUBEyWMAgYU7OjgaWtwtJ0V/Hj4cP5OB6ftFV8GU6Gm3+9hu6oyQ0gEwRCZmpNDEkUWUsFRkYlDGBEG+zEWUM0Mxsi0AgSFoU8zKFJmG4XbliZ+JWnYfL6uQmdFsEftegsJ9r8BwG4udZ2Smf7guav4rL7d0klKhwSquKbGCm4DBxGDwE1Xvm3ihfcG6ZsOuosQIJVCEcbSheVQt4w5+mhPmXuv8adjw8Bf5PBP++sfspQeG3Z/JutW7QGTBdYiIFz0yEGoJBGGiX0JNwk9nIEFmEyiHZUQVAI5gu8GusXgNY+jZ/SP87dK55kcisv6T+ecPTaWjrc9mu8s/JtLTpOq0vgdFMfNegGE2LSyW3YK99aHz7qa9pZN0JAxTJWPiU5lKwstU/CeqUxJuhcRN+BK7jQ3lIcpdRTD4uQaIKFGP4D7eyTGATtrOXjttX/0TLfVdWXqOXEtVxpAO1YoQOAkIJdYNoSTvlYAj1Pj3Ng4UfAaKpeUMoQWInlbMasWdvBfzZn2eQy77u8y6tb9/wieiZTf8K529aT7mvJk8d+181c1bRaJpOt/9QDNEk6ozO0H9Hnr/hQ/S+80cqUDwXCUlg5kheW4T8ViQeFGKRySQc2LMFF2EScAQlYGi/N8lcDhksdaw+6xupv37wdRPAffzrPvw09YcIrYQaeR4MTMUXU7CEFHy2QNMAaIm1hGJa4iSvz4UNFRsB5iXBGfb7e0re+9kfvyLOVwHhNef/fz5X6tZfuxqMpvFWrMQvETmoMNY9n8rVY/bUuTFaTrfXSgzwg8cIJpV3dlIpKrudtx35WJyx4Z4gVDlKmkp1QhKKWE0cQ8FJ4nbTHxlFpKznlVIR4O5LhjsIjbEFBoiBsI1AZnnH2Om7C13ARwXvfj5DuPViG8DjYwTMwCxe4gMWC3pmEgSlkgSmFH8d/RgJYPBEaIORdrB0Uab+9y+XPrHOeZnItLe4K875gLnlZ+11zmTCngIGkDa1VgwBV04H9+ZF29boj2Hby/DlkxV9RaLBB8Yl9Gk6sxGIkVrtuDea5YSHhuSDqHKU6qklHUcaGMoA0Mi2IrCrZD8PC+QB2PdEkMUObtQBgJ/CDjCJASNcOjGvtDO545/ULf9qy4bPdfkvyphoPi4McMUowkpuYiCk4ScRbDY5HNiDeEL4XohfEZx1zbijN3C3nPPnWbvP7U63/otaybt479w409S6/6y2nEmFXAjwbGK8RQ3YUjjCRr04O6wF51/X6T9H1ssEjTpU6kPBCCaVU0rLapow3j++deXsUeCG0LKLfG9lDGDO5gZAondRYHkMXnuE7uMIEaCtWVuYigrDBWXPqgfP3ZnqX1oJWlLV6bHD4Zr4KJWJBalycJHSTayGK2EkohWLT0PYoZY7ZuatYo7enueOPaL/qzFq5x9dpjKqmnRs+ecS8eCuz37uQAiSFtwnVJ/RekcKI4n2LCd1FafpvNvi7TnE62ykz9NN36ae6N+gCbNsIpWjWXBn9cgnxXSvuKkBmsFr5RrsIl/9k0JDL6UWKJgkwUQKEQQxu7V+Mk53ZCr2MBhLJGN8HavZcFdR7AM2bVwTe7Fm/+Rjg43OUJrjUukyfuYEhCK+sHahD0Makup68lb2Jd23slc+dcL+KVsnX71hJ7Vs7azS7671LiTwaogYZxwK14IZYWyYo0EUFxXyIfrcCYcTGfrQu07fprIHagaROz7jiGSrmOrqDee+65cg35WSPlxxTIFVJXlGIpgSGL9QjGiMAkgimDQwcIykFItY0NMsKEjdiGq/YgReNFlrojkBLH16l4nAWgYMhBuFnVEUExTaxJulv3cN5gkQXbkceazf72t5XvXTlo39sOFZ+79v7rO3y81ZnL8yrTGPRVmsHsc0E6UMWURFBq9imx+GK+0ztPug9jIeYqNxhDCAkdV2YaHf7sa2xSDwUuV9EJq8EkYSPCYZOGk1LgSJAuR0Dy+gCrk3QGGGBRN+BsEwUATjISo9uNubXjp1kO5a9VPddttJlL9r2z2weflpWcec90dTM5ENlKHSGLWSiIKlBi4EQM6QqNS0vnMs2XVtd9es/uqxtUP9KaqHTC+gBvrhMELXgKAljEEgyqqiucYNOygtu4o23HNL7Wt6Qcid89JekzfFwwxTdVFZoSn8eqMXvJfUNTGmmEoGBK3ETqQTwRkoSgYpRRZFJkhkDJgCOR0IGU8CARDBOSA0CyKzRxqAghDFu0g8tzKy/nVnWfaq48YWfOykdRtVNWJhpGNXYMMCWWLAjN5buNHk5S/VZdnnhk55pHDtOFntbj9YFKCa0vp98HNNYPBIEP0VOxKbCysgj5T03hxWDgEoLVUi9/0AbGQxQJwMSu3X8uwGqiN4jxDqowekxMTFiOJMheRlAZjxih3E1pKSuWTn9lEVOoQURkOYYgiO/ig/ZjGLoITPsF1qlof5dll3StmZ1XdclcnfdO4rr5OxThisUQJI9giOIo6oqQrjDXYBJg7PzzhL59app+9yp04e3rBOXoi7nKL54ITlVrvystxQwHCEHA4gGsh4xHlXl7hTvhftNk0lS6FTR8QU5PH7anpqMECjpEBMDilL1oM4wrOYBfhO68DhqJ2YCB1PZAfDoawwlBxmQBCfSwFxHd56Sc7c+uS2XxmuMO4DOj/HcNJlwwb97DbHz1JpsqgEg0kp8pT2FruohLmSipWT+XN/o+t5LoZ/9Yf3pbZ8tZjqZ0x3cp8qHVAbMwpr23UHQyAcn1hAEcdhC9H1T8SkRVzaJGZGymtvVEAsYipEaryJFPmj0afgLQDKVvqKXDjRcsXXUXy6A8NLYtgSGL9Ytm5mJMolhMBE25AO5QzRPHIoV4HHLID14tIftWNHJbqwEtZZOl99nBAdnGqr6/vzaqGOAOsUHQdlpK7iJxSJjPR/a7Q3pen+r4V/PyQhXrVWTS2zTdj9jss9P+QiYWiESQsnXotY4cyMKiAGkygEaScffPc8If0qKubNpJ22KiAEBHbxNOeiKyezPBLMkik5V82TCKJom4Y6HpOFjygFF0EtgwEQ4RlTgaI05a6pl9byygCJQ904RARnT+dy/vu1g+Hhk92OtiwljCXNVv944scftNWW1ypga7BzRis2pgRTAKGpHUuudYHoo/EpWtACkUDCG95ni/sfh0PnvBUsOuN3mYn75NNnbw5Zq2SduPsZDkIEobQpJoaOpDXyJJ2arv9Vbtl+TaKtP6XbsFNNuycw5SgWdXczqSrRsKThpQDjiUwMTMUXUVeyjKQRXYoCzcDpyxLmaSwCxr/vriPgrLoItyA+/AHootI1qG7bsX80Q3ywrN/4gD7ApuFGUIsWmgndd8jHC4ivdtSM88t+IqiMRvAQF7CJiAIEvESKeSi8mhHCDB4RI+u4SO3zvPuOOkePWluzYhLf5itOfSjhE8qDZ7ghHF4UgauhCWlgEqUsqPCdOF00t87e8SIVdNQZ2PmIDYqIOKdzwuMiPSdFI04R7Ex6nPuEPFY1k9QdBf5hAnyJmaBfPF3RR2RvL4/EaUkmcfXS0oVaxi9qAqy70guVdWq3g6OWNsPvocJs5gO0Dzsrz/V7S7foeq3FKxgHYOWiUqbsFiY6Ieo1LU1kA+JgSmEOCZD2J6j4ZrbufjYy/Xi02pqHnqEUQfsGfitSspFUCxR3HxjBvST5k2E1HnD27PXnVlfezOL1FuwkYTku5a6ni0zQlU1Z9w76oZdcuYhQtdIwYliQCSLHJgyIJiyn5nB6ep8WR2jPDmVRBlSzgbhkCJXASQikvU4O45k+brPM3/tT9i172F2y1UT5bO4/RanWgjaljL8pw/w2V1oeHxSquZJURdBo4HClnVKeYhiE45vBvohCCml1kOwIa5ksP0Oev29nPyhM3TB3wvU3e8NO2q/nuj0kbnIRz1HAieUwFEiFwnEGlMrIzr6Hl8y3v2BiBTmTMW+G+MFNnotYyaIzJDwIL+muarfs5JF46ZDKdMPxbyDJj9Lcg85A1kZ3ItW1AoJUAZOkX1t78PAwvgg/Vi1yOQR3HSpyPol6zjx1Q5M5KL9fXHZ2hHMWkXbOuyRzKP60AbnArWeEDgas4Qbf06kia9PjsAMtOEP2kFe7MHoxxEwhTqiJ59i2lEncu/ld4afu7O+8dzzetOHbttrV2lqmKuBE4lPiJ/Ws0TOX7dF7X4ida82N6uZ+S41y2x0QLSCRdWcVV9/79SuwlwbZVzjSxBf7VpaYF8G5yKKEUjexsDIJ/phKDASDWHK3YM/WFCKxdoOTGOa/rbJ3KCqw5bfwhF9DvTncHIav2WPxa0Gu/QRs9sNc9ilb4uOO0b6+W71xYg1NgZAeaUzcVmRDpS/y0CYFMiwIkQIoXGwMppcbycjTj/Hve74c/SHXxrdcMfShvqPje/M3paJ0q6Gaath2vGC8GkRWXeJqjd79sbVDe9u+VtEp4ERkdwUz1w4Omuzts8YyaHknaTRsMxdFIqMUMYYAy1IZeFoHsgpGg4RlRsIPaWAJcDZ2uORB/dn8aJz+VLnOoaFYHM+UijrcKoWdK2gTwZ89WK2eeWTVe71eLVGQokIkpY5WyyNJyKwWGkliYqyKD4h/UAbRlfg6FI8+yyefZYq1uN0LsG76nx+Pnp7ve8H5zFx1WY1h+zr958+PG9Tk8Lcku/VBHfEe1V415pj3rUGmQUQyXx1/zCBf95z/7q5r5oRTZLvD9RXbyBsG2AJHZyqDorPtax8rXHwVYgjegDrl0UcZWVuCVDbBXUWdDz/EJH8xWP1K/0WDW3cY1O+8TspxcrNN3BYy5/55ro6uam+MzyxO6cialRDI4Na6SIDAUrKUQDtNi5rEXpxCcBL07bdaF6YNJ4Vw0LWetCh/VhjsFE/qSUr+NBzL/OV1n9p1227yrmzVvY9PrXRfUlqq9t4D+xdAYSI6HxVRKRwQVvvpS2P5vbvQIZJpKqBkRgETrL4pZUZEI5h0otQ3s9IIjJ1SC1DBgOCAKUPt77AmkWn0fpio+572beZHESISKwd+styXDkQF6LnfYZddAYn3HvWqD/usmTNQ49HdXuI9SMNy5pnrKhEEtic4xKJC+C22e6qGvP49/fk1pEej170Mi8evHdn/pxJ6/MikwuvrQoj8smuhs8dWq87PqWpS7eUeckvhPdgRtW71kI3HaKpi9Q7dXO5a7vbe+f19lQ1BTYfEeAMJJ3CIWnqIhsMlJopNbqig/ohBtN2KfegWdTJgx3JgyKy/OcTtKW/mwwQhopbPg2g2DLvE7/thb/jS6ecLRduOXfNXSlxP+YXCgM7twSNyIpqe6aqSvE3T9G/HFj5Q3+/MY1VK84o++5PAb8s6xEpumoRCUVQaOg8YUbygh2fSk1rqjEtCwinq0bv9uCydw0QIqKqagWYt0/6V1v9oecgqqqqwZZK3ANC0CntmyzXA1HSmVRkgvyQfoggOdXlDJHDVPehV/yY3x94no45dQrTuiKoFaTcXZQDIy84RtHOFFO6F+vH07ty9eQrXz35JapHCKGqWqvrPYdCih3Swbyqbe0Vi48e8Y+Wj6k7plFWlPWEjP7WvNx2l93ev+XmvbrVcCMj9zppXYNxcIjQj89al+uxsn6N2jWTPuQu/8upjS9MhiUiojNmA03qzFFl5rvYjv+udl1LPBbIiMii/W7uvOnOp9xjaShE+MYZ6IIq6oaCDi5iBcRbJaLkdcSlb2NMqSQwKDeQuIt2xB3BiwdOZv55H2ZWdgUTVAh7FWcAAOVgINYVQNTTSWbqkRz/wgtyUsOVrz5uwtQMG4Q+PbXpbbzcC8PHhD99+PiqG0WkT44ZAMGoo/7Sc/Dtcwv7TJ65fsceVyfmbWr4i1TzogqEftkJccBxQAKCB3qDTz+wbpXvRy9u/d11D7aeOfLWXRvk0ZnJiMOWFuTdiDbe9b7/FkCbm801Wzs/n/943xHR+lRKU1YpuEKoCTPIkGhBEjBoqfHVxAxifVtiiChhjlKCytKBc3QTVwLu6no+uyaLNBq0T5FiVTxbJiqLmqIgSBCgxrH7qOq40/6d+9Pl9+T3zvuS3n60f8XTR9X9VKrlJTkhdgPLXmbrE6/uPmnYZ9cebo3dor+63u0xYfzOVX4o6cAWZ4tIST/EQXmg0uvj9IbOJDK1k1IrC/vufczar2924trFzZ+vuQSYO3u2FECluXnjAuNdB8RsETtbVRSevWVxz1Wtj1XPMo3Z0BZwB4EhTOoVgcQxvibAsEncL4pkfc3YQgEQk2zoxRlIXyvrMak6gr2P56pbP82HXn6K/fJC1KM4/Ww4rVEg3peZzB6MXl1jtv747kx76NHqazb7VduZH96h7ncPHFp9oUi8rP94PrvFAb/o+ebdD+VOIkrVR41p8HyL2xeKi6Ai8RjkRIyygeqUh0pKQGyE7Vc/VPxad4R0y/6nnd+330U35R78xmW9LRd9hXtEJJp6iXqLT9o4bfnvzbCKVozMlOi4R9ovHLOk/8i21W6tNFqrPmZANxQjjfLOpEhjprACIWJznuw8rOqpa6F2XZ4tEkAIBTAhkbbhHLgHfz8CVs3eiq898w/csYag3eIVyoBQntjMJR+tGvdcdvegQcgxqnobsK+IrEoucj34nK6jvvrT3M9WrUttw0gD1aFFEYwYFKMDnv+/jJRSEdWBbpl4NokbqabQsMHIs21mz+duyc97dklw2Tmv6Fn/M05eYqp6LH7nQfHebCqdKRFz1Ln6o8OfG+Pkr1A/7dBno0G9C8Xwsigu/eQoCBKFykqVUVv4Xcfvm13w538weXkPE7BEtoAhAF0HWoMwmmsA78lbOdYHehTTDXSWHR3JY3Gugy11KlhA8gW7Zd+rVInwcnOzGlWtO+C7HRffeV947ap+3UYm5kKqRVExSBw3bFhDbfh4PZCAGASRcWFkhxPd85z71d98r/O2b/y1a78YDHPe8QFm793u71GIiASnnJm5erzk2nS940pgoxgAUQkAgZbyEwEQBardqQIvp2Wfnbv+IJPHrhvRZ79Y6AIjWLKICYl0Lc6OjTz/w69x75U/5jP3vcwWgK5SnNXAmuRoJ97Cn6PUQ1usjqiSGjOGFT/9mfly7eiWdSCab8qNn/TldTfd/axzsj9cQ9lcQ41zEDK0R9YUNWM8UxfNg/Yp2pMc/UmVtjiwyAEZuiICGohDRo2MLRTaAnb+81+k9dTfdX0NZkYivKOAeE/H4+0456nU001Tgok/Xv/bl59pOCXKFEIQd8BdBCWxKFgVXyPbbay84Kb22ad33p1zRx3aspgdfznPPpQPjYsCWUR6CfQlvD3HcsH9l7R+5/NTmlrnrbYHOdaoFYxilSTZiehrzqmCEpmopsZ2n3GG+dIpp8idAKfem51w7eX9N61rdz/CmNAXo57a1y6JcQUnUoI+hZ4Y2GkDNRnwqgy4sQu0eUu+oPQWhzFnBDNMMNWGMNKSSGZQYBJol3ip9aqzDk1966Jv1l8A6qi+M9XQ9xQQcSs5VrVnct2n9Z7+qprRUp2LyIvEvQEWCoLmLNppDZ0ppzYo8NGphbn33Jn5wivUm71/b+cvfcXsTBWWPowUUF2BjgvIHvYjDrtoT7kr94ROciJGMhzrKRbBBBKIp57iEBEMIXlL1GOoDeoK3SNHZp4BldOXZsdd+fPcLWs7nI8wJgxQ8QbxSdIJ5xkhWBtBtzJuhDB5W5edp2Q4YCeX3bdyGFlTapaOLCxZE3LnkoB5TwZ0PBfw8MoQFFJjDGG1xCn5oaskaukXk14LX/msc+rvThl+IbPU00sI3y4o3vMBmrMuUe/SkySYcV7/efMvrfoOVf3g18RNMgU/6XlwaKzrZtsR4aOZnfqu+eeft7lgnerYpr9yzX1LmBGlsZrDkAXpJdRVuFt63Lvi1vUH0z6y/qIRazaPML4hJavxq+tJ56twozQiT2NrOyikhFAVJEvaPkq+eheCh+bKlp1MVW/RIuqbvtJ+w4o291OM80NVcQedOY2vcCerRCsittnapWnvDE17Z/jImMG63Ubx9LHYJ8WhTLldsLDAwvk5/u+hAqQEM97BRrqBhVOr/Y5Wt5vom4dz7K9mNV7f3DzfnT377e0Uf88BUSaKxuz7hfWXhUZqhnneGunVfLUXKXm/s6OfdX0j7GP3XzP2IRHp+f6TeuS19/I/q19lF+sR4ePEE76AdUS1qzG7HBaded/33LM/7j98yyuO+ZiBSI0xkMrEzfgmEuuZyFAVIR4WBGtDY2jEeeUExhx0ekt6GS3oAd9vv2jBs97XgzGFQI28ZmKcGEHbIsgqP/lCFcd8upbtRsRiIAhjXWCktPi3PdDOdhOr2XZsFZGN92UUweEkrZtzFvn84openlgSYLZxsE4SaUm5+7CRtnuSCqP2/Y41e889YsRTzFGHt3FLhk1qxK6q1sBqhbHFojKS9BCqavWfVvO5Xzxiv7D+JbN3Z5YUESEB7kARogelDWnssu0dD5ud/hR0bvs/3rP/WItXXdoTUT791kvSQ6aoKEIwqc2RL7bJpKsB9vlZ+5H/fMS7JhjuWzLWRQfLPscI0YqQ8SMcLvthPQdOSQaHhIpj4tn5qooAPSF84egHuXvBaurq0vzwf6dy6ufGEoQWzzUoEEbgJW2Wa/sszX/p5w/X9uNt6RJUl4VACTOJYwN9JePtMD6885mLhx/e0kJ29mziRM37Jg+xoaijudnwNMH5Y8YeuirLx7JK1fo8Zt9/ReOezplx3jy7nbPeVPu98YkTIa48FjNLcbpR3XUw6hP8U0Tatg7+PXsdNVUGLZSm4Bb3PJRvslURTGBJpbYlvGMpW96AIrc/r+NOPLvz7MALXKmxkQZiyi8h10C4LGTah1z+dEYjWzUYkrkhpNzSC4NQSXmGn126jFtuWIW3+yjaXujlqt88y5H7j2Z0tYNVxYjgOTFEowg2qzX8/qQ6xo51+Mlve0mPcSjUUGIKAY2MJ5v7/tLl6f1m/qbny62z6y9oVjWzhfcxIFRlNmgLeH97gaMegcPpSCKMXNJmlzWEEUkXNKJ5nIGqVDH33IPYPuTcmeb3h1yg43bl0f0VQci48TS58v0P5bujQBGnBptvpOEKEckCTGvpPGXNWm9rmZgLNSjTDRqXIcKVlk992OWGs4YzIi1ENqb81z3ZBmREBqfOJaz3cNMpVMt0iJTyFW4CDAXO/Gw1qZTwP+f04Ex0iIZMilBXvaixwA3/tGeo6vXAmpa3eIunTWNOpYhOW4AjIv1Ta7loTA+9kqVgfAKJCLFE2BgIFDDk42xkOSDEx7IKGbO9XXbIXdx9AEsOeJqqiZAO7QAYyndFlZhC8CKocYTwXw9Tfxuq8tKrus3Cxf7XGZFTtTiDduA5QJtl7EjD1Wc2MiIda4DXBUOSfaprSKGuoJGioTK6wWVEjZM0RcgG/5tJyjg/OKCKH3y9lujFCKdciQoQiVCnVgreqN1+2n26iGjLgre293OTmWS7YDoR89W9eHMeqOtkngak6UW0D5c+HLLIawY/JjOqk8PSDl/Yw1xGy/OeicImH6OGKsCTwfMuy7fKxemLDIH9FI03ikgOEZ35x86TXevVUoONs4YlMLh5RfuUy/6nngnDDNEGooUNWRjGl3xx7f1QCf4jcSaLZGJtcU5TDU37pIiWhbieDCmKCNFI0ScfyR2hquNnzyDStzA2YJMBhIjoJXWIiBRm7cBlw9fSZ7txpD/p0s4yeERssSzZl5S5V+DUjbd5J8ec75Ha+m5H9hMMFnFLE/RdNsAUChknQrrn0tCa3INz5JP3+oeFwx3FDj5HnhHC5RGzv1zLQTt6hFGcZXxj33EDqezXAUIQajwuL7KQAM5a+M7xddQ3GGy7xbiD8GDwAuukvbFTz+k6GkR3u/TNs8QmNQ1/1lTCafPV/d44uaMBFnrdiPZhB93Tor+MGRKQmByhrkE+NY4bzzqLl/r91HEBVQ5kkuUqB4I3xG04Cg7DSD8sIisQ4Yi/9H8GzxmH42v5pe+kIGyLmLSNR9N+VVj7xpjhzVgYKaLguUJOBccxJFUNwkj52ASXUz9XhV1vcawMiThEc+lqs2aRf6Cqphef1GrfbK1jkwKEiOiC6TERXnEAv9Y1+PRiBo2E7R8MBnzUrsbU1EC7mJuA1ByTOz5RaWbQiMNB44sGnisYvkPm78VTe/tt+X37q2tSeMTVy2JtIgLtVo7bL80OIw2hjen8ndHV8YK7jhAaOP+y5Rxz1H388NfP8mpfXP43jhBZ5ej9q9hqtEPQFWHKOcCoQftUHD7U8kT2IzAzan2Ta7zJ3UCl2FU1Y5Qs2HUi83kFob+MJYpMkegJU8CyFmf7zXnmwRu582q/+9Be144BZ8hU3KLLkDL9YDReUqEa55Ek37HZOGunoCHilkjeGAh6LeNGGg6dXh3Libd79gZGSgnGgOsIf5rXxv4H3ct3v/04N/2znXO+/29+d/kLIOCIEllhh5EOu+7mQa8OTpiqGKokbDPVIy+6pPfDADN3W/z+BgRAS0tc/z1xCr8wvSDr0AFmKG+ADMB2YcXCmmH2LhHpPC3q/mpEtZaYwQw5yu61gaOQFte6a67r81YAnHpnbodely0xOSg73wLQA9tOdtl1tCGK3iYgBDIph6ok8l28pJc9Dn+AWcc9wvwnukl9uJ6aPUaTGl7FnXetpce3iMSJLqtw7IwMGatEQZkOUZAM2MDTSQV3ZwAWT31TbmOTBMTs2WJVYdbHeXCfLblNl+FIPtn4ki1FGpJF6cAbU0dPyy+ia1V1B9LRbhZHSrc1KN9uX56QcohH/aTYMTTPH/h0PPLjitvzW67TVCNpovITaW1cgd15J6+UO3jL/iH2ZlX1Hi+8kmPmKY+xx8fv4ZGHOgm3rCW1Yz0I9P+rHb+vwJebtmBYymCjOIAWgcM+nKKuwcQNoOX5EQPYvHgpmayq9clNCd/fDAEwfTqOiPhbT+TihmoCXgIplN1WMW5vstIPYSZ6ctbHUg/tlF13Yt40DAOieBBoeb6hqB1gYOJdIR4tOCGQVS0PUwDYvCecaKMq8Iwtjws0grSBg6ekBvIDb9EnEgYKm6e5/Zletvvs/bRe9zLR1jWY7erwah38pT34z/Sw16Qazrn0Y5zwpYlxCq28oRihdrwLuWR8lQ5oEcGErAt1wq+X05AwrrzvAbFwIRGo+f2X+Oe2NczTdbiSJRzYO5mPZ0XVeNiZp3K1rtRGPxMemMNFBglHp0w7FIecJS3/oVEiaLDOq5wW7/sa6cpILMhAeSOBRRD3M3x0K3dAU7xlswoZQ2d/PB7C7NSA1HrYthzBg+3sMK6a31z4Ee6YP50ffGlLHKsbDFunjHNfe39KVYNn6Qh1xM3399YAzP4gMASINjdjRKT/QzP44yiXgl2DkQhNZl0rXYjv0nvhKc7Vu0/onb7e1GwLQTRYTJYBQiXepR0kIweSQSBuaNoFUVV1PKMN2ChuqCy3QPGqDI3V5i27DMcRpLjZzCqm1sXUedj2Arq4k2Gq/O4PU/nHLXtx2rETqCnmI16HjrbfzImbkaWkS1QR3Ei7Clr/8HMmvlv9M63yAQAEtLQQgbqXf4Vbah0Wmh4cskQDu6oDdL9DbauIZOttcEQnVSkTjwCUQQkodeLbFwyAwS1Ns49vmWAHCN3ivKZQWIwGnLfYr5Zc4W2v5JBcRCrt4HoOtjMgeqqbxi6f75yxA8se2oevH78lE0ak8IN4kpHnvv4nNgytfiYXEhiNVJ0gl3v/ZipfLy8x6xJERMITfsQV1V2E2h430dKJqEG+u4/5Q7N2TVpOZu+4q8aYQZnI4nCP4qjkgaNsEowflOSeQV+3TvgWmaFYMN926xpsV0BuWTfh013UdRT4/FFb8NTj+3PeD7ZjZIOHWsVaSHnm9RtwS6S1oT+ymNPWWDd9gAABcMkswuZmNWcews0jJ/Av04GRAJ8ezM578O8ZC3liOeaAZaZ6jOCGFtcZiCZsMs9hYHqdE096CYtjkZNxBNapKeZAQpUsxhnsFpIahvUtgdU33UXiuQZUOeWwcZx7wUfYaWyGg/YawXU37UnrhR9hbKMbVzY1brZ5o/pkZftgQVlsEsWKqXI1N260DT5wgEhKuEZECqf/lPPJxS32RDB1i+gyLmmJHvfTX5Z4sLgp3ZLJKQ30CIqDPVDxUQIsPlYjInKQC81ITe6y2xdqJ8YBO4QPPCGftTzfFiIlL/Cmogu1yvdO2YZb/z6dG27Yi4N2bcQPtNjf8V8ZYag9sSaC1ODKpxhVAsPItNO53y5ODqB5xyb9wAAiyUuEqionH8oN23yURZLD2Wp71g03zl338+NdH3fdqYqqJe2gRRYwSGisBCaSSEKiOELREEEwxmK8HjJeJzzVw9Ynnra+GuBlY17G8dFQhaTJRDWOWvt84c7nwoGr+c27DiEMLBOHe2RQwkhJecJb7aR/ZVUINabUMKPJBRQZRrrSds5+w3o+cAxRtNZWjIgEXz6acxWcLcdz5/lXy9KzC/I1MUbAsRKJNRGhiSQgkkB9jFocTeEaxW3IReHIXru+pjtatnkuuvno6vCcn42NZn13DL+qNyNDgK2mVK2otX0hvg4Sl44BdZR5TwSIvAWGSMz1DNYqqoLrvHkgFNnkpQ5Lvi2CTFkZPJmXLpqmRvXF0dAJzaal5Y2rH/f9AoiZM2M9/YvzuHPyDixbuoS7VbXGC+1n4iwBqGLUweDGP9msK+ofiazq72J1dxT++xvD+PdZm6WeAZaKSO9VZe8/Z446/wtcd2r1C59+sP+lvtCZFJeSSsUtagyvLgno8+O7iupbvLbN2yiRFlPmF87P0e0LUgVaFmloCJryeMnve1pEfJjvikj4gQNEsWm0ayU9bfif+8dNqZe/THA8rje6CP+xIeu2zkZLvMh54Tk/evLAlD51+QjnRWCFSDo6Gzg7eW2TqvP1ZLHXgTa1oNBsJsOybKAvkqqepPQWb+0Wd0QNMzy5MuSaRQW+tmcGP9RBvZMb20paQ7nnvjxUSdxRVYpmrPZFTq30FWo/VPU4wLTm6Sx8E5mp9xEgBkRmRDyUhe8HuuQoYy+vjsyyf/vhk2Nd98UbhznrRGQ9wBXJQbOaHZ/S1GlT0Fmxx1URiVqHvPfUWeqJiL/V6e0PpZbn9/VDFZyYktWCyQi+Kn+/M8eJe2ZwjcSRwbuEiSC5MdVlj/g8tzTEGe0MNPUmLKaEGWdUUHj+6W8Nf0y+Dd+Ygi58M+eX96HNmaNO7EJEdc4cR2bOjF6Tvl2M0zwVnQLaxBvb5jZ/vrozZkj4RL+/255HtN/Rt3lqOOlIB1roDKR8RV+2XP3zRpqmprBR3BC70dlBY4qIRDn4h53MezLA3cqN6yKlF4Wmt8ZpqM5d0fHHkV99KzvEzfsREDNnSgSiqIo0NSmqzjRVF1Wj8ewJZTcJZouEM0Xe8Jym6dOJmprU+VBNalFmrPOY6XN0UC4wgrDKEFQJP7+8l3yyo0rfhSlQUeK8fj03z7yHfVLjncFgACUQp7q7N/vr79RcC3DJJW9B3/B+NhFFxCISLRQJEbEiom91f6OIaNOc+Pnpn6+52HYFQoiUq3jrK2aswxPPBHzvyl5c561HHG+GHVwHHl0RctalvchYl8AZ0mSrqqbPk5qRzmMnTMnMb1Y1s6a++RmX729AbAz2iTu25Pufrr5tu8k8xHrXiGvtIFBEipns8vurs5z191zctGI3zn0LbKJRuvPKCWd10S9AfXzL4EEO34pqt8/Xjqr7lYjoFHgf78vY5FxSqxGRYK9dM2c4kaJ9JsIMdgzWhdRElzPP6+EXf89iTLLjyr5zQIiiuO+is6B8+gcdPPOKxYw1aDSkKcbVkDWes+tO5paWg9JzVfUt33GnAogNJsGabHNzs7nixNr506fIJU5nlWdUB9OvBT8D3ljDj37dw5lz+inYeH+YH+jbciNBlNRqHXjwxYBPfL2dB5dGeBNNcfh/CQyOWl1vTCbj935yevpHIqLS8taDhQogXifn8cyUFhGBycc1nl1b27/UtnueGPsaUAQ1gjPR4ayL+jjurC4eWRmS8uL8QBC9cX2hye1Aowg8Jx6X/evbssw4rZNn1lvMRKd4E+Oy1VOlIGFdn8txe7o//M2hdU/TpA5vY0qdVBb/9a25Wd3ZsyX89jW9M35/rX9rvl4yUheKDtkBjsQdmtHykMYGw9cOrmLWodVMrDcDCaX/JjDKcxmX3J/nxluy3PFoAca4SEN8Q6bXTJOJNDBr0942EwrXLLlo1Fdlt8WRLpr6toaGVADxX2zqJYu8xSftFpxyccfJl94YXVwYDVSr3cA0KFxXCDssrLNsM8YwZZc0X9onw2G7eP/1VC9fH/K7BT4P3Jfjwefj1U+NdwicOB29gf8e8Graq67L33fH1alDPin/2900p0VaZ769qbcVQPxXKleR6QscFs4Iv3lR96mX3hL8xh+FSp21amVwplfBeOCEQtBtodeSttDQKGTGOEzZwmXH0S711VAIYFWX8tTqiJdXBeTXRnTnFaoN0ig41SbeC1o+JETj8raGhKzPeFXD/AcevCp92C5StzYeAfD2B5pWAPHGoWFA7KkXdH3zitvl3P5hUcYMD30bSap8K3/xrJqkHG0j4lb5nE3utqODb+abFqg2kBEkHfd7WQYXrOKPF8TVSLNqaU97NY3+vbf9vmrmjNratmnN6i6cLe/IfTUqgHgzTBEPJrbfvbj9qEvnO+f25nW8jA5CdXGwr1/RkGLD99AzXt7pZP9zxlMcDXW9OFVZVyZOslfeecHw740XaW9qUqe19Z0bjl4BxJt2HzgslLDpxo6dl86z5z6+InMA9TmoJ0L19QeX6ltZBY0zsSEObR5Vab/rmL3SzZd/Z9hFImKb5qjzdjVDBRDviNKMi0aqWvvFC/q+8rd/5k8Pc84YOxJww0hcFINRjWddv8al/MdEgKqIWA0VfONI1sXpDnTqjs7N0/fzfvLLg+ueBDVNc1qldWhRrwKI986mNc93FyYjANf367j9ft31/WUPFw4LUs6EXKYG6INqQkmLiklunKJIvDuwuEVQVEzcJq2g+Ipm1cGmDepQ35PtrRllHvvesXXnfXv/9Nx4ANt8V3X6RruxSgUQb8+JDLpdgaqO2+MXHUe3PRYcHBrZsU2qN7ORB2EBHB88JdmGFeeeI0zcFe6CpMFzqZWuYLQ1S7pqeejcUxpav7yrd2fy3kZagI18z4wKIN4JWDSraWGBKQ4NVVXv7MXB1N/8sXfnSX60i+vI5HUhEzpDGjsDrY+i+O6wGdfkNstIxwhP2urQF18u8HTNzuaJJ77V+C8RWRW/+xxHtUlF3p1bNVYA8Q7anDnq/LITs/gkIigtoKrWn7Mk33j7I0HVomeiTDYUQwCbjXeCz3/UzX5/eqZvIrSLlDWzTF3kzf/1VJ0+nXf9vlsVe+ejEdPcrC6z1Iv3Eb7BPMfURd60ZnXnzHnnb3tQYYhNKFSFeEv+bBi88XbHJm1Onra0oBUmqFjFKlaxilWsYhWrWMUqVrGKVaxiFavY/7f2/wDQ1/s5lYH+oAAAAABJRU5ErkJggg==") center / cover no-repeat; }
/* ダークモードでは左上のマークを黒地の絵に（2026/11/10 依頼主。--mark-dark は tools/build_icons.py が web/icons/mark-dark.png で書き換える） */
:root { --mark-dark: url("data:image/png;base64,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"); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .brand-mark { background: #000 var(--mark-dark) center / cover no-repeat; } }
:root[data-theme="dark"] .brand-mark { background: #000 var(--mark-dark) center / cover no-repeat; }
/* 左のメニューが細い画面（861〜1199px は幅 188px）でも、法人名が切れないように */
@media (max-width: 1199px) {
  .side .brand { padding-left: .25rem; padding-right: .25rem; gap: .5rem; }
  .side .brand strong { font-size: .78rem; }
}

/* 賃金台帳・有給管理簿・源泉徴収票（2026/11/07） */
.lg-sheet, .lb-sheet { display: grid; gap: .5rem; margin-bottom: 1.2rem; }
.lg-head h2 { margin: 0 0 .2rem; font-size: 1.05rem; }
.lg-tbl th, .lg-tbl td { padding: .25rem .4rem; font-size: .78rem; white-space: nowrap; }
.lg-tbl tbody th { text-align: left; font-weight: 500; position: sticky; left: 0; background: var(--surface); }
.lg-sum td, .lg-sum th { font-weight: 700 !important; border-top: 1px solid var(--ink-3, #888); }
.lg-tot { font-weight: 700; background: var(--surface-2); }
.gs-wrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; max-height: 62vh; overflow: auto; }
.gs-wrap .hf-sheet { max-width: 620px; margin: 0 auto; width: 100%; box-shadow: 0 0 0 1px #ccc; }
.hf { position: relative; container-type: inline-size; background: #fff; line-height: 1; color: #000; font-family: "Hiragino Mincho ProN", "Yu Mincho", "MS Mincho", serif; }
.hf img { display: block; width: 100%; height: auto; }
.hf-t { position: absolute; display: flex; align-items: center; color: #000; white-space: nowrap; overflow: hidden; font-feature-settings: "tnum"; }
.hf-g .hf-t.l { padding-left: .6cqw; } .hf-g .hf-t.r { padding-right: .6cqw; }
.hf-t.r { justify-content: flex-end; } .hf-t.c { justify-content: center; } .hf-t.w { align-items: flex-start; white-space: pre-wrap; line-height: 1.18; word-break: break-all; }
#gs-print-area { display: none; }
@media print {
  body.gs-printing > *:not(#gs-print-area) { display: none !important; }
  body.gs-printing #gs-print-area { display: block; }
  #gs-print-area .hf-g { width: 210mm; }
  #gs-print-area .hf-page { display: flex; justify-content: center; gap: 0; height: 209mm; overflow: hidden; break-after: page; }
  #gs-print-area .hf-page .hf-sheet { width: 148mm; flex: none; box-shadow: none; }
  .hf img { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .lg-sheet { break-after: page; }
  .lb-sheet { break-inside: avoid; }
  .print-only { display: block !important; }
  .lg-tbl tbody th { position: static; }
}

/* スマホ（2026/11/07）：タブは折り返さず横に動かす（内容までの距離を短く） */
@media (max-width: 640px) {
  .tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .tabs::-webkit-scrollbar { display: none; }
  .tab { flex: none; white-space: nowrap; }
}
/* 表の先頭の列を固定して、横にずらしても誰の行か分かるように（PC の幅でも） */
.main .tbl-wrap > table.tbl:not(.shift-tbl, .ps-tbl, .lg-tbl, .audit-tbl, .tbl-edit, .wrap-cells) > * > tr > :first-child { position: sticky; left: 0; z-index: 2; background: var(--surface); box-shadow: 1px 0 0 var(--line); }
.main .tbl-wrap > table.tbl:not(.shift-tbl, .ps-tbl, .lg-tbl, .audit-tbl, .tbl-edit, .wrap-cells) > thead > tr > :first-child { background: var(--surface-2); }
@media print { .main .tbl-wrap > table.tbl > * > tr > :first-child { position: static !important; box-shadow: none !important; } }

/* スマホの「その他」（Admin.actionsMenu）。幅が広くなったら元の並びに見える */
.act-more, .act-more-body { display: contents; }
.act-more-toggle { display: none; }
@media (max-width: 640px) {
  .act-more { display: block; position: relative; }
  .act-more-toggle { display: inline-flex; align-items: center; gap: .35em; }
  .act-more-toggle::after { content: "▾"; font-size: .8em; }
  .act-more-body { display: none; position: absolute; top: calc(100% + 4px); z-index: 25; min-width: 12.5rem; padding: .35rem; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
  .act-more.open .act-more-body { display: grid; gap: .3rem; }
  .act-more-body .btn { width: 100%; justify-content: flex-start; text-align: left; border-color: transparent; }
}

/* 手当・計算ルールの開閉（Admin.rulesAccordion） */
.rule-acc > .card-head { cursor: pointer; user-select: none; }
.rule-acc > .card-head::after { content: "▾"; margin-left: auto; color: var(--ink-2); transition: transform .15s; }
.rule-acc.shut > .card-head::after { transform: rotate(-90deg); }
.rule-acc.shut > .card-head { border-bottom: 0; }
@media screen { .rule-acc.shut > :not(.card-head) { display: none !important; } }

/* 固定した列（名前など）は、行の色がついても透けないように不透明のまま（2026/11/07 依頼主） */
.shift-tbl tr.today td.name, .ps-tbl tr.today th.nm, .lg-tbl tbody tr.today th,
.main .tbl-wrap > table.tbl:not(.shift-tbl, .ps-tbl, .lg-tbl, .audit-tbl, .tbl-edit, .wrap-cells) > tbody > tr.today > :first-child { background: color-mix(in srgb, var(--accent-soft) 55%, var(--surface)); }
@media (hover: hover) {
  .shift-tbl tr:hover td.name, .main .tbl-wrap > table.tbl:not(.shift-tbl, .ps-tbl, .lg-tbl, .audit-tbl, .tbl-edit, .wrap-cells) > tbody > tr:hover > :first-child { background: color-mix(in srgb, var(--surface-2) 60%, var(--surface)); }
}
/* iPhone：表の端でスワイプしたときの「弾み」で固定の列までずれないように（縦のスクロールには影響しない） */
.tbl-wrap, .tabs { overscroll-behavior-x: none; }

/* iPhone は 16px より小さい入力欄を押すと画面が拡大されて戻らないので、タッチの端末では 16px にする */
@media (pointer: coarse) { input.input, select.input, textarea.input, input.srch-in { font-size: 16px; } }

/* 締めの確認の「要対応：打刻漏れ5件／申請3件」の1行（2026/11/10 依頼主）。押すとその項目だけに絞り込む */
.stats.todo-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .5rem; grid-template-columns: none; }
.todo-bar .todo-h { font-weight: 700; margin-right: .1rem; }
.todo-bar .stat { display: inline-flex; align-items: baseline; gap: .4rem; padding: .35rem .8rem; border-radius: 999px; container-type: normal; }
.todo-bar .stat .l { font-size: .85rem; }
.todo-bar .stat .v { font-size: 1.05rem; }
.todo-bar .stat .v .small { font-size: .75rem; }

/* 打刻端末の「スマホで申請・勤務確認」で出す QR コード（2026/11/10 依頼主） */
.k-qr-big { display: grid; justify-items: center; gap: .8rem; text-align: center; }
.k-qr-big p { margin: 0; line-height: 1.6; }
.k-qr-img { width: min(280px, 70vw); aspect-ratio: 1; background: #fff; border-radius: 10px; display: grid; place-items: center; }
.k-qr-img svg { display: block; width: 100%; height: 100%; }
.k-foot { align-items: center; }
