/* =========================================================================
   工事原価管理システム 現行忠実モック 共通テーマ
   方針: 現行VB6画面(スクショ実測)と同じレイアウト・配色・質感を再現する
   一次資料: doc/設計書/機能一覧xlsx のスクショ61枚 + Drive の VB6 .frm
   ========================================================================= */
:root{
  --win-face:#f0f0f0;          /* フォーム面(明るいグレー) */
  --win-frame:#e8e8e8;
  --title-a:#0a2a6b;           /* タイトルバー濃紺(左) */
  --title-b:#3a63b8;           /* タイトルバー(右) */
  --title-ink:#ffffff;
  --chip:#1f7a70;              /* ラベルチップ 濃ティール */
  --chip-2:#17655c;            /* ラベルチップ 濃い側 */
  --chip-ink:#ffffff;
  --field-bg:#ffffff;
  --field-ro:#d9d9d9;          /* 読取専用(計算項目) */
  --field-border:#7f9db9;      /* 入力枠(青みグレー) */
  --sunken-lt:#ffffff;
  --sunken-dk:#808080;
  --btn-face:#ececec;          /* 3Dボタン面 */
  --btn-lt:#ffffff;
  --btn-dk:#707070;
  --group-line:#a8b4c8;        /* グループ枠 */
  --ink:#1a1a1a;
  --status-red:#c00000;
  --focus-yellow:#fff6a0;      /* フォーカス欄 黄 */
  --focus-blue:#2a6cff;        /* 選択反転 青 */
  --menu-input:#f6b06a;        /* メニュー: 入力系オレンジ */
  --menu-report:#b6f0b8;       /* メニュー: 帳票・マスタ緑 */
  --menu-special:#8fd6f0;      /* メニュー: 締次更新/データ削除 青 */
  --menu-excel:#f5e06a;        /* メニュー: Excel/財務連携 黄 */
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:"MS PGothic","MS UI Gothic","Meiryo","Hiragino Kaku Gothic ProN",sans-serif;
  font-size:13px;
  color:var(--ink);
  background:#7a7a7a;           /* デスクトップ背景(グレー) */
  -webkit-font-smoothing:none;
}

