/* ══════════════════════════════════════════════════════════════════
   注文管理 PC 版 — スタイル

   body.pc のときだけ効く。スマホ版（app.css）の色の変数をそのまま使い、
   形だけ Windows 版（order_menu.py 配下の PySide6 画面）に合わせる。
   マウス操作前提なので、押せる部品はスマホ版より小さく詰めてある。
   ══════════════════════════════════════════════════════════════════ */

/* ── 画面の枠: 下タブを消し、ヘッダーの下を画面いっぱいに使う ── */
body.pc #app{ height:100dvh; min-height:0; }
body.pc nav#tabs{ display:none; }
body.pc main{ min-height:0; overflow:auto; padding:8px 12px; }
body.pc header{ padding:6px 14px; }
body.pc .btn{ min-height:32px; }
body.pc .btn.sm{ min-height:28px; }
body.pc #toast{ bottom:24px; }
body.pc .spacer{ flex:1; }

/* 全画面シート → 画面中央のダイアログ（QDialog 相当） */
body.pc #sheet{
  inset:auto; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(920px, 94vw); max-height:88vh;
  border:1px solid var(--line); border-radius:6px; overflow:hidden;
  box-shadow:0 0 0 100vmax rgba(35,38,31,.35), 0 10px 30px rgba(0,0,0,.3);
}
body.pc .sheet-head{ padding:8px 12px; }
/* 高さに上限のある枠の中で、本文だけを縦に送らせる（無いと下が切れる） */
body.pc .sheet-body{ min-height:0; }
body.pc .sheet-foot{ padding:8px 12px; justify-content:flex-end; }
body.pc .sheet-foot .btn{ flex:0 0 auto; min-width:110px; }
body.pc .pick li{ padding:8px 10px; }
body.pc .pick li:hover{ background:var(--bg-head); }

/* ── 画面共通 ─────────────────────────────────────────────── */
.pc-screen{ height:100%; min-height:0; display:flex; flex-direction:column; gap:6px; }
.pc-menubar{
  display:flex; gap:2px; border-bottom:1px solid var(--line); padding-bottom:3px; flex:0 0 auto;
}
.pc-menubar button{
  background:none; border:none; padding:4px 10px; font-size:15px; cursor:pointer; border-radius:3px;
}
.pc-menubar button:hover{ background:var(--accent); color:var(--on-accent); }
.pc-sec{ font-size:16px; font-weight:700; color:var(--accent-ink); }
.pc-status{ font-size:14px; color:var(--fg-dim); }
.pc-scroll{ flex:1; min-height:0; overflow:auto; border:1px solid var(--line); background:var(--bg-light); }

