:root{
  --pr:#16a34a;--prd:#15803d;--prdd:#166534;--prl:#dcfce7;
  --bg:#f0f2f5;--wh:#ffffff;--bg2:#dde6de;--bd:#b0b8c1;--bdl:#d0d7de;
  --tx:#1a1a2e;--mu:#555;--mu2:#888;
  --ok:#16a34a;--ok2:#dcfce7;
  --wn:#b45309;--wn2:#fef3c7;
  --er:#b91c1c;--er2:#fee2e2;
  --al:#f4f6f8;
  --sb-bg:#ffffff;--sb-tx:#1a1a2e;--sb-act:#16a34a;--sb-hover:#dcfce7;
  --sw:210px;--sh:48px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px}

/* HEADER */
#hdr{position:fixed;top:0;left:0;right:0;height:var(--sh);z-index:300;background:var(--prd);display:flex;align-items:center;padding:0 20px;border-bottom:2px solid var(--prdd)}
#hdr .lg{color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px}
#hdr .ls{color:rgba(255,255,255,.65);font-size:11px;margin-left:10px;border-left:1px solid rgba(255,255,255,.3);padding-left:10px}
#hdr .hd{margin-left:auto;color:rgba(255,255,255,.75);font-size:11px}

/* SIDEBAR */
#sb{position:fixed;top:var(--sh);left:0;bottom:0;width:var(--sw);background:var(--sb-bg);border-right:1px solid var(--bd);display:flex;flex-direction:column;z-index:200;transition:width .15s ease}
.sb-scroll{flex:1;min-height:0;overflow-y:auto}
.sb-header{padding:16px 20px 14px;border-bottom:1px solid var(--bdl);display:flex;align-items:center;justify-content:center}
.sb-logo{width:100%;max-width:160px;height:auto;display:block}
#sb.collapsed{width:52px}
#sb.collapsed .sb-scroll{overflow-x:hidden}
#sb.collapsed .sb-header{display:none}
#sb.collapsed .nll{display:none}
#sb.collapsed .ni{justify-content:center;padding:9px 0;gap:0}
#sb.collapsed .ni .ic svg{margin:0}
#sb.collapsed .ni .nav-label{display:none}
#sb.collapsed .nb{display:none}
#mn.sb-collapsed{margin-left:52px}
/* アプリ切り替え（ptd-system⇔設備台帳）：常にサイドバー最下部に固定表示（スクロール領域の外） */
.sidebar-switch{flex-shrink:0;background:var(--sb-bg);padding:10px 10px 4px;border-top:1px solid var(--bdl)}
.sidebar-switch a{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;background:var(--prl);border:1px solid var(--pr);color:var(--prd);font-size:11px;font-weight:700;text-decoration:none}
.sidebar-switch a:hover{background:var(--pr);color:#fff}
.sidebar-switch a svg{width:14px;height:14px;stroke:currentColor}
#sb.collapsed .sidebar-switch a .nav-label{display:none}
#sb.collapsed .sidebar-switch a{padding:8px 0}
#sb-collapse-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;cursor:pointer;flex-shrink:0;margin-right:4px;border-radius:3px}
#sb-collapse-toggle:hover{background:rgba(255,255,255,.15)}
#sb-collapse-toggle svg{stroke:#fff;width:18px;height:18px}
.nl{padding:12px 0 3px}
.nll{padding:12px 14px 5px;font-size:9px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:1.2px;background:var(--bg);border-top:1px solid var(--bdl);border-bottom:1px solid var(--bdl)}
.ni{display:flex;align-items:center;gap:8px;padding:9px 14px;cursor:pointer;font-size:13px;color:var(--sb-tx);border-left:3px solid transparent;transition:all .12s}
.ni:hover{background:var(--sb-hover);color:var(--prd)}
.ni.act{background:var(--prl);color:var(--prd);border-left-color:var(--pr);font-weight:700}
.ni .ic{font-size:14px;width:18px;text-align:center;flex-shrink:0}
.ni .ic svg{width:15px;height:15px;stroke:currentColor;vertical-align:middle;margin-top:-2px}
.hc .hi svg{width:28px;height:28px;stroke:var(--pr);stroke-width:1.8}

/* ページヘッダーアイコン */
.ph-ic{width:18px;height:18px;stroke:var(--pr);vertical-align:middle;margin-top:-3px;margin-right:4px}

/* フォーム入力（Excel風・編集可セルは淡黄色） */
.fg input,.fg select,.fg textarea{border:1px solid var(--bd);border-radius:0;padding:7px 9px;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:13px;background:#fffef0;transition:border-color .12s}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--pr);background:#fff}

/* テーブル入力 */
table.it td input:focus{outline:2px solid var(--pr);background:var(--prl)}

/* フィルターバー */
.fb{display:flex;gap:7px;flex-wrap:wrap;align-items:center;padding:10px 14px;background:var(--bg2);border-bottom:1px solid var(--bd)}
.fb input,.fb select{padding:5px 9px;border:1px solid var(--bd);border-radius:0;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:12px;background:#fffef0}

/* シフトボタン */
.shift-btn{padding:8px 18px;border-radius:0;border:1px solid var(--bd);cursor:pointer;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:12px;font-weight:600;background:var(--wh);transition:all .15s}
.shift-btn.sel{border-color:var(--pr);background:var(--prl);color:var(--prd)}

/* info/warn box */
.info-box{background:#f0f9ff;border:1px solid #93c5fd;border-radius:0;padding:10px 14px;font-size:12px;color:#1d4ed8;margin-bottom:12px}
.warn-box{background:var(--wn2);border:1px solid #fdba74;border-radius:0;padding:10px 14px;font-size:12px;color:#9a3412;margin-bottom:12px}

/* notice-box */
.notice-box{background:#fff8e1;border:1px solid #f59e0b;border-radius:0;padding:14px 16px;margin-bottom:14px}
.notice-box h4{font-size:12px;font-weight:700;color:#92400e;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.notice-box h4 svg{stroke:#92400e}

/* ボタン内アイコン整列 */
.btn svg{width:12px;height:12px;vertical-align:middle;margin-top:-1px}
.nb{margin-left:auto;background:var(--wn);color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.sbf{flex-shrink:0;padding:11px 14px;border-top:1px solid var(--bdl);font-size:10px;color:var(--mu)}

/* MAIN */
#mn{margin-left:var(--sw);margin-top:var(--sh);min-height:calc(100vh - var(--sh))}
.pw{padding:20px 22px}
.pg{display:none}.pg.act{display:block}

/* PAGE HEADER */
.ph{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}
.ph h2{font-size:16px;font-weight:700}
.ph p{font-size:11px;color:var(--mu);margin-top:2px}
.phr{display:flex;gap:8px;flex-wrap:wrap}

/* PANEL */
.pn{background:var(--wh);border:1px solid var(--bd);border-radius:0;margin-bottom:14px}
.pnh{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid var(--bd);background:var(--bg2);border-radius:0}
.pnh h3{font-size:10px;font-weight:700;color:#444;text-transform:uppercase;letter-spacing:.8px}
.pnb{padding:14px}

/* HOME */
.hcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(188px,1fr));gap:12px}
.hc{background:var(--wh);border:1px solid var(--bd);border-radius:0;padding:16px;cursor:pointer;transition:all .15s}
.hc:hover{border-color:var(--pr);background:var(--prl)}
.hc .hi{font-size:24px;margin-bottom:9px}
.hc h3{font-size:13px;font-weight:700}
.hc p{font-size:11px;color:var(--mu);margin-top:4px;line-height:1.6}

/* FORM */
.fr{display:grid;gap:11px;margin-bottom:11px}
.c2{grid-template-columns:1fr 1fr}.c3{grid-template-columns:1fr 1fr 1fr}.c4{grid-template-columns:1fr 1fr 1fr 1fr}
.fg{display:flex;flex-direction:column;gap:3px}
.fg label{font-size:11px;font-weight:600;color:var(--mu)}
.fg label.rq::after{content:' *';color:var(--er)}
.fg input,.fg select,.fg textarea{border:1px solid var(--bd);border-radius:0;padding:7px 9px;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:13px;background:#fffef0;transition:border-color .12s}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--pr);background:#fff}
.fg textarea{resize:vertical;min-height:65px}

/* ITEMS TABLE */
.iw{overflow-x:auto;margin-bottom:7px}
table.it{width:100%;border-collapse:collapse;font-size:11px;min-width:900px}
table.it th{background:var(--bg2);padding:7px 8px;text-align:left;font-weight:700;font-size:10px;white-space:nowrap;border:1px solid var(--bd)}
table.it td{padding:3px 3px;border:1px solid var(--bd);vertical-align:middle}
table.it td input,table.it td select{width:100%;border:none;padding:5px 7px;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:12px;background:transparent;border-radius:0}
table.it td input:focus{outline:2px solid var(--pr);background:var(--prl)}
table.it .tc{text-align:center} table.it .tr{text-align:right;padding-right:7px;font-weight:600;font-size:11px;color:var(--prd)}
.addr{margin-top:5px;padding:5px 11px;background:var(--bg);border:1px dashed var(--bd);border-radius:0;cursor:pointer;font-size:11px;color:var(--mu);font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif}
.addr:hover{border-color:var(--pr);color:var(--pr);background:var(--prl)}
.db{background:none;border:none;color:var(--er);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:0;line-height:1}
.db:hover{background:var(--er2)}

/* BUTTONS */
.btn{padding:7px 15px;border-radius:0;border:1px solid rgba(0,0,0,.3);cursor:pointer;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:12px;font-weight:600;transition:all .1s;display:inline-flex;align-items:center;gap:5px;line-height:1}
/* 保存・送付・印刷：ブランドグリーン */
.bpr{background:var(--pr);color:#fff;border-color:var(--prd)}.bpr:hover{background:var(--prd)}
/* 承認・Excel：スレートティール */
.bok{background:#0f766e;color:#fff;border-color:#115e59}.bok:hover{background:#115e59}
/* PDF出力：スレートグレー */
.bwn{background:#475569;color:#fff;border-color:#334155}.bwn:hover{background:#334155}
/* 削除：レッド */
.ber{background:var(--er);color:#fff;border-color:#7f1d1d}.ber:hover{background:#7f1d1d}
/* セカンダリ：グレー */
.bgh{background:var(--wh);color:var(--tx);border:1px solid var(--bd)}.bgh:hover{background:var(--bg2)}
.bol{background:transparent;color:var(--prd);border:1px solid var(--prd)}.bol:hover{background:var(--prl)}
.bsm{padding:5px 11px;font-size:11px}.bxs{padding:3px 7px;font-size:10px}
.ab{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:14px}

/* DATA TABLE */
.dw{overflow-x:auto}
table.dt{width:100%;border-collapse:collapse;font-size:11px}
table.dt th{background:var(--bg2);padding:8px 9px;text-align:left;font-weight:700;font-size:10px;white-space:nowrap;border:1px solid var(--bd);position:sticky;top:0}
table.dt td{padding:8px 9px;border-bottom:1px solid var(--bd);border-right:1px solid var(--bdl);white-space:nowrap;vertical-align:middle}
table.dt tr:nth-child(even) td{background:var(--al)}
table.dt tr:hover td{background:var(--prl)}
.ts{max-height:440px;overflow-y:auto;border:1px solid var(--bd);border-radius:0}
.nd{text-align:center;padding:36px;color:var(--mu2);font-size:12px}
.bge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:0;font-size:10px;font-weight:700;white-space:nowrap;border:1px solid}
.bp{background:var(--wn2);color:var(--wn);border-color:#fcd34d}
.ba{background:var(--ok2);color:var(--ok);border-color:#86efac}

/* FILTER */
.fb{display:flex;gap:7px;flex-wrap:wrap;align-items:center;padding:10px 14px;background:var(--bg2);border-bottom:1px solid var(--bd)}
.fb input,.fb select{padding:5px 9px;border:1px solid var(--bd);border-radius:0;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:12px;background:#fffef0}
.fb input{min-width:120px}
.fsep{font-size:11px;color:var(--mu)}

/* OVERLAY */
.ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:400;align-items:flex-start;justify-content:center;padding-top:48px;overflow-y:auto}
.ov.op{display:flex}
.mb{background:var(--wh);border-radius:0;box-shadow:0 6px 20px rgba(0,0,0,.18);width:min(520px,94vw);overflow:hidden;margin-bottom:20px;border:1px solid var(--bd)}
.mb.wd{width:min(860px,96vw)}
.mh{padding:12px 18px;background:var(--prd);color:#fff;display:flex;align-items:center;justify-content:space-between}
.mh h3{font-size:13px;font-weight:700}
.md{padding:18px;max-height:68vh;overflow-y:auto}
.mf{padding:11px 18px;border-top:1px solid var(--bd);display:flex;gap:7px;justify-content:flex-end;background:var(--bg2)}

/* HANKO (Shachihata style - smaller, 1 circle) */
.hk-e{width:44px;height:44px;border-radius:50%;border:2px dashed var(--bd);display:inline-flex;align-items:center;justify-content:center;font-size:10px;color:var(--mu2)}
.hk-b{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:var(--mu)}

/* TOAST */
#tst{position:fixed;bottom:20px;right:20px;background:var(--tx);color:#fff;padding:10px 16px;border-radius:0;font-size:12px;font-weight:600;transform:translateY(80px);opacity:0;transition:all .25s;z-index:9999;box-shadow:0 4px 16px rgba(0,0,0,.25)}
#tst.sh{transform:translateY(0);opacity:1}
#tst.tok{background:var(--prd)}#tst.ter{background:var(--er)}

/* LOADING */
#ld{display:none;position:fixed;inset:0;background:rgba(255,255,255,.88);z-index:9000;align-items:center;justify-content:center;flex-direction:column;gap:13px}
#ld.sh{display:flex}
.spin{width:34px;height:34px;border:3px solid var(--bd);border-top-color:var(--pr);border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}

/* LOGIN */
#login-screen{display:flex;position:fixed;inset:0;background:linear-gradient(135deg,var(--prdd),var(--pr));z-index:10000;align-items:center;justify-content:center}
.login-box{background:#fff;border-radius:0;padding:36px 40px;width:min(380px,90vw);border:1px solid var(--bd)}
.login-box .logo{text-align:center;margin-bottom:24px}
.login-box .logo .icon{font-size:36px;margin-bottom:8px}
.login-box .logo h1{font-size:16px;font-weight:700;color:var(--tx)}
.login-box .logo p{font-size:11px;color:var(--mu);margin-top:4px}
.login-box .fg{margin-bottom:14px}
.login-box .fg label{display:block;font-size:11px;font-weight:600;color:var(--mu);margin-bottom:4px}
.login-box .fg input{width:100%;border:1px solid var(--bd);border-radius:0;padding:10px 12px;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:13px;background:#fffef0}
.login-box .fg input:focus{outline:none;border-color:var(--pr);background:#fff}
.login-box .btn-login{width:100%;padding:11px;background:var(--pr);color:#fff;border:1px solid var(--prd);border-radius:0;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:14px;font-weight:700;cursor:pointer;margin-top:6px}
.login-box .btn-login:hover{background:var(--prd)}
.login-box .err{background:#ffebee;color:#c62828;border-radius:0;padding:8px 12px;font-size:12px;margin-top:12px;display:none;border:1px solid #ffcdd2}
.login-box .err.sh{display:block}

/* PDF AREA */
#pa{position:fixed;left:-9999px;top:0;width:1120px;background:#fff;font-family:'Noto Serif JP','Noto Sans JP',sans-serif;visibility:hidden}

/* OVERTIME SPECIFIC */
.ot-card{background:var(--wh);border:1px solid var(--bd);border-radius:0;padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ot-stat{background:var(--ok2);border-radius:0;padding:10px 14px;text-align:center;border:1px solid #86efac}
.ot-stat .v{font-size:22px;font-weight:700;color:var(--prd)}
.ot-stat .l{font-size:10px;color:var(--mu);margin-top:2px}
.ot-stat.warn .v{color:var(--wn)}
.ot-stat.warn{background:var(--wn2);border-color:#fdba74}
.shift-btn{padding:8px 18px;border-radius:0;border:1px solid var(--bd);cursor:pointer;font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif;font-size:12px;font-weight:600;background:var(--wh);transition:all .15s}
.shift-btn.sel{border-color:var(--pr);background:var(--prl);color:var(--prd)}
.info-box{background:#f0f9ff;border:1px solid #93c5fd;border-radius:0;padding:10px 14px;font-size:12px;color:#1d4ed8;margin-bottom:12px}
.warn-box{background:var(--wn2);border:1px solid #fdba74;border-radius:0;padding:10px 14px;font-size:12px;color:#9a3412;margin-bottom:12px}

/* ══ RESPONSIVE (スマホ対応) ══ */
#hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;cursor:pointer;flex-shrink:0;margin-right:8px}
#hamburger svg{stroke:#fff}
#sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:199}
#sb-overlay.op{display:block}

@media(max-width:768px){
  /* PC専用要素を隠す */
  .pc-only{display:none !important}
  /* 発注履歴：操作列を隠す */
  #hist-tbl th.hist-op-col,#hist-tbl td.hist-op-col{display:none}
  /* ヘッダー */
  #hamburger{display:flex}
  #sb-collapse-toggle{display:none}
  #hdr .lg span.ls{display:none}
  #hdr .hd{display:none}
  /* サイドバー：デフォルトは隠す（折りたたみ状態は無視して全幅表示） */
  #sb{transform:translateX(-100%);transition:transform .25s ease;z-index:300;box-shadow:4px 0 16px rgba(0,0,0,.3);width:var(--sw) !important}
  #sb.open{transform:translateX(0)}
  #sb.collapsed .sb-header,#sb.collapsed .nll,#sb.collapsed .ni .nav-label,#sb.collapsed .nb,#sb.collapsed .sidebar-switch a .nav-label{display:revert}
  #sb.collapsed .ni{justify-content:flex-start;padding:9px 14px;gap:8px}
  /* メインエリア：全幅 */
  #mn{margin-left:0}
  #mn.sb-collapsed{margin-left:0}
  .pw{padding:14px 12px}
  /* グリッド → 1列 */
  .c2,.c3,.c4{grid-template-columns:1fr}
  /* ページヘッダー */
  .ph{flex-direction:column;gap:8px}
  .phr{flex-wrap:wrap}
  /* アクションバー */
  .ab{flex-wrap:wrap}
  .ab .btn{flex:1;min-width:calc(50% - 4px);justify-content:center}
  /* ボタンを少し大きく */
  .btn{padding:9px 14px;font-size:13px}
  .bsm{padding:7px 11px;font-size:12px}
  .bxs{padding:5px 9px;font-size:11px}
  /* フィルターバー */
  .fb{flex-direction:column;align-items:stretch}
  .fb input,.fb select{width:100%}
  /* パネル */
  .pnb{padding:10px}
  /* テーブルスクロール */
  .iw,.dw,.ts{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* 体温入力 */
  .tp-grid{grid-template-columns:1fr 1fr}
  /* 残業カード */
  .ot-card{grid-template-columns:1fr}
  /* モーダル */
  .mb,.mb.wd{width:96vw}
  .md{max-height:72vh}
  /* シフトボタン */
  .shift-btn{flex:1;min-width:calc(50% - 4px);text-align:center}
  /* ログイン */
  .login-box{padding:28px 20px}
  /* ホームカード */
  .hcs{grid-template-columns:1fr 1fr}
}
@media(max-width:400px){
  .hcs{grid-template-columns:1fr}
  .ab .btn{min-width:100%}
}
.tp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.tp-inp{background:var(--wh);border:1px solid var(--bd);border-radius:0;padding:12px;text-align:center}
.tp-inp .name{font-size:13px;font-weight:700;margin-bottom:7px}
.tp-inp input{width:90px;text-align:center;border:1px solid var(--bd);border-radius:0;padding:6px 8px;font-size:16px;font-weight:700}
.tp-tbl{border-collapse:collapse;font-size:12px}
.tp-tbl th,.tp-tbl td{border:1px solid var(--bd);padding:6px 9px;text-align:center;white-space:nowrap}
.tp-tbl th{background:var(--bg2);font-weight:700}
.tp-hi{background:var(--er2);color:var(--er);font-weight:700}
.notice-box{background:#fff8e1;border:1px solid #f59e0b;border-radius:0;padding:14px 16px;margin-bottom:14px}
.notice-box h4{font-size:12px;font-weight:700;color:#92400e;margin-bottom:8px}
.notice-box ul{padding-left:16px;font-size:12px;line-height:2;color:#78350f}
/* ══ HEADER ANIMATION ══ */
#hdr{overflow:hidden}
#hdr>*:not(.hdr-anim-wrap){position:relative;z-index:1}
.hdr-anim-wrap{position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;z-index:0;overflow:hidden}
.hdr-g-move{position:absolute;bottom:2px;animation:hdrMove 9s linear infinite}
.hdr-g-bounce{animation:hdrBounce 1.4s linear infinite}
.hdr-g-spin{display:block;animation:hdrSpin 1.4s linear infinite}
@keyframes hdrMove{from{transform:translateX(-50px)}to{transform:translateX(calc(100vw + 50px))}}
@keyframes hdrBounce{
  0%  {transform:translateY(0);animation-timing-function:ease-out}
  25% {transform:translateY(-18px);animation-timing-function:ease-in}
  50% {transform:translateY(0);animation-timing-function:ease-out}
  67% {transform:translateY(-10px);animation-timing-function:ease-in}
  82% {transform:translateY(0);animation-timing-function:ease-out}
  92% {transform:translateY(-5px);animation-timing-function:ease-in}
  100%{transform:translateY(0)}
}
@keyframes hdrSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* ══ 工事中（段階公開：ENABLED_PAGES に無いページ） ══ */
.ni.wip{opacity:.5;cursor:not-allowed}
.ni.wip:hover{background:transparent;color:var(--sb-tx)}
.wip-tag{display:inline-block;margin-left:6px;padding:0 6px;font-size:9px;font-weight:700;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;vertical-align:middle}
.hc.wip{opacity:.55;cursor:not-allowed;position:relative;background:repeating-linear-gradient(135deg,#fafafa,#fafafa 10px,#f1f1f1 10px,#f1f1f1 20px)}
.hc.wip:hover{border-color:var(--bd);background:repeating-linear-gradient(135deg,#fafafa,#fafafa 10px,#f1f1f1 10px,#f1f1f1 20px)}
.hc.wip .wip-tag{position:absolute;top:8px;right:8px;margin:0;font-size:10px;padding:1px 7px}

/* ══ ボイラー日報：入力補助 ══ */
.bo-pv{display:block;min-height:14px;margin-top:3px;font-size:11px;color:var(--mu)}
.bo-pv.warn{color:#b91c1c;font-weight:700}
.bo-time{display:flex;gap:6px;align-items:stretch}
.bo-time input{flex:1;min-width:0}
.bo-now{flex:none;padding:0 12px;border:1px solid var(--pr);background:var(--prl);color:var(--prd);font-size:12px;font-weight:700;cursor:pointer;border-radius:0}
.bo-now:active{background:var(--pr);color:#fff}
@media(max-width:768px){
  /* スマホ：入力欄を親指で押しやすい大きさに（16pxでiOSの自動ズームも防ぐ） */
  #pg-boiler .fg input,#pg-boiler .fg select{padding:12px 10px;font-size:16px;min-height:46px}
  #pg-boiler .bo-now{min-width:64px;font-size:14px}
  #pg-boiler .shift-btn{padding:12px 6px;font-size:14px;min-width:calc(33% - 6px)}
  /* 保存ボタンは固定せず、一番下までスクロールしたときに表示（ボタンだけ大きく） */
  #pg-boiler .bo-ab .btn{min-height:46px;font-size:15px}
}

.bo-note{margin:0 0 8px;padding:8px 10px;border:1px solid var(--bdl);background:#f6f8f6;font-size:12px;color:#444;line-height:1.6}
.bo-note b{color:var(--prd)}
.bo-note a{color:var(--prd);text-decoration:underline;cursor:pointer;margin-left:6px}
.bo-mini{padding:3px 9px;border:1px solid #7a6a50;background:#fff;color:#5a4e38;font-size:11px;font-weight:600;cursor:pointer;border-radius:0}

/* ボイラー指定日カレンダー */
.bo-cal-nav{display:flex;justify-content:space-between;align-items:center;margin:4px 0 8px;font-size:15px}
.bo-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.bo-cal-dow{text-align:center;font-size:11px;font-weight:700;color:var(--mu);padding:2px 0}
.bo-cal-dow.sun{color:#b91c1c}.bo-cal-dow.sat{color:#1d4ed8}
.bo-cal-day{aspect-ratio:1/1;min-height:42px;border:1px solid var(--bdl);background:#fff;font-size:15px;cursor:pointer;border-radius:0;font-family:inherit}
.bo-cal-day.today{border-color:var(--pr);border-width:2px}
.bo-cal-day.sel{background:var(--pr);color:#fff;font-weight:700;border-color:var(--prd)}

/* ボイラー日報：画面右上の操作ボタン群 */
.bo-top{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start}
@media(max-width:768px){
  #pg-boiler .bo-top,#pg-boilerhist .bo-top{justify-content:flex-start;width:100%}
  #pg-boiler .bo-top .btn,#pg-boilerhist .bo-top .btn{flex:1;min-width:calc(50% - 4px);justify-content:center}
  #pg-boiler .bo-ab .btn{flex:1}
}

/* ══ スマホ：はみ出し防止・履歴カード ══ */
.bo-cards{display:none}
.bo-chip{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;margin-right:4px}
.bo-chip.e{background:#fef3c7;color:#92400e}
.bo-chip.l{background:#dbeafe;color:#1e40af}
.bo-card{border:1px solid var(--bdl);border-left:4px solid var(--pr);background:#fff;margin-bottom:8px;border-radius:6px;overflow:hidden}
.bo-card>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.bo-card>summary::-webkit-details-marker{display:none}
.bo-card>summary::after{content:"›";margin-left:auto;font-size:20px;color:var(--mu);transition:transform .15s}
.bo-card[open]>summary::after{transform:rotate(90deg)}
.bo-card[open]>summary{background:#f6f8f6;border-bottom:1px solid var(--bdl)}
.bo-cd{font-size:17px;font-weight:700;white-space:nowrap}
.bo-cd small{font-size:11px;font-weight:400;color:var(--mu);margin-left:2px}
.bo-cs{display:flex;flex-wrap:wrap;gap:2px;min-width:0}
.bo-cb{padding:6px 12px 12px}
.bo-cg{padding:8px 0;border-bottom:1px dashed var(--bdl)}
.bo-cg:last-child{border-bottom:none}
.bo-ct{font-size:11px;font-weight:700;color:var(--prd);margin-bottom:4px}
.bo-cv{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:13px}
.bo-cv div{display:flex;justify-content:space-between;gap:6px;min-width:0}
.bo-cv span{color:var(--mu);white-space:nowrap}
.bo-cv b{font-weight:600;overflow-wrap:anywhere;text-align:right}
.bo-cv .wide{grid-column:1/-1}
.bo-empty{padding:18px;text-align:center;color:var(--mu);font-size:13px}
@media(max-width:768px){
  /* 入力欄が右にはみ出さないよう、行内の固定幅を無効にして1列（日付とガス計だけ2列）に */
  #pg-boiler .fr{grid-template-columns:minmax(0,1fr) !important}
  #pg-boiler #bo-top-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important}
  #pg-boiler .fg{min-width:0}
  #pg-boiler .fg input,#pg-boiler .fg select{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
  #pg-boiler input[type="date"],#pg-boiler input[type="time"]{-webkit-appearance:none;appearance:none}
  html,body{overflow-x:hidden}
  /* 履歴：表をやめてカード表示 */
  #pg-boilerhist .bo-tblwrap{display:none}
  #pg-boilerhist .bo-cards{display:block;padding:10px}
}
/* iPhone用 引っ張って更新 */
#ptr{position:fixed;top:0;left:0;right:0;height:0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;z-index:900;background:linear-gradient(#e8f5e9,transparent);color:var(--prd);font-size:13px;font-weight:700;pointer-events:none}
#ptr span{padding-bottom:8px}
@media(max-width:768px){
  /* シフト切替ボタンの文字を折り返さない */
  #pg-boiler .shift-btn{white-space:nowrap;font-size:13px;padding:12px 2px}
  #pg-boiler .shift-btn svg{display:none}
}

/* ══ 履歴カード：既存画面（四角い枠・細い罫線・薄緑の見出し）に合わせた見た目 ══ */
.bo-card{border:1px solid var(--bd);border-radius:0;margin-bottom:6px;background:var(--wh);overflow:visible}
.bo-card:nth-child(even)>summary{background:var(--al)}
.bo-card>summary{padding:8px 10px;gap:8px;background:var(--wh);font-family:'Meiryo UI',Meiryo,'MS UI Gothic','Segoe UI',sans-serif}
.bo-card>summary:active{background:var(--prl)}
.bo-card>summary::after{content:"▶";font-size:9px;color:#444;margin-left:auto;transition:none}
.bo-card[open]>summary::after{content:"▼";transform:none}
.bo-card[open]>summary{background:var(--bg2);border-bottom:1px solid var(--bd)}
.bo-cd{font-size:13px;font-weight:700}
.bo-cd small{font-size:10px;font-weight:400;color:var(--mu);margin-left:3px}
.bo-chip{border-radius:0;font-size:10px;font-weight:700;padding:1px 6px;margin-right:4px;border:1px solid var(--bd)}
.bo-chip.e{background:#f2ece8;color:#7a4e3a;border-color:#9a6a52}
.bo-chip.l{background:#e8ecf2;color:#3a4e6a;border-color:#52688a}
.bo-cb{padding:0}
.bo-cg{padding:0;border-bottom:none}
.bo-ct{font-size:10px;font-weight:700;color:#444;letter-spacing:.8px;margin:0;padding:4px 10px;background:var(--al);border-top:1px solid var(--bdl);border-bottom:1px solid var(--bdl)}
.bo-cg:first-child .bo-ct{border-top:none}
.bo-cv{gap:1px;background:var(--bdl)}
.bo-cv div{background:var(--wh);padding:6px 10px}
.bo-cv div:last-child:nth-child(odd){grid-column:1/-1}
.bo-cv span{font-size:11px;color:var(--mu)}
.bo-cv b{font-size:12px;font-weight:700;color:var(--tx)}
.bo-empty{padding:36px;font-size:12px;color:var(--mu2)}

/* 履歴の修正：管理者のみ表示（表示切替。権限チェックは関数側でも実施） */
.bo-edit-col,.bo-edit-btn{display:none}
body.is-admin th.bo-edit-col,body.is-admin td.bo-edit-col{display:table-cell;text-align:center}
body.is-admin .bo-edit-btn{display:block;padding:8px 10px;border-top:1px solid var(--bdl);background:var(--al);text-align:right}