/* ---- ウィンドウ枠 ---- */
.win{
  width:764px;
  margin:0 auto;
  background:var(--win-face);
  border:1px solid #4a4a4a;
  box-shadow:0 0 0 1px #d6d6d6 inset;
}
.win-title{
  height:26px;
  display:flex;align-items:center;
  padding:0 6px;
  background:linear-gradient(90deg,var(--title-a),var(--title-b));
  color:var(--title-ink);
  font-weight:bold;font-size:13px;
  user-select:none;
}
.win-title .ico{font-weight:bold;margin-right:6px;color:#ffd54a;}
.win-title .sp{flex:1;}
.win-title .btns{display:flex;gap:2px;}
.win-title .wb{
  width:26px;height:20px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:13px;
}
.win-title .wb.close:hover{background:#e81123;}
.win-title .wb:hover{background:rgba(255,255,255,.25);}

/* ---- ツールバー(Fキー) ---- */
.toolbar{
  display:flex;align-items:center;gap:14px;
  padding:10px 14px 12px;
  background:var(--win-face);
}
.tbtn{
  min-width:76px;height:34px;padding:0 12px;
  background:var(--btn-face);
  border:2px solid;
  border-color:var(--btn-lt) var(--btn-dk) var(--btn-dk) var(--btn-lt);
  font-family:inherit;font-size:13px;color:#111;
  cursor:pointer;white-space:nowrap;
}
.tbtn:active{border-color:var(--btn-dk) var(--btn-lt) var(--btn-lt) var(--btn-dk);}
.tbtn:disabled{color:#9a9a9a;cursor:default;}
.tbtn:disabled:active{border-color:var(--btn-lt) var(--btn-dk) var(--btn-dk) var(--btn-lt);}
.toolbar .status{margin-left:auto;color:var(--status-red);font-weight:bold;font-size:14px;}

/* ---- フォーム本体 ---- */
.form{position:relative;padding:6px 18px 22px;}
.row{display:flex;align-items:center;margin-bottom:9px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;}

/* ラベルチップ */
.lbl{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:104px;height:24px;padding:0 8px;
  background:linear-gradient(180deg,var(--chip),var(--chip-2));
  color:var(--chip-ink);font-weight:bold;font-size:13px;
  border:1px solid #0e4d46;
  text-align:center;flex:none;
}
.lbl.sm{min-width:84px;}
.lbl.lg{min-width:120px;}

/* 入力欄(サンクン枠) */
.fld{
  height:24px;padding:1px 5px;
  background:var(--field-bg);
  border:2px solid;
  border-color:var(--sunken-dk) var(--sunken-lt) var(--sunken-lt) var(--sunken-dk);
  font-family:inherit;font-size:13px;color:#111;
  margin-left:10px;
}
.fld.ro{background:var(--field-ro);text-align:right;}
.fld.num{text-align:right;}
.fld.focus{background:var(--focus-yellow);}
.fld.sel{background:var(--focus-blue);color:#fff;}
.fld.w40{width:40px;}
.fld.w70{width:70px;}
.fld.w90{width:90px;}
.fld.w120{width:120px;}
.fld.w160{width:160px;}
.fld.w220{width:220px;}

/* コンボ(ドロップダウン) */
.combo{position:relative;display:inline-flex;margin-left:10px;}
.combo .fld{margin-left:0;padding-right:20px;}
.combo::after{
  content:"▾";position:absolute;right:1px;top:1px;
  width:17px;height:20px;display:flex;align-items:center;justify-content:center;
  background:var(--btn-face);
  border:1px solid;border-color:var(--btn-lt) var(--btn-dk) var(--btn-dk) var(--btn-lt);
  font-size:10px;color:#333;pointer-events:none;
}

/* コード+名称の2連 */
.codepair{display:flex;align-items:center;gap:6px;}

/* グループ枠(fieldset風) */
.grp{
  border:1px solid var(--group-line);
  border-radius:2px;padding:14px 16px 8px;position:relative;margin:6px 0;
}
.grp > .cap{
  position:absolute;top:-9px;left:12px;background:var(--win-face);
  padding:0 6px;color:#2a3a5a;font-weight:bold;font-size:13px;
}

/* 状態バッジ */
.badge{
  position:absolute;right:20px;bottom:22px;
  background:var(--title-a);color:#fff;font-weight:bold;font-size:20px;
  padding:6px 16px;letter-spacing:2px;
}

.unit{margin-left:6px;color:#333;}
.note{margin-left:8px;color:#555;font-size:12px;}

/* =======================  システムメニュー  ======================= */
.menu-win{width:764px;}
.tabs{display:flex;padding:6px 6px 0;background:var(--win-face);gap:2px;}
.tab{
  flex:1;text-align:center;padding:8px 6px;cursor:pointer;
  background:#e4e4e4;color:#333;font-weight:bold;font-size:14px;
  border:1px solid #b5b5b5;border-bottom:none;border-radius:6px 6px 0 0;
}
.tab .mk{color:#3a63b8;margin-right:4px;}
.tab.active{background:var(--win-face);color:#111;position:relative;top:1px;
  border-color:#8a8a8a;box-shadow:0 -2px 0 #4a72c8 inset;}
.tabpane{display:none;padding:16px;min-height:430px;border-top:1px solid #b5b5b5;}
.tabpane.active{display:block;}

.menu-grid{display:flex;gap:34px;flex-wrap:wrap;}
.menu-col{display:flex;flex-direction:column;gap:14px;}
.tile{
  width:104px;height:78px;border:2px solid;
  border-color:#ffffff #808080 #808080 #ffffff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  cursor:pointer;text-decoration:none;color:#153;
  font-size:12px;font-weight:bold;text-align:center;line-height:1.15;padding:2px;
}
.tile:active{border-color:#808080 #ffffff #ffffff #808080;}
.tile.input{background:var(--menu-input);color:#7a3b00;}
.tile.report{background:var(--menu-report);color:#164a17;}
.tile.special{background:var(--menu-special);color:#0b4a63;}
.tile.excel{background:var(--menu-excel);color:#6a5800;}
.tile .ti{font-size:22px;line-height:1;}
.tile .tl{font-size:11.5px;}

.menu-groups{display:flex;gap:26px;}
.menu-group{
  border:1px solid var(--group-line);border-radius:3px;padding:16px 16px 12px;
  position:relative;
}
.menu-group > .cap{position:absolute;top:-9px;left:12px;background:var(--win-face);
  padding:0 6px;color:#2a3a5a;font-weight:bold;}
.menu-group .menu-grid{gap:16px 22px;}
.closebar{display:flex;justify-content:flex-end;padding:6px 16px 16px;}
.close-tile{
  width:120px;height:66px;background:linear-gradient(180deg,#f4f4f4,#dcdcdc);
  border:2px solid;border-color:#ffffff #808080 #808080 #ffffff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  cursor:pointer;color:#222;font-weight:bold;text-decoration:none;
}

/* =======================  編集データグリッド  ======================= */
.dgrid-wrap{border:2px solid;border-color:var(--sunken-dk) var(--sunken-lt) var(--sunken-lt) var(--sunken-dk);
  background:#fff;margin:8px 0;display:flex;}
.dgrid{border-collapse:collapse;width:100%;font-size:12px;table-layout:fixed;}
.dgrid th,.dgrid td{border:1px solid #b9b9b9;padding:1px 4px;height:22px;overflow:hidden;white-space:nowrap;}
.dgrid thead th{background:#e6e6e6;color:#222;font-weight:normal;text-align:center;vertical-align:middle;}
.dgrid thead th .two{display:flex;flex-direction:column;line-height:1.3;}
.dgrid thead th .two span{border-bottom:1px solid #cfcfcf;}
.dgrid thead th .two span:last-child{border-bottom:none;}
.dgrid td.rh{background:#c8c8c8;text-align:center;width:26px;color:#333;border-color:#9a9a9a;}
.dgrid tr.selrow td.rh{background:#8a8a8a;color:#fff;}
.dgrid td.num{text-align:right;}
.dgrid td.two{padding:0;}
.dgrid td.two .l1,.dgrid td.two .l2{padding:1px 4px;height:22px;display:flex;align-items:center;}
.dgrid td.two .l1{border-bottom:1px solid #dcdcdc;}
.dgrid td.two .l1.num,.dgrid td.two .l2.num{justify-content:flex-end;}
.dgrid td.lookup{width:14px;background:#d4d4d4;border-color:#9a9a9a;padding:0;}
.dgrid td.combo-cell{padding:0;position:relative;}
.dgrid td.combo-cell .cv{padding:1px 18px 1px 4px;height:22px;display:flex;align-items:center;}
.dgrid td.combo-cell::after{content:"▾";position:absolute;right:2px;top:2px;width:14px;height:18px;
  display:flex;align-items:center;justify-content:center;background:var(--btn-face);
  border:1px solid;border-color:var(--btn-lt) var(--btn-dk) var(--btn-dk) var(--btn-lt);font-size:9px;color:#333;}
.dgrid .selcell{background:var(--focus-blue);color:#fff;}
.dgrid-sb{width:16px;background:var(--btn-face);border-left:1px solid #b9b9b9;
  display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:2px 0;color:#555;}
.totrow{display:flex;align-items:center;gap:10px;margin-top:6px;}
.totrow .tf{height:24px;padding:1px 6px;background:var(--field-ro);text-align:right;
  border:2px solid;border-color:var(--sunken-dk) var(--sunken-lt) var(--sunken-lt) var(--sunken-dk);
  display:flex;align-items:center;justify-content:flex-end;min-width:100px;}
.center-head{display:flex;flex-direction:column;align-items:center;}

/* =======================  帳票 印刷条件ダイアログ  ======================= */
/* olive(現在フォーカス行)ラベルチップ */
.lbl.olive{background:linear-gradient(180deg,#8f8f2a,#6f6f1e);border-color:#565617;}
/* 「〇〇を印刷します。」メッセージ */
.print-msg{text-align:center;margin:30px 0 34px;font-size:14px;color:#111;}
/* 印刷条件グループ(fieldset風) */
.cond{border:1px solid var(--group-line);margin:6px 24px 10px;padding:18px 18px 14px;position:relative;}
.cond > .cap{position:absolute;top:-9px;left:14px;background:var(--win-face);padding:0 6px;color:#2a3a5a;font-weight:bold;}
.cond .row{margin-bottom:12px;}
.cond .row:last-child{margin-bottom:0;}
/* ラジオ(全て/指定) */
.rd{display:inline-flex;align-items:center;gap:4px;margin-left:14px;color:#111;}
.rd input{margin:0;}
/* 下部ステータスバー */
.statusbar{border-top:1px solid #c9c9c9;padding:6px 12px;color:#111;font-size:13px;background:var(--win-face);}
/* F7/F8/F12 ボタン列(右寄せ) */
.rptbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:10px 16px 12px;background:var(--win-face);}
.tbtn.focus{outline:1px dotted #1a1a1a;border-color:#2a6cff;}

/* 帳票プレビュー */
.report-sheet{background:#fff;border:1px solid #bbb;margin:10px 18px 20px;padding:24px;
  font-family:"MS PGothic",sans-serif;}
table.grid{border-collapse:collapse;width:100%;font-size:12px;}
table.grid th,table.grid td{border:1px solid #999;padding:2px 5px;}
table.grid th{background:#e8ecf4;}
.center{text-align:center;} .right{text-align:right;}