.pc-table{ width:100%; border-collapse:collapse; table-layout:fixed; font-size:15px; background:var(--bg-light); }
.pc-table th{
  position:sticky; top:0; z-index:1; background:var(--bg-head);
  border:1px solid var(--line-soft); padding:4px 6px; font-weight:600; text-align:center;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.pc-table th.sortable{ cursor:pointer; }
.pc-table th.sortable:hover{ color:var(--accent-ink); }
.pc-table td{
  border:1px solid var(--line-soft); padding:2px 6px; height:24px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.pc-table tr.orow td{ height:28px; background:var(--bg-light); }
.pc-table tr.irow2 td{ background:var(--bg-mid); color:var(--fg-dim); font-size:14px; }
.pc-table td.c{ text-align:center; }
.pc-table td.dim{ color:var(--fg-dim); }
.pc-table td.st{ font-size:14px; }
.pc-table td.click{ cursor:pointer; }
.pc-table td.click:hover{ outline:2px solid var(--accent); outline-offset:-2px; }
.pc-toggle{
  width:26px; height:22px; padding:0; border:1px solid var(--line); border-radius:3px;
  background:var(--bg-mid); color:var(--accent-ink); font-weight:700; font-size:14px; cursor:pointer;
}
.pc-toggle:hover{ border-color:var(--accent); }
.pc-link{ color:var(--accent-ink); font-weight:700; cursor:pointer; text-decoration:none; }
.pc-link:hover{ text-decoration:underline; }

/* ── メニュー（order_menu.py）──────────────────────────────── */
body.pc .pc-menu{ display:flex; flex-direction:column; height:100%; }
.pcm-head{ display:flex; align-items:center; gap:12px; height:72px; padding:0 20px;
           border-bottom:1px solid var(--line-soft); }
.pcm-bar{ width:4px; height:36px; border-radius:2px; background:var(--accent); }
.pcm-title{ font-size:22px; font-weight:600; letter-spacing:1px; color:var(--accent-ink); }
.pcm-clock{ text-align:right; line-height:1.15; }
.pcm-date{ font-size:18px; color:var(--fg-dim); }
.pcm-time{ font-size:32px; font-weight:600; font-family:Consolas,"Courier New",monospace;
           font-variant-numeric:tabular-nums; }
.pcm-grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; padding:24px 32px; }
.pcm-btn{
  min-height:90px; padding:16px 8px; font-size:28px; border-radius:8px; cursor:pointer;
  background:var(--bg-light); border:1px solid var(--line); color:var(--fg);
}
.pcm-btn:hover{ border-color:var(--accent); color:var(--accent-ink); }
.pcm-btn:active{ background:var(--accent); color:var(--on-accent); }

/* ── 注文書管理（order_list.py）────────────────────────────── */
.pcl-split{ flex:1; min-height:0; display:flex; gap:0; }
.pcl-left{ width:170px; flex:0 0 170px; border:1px solid var(--line); background:var(--bg-light);
           display:flex; flex-direction:column; min-height:0; }
.pcl-lhead{ height:32px; line-height:32px; padding:0 10px; font-size:15px; font-weight:700;
            color:var(--accent-ink); border-bottom:1px solid var(--line); flex:0 0 auto; }
.pcl-tree{ overflow:auto; flex:1; padding:2px 0; }
.pcl-tree .fy{ padding:4px 8px; font-weight:700; cursor:pointer; font-size:15px; }
.pcl-tree .mo{ padding:4px 8px 4px 26px; cursor:pointer; font-size:15px; font-variant-numeric:tabular-nums; }
.pcl-tree .fy:hover,.pcl-tree .mo:hover{ background:var(--bg-head); }
.pcl-tree .mo.sel{ background:var(--accent); color:var(--on-accent); }
.pcl-right{ flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; padding-left:8px; }

/* ── 納品カレンダー（order_calendar.py）─────────────────────── */
.pcc-nav{ display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.pcc-nav .btn{ min-width:40px; font-size:16px; }
.pcc-month{ flex:1; text-align:center; font-size:18px; font-weight:700; color:var(--accent-ink); }
.pcc-grid{ display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:2px; }
.pcc-grid .wd{ height:26px; line-height:26px; text-align:center; font-weight:700; color:var(--fg-dim); }
.pcc-grid .wd.sat{ color:var(--blue); }
.pcc-grid .wd.sun{ color:var(--red); }
.pcc-day{ background:var(--bg-light); border:1px solid var(--line-soft); border-radius:3px;
          overflow:hidden; display:flex; flex-direction:column; min-height:0; }
.pcc-day.blank{ background:transparent; border-color:transparent; }
.pcc-day .dh{ height:20px; flex:0 0 20px; display:flex; align-items:center; justify-content:space-between;
              padding:0 6px; margin:0 2px; background:var(--bg-head); border-radius:0 0 3px 3px; }
.pcc-day .dh b{ font-size:14px; }
.pcc-day .dh span{ font-size:11px; }
.pcc-day .dh[title]:not([title=""]){ cursor:pointer; }
.pcc-day .dh[title]:not([title=""]):hover{ outline:2px solid var(--accent); outline-offset:-2px; }
.pcc-day.sat .dh{ background:#d3e0ec; color:var(--blue); }
.pcc-day.sun .dh,.pcc-day.holiday .dh{ background:#efd0c9; color:var(--red); }
.pcc-day.today{ border:2px solid var(--accent); }
.pcc-day.today .dh{ background:var(--accent); color:var(--on-accent); }
.pcc-day .ents{ display:flex; flex-direction:column; gap:2px; padding:3px 2px; min-height:0; overflow:hidden; }
.pcc-day .ent{
  height:16px; flex:0 0 16px; padding:0 4px; border:none; border-radius:2px;
  font-size:11px; line-height:16px; text-align:left; cursor:pointer;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pcc-day .ent:hover{ outline:2px solid var(--accent); outline-offset:-1px; }

/* ── 納品スケジュール（Order_gantt_chart.py）───────────────── */
.pcg{ gap:0; }
.pcg-bar{ display:flex; align-items:center; gap:6px; padding:0 0 6px; flex:0 0 auto; }
.pcg-period{ min-width:220px; text-align:center; font-size:14px; font-variant-numeric:tabular-nums; }
.pcg-tabs{ display:flex; gap:2px; border-bottom:2px solid var(--accent); flex:0 0 auto; }
.pcg-tabs button{
  height:26px; padding:0 16px; border:1px solid var(--line); border-bottom:none;
  border-radius:4px 4px 0 0; background:var(--bg-head); color:var(--fg-dim); cursor:pointer;
}
.pcg-tabs button.on{ background:var(--accent); color:var(--on-accent); font-weight:700; border-color:var(--accent); }
.pcg-status{ font-size:12px; padding:3px 2px; flex:0 0 auto; }
/* 見出しと本体で縦スクロールバーの幅を揃えないと、日の列がずれる */
.pcg-head{ overflow:hidden; scrollbar-gutter:stable; border:1px solid var(--line); border-bottom:none;
           background:var(--bg-head); flex:0 0 auto; }
.pcg-scroll{ flex:1; min-height:0; overflow-y:auto; overflow-x:hidden; scrollbar-gutter:stable;
             border:1px solid var(--line); background:var(--bg-light); }
.pcg-row{ display:grid; }
.pcg-months{ grid-template-rows:24px 26px; }
.pcg-corner{ grid-column:1; padding:6px 8px; font-size:11px; color:var(--fg-dim); line-height:1.5;
             border-right:1px solid var(--line); }
.pcg-months .mon{ font-size:13px; font-weight:700; color:var(--accent-ink); padding:4px 6px 0;
                  border-left:1px solid var(--line); white-space:nowrap; overflow:hidden; }
.pcg-months .dn{ font-size:11px; text-align:center; line-height:26px; color:var(--fg-dim);
                 border-left:1px solid var(--line-soft); border-top:1px solid var(--line-soft);
                 font-variant-numeric:tabular-nums; }
.pcg-months .dn.m1{ border-left-color:var(--line); }
.pcg-months .dn.sat{ color:var(--blue); }
.pcg-months .dn.sun,.pcg-months .dn.holiday{ color:var(--red); }
.pcg-months .dn.today{ background:var(--accent); color:var(--on-accent); font-weight:700; }

.pcg-row.line{ grid-template-rows:58px; }
.pcg-row.line .lbl{
  grid-column:1; grid-row:1; z-index:2; padding:5px 8px; min-width:0; cursor:pointer;
  border-left:4px solid transparent; border-right:1px solid var(--line);
  border-bottom:1px dotted var(--line);
  display:flex; flex-direction:column; justify-content:center; gap:1px;
}
.pcg-row.line .lbl > div{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pcg-row.line .lbl .oid{ font-size:12px; font-weight:700; }
.pcg-row.line .lbl .co{ font-size:11px; color:var(--fg-dim); }
.pcg-row.line .lbl .ct{ font-size:12px; }
.pcg-row.line .lbl:hover .oid{ color:var(--accent-ink) !important; }
.pcg-row.line .cell{ grid-row:1; border-left:1px solid var(--line-soft); border-bottom:1px dotted var(--line); }
.pcg-row.line .cell.sat{ background:#e2eaf1; }
.pcg-row.line .cell.sun,.pcg-row.line .cell.holiday{ background:#f3e0dc; }
.pcg-row.line .cell.today{ background:#f7dcb8; box-shadow:inset 2px 0 0 var(--accent); }
.pcg-row.line.hover .cell{ background-image:linear-gradient(rgba(184,74,0,.08), rgba(184,74,0,.08)); }
.pcg-row.line.hover .lbl{ filter:brightness(.96); }
.pcg-row.line .bar{ grid-row:1; z-index:1; margin:4px 0; border-radius:3px; cursor:pointer; }
.pcg-row.line.hover .bar:not(.prep){ outline:2px solid var(--accent); }
.pcg-row.line .due-mark{
  grid-row:1; z-index:3; justify-self:center; align-self:center; pointer-events:none;
  width:10px; height:10px; background:var(--accent); transform:rotate(45deg);
  box-shadow:0 0 0 1px #fff;
}
.pcg-legend{ display:flex; align-items:center; gap:16px; height:34px; padding:0 4px;
             font-size:12px; color:var(--fg-dim); flex:0 0 auto; }
.pcg-legend b{ font-size:14px; text-shadow:0 0 1px #0006; }

.pc-popup{
  position:fixed; z-index:70; background:var(--bg-light); border:1px solid var(--line);
  border-radius:4px; box-shadow:0 6px 18px rgba(0,0,0,.25); padding:3px; min-width:260px;
}
.pc-popup button{ display:block; width:100%; text-align:left; background:none; border:none;
                  padding:8px 14px; cursor:pointer; font-size:14px; border-radius:3px; }
.pc-popup button:hover{ background:var(--accent); color:var(--on-accent); }

/* ── 担当者別タスク管理（task_board.py）────────────────────── */
.pct-head{ display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.pct-title{ font-size:20px; font-weight:700; }
.pct-list{ flex:1; min-height:0; overflow:auto; border:1px solid var(--line); background:var(--bg-light); }
.pct-row{ display:flex; height:60px; border-bottom:1px solid var(--line-soft); }
.pct-name{
  width:80px; flex:0 0 80px; display:flex; align-items:center; justify-content:center; text-align:center;
  font-size:15px; font-weight:700; background:var(--bg-head); border-right:1px solid var(--line);
  padding:0 4px; line-height:1.2;
}
.pct-cards{ flex:1; min-width:0; display:flex; align-items:center; gap:2px; padding:0 4px;
            overflow-x:auto; overflow-y:hidden; }
.pct-card{
  flex:0 0 70px; width:70px; height:54px; border:1px solid; border-radius:4px; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-size:11px; line-height:1.3; overflow:hidden; white-space:nowrap;
}
.pct-card b{ font-size:12px; }
.pct-card:hover{ outline:2px solid var(--accent); outline-offset:-1px; }

/* ── 注文書登録フォーム（order_form.py）────────────────────── */
.pc-menubar button.off{ color:var(--fg-dim); }
.pcf-ro{ margin-left:auto; font-size:13px; color:var(--red); align-self:center; }
.pcf-body{ border:none; margin:0; padding:0; min-width:0; flex:1; min-height:0;
           display:flex; flex-direction:column; gap:6px; }
.pcf-head{ flex:0 0 auto; border:1px solid var(--line); border-radius:4px; background:var(--bg-mid);
           padding:6px 10px 8px; }
.pcf-cols{ display:grid; grid-template-columns:3fr 2fr; gap:14px; margin-top:4px; }
.pcf-left,.pcf-right{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.pcf-row{ display:flex; align-items:center; gap:6px; min-height:28px; }
.pcf-row > .pcf-in,.pcf-row .grow{ flex:1; min-width:0; }
.pcf-row .grow .pcf-in{ width:100%; }
.pcf-in{ height:28px; padding:2px 8px; border:1px solid var(--line); border-radius:3px;
         background:var(--bg-light); color:var(--fg); font-size:15px; }
.pcf-in:focus{ outline:none; border-color:var(--accent); }
.pcf-in[readonly]{ background:var(--bg-head); }
.pcf-lbl{ flex:0 0 72px; width:72px; height:28px; line-height:26px; text-align:center; font-size:14px;
          background:var(--bg-head); border:1px solid var(--line-soft); border-radius:3px; white-space:nowrap; }
.pcf-lbl.w100{ flex-basis:100px; width:100px; }
.pcf-lbl.link{ color:var(--accent-ink); font-weight:700; cursor:pointer; padding:0; }
.pcf-lbl.link:hover{ border-color:var(--accent); }
.pcf-oid{ flex:0 0 150px; }
.pcf-oid .pcf-in{ width:100%; font-variant-numeric:tabular-nums; font-weight:700; }
.pcf-state{ font-size:13px; color:var(--fg-dim); }
.pcf-sub{ font-size:13px; font-weight:700; color:var(--accent-ink); margin-bottom:2px; }
.pcf-docs{ flex:1; min-height:0; max-height:130px; overflow:auto; }
.pcf-docs .row-card{ padding:4px 8px; margin-bottom:4px; }
.pcf-docs .btn{ min-height:28px; }
.pcf-mode{ font-size:14px; font-weight:700; color:var(--accent-ink); }

.pcf-page{ flex:1; min-height:0; display:flex; flex-direction:column; gap:6px; }
.pcf-sec{ min-height:150px; display:flex; flex-direction:column; gap:3px; }
.pcf-sec.grow1{ flex:1 1 0; }
.pcf-sec.grow2{ flex:2 1 0; }
.pcf-sechead{ display:flex; align-items:center; gap:14px; flex:0 0 auto; }
.pcf-billrow{ display:flex; align-items:center; gap:6px; flex:1; }
.pcf-bill{ min-width:260px; max-width:520px; }
.pcf-bill.on,.pcf-closing.on{ color:var(--accent-ink); font-weight:700; border-color:var(--accent); }
.pcf-closing{ font-size:14px; color:var(--fg-dim); }
.pcf-rowbtns{ display:flex; gap:6px; flex:0 0 auto; }
.pcf-rowbtns .btn{ min-height:26px; }
.btn.pcf-blue{ background:#c0d6f0; color:var(--blue); border-color:#8fb0d8; }

/* 表の中の入力欄は枠なしで、セルいっぱいに広げる（行の色が透けるように） */
.pcf-table td{ padding:0; height:28px; }
.pcf-table td.chk{ text-align:center; background:var(--bg-light); }
.pcf-table td.chk input{ accent-color:var(--accent); width:16px; height:16px; vertical-align:middle; }
.pcf-table .cell{
  width:100%; height:27px; border:none; background:transparent; color:inherit;
  padding:0 5px; font-size:14px; border-radius:0;
}
.pcf-table select.cell{ padding:0 2px; }
.pcf-table .cell:focus{ outline:2px solid var(--accent); outline-offset:-2px; background:rgba(255,255,255,.55); }
.pcf-table .cell.r{ text-align:right; }
.pcf-table .cell.c{ text-align:center; }
.pcf-table .cell.bad{ outline:2px solid var(--red); outline-offset:-2px; }
.pcf-table .cell:disabled{ opacity:.55; }
.pcf-table td{ position:relative; }
.pcf-datepick{ position:absolute; left:0; top:100%; opacity:0; width:1px; height:1px; }
.pcf-asgcell{ display:flex; }
.pcf-asgcell .cell{ flex:1; min-width:0; }
.pcf-drop{ flex:0 0 20px; border:none; border-left:1px solid var(--line-soft); background:transparent;
           color:inherit; cursor:pointer; padding:0; }
.pcf-drop:hover{ background:var(--accent); color:var(--on-accent); }
.pcf-price{ text-align:left; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pcf-price:hover{ outline:2px solid var(--accent); outline-offset:-2px; }
.pc-popup.pcf-asg{ max-height:320px; overflow:auto; min-width:160px; }
.pcf-asg label{ display:flex; align-items:center; gap:8px; padding:5px 10px; font-size:14px; cursor:pointer; border-radius:3px; }
.pcf-asg label:hover{ background:var(--bg-head); }
.pcf-asg input{ accent-color:var(--accent); }

.pcf-bottom{ flex:0 0 auto; display:flex; align-items:center; gap:8px; height:52px;
             border-top:1px solid var(--line); padding-top:6px; }
.pcf-bottom .btn{ min-height:38px; padding:0 16px; }
.pcf-table .cell::placeholder{ color:var(--fg-dim); opacity:.35; }
.pcf-docs .panel{ margin:0; padding:6px 10px; }
.pcf-docs .panel > .ttl{ margin-bottom:4px; font-size:13px; }
